@tricoteuses/assemblee 1.9.12 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/README.md +0 -5
  2. package/lib/api.js +1 -1
  3. package/lib/api.mjs +1 -1
  4. package/lib/bugs/acteur-00010/plugin.test.js +5 -5
  5. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  6. package/lib/bugs/acteur-00010.js +17 -18
  7. package/lib/bugs/acteur-00010.mjs +1 -1
  8. package/lib/bugs/agenda-00002/plugin.test.js +6 -6
  9. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
  10. package/lib/bugs/agenda-00002.js +31 -32
  11. package/lib/bugs/agenda-00002.mjs +3 -3
  12. package/lib/bugs/agenda-00008/plugin.test.js +5 -5
  13. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  14. package/lib/bugs/agenda-00008.js +17 -18
  15. package/lib/bugs/agenda-00008.mjs +1 -1
  16. package/lib/bugs/agenda-00011/plugin.test.js +10 -10
  17. package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
  18. package/lib/bugs/agenda-00011.js +28 -29
  19. package/lib/bugs/agenda-00011.mjs +3 -3
  20. package/lib/bugs.js +27 -29
  21. package/lib/bugs.mjs +3 -3
  22. package/lib/cleaners/actes_legislatifs.js +5 -5
  23. package/lib/cleaners/actes_legislatifs.mjs +1 -1
  24. package/lib/cleaners/acteurs.js +5 -5
  25. package/lib/cleaners/acteurs.mjs +1 -1
  26. package/lib/cleaners/amendements.js +5 -5
  27. package/lib/cleaners/amendements.mjs +1 -1
  28. package/lib/cleaners/debats.js +1 -1
  29. package/lib/cleaners/debats.mjs +1 -1
  30. package/lib/cleaners/documents.js +5 -5
  31. package/lib/cleaners/documents.mjs +1 -1
  32. package/lib/cleaners/dossiers_legislatifs.js +5 -5
  33. package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
  34. package/lib/cleaners/index.d.ts +0 -1
  35. package/lib/cleaners/index.js +1 -8
  36. package/lib/cleaners/index.mjs +1 -2
  37. package/lib/cleaners/organes.js +2 -2
  38. package/lib/cleaners/organes.mjs +1 -1
  39. package/lib/cleaners/questions.js +1 -1
  40. package/lib/cleaners/questions.mjs +1 -1
  41. package/lib/cleaners/reunions.js +5 -5
  42. package/lib/cleaners/reunions.mjs +1 -1
  43. package/lib/cleaners/scrutins.js +8 -8
  44. package/lib/cleaners/scrutins.mjs +1 -1
  45. package/lib/cleaners/xml.js +8 -8
  46. package/lib/cleaners/xml.mjs +1 -1
  47. package/lib/datasets.d.ts +1 -13
  48. package/lib/datasets.js +10 -29
  49. package/lib/datasets.mjs +2 -21
  50. package/lib/dates.js +3 -4
  51. package/lib/dates.mjs +1 -1
  52. package/lib/dossiers_legislatifs.js +8 -8
  53. package/lib/dossiers_legislatifs.mjs +1 -1
  54. package/lib/file_systems.js +15 -14
  55. package/lib/file_systems.mjs +3 -3
  56. package/lib/git.js +5 -5
  57. package/lib/git.mjs +1 -1
  58. package/lib/index.d.ts +1 -0
  59. package/lib/index.js +8 -1
  60. package/lib/index.mjs +2 -1
  61. package/lib/inserters.js +4 -4
  62. package/lib/inserters.mjs +1 -1
  63. package/lib/loaders.d.ts +0 -5
  64. package/lib/loaders.js +255 -299
  65. package/lib/loaders.mjs +1 -13
  66. package/lib/logger.js +1 -1
  67. package/lib/logger.mjs +1 -1
  68. package/lib/organes.js +1 -1
  69. package/lib/organes.mjs +1 -1
  70. package/lib/parsers/documents.js +11 -11
  71. package/lib/parsers/documents.mjs +1 -1
  72. package/lib/parsers/index.d.ts +1 -0
  73. package/lib/parsers/index.js +8 -1
  74. package/lib/parsers/index.mjs +2 -1
  75. package/lib/parsers/recherche_amendements.js +17 -15
  76. package/lib/parsers/recherche_amendements.mjs +1 -1
  77. package/lib/parsers/textes_lois.d.ts +22 -15
  78. package/lib/parsers/textes_lois.js +264 -752
  79. package/lib/parsers/textes_lois.mjs +249 -597
  80. package/lib/raw_types/acteurs_et_organes.js +9 -9
  81. package/lib/raw_types/acteurs_et_organes.mjs +1 -1
  82. package/lib/raw_types/agendas.d.ts +1 -0
  83. package/lib/raw_types/agendas.js +11 -10
  84. package/lib/raw_types/agendas.mjs +3 -2
  85. package/lib/raw_types/amendements.js +9 -9
  86. package/lib/raw_types/amendements.mjs +1 -1
  87. package/lib/raw_types/debats.js +9 -9
  88. package/lib/raw_types/debats.mjs +1 -1
  89. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -0
  90. package/lib/raw_types/dossiers_legislatifs.js +13 -9
  91. package/lib/raw_types/dossiers_legislatifs.mjs +5 -1
  92. package/lib/raw_types/questions.js +9 -9
  93. package/lib/raw_types/questions.mjs +1 -1
  94. package/lib/raw_types/scrutins.js +9 -9
  95. package/lib/raw_types/scrutins.mjs +1 -1
  96. package/lib/scripts/bugs_helper.js +25 -26
  97. package/lib/scripts/bugs_helper.mjs +3 -3
  98. package/lib/scripts/clean_reorganized_data.js +256 -245
  99. package/lib/scripts/clean_reorganized_data.mjs +18 -29
  100. package/lib/scripts/diff_amendements.js +9 -8
  101. package/lib/scripts/diff_amendements.mjs +1 -1
  102. package/lib/scripts/document_dossiers_legislatifs.js +24 -27
  103. package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
  104. package/lib/scripts/get_today_reunions.js +3 -2
  105. package/lib/scripts/get_today_reunions.mjs +1 -1
  106. package/lib/scripts/merge_scrutins.js +9 -8
  107. package/lib/scripts/merge_scrutins.mjs +1 -1
  108. package/lib/scripts/parse_textes_lois.js +6 -5
  109. package/lib/scripts/parse_textes_lois.mjs +1 -1
  110. package/lib/scripts/process_open_dataset.d.ts +0 -2
  111. package/lib/scripts/process_open_dataset.js +19 -19
  112. package/lib/scripts/process_open_dataset.mjs +3 -5
  113. package/lib/scripts/raw_types_from_amendements.d.ts +0 -1
  114. package/lib/scripts/raw_types_from_amendements.js +122 -198
  115. package/lib/scripts/raw_types_from_amendements.mjs +105 -60
  116. package/lib/scripts/reorganize_data.js +14 -15
  117. package/lib/scripts/reorganize_data.mjs +3 -3
  118. package/lib/scripts/retrieve_deputes_photos.js +40 -31
  119. package/lib/scripts/retrieve_deputes_photos.mjs +10 -2
  120. package/lib/scripts/retrieve_documents.d.ts +1 -1
  121. package/lib/scripts/retrieve_documents.js +230 -138
  122. package/lib/scripts/retrieve_documents.mjs +87 -38
  123. package/lib/scripts/retrieve_open_data.js +27 -30
  124. package/lib/scripts/retrieve_open_data.mjs +5 -8
  125. package/lib/scripts/retrieve_pending_amendments.js +14 -14
  126. package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
  127. package/lib/scripts/retrieve_senateurs_photos.js +10 -10
  128. package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
  129. package/lib/scripts/retrieve_textes_lois.js +17 -15
  130. package/lib/scripts/retrieve_textes_lois.mjs +1 -1
  131. package/lib/scripts/shared/cli_helpers.d.ts +11 -0
  132. package/lib/scripts/shared/cli_helpers.js +13 -2
  133. package/lib/scripts/shared/cli_helpers.mjs +12 -1
  134. package/lib/scripts/test_iter_load.js +5 -19
  135. package/lib/scripts/test_iter_load.mjs +2 -9
  136. package/lib/scripts/test_load.js +2 -2
  137. package/lib/scripts/test_load.mjs +1 -1
  138. package/lib/scripts/test_load_big_files.js +2 -2
  139. package/lib/scripts/test_load_big_files.mjs +1 -1
  140. package/lib/scripts/validate_json.js +17 -18
  141. package/lib/scripts/validate_json.mjs +3 -3
  142. package/lib/shared_types/codes_actes.d.ts +2 -0
  143. package/lib/shared_types/codes_actes.js +3 -1
  144. package/lib/shared_types/codes_actes.mjs +3 -1
  145. package/lib/strings.js +1 -1
  146. package/lib/strings.mjs +1 -1
  147. package/lib/types/acteurs_et_organes.js +9 -9
  148. package/lib/types/acteurs_et_organes.mjs +1 -1
  149. package/lib/types/agendas.d.ts +1 -0
  150. package/lib/types/agendas.js +11 -10
  151. package/lib/types/agendas.mjs +3 -2
  152. package/lib/types/amendements.js +9 -9
  153. package/lib/types/amendements.mjs +1 -1
  154. package/lib/types/debats.js +9 -9
  155. package/lib/types/debats.mjs +1 -1
  156. package/lib/types/dossiers_legislatifs.d.ts +14 -0
  157. package/lib/types/dossiers_legislatifs.js +51 -9
  158. package/lib/types/dossiers_legislatifs.mjs +43 -1
  159. package/lib/types/legislatures.js +1 -1
  160. package/lib/types/legislatures.mjs +1 -1
  161. package/lib/types/questions.js +9 -9
  162. package/lib/types/questions.mjs +1 -1
  163. package/lib/types/scrutins.js +9 -9
  164. package/lib/types/scrutins.mjs +1 -1
  165. package/lib/urls.js +2 -2
  166. package/lib/urls.mjs +1 -1
  167. package/package.json +14 -20
  168. package/lib/cleaners/textes_loi.d.ts +0 -1
  169. package/lib/cleaners/textes_loi.js +0 -12
  170. package/lib/cleaners/textes_loi.mjs +0 -5
  171. package/lib/examples/PIONANR5L15B0020/input.d.ts +0 -2
  172. package/lib/examples/PIONANR5L15B0020/input.js +0 -10
  173. package/lib/examples/PIONANR5L15B0020/input.mjs +0 -193
  174. package/lib/examples/PIONANR5L15B0020/input.ts +0 -193
  175. package/lib/examples/PIONANR5L15B0020/loi.json +0 -26
  176. package/lib/examples/PIONANR5L15B0020/loi_populated.json +0 -29
  177. package/lib/examples/PIONANR5L15B0020/meta.json +0 -28
  178. package/lib/examples/PIONANR5L15B0020/motifs.json +0 -5
  179. package/lib/examples/PIONANR5L15B0020/motifs_populated.json +0 -6
  180. package/lib/examples/PIONANR5L15B0020/sommaire.json +0 -3
  181. package/lib/examples/PRJLANR5L16B0914/input.d.ts +0 -2
  182. package/lib/examples/PRJLANR5L16B0914/input.js +0 -10
  183. package/lib/examples/PRJLANR5L16B0914/input.mjs +0 -322
  184. package/lib/examples/PRJLANR5L16B0914/input.ts +0 -322
  185. package/lib/examples/PRJLANR5L16B0914/loi.json +0 -14
  186. package/lib/examples/PRJLANR5L16B0914/loi_populated.json +0 -20
  187. package/lib/examples/PRJLANR5L16B0914/meta.json +0 -35
  188. package/lib/examples/PRJLANR5L16B0914/motifs.json +0 -4
  189. package/lib/examples/PRJLANR5L16B0914/motifs_populated.json +0 -5
  190. package/lib/examples/PRJLANR5L16B0914/sommaire.json +0 -3
  191. package/lib/examples/PRJLANR5L16B2014/README.md +0 -2
  192. package/lib/examples/PRJLANR5L16B2014/input.d.ts +0 -2
  193. package/lib/examples/PRJLANR5L16B2014/input.js +0 -10
  194. package/lib/examples/PRJLANR5L16B2014/input.mjs +0 -577
  195. package/lib/examples/PRJLANR5L16B2014/input.ts +0 -577
  196. package/lib/examples/PRJLANR5L16B2014/loi.json +0 -369
  197. package/lib/examples/PRJLANR5L16B2014/meta.json +0 -31
  198. package/lib/examples/PRJLANR5L16B2014/motifs.json +0 -5
  199. package/lib/examples/PRJLANR5L16B2014/sommaire.json +0 -51
  200. package/lib/examples/PRJLANR5L16B2424/alineas.json +0 -44
  201. package/lib/examples/PRJLANR5L16B2424/input.d.ts +0 -2
  202. package/lib/examples/PRJLANR5L16B2424/input.js +0 -10
  203. package/lib/examples/PRJLANR5L16B2424/input.mjs +0 -322
  204. package/lib/examples/PRJLANR5L16B2424/input.ts +0 -322
  205. package/lib/examples/PRJLANR5L16B2424/loi.json +0 -74
  206. package/lib/examples/PRJLANR5L16B2424/loi_populated.json +0 -87
  207. package/lib/examples/PRJLANR5L16B2424/meta.json +0 -31
  208. package/lib/examples/PRJLANR5L16B2424/motifs.json +0 -4
  209. package/lib/examples/PRJLANR5L16B2424/motifs_populated.json +0 -5
  210. package/lib/examples/PRJLANR5L16B2424/sommaire.json +0 -3
  211. package/lib/examples/PRJLANR5L16B2462/input.d.ts +0 -2
  212. package/lib/examples/PRJLANR5L16B2462/input.js +0 -10
  213. package/lib/examples/PRJLANR5L16B2462/input.mjs +0 -1308
  214. package/lib/examples/PRJLANR5L16B2462/input.ts +0 -1308
  215. package/lib/examples/PRJLANR5L16B2462/loi.json +0 -74
  216. package/lib/examples/PRJLANR5L16B2462/loi_populated.json +0 -310
  217. package/lib/examples/PRJLANR5L16B2462/meta.json +0 -29
  218. package/lib/examples/PRJLANR5L16B2462/motifs.json +0 -6
  219. package/lib/examples/PRJLANR5L16B2462/motifs_populated.json +0 -6
  220. package/lib/examples/PRJLANR5L16B2462/sommaire.json +0 -50
  221. package/lib/examples/README.md +0 -3
  222. package/lib/raw_types/textes_loi.d.ts +0 -93
  223. package/lib/raw_types/textes_loi.js +0 -429
  224. package/lib/raw_types/textes_loi.mjs +0 -378
  225. package/lib/schemas/texte_loi/Alinea.json +0 -36
  226. package/lib/schemas/texte_loi/ExposeMotifs.json +0 -24
  227. package/lib/schemas/texte_loi/MetaDonnees.json +0 -126
  228. package/lib/schemas/texte_loi/ProjetLoi.json +0 -64
  229. package/lib/schemas/texte_loi/Sommaire.json +0 -48
  230. package/lib/schemas/texte_loi/TexteLoi.json +0 -225
  231. package/lib/schemas/texte_loi/TexteLoiPartiel.json +0 -237
  232. package/lib/scripts/process_textes_loi_dataset.d.ts +0 -7
  233. package/lib/scripts/process_textes_loi_dataset.js +0 -373
  234. package/lib/scripts/process_textes_loi_dataset.mjs +0 -239
  235. package/lib/types/textes_loi.d.ts +0 -94
  236. package/lib/types/textes_loi.js +0 -429
  237. package/lib/types/textes_loi.mjs +0 -378
@@ -1,6 +1,6 @@
1
1
  var _LectureMapping;
2
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
3
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
2
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import commandLineArgs from "command-line-args";
6
6
  import commandLineUsage from "command-line-usage";
@@ -411,4 +411,4 @@ function main(argv) {
411
411
 
412
412
  /* istanbul ignore if */
413
413
  if (process.argv[1].endsWith("document_dossiers_legislatifs.ts")) process.exit(main(process.argv));
414
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJjb21tYW5kTGluZVVzYWdlIiwiYXNzZXJ0IiwibG9hZCIsImdldEZpbGVzIiwicGFyc2VBcmdzIiwiYXJndiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImRlc2NyaXB0aW9uIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb25zb2xlIiwiZXJyb3IiLCJoZWxwIiwidXNhZ2UiLCJ3YXJuIiwiZXFTZXQiLCJhcyIsImJzIiwic2l6ZSIsImEiLCJoYXMiLCJDb2RlMlBhdHRlcm4iLCJjb25zdHJ1Y3RvciIsInBhdHRlcm4iLCJjaGlsZHJlbiIsIl9kZWZpbmVQcm9wZXJ0eSIsIl9wYXR0ZXJuXyIsIl9tYXRjaF9jb3VudF8iLCJPYmplY3QiLCJhc3NpZ24iLCJDb2RlMlBhdHRlcm5Db21Gb25kIiwiTGVjdHVyZU1hcHBpbmciLCJTZXQiLCJpc0xlY3R1cmUiLCJhY3RlIiwiY29kZUFjdGUiLCJtYXRjaCIsImNvZGVzX2xlY3R1cmVfcmVnZXhwIiwiZ2V0VHlwZSIsIkVycm9yIiwibWFwIiwicmVwbGFjZSIsImdldENvZGVBY3RlIiwiYWRkIiwiY29kZXMiLCJsaWJlbGxlQWN0ZSIsIm5vbUNhbm9uaXF1ZSIsImxpYmVsbGUiLCJyZW1hcCIsInR5cGVzIiwibWVyZ2VDb2RlcyIsImMiLCJBcnJheSIsImZyb20iLCJwcmludEFuY2hvcnMiLCJjb2RlIiwibG9nIiwiZ2V0Q29kZXMiLCJqb2luIiwiX0xlY3R1cmVNYXBwaW5nIiwiUmVnRXhwIiwiY29kZXNfbGVjdHVyZSIsIkxlY3R1cmVNYXBwZXIiLCJtYXBwaW5nIiwiY29sbGVjdCIsInVuZGVmaW5lZCIsImxlY3R1cmVzIiwiQWN0ZXNEb2N1bWVudGF0aW9uIiwic2FuaXR5Q2hlY2tzIiwidmVyYm9zZSIsImxlY3R1cmUiLCJDTVAiLCJDQyIsIlBST00iLCJBTjIxIiwiQU5MVU5JIiwiUsOpc29sdXRpb24iLCJBTjIwIiwiRVUiLCJJbW11bml0w6kiLCJwcm9jZWR1cmVzIiwiY29kZTJwYXR0ZXJuIiwid2Fsa0ZpbGVzIiwiZGF0YSIsImFjdGlvbiIsImZpbGUiLCJkb3NzaWVyIiwicHJvY2VkdXJlIiwicmVtYXBQcm9jZWR1cmUiLCJwcm9jZWR1cmVQYXJsZW1lbnRhaXJlIiwiYWN0ZXNMZWdpc2xhdGlmcyIsImNvbGxlY3RGaWxlcyIsIl9hY3RlcyIsIl9jMnAiLCJfcGFyZW50IiwicHJvY2Vzc0ZpbGVzIiwiYWN0ZXMiLCJjMnAiLCJwYXJlbnQiLCJtZXJnZSIsInZhbGlkYXRlIiwicmVtYXBBY3RlcyIsInJlc3VsdHMiLCJsZWN0dXJlTWFwcGVyIiwicHVzaCIsImNvbGxlY3RBY3RlcyIsIm1lcmdlX3Byb2NlZHVyZXMiLCJNYXAiLCJyZW1hcHBlZFByb2NlZHVyZXMiLCJnZXQiLCJvcmRlcmVkQ29kZXMiLCJvcmRlcmVkIiwieCIsInZhbGlkYXRlQ2hyb25vbG9neSIsInNlcXVlbmNlIiwibWVyZ2VBY3RlIiwic2hvcnRDb2RlIiwieHNpVHlwZSIsImwiLCJ2YWxpZGF0ZUxldmVsIiwicGF0aCIsImtleSIsInZhbHVlIiwiZW50cmllcyIsImNvbmNhdCIsInByaW50RW50cnkiLCJlbnRyeSIsInRpdGxlIiwidW5kZXJsaW5lIiwibGVuZ3RoIiwiYWRkQW5jaG9ycyIsImFuY2hvcnNQcmludGVkIiwiYW5jaG9ycyIsInJlbmFtZUNNUCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInByaW50TGV2ZWwiLCJrZXlzIiwic3Vic3RyaW5nIiwicHJpbnRDb2RlcyIsInByaW50QW5jaG9yc0luZGV4IiwiZ2V0QWdncmVnYXRlZCIsInJlbWFwcGVkIiwicHJpbnQiLCJhZ2dyZWdhdGVkIiwibWFpbiIsImRvYyIsInByb2Nlc3MiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvZG9jdW1lbnRfZG9zc2llcnNfbGVnaXNsYXRpZnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lVXNhZ2UgZnJvbSBcImNvbW1hbmQtbGluZS11c2FnZVwiXG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IHsgbG9hZCwgZ2V0RmlsZXMgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInBhdGhuYW1lIHRvIGEgSlNPTiBmaWxlIG9yIGEgZ2xvYiBwYXR0ZXJuIHRvIEpTT04gZmlsZXNcIixcbiAgICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZGF0YVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJuby1zYW5pdHktY2hlY2tzXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgZGVzY3JpcHRpb246IFwiRG8gbm90IHBlcmZvcm0gc2FuaXR5IGNoZWNrcy5cIixcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlc2NyaXB0aW9uOiBcImluY3JlYXNlIHZlcmJvc2l0eVwiLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJoZWxwXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJQcmludCB0aGlzIHVzYWdlIGd1aWRlLlwiLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAge1xuICAgICAgaGVhZGVyOiBcIkFpZGUgw6AgbGEgZG9jdW1lbnRhdGlvbiBkdSBkb3NzaWVyIGzDqWdpc2xhdGlmXCIsXG4gICAgICBjb250ZW50OiBcIkfDqW7DqHJlIHVuZSBoacOpcmFyY2hpZSBkZXMgYWN0ZXMgbMOpZ2lzbGF0aWZzXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiT3B0aW9uc1wiLFxuICAgICAgb3B0aW9uTGlzdDogb3B0aW9uc0RlZmluaXRpb25zLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMsIHtcbiAgICBhcmd2OiBhcmd2LFxuICB9KVxuICBpZiAoIShcImhlbHBcIiBpbiBvcHRpb25zKSAmJiAhKFwiZGF0YVwiIGluIG9wdGlvbnMpKSB7XG4gICAgY29uc29sZS5lcnJvcihcIi0tZGF0YSBpcyBtYW5kYXRvcnlcIilcbiAgICBvcHRpb25zLmhlbHAgPSB0cnVlXG4gIH1cbiAgaWYgKFwiaGVscFwiIGluIG9wdGlvbnMpIHtcbiAgICBjb25zdCB1c2FnZSA9IGNvbW1hbmRMaW5lVXNhZ2Uoc2VjdGlvbnMpXG4gICAgY29uc29sZS53YXJuKHVzYWdlKVxuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gZXFTZXQoYXM6IFNldDxzdHJpbmc+LCBiczogU2V0PHN0cmluZz4pOiBib29sZWFuIHtcbiAgaWYgKGFzLnNpemUgIT09IGJzLnNpemUpIHJldHVybiBmYWxzZVxuICBmb3IgKHZhciBhIG9mIGFzKSBpZiAoIWJzLmhhcyhhKSkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiB0cnVlXG59XG5cbmNsYXNzIENvZGUyUGF0dGVybiB7XG4gIF9wYXR0ZXJuXzogYW55XG4gIF9tYXRjaF9jb3VudF86IG51bWJlclxuICBjb25zdHJ1Y3RvcihwYXR0ZXJuOiBhbnksIGNoaWxkcmVuOiBhbnkpIHtcbiAgICB0aGlzLl9wYXR0ZXJuXyA9IHBhdHRlcm5cbiAgICB0aGlzLl9tYXRjaF9jb3VudF8gPSAwXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBjaGlsZHJlbilcbiAgfVxufVxuXG5jbGFzcyBDb2RlMlBhdHRlcm5Db21Gb25kIGV4dGVuZHMgQ29kZTJQYXR0ZXJuIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJeL1NBSVNJRS8oL05PTUlOLykqKC9SRVVOSU9OLykqKC9SQVBQT1JULykqJFwiLCB7fSlcbiAgfVxufVxuXG5jbGFzcyBMZWN0dXJlTWFwcGluZyB7XG4gIGxpYmVsbGU6IGFueSA9IHt9XG4gIGNvZGVzOiBhbnkgPSBuZXcgU2V0KClcblxuICBzdGF0aWMgY29kZXNfbGVjdHVyZTogc3RyaW5nW10gPSBbXG4gICAgXCJBTjFcIixcbiAgICBcIlNOMVwiLFxuICAgIFwiQU5OTEVDXCIsXG4gICAgXCJTTk5MRUNcIixcbiAgICBcIkFOTERFRlwiLFxuICAgIFwiQU4yXCIsXG4gICAgXCJTTjJcIixcbiAgICBcIlNOM1wiLFxuICBdXG4gIHN0YXRpYyBjb2Rlc19sZWN0dXJlX3JlZ2V4cDogYW55ID0gbmV3IFJlZ0V4cChcbiAgICBcIl4oPzpcIiArIExlY3R1cmVNYXBwaW5nLmNvZGVzX2xlY3R1cmUuam9pbihcInxcIikgKyBcIikoLS4qKT8kXCIsXG4gIClcblxuICBzdGF0aWMgaXNMZWN0dXJlKGFjdGU6IGFueSkge1xuICAgIHJldHVybiBhY3RlLmNvZGVBY3RlLm1hdGNoKExlY3R1cmVNYXBwaW5nLmNvZGVzX2xlY3R1cmVfcmVnZXhwKVxuICB9XG5cbiAgc3RhdGljIGdldFR5cGUoYWN0ZTogYW55KSB7XG4gICAgaWYgKGFjdGUuY29kZUFjdGUubWF0Y2goL15BTi8pKSByZXR1cm4gXCJBTlwiXG4gICAgZWxzZSBpZiAoYWN0ZS5jb2RlQWN0ZS5tYXRjaCgvXlNOLykpIHJldHVybiBcIlNOXCJcbiAgICBlbHNlIHRocm93IEVycm9yKGAke2FjdGUuY29kZUFjdGV9IGRvZXMgbm90IHN0YXJ0IHdpdGggQU4gb3IgU05gKVxuICB9XG5cbiAgc3RhdGljIG1hcChjb2RlQWN0ZTogYW55KSB7XG4gICAgcmV0dXJuIGNvZGVBY3RlLnJlcGxhY2UoTGVjdHVyZU1hcHBpbmcuY29kZXNfbGVjdHVyZV9yZWdleHAsIGBsZWN0dXJlJDFgKVxuICB9XG5cbiAgc3RhdGljIGdldENvZGVBY3RlKGFjdGU6IGFueSkge1xuICAgIGlmICghTGVjdHVyZU1hcHBpbmcuaXNMZWN0dXJlKGFjdGUpKSByZXR1cm5cblxuICAgIHJldHVybiBMZWN0dXJlTWFwcGluZy5tYXAoYWN0ZS5jb2RlQWN0ZSlcbiAgfVxuXG4gIGFkZChhY3RlOiBhbnkpIHtcbiAgICB0aGlzLmNvZGVzLmFkZChhY3RlLmNvZGVBY3RlKVxuXG4gICAgY29uc3QgdHlwZSA9IExlY3R1cmVNYXBwaW5nLmdldFR5cGUoYWN0ZSlcblxuICAgIGlmICghKGFjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlIGluIHRoaXMubGliZWxsZSkpXG4gICAgICB0aGlzLmxpYmVsbGVbYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWVdID0gbmV3IFNldCgpXG4gICAgdGhpcy5saWJlbGxlW2FjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlXS5hZGQodHlwZSlcbiAgfVxuXG4gIHJlbWFwKGFjdGU6IGFueSwgY29kZUFjdGU6IHN0cmluZykge1xuICAgIGFjdGUuY29kZUFjdGUgPSBjb2RlQWN0ZVxuXG4gICAgbGV0IHR5cGVzID0gdGhpcy5saWJlbGxlW2FjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlXVxuICAgIGlmICghKHR5cGVzLmhhcyhcIlNOXCIpICYmIHR5cGVzLmhhcyhcIkFOXCIpKSkge1xuICAgICAgaWYgKHR5cGVzLmhhcyhcIlNOXCIpKSBhY3RlLmxpYmVsbGVBY3RlLm5vbUNhbm9uaXF1ZSArPSBcIiAoU8OpbmF0KVwiXG4gICAgICBlbHNlIGlmICh0eXBlcy5oYXMoXCJBTlwiKSlcbiAgICAgICAgYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWUgKz0gXCIgKEFzc2VtYmzDqWUgTmF0aW9uYWxlKVwiXG4gICAgfVxuICB9XG5cbiAgbWVyZ2VDb2Rlcyhjb2RlczogYW55KSB7XG4gICAgZm9yIChjb25zdCBjIG9mIEFycmF5LmZyb20odGhpcy5jb2RlcykpIGNvZGVzLmFkZChjKVxuICB9XG5cbiAgcHJpbnRBbmNob3JzKCkge1xuICAgIGZvciAoY29uc3QgY29kZSBvZiBBcnJheS5mcm9tKHRoaXMuY29kZXMpKSBjb25zb2xlLmxvZyhgLi4gXyR7Y29kZX06YClcbiAgfVxuXG4gIGdldENvZGVzKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY29kZXMpLmpvaW4oXCIsXCIpXG4gIH1cbn1cblxuY2xhc3MgTGVjdHVyZU1hcHBlciB7XG4gIG1hcHBpbmc6IGFueSA9IHt9XG5cbiAgaGFzKGNvZGVBY3RlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY29kZUFjdGUgaW4gdGhpcy5tYXBwaW5nXG4gIH1cblxuICBjb2xsZWN0KGFjdGU6IGFueSkge1xuICAgIGNvbnN0IGNvZGVBY3RlID0gTGVjdHVyZU1hcHBpbmcuZ2V0Q29kZUFjdGUoYWN0ZSlcbiAgICBpZiAoY29kZUFjdGUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgbGVjdHVyZXMgPSB0aGlzLm1hcHBpbmdcbiAgICAgIGlmICghKGNvZGVBY3RlIGluIGxlY3R1cmVzKSkgbGVjdHVyZXNbY29kZUFjdGVdID0gbmV3IExlY3R1cmVNYXBwaW5nKClcbiAgICAgIGxlY3R1cmVzW2NvZGVBY3RlXS5hZGQoYWN0ZSlcbiAgICB9XG4gIH1cblxuICByZW1hcChhY3RlOiBhbnkpIHtcbiAgICBjb25zdCBjb2RlQWN0ZSA9IExlY3R1cmVNYXBwaW5nLmdldENvZGVBY3RlKGFjdGUpXG4gICAgaWYgKGNvZGVBY3RlICE9IHVuZGVmaW5lZCkgdGhpcy5tYXBwaW5nW2NvZGVBY3RlXS5yZW1hcChhY3RlLCBjb2RlQWN0ZSlcbiAgfVxuXG4gIG1lcmdlQ29kZXMoY29kZXM6IGFueSwgY29kZUFjdGU6IHN0cmluZykge1xuICAgIHRoaXMubWFwcGluZ1tjb2RlQWN0ZV0ubWVyZ2VDb2Rlcyhjb2RlcylcbiAgfVxuXG4gIHByaW50QW5jaG9ycyhjb2RlQWN0ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tYXBwaW5nW2NvZGVBY3RlXS5wcmludEFuY2hvcnMoKVxuICB9XG5cbiAgZ2V0Q29kZXMoY29kZUFjdGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm1hcHBpbmdbY29kZUFjdGVdLmdldENvZGVzKClcbiAgfVxufVxuXG5jbGFzcyBBY3Rlc0RvY3VtZW50YXRpb24ge1xuICB2ZXJib3NlOiBib29sZWFuXG4gIHNhbml0eUNoZWNrczogYm9vbGVhblxuICBsZWN0dXJlTWFwcGVyOiBhbnkgPSBuZXcgTGVjdHVyZU1hcHBlcigpXG4gIHJlbWFwcGVkUHJvY2VkdXJlczogYW55ID0ge31cbiAgYW5jaG9yc1ByaW50ZWQ6IGFueSA9IHt9XG4gIGFuY2hvcnM6IGFueSA9IG5ldyBTZXQoKVxuICBjb2RlczogYW55ID0ge31cbiAgcHJvY2VkdXJlczogYW55ID0gbnVsbFxuICBjb2RlMnBhdHRlcm46IGFueSA9IG5ldyBDb2RlMlBhdHRlcm4obnVsbCwge1xuICAgIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgIFwiXigoKC9sZWN0dXJlLykrKXwoKC9sZWN0dXJlLykrL0NNUC8oL2xlY3R1cmUvKSopKSgvQ0MvKT8oL1BST00vKT8oL0FOLUFQUExJLyk/JFwiLFxuICAgICAge1xuICAgICAgICBsZWN0dXJlOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgIFwiXigvREVQT1QvKT8oL0RQVExFVFRSRUNULyk/KC9FVEkvKT8oL0FWQ0UvKT8oL0RHVlQvKT8oL0FDSU4vKT8oL01PVElPTi8pKigvUFJPQ0FDQy8pPygvQ09NLyk/KCgvREVCQVRTLykrKT8oL1JUUklOSS8pPyRcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcImxlY3R1cmUtQ09NXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9GT05EL3wvQVZJUy8pKyRcIiwge1xuICAgICAgICAgICAgICBcImxlY3R1cmUtQ09NLUZPTkRcIjogbmV3IENvZGUyUGF0dGVybkNvbUZvbmQoKSxcbiAgICAgICAgICAgICAgXCJsZWN0dXJlLUNPTS1BVklTXCI6IG5ldyBDb2RlMlBhdHRlcm5Db21Gb25kKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFwibGVjdHVyZS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgICAgXCJeKC9TRUFOQ0UvKSooKC9NT1RJT04vKT8oL01PVElPTi1WT1RFLykrKT8oL0RFQy8pPyRcIixcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICAgIENNUDogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICBcIl4oL0RFUE9UL3wvU0FJU0lFLyl7MSwyfSgvQ09NLyk/KC9ERUMvKT8oL0RFQkFUUy1BTi8vREVCQVRTLVNOLyk/XCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJDTVAtQ09NXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICAgICAgICAgIFwiXigvTk9NSU4vKT8oL1JBUFBPUlQtQU4vfC9SQVBQT1JULVNOLyl7Mn0kXCIsXG4gICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFwiQ01QLURFQkFUUy1BTlwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLykqKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgICAgICAgIFwiQ01QLURFQkFUUy1TTlwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLykqKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICApLFxuICAgICAgICBDQzogbmV3IENvZGUyUGF0dGVybihcIl4oL1NBSVNJRS8pKygvQ09OQ0xVU0lPTi8pPyRcIiwge30pLFxuICAgICAgICBQUk9NOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvUFVCLyk/JFwiLCB7fSksXG4gICAgICAgIFwiQU4tQVBQTElcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL1JBUFBPUlQvKT8kXCIsIHt9KSxcbiAgICAgIH0sXG4gICAgKSxcbiAgICBcIkFsbG9jdXRpb24gZHUgUHLDqXNpZGVudCBkZSBsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICBcIl4vQU4yMS8kXCIsXG4gICAgICB7XG4gICAgICAgIEFOMjE6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9BUEFOLyk/JFwiLCB7fSksXG4gICAgICB9LFxuICAgICksXG4gICAgXCJSw6lzb2x1dGlvbiBBcnRpY2xlIDM0LTFcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0FOTFVOSS8pPyRcIiwge1xuICAgICAgQU5MVU5JOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL0RFQkFUUy8pPygvUlRSSU5JLyk/JFwiLCB7XG4gICAgICAgIFwiQU5MVU5JLURFQkFUU1wiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLykrKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIFLDqXNvbHV0aW9uOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQU5MVU5JLyk/KC9DQy8pPyRcIiwge1xuICAgICAgQU5MVU5JOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL0NPTS8pPygvREVCQVRTL3wvUlRSSU5JLyk/JFwiLCB7XG4gICAgICAgIFwiQU5MVU5JLUNPTVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQ0FFLyk/KC9GT05ELyk/JFwiLCB7XG4gICAgICAgICAgXCJBTkxVTkktQ09NLUZPTkRcIjogbmV3IENvZGUyUGF0dGVybkNvbUZvbmQoKSxcbiAgICAgICAgICBcIkFOTFVOSS1DT00tQ0FFXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICAgICAgICBcIl4oL1NBSVNJRS8pPygvTk9NSU4vKT8oL1JFVU5JT04vKT8oL1JBUFBPUlQvKT8oL0RFQy8pPyRcIixcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgICBcIkFOTFVOSS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL1NFQU5DRS8pKigvREVDLyk/JFwiLCB7fSksXG4gICAgICB9KSxcbiAgICAgIENDOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0FJU0lFLyk/KC9DT05DTFVTSU9OLyk/JFwiLCB7fSksXG4gICAgfSksXG4gICAgXCJSYXBwb3J0IGQnaW5mb3JtYXRpb24gc2FucyBtaXNzaW9uXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICBcIl4oL0FOMjAvKT8oL0VVLyk/JFwiLFxuICAgICAge1xuICAgICAgICBBTjIwOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvUkFQUE9SVC8pPyRcIiwge30pLFxuICAgICAgICBFVTogbmV3IENvZGUyUGF0dGVybihcIl4oL0RFQy8pKyRcIiwge30pLFxuICAgICAgfSxcbiAgICApLFxuICAgIFwiTWlzc2lvbiBkJ2luZm9ybWF0aW9uXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9BTjIwLyk/JFwiLCB7XG4gICAgICBBTjIwOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvTUlTSU5GLyk/JFwiLCB7XG4gICAgICAgIFwiQU4yMC1NSVNJTkZcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICBcIl4oL0NSRUEvKT8oL05PTUlOLyk/KC9SQVBQT1JULyk/JFwiLFxuICAgICAgICAgIHt9LFxuICAgICAgICApLFxuICAgICAgfSksXG4gICAgfSksXG4gICAgXCJDb21taXNzaW9uIGQnZW5xdcOqdGVcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0FOMjAvKT8kXCIsIHtcbiAgICAgIEFOMjA6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9DT01FTlEvKT8kXCIsIHtcbiAgICAgICAgXCJBTjIwLUNPTUVOUVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgIFwiXigvQ1JFQS8pPygvTk9NSU4vKT8oL1JBUFBPUlQvKT8kXCIsXG4gICAgICAgICAge30sXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICB9KSxcbiAgICBcIkVuZ2FnZW1lbnQgZGUgbGEgcmVzcG9uc2FiaWxpdMOpIGdvdXZlcm5lbWVudGFsZVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgXCJeL0FOMjEvJFwiLFxuICAgICAge1xuICAgICAgICBBTjIxOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigoKC9NT1RJT04vKSovREVCQVRTLyl8KC9ER1ZULykpezEsMn0kXCIsIHtcbiAgICAgICAgICBcIkFOMjEtREVCQVRTXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TRUFOQ0UvKSooL01PVElPTi1WT1RFLykqJFwiLCB7fSksXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICApLFxuICAgIFwiTW90aW9uIHLDqWbDqXJlbmRhaXJlXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9sZWN0dXJlLykrJFwiLCB7XG4gICAgICBsZWN0dXJlOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL0NPTS8pPygvREVCQVRTLyk/JFwiLCB7XG4gICAgICAgIFwibGVjdHVyZS1DT01cIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0ZPTkQvKT8kXCIsIHtcbiAgICAgICAgICBcImxlY3R1cmUtQ09NLUZPTkRcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgIFwiXigvU0FJU0lFLyk/KC9OT01JTi8pKigvUkFQUE9SVC8pKiRcIixcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgICBcImxlY3R1cmUtREVCQVRTXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIEltbXVuaXTDqTogbmV3IENvZGUyUGF0dGVybihcIl4oL0FOTFVOSS8pKyRcIiwge1xuICAgICAgQU5MVU5JOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL0NPTS8pPygvREVCQVRTLyk/KC9SVFJJTkkvKT8kXCIsIHtcbiAgICAgICAgXCJBTkxVTkktQ09NXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9GT05ELyk/JFwiLCB7XG4gICAgICAgICAgXCJBTkxVTkktQ09NLUZPTkRcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgIFwiXigvU0FJU0lFLyk/KC9OT01JTi8pKigvUkFQUE9SVC8pKiRcIixcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgICBcIkFOTFVOSS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL1NFQU5DRS8pPygvREVDLykkXCIsIHt9KSxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIFwiUmVzcG9uc2FiaWxpdMOpIHDDqW5hbGUgZHUgcHLDqXNpZGVudCBkZSBsYSByw6lwdWJsaXF1ZVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgXCJeL2xlY3R1cmUvJFwiLFxuICAgICAge1xuICAgICAgICBsZWN0dXJlOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL1JFQ0JVUkVBVS8pPyRcIiwge30pLFxuICAgICAgfSxcbiAgICApLFxuICAgIFwiUHJvcG9zaXRpb24gZGUgbG9pIHByw6lzZW50w6llIGVuIGFwcGxpY2F0aW9uIGRlIGwnYXJ0aWNsZSAxMSBkZSBsYSBDb25zdGl0dXRpb25cIjpcbiAgICAgIG5ldyBDb2RlMlBhdHRlcm4oXCJeL2xlY3R1cmUvJFwiLCB7XG4gICAgICAgIGxlY3R1cmU6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPyRcIiwge30pLFxuICAgICAgfSksXG4gIH0pXG5cbiAgY29uc3RydWN0b3Ioc2FuaXR5Q2hlY2tzOiBib29sZWFuLCB2ZXJib3NlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICB0aGlzLnZlcmJvc2UgPSB2ZXJib3NlXG4gICAgdGhpcy5zYW5pdHlDaGVja3MgPSBzYW5pdHlDaGVja3NcbiAgICB0aGlzLnByb2NlZHVyZXMgPSB7fVxuICAgIHRoaXMuY29kZTJwYXR0ZXJuLl9tYXRjaF9jb3VudF8rK1xuICB9XG5cbiAgd2Fsa0ZpbGVzKGRhdGE6IHN0cmluZ1tdLCBhY3Rpb246IGFueSkge1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhkYXRhKSkge1xuICAgICAgY29uc3QgZG9zc2llciA9IGxvYWQoZmlsZSlcbiAgICAgIGxldCBwcm9jZWR1cmU6IHN0cmluZyA9IHRoaXMucmVtYXBQcm9jZWR1cmUoXG4gICAgICAgIGRvc3NpZXIucHJvY2VkdXJlUGFybGVtZW50YWlyZS5saWJlbGxlLFxuICAgICAgKVxuICAgICAgaWYgKCEocHJvY2VkdXJlIGluIHRoaXMucHJvY2VkdXJlcykpIHRoaXMucHJvY2VkdXJlc1twcm9jZWR1cmVdID0ge31cbiAgICAgIGFjdGlvbihcbiAgICAgICAgdGhpcy5wcm9jZWR1cmVzW3Byb2NlZHVyZV0sXG4gICAgICAgIGRvc3NpZXIuYWN0ZXNMZWdpc2xhdGlmcyxcbiAgICAgICAgdGhpcy5jb2RlMnBhdHRlcm5bcHJvY2VkdXJlXSxcbiAgICAgICAgbnVsbCxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBjb2xsZWN0RmlsZXMoZGF0YTogc3RyaW5nW10pIHtcbiAgICB0aGlzLndhbGtGaWxlcyhcbiAgICAgIGRhdGEsXG4gICAgICAoX2FjdGVzOiBhbnksIGFjdGVzTGVnaXNsYXRpZnM6IGFueSwgX2MycDogYW55LCBfcGFyZW50OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5jb2xsZWN0KGFjdGVzTGVnaXNsYXRpZnMpXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIHByb2Nlc3NGaWxlcyhkYXRhOiBzdHJpbmdbXSkge1xuICAgIHRoaXMud2Fsa0ZpbGVzKFxuICAgICAgZGF0YSxcbiAgICAgIChhY3RlczogYW55LCBhY3Rlc0xlZ2lzbGF0aWZzOiBhbnksIGMycDogYW55LCBwYXJlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLm1lcmdlKGFjdGVzLCBhY3Rlc0xlZ2lzbGF0aWZzLCBjMnAsIHBhcmVudClcbiAgICAgIH0sXG4gICAgKVxuICAgIGlmICh0aGlzLnNhbml0eUNoZWNrcykgdGhpcy52YWxpZGF0ZSgpXG4gIH1cblxuICByZW1hcEFjdGVzKGFjdGVzOiBhbnkpOiBhbnkge1xuICAgIGxldCByZXN1bHRzID0gW11cbiAgICBmb3IgKGNvbnN0IGFjdGUgb2YgYWN0ZXMpIHtcbiAgICAgIHRoaXMubGVjdHVyZU1hcHBlci5yZW1hcChhY3RlKVxuXG4gICAgICAvLyBDQy1TQUlTSUUtIHN1ZmZpeCBkb2VzIG5vdCBpbXBseSBhIGhpZXJhcmNoeVxuICAgICAgYWN0ZS5jb2RlQWN0ZSA9IGFjdGUuY29kZUFjdGUucmVwbGFjZSgvXkNDLVNBSVNJRS4qLywgXCJDQy1TQUlTSUVcIilcblxuICAgICAgcmVzdWx0cy5wdXNoKGFjdGUpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzXG4gIH1cblxuICBjb2xsZWN0QWN0ZXMoYWN0ZXM6IGFueSk6IGFueSB7XG4gICAgbGV0IHJlc3VsdHMgPSBbXVxuICAgIGZvciAoY29uc3QgYWN0ZSBvZiBhY3Rlcykge1xuICAgICAgdGhpcy5sZWN0dXJlTWFwcGVyLmNvbGxlY3QoYWN0ZSlcblxuICAgICAgcmVzdWx0cy5wdXNoKGFjdGUpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzXG4gIH1cblxuICByZW1hcFByb2NlZHVyZShwcm9jZWR1cmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWVyZ2VfcHJvY2VkdXJlczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXAoW1xuICAgICAgW1wiUHJvcG9zaXRpb24gZGUgbG9pIG9yZGluYWlyZVwiLCBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCJdLFxuICAgICAgW1wiUHJvamV0IGRlIGxvaSBvcmRpbmFpcmVcIiwgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiXSxcbiAgICAgIFtcbiAgICAgICAgXCJQcm9qZXQgZGUgcmF0aWZpY2F0aW9uIGRlcyB0cmFpdMOpcyBldCBjb252ZW50aW9uc1wiLFxuICAgICAgICBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCIsXG4gICAgICBdLFxuICAgICAgW1wiUHJvamV0IG91IHByb3Bvc2l0aW9uIGRlIGxvaSBvcmdhbmlxdWVcIiwgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiXSxcbiAgICAgIFtcbiAgICAgICAgXCJQcm9qZXQgb3UgcHJvcG9zaXRpb24gZGUgbG9pIGNvbnN0aXR1dGlvbm5lbGxlXCIsXG4gICAgICAgIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIixcbiAgICAgIF0sXG4gICAgICBbXCJQcm9qZXQgZGUgbG9pIGRlIGZpbmFuY2VzIGRlIGwnYW5uw6llXCIsIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIl0sXG4gICAgICBbXCJQcm9qZXQgZGUgbG9pIGRlIGZpbmFuY2VzIHJlY3RpZmljYXRpdmVcIiwgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiXSxcbiAgICAgIFtcbiAgICAgICAgXCJQcm9qZXQgZGUgbG9pIGRlIGZpbmFuY2VtZW50IGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiLFxuICAgICAgICBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCIsXG4gICAgICBdLFxuICAgIF0pXG4gICAgaWYgKG1lcmdlX3Byb2NlZHVyZXMuaGFzKHByb2NlZHVyZSkpIHtcbiAgICAgIHRoaXMucmVtYXBwZWRQcm9jZWR1cmVzW3Byb2NlZHVyZV0gPSBudWxsXG4gICAgICByZXR1cm4gbWVyZ2VfcHJvY2VkdXJlcy5nZXQocHJvY2VkdXJlKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcHJvY2VkdXJlXG4gICAgfVxuICB9XG5cbiAgLy8gcmV0dXJuIHRoZSBjb2RlQWN0ZXMgaW4gdGhlIHNhbWUgb3JkZXIgdGhleSBhcHBlYXIgaW4gdGhlIHJlZ2V4cFxuICBvcmRlcmVkQ29kZXMoY29kZXM6IGFueSwgYzJwOiBhbnksIHBhcmVudDogc3RyaW5nKTogU2V0PHN0cmluZz4ge1xuICAgIGNvZGVzID0gbmV3IFNldChjb2RlcylcbiAgICBpZiAoIXRoaXMuc2FuaXR5Q2hlY2tzKSByZXR1cm4gY29kZXNcbiAgICBsZXQgb3JkZXJlZCA9IGMycFtcIl9wYXR0ZXJuX1wiXS5tYXRjaChuZXcgUmVnRXhwKFwiLy4qPy9cIiwgXCJnXCIpKVxuICAgIG9yZGVyZWQgPSBvcmRlcmVkLm1hcCgoeDogc3RyaW5nKSA9PiB4LnJlcGxhY2UobmV3IFJlZ0V4cChcIi8oLiopL1wiKSwgXCIkMVwiKSlcbiAgICBpZiAocGFyZW50ICE9IG51bGwpIG9yZGVyZWQgPSBvcmRlcmVkLm1hcCgoeDogc3RyaW5nKSA9PiBgJHtwYXJlbnR9LSR7eH1gKVxuICAgIG9yZGVyZWQgPSBuZXcgU2V0KG9yZGVyZWQpXG4gICAgYXNzZXJ0KGVxU2V0KG9yZGVyZWQsIGNvZGVzKSwgYCR7Wy4uLm9yZGVyZWRdfSAhPSAke1suLi5jb2Rlc119YClcbiAgICByZXR1cm4gb3JkZXJlZFxuICB9XG5cbiAgdmFsaWRhdGVDaHJvbm9sb2d5KGFjdGVzTGVnaXNsYXRpZnM6IGFueSwgYzJwOiBhbnksIHBhcmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcGF0dGVybiA9IGMycFtcIl9wYXR0ZXJuX1wiXVxuICAgIGNvbnN0IHNlcXVlbmNlID0gYWN0ZXNMZWdpc2xhdGlmc1xuICAgICAgLm1hcCgoeDogYW55KSA9PiBgLyR7eC5jb2RlQWN0ZX0vYC5yZXBsYWNlKGAvJHtwYXJlbnR9LWAsIFwiL1wiKSlcbiAgICAgIC5qb2luKFwiXCIpXG4gICAgYXNzZXJ0KFxuICAgICAgc2VxdWVuY2UubWF0Y2gobmV3IFJlZ0V4cChwYXR0ZXJuKSksXG4gICAgICBgJHtwYXR0ZXJufSBkb2VzIG5vdCBtYXRjaCAke3NlcXVlbmNlfWAsXG4gICAgKVxuICAgIGMycC5fbWF0Y2hfY291bnRfKytcbiAgfVxuXG4gIG1lcmdlQWN0ZShhY3RlczogYW55LCBhY3RlOiBhbnksIGMycDogYW55LCBwYXJlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBjb2RlOiBzdHJpbmcgPSBhY3RlLmNvZGVBY3RlXG4gICAgbGV0IHNob3J0Q29kZTogc3RyaW5nID0gY29kZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcmVudH0tYCksIFwiXCIpXG4gICAgc2hvcnRDb2RlID0gc2hvcnRDb2RlLnJlcGxhY2UoLy0oQU58U04pJC8sIFwiXCIpXG4gICAgdGhpcy5jb2Rlc1tzaG9ydENvZGVdID0gbnVsbFxuICAgIGxldCBuYW1lOiBzdHJpbmcgPSBhY3RlLmxpYmVsbGVBY3RlLm5vbUNhbm9uaXF1ZVxuICAgIGlmICghKGNvZGUgaW4gYWN0ZXMpKSB7XG4gICAgICBhY3Rlc1tjb2RlXSA9IHtcbiAgICAgICAgdHlwZTogYWN0ZS54c2lUeXBlLFxuICAgICAgICBuYW1lOiBuZXcgU2V0KFtuYW1lXSksXG4gICAgICAgIHNob3J0Q29kZTogc2hvcnRDb2RlLFxuICAgICAgICBhY3Rlczoge30sXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjdGVzW2NvZGVdLm5hbWUuYWRkKG5hbWUpXG4gICAgfVxuICAgIGlmIChcImFjdGVzTGVnaXNsYXRpZnNcIiBpbiBhY3RlKVxuICAgICAgdGhpcy5tZXJnZShhY3Rlc1tjb2RlXS5hY3RlcywgYWN0ZS5hY3Rlc0xlZ2lzbGF0aWZzLCBjMnBbY29kZV0sIGNvZGUpXG4gIH1cblxuICBtZXJnZShhY3RlczogYW55LCBhY3Rlc0xlZ2lzbGF0aWZzOiBhbnksIGMycDogYW55LCBwYXJlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGwgPSB0aGlzLnJlbWFwQWN0ZXMoYWN0ZXNMZWdpc2xhdGlmcylcbiAgICB0aGlzLnZhbGlkYXRlQ2hyb25vbG9neShsLCBjMnAsIHBhcmVudClcbiAgICBmb3IgKGNvbnN0IGFjdGUgb2YgbCkgdGhpcy5tZXJnZUFjdGUoYWN0ZXMsIGFjdGUsIGMycCwgcGFyZW50KVxuICB9XG5cbiAgY29sbGVjdChhY3Rlc0xlZ2lzbGF0aWZzOiBhbnkpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGFjdGUgb2YgdGhpcy5jb2xsZWN0QWN0ZXMoYWN0ZXNMZWdpc2xhdGlmcykpXG4gICAgICBpZiAoXCJhY3Rlc0xlZ2lzbGF0aWZzXCIgaW4gYWN0ZSkgdGhpcy5jb2xsZWN0KGFjdGUuYWN0ZXNMZWdpc2xhdGlmcylcbiAgfVxuXG4gIHZhbGlkYXRlTGV2ZWwoYzJwOiBhbnksIHBhdGg6IGFueSkge1xuICAgIGFzc2VydChjMnAuX21hdGNoX2NvdW50XyA+IDAsIGAke3BhdGh9IGlzIG5ldmVyIHVzZWRgKVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGMycCkgYXMgW3N0cmluZywgYW55XVtdKSB7XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09IFwiQ29kZTJQYXR0ZXJuXCIpXG4gICAgICAgIHRoaXMudmFsaWRhdGVMZXZlbCh2YWx1ZSwgcGF0aC5jb25jYXQoW2tleV0pKVxuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRoaXMudmFsaWRhdGVMZXZlbCh0aGlzLmNvZGUycGF0dGVybiwgW10pXG4gIH1cblxuICBwcmludEVudHJ5KHNlY3Rpb25zOiBzdHJpbmcsIGVudHJ5OiBzdHJpbmcsIGNvZGVzOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0aXRsZSA9IGBcXGAke2VudHJ5fVxcYF9fYFxuICAgIGNvbnNvbGUubG9nKHRpdGxlKVxuICAgIGNvbnN0IHVuZGVybGluZSA9IG5ldyBBcnJheSh0aXRsZS5sZW5ndGggKyAxKS5qb2luKHNlY3Rpb25zWzBdKVxuICAgIGNvbnNvbGUubG9nKHVuZGVybGluZSlcbiAgICBjb25zb2xlLmxvZyhjb2RlcylcbiAgfVxuXG4gIGFkZEFuY2hvcnMoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoa2V5IGluIHRoaXMuYW5jaG9yc1ByaW50ZWQpIHJldHVyblxuICAgIGlmICh0aGlzLmxlY3R1cmVNYXBwZXIuaGFzKGtleSkpXG4gICAgICB0aGlzLmxlY3R1cmVNYXBwZXIubWVyZ2VDb2Rlcyh0aGlzLmFuY2hvcnMsIGtleSlcbiAgICBlbHNlIHRoaXMuYW5jaG9ycy5hZGQoa2V5KVxuICB9XG5cbiAgcHJpbnRBbmNob3JzKGtleTogc3RyaW5nKSB7XG4gICAgaWYgKGtleSBpbiB0aGlzLmFuY2hvcnNQcmludGVkKSByZXR1cm5cbiAgICB0aGlzLmFuY2hvcnNQcmludGVkW2tleV0gPSBudWxsXG4gICAgaWYgKHRoaXMubGVjdHVyZU1hcHBlci5oYXMoa2V5KSkgdGhpcy5sZWN0dXJlTWFwcGVyLnByaW50QW5jaG9ycyhrZXkpXG4gICAgZWxzZSBjb25zb2xlLmxvZyhgLi4gXyR7a2V5fTpgKVxuICB9XG5cbiAgZ2V0Q29kZXMoa2V5OiBzdHJpbmcsIHNob3J0Q29kZTogc3RyaW5nKSB7XG4gICAgaWYgKGtleSBpbiB0aGlzLmFuY2hvcnNQcmludGVkKSByZXR1cm4gYGNmIFxcXFwqJHtzaG9ydENvZGV9XFxcXCpgXG4gICAgaWYgKHRoaXMubGVjdHVyZU1hcHBlci5oYXMoa2V5KSkgcmV0dXJuIHRoaXMubGVjdHVyZU1hcHBlci5nZXRDb2RlcyhrZXkpXG4gICAgZWxzZSByZXR1cm4ga2V5XG4gIH1cblxuICByZW5hbWVDTVAoa2V5OiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aChcIkNNUFwiKSkge1xuICAgICAgaWYgKGtleS5lbmRzV2l0aChcIi1TTlwiKSkgcmV0dXJuIGAke25hbWV9IChTw6luYXQpYFxuICAgICAgZWxzZSBpZiAoa2V5LmVuZHNXaXRoKFwiLUFOXCIpKSByZXR1cm4gYCR7bmFtZX0gKEFzc2VtYmzDqWUgTmF0aW9uYWxlKWBcbiAgICAgIGVsc2UgcmV0dXJuIG5hbWVcbiAgICB9IGVsc2UgcmV0dXJuIG5hbWVcbiAgfVxuXG4gIHByaW50TGV2ZWwoYWN0ZXM6IGFueSwgc2VjdGlvbnM6IHN0cmluZywgYzJwOiBhbnksIHBhcmVudDogYW55KSB7XG4gICAgY29uc3Qga2V5czogU2V0PHN0cmluZz4gPSB0aGlzLm9yZGVyZWRDb2RlcyhPYmplY3Qua2V5cyhhY3RlcyksIGMycCwgcGFyZW50KVxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYWN0ZXNba2V5XVxuICAgICAgbGV0IG5hbWUgPSBBcnJheS5mcm9tKHZhbHVlLm5hbWUpLmpvaW4oXCIsIFwiKVxuICAgICAgbmFtZSA9IHRoaXMucmVuYW1lQ01QKGtleSwgbmFtZSlcbiAgICAgIGNvbnN0IGNvZGVzID0gdGhpcy5nZXRDb2RlcyhrZXksIHZhbHVlLnNob3J0Q29kZSlcbiAgICAgIHRoaXMuYWRkQW5jaG9ycyhrZXkpXG4gICAgICB0aGlzLnByaW50QW5jaG9ycyhrZXkpXG4gICAgICBjb25zb2xlLmxvZyhcIlwiKVxuICAgICAgdGhpcy5wcmludEVudHJ5KHNlY3Rpb25zLCBgJHtuYW1lfSA8JHt2YWx1ZS5zaG9ydENvZGV9VE9DXz5gLCBjb2RlcylcbiAgICAgIGNvbnNvbGUubG9nKFwiXCIpXG4gICAgICBpZiAoT2JqZWN0LmtleXModmFsdWUuYWN0ZXMpLmxlbmd0aCA+IDApXG4gICAgICAgIHRoaXMucHJpbnRMZXZlbCh2YWx1ZS5hY3Rlcywgc2VjdGlvbnMuc3Vic3RyaW5nKDEpLCBjMnBba2V5XSwga2V5KVxuICAgIH1cbiAgfVxuXG4gIHByaW50Q29kZXMoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5jb2RlcykpXG4gICAgICBjb25zb2xlLmxvZyhgLi4gXyR7a2V5fVRPQzogaHR0cDovL2ApXG4gIH1cblxuICBwcmludEFuY2hvcnNJbmRleCgpIHtcbiAgICBmb3IgKGNvbnN0IGNvZGUgb2YgQXJyYXkuZnJvbSh0aGlzLmFuY2hvcnMpKVxuICAgICAgY29uc29sZS5sb2coYCogOnJlZjpcXGAke2NvZGV9IDwke2NvZGV9PlxcYGApXG4gIH1cblxuICBnZXRBZ2dyZWdhdGVkKHByb2NlZHVyZTogc3RyaW5nKSB7XG4gICAgaWYgKHByb2NlZHVyZSA9PSBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCIpIHtcbiAgICAgIGNvbnN0IHJlbWFwcGVkID0gT2JqZWN0LmtleXModGhpcy5yZW1hcHBlZFByb2NlZHVyZXMpLmpvaW4oXCIsIFwiKVxuICAgICAgcmV0dXJuIGAgKGFncsOpZ2F0aW9uIGRlICR7cmVtYXBwZWR9KWBcbiAgICB9IGVsc2UgcmV0dXJuIFwiXCJcbiAgfVxuXG4gIHByaW50KCk6IHZvaWQge1xuICAgIHRoaXMuYW5jaG9yc1ByaW50ZWQgPSB7fVxuICAgIGZvciAoY29uc3QgW2tleSwgYWN0ZXNdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucHJvY2VkdXJlcykgYXMgW1xuICAgICAgc3RyaW5nLFxuICAgICAgYW55LFxuICAgIF1bXSkge1xuICAgICAgY29uc3QgY29kZSA9IGtleS5yZXBsYWNlKC8gKy9nLCBcIl9cIilcbiAgICAgIHRoaXMuY29kZXNbY29kZV0gPSBudWxsXG4gICAgICBjb25zdCBhZ2dyZWdhdGVkID0gdGhpcy5nZXRBZ2dyZWdhdGVkKGtleSlcbiAgICAgIGNvbnN0IHRpdGxlID0gYFxcYCR7a2V5fSA8JHtjb2RlfVRPQ18+XFxgX18ke2FnZ3JlZ2F0ZWR9YFxuICAgICAgY29uc29sZS5sb2codGl0bGUpXG4gICAgICBjb25zdCB1bmRlcmxpbmUgPSBuZXcgQXJyYXkodGl0bGUubGVuZ3RoICsgMSkuam9pbihcIj1cIilcbiAgICAgIGNvbnNvbGUubG9nKHVuZGVybGluZSlcbiAgICAgIHRoaXMucHJpbnRMZXZlbChhY3RlcywgXCItfi4nXCIsIHRoaXMuY29kZTJwYXR0ZXJuW2tleV0sIG51bGwpXG4gICAgfVxuICAgIHRoaXMucHJpbnRDb2RlcygpXG4gICAgdGhpcy5wcmludEFuY2hvcnNJbmRleCgpXG4gIH1cbn1cblxuZnVuY3Rpb24gbWFpbihhcmd2OiBhbnkpOiBudW1iZXIge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3YpXG4gIGlmIChvcHRpb25zID09PSBudWxsKSByZXR1cm4gMVxuICBsZXQgZG9jID0gbmV3IEFjdGVzRG9jdW1lbnRhdGlvbihcbiAgICAhb3B0aW9uc1tcIm5vLXNhbml0eS1jaGVja3NcIl0sXG4gICAgb3B0aW9ucy52ZXJib3NlLFxuICApXG4gIGRvYy5jb2xsZWN0RmlsZXMob3B0aW9ucy5kYXRhKVxuICBkb2MucHJvY2Vzc0ZpbGVzKG9wdGlvbnMuZGF0YSlcbiAgZG9jLnByaW50KClcbiAgcmV0dXJuIDBcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwiZG9jdW1lbnRfZG9zc2llcnNfbGVnaXNsYXRpZnMudHNcIikpXG4gIHByb2Nlc3MuZXhpdChtYWluKHByb2Nlc3MuYXJndikpXG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPQSxlQUFlLE1BQU0sbUJBQW1CO0FBQy9DLE9BQU9DLGdCQUFnQixNQUFNLG9CQUFvQjtBQUNqRCxPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUFBLFNBQ2xCQyxJQUFJLEVBQUVDLFFBQVE7QUFFdkIsU0FBU0MsU0FBU0EsQ0FBQ0MsSUFBYyxFQUFPO0VBQ3RDLE1BQU1DLGtCQUFrQixHQUFHLENBQ3pCO0lBQ0VDLFdBQVcsRUFBRSx5REFBeUQ7SUFDdEVDLGFBQWEsRUFBRSxJQUFJO0lBQ25CQyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxJQUFJLEVBQUUsTUFBTTtJQUNaQyxJQUFJLEVBQUVDO0VBQ1IsQ0FBQyxFQUNEO0lBQ0VGLElBQUksRUFBRSxrQkFBa0I7SUFDeEJDLElBQUksRUFBRUUsT0FBTztJQUNiTixXQUFXLEVBQUU7RUFDZixDQUFDLEVBQ0Q7SUFDRUcsSUFBSSxFQUFFLFNBQVM7SUFDZkMsSUFBSSxFQUFFRSxPQUFPO0lBQ2JOLFdBQVcsRUFBRTtFQUNmLENBQUMsRUFDRDtJQUNFRyxJQUFJLEVBQUUsTUFBTTtJQUNaSCxXQUFXLEVBQUU7RUFDZixDQUFDLENBQ0Y7RUFDRCxNQUFNTyxR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
414
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJjb21tYW5kTGluZVVzYWdlIiwiYXNzZXJ0IiwibG9hZCIsImdldEZpbGVzIiwicGFyc2VBcmdzIiwiYXJndiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImRlc2NyaXB0aW9uIiwiZGVmYXVsdE9wdGlvbiIsIm11bHRpcGxlIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb25zb2xlIiwiZXJyb3IiLCJoZWxwIiwidXNhZ2UiLCJ3YXJuIiwiZXFTZXQiLCJhcyIsImJzIiwic2l6ZSIsImEiLCJoYXMiLCJDb2RlMlBhdHRlcm4iLCJjb25zdHJ1Y3RvciIsInBhdHRlcm4iLCJjaGlsZHJlbiIsIl9kZWZpbmVQcm9wZXJ0eSIsIl9wYXR0ZXJuXyIsIl9tYXRjaF9jb3VudF8iLCJPYmplY3QiLCJhc3NpZ24iLCJDb2RlMlBhdHRlcm5Db21Gb25kIiwiTGVjdHVyZU1hcHBpbmciLCJTZXQiLCJpc0xlY3R1cmUiLCJhY3RlIiwiY29kZUFjdGUiLCJtYXRjaCIsImNvZGVzX2xlY3R1cmVfcmVnZXhwIiwiZ2V0VHlwZSIsIkVycm9yIiwibWFwIiwicmVwbGFjZSIsImdldENvZGVBY3RlIiwiYWRkIiwiY29kZXMiLCJsaWJlbGxlQWN0ZSIsIm5vbUNhbm9uaXF1ZSIsImxpYmVsbGUiLCJyZW1hcCIsInR5cGVzIiwibWVyZ2VDb2RlcyIsImMiLCJBcnJheSIsImZyb20iLCJwcmludEFuY2hvcnMiLCJjb2RlIiwibG9nIiwiZ2V0Q29kZXMiLCJqb2luIiwiX0xlY3R1cmVNYXBwaW5nIiwiUmVnRXhwIiwiY29kZXNfbGVjdHVyZSIsIkxlY3R1cmVNYXBwZXIiLCJtYXBwaW5nIiwiY29sbGVjdCIsInVuZGVmaW5lZCIsImxlY3R1cmVzIiwiQWN0ZXNEb2N1bWVudGF0aW9uIiwic2FuaXR5Q2hlY2tzIiwidmVyYm9zZSIsImxlY3R1cmUiLCJDTVAiLCJDQyIsIlBST00iLCJBTjIxIiwiQU5MVU5JIiwiUsOpc29sdXRpb24iLCJBTjIwIiwiRVUiLCJJbW11bml0w6kiLCJwcm9jZWR1cmVzIiwiY29kZTJwYXR0ZXJuIiwid2Fsa0ZpbGVzIiwiZGF0YSIsImFjdGlvbiIsImZpbGUiLCJkb3NzaWVyIiwicHJvY2VkdXJlIiwicmVtYXBQcm9jZWR1cmUiLCJwcm9jZWR1cmVQYXJsZW1lbnRhaXJlIiwiYWN0ZXNMZWdpc2xhdGlmcyIsImNvbGxlY3RGaWxlcyIsIl9hY3RlcyIsIl9jMnAiLCJfcGFyZW50IiwicHJvY2Vzc0ZpbGVzIiwiYWN0ZXMiLCJjMnAiLCJwYXJlbnQiLCJtZXJnZSIsInZhbGlkYXRlIiwicmVtYXBBY3RlcyIsInJlc3VsdHMiLCJsZWN0dXJlTWFwcGVyIiwicHVzaCIsImNvbGxlY3RBY3RlcyIsIm1lcmdlX3Byb2NlZHVyZXMiLCJNYXAiLCJyZW1hcHBlZFByb2NlZHVyZXMiLCJnZXQiLCJvcmRlcmVkQ29kZXMiLCJvcmRlcmVkIiwieCIsInZhbGlkYXRlQ2hyb25vbG9neSIsInNlcXVlbmNlIiwibWVyZ2VBY3RlIiwic2hvcnRDb2RlIiwieHNpVHlwZSIsImwiLCJ2YWxpZGF0ZUxldmVsIiwicGF0aCIsImtleSIsInZhbHVlIiwiZW50cmllcyIsImNvbmNhdCIsInByaW50RW50cnkiLCJlbnRyeSIsInRpdGxlIiwidW5kZXJsaW5lIiwibGVuZ3RoIiwiYWRkQW5jaG9ycyIsImFuY2hvcnNQcmludGVkIiwiYW5jaG9ycyIsInJlbmFtZUNNUCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInByaW50TGV2ZWwiLCJrZXlzIiwic3Vic3RyaW5nIiwicHJpbnRDb2RlcyIsInByaW50QW5jaG9yc0luZGV4IiwiZ2V0QWdncmVnYXRlZCIsInJlbWFwcGVkIiwicHJpbnQiLCJhZ2dyZWdhdGVkIiwibWFpbiIsImRvYyIsInByb2Nlc3MiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvZG9jdW1lbnRfZG9zc2llcnNfbGVnaXNsYXRpZnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lVXNhZ2UgZnJvbSBcImNvbW1hbmQtbGluZS11c2FnZVwiXG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IHsgbG9hZCwgZ2V0RmlsZXMgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInBhdGhuYW1lIHRvIGEgSlNPTiBmaWxlIG9yIGEgZ2xvYiBwYXR0ZXJuIHRvIEpTT04gZmlsZXNcIixcbiAgICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgIG5hbWU6IFwiZGF0YVwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJuby1zYW5pdHktY2hlY2tzXCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgZGVzY3JpcHRpb246IFwiRG8gbm90IHBlcmZvcm0gc2FuaXR5IGNoZWNrcy5cIixcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlc2NyaXB0aW9uOiBcImluY3JlYXNlIHZlcmJvc2l0eVwiLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJoZWxwXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJQcmludCB0aGlzIHVzYWdlIGd1aWRlLlwiLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgc2VjdGlvbnMgPSBbXG4gICAge1xuICAgICAgaGVhZGVyOiBcIkFpZGUgw6AgbGEgZG9jdW1lbnRhdGlvbiBkdSBkb3NzaWVyIGzDqWdpc2xhdGlmXCIsXG4gICAgICBjb250ZW50OiBcIkfDqW7DqHJlIHVuZSBoacOpcmFyY2hpZSBkZXMgYWN0ZXMgbMOpZ2lzbGF0aWZzXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiT3B0aW9uc1wiLFxuICAgICAgb3B0aW9uTGlzdDogb3B0aW9uc0RlZmluaXRpb25zLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMsIHtcbiAgICBhcmd2OiBhcmd2LFxuICB9KVxuICBpZiAoIShcImhlbHBcIiBpbiBvcHRpb25zKSAmJiAhKFwiZGF0YVwiIGluIG9wdGlvbnMpKSB7XG4gICAgY29uc29sZS5lcnJvcihcIi0tZGF0YSBpcyBtYW5kYXRvcnlcIilcbiAgICBvcHRpb25zLmhlbHAgPSB0cnVlXG4gIH1cbiAgaWYgKFwiaGVscFwiIGluIG9wdGlvbnMpIHtcbiAgICBjb25zdCB1c2FnZSA9IGNvbW1hbmRMaW5lVXNhZ2Uoc2VjdGlvbnMpXG4gICAgY29uc29sZS53YXJuKHVzYWdlKVxuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gZXFTZXQoYXM6IFNldDxzdHJpbmc+LCBiczogU2V0PHN0cmluZz4pOiBib29sZWFuIHtcbiAgaWYgKGFzLnNpemUgIT09IGJzLnNpemUpIHJldHVybiBmYWxzZVxuICBmb3IgKHZhciBhIG9mIGFzKSBpZiAoIWJzLmhhcyhhKSkgcmV0dXJuIGZhbHNlXG4gIHJldHVybiB0cnVlXG59XG5cbmNsYXNzIENvZGUyUGF0dGVybiB7XG4gIF9wYXR0ZXJuXzogYW55XG4gIF9tYXRjaF9jb3VudF86IG51bWJlclxuICBjb25zdHJ1Y3RvcihwYXR0ZXJuOiBhbnksIGNoaWxkcmVuOiBhbnkpIHtcbiAgICB0aGlzLl9wYXR0ZXJuXyA9IHBhdHRlcm5cbiAgICB0aGlzLl9tYXRjaF9jb3VudF8gPSAwXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBjaGlsZHJlbilcbiAgfVxufVxuXG5jbGFzcyBDb2RlMlBhdHRlcm5Db21Gb25kIGV4dGVuZHMgQ29kZTJQYXR0ZXJuIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXCJeL1NBSVNJRS8oL05PTUlOLykqKC9SRVVOSU9OLykqKC9SQVBQT1JULykqJFwiLCB7fSlcbiAgfVxufVxuXG5jbGFzcyBMZWN0dXJlTWFwcGluZyB7XG4gIGxpYmVsbGU6IGFueSA9IHt9XG4gIGNvZGVzOiBhbnkgPSBuZXcgU2V0KClcblxuICBzdGF0aWMgY29kZXNfbGVjdHVyZTogc3RyaW5nW10gPSBbXG4gICAgXCJBTjFcIixcbiAgICBcIlNOMVwiLFxuICAgIFwiQU5OTEVDXCIsXG4gICAgXCJTTk5MRUNcIixcbiAgICBcIkFOTERFRlwiLFxuICAgIFwiQU4yXCIsXG4gICAgXCJTTjJcIixcbiAgICBcIlNOM1wiLFxuICBdXG4gIHN0YXRpYyBjb2Rlc19sZWN0dXJlX3JlZ2V4cDogYW55ID0gbmV3IFJlZ0V4cChcbiAgICBcIl4oPzpcIiArIExlY3R1cmVNYXBwaW5nLmNvZGVzX2xlY3R1cmUuam9pbihcInxcIikgKyBcIikoLS4qKT8kXCIsXG4gIClcblxuICBzdGF0aWMgaXNMZWN0dXJlKGFjdGU6IGFueSkge1xuICAgIHJldHVybiBhY3RlLmNvZGVBY3RlLm1hdGNoKExlY3R1cmVNYXBwaW5nLmNvZGVzX2xlY3R1cmVfcmVnZXhwKVxuICB9XG5cbiAgc3RhdGljIGdldFR5cGUoYWN0ZTogYW55KSB7XG4gICAgaWYgKGFjdGUuY29kZUFjdGUubWF0Y2goL15BTi8pKSByZXR1cm4gXCJBTlwiXG4gICAgZWxzZSBpZiAoYWN0ZS5jb2RlQWN0ZS5tYXRjaCgvXlNOLykpIHJldHVybiBcIlNOXCJcbiAgICBlbHNlIHRocm93IEVycm9yKGAke2FjdGUuY29kZUFjdGV9IGRvZXMgbm90IHN0YXJ0IHdpdGggQU4gb3IgU05gKVxuICB9XG5cbiAgc3RhdGljIG1hcChjb2RlQWN0ZTogYW55KSB7XG4gICAgcmV0dXJuIGNvZGVBY3RlLnJlcGxhY2UoTGVjdHVyZU1hcHBpbmcuY29kZXNfbGVjdHVyZV9yZWdleHAsIGBsZWN0dXJlJDFgKVxuICB9XG5cbiAgc3RhdGljIGdldENvZGVBY3RlKGFjdGU6IGFueSkge1xuICAgIGlmICghTGVjdHVyZU1hcHBpbmcuaXNMZWN0dXJlKGFjdGUpKSByZXR1cm5cblxuICAgIHJldHVybiBMZWN0dXJlTWFwcGluZy5tYXAoYWN0ZS5jb2RlQWN0ZSlcbiAgfVxuXG4gIGFkZChhY3RlOiBhbnkpIHtcbiAgICB0aGlzLmNvZGVzLmFkZChhY3RlLmNvZGVBY3RlKVxuXG4gICAgY29uc3QgdHlwZSA9IExlY3R1cmVNYXBwaW5nLmdldFR5cGUoYWN0ZSlcblxuICAgIGlmICghKGFjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlIGluIHRoaXMubGliZWxsZSkpXG4gICAgICB0aGlzLmxpYmVsbGVbYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWVdID0gbmV3IFNldCgpXG4gICAgdGhpcy5saWJlbGxlW2FjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlXS5hZGQodHlwZSlcbiAgfVxuXG4gIHJlbWFwKGFjdGU6IGFueSwgY29kZUFjdGU6IHN0cmluZykge1xuICAgIGFjdGUuY29kZUFjdGUgPSBjb2RlQWN0ZVxuXG4gICAgbGV0IHR5cGVzID0gdGhpcy5saWJlbGxlW2FjdGUubGliZWxsZUFjdGUubm9tQ2Fub25pcXVlXVxuICAgIGlmICghKHR5cGVzLmhhcyhcIlNOXCIpICYmIHR5cGVzLmhhcyhcIkFOXCIpKSkge1xuICAgICAgaWYgKHR5cGVzLmhhcyhcIlNOXCIpKSBhY3RlLmxpYmVsbGVBY3RlLm5vbUNhbm9uaXF1ZSArPSBcIiAoU8OpbmF0KVwiXG4gICAgICBlbHNlIGlmICh0eXBlcy5oYXMoXCJBTlwiKSlcbiAgICAgICAgYWN0ZS5saWJlbGxlQWN0ZS5ub21DYW5vbmlxdWUgKz0gXCIgKEFzc2VtYmzDqWUgTmF0aW9uYWxlKVwiXG4gICAgfVxuICB9XG5cbiAgbWVyZ2VDb2Rlcyhjb2RlczogYW55KSB7XG4gICAgZm9yIChjb25zdCBjIG9mIEFycmF5LmZyb20odGhpcy5jb2RlcykpIGNvZGVzLmFkZChjKVxuICB9XG5cbiAgcHJpbnRBbmNob3JzKCkge1xuICAgIGZvciAoY29uc3QgY29kZSBvZiBBcnJheS5mcm9tKHRoaXMuY29kZXMpKSBjb25zb2xlLmxvZyhgLi4gXyR7Y29kZX06YClcbiAgfVxuXG4gIGdldENvZGVzKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY29kZXMpLmpvaW4oXCIsXCIpXG4gIH1cbn1cblxuY2xhc3MgTGVjdHVyZU1hcHBlciB7XG4gIG1hcHBpbmc6IGFueSA9IHt9XG5cbiAgaGFzKGNvZGVBY3RlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY29kZUFjdGUgaW4gdGhpcy5tYXBwaW5nXG4gIH1cblxuICBjb2xsZWN0KGFjdGU6IGFueSkge1xuICAgIGNvbnN0IGNvZGVBY3RlID0gTGVjdHVyZU1hcHBpbmcuZ2V0Q29kZUFjdGUoYWN0ZSlcbiAgICBpZiAoY29kZUFjdGUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgbGVjdHVyZXMgPSB0aGlzLm1hcHBpbmdcbiAgICAgIGlmICghKGNvZGVBY3RlIGluIGxlY3R1cmVzKSkgbGVjdHVyZXNbY29kZUFjdGVdID0gbmV3IExlY3R1cmVNYXBwaW5nKClcbiAgICAgIGxlY3R1cmVzW2NvZGVBY3RlXS5hZGQoYWN0ZSlcbiAgICB9XG4gIH1cblxuICByZW1hcChhY3RlOiBhbnkpIHtcbiAgICBjb25zdCBjb2RlQWN0ZSA9IExlY3R1cmVNYXBwaW5nLmdldENvZGVBY3RlKGFjdGUpXG4gICAgaWYgKGNvZGVBY3RlICE9IHVuZGVmaW5lZCkgdGhpcy5tYXBwaW5nW2NvZGVBY3RlXS5yZW1hcChhY3RlLCBjb2RlQWN0ZSlcbiAgfVxuXG4gIG1lcmdlQ29kZXMoY29kZXM6IGFueSwgY29kZUFjdGU6IHN0cmluZykge1xuICAgIHRoaXMubWFwcGluZ1tjb2RlQWN0ZV0ubWVyZ2VDb2Rlcyhjb2RlcylcbiAgfVxuXG4gIHByaW50QW5jaG9ycyhjb2RlQWN0ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tYXBwaW5nW2NvZGVBY3RlXS5wcmludEFuY2hvcnMoKVxuICB9XG5cbiAgZ2V0Q29kZXMoY29kZUFjdGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm1hcHBpbmdbY29kZUFjdGVdLmdldENvZGVzKClcbiAgfVxufVxuXG5jbGFzcyBBY3Rlc0RvY3VtZW50YXRpb24ge1xuICB2ZXJib3NlOiBib29sZWFuXG4gIHNhbml0eUNoZWNrczogYm9vbGVhblxuICBsZWN0dXJlTWFwcGVyOiBhbnkgPSBuZXcgTGVjdHVyZU1hcHBlcigpXG4gIHJlbWFwcGVkUHJvY2VkdXJlczogYW55ID0ge31cbiAgYW5jaG9yc1ByaW50ZWQ6IGFueSA9IHt9XG4gIGFuY2hvcnM6IGFueSA9IG5ldyBTZXQoKVxuICBjb2RlczogYW55ID0ge31cbiAgcHJvY2VkdXJlczogYW55ID0gbnVsbFxuICBjb2RlMnBhdHRlcm46IGFueSA9IG5ldyBDb2RlMlBhdHRlcm4obnVsbCwge1xuICAgIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgIFwiXigoKC9sZWN0dXJlLykrKXwoKC9sZWN0dXJlLykrL0NNUC8oL2xlY3R1cmUvKSopKSgvQ0MvKT8oL1BST00vKT8oL0FOLUFQUExJLyk/JFwiLFxuICAgICAge1xuICAgICAgICBsZWN0dXJlOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgIFwiXigvREVQT1QvKT8oL0RQVExFVFRSRUNULyk/KC9FVEkvKT8oL0FWQ0UvKT8oL0RHVlQvKT8oL0FDSU4vKT8oL01PVElPTi8pKigvUFJPQ0FDQy8pPygvQ09NLyk/KCgvREVCQVRTLykrKT8oL1JUUklOSS8pPyRcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBcImxlY3R1cmUtQ09NXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9GT05EL3wvQVZJUy8pKyRcIiwge1xuICAgICAgICAgICAgICBcImxlY3R1cmUtQ09NLUZPTkRcIjogbmV3IENvZGUyUGF0dGVybkNvbUZvbmQoKSxcbiAgICAgICAgICAgICAgXCJsZWN0dXJlLUNPTS1BVklTXCI6IG5ldyBDb2RlMlBhdHRlcm5Db21Gb25kKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFwibGVjdHVyZS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgICAgXCJeKC9TRUFOQ0UvKSooKC9NT1RJT04vKT8oL01PVElPTi1WT1RFLykrKT8oL0RFQy8pPyRcIixcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICAgIENNUDogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICBcIl4oL0RFUE9UL3wvU0FJU0lFLyl7MSwyfSgvQ09NLyk/KC9ERUMvKT8oL0RFQkFUUy1BTi8vREVCQVRTLVNOLyk/XCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgXCJDTVAtQ09NXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICAgICAgICAgIFwiXigvTk9NSU4vKT8oL1JBUFBPUlQtQU4vfC9SQVBQT1JULVNOLyl7Mn0kXCIsXG4gICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFwiQ01QLURFQkFUUy1BTlwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLykqKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgICAgICAgIFwiQ01QLURFQkFUUy1TTlwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLykqKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICApLFxuICAgICAgICBDQzogbmV3IENvZGUyUGF0dGVybihcIl4oL1NBSVNJRS8pKygvQ09OQ0xVU0lPTi8pPyRcIiwge30pLFxuICAgICAgICBQUk9NOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvUFVCLyk/JFwiLCB7fSksXG4gICAgICAgIFwiQU4tQVBQTElcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL1JBUFBPUlQvKT8kXCIsIHt9KSxcbiAgICAgIH0sXG4gICAgKSxcbiAgICBcIkFsbG9jdXRpb24gZHUgUHLDqXNpZGVudCBkZSBsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICBcIl4vQU4yMS8kXCIsXG4gICAgICB7XG4gICAgICAgIEFOMjE6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9BUEFOLyk/JFwiLCB7fSksXG4gICAgICB9LFxuICAgICksXG4gICAgXCJSw6lzb2x1dGlvbiBBcnRpY2xlIDM0LTFcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0FOTFVOSS8pPyRcIiwge1xuICAgICAgQU5MVU5JOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL0RFQkFUUy8pPygvUlRSSU5JLyk/JFwiLCB7XG4gICAgICAgIFwiQU5MVU5JLURFQkFUU1wiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0VBTkNFLykrKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIFLDqXNvbHV0aW9uOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQU5MVU5JLyk/KC9DQy8pPyRcIiwge1xuICAgICAgQU5MVU5JOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL0NPTS8pPygvREVCQVRTL3wvUlRSSU5JLyk/JFwiLCB7XG4gICAgICAgIFwiQU5MVU5JLUNPTVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvQ0FFLyk/KC9GT05ELyk/JFwiLCB7XG4gICAgICAgICAgXCJBTkxVTkktQ09NLUZPTkRcIjogbmV3IENvZGUyUGF0dGVybkNvbUZvbmQoKSxcbiAgICAgICAgICBcIkFOTFVOSS1DT00tQ0FFXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICAgICAgICBcIl4oL1NBSVNJRS8pPygvTk9NSU4vKT8oL1JFVU5JT04vKT8oL1JBUFBPUlQvKT8oL0RFQy8pPyRcIixcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgICBcIkFOTFVOSS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL1NFQU5DRS8pKigvREVDLyk/JFwiLCB7fSksXG4gICAgICB9KSxcbiAgICAgIENDOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvU0FJU0lFLyk/KC9DT05DTFVTSU9OLyk/JFwiLCB7fSksXG4gICAgfSksXG4gICAgXCJSYXBwb3J0IGQnaW5mb3JtYXRpb24gc2FucyBtaXNzaW9uXCI6IG5ldyBDb2RlMlBhdHRlcm4oXG4gICAgICBcIl4oL0FOMjAvKT8oL0VVLyk/JFwiLFxuICAgICAge1xuICAgICAgICBBTjIwOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvUkFQUE9SVC8pPyRcIiwge30pLFxuICAgICAgICBFVTogbmV3IENvZGUyUGF0dGVybihcIl4oL0RFQy8pKyRcIiwge30pLFxuICAgICAgfSxcbiAgICApLFxuICAgIFwiTWlzc2lvbiBkJ2luZm9ybWF0aW9uXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9BTjIwLyk/JFwiLCB7XG4gICAgICBBTjIwOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvTUlTSU5GLyk/JFwiLCB7XG4gICAgICAgIFwiQU4yMC1NSVNJTkZcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICBcIl4oL0NSRUEvKT8oL05PTUlOLyk/KC9SQVBQT1JULyk/JFwiLFxuICAgICAgICAgIHt9LFxuICAgICAgICApLFxuICAgICAgfSksXG4gICAgfSksXG4gICAgXCJDb21taXNzaW9uIGQnZW5xdcOqdGVcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0FOMjAvKT8kXCIsIHtcbiAgICAgIEFOMjA6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9DT01FTlEvKT8kXCIsIHtcbiAgICAgICAgXCJBTjIwLUNPTUVOUVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgICAgIFwiXigvQ1JFQS8pPygvTk9NSU4vKT8oL1JBUFBPUlQvKT8kXCIsXG4gICAgICAgICAge30sXG4gICAgICAgICksXG4gICAgICB9KSxcbiAgICB9KSxcbiAgICBcIkVuZ2FnZW1lbnQgZGUgbGEgcmVzcG9uc2FiaWxpdMOpIGdvdXZlcm5lbWVudGFsZVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgXCJeL0FOMjEvJFwiLFxuICAgICAge1xuICAgICAgICBBTjIxOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigoKC9NT1RJT04vKSovREVCQVRTLyl8KC9ER1ZULykpezEsMn0kXCIsIHtcbiAgICAgICAgICBcIkFOMjEtREVCQVRTXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9TRUFOQ0UvKSooL01PVElPTi1WT1RFLykqJFwiLCB7fSksXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICApLFxuICAgIFwiTW90aW9uIHLDqWbDqXJlbmRhaXJlXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9sZWN0dXJlLykrJFwiLCB7XG4gICAgICBsZWN0dXJlOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL0NPTS8pPygvREVCQVRTLyk/JFwiLCB7XG4gICAgICAgIFwibGVjdHVyZS1DT01cIjogbmV3IENvZGUyUGF0dGVybihcIl4oL0ZPTkQvKT8kXCIsIHtcbiAgICAgICAgICBcImxlY3R1cmUtQ09NLUZPTkRcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgIFwiXigvU0FJU0lFLyk/KC9OT01JTi8pKigvUkFQUE9SVC8pKiRcIixcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgICBcImxlY3R1cmUtREVCQVRTXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERUMvKT8kXCIsIHt9KSxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIEltbXVuaXTDqTogbmV3IENvZGUyUGF0dGVybihcIl4oL0FOTFVOSS8pKyRcIiwge1xuICAgICAgQU5MVU5JOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL0NPTS8pPygvREVCQVRTLyk/KC9SVFJJTkkvKT8kXCIsIHtcbiAgICAgICAgXCJBTkxVTkktQ09NXCI6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9GT05ELyk/JFwiLCB7XG4gICAgICAgICAgXCJBTkxVTkktQ09NLUZPTkRcIjogbmV3IENvZGUyUGF0dGVybihcbiAgICAgICAgICAgIFwiXigvU0FJU0lFLyk/KC9OT01JTi8pKigvUkFQUE9SVC8pKiRcIixcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgICBcIkFOTFVOSS1ERUJBVFNcIjogbmV3IENvZGUyUGF0dGVybihcIl4oL1NFQU5DRS8pPygvREVDLykkXCIsIHt9KSxcbiAgICAgIH0pLFxuICAgIH0pLFxuICAgIFwiUmVzcG9uc2FiaWxpdMOpIHDDqW5hbGUgZHUgcHLDqXNpZGVudCBkZSBsYSByw6lwdWJsaXF1ZVwiOiBuZXcgQ29kZTJQYXR0ZXJuKFxuICAgICAgXCJeL2xlY3R1cmUvJFwiLFxuICAgICAge1xuICAgICAgICBsZWN0dXJlOiBuZXcgQ29kZTJQYXR0ZXJuKFwiXigvREVQT1QvKT8oL1JFQ0JVUkVBVS8pPyRcIiwge30pLFxuICAgICAgfSxcbiAgICApLFxuICAgIFwiUHJvcG9zaXRpb24gZGUgbG9pIHByw6lzZW50w6llIGVuIGFwcGxpY2F0aW9uIGRlIGwnYXJ0aWNsZSAxMSBkZSBsYSBDb25zdGl0dXRpb25cIjpcbiAgICAgIG5ldyBDb2RlMlBhdHRlcm4oXCJeL2xlY3R1cmUvJFwiLCB7XG4gICAgICAgIGxlY3R1cmU6IG5ldyBDb2RlMlBhdHRlcm4oXCJeKC9ERVBPVC8pPyRcIiwge30pLFxuICAgICAgfSksXG4gIH0pXG5cbiAgY29uc3RydWN0b3Ioc2FuaXR5Q2hlY2tzOiBib29sZWFuLCB2ZXJib3NlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICB0aGlzLnZlcmJvc2UgPSB2ZXJib3NlXG4gICAgdGhpcy5zYW5pdHlDaGVja3MgPSBzYW5pdHlDaGVja3NcbiAgICB0aGlzLnByb2NlZHVyZXMgPSB7fVxuICAgIHRoaXMuY29kZTJwYXR0ZXJuLl9tYXRjaF9jb3VudF8rK1xuICB9XG5cbiAgd2Fsa0ZpbGVzKGRhdGE6IHN0cmluZ1tdLCBhY3Rpb246IGFueSkge1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhkYXRhKSkge1xuICAgICAgY29uc3QgZG9zc2llciA9IGxvYWQoZmlsZSlcbiAgICAgIGxldCBwcm9jZWR1cmU6IHN0cmluZyA9IHRoaXMucmVtYXBQcm9jZWR1cmUoXG4gICAgICAgIGRvc3NpZXIucHJvY2VkdXJlUGFybGVtZW50YWlyZS5saWJlbGxlLFxuICAgICAgKVxuICAgICAgaWYgKCEocHJvY2VkdXJlIGluIHRoaXMucHJvY2VkdXJlcykpIHRoaXMucHJvY2VkdXJlc1twcm9jZWR1cmVdID0ge31cbiAgICAgIGFjdGlvbihcbiAgICAgICAgdGhpcy5wcm9jZWR1cmVzW3Byb2NlZHVyZV0sXG4gICAgICAgIGRvc3NpZXIuYWN0ZXNMZWdpc2xhdGlmcyxcbiAgICAgICAgdGhpcy5jb2RlMnBhdHRlcm5bcHJvY2VkdXJlXSxcbiAgICAgICAgbnVsbCxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBjb2xsZWN0RmlsZXMoZGF0YTogc3RyaW5nW10pIHtcbiAgICB0aGlzLndhbGtGaWxlcyhcbiAgICAgIGRhdGEsXG4gICAgICAoX2FjdGVzOiBhbnksIGFjdGVzTGVnaXNsYXRpZnM6IGFueSwgX2MycDogYW55LCBfcGFyZW50OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5jb2xsZWN0KGFjdGVzTGVnaXNsYXRpZnMpXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIHByb2Nlc3NGaWxlcyhkYXRhOiBzdHJpbmdbXSkge1xuICAgIHRoaXMud2Fsa0ZpbGVzKFxuICAgICAgZGF0YSxcbiAgICAgIChhY3RlczogYW55LCBhY3Rlc0xlZ2lzbGF0aWZzOiBhbnksIGMycDogYW55LCBwYXJlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLm1lcmdlKGFjdGVzLCBhY3Rlc0xlZ2lzbGF0aWZzLCBjMnAsIHBhcmVudClcbiAgICAgIH0sXG4gICAgKVxuICAgIGlmICh0aGlzLnNhbml0eUNoZWNrcykgdGhpcy52YWxpZGF0ZSgpXG4gIH1cblxuICByZW1hcEFjdGVzKGFjdGVzOiBhbnkpOiBhbnkge1xuICAgIGxldCByZXN1bHRzID0gW11cbiAgICBmb3IgKGNvbnN0IGFjdGUgb2YgYWN0ZXMpIHtcbiAgICAgIHRoaXMubGVjdHVyZU1hcHBlci5yZW1hcChhY3RlKVxuXG4gICAgICAvLyBDQy1TQUlTSUUtIHN1ZmZpeCBkb2VzIG5vdCBpbXBseSBhIGhpZXJhcmNoeVxuICAgICAgYWN0ZS5jb2RlQWN0ZSA9IGFjdGUuY29kZUFjdGUucmVwbGFjZSgvXkNDLVNBSVNJRS4qLywgXCJDQy1TQUlTSUVcIilcblxuICAgICAgcmVzdWx0cy5wdXNoKGFjdGUpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzXG4gIH1cblxuICBjb2xsZWN0QWN0ZXMoYWN0ZXM6IGFueSk6IGFueSB7XG4gICAgbGV0IHJlc3VsdHMgPSBbXVxuICAgIGZvciAoY29uc3QgYWN0ZSBvZiBhY3Rlcykge1xuICAgICAgdGhpcy5sZWN0dXJlTWFwcGVyLmNvbGxlY3QoYWN0ZSlcblxuICAgICAgcmVzdWx0cy5wdXNoKGFjdGUpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRzXG4gIH1cblxuICByZW1hcFByb2NlZHVyZShwcm9jZWR1cmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWVyZ2VfcHJvY2VkdXJlczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXAoW1xuICAgICAgW1wiUHJvcG9zaXRpb24gZGUgbG9pIG9yZGluYWlyZVwiLCBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCJdLFxuICAgICAgW1wiUHJvamV0IGRlIGxvaSBvcmRpbmFpcmVcIiwgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiXSxcbiAgICAgIFtcbiAgICAgICAgXCJQcm9qZXQgZGUgcmF0aWZpY2F0aW9uIGRlcyB0cmFpdMOpcyBldCBjb252ZW50aW9uc1wiLFxuICAgICAgICBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCIsXG4gICAgICBdLFxuICAgICAgW1wiUHJvamV0IG91IHByb3Bvc2l0aW9uIGRlIGxvaSBvcmdhbmlxdWVcIiwgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiXSxcbiAgICAgIFtcbiAgICAgICAgXCJQcm9qZXQgb3UgcHJvcG9zaXRpb24gZGUgbG9pIGNvbnN0aXR1dGlvbm5lbGxlXCIsXG4gICAgICAgIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIixcbiAgICAgIF0sXG4gICAgICBbXCJQcm9qZXQgZGUgbG9pIGRlIGZpbmFuY2VzIGRlIGwnYW5uw6llXCIsIFwiUHJvY8OpZHVyZSBsw6lnaXNsYXRpdmVcIl0sXG4gICAgICBbXCJQcm9qZXQgZGUgbG9pIGRlIGZpbmFuY2VzIHJlY3RpZmljYXRpdmVcIiwgXCJQcm9jw6lkdXJlIGzDqWdpc2xhdGl2ZVwiXSxcbiAgICAgIFtcbiAgICAgICAgXCJQcm9qZXQgZGUgbG9pIGRlIGZpbmFuY2VtZW50IGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiLFxuICAgICAgICBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCIsXG4gICAgICBdLFxuICAgIF0pXG4gICAgaWYgKG1lcmdlX3Byb2NlZHVyZXMuaGFzKHByb2NlZHVyZSkpIHtcbiAgICAgIHRoaXMucmVtYXBwZWRQcm9jZWR1cmVzW3Byb2NlZHVyZV0gPSBudWxsXG4gICAgICByZXR1cm4gbWVyZ2VfcHJvY2VkdXJlcy5nZXQocHJvY2VkdXJlKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcHJvY2VkdXJlXG4gICAgfVxuICB9XG5cbiAgLy8gcmV0dXJuIHRoZSBjb2RlQWN0ZXMgaW4gdGhlIHNhbWUgb3JkZXIgdGhleSBhcHBlYXIgaW4gdGhlIHJlZ2V4cFxuICBvcmRlcmVkQ29kZXMoY29kZXM6IGFueSwgYzJwOiBhbnksIHBhcmVudDogc3RyaW5nKTogU2V0PHN0cmluZz4ge1xuICAgIGNvZGVzID0gbmV3IFNldChjb2RlcylcbiAgICBpZiAoIXRoaXMuc2FuaXR5Q2hlY2tzKSByZXR1cm4gY29kZXNcbiAgICBsZXQgb3JkZXJlZCA9IGMycFtcIl9wYXR0ZXJuX1wiXS5tYXRjaChuZXcgUmVnRXhwKFwiLy4qPy9cIiwgXCJnXCIpKVxuICAgIG9yZGVyZWQgPSBvcmRlcmVkLm1hcCgoeDogc3RyaW5nKSA9PiB4LnJlcGxhY2UobmV3IFJlZ0V4cChcIi8oLiopL1wiKSwgXCIkMVwiKSlcbiAgICBpZiAocGFyZW50ICE9IG51bGwpIG9yZGVyZWQgPSBvcmRlcmVkLm1hcCgoeDogc3RyaW5nKSA9PiBgJHtwYXJlbnR9LSR7eH1gKVxuICAgIG9yZGVyZWQgPSBuZXcgU2V0KG9yZGVyZWQpXG4gICAgYXNzZXJ0KGVxU2V0KG9yZGVyZWQsIGNvZGVzKSwgYCR7Wy4uLm9yZGVyZWRdfSAhPSAke1suLi5jb2Rlc119YClcbiAgICByZXR1cm4gb3JkZXJlZFxuICB9XG5cbiAgdmFsaWRhdGVDaHJvbm9sb2d5KGFjdGVzTGVnaXNsYXRpZnM6IGFueSwgYzJwOiBhbnksIHBhcmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcGF0dGVybiA9IGMycFtcIl9wYXR0ZXJuX1wiXVxuICAgIGNvbnN0IHNlcXVlbmNlID0gYWN0ZXNMZWdpc2xhdGlmc1xuICAgICAgLm1hcCgoeDogYW55KSA9PiBgLyR7eC5jb2RlQWN0ZX0vYC5yZXBsYWNlKGAvJHtwYXJlbnR9LWAsIFwiL1wiKSlcbiAgICAgIC5qb2luKFwiXCIpXG4gICAgYXNzZXJ0KFxuICAgICAgc2VxdWVuY2UubWF0Y2gobmV3IFJlZ0V4cChwYXR0ZXJuKSksXG4gICAgICBgJHtwYXR0ZXJufSBkb2VzIG5vdCBtYXRjaCAke3NlcXVlbmNlfWAsXG4gICAgKVxuICAgIGMycC5fbWF0Y2hfY291bnRfKytcbiAgfVxuXG4gIG1lcmdlQWN0ZShhY3RlczogYW55LCBhY3RlOiBhbnksIGMycDogYW55LCBwYXJlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBjb2RlOiBzdHJpbmcgPSBhY3RlLmNvZGVBY3RlXG4gICAgbGV0IHNob3J0Q29kZTogc3RyaW5nID0gY29kZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcmVudH0tYCksIFwiXCIpXG4gICAgc2hvcnRDb2RlID0gc2hvcnRDb2RlLnJlcGxhY2UoLy0oQU58U04pJC8sIFwiXCIpXG4gICAgdGhpcy5jb2Rlc1tzaG9ydENvZGVdID0gbnVsbFxuICAgIGxldCBuYW1lOiBzdHJpbmcgPSBhY3RlLmxpYmVsbGVBY3RlLm5vbUNhbm9uaXF1ZVxuICAgIGlmICghKGNvZGUgaW4gYWN0ZXMpKSB7XG4gICAgICBhY3Rlc1tjb2RlXSA9IHtcbiAgICAgICAgdHlwZTogYWN0ZS54c2lUeXBlLFxuICAgICAgICBuYW1lOiBuZXcgU2V0KFtuYW1lXSksXG4gICAgICAgIHNob3J0Q29kZTogc2hvcnRDb2RlLFxuICAgICAgICBhY3Rlczoge30sXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjdGVzW2NvZGVdLm5hbWUuYWRkKG5hbWUpXG4gICAgfVxuICAgIGlmIChcImFjdGVzTGVnaXNsYXRpZnNcIiBpbiBhY3RlKVxuICAgICAgdGhpcy5tZXJnZShhY3Rlc1tjb2RlXS5hY3RlcywgYWN0ZS5hY3Rlc0xlZ2lzbGF0aWZzLCBjMnBbY29kZV0sIGNvZGUpXG4gIH1cblxuICBtZXJnZShhY3RlczogYW55LCBhY3Rlc0xlZ2lzbGF0aWZzOiBhbnksIGMycDogYW55LCBwYXJlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGwgPSB0aGlzLnJlbWFwQWN0ZXMoYWN0ZXNMZWdpc2xhdGlmcylcbiAgICB0aGlzLnZhbGlkYXRlQ2hyb25vbG9neShsLCBjMnAsIHBhcmVudClcbiAgICBmb3IgKGNvbnN0IGFjdGUgb2YgbCkgdGhpcy5tZXJnZUFjdGUoYWN0ZXMsIGFjdGUsIGMycCwgcGFyZW50KVxuICB9XG5cbiAgY29sbGVjdChhY3Rlc0xlZ2lzbGF0aWZzOiBhbnkpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGFjdGUgb2YgdGhpcy5jb2xsZWN0QWN0ZXMoYWN0ZXNMZWdpc2xhdGlmcykpXG4gICAgICBpZiAoXCJhY3Rlc0xlZ2lzbGF0aWZzXCIgaW4gYWN0ZSkgdGhpcy5jb2xsZWN0KGFjdGUuYWN0ZXNMZWdpc2xhdGlmcylcbiAgfVxuXG4gIHZhbGlkYXRlTGV2ZWwoYzJwOiBhbnksIHBhdGg6IGFueSkge1xuICAgIGFzc2VydChjMnAuX21hdGNoX2NvdW50XyA+IDAsIGAke3BhdGh9IGlzIG5ldmVyIHVzZWRgKVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGMycCkgYXMgW3N0cmluZywgYW55XVtdKSB7XG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09IFwiQ29kZTJQYXR0ZXJuXCIpXG4gICAgICAgIHRoaXMudmFsaWRhdGVMZXZlbCh2YWx1ZSwgcGF0aC5jb25jYXQoW2tleV0pKVxuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRoaXMudmFsaWRhdGVMZXZlbCh0aGlzLmNvZGUycGF0dGVybiwgW10pXG4gIH1cblxuICBwcmludEVudHJ5KHNlY3Rpb25zOiBzdHJpbmcsIGVudHJ5OiBzdHJpbmcsIGNvZGVzOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0aXRsZSA9IGBcXGAke2VudHJ5fVxcYF9fYFxuICAgIGNvbnNvbGUubG9nKHRpdGxlKVxuICAgIGNvbnN0IHVuZGVybGluZSA9IG5ldyBBcnJheSh0aXRsZS5sZW5ndGggKyAxKS5qb2luKHNlY3Rpb25zWzBdKVxuICAgIGNvbnNvbGUubG9nKHVuZGVybGluZSlcbiAgICBjb25zb2xlLmxvZyhjb2RlcylcbiAgfVxuXG4gIGFkZEFuY2hvcnMoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoa2V5IGluIHRoaXMuYW5jaG9yc1ByaW50ZWQpIHJldHVyblxuICAgIGlmICh0aGlzLmxlY3R1cmVNYXBwZXIuaGFzKGtleSkpXG4gICAgICB0aGlzLmxlY3R1cmVNYXBwZXIubWVyZ2VDb2Rlcyh0aGlzLmFuY2hvcnMsIGtleSlcbiAgICBlbHNlIHRoaXMuYW5jaG9ycy5hZGQoa2V5KVxuICB9XG5cbiAgcHJpbnRBbmNob3JzKGtleTogc3RyaW5nKSB7XG4gICAgaWYgKGtleSBpbiB0aGlzLmFuY2hvcnNQcmludGVkKSByZXR1cm5cbiAgICB0aGlzLmFuY2hvcnNQcmludGVkW2tleV0gPSBudWxsXG4gICAgaWYgKHRoaXMubGVjdHVyZU1hcHBlci5oYXMoa2V5KSkgdGhpcy5sZWN0dXJlTWFwcGVyLnByaW50QW5jaG9ycyhrZXkpXG4gICAgZWxzZSBjb25zb2xlLmxvZyhgLi4gXyR7a2V5fTpgKVxuICB9XG5cbiAgZ2V0Q29kZXMoa2V5OiBzdHJpbmcsIHNob3J0Q29kZTogc3RyaW5nKSB7XG4gICAgaWYgKGtleSBpbiB0aGlzLmFuY2hvcnNQcmludGVkKSByZXR1cm4gYGNmIFxcXFwqJHtzaG9ydENvZGV9XFxcXCpgXG4gICAgaWYgKHRoaXMubGVjdHVyZU1hcHBlci5oYXMoa2V5KSkgcmV0dXJuIHRoaXMubGVjdHVyZU1hcHBlci5nZXRDb2RlcyhrZXkpXG4gICAgZWxzZSByZXR1cm4ga2V5XG4gIH1cblxuICByZW5hbWVDTVAoa2V5OiBzdHJpbmcsIG5hbWU6IHN0cmluZykge1xuICAgIGlmIChrZXkuc3RhcnRzV2l0aChcIkNNUFwiKSkge1xuICAgICAgaWYgKGtleS5lbmRzV2l0aChcIi1TTlwiKSkgcmV0dXJuIGAke25hbWV9IChTw6luYXQpYFxuICAgICAgZWxzZSBpZiAoa2V5LmVuZHNXaXRoKFwiLUFOXCIpKSByZXR1cm4gYCR7bmFtZX0gKEFzc2VtYmzDqWUgTmF0aW9uYWxlKWBcbiAgICAgIGVsc2UgcmV0dXJuIG5hbWVcbiAgICB9IGVsc2UgcmV0dXJuIG5hbWVcbiAgfVxuXG4gIHByaW50TGV2ZWwoYWN0ZXM6IGFueSwgc2VjdGlvbnM6IHN0cmluZywgYzJwOiBhbnksIHBhcmVudDogYW55KSB7XG4gICAgY29uc3Qga2V5czogU2V0PHN0cmluZz4gPSB0aGlzLm9yZGVyZWRDb2RlcyhPYmplY3Qua2V5cyhhY3RlcyksIGMycCwgcGFyZW50KVxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gYWN0ZXNba2V5XVxuICAgICAgbGV0IG5hbWUgPSBBcnJheS5mcm9tKHZhbHVlLm5hbWUpLmpvaW4oXCIsIFwiKVxuICAgICAgbmFtZSA9IHRoaXMucmVuYW1lQ01QKGtleSwgbmFtZSlcbiAgICAgIGNvbnN0IGNvZGVzID0gdGhpcy5nZXRDb2RlcyhrZXksIHZhbHVlLnNob3J0Q29kZSlcbiAgICAgIHRoaXMuYWRkQW5jaG9ycyhrZXkpXG4gICAgICB0aGlzLnByaW50QW5jaG9ycyhrZXkpXG4gICAgICBjb25zb2xlLmxvZyhcIlwiKVxuICAgICAgdGhpcy5wcmludEVudHJ5KHNlY3Rpb25zLCBgJHtuYW1lfSA8JHt2YWx1ZS5zaG9ydENvZGV9VE9DXz5gLCBjb2RlcylcbiAgICAgIGNvbnNvbGUubG9nKFwiXCIpXG4gICAgICBpZiAoT2JqZWN0LmtleXModmFsdWUuYWN0ZXMpLmxlbmd0aCA+IDApXG4gICAgICAgIHRoaXMucHJpbnRMZXZlbCh2YWx1ZS5hY3Rlcywgc2VjdGlvbnMuc3Vic3RyaW5nKDEpLCBjMnBba2V5XSwga2V5KVxuICAgIH1cbiAgfVxuXG4gIHByaW50Q29kZXMoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5jb2RlcykpXG4gICAgICBjb25zb2xlLmxvZyhgLi4gXyR7a2V5fVRPQzogaHR0cDovL2ApXG4gIH1cblxuICBwcmludEFuY2hvcnNJbmRleCgpIHtcbiAgICBmb3IgKGNvbnN0IGNvZGUgb2YgQXJyYXkuZnJvbSh0aGlzLmFuY2hvcnMpKVxuICAgICAgY29uc29sZS5sb2coYCogOnJlZjpcXGAke2NvZGV9IDwke2NvZGV9PlxcYGApXG4gIH1cblxuICBnZXRBZ2dyZWdhdGVkKHByb2NlZHVyZTogc3RyaW5nKSB7XG4gICAgaWYgKHByb2NlZHVyZSA9PSBcIlByb2PDqWR1cmUgbMOpZ2lzbGF0aXZlXCIpIHtcbiAgICAgIGNvbnN0IHJlbWFwcGVkID0gT2JqZWN0LmtleXModGhpcy5yZW1hcHBlZFByb2NlZHVyZXMpLmpvaW4oXCIsIFwiKVxuICAgICAgcmV0dXJuIGAgKGFncsOpZ2F0aW9uIGRlICR7cmVtYXBwZWR9KWBcbiAgICB9IGVsc2UgcmV0dXJuIFwiXCJcbiAgfVxuXG4gIHByaW50KCk6IHZvaWQge1xuICAgIHRoaXMuYW5jaG9yc1ByaW50ZWQgPSB7fVxuICAgIGZvciAoY29uc3QgW2tleSwgYWN0ZXNdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucHJvY2VkdXJlcykgYXMgW1xuICAgICAgc3RyaW5nLFxuICAgICAgYW55LFxuICAgIF1bXSkge1xuICAgICAgY29uc3QgY29kZSA9IGtleS5yZXBsYWNlKC8gKy9nLCBcIl9cIilcbiAgICAgIHRoaXMuY29kZXNbY29kZV0gPSBudWxsXG4gICAgICBjb25zdCBhZ2dyZWdhdGVkID0gdGhpcy5nZXRBZ2dyZWdhdGVkKGtleSlcbiAgICAgIGNvbnN0IHRpdGxlID0gYFxcYCR7a2V5fSA8JHtjb2RlfVRPQ18+XFxgX18ke2FnZ3JlZ2F0ZWR9YFxuICAgICAgY29uc29sZS5sb2codGl0bGUpXG4gICAgICBjb25zdCB1bmRlcmxpbmUgPSBuZXcgQXJyYXkodGl0bGUubGVuZ3RoICsgMSkuam9pbihcIj1cIilcbiAgICAgIGNvbnNvbGUubG9nKHVuZGVybGluZSlcbiAgICAgIHRoaXMucHJpbnRMZXZlbChhY3RlcywgXCItfi4nXCIsIHRoaXMuY29kZTJwYXR0ZXJuW2tleV0sIG51bGwpXG4gICAgfVxuICAgIHRoaXMucHJpbnRDb2RlcygpXG4gICAgdGhpcy5wcmludEFuY2hvcnNJbmRleCgpXG4gIH1cbn1cblxuZnVuY3Rpb24gbWFpbihhcmd2OiBhbnkpOiBudW1iZXIge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3YpXG4gIGlmIChvcHRpb25zID09PSBudWxsKSByZXR1cm4gMVxuICBsZXQgZG9jID0gbmV3IEFjdGVzRG9jdW1lbnRhdGlvbihcbiAgICAhb3B0aW9uc1tcIm5vLXNhbml0eS1jaGVja3NcIl0sXG4gICAgb3B0aW9ucy52ZXJib3NlLFxuICApXG4gIGRvYy5jb2xsZWN0RmlsZXMob3B0aW9ucy5kYXRhKVxuICBkb2MucHJvY2Vzc0ZpbGVzKG9wdGlvbnMuZGF0YSlcbiAgZG9jLnByaW50KClcbiAgcmV0dXJuIDBcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwiZG9jdW1lbnRfZG9zc2llcnNfbGVnaXNsYXRpZnMudHNcIikpXG4gIHByb2Nlc3MuZXhpdChtYWluKHByb2Nlc3MuYXJndikpXG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPQSxlQUFlLE1BQU0sbUJBQW1CO0FBQy9DLE9BQU9DLGdCQUFnQixNQUFNLG9CQUFvQjtBQUNqRCxPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUFBLFNBQ2xCQyxJQUFJLEVBQUVDLFFBQVE7QUFFdkIsU0FBU0MsU0FBU0EsQ0FBQ0MsSUFBYyxFQUFPO0VBQ3RDLE1BQU1DLGtCQUFrQixHQUFHLENBQ3pCO0lBQ0VDLFdBQVcsRUFBRSx5REFBeUQ7SUFDdEVDLGFBQWEsRUFBRSxJQUFJO0lBQ25CQyxRQUFRLEVBQUUsSUFBSTtJQUNkQyxJQUFJLEVBQUUsTUFBTTtJQUNaQyxJQUFJLEVBQUVDO0VBQ1IsQ0FBQyxFQUNEO0lBQ0VGLElBQUksRUFBRSxrQkFBa0I7SUFDeEJDLElBQUksRUFBRUUsT0FBTztJQUNiTixXQUFXLEVBQUU7RUFDZixDQUFDLEVBQ0Q7SUFDRUcsSUFBSSxFQUFFLFNBQVM7SUFDZkMsSUFBSSxFQUFFRSxPQUFPO0lBQ2JOLFdBQVcsRUFBRTtFQUNmLENBQUMsRUFDRDtJQUNFRyxJQUFJLEVBQUUsTUFBTTtJQUNaSCxXQUFXLEVBQUU7RUFDZixDQUFDLENBQ0Y7RUFDRCxNQUFNTyxR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
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.array.includes.js");
4
+ require("core-js/modules/es.date.to-json.js");
4
5
  require("core-js/modules/es.date.to-string.js");
5
6
  require("core-js/modules/es.object.values.js");
6
7
  require("core-js/modules/es.string.includes.js");
@@ -10,7 +11,7 @@ var _loaders = require("../loaders");
10
11
  var _agendas = require("../types/agendas");
11
12
  var _cli_helpers = require("./shared/cli_helpers");
12
13
  var _legislatures = require("../types/legislatures");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
14
15
  var optionsDefinitions = [_cli_helpers.dataDirDefaultOption];
15
16
  var options = (0, _commandLineArgs["default"])(optionsDefinitions);
16
17
  var now = new Date();
@@ -33,4 +34,4 @@ for (var _i = 0, _Object$values = Object.values(reunionByUid); _i < _Object$valu
33
34
  console.log(uid, timestampDebut, JSON.stringify(reunion, null, 2));
34
35
  }
35
36
  console.log(now);
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGF0YXNldHMiLCJfbG9hZGVycyIsIl9hZ2VuZGFzIiwiX2NsaV9oZWxwZXJzIiwiX2xlZ2lzbGF0dXJlcyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJub3ciLCJEYXRlIiwiX2xvYWRBc3NlbWJsZWVEYXRhIiwibG9hZEFzc2VtYmxlZURhdGEiLCJkYXRhRGlyIiwiRW5hYmxlZERhdGFzZXRzIiwiQWdlbmRhcyIsIkxlZ2lzbGF0dXJlIiwiRGl4U2VwdCIsInJldW5pb25CeVVpZCIsIl9pIiwiX09iamVjdCR2YWx1ZXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJyZXVuaW9uIiwiRXRhdEN5Y2xlRGVWaWUiLCJDb25maXJtw6kiLCJFdmVudHVlbCIsImluY2x1ZGVzIiwiY3ljbGVEZVZpZSIsImV0YXQiLCJ0aW1lc3RhbXBEZWJ1dCIsInR5cGVSZXVuaW9uIiwidWlkIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2dldF90b2RheV9yZXVuaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IEV0YXRDeWNsZURlVmllIH0gZnJvbSBcIi4uL3R5cGVzL2FnZW5kYXNcIlxuaW1wb3J0IHsgZGF0YURpckRlZmF1bHRPcHRpb24gfSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuaW1wb3J0IHsgTGVnaXNsYXR1cmUgfSBmcm9tIFwiLi4vdHlwZXMvbGVnaXNsYXR1cmVzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW2RhdGFEaXJEZWZhdWx0T3B0aW9uXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmNvbnN0IG5vdyA9IG5ldyBEYXRlKClcbmNvbnN0IHsgcmV1bmlvbkJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgb3B0aW9ucy5kYXRhRGlyLFxuICBFbmFibGVkRGF0YXNldHMuQWdlbmRhcyxcbiAgTGVnaXNsYXR1cmUuRGl4U2VwdCxcbilcbmZvciAoY29uc3QgcmV1bmlvbiBvZiBPYmplY3QudmFsdWVzKHJldW5pb25CeVVpZCkpIHtcbiAgaWYgKFxuICAgICFbRXRhdEN5Y2xlRGVWaWUuQ29uZmlybcOpLCBFdGF0Q3ljbGVEZVZpZS5FdmVudHVlbF0uaW5jbHVkZXMoXG4gICAgICByZXVuaW9uLmN5Y2xlRGVWaWUuZXRhdCxcbiAgICApXG4gICkge1xuICAgIGNvbnRpbnVlXG4gIH1cbiAgY29uc3QgeyB0aW1lc3RhbXBEZWJ1dCwgdHlwZVJldW5pb24sIHVpZCB9ID0gcmV1bmlvblxuICBpZiAodHlwZVJldW5pb24gIT09IFwiR1BcIikge1xuICAgIGNvbnRpbnVlXG4gIH1cbiAgaWYgKFxuICAgIHRpbWVzdGFtcERlYnV0LmdldEZ1bGxZZWFyKCkgIT09IG5vdy5nZXRGdWxsWWVhcigpIHx8XG4gICAgdGltZXN0YW1wRGVidXQuZ2V0TW9udGgoKSAhPT0gbm93LmdldE1vbnRoKCkgfHxcbiAgICB0aW1lc3RhbXBEZWJ1dC5nZXREYXRlKCkgIT09IG5vdy5nZXREYXRlKClcbiAgKSB7XG4gICAgY29udGludWVcbiAgfVxuICBjb25zb2xlLmxvZyh1aWQsIHRpbWVzdGFtcERlYnV0LCBKU09OLnN0cmluZ2lmeShyZXVuaW9uLCBudWxsLCAyKSlcbn1cbmNvbnNvbGUubG9nKG5vdylcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGFBQUEsR0FBQUwsT0FBQTtBQUFtRCxTQUFBRCx1QkFBQU8sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBRW5ELElBQU1FLGtCQUFrQixHQUFHLENBQUNDLGlDQUFvQixDQUFDO0FBQ2pELElBQU1DLE9BQU8sR0FBRyxJQUFBQywyQkFBZSxFQUFDSCxrQkFBa0IsQ0FBQztBQUVuRCxJQUFNSSxHQUFHLEdBQUcsSUFBSUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsSUFBQUMsa0JBQUEsR0FBeUIsSUFBQUMsMEJBQWlCLEVBQ3hDTCxPQUFPLENBQUNNLE9BQU8sRUFDZkMseUJBQWUsQ0FBQ0MsT0FBTyxFQUN2QkMseUJBQVcsQ0FBQ0MsT0FDZCxDQUFDO0VBSk9DLFlBQVksR0FBQVAsa0JBQUEsQ0FBWk8sWUFBWTtBQUtwQixTQUFBQyxFQUFBLE1BQUFDLGNBQUEsR0FBc0JDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSixZQUFZLENBQUMsRUFBQUMsRUFBQSxHQUFBQyxjQUFBLENBQUFHLE1BQUEsRUFBQUosRUFBQSxJQUFFO0VBQTlDLElBQU1LLE9BQU8sR0FBQUosY0FBQSxDQUFBRCxFQUFBO0VBQ2hCLElBQ0UsQ0FBQyxDQUFDTSx1QkFBYyxDQUFDQyxRQUFRLEVBQUVELHVCQUFjLENBQUNFLFFBQVEsQ0FBQyxDQUFDQyxRQUFRLENBQzFESixPQUFPLENBQUNLLFVBQVUsQ0FBQ0MsSUFDckIsQ0FBQyxFQUNEO0lBQ0E7RUFDRjtFQUNBLElBQVFDLGNBQWMsR0FBdUJQLE9BQU8sQ0FBNUNPLGNBQWM7SUFBRUMsV0FBVyxHQUFVUixPQUFPLENBQTVCUSxXQUFXO0lBQUVDLEdBQUcsR0FBS1QsT0FBTyxDQUFmUyxHQUFHO0VBQ3hDLElBQUlELFdBQVcsS0FBSyxJQUFJLEVBQUU7SUFDeEI7RUFDRjtFQUNBLElBQ0VELGNBQWMsQ0FBQ0csV0FBVyxDQUFDLENBQUMsS0FBS3pCLEdBQUcsQ0FBQ3lCLFdBQVcsQ0FBQyxDQUFDLElBQ2xESCxjQUFjLENBQUNJLFFBQVEsQ0FBQyxDQUFDLEtBQUsxQixHQUFHLENBQUMwQixRQUFRLENBQUMsQ0FBQyxJQUM1Q0osY0FBYyxDQUFDSyxPQUFPLENBQUMsQ0FBQyxLQUFLM0IsR0FBRyxDQUFDMkIsT0FBTyxDQUFDLENBQUMsRUFDMUM7SUFDQTtFQUNGO0VBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDTCxHQUFHLEVBQUVGLGNBQWMsRUFBRVEsSUFBSSxDQUFDQyxTQUFTLENBQUNoQixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BFO0FBQ0FhLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDN0IsR0FBRyxDQUFDIn0=
37
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGF0YXNldHMiLCJfbG9hZGVycyIsIl9hZ2VuZGFzIiwiX2NsaV9oZWxwZXJzIiwiX2xlZ2lzbGF0dXJlcyIsImUiLCJfX2VzTW9kdWxlIiwib3B0aW9uc0RlZmluaXRpb25zIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwibm93IiwiRGF0ZSIsIl9sb2FkQXNzZW1ibGVlRGF0YSIsImxvYWRBc3NlbWJsZWVEYXRhIiwiZGF0YURpciIsIkVuYWJsZWREYXRhc2V0cyIsIkFnZW5kYXMiLCJMZWdpc2xhdHVyZSIsIkRpeFNlcHQiLCJyZXVuaW9uQnlVaWQiLCJfaSIsIl9PYmplY3QkdmFsdWVzIiwiT2JqZWN0IiwidmFsdWVzIiwibGVuZ3RoIiwicmV1bmlvbiIsIkV0YXRDeWNsZURlVmllIiwiQ29uZmlybcOpIiwiRXZlbnR1ZWwiLCJpbmNsdWRlcyIsImN5Y2xlRGVWaWUiLCJldGF0IiwidGltZXN0YW1wRGVidXQiLCJ0eXBlUmV1bmlvbiIsInVpZCIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiY29uc29sZSIsImxvZyIsIkpTT04iLCJzdHJpbmdpZnkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9nZXRfdG9kYXlfcmV1bmlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuXG5pbXBvcnQgeyBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgbG9hZEFzc2VtYmxlZURhdGEgfSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQgeyBFdGF0Q3ljbGVEZVZpZSB9IGZyb20gXCIuLi90eXBlcy9hZ2VuZGFzXCJcbmltcG9ydCB7IGRhdGFEaXJEZWZhdWx0T3B0aW9uIH0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtkYXRhRGlyRGVmYXVsdE9wdGlvbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5jb25zdCBub3cgPSBuZXcgRGF0ZSgpXG5jb25zdCB7IHJldW5pb25CeVVpZCB9ID0gbG9hZEFzc2VtYmxlZURhdGEoXG4gIG9wdGlvbnMuZGF0YURpcixcbiAgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMsXG4gIExlZ2lzbGF0dXJlLkRpeFNlcHQsXG4pXG5mb3IgKGNvbnN0IHJldW5pb24gb2YgT2JqZWN0LnZhbHVlcyhyZXVuaW9uQnlVaWQpKSB7XG4gIGlmIChcbiAgICAhW0V0YXRDeWNsZURlVmllLkNvbmZpcm3DqSwgRXRhdEN5Y2xlRGVWaWUuRXZlbnR1ZWxdLmluY2x1ZGVzKFxuICAgICAgcmV1bmlvbi5jeWNsZURlVmllLmV0YXQsXG4gICAgKVxuICApIHtcbiAgICBjb250aW51ZVxuICB9XG4gIGNvbnN0IHsgdGltZXN0YW1wRGVidXQsIHR5cGVSZXVuaW9uLCB1aWQgfSA9IHJldW5pb25cbiAgaWYgKHR5cGVSZXVuaW9uICE9PSBcIkdQXCIpIHtcbiAgICBjb250aW51ZVxuICB9XG4gIGlmIChcbiAgICB0aW1lc3RhbXBEZWJ1dC5nZXRGdWxsWWVhcigpICE9PSBub3cuZ2V0RnVsbFllYXIoKSB8fFxuICAgIHRpbWVzdGFtcERlYnV0LmdldE1vbnRoKCkgIT09IG5vdy5nZXRNb250aCgpIHx8XG4gICAgdGltZXN0YW1wRGVidXQuZ2V0RGF0ZSgpICE9PSBub3cuZ2V0RGF0ZSgpXG4gICkge1xuICAgIGNvbnRpbnVlXG4gIH1cbiAgY29uc29sZS5sb2codWlkLCB0aW1lc3RhbXBEZWJ1dCwgSlNPTi5zdHJpbmdpZnkocmV1bmlvbiwgbnVsbCwgMikpXG59XG5jb25zb2xlLmxvZyhub3cpXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBQW1ELFNBQUFELHVCQUFBTyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFFbkQsSUFBTUUsa0JBQWtCLEdBQUcsQ0FBQ0MsaUNBQW9CLENBQUM7QUFDakQsSUFBTUMsT0FBTyxHQUFHLElBQUFDLDJCQUFlLEVBQUNILGtCQUFrQixDQUFDO0FBRW5ELElBQU1JLEdBQUcsR0FBRyxJQUFJQyxJQUFJLENBQUMsQ0FBQztBQUN0QixJQUFBQyxrQkFBQSxHQUF5QixJQUFBQywwQkFBaUIsRUFDeENMLE9BQU8sQ0FBQ00sT0FBTyxFQUNmQyx5QkFBZSxDQUFDQyxPQUFPLEVBQ3ZCQyx5QkFBVyxDQUFDQyxPQUNkLENBQUM7RUFKT0MsWUFBWSxHQUFBUCxrQkFBQSxDQUFaTyxZQUFZO0FBS3BCLFNBQUFDLEVBQUEsTUFBQUMsY0FBQSxHQUFzQkMsTUFBTSxDQUFDQyxNQUFNLENBQUNKLFlBQVksQ0FBQyxFQUFBQyxFQUFBLEdBQUFDLGNBQUEsQ0FBQUcsTUFBQSxFQUFBSixFQUFBLElBQUU7RUFBOUMsSUFBTUssT0FBTyxHQUFBSixjQUFBLENBQUFELEVBQUE7RUFDaEIsSUFDRSxDQUFDLENBQUNNLHVCQUFjLENBQUNDLFFBQVEsRUFBRUQsdUJBQWMsQ0FBQ0UsUUFBUSxDQUFDLENBQUNDLFFBQVEsQ0FDMURKLE9BQU8sQ0FBQ0ssVUFBVSxDQUFDQyxJQUNyQixDQUFDLEVBQ0Q7SUFDQTtFQUNGO0VBQ0EsSUFBUUMsY0FBYyxHQUF1QlAsT0FBTyxDQUE1Q08sY0FBYztJQUFFQyxXQUFXLEdBQVVSLE9BQU8sQ0FBNUJRLFdBQVc7SUFBRUMsR0FBRyxHQUFLVCxPQUFPLENBQWZTLEdBQUc7RUFDeEMsSUFBSUQsV0FBVyxLQUFLLElBQUksRUFBRTtJQUN4QjtFQUNGO0VBQ0EsSUFDRUQsY0FBYyxDQUFDRyxXQUFXLENBQUMsQ0FBQyxLQUFLekIsR0FBRyxDQUFDeUIsV0FBVyxDQUFDLENBQUMsSUFDbERILGNBQWMsQ0FBQ0ksUUFBUSxDQUFDLENBQUMsS0FBSzFCLEdBQUcsQ0FBQzBCLFFBQVEsQ0FBQyxDQUFDLElBQzVDSixjQUFjLENBQUNLLE9BQU8sQ0FBQyxDQUFDLEtBQUszQixHQUFHLENBQUMyQixPQUFPLENBQUMsQ0FBQyxFQUMxQztJQUNBO0VBQ0Y7RUFDQUMsT0FBTyxDQUFDQyxHQUFHLENBQUNMLEdBQUcsRUFBRUYsY0FBYyxFQUFFUSxJQUFJLENBQUNDLFNBQVMsQ0FBQ2hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEU7QUFDQWEsT0FBTyxDQUFDQyxHQUFHLENBQUM3QixHQUFHLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -28,4 +28,4 @@ for (const reunion of Object.values(reunionByUid)) {
28
28
  console.log(uid, timestampDebut, JSON.stringify(reunion, null, 2));
29
29
  }
30
30
  console.log(now);
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkV0YXRDeWNsZURlVmllIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJMZWdpc2xhdHVyZSIsIm9wdGlvbnNEZWZpbml0aW9ucyIsIm9wdGlvbnMiLCJub3ciLCJEYXRlIiwicmV1bmlvbkJ5VWlkIiwiZGF0YURpciIsIkFnZW5kYXMiLCJEaXhTZXB0IiwicmV1bmlvbiIsIk9iamVjdCIsInZhbHVlcyIsIkNvbmZpcm3DqSIsIkV2ZW50dWVsIiwiaW5jbHVkZXMiLCJjeWNsZURlVmllIiwiZXRhdCIsInRpbWVzdGFtcERlYnV0IiwidHlwZVJldW5pb24iLCJ1aWQiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvZ2V0X3RvZGF5X3JldW5pb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcblxuaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHsgRXRhdEN5Y2xlRGVWaWUgfSBmcm9tIFwiLi4vdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBkYXRhRGlyRGVmYXVsdE9wdGlvbiB9IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuLi90eXBlcy9sZWdpc2xhdHVyZXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbZGF0YURpckRlZmF1bHRPcHRpb25dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuY29uc3Qgbm93ID0gbmV3IERhdGUoKVxuY29uc3QgeyByZXVuaW9uQnlVaWQgfSA9IGxvYWRBc3NlbWJsZWVEYXRhKFxuICBvcHRpb25zLmRhdGFEaXIsXG4gIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzLFxuICBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuKVxuZm9yIChjb25zdCByZXVuaW9uIG9mIE9iamVjdC52YWx1ZXMocmV1bmlvbkJ5VWlkKSkge1xuICBpZiAoXG4gICAgIVtFdGF0Q3ljbGVEZVZpZS5Db25maXJtw6ksIEV0YXRDeWNsZURlVmllLkV2ZW50dWVsXS5pbmNsdWRlcyhcbiAgICAgIHJldW5pb24uY3ljbGVEZVZpZS5ldGF0LFxuICAgIClcbiAgKSB7XG4gICAgY29udGludWVcbiAgfVxuICBjb25zdCB7IHRpbWVzdGFtcERlYnV0LCB0eXBlUmV1bmlvbiwgdWlkIH0gPSByZXVuaW9uXG4gIGlmICh0eXBlUmV1bmlvbiAhPT0gXCJHUFwiKSB7XG4gICAgY29udGludWVcbiAgfVxuICBpZiAoXG4gICAgdGltZXN0YW1wRGVidXQuZ2V0RnVsbFllYXIoKSAhPT0gbm93LmdldEZ1bGxZZWFyKCkgfHxcbiAgICB0aW1lc3RhbXBEZWJ1dC5nZXRNb250aCgpICE9PSBub3cuZ2V0TW9udGgoKSB8fFxuICAgIHRpbWVzdGFtcERlYnV0LmdldERhdGUoKSAhPT0gbm93LmdldERhdGUoKVxuICApIHtcbiAgICBjb250aW51ZVxuICB9XG4gIGNvbnNvbGUubG9nKHVpZCwgdGltZXN0YW1wRGVidXQsIEpTT04uc3RyaW5naWZ5KHJldW5pb24sIG51bGwsIDIpKVxufVxuY29uc29sZS5sb2cobm93KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxlQUFlLE1BQU0sbUJBQW1CO0FBQUEsU0FFdENDLGVBQWU7QUFBQSxTQUNmQyxpQkFBaUI7QUFBQSxTQUNqQkMsY0FBYztBQUFBLFNBQ2RDLG9CQUFvQjtBQUFBLFNBQ3BCQyxXQUFXO0FBRXBCLE1BQU1DLGtCQUFrQixHQUFHLENBQUNGLG9CQUFvQixDQUFDO0FBQ2pELE1BQU1HLE9BQU8sR0FBR1AsZUFBZSxDQUFDTSxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNRSxHQUFHLEdBQUcsSUFBSUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsTUFBTTtFQUFFQztBQUFhLENBQUMsR0FBR1IsaUJBQWlCLENBQ3hDSyxPQUFPLENBQUNJLE9BQU8sRUFDZlYsZUFBZSxDQUFDVyxPQUFPLEVBQ3ZCUCxXQUFXLENBQUNRLE9BQ2QsQ0FBQztBQUNELEtBQUssTUFBTUMsT0FBTyxJQUFJQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ04sWUFBWSxDQUFDLEVBQUU7RUFDakQsSUFDRSxDQUFDLENBQUNQLGNBQWMsQ0FBQ2MsUUFBUSxFQUFFZCxjQUFjLENBQUNlLFFBQVEsQ0FBQyxDQUFDQyxRQUFRLENBQzFETCxPQUFPLENBQUNNLFVBQVUsQ0FBQ0MsSUFDckIsQ0FBQyxFQUNEO0lBQ0E7RUFDRjtFQUNBLE1BQU07SUFBRUMsY0FBYztJQUFFQyxXQUFXO0lBQUVDO0VBQUksQ0FBQyxHQUFHVixPQUFPO0VBQ3BELElBQUlTLFdBQVcsS0FBSyxJQUFJLEVBQUU7SUFDeEI7RUFDRjtFQUNBLElBQ0VELGNBQWMsQ0FBQ0csV0FBVyxDQUFDLENBQUMsS0FBS2pCLEdBQUcsQ0FBQ2lCLFdBQVcsQ0FBQyxDQUFDLElBQ2xESCxjQUFjLENBQUNJLFFBQVEsQ0FBQyxDQUFDLEtBQUtsQixHQUFHLENBQUNrQixRQUFRLENBQUMsQ0FBQyxJQUM1Q0osY0FBYyxDQUFDSyxPQUFPLENBQUMsQ0FBQyxLQUFLbkIsR0FBRyxDQUFDbUIsT0FBTyxDQUFDLENBQUMsRUFDMUM7SUFDQTtFQUNGO0VBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDTCxHQUFHLEVBQUVGLGNBQWMsRUFBRVEsSUFBSSxDQUFDQyxTQUFTLENBQUNqQixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BFO0FBQ0FjLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDckIsR0FBRyxDQUFDIn0=
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkV0YXRDeWNsZURlVmllIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJMZWdpc2xhdHVyZSIsIm9wdGlvbnNEZWZpbml0aW9ucyIsIm9wdGlvbnMiLCJub3ciLCJEYXRlIiwicmV1bmlvbkJ5VWlkIiwiZGF0YURpciIsIkFnZW5kYXMiLCJEaXhTZXB0IiwicmV1bmlvbiIsIk9iamVjdCIsInZhbHVlcyIsIkNvbmZpcm3DqSIsIkV2ZW50dWVsIiwiaW5jbHVkZXMiLCJjeWNsZURlVmllIiwiZXRhdCIsInRpbWVzdGFtcERlYnV0IiwidHlwZVJldW5pb24iLCJ1aWQiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImNvbnNvbGUiLCJsb2ciLCJKU09OIiwic3RyaW5naWZ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvZ2V0X3RvZGF5X3JldW5pb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcblxuaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHsgRXRhdEN5Y2xlRGVWaWUgfSBmcm9tIFwiLi4vdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBkYXRhRGlyRGVmYXVsdE9wdGlvbiB9IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuLi90eXBlcy9sZWdpc2xhdHVyZXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbZGF0YURpckRlZmF1bHRPcHRpb25dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuY29uc3Qgbm93ID0gbmV3IERhdGUoKVxuY29uc3QgeyByZXVuaW9uQnlVaWQgfSA9IGxvYWRBc3NlbWJsZWVEYXRhKFxuICBvcHRpb25zLmRhdGFEaXIsXG4gIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzLFxuICBMZWdpc2xhdHVyZS5EaXhTZXB0LFxuKVxuZm9yIChjb25zdCByZXVuaW9uIG9mIE9iamVjdC52YWx1ZXMocmV1bmlvbkJ5VWlkKSkge1xuICBpZiAoXG4gICAgIVtFdGF0Q3ljbGVEZVZpZS5Db25maXJtw6ksIEV0YXRDeWNsZURlVmllLkV2ZW50dWVsXS5pbmNsdWRlcyhcbiAgICAgIHJldW5pb24uY3ljbGVEZVZpZS5ldGF0LFxuICAgIClcbiAgKSB7XG4gICAgY29udGludWVcbiAgfVxuICBjb25zdCB7IHRpbWVzdGFtcERlYnV0LCB0eXBlUmV1bmlvbiwgdWlkIH0gPSByZXVuaW9uXG4gIGlmICh0eXBlUmV1bmlvbiAhPT0gXCJHUFwiKSB7XG4gICAgY29udGludWVcbiAgfVxuICBpZiAoXG4gICAgdGltZXN0YW1wRGVidXQuZ2V0RnVsbFllYXIoKSAhPT0gbm93LmdldEZ1bGxZZWFyKCkgfHxcbiAgICB0aW1lc3RhbXBEZWJ1dC5nZXRNb250aCgpICE9PSBub3cuZ2V0TW9udGgoKSB8fFxuICAgIHRpbWVzdGFtcERlYnV0LmdldERhdGUoKSAhPT0gbm93LmdldERhdGUoKVxuICApIHtcbiAgICBjb250aW51ZVxuICB9XG4gIGNvbnNvbGUubG9nKHVpZCwgdGltZXN0YW1wRGVidXQsIEpTT04uc3RyaW5naWZ5KHJldW5pb24sIG51bGwsIDIpKVxufVxuY29uc29sZS5sb2cobm93KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxlQUFlLE1BQU0sbUJBQW1CO0FBQUEsU0FFdENDLGVBQWU7QUFBQSxTQUNmQyxpQkFBaUI7QUFBQSxTQUNqQkMsY0FBYztBQUFBLFNBQ2RDLG9CQUFvQjtBQUFBLFNBQ3BCQyxXQUFXO0FBRXBCLE1BQU1DLGtCQUFrQixHQUFHLENBQUNGLG9CQUFvQixDQUFDO0FBQ2pELE1BQU1HLE9BQU8sR0FBR1AsZUFBZSxDQUFDTSxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNRSxHQUFHLEdBQUcsSUFBSUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsTUFBTTtFQUFFQztBQUFhLENBQUMsR0FBR1IsaUJBQWlCLENBQ3hDSyxPQUFPLENBQUNJLE9BQU8sRUFDZlYsZUFBZSxDQUFDVyxPQUFPLEVBQ3ZCUCxXQUFXLENBQUNRLE9BQ2QsQ0FBQztBQUNELEtBQUssTUFBTUMsT0FBTyxJQUFJQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ04sWUFBWSxDQUFDLEVBQUU7RUFDakQsSUFDRSxDQUFDLENBQUNQLGNBQWMsQ0FBQ2MsUUFBUSxFQUFFZCxjQUFjLENBQUNlLFFBQVEsQ0FBQyxDQUFDQyxRQUFRLENBQzFETCxPQUFPLENBQUNNLFVBQVUsQ0FBQ0MsSUFDckIsQ0FBQyxFQUNEO0lBQ0E7RUFDRjtFQUNBLE1BQU07SUFBRUMsY0FBYztJQUFFQyxXQUFXO0lBQUVDO0VBQUksQ0FBQyxHQUFHVixPQUFPO0VBQ3BELElBQUlTLFdBQVcsS0FBSyxJQUFJLEVBQUU7SUFDeEI7RUFDRjtFQUNBLElBQ0VELGNBQWMsQ0FBQ0csV0FBVyxDQUFDLENBQUMsS0FBS2pCLEdBQUcsQ0FBQ2lCLFdBQVcsQ0FBQyxDQUFDLElBQ2xESCxjQUFjLENBQUNJLFFBQVEsQ0FBQyxDQUFDLEtBQUtsQixHQUFHLENBQUNrQixRQUFRLENBQUMsQ0FBQyxJQUM1Q0osY0FBYyxDQUFDSyxPQUFPLENBQUMsQ0FBQyxLQUFLbkIsR0FBRyxDQUFDbUIsT0FBTyxDQUFDLENBQUMsRUFDMUM7SUFDQTtFQUNGO0VBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDTCxHQUFHLEVBQUVGLGNBQWMsRUFBRVEsSUFBSSxDQUFDQyxTQUFTLENBQUNqQixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BFO0FBQ0FjLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDckIsR0FBRyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -17,6 +17,7 @@ require("core-js/modules/web.dom-collections.iterator.js");
17
17
  require("core-js/modules/es.array.concat.js");
18
18
  require("core-js/modules/es.array.join.js");
19
19
  require("core-js/modules/es.array.sort.js");
20
+ require("core-js/modules/es.date.to-json.js");
20
21
  require("core-js/modules/es.object.keys.js");
21
22
  require("core-js/modules/es.string.ends-with.js");
22
23
  var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
@@ -25,14 +26,14 @@ var _path = _interopRequireDefault(require("path"));
25
26
  var _datasets = require("../datasets");
26
27
  var _file_systems = require("../file_systems");
27
28
  var _cli_helpers = require("./shared/cli_helpers");
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
29
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
30
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
30
31
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
32
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
33
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
34
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
35
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
32
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
33
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
34
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
35
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
36
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
36
37
  var optionsDefinitions = [_cli_helpers.silentOption, _cli_helpers.verboseOption, _cli_helpers.dataDirDefaultOption];
37
38
  var options = (0, _commandLineArgs["default"])(optionsDefinitions);
38
39
  function mergeScrutins(dataDir) {
@@ -93,4 +94,4 @@ function mergeScrutins(dataDir) {
93
94
  }
94
95
  }
95
96
  mergeScrutins(options.dataDir);
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9jbGlfaGVscGVycyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiaXRlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJvIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsImxlbmd0aCIsImkiLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJlIiwiX2UiLCJmIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsImNhbGwiLCJzdGVwIiwibmV4dCIsIl9lMiIsIm1pbkxlbiIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsInNpbGVudE9wdGlvbiIsInZlcmJvc2VPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJtZXJnZVNjcnV0aW5zIiwiZGF0YURpciIsIl9pdGVyYXRvciIsImRhdGFzZXRzIiwic2NydXRpbnMiLCJfc3RlcCIsImRhdGFzZXQiLCJzdHJ1Y3R1cmUiLCJEYXRhc2V0U3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJvcmlnaW5hbEpzb25EaXIiLCJwYXRoIiwiam9pbiIsImZpbGVuYW1lIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsImRhdGFzZXRNZXJnZWRGaWxlUGF0aCIsImJhc2VuYW1lIiwiX2l0ZXJhdG9yMiIsIndhbGtEaXIiLCJfc3RlcDIiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwiZW5kc1dpdGgiLCJzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCIsImFwcGx5Iiwic2NydXRpbk9yaWdpbmFsSnNvbiIsImZzIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJzY3J1dGluT3JpZ2luYWwiLCJKU09OIiwicGFyc2UiLCJzY3J1dGluIiwicHVzaCIsInNvcnQiLCJhIiwiYiIsInVpZCIsImxvY2FsZUNvbXBhcmUiLCJ3cml0ZUZpbGVTeW5jIiwic3RyaW5naWZ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvbWVyZ2Vfc2NydXRpbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IGRhdGFzZXRzLCBEYXRhc2V0U3RydWN0dXJlIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7XG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtzaWxlbnRPcHRpb24sIHZlcmJvc2VPcHRpb24sIGRhdGFEaXJEZWZhdWx0T3B0aW9uXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIG1lcmdlU2NydXRpbnMoZGF0YURpcjogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbkRpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYE1lcmdpbmcgJHtvcmlnaW5hbEpzb25EaXJ9YClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBkYXRhc2V0TWVyZ2VkRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICBkYXRhRGlyLFxuICAgICAgICAgICAgcGF0aC5iYXNlbmFtZShvcmlnaW5hbEpzb25EaXIsIFwiLmpzb25cIikgKyBcIl9mdXNpb25uZS5qc29uXCIsXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgY29uc3Qgc2NydXRpbnMgPSBbXVxuICAgICAgICAgIGZvciAoY29uc3Qgc2NydXRpblNwbGl0UGF0aCBvZiB3YWxrRGlyKG9yaWdpbmFsSnNvbkRpcikpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlbmFtZSA9XG4gICAgICAgICAgICAgIHNjcnV0aW5TcGxpdFBhdGhbc2NydXRpblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgaWYgKCFzY3J1dGluRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NydXRpbk9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcixcbiAgICAgICAgICAgICAgLi4uc2NydXRpblNwbGl0UGF0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5PcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgc2NydXRpbk9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBzY3J1dGluT3JpZ2luYWw6IGFueSA9IEpTT04ucGFyc2Uoc2NydXRpbk9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgIGNvbnN0IHNjcnV0aW4gPSBzY3J1dGluT3JpZ2luYWwuc2NydXRpblxuICAgICAgICAgICAgc2NydXRpbnMucHVzaChzY3J1dGluKVxuICAgICAgICAgIH1cbiAgICAgICAgICBzY3J1dGlucy5zb3J0KChhOiB7IHVpZDogc3RyaW5nIH0sIGI6IHsgdWlkOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgICAgIGEudWlkLmxlbmd0aCA9PT0gYi51aWQubGVuZ3RoXG4gICAgICAgICAgICAgID8gYS51aWQubG9jYWxlQ29tcGFyZShiLnVpZClcbiAgICAgICAgICAgICAgOiBhLnVpZC5sZW5ndGggLSBiLnVpZC5sZW5ndGgsXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgICAgIGRhdGFzZXRNZXJnZWRGaWxlUGF0aCxcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsgc2NydXRpbnM6IHsgc2NydXRpbjogc2NydXRpbnMgfSB9LCBudWxsLCAyKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cblxubWVyZ2VTY3J1dGlucyhvcHRpb25zLmRh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
97
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9jbGlfaGVscGVycyIsImUiLCJfX2VzTW9kdWxlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwidCIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsInRlc3QiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwibWVyZ2VTY3J1dGlucyIsImRhdGFEaXIiLCJfaXRlcmF0b3IiLCJkYXRhc2V0cyIsInNjcnV0aW5zIiwiX3N0ZXAiLCJkYXRhc2V0Iiwic3RydWN0dXJlIiwiRGF0YXNldFN0cnVjdHVyZSIsIlNlZ21lbnRlZEZpbGVzIiwib3JpZ2luYWxKc29uRGlyIiwicGF0aCIsImpvaW4iLCJmaWxlbmFtZSIsInNpbGVudCIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJkYXRhc2V0TWVyZ2VkRmlsZVBhdGgiLCJiYXNlbmFtZSIsIl9pdGVyYXRvcjIiLCJ3YWxrRGlyIiwiX3N0ZXAyIiwic2NydXRpblNwbGl0UGF0aCIsInNjcnV0aW5GaWxlbmFtZSIsImVuZHNXaXRoIiwic2NydXRpbk9yaWdpbmFsRmlsZVBhdGgiLCJhcHBseSIsInNjcnV0aW5PcmlnaW5hbEpzb24iLCJmcyIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwic2NydXRpbk9yaWdpbmFsIiwiSlNPTiIsInBhcnNlIiwic2NydXRpbiIsInB1c2giLCJlcnIiLCJzb3J0IiwiYiIsInVpZCIsImxvY2FsZUNvbXBhcmUiLCJ3cml0ZUZpbGVTeW5jIiwic3RyaW5naWZ5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvbWVyZ2Vfc2NydXRpbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IGRhdGFzZXRzLCBEYXRhc2V0U3RydWN0dXJlIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7XG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtzaWxlbnRPcHRpb24sIHZlcmJvc2VPcHRpb24sIGRhdGFEaXJEZWZhdWx0T3B0aW9uXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIG1lcmdlU2NydXRpbnMoZGF0YURpcjogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbkRpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYE1lcmdpbmcgJHtvcmlnaW5hbEpzb25EaXJ9YClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBkYXRhc2V0TWVyZ2VkRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICBkYXRhRGlyLFxuICAgICAgICAgICAgcGF0aC5iYXNlbmFtZShvcmlnaW5hbEpzb25EaXIsIFwiLmpzb25cIikgKyBcIl9mdXNpb25uZS5qc29uXCIsXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgY29uc3Qgc2NydXRpbnMgPSBbXVxuICAgICAgICAgIGZvciAoY29uc3Qgc2NydXRpblNwbGl0UGF0aCBvZiB3YWxrRGlyKG9yaWdpbmFsSnNvbkRpcikpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlbmFtZSA9XG4gICAgICAgICAgICAgIHNjcnV0aW5TcGxpdFBhdGhbc2NydXRpblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgaWYgKCFzY3J1dGluRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2NydXRpbk9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcixcbiAgICAgICAgICAgICAgLi4uc2NydXRpblNwbGl0UGF0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5PcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgc2NydXRpbk9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBzY3J1dGluT3JpZ2luYWw6IGFueSA9IEpTT04ucGFyc2Uoc2NydXRpbk9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgIGNvbnN0IHNjcnV0aW4gPSBzY3J1dGluT3JpZ2luYWwuc2NydXRpblxuICAgICAgICAgICAgc2NydXRpbnMucHVzaChzY3J1dGluKVxuICAgICAgICAgIH1cbiAgICAgICAgICBzY3J1dGlucy5zb3J0KChhOiB7IHVpZDogc3RyaW5nIH0sIGI6IHsgdWlkOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgICAgIGEudWlkLmxlbmd0aCA9PT0gYi51aWQubGVuZ3RoXG4gICAgICAgICAgICAgID8gYS51aWQubG9jYWxlQ29tcGFyZShiLnVpZClcbiAgICAgICAgICAgICAgOiBhLnVpZC5sZW5ndGggLSBiLnVpZC5sZW5ndGgsXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgICAgIGRhdGFzZXRNZXJnZWRGaWxlUGF0aCxcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsgc2NydXRpbnM6IHsgc2NydXRpbjogc2NydXRpbnMgfSB9LCBudWxsLCAyKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cblxubWVyZ2VTY3J1dGlucyhvcHRpb25zLmRhdGFEaXIpXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFB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
@@ -44,4 +44,4 @@ function mergeScrutins(dataDir) {
44
44
  }
45
45
  }
46
46
  mergeScrutins(options.dataDir);
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJkYXRhc2V0cyIsIkRhdGFzZXRTdHJ1Y3R1cmUiLCJ3YWxrRGlyIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwib3B0aW9uc0RlZmluaXRpb25zIiwib3B0aW9ucyIsIm1lcmdlU2NydXRpbnMiLCJkYXRhRGlyIiwiZGF0YXNldCIsInNjcnV0aW5zIiwic3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJvcmlnaW5hbEpzb25EaXIiLCJqb2luIiwiZmlsZW5hbWUiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiZGF0YXNldE1lcmdlZEZpbGVQYXRoIiwiYmFzZW5hbWUiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwibGVuZ3RoIiwiZW5kc1dpdGgiLCJzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCIsInNjcnV0aW5PcmlnaW5hbEpzb24iLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsInNjcnV0aW5PcmlnaW5hbCIsIkpTT04iLCJwYXJzZSIsInNjcnV0aW4iLCJwdXNoIiwic29ydCIsImEiLCJiIiwidWlkIiwibG9jYWxlQ29tcGFyZSIsIndyaXRlRmlsZVN5bmMiLCJzdHJpbmdpZnkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9tZXJnZV9zY3J1dGlucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgZGF0YXNldHMsIERhdGFzZXRTdHJ1Y3R1cmUgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW3NpbGVudE9wdGlvbiwgdmVyYm9zZU9wdGlvbiwgZGF0YURpckRlZmF1bHRPcHRpb25dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuZnVuY3Rpb24gbWVyZ2VTY3J1dGlucyhkYXRhRGlyOiBzdHJpbmcpIHtcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgc3dpdGNoIChkYXRhc2V0LnN0cnVjdHVyZSkge1xuICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzOlxuICAgICAgICB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxKc29uRGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgTWVyZ2luZyAke29yaWdpbmFsSnNvbkRpcn1gKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRhdGFzZXRNZXJnZWRGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIGRhdGFEaXIsXG4gICAgICAgICAgICBwYXRoLmJhc2VuYW1lKG9yaWdpbmFsSnNvbkRpciwgXCIuanNvblwiKSArIFwiX2Z1c2lvbm5lLmpzb25cIixcbiAgICAgICAgICApXG5cbiAgICAgICAgICBjb25zdCBzY3J1dGlucyA9IFtdXG4gICAgICAgICAgZm9yIChjb25zdCBzY3J1dGluU3BsaXRQYXRoIG9mIHdhbGtEaXIob3JpZ2luYWxKc29uRGlyKSkge1xuICAgICAgICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID1cbiAgICAgICAgICAgICAgc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICBpZiAoIXNjcnV0aW5GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyLFxuICAgICAgICAgICAgICAuLi5zY3J1dGluU3BsaXRQYXRoLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3Qgc2NydXRpbk9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICBzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5PcmlnaW5hbDogYW55ID0gSlNPTi5wYXJzZShzY3J1dGluT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgY29uc3Qgc2NydXRpbiA9IHNjcnV0aW5PcmlnaW5hbC5zY3J1dGluXG4gICAgICAgICAgICBzY3J1dGlucy5wdXNoKHNjcnV0aW4pXG4gICAgICAgICAgfVxuICAgICAgICAgIHNjcnV0aW5zLnNvcnQoKGE6IHsgdWlkOiBzdHJpbmcgfSwgYjogeyB1aWQ6IHN0cmluZyB9KSA9PlxuICAgICAgICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICAgICAgICApXG5cbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgZGF0YXNldE1lcmdlZEZpbGVQYXRoLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBzY3J1dGluczogeyBzY3J1dGluOiBzY3J1dGlucyB9IH0sIG51bGwsIDIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuXG5tZXJnZVNjcnV0aW5zKG9wdGlvbnMuZGF0YURpcilcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsZUFBZSxNQUFNLG1CQUFtQjtBQUMvQyxPQUFPQyxFQUFFLE1BQU0sVUFBVTtBQUN6QixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUFBLFNBRWRDLFFBQVEsRUFBRUMsZ0JBQWdCO0FBQUEsU0FDMUJDLE9BQU87QUFBQSxTQUVkQyxvQkFBb0IsRUFDcEJDLFlBQVksRUFDWkMsYUFBYTtBQUdmLE1BQU1DLGtCQUFrQixHQUFHLENBQUNGLFlBQVksRUFBRUMsYUFBYSxFQUFFRixvQkFBb0IsQ0FBQztBQUM5RSxNQUFNSSxPQUFPLEdBQUdWLGVBQWUsQ0FBQ1Msa0JBQWtCLENBQUM7QUFFbkQsU0FBU0UsYUFBYUEsQ0FBQ0MsT0FBZSxFQUFFO0VBQ3RDLEtBQUssTUFBTUMsT0FBTyxJQUFJVixRQUFRLENBQUNXLFFBQVEsRUFBRTtJQUN2QyxRQUFRRCxPQUFPLENBQUNFLFNBQVM7TUFDdkIsS0FBS1gsZ0JBQWdCLENBQUNZLGNBQWM7UUFDbEM7VUFDRSxNQUFNQyxlQUF1QixHQUFHZixJQUFJLENBQUNnQixJQUFJLENBQUNOLE9BQU8sRUFBRUMsT0FBTyxDQUFDTSxRQUFRLENBQUM7VUFDcEUsSUFBSSxDQUFDVCxPQUFPLENBQUNVLE1BQU0sRUFBRTtZQUNuQkMsT0FBTyxDQUFDQyxHQUFHLENBQUUsV0FBVUwsZUFBZ0IsRUFBQyxDQUFDO1VBQzNDO1VBRUEsTUFBTU0scUJBQXFCLEdBQUdyQixJQUFJLENBQUNnQixJQUFJLENBQ3JDTixPQUFPLEVBQ1BWLElBQUksQ0FBQ3NCLFFBQVEsQ0FBQ1AsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLGdCQUM1QyxDQUFDO1VBRUQsTUFBTUgsUUFBUSxHQUFHLEVBQUU7VUFDbkIsS0FBSyxNQUFNVyxnQkFBZ0IsSUFBSXBCLE9BQU8sQ0FBQ1ksZUFBZSxDQUFDLEVBQUU7WUFDdkQsTUFBTVMsZUFBZSxHQUNuQkQsZ0JBQWdCLENBQUNBLGdCQUFnQixDQUFDRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQ0QsZUFBZSxDQUFDRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7Y0FDdEM7WUFDRjtZQUNBLE1BQU1DLHVCQUF1QixHQUFHM0IsSUFBSSxDQUFDZ0IsSUFBSSxDQUN2Q0QsZUFBZSxFQUNmLEdBQUdRLGdCQUNMLENBQUM7WUFDRCxNQUFNSyxtQkFBMkIsR0FBRzdCLEVBQUUsQ0FBQzhCLFlBQVksQ0FDakRGLHVCQUF1QixFQUN2QjtjQUNFRyxRQUFRLEVBQUU7WUFDWixDQUNGLENBQUM7WUFDRCxNQUFNQyxlQUFvQixHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0wsbUJBQW1CLENBQUM7WUFDNUQsTUFBTU0sT0FBTyxHQUFHSCxlQUFlLENBQUNHLE9BQU87WUFDdkN0QixRQUFRLENBQUN1QixJQUFJLENBQUNELE9BQU8sQ0FBQztVQUN4QjtVQUNBdEIsUUFBUSxDQUFDd0IsSUFBSSxDQUFDLENBQUNDLENBQWtCLEVBQUVDLENBQWtCLEtBQ25ERCxDQUFDLENBQUNFLEdBQUcsQ0FBQ2QsTUFBTSxLQUFLYSxDQUFDLENBQUNDLEdBQUcsQ0FBQ2QsTUFBTSxHQUN6QlksQ0FBQyxDQUFDRSxHQUFHLENBQUNDLGFBQWEsQ0FBQ0YsQ0FBQyxDQUFDQyxHQUFHLENBQUMsR0FDMUJGLENBQUMsQ0FBQ0UsR0FBRyxDQUFDZCxNQUFNLEdBQUdhLENBQUMsQ0FBQ0MsR0FBRyxDQUFDZCxNQUMzQixDQUFDO1VBRUQxQixFQUFFLENBQUMwQyxhQUFhLENBQ2RwQixxQkFBcUIsRUFDckJXLElBQUksQ0FBQ1UsU0FBUyxDQUFDO1lBQUU5QixRQUFRLEVBQUU7Y0FBRXNCLE9BQU8sRUFBRXRCO1lBQVM7VUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUM1RDtZQUNFa0IsUUFBUSxFQUFFO1VBQ1osQ0FDRixDQUFDO1FBQ0g7UUFDQTtJQUNKO0VBQ0Y7QUFDRjtBQUVBckIsYUFBYSxDQUFDRCxPQUFPLENBQUNFLE9BQU8sQ0FBQyJ9
47
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJkYXRhc2V0cyIsIkRhdGFzZXRTdHJ1Y3R1cmUiLCJ3YWxrRGlyIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwib3B0aW9uc0RlZmluaXRpb25zIiwib3B0aW9ucyIsIm1lcmdlU2NydXRpbnMiLCJkYXRhRGlyIiwiZGF0YXNldCIsInNjcnV0aW5zIiwic3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJvcmlnaW5hbEpzb25EaXIiLCJqb2luIiwiZmlsZW5hbWUiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiZGF0YXNldE1lcmdlZEZpbGVQYXRoIiwiYmFzZW5hbWUiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwibGVuZ3RoIiwiZW5kc1dpdGgiLCJzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCIsInNjcnV0aW5PcmlnaW5hbEpzb24iLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsInNjcnV0aW5PcmlnaW5hbCIsIkpTT04iLCJwYXJzZSIsInNjcnV0aW4iLCJwdXNoIiwic29ydCIsImEiLCJiIiwidWlkIiwibG9jYWxlQ29tcGFyZSIsIndyaXRlRmlsZVN5bmMiLCJzdHJpbmdpZnkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9tZXJnZV9zY3J1dGlucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgZGF0YXNldHMsIERhdGFzZXRTdHJ1Y3R1cmUgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW3NpbGVudE9wdGlvbiwgdmVyYm9zZU9wdGlvbiwgZGF0YURpckRlZmF1bHRPcHRpb25dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuZnVuY3Rpb24gbWVyZ2VTY3J1dGlucyhkYXRhRGlyOiBzdHJpbmcpIHtcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgc3dpdGNoIChkYXRhc2V0LnN0cnVjdHVyZSkge1xuICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzOlxuICAgICAgICB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxKc29uRGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgTWVyZ2luZyAke29yaWdpbmFsSnNvbkRpcn1gKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRhdGFzZXRNZXJnZWRGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIGRhdGFEaXIsXG4gICAgICAgICAgICBwYXRoLmJhc2VuYW1lKG9yaWdpbmFsSnNvbkRpciwgXCIuanNvblwiKSArIFwiX2Z1c2lvbm5lLmpzb25cIixcbiAgICAgICAgICApXG5cbiAgICAgICAgICBjb25zdCBzY3J1dGlucyA9IFtdXG4gICAgICAgICAgZm9yIChjb25zdCBzY3J1dGluU3BsaXRQYXRoIG9mIHdhbGtEaXIob3JpZ2luYWxKc29uRGlyKSkge1xuICAgICAgICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID1cbiAgICAgICAgICAgICAgc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICBpZiAoIXNjcnV0aW5GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyLFxuICAgICAgICAgICAgICAuLi5zY3J1dGluU3BsaXRQYXRoLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3Qgc2NydXRpbk9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICBzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5PcmlnaW5hbDogYW55ID0gSlNPTi5wYXJzZShzY3J1dGluT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgY29uc3Qgc2NydXRpbiA9IHNjcnV0aW5PcmlnaW5hbC5zY3J1dGluXG4gICAgICAgICAgICBzY3J1dGlucy5wdXNoKHNjcnV0aW4pXG4gICAgICAgICAgfVxuICAgICAgICAgIHNjcnV0aW5zLnNvcnQoKGE6IHsgdWlkOiBzdHJpbmcgfSwgYjogeyB1aWQ6IHN0cmluZyB9KSA9PlxuICAgICAgICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICAgICAgICApXG5cbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgZGF0YXNldE1lcmdlZEZpbGVQYXRoLFxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBzY3J1dGluczogeyBzY3J1dGluOiBzY3J1dGlucyB9IH0sIG51bGwsIDIpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuXG5tZXJnZVNjcnV0aW5zKG9wdGlvbnMuZGF0YURpcilcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsZUFBZSxNQUFNLG1CQUFtQjtBQUMvQyxPQUFPQyxFQUFFLE1BQU0sVUFBVTtBQUN6QixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUFBLFNBRWRDLFFBQVEsRUFBRUMsZ0JBQWdCO0FBQUEsU0FDMUJDLE9BQU87QUFBQSxTQUVkQyxvQkFBb0IsRUFDcEJDLFlBQVksRUFDWkMsYUFBYTtBQUdmLE1BQU1DLGtCQUFrQixHQUFHLENBQUNGLFlBQVksRUFBRUMsYUFBYSxFQUFFRixvQkFBb0IsQ0FBQztBQUM5RSxNQUFNSSxPQUFPLEdBQUdWLGVBQWUsQ0FBQ1Msa0JBQWtCLENBQUM7QUFFbkQsU0FBU0UsYUFBYUEsQ0FBQ0MsT0FBZSxFQUFFO0VBQ3RDLEtBQUssTUFBTUMsT0FBTyxJQUFJVixRQUFRLENBQUNXLFFBQVEsRUFBRTtJQUN2QyxRQUFRRCxPQUFPLENBQUNFLFNBQVM7TUFDdkIsS0FBS1gsZ0JBQWdCLENBQUNZLGNBQWM7UUFDbEM7VUFDRSxNQUFNQyxlQUF1QixHQUFHZixJQUFJLENBQUNnQixJQUFJLENBQUNOLE9BQU8sRUFBRUMsT0FBTyxDQUFDTSxRQUFRLENBQUM7VUFDcEUsSUFBSSxDQUFDVCxPQUFPLENBQUNVLE1BQU0sRUFBRTtZQUNuQkMsT0FBTyxDQUFDQyxHQUFHLENBQUMsV0FBV0wsZUFBZSxFQUFFLENBQUM7VUFDM0M7VUFFQSxNQUFNTSxxQkFBcUIsR0FBR3JCLElBQUksQ0FBQ2dCLElBQUksQ0FDckNOLE9BQU8sRUFDUFYsSUFBSSxDQUFDc0IsUUFBUSxDQUFDUCxlQUFlLEVBQUUsT0FBTyxDQUFDLEdBQUcsZ0JBQzVDLENBQUM7VUFFRCxNQUFNSCxRQUFRLEdBQUcsRUFBRTtVQUNuQixLQUFLLE1BQU1XLGdCQUFnQixJQUFJcEIsT0FBTyxDQUFDWSxlQUFlLENBQUMsRUFBRTtZQUN2RCxNQUFNUyxlQUFlLEdBQ25CRCxnQkFBZ0IsQ0FBQ0EsZ0JBQWdCLENBQUNFLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDRCxlQUFlLENBQUNFLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtjQUN0QztZQUNGO1lBQ0EsTUFBTUMsdUJBQXVCLEdBQUczQixJQUFJLENBQUNnQixJQUFJLENBQ3ZDRCxlQUFlLEVBQ2YsR0FBR1EsZ0JBQ0wsQ0FBQztZQUNELE1BQU1LLG1CQUEyQixHQUFHN0IsRUFBRSxDQUFDOEIsWUFBWSxDQUNqREYsdUJBQXVCLEVBQ3ZCO2NBQ0VHLFFBQVEsRUFBRTtZQUNaLENBQ0YsQ0FBQztZQUNELE1BQU1DLGVBQW9CLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDTCxtQkFBbUIsQ0FBQztZQUM1RCxNQUFNTSxPQUFPLEdBQUdILGVBQWUsQ0FBQ0csT0FBTztZQUN2Q3RCLFFBQVEsQ0FBQ3VCLElBQUksQ0FBQ0QsT0FBTyxDQUFDO1VBQ3hCO1VBQ0F0QixRQUFRLENBQUN3QixJQUFJLENBQUMsQ0FBQ0MsQ0FBa0IsRUFBRUMsQ0FBa0IsS0FDbkRELENBQUMsQ0FBQ0UsR0FBRyxDQUFDZCxNQUFNLEtBQUthLENBQUMsQ0FBQ0MsR0FBRyxDQUFDZCxNQUFNLEdBQ3pCWSxDQUFDLENBQUNFLEdBQUcsQ0FBQ0MsYUFBYSxDQUFDRixDQUFDLENBQUNDLEdBQUcsQ0FBQyxHQUMxQkYsQ0FBQyxDQUFDRSxHQUFHLENBQUNkLE1BQU0sR0FBR2EsQ0FBQyxDQUFDQyxHQUFHLENBQUNkLE1BQzNCLENBQUM7VUFFRDFCLEVBQUUsQ0FBQzBDLGFBQWEsQ0FDZHBCLHFCQUFxQixFQUNyQlcsSUFBSSxDQUFDVSxTQUFTLENBQUM7WUFBRTlCLFFBQVEsRUFBRTtjQUFFc0IsT0FBTyxFQUFFdEI7WUFBUztVQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQzVEO1lBQ0VrQixRQUFRLEVBQUU7VUFDWixDQUNGLENBQUM7UUFDSDtRQUNBO0lBQ0o7RUFDRjtBQUNGO0FBRUFyQixhQUFhLENBQUNELE9BQU8sQ0FBQ0UsT0FBTyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -16,6 +16,7 @@ require("core-js/modules/es.string.iterator.js");
16
16
  require("core-js/modules/web.dom-collections.iterator.js");
17
17
  require("core-js/modules/es.array.concat.js");
18
18
  require("core-js/modules/es.array.join.js");
19
+ require("core-js/modules/es.date.to-json.js");
19
20
  require("core-js/modules/es.string.ends-with.js");
20
21
  require("core-js/modules/es.string.starts-with.js");
21
22
  var _assert = _interopRequireDefault(require("assert"));
@@ -24,10 +25,10 @@ var _fsExtra = _interopRequireDefault(require("fs-extra"));
24
25
  var _path = _interopRequireDefault(require("path"));
25
26
  var _documents = require("../parsers/documents");
26
27
  var _cli_helpers = require("./shared/cli_helpers");
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
28
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
29
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
30
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } // import { execSync } from "child_process"
28
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
29
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
30
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
31
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } // import { execSync } from "child_process"
31
32
  // import { EnabledDatasets } from "../datasets"
32
33
  // import { loadAssembleeData } from "../loaders"
33
34
  // import { Document, TypeDocument } from "../types/dossiers_legislatifs"
@@ -167,4 +168,4 @@ function parseTextesLois() {
167
168
  return 0;
168
169
  }
169
170
  process.exit(parseTextesLois());
170
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzRXh0cmEiLCJfcGF0aCIsIl9kb2N1bWVudHMiLCJfY2xpX2hlbHBlcnMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJvIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiaSIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImUiLCJfZSIsImYiLCJUeXBlRXJyb3IiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwiY2FsbCIsInN0ZXAiLCJuZXh0IiwiX2UyIiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJhcnIiLCJsZW4iLCJhcnIyIiwib3B0aW9uc0RlZmluaXRpb25zIiwiY29tbWl0T3B0aW9uIiwicmVtb3RlT3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJhbGlhcyIsImhlbHAiLCJ0eXBlIiwiU3RyaW5nIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsInBhcnNlVGV4dGVzTG9pcyIsImFzc2VydCIsImNvbW1pdCIsImZpbGVuYW1lIiwiZGF0YURpciIsInRleHRlc0xvaXNEaXIiLCJwYXRoIiwiam9pbiIsImxlZ2lzbGF0dXJlIiwiX2l0ZXJhdG9yIiwiZnMiLCJyZWFkZGlyU3luYyIsIl9zdGVwIiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwidGV4dGVMb2lQYXRoIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsInRleHRlTG9pUGFnZSIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwidGV4dGVMb2lVcmwiLCJ0ZXh0ZUxvaVBhcnNlZCIsInBhcnNlVGV4dGVMb2kiLCJ2ZXJib3NlIiwiSlNPTiIsInN0cmluZ2lmeSIsInN1YmRpdmlzaW9ucyIsImVycm9yIiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9wYXJzZV90ZXh0ZXNfbG9pcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuLy8gaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuLy8gaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbi8vIGltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHsgcGFyc2VUZXh0ZUxvaSB9IGZyb20gXCIuLi9wYXJzZXJzL2RvY3VtZW50c1wiXG4vLyBpbXBvcnQgeyBEb2N1bWVudCwgVHlwZURvY3VtZW50IH0gZnJvbSBcIi4uL3R5cGVzL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzXCJcbi8vIGltcG9ydCB7IERvY3VtZW50VXJsRm9ybWF0LCB1cmxGcm9tRG9jdW1lbnQgfSBmcm9tIFwiLi4vdXJsc1wiXG5pbXBvcnQge1xuICBjb21taXRPcHRpb24sXG4gIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgY29tbWl0T3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICB7XG4gICAgYWxpYXM6IFwiZlwiLFxuICAgIGhlbHA6IFwiRmlsZW5hbWUgb2YgQXNzZW1ibMOpZSdzIGRvY3VtZW50IHRvIHBhcnNlXCIsXG4gICAgbmFtZTogXCJmaWxlbmFtZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5mdW5jdGlvbiBwYXJzZVRleHRlc0xvaXMoKTogbnVtYmVyIHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLmZpbGVuYW1lLFxuICAgICdPcHRpb25zIFwiY29tbWl0XCIgJiBcImZpbGVuYW1lXCIgYXJlIGluY29tcGF0aWJsZScsXG4gIClcblxuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIC8vIGNvbnN0IHsgZG9jdW1lbnRCeVVpZCB9ID0gbG9hZEFzc2VtYmxlZURhdGEoXG4gIC8vICAgZGF0YURpcixcbiAgLy8gICBFbmFibGVkRGF0YXNldHMuRG9zc2llcnNMZWdpc2xhdGlmcyxcbiAgLy8gICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICAvLyApXG5cbiAgY29uc3QgdGV4dGVzTG9pc0RpciA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIFwid3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnJcIixcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICAgIFwidGV4dGVzXCIsXG4gIClcbiAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyh0ZXh0ZXNMb2lzRGlyKSkge1xuICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmICghZmlsZW5hbWUuZW5kc1dpdGgoXCIuYXNwXCIpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAob3B0aW9ucy5maWxlbmFtZSAmJiAhZmlsZW5hbWUuc3RhcnRzV2l0aChvcHRpb25zLmZpbGVuYW1lKSkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgdGV4dGVMb2lQYXRoID0gcGF0aC5qb2luKHRleHRlc0xvaXNEaXIsIGZpbGVuYW1lKVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBQYXJzaW5nIFwidGV4dGUgZGUgbG9pXCIgJHt0ZXh0ZUxvaVBhdGh94oCmYClcbiAgICB9XG4gICAgY29uc3QgdGV4dGVMb2lQYWdlID0gZnMucmVhZEZpbGVTeW5jKHRleHRlTG9pUGF0aCwgeyBlbmNvZGluZzogXCJ1dGYtOFwiIH0pXG4gICAgY29uc3QgdGV4dGVMb2lVcmwgPSBgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLyR7b3B0aW9ucy5sZWdpc2xhdHVyZX0vdGV4dGVzLyR7ZmlsZW5hbWV9YFxuICAgIGNvbnN0IHRleHRlTG9pUGFyc2VkID0gcGFyc2VUZXh0ZUxvaSh0ZXh0ZUxvaVVybCwgdGV4dGVMb2lQYWdlKVxuICAgIGlmIChvcHRpb25zLmZpbGVuYW1lICYmIG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkodGV4dGVMb2lQYXJzZWQuc3ViZGl2aXNpb25zLCBudWxsLCAyKSlcbiAgICB9XG4gICAgY29uc3QgeyBlcnJvciB9ID0gdGV4dGVMb2lQYXJzZWRcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGAgIEVycm9yIHdoaWxlIHBhcnNpbmcgcGFnZSBcIiR7dGV4dGVMb2lQYXRofVwiOlxcblxcbkVycm9yOlxcbiR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICAyLFxuICAgICAgICApfWAsXG4gICAgICApXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgfVxuXG4gIC8vIGZzLmVuc3VyZURpclN5bmModGV4dGVzTG9pc0RpcilcbiAgLy8gaWYgKCFvcHRpb25zLnVpZCkge1xuICAvLyAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmModGV4dGVzTG9pc0RpcikpIHtcbiAgLy8gICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgLy8gICAgICAgY29udGludWVcbiAgLy8gICAgIH1cbiAgLy8gICAgIGZzLnJlbW92ZVN5bmMocGF0aC5qb2luKHRleHRlc0xvaXNEaXIsIGZpbGVuYW1lKSlcbiAgLy8gICB9XG4gIC8vIH1cblxuICAvLyBjb25zdCB0ZXh0ZXNMb2lzID0gT2JqZWN0LnZhbHVlcyhkb2N1bWVudEJ5VWlkKVxuICAvLyAgIC5maWx0ZXIoZG9jdW1lbnQgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgLy8gICAuZmlsdGVyKFxuICAvLyAgICAgZG9jdW1lbnQgPT4gZG9jdW1lbnQudWlkLnN0YXJ0c1dpdGgoXCJQSU9OQU5cIikgfHwgZG9jdW1lbnQudWlkLnN0YXJ0c1dpdGgoXCJQUkpMQU5cIiksXG4gIC8vICAgKVxuICAvLyAgIC5tYXAoZG9jdW1lbnQgPT4ge1xuICAvLyAgICAgcmV0dXJuIHtcbiAgLy8gICAgICAgLi4uZG9jdW1lbnQsXG4gIC8vICAgICAgIHJhd0RvY3VtZW50QXNzZW1ibGVlVXJsOiB1cmxGcm9tRG9jdW1lbnQoZG9jdW1lbnQsIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwpLFxuICAvLyAgICAgfVxuICAvLyAgIH0pXG4gIC8vICAgLnNvcnQoKGEsIGIpID0+XG4gIC8vICAgICBhLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsID09PSBudWxsXG4gIC8vICAgICAgID8gLTFcbiAgLy8gICAgICAgOiBiLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsID09PSBudWxsXG4gIC8vICAgICAgID8gMVxuICAvLyAgICAgICA6IGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwubG9jYWxlQ29tcGFyZShiLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKSxcbiAgLy8gICApXG5cbiAgLy8gY29uc3QgZmlyc3RVaWQgPSBvcHRpb25zLnVpZFxuICAvLyBsZXQgc2tpcCA9ICEhZmlyc3RVaWRcbiAgLy8gZm9yIChjb25zdCB0ZXh0ZUxvaSBvZiB0ZXh0ZXNMb2lzKSB7XG4gIC8vICAgaWYgKHNraXApIHtcbiAgLy8gICAgIGlmICh0ZXh0ZUxvaS51aWQgPT09IGZpcnN0VWlkKSB7XG4gIC8vICAgICAgIHNraXAgPSBmYWxzZVxuICAvLyAgICAgfSBlbHNlIHtcbiAgLy8gICAgICAgY29udGludWVcbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAvLyAgICAgY29uc29sZS5sb2coXG4gIC8vICAgICAgIGBSZXRyaWV2aW5nIGJpbGwgJHt0ZXh0ZUxvaS51aWR9IGF0ICR7dGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmx9YCxcbiAgLy8gICAgIClcbiAgLy8gICB9XG4gIC8vICAgaWYgKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsID09PSBudWxsKSB7XG4gIC8vICAgICBjb250aW51ZVxuICAvLyAgIH1cbiAgLy8gICBjb25zdCB1cmwgPSBuZXcgVVJMKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAvLyAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFEaXIsIHVybC5ob3N0bmFtZSwgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSlcbiAgLy8gICBhc3NlcnQuc3RyaWN0RXF1YWwodGV4dGVzTG9pc0RpciwgcGF0aC5kaXJuYW1lKGZpbGVQYXRoKSlcblxuICAvLyAgIGxldCBwYWdlID0gdW5kZWZpbmVkXG4gIC8vICAgdHJ5IHtcbiAgLy8gICAgIHBhZ2UgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmLThcIiB9KVxuICAvLyAgIH0gY2F0Y2ggKGUpIHtcbiAgLy8gICAgIGlmIChlLmNvZGUgPT09IFwiRU5PRU5UXCIpIHtcbiAgLy8gICAgICAgY29udGludWVcbiAgLy8gICAgIH1cbiAgLy8gICAgIHRocm93IGVcbiAgLy8gICB9XG5cbiAgLy8gICBpZiAob3B0aW9ucy5wYXJzZSkge1xuICAvLyAgICAgY29uc3QgdGV4dGVMb2lQYXJzZWQgPSBwYXJzZVRleHRlTG9pKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsLCBwYWdlKVxuICAvLyAgICAgY29uc3QgeyBlcnJvciB9ID0gdGV4dGVMb2lQYXJzZWRcbiAgLy8gICAgIGlmIChlcnJvcikge1xuICAvLyAgICAgICBjb25zb2xlLmVycm9yKFxuICAvLyAgICAgICAgIGBFcnJvciB3aGlsZSBwYXJzaW5nIHBhZ2UgXCIke3RleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsfVwiICh1aWQ6ICR7XG4gIC8vICAgICAgICAgICB0ZXh0ZUxvaS51aWRcbiAgLy8gICAgICAgICB9KTpcXG5cXG5FcnJvcjpcXG4ke0pTT04uc3RyaW5naWZ5KGVycm9yLCBudWxsLCAyKX1gLFxuICAvLyAgICAgICApXG4gIC8vICAgICAgIGNvbnRpbnVlXG4gIC8vICAgICB9XG4gIC8vICAgfVxuICAvLyB9XG4gIC8vIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAvLyAgIHJldHVybiBnaXQuY29tbWl0QW5kUHVzaCh0ZXh0ZXNMb2lzRGlyLCBcIk5vdXZlbGxlIG1vaXNzb25cIiwgb3B0aW9ucy5yZW1vdGUpXG4gIC8vIH1cbiAgcmV0dXJuIDBcbn1cblxucHJvY2Vzcy5leGl0KHBhcnNlVGV4dGVzTG9pcygpKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFB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SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0lBRUE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztJQUVBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VBQUEsU0FBQTdELEdBQUE7SUFBQXdDLFNBQUEsQ0FBQTlDLENBQUEsQ0FBQU0sR0FBQTtFQUFBO0lBQUF3QyxTQUFBLENBQUE1QyxDQUFBO0VBQUE7RUFDQSxPQUFPLENBQUM7QUFDVjtBQUVBa0UsT0FBTyxDQUFDQyxJQUFJLENBQUNoQyxlQUFlLENBQUMsQ0FBQyxDQUFDIn0=
171
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzRXh0cmEiLCJfcGF0aCIsIl9kb2N1bWVudHMiLCJfY2xpX2hlbHBlcnMiLCJlIiwiX19lc01vZHVsZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJjb21taXRPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJsZWdpc2xhdHVyZU9wdGlvbiIsInNpbGVudE9wdGlvbiIsInZlcmJvc2VPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsImFsaWFzIiwiaGVscCIsInR5cGUiLCJTdHJpbmciLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicGFyc2VUZXh0ZXNMb2lzIiwiYXNzZXJ0IiwiY29tbWl0IiwiZmlsZW5hbWUiLCJkYXRhRGlyIiwidGV4dGVzTG9pc0RpciIsInBhdGgiLCJqb2luIiwibGVnaXNsYXR1cmUiLCJfaXRlcmF0b3IiLCJmcyIsInJlYWRkaXJTeW5jIiwiX3N0ZXAiLCJlbmRzV2l0aCIsInN0YXJ0c1dpdGgiLCJ0ZXh0ZUxvaVBhdGgiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiY29uY2F0IiwidGV4dGVMb2lQYWdlIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ0ZXh0ZUxvaVVybCIsInRleHRlTG9pUGFyc2VkIiwicGFyc2VUZXh0ZUxvaSIsInZlcmJvc2UiLCJKU09OIiwic3RyaW5naWZ5Iiwic3ViZGl2aXNpb25zIiwiZXJyb3IiLCJlcnIiLCJwcm9jZXNzIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3BhcnNlX3RleHRlc19sb2lzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG4vLyBpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG4vLyBpbXBvcnQgeyBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuLy8gaW1wb3J0IHsgbG9hZEFzc2VtYmxlZURhdGEgfSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQgeyBwYXJzZVRleHRlTG9pIH0gZnJvbSBcIi4uL3BhcnNlcnMvZG9jdW1lbnRzXCJcbi8vIGltcG9ydCB7IERvY3VtZW50LCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuLy8gaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCB9IGZyb20gXCIuLi91cmxzXCJcbmltcG9ydCB7XG4gIGNvbW1pdE9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICB2ZXJib3NlT3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICBjb21taXRPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHtcbiAgICBhbGlhczogXCJmXCIsXG4gICAgaGVscDogXCJGaWxlbmFtZSBvZiBBc3NlbWJsw6llJ3MgZG9jdW1lbnQgdG8gcGFyc2VcIixcbiAgICBuYW1lOiBcImZpbGVuYW1lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIHBhcnNlVGV4dGVzTG9pcygpOiBudW1iZXIge1xuICBhc3NlcnQoXG4gICAgIW9wdGlvbnMuY29tbWl0IHx8IG9wdGlvbnMuZmlsZW5hbWUsXG4gICAgJ09wdGlvbnMgXCJjb21taXRcIiAmIFwiZmlsZW5hbWVcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgLy8gY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgLy8gICBkYXRhRGlyLFxuICAvLyAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAvLyAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIC8vIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKCFmaWxlbmFtZS5lbmRzV2l0aChcIi5hc3BcIikpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChvcHRpb25zLmZpbGVuYW1lICYmICFmaWxlbmFtZS5zdGFydHNXaXRoKG9wdGlvbnMuZmlsZW5hbWUpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCB0ZXh0ZUxvaVBhdGggPSBwYXRoLmpvaW4odGV4dGVzTG9pc0RpciwgZmlsZW5hbWUpXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYFBhcnNpbmcgXCJ0ZXh0ZSBkZSBsb2lcIiAke3RleHRlTG9pUGF0aH3igKZgKVxuICAgIH1cbiAgICBjb25zdCB0ZXh0ZUxvaVBhZ2UgPSBmcy5yZWFkRmlsZVN5bmModGV4dGVMb2lQYXRoLCB7IGVuY29kaW5nOiBcInV0Zi04XCIgfSlcbiAgICBjb25zdCB0ZXh0ZUxvaVVybCA9IGBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvJHtvcHRpb25zLmxlZ2lzbGF0dXJlfS90ZXh0ZXMvJHtmaWxlbmFtZX1gXG4gICAgY29uc3QgdGV4dGVMb2lQYXJzZWQgPSBwYXJzZVRleHRlTG9pKHRleHRlTG9pVXJsLCB0ZXh0ZUxvaVBhZ2UpXG4gICAgaWYgKG9wdGlvbnMuZmlsZW5hbWUgJiYgb3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0ZXh0ZUxvaVBhcnNlZC5zdWJkaXZpc2lvbnMsIG51bGwsIDIpKVxuICAgIH1cbiAgICBjb25zdCB7IGVycm9yIH0gPSB0ZXh0ZUxvaVBhcnNlZFxuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYCAgRXJyb3Igd2hpbGUgcGFyc2luZyBwYWdlIFwiJHt0ZXh0ZUxvaVBhdGh9XCI6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIDIsXG4gICAgICAgICl9YCxcbiAgICAgIClcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICB9XG5cbiAgLy8gZnMuZW5zdXJlRGlyU3luYyh0ZXh0ZXNMb2lzRGlyKVxuICAvLyBpZiAoIW9wdGlvbnMudWlkKSB7XG4gIC8vICAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyh0ZXh0ZXNMb2lzRGlyKSkge1xuICAvLyAgICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAvLyAgICAgICBjb250aW51ZVxuICAvLyAgICAgfVxuICAvLyAgICAgZnMucmVtb3ZlU3luYyhwYXRoLmpvaW4odGV4dGVzTG9pc0RpciwgZmlsZW5hbWUpKVxuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8vIGNvbnN0IHRleHRlc0xvaXMgPSBPYmplY3QudmFsdWVzKGRvY3VtZW50QnlVaWQpXG4gIC8vICAgLmZpbHRlcihkb2N1bWVudCA9PiBkb2N1bWVudC54c2lUeXBlID09PSBUeXBlRG9jdW1lbnQuVGV4dGVMb2lUeXBlKVxuICAvLyAgIC5maWx0ZXIoXG4gIC8vICAgICBkb2N1bWVudCA9PiBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgLy8gICApXG4gIC8vICAgLm1hcChkb2N1bWVudCA9PiB7XG4gIC8vICAgICByZXR1cm4ge1xuICAvLyAgICAgICAuLi5kb2N1bWVudCxcbiAgLy8gICAgICAgcmF3RG9jdW1lbnRBc3NlbWJsZWVVcmw6IHVybEZyb21Eb2N1bWVudChkb2N1bWVudCwgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCksXG4gIC8vICAgICB9XG4gIC8vICAgfSlcbiAgLy8gICAuc29ydCgoYSwgYikgPT5cbiAgLy8gICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgLy8gICAgICAgPyAtMVxuICAvLyAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgLy8gICAgICAgPyAxXG4gIC8vICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAvLyAgIClcblxuICAvLyBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIC8vIGxldCBza2lwID0gISFmaXJzdFVpZFxuICAvLyBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgLy8gICBpZiAoc2tpcCkge1xuICAvLyAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgLy8gICAgICAgc2tpcCA9IGZhbHNlXG4gIC8vICAgICB9IGVsc2Uge1xuICAvLyAgICAgICBjb250aW51ZVxuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gIC8vICAgICBjb25zb2xlLmxvZyhcbiAgLy8gICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAvLyAgICAgKVxuICAvLyAgIH1cbiAgLy8gICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgLy8gICAgIGNvbnRpbnVlXG4gIC8vICAgfVxuICAvLyAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gIC8vICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YURpciwgdXJsLmhvc3RuYW1lLCAuLi51cmwucGF0aG5hbWUuc3BsaXQoXCIvXCIpKVxuICAvLyAgIGFzc2VydC5zdHJpY3RFcXVhbCh0ZXh0ZXNMb2lzRGlyLCBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpKVxuXG4gIC8vICAgbGV0IHBhZ2UgPSB1bmRlZmluZWRcbiAgLy8gICB0cnkge1xuICAvLyAgICAgcGFnZSA9IGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGYtOFwiIH0pXG4gIC8vICAgfSBjYXRjaCAoZSkge1xuICAvLyAgICAgaWYgKGUuY29kZSA9PT0gXCJFTk9FTlRcIikge1xuICAvLyAgICAgICBjb250aW51ZVxuICAvLyAgICAgfVxuICAvLyAgICAgdGhyb3cgZVxuICAvLyAgIH1cblxuICAvLyAgIGlmIChvcHRpb25zLnBhcnNlKSB7XG4gIC8vICAgICBjb25zdCB0ZXh0ZUxvaVBhcnNlZCA9IHBhcnNlVGV4dGVMb2kodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwsIHBhZ2UpXG4gIC8vICAgICBjb25zdCB7IGVycm9yIH0gPSB0ZXh0ZUxvaVBhcnNlZFxuICAvLyAgICAgaWYgKGVycm9yKSB7XG4gIC8vICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gIC8vICAgICAgICAgYEVycm9yIHdoaWxlIHBhcnNpbmcgcGFnZSBcIiR7dGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmx9XCIgKHVpZDogJHtcbiAgLy8gICAgICAgICAgIHRleHRlTG9pLnVpZFxuICAvLyAgICAgICAgIH0pOlxcblxcbkVycm9yOlxcbiR7SlNPTi5zdHJpbmdpZnkoZXJyb3IsIG51bGwsIDIpfWAsXG4gIC8vICAgICAgIClcbiAgLy8gICAgICAgY29udGludWVcbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cbiAgLy8gaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gIC8vICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKHRleHRlc0xvaXNEaXIsIFwiTm91dmVsbGUgbW9pc3NvblwiLCBvcHRpb25zLnJlbW90ZSlcbiAgLy8gfVxuICByZXR1cm4gMFxufVxuXG5wcm9jZXNzLmV4aXQocGFyc2VUZXh0ZXNMb2lzKCkpXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGdCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFILHNCQUFBLENB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