@tricoteuses/assemblee 1.9.13 → 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 (235) 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.js +9 -9
  90. package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
  91. package/lib/raw_types/questions.js +9 -9
  92. package/lib/raw_types/questions.mjs +1 -1
  93. package/lib/raw_types/scrutins.js +9 -9
  94. package/lib/raw_types/scrutins.mjs +1 -1
  95. package/lib/scripts/bugs_helper.js +25 -26
  96. package/lib/scripts/bugs_helper.mjs +3 -3
  97. package/lib/scripts/clean_reorganized_data.js +256 -245
  98. package/lib/scripts/clean_reorganized_data.mjs +18 -29
  99. package/lib/scripts/diff_amendements.js +9 -8
  100. package/lib/scripts/diff_amendements.mjs +1 -1
  101. package/lib/scripts/document_dossiers_legislatifs.js +24 -27
  102. package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
  103. package/lib/scripts/get_today_reunions.js +3 -2
  104. package/lib/scripts/get_today_reunions.mjs +1 -1
  105. package/lib/scripts/merge_scrutins.js +9 -8
  106. package/lib/scripts/merge_scrutins.mjs +1 -1
  107. package/lib/scripts/parse_textes_lois.js +6 -5
  108. package/lib/scripts/parse_textes_lois.mjs +1 -1
  109. package/lib/scripts/process_open_dataset.d.ts +0 -2
  110. package/lib/scripts/process_open_dataset.js +19 -19
  111. package/lib/scripts/process_open_dataset.mjs +3 -5
  112. package/lib/scripts/raw_types_from_amendements.d.ts +0 -1
  113. package/lib/scripts/raw_types_from_amendements.js +122 -198
  114. package/lib/scripts/raw_types_from_amendements.mjs +105 -60
  115. package/lib/scripts/reorganize_data.js +14 -15
  116. package/lib/scripts/reorganize_data.mjs +3 -3
  117. package/lib/scripts/retrieve_deputes_photos.js +40 -31
  118. package/lib/scripts/retrieve_deputes_photos.mjs +10 -2
  119. package/lib/scripts/retrieve_documents.d.ts +1 -1
  120. package/lib/scripts/retrieve_documents.js +230 -138
  121. package/lib/scripts/retrieve_documents.mjs +87 -38
  122. package/lib/scripts/retrieve_open_data.js +27 -30
  123. package/lib/scripts/retrieve_open_data.mjs +5 -8
  124. package/lib/scripts/retrieve_pending_amendments.js +14 -14
  125. package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
  126. package/lib/scripts/retrieve_senateurs_photos.js +10 -10
  127. package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
  128. package/lib/scripts/retrieve_textes_lois.js +17 -15
  129. package/lib/scripts/retrieve_textes_lois.mjs +1 -1
  130. package/lib/scripts/shared/cli_helpers.d.ts +11 -0
  131. package/lib/scripts/shared/cli_helpers.js +13 -2
  132. package/lib/scripts/shared/cli_helpers.mjs +12 -1
  133. package/lib/scripts/test_iter_load.js +5 -19
  134. package/lib/scripts/test_iter_load.mjs +2 -9
  135. package/lib/scripts/test_load.js +2 -2
  136. package/lib/scripts/test_load.mjs +1 -1
  137. package/lib/scripts/test_load_big_files.js +2 -2
  138. package/lib/scripts/test_load_big_files.mjs +1 -1
  139. package/lib/scripts/validate_json.js +17 -18
  140. package/lib/scripts/validate_json.mjs +3 -3
  141. package/lib/shared_types/codes_actes.js +1 -1
  142. package/lib/shared_types/codes_actes.mjs +1 -1
  143. package/lib/strings.js +1 -1
  144. package/lib/strings.mjs +1 -1
  145. package/lib/types/acteurs_et_organes.js +9 -9
  146. package/lib/types/acteurs_et_organes.mjs +1 -1
  147. package/lib/types/agendas.d.ts +1 -0
  148. package/lib/types/agendas.js +11 -10
  149. package/lib/types/agendas.mjs +3 -2
  150. package/lib/types/amendements.js +9 -9
  151. package/lib/types/amendements.mjs +1 -1
  152. package/lib/types/debats.js +9 -9
  153. package/lib/types/debats.mjs +1 -1
  154. package/lib/types/dossiers_legislatifs.d.ts +13 -0
  155. package/lib/types/dossiers_legislatifs.js +47 -9
  156. package/lib/types/dossiers_legislatifs.mjs +39 -1
  157. package/lib/types/legislatures.js +1 -1
  158. package/lib/types/legislatures.mjs +1 -1
  159. package/lib/types/questions.js +9 -9
  160. package/lib/types/questions.mjs +1 -1
  161. package/lib/types/scrutins.js +9 -9
  162. package/lib/types/scrutins.mjs +1 -1
  163. package/lib/urls.js +2 -2
  164. package/lib/urls.mjs +1 -1
  165. package/package.json +14 -20
  166. package/lib/cleaners/textes_loi.d.ts +0 -1
  167. package/lib/cleaners/textes_loi.js +0 -12
  168. package/lib/cleaners/textes_loi.mjs +0 -5
  169. package/lib/examples/PIONANR5L15B0020/input.d.ts +0 -2
  170. package/lib/examples/PIONANR5L15B0020/input.js +0 -10
  171. package/lib/examples/PIONANR5L15B0020/input.mjs +0 -193
  172. package/lib/examples/PIONANR5L15B0020/input.ts +0 -193
  173. package/lib/examples/PIONANR5L15B0020/loi.json +0 -26
  174. package/lib/examples/PIONANR5L15B0020/loi_populated.json +0 -29
  175. package/lib/examples/PIONANR5L15B0020/meta.json +0 -28
  176. package/lib/examples/PIONANR5L15B0020/motifs.json +0 -5
  177. package/lib/examples/PIONANR5L15B0020/motifs_populated.json +0 -6
  178. package/lib/examples/PIONANR5L15B0020/sommaire.json +0 -3
  179. package/lib/examples/PRJLANR5L16B0914/input.d.ts +0 -2
  180. package/lib/examples/PRJLANR5L16B0914/input.js +0 -10
  181. package/lib/examples/PRJLANR5L16B0914/input.mjs +0 -322
  182. package/lib/examples/PRJLANR5L16B0914/input.ts +0 -322
  183. package/lib/examples/PRJLANR5L16B0914/loi.json +0 -14
  184. package/lib/examples/PRJLANR5L16B0914/loi_populated.json +0 -20
  185. package/lib/examples/PRJLANR5L16B0914/meta.json +0 -35
  186. package/lib/examples/PRJLANR5L16B0914/motifs.json +0 -4
  187. package/lib/examples/PRJLANR5L16B0914/motifs_populated.json +0 -5
  188. package/lib/examples/PRJLANR5L16B0914/sommaire.json +0 -3
  189. package/lib/examples/PRJLANR5L16B2014/README.md +0 -2
  190. package/lib/examples/PRJLANR5L16B2014/input.d.ts +0 -2
  191. package/lib/examples/PRJLANR5L16B2014/input.js +0 -10
  192. package/lib/examples/PRJLANR5L16B2014/input.mjs +0 -577
  193. package/lib/examples/PRJLANR5L16B2014/input.ts +0 -577
  194. package/lib/examples/PRJLANR5L16B2014/loi.json +0 -369
  195. package/lib/examples/PRJLANR5L16B2014/meta.json +0 -31
  196. package/lib/examples/PRJLANR5L16B2014/motifs.json +0 -5
  197. package/lib/examples/PRJLANR5L16B2014/sommaire.json +0 -51
  198. package/lib/examples/PRJLANR5L16B2424/alineas.json +0 -44
  199. package/lib/examples/PRJLANR5L16B2424/input.d.ts +0 -2
  200. package/lib/examples/PRJLANR5L16B2424/input.js +0 -10
  201. package/lib/examples/PRJLANR5L16B2424/input.mjs +0 -322
  202. package/lib/examples/PRJLANR5L16B2424/input.ts +0 -322
  203. package/lib/examples/PRJLANR5L16B2424/loi.json +0 -74
  204. package/lib/examples/PRJLANR5L16B2424/loi_populated.json +0 -87
  205. package/lib/examples/PRJLANR5L16B2424/meta.json +0 -31
  206. package/lib/examples/PRJLANR5L16B2424/motifs.json +0 -4
  207. package/lib/examples/PRJLANR5L16B2424/motifs_populated.json +0 -5
  208. package/lib/examples/PRJLANR5L16B2424/sommaire.json +0 -3
  209. package/lib/examples/PRJLANR5L16B2462/input.d.ts +0 -2
  210. package/lib/examples/PRJLANR5L16B2462/input.js +0 -10
  211. package/lib/examples/PRJLANR5L16B2462/input.mjs +0 -1308
  212. package/lib/examples/PRJLANR5L16B2462/input.ts +0 -1308
  213. package/lib/examples/PRJLANR5L16B2462/loi.json +0 -74
  214. package/lib/examples/PRJLANR5L16B2462/loi_populated.json +0 -310
  215. package/lib/examples/PRJLANR5L16B2462/meta.json +0 -29
  216. package/lib/examples/PRJLANR5L16B2462/motifs.json +0 -6
  217. package/lib/examples/PRJLANR5L16B2462/motifs_populated.json +0 -6
  218. package/lib/examples/PRJLANR5L16B2462/sommaire.json +0 -50
  219. package/lib/examples/README.md +0 -3
  220. package/lib/raw_types/textes_loi.d.ts +0 -93
  221. package/lib/raw_types/textes_loi.js +0 -429
  222. package/lib/raw_types/textes_loi.mjs +0 -378
  223. package/lib/schemas/texte_loi/Alinea.json +0 -36
  224. package/lib/schemas/texte_loi/ExposeMotifs.json +0 -24
  225. package/lib/schemas/texte_loi/MetaDonnees.json +0 -126
  226. package/lib/schemas/texte_loi/ProjetLoi.json +0 -64
  227. package/lib/schemas/texte_loi/Sommaire.json +0 -48
  228. package/lib/schemas/texte_loi/TexteLoi.json +0 -225
  229. package/lib/schemas/texte_loi/TexteLoiPartiel.json +0 -237
  230. package/lib/scripts/process_textes_loi_dataset.d.ts +0 -7
  231. package/lib/scripts/process_textes_loi_dataset.js +0 -373
  232. package/lib/scripts/process_textes_loi_dataset.mjs +0 -239
  233. package/lib/types/textes_loi.d.ts +0 -94
  234. package/lib/types/textes_loi.js +0 -429
  235. package/lib/types/textes_loi.mjs +0 -378
@@ -1,89 +1,134 @@
1
- import commandLineArgs from "command-line-args";
2
- import fs from "fs-extra";
3
- import path from "path";
4
- import { quicktype, InputData, jsonInputForTargetLanguage } from "quicktype-core";
5
- import { datasets, DatasetStructure } from "../datasets.mjs";
6
- import { walkDir } from "../file_systems.mjs";
7
- import { silentOption, verboseOption, dataDirDefaultOption } from "./shared/cli_helpers.mjs";
8
- const optionsDefinitions = [silentOption, verboseOption, dataDirDefaultOption];
9
- const options = commandLineArgs(optionsDefinitions);
10
- async function generateRawTypesFromAmendements(dataDir) {
1
+ /*
2
+ import commandLineArgs from "command-line-args"
3
+ import fs from "fs-extra"
4
+ import path from "path"
5
+ import {
6
+ quicktype,
7
+ InputData,
8
+ jsonInputForTargetLanguage,
9
+ } from "quicktype-core"
10
+
11
+ import { datasets, DatasetStructure } from "../datasets"
12
+ import { walkDir } from "../file_systems"
13
+ import {
14
+ silentOption,
15
+ verboseOption,
16
+ dataDirDefaultOption,
17
+ } from "./shared/cli_helpers"
18
+
19
+ const optionsDefinitions = [silentOption, verboseOption, dataDirDefaultOption]
20
+ const options = commandLineArgs(optionsDefinitions)
21
+
22
+ async function generateRawTypesFromAmendements(dataDir: string) {
11
23
  for (const dataset of datasets.amendements) {
12
24
  switch (dataset.structure) {
13
25
  case DatasetStructure.SegmentedFiles:
14
26
  {
15
- const originalJsonDir = path.join(dataDir, dataset.filename);
27
+ const originalJsonDir: string = path.join(dataDir, dataset.filename)
16
28
  if (!options.silent) {
17
- console.log(`Generating raw types from ${originalJsonDir}…`);
29
+ console.log(`Generating raw types from ${originalJsonDir}…`)
18
30
  }
19
- const amendementsOriginalFilesPathsByUidTextLegislatif = {};
31
+
32
+ const amendementsOriginalFilesPathsByUidTextLegislatif: {
33
+ [uid: string]: string[]
34
+ } = {}
20
35
  for (const amendementSplitPath of walkDir(originalJsonDir)) {
21
- const amendementFilename = amendementSplitPath[amendementSplitPath.length - 1];
36
+ const amendementFilename =
37
+ amendementSplitPath[amendementSplitPath.length - 1]
22
38
  if (!amendementFilename.endsWith(".json")) {
23
- continue;
39
+ continue
24
40
  }
25
- const uidTexteLegislatif = amendementSplitPath[amendementSplitPath.length - 2];
26
- let amendementsOriginalFilesPaths = amendementsOriginalFilesPathsByUidTextLegislatif[uidTexteLegislatif];
41
+ const uidTexteLegislatif =
42
+ amendementSplitPath[amendementSplitPath.length - 2]
43
+ let amendementsOriginalFilesPaths =
44
+ amendementsOriginalFilesPathsByUidTextLegislatif[
45
+ uidTexteLegislatif
46
+ ]
27
47
  if (amendementsOriginalFilesPaths === undefined) {
28
- amendementsOriginalFilesPaths = amendementsOriginalFilesPathsByUidTextLegislatif[uidTexteLegislatif] = [];
48
+ amendementsOriginalFilesPaths =
49
+ amendementsOriginalFilesPathsByUidTextLegislatif[
50
+ uidTexteLegislatif
51
+ ] = []
29
52
  }
30
- const amendementOriginalFilePath = path.join(originalJsonDir, ...amendementSplitPath);
31
- amendementsOriginalFilesPaths.push(amendementOriginalFilePath);
53
+ const amendementOriginalFilePath = path.join(
54
+ originalJsonDir,
55
+ ...amendementSplitPath,
56
+ )
57
+ amendementsOriginalFilesPaths.push(amendementOriginalFilePath)
32
58
  }
33
- const uidsTextesLegislatifs = Object.keys(amendementsOriginalFilesPathsByUidTextLegislatif);
34
- uidsTextesLegislatifs.sort((a, b) => a.length === b.length ? a.localeCompare(b) : a.length - b.length);
35
- const textesLegislatifsSamples = [];
59
+
60
+ const uidsTextesLegislatifs = Object.keys(
61
+ amendementsOriginalFilesPathsByUidTextLegislatif,
62
+ )
63
+ uidsTextesLegislatifs.sort((a: string, b: string) =>
64
+ a.length === b.length ? a.localeCompare(b) : a.length - b.length,
65
+ )
66
+ const textesLegislatifsSamples = []
36
67
  for (const uidTexteLegislatif of uidsTextesLegislatifs) {
37
68
  if (options.verbose) {
38
- console.log(` Reading "amendements du texte législatif": ${uidTexteLegislatif}…`);
69
+ console.log(
70
+ ` Reading "amendements du texte législatif": ${uidTexteLegislatif}…`,
71
+ )
39
72
  }
40
- const amendementsOriginalFilesPaths = amendementsOriginalFilesPathsByUidTextLegislatif[uidTexteLegislatif];
41
- amendementsOriginalFilesPaths.sort((a, b) => a.length === b.length ? a.localeCompare(b) : a.length - b.length);
42
- const amendements = [];
73
+ const amendementsOriginalFilesPaths =
74
+ amendementsOriginalFilesPathsByUidTextLegislatif[
75
+ uidTexteLegislatif
76
+ ]
77
+ amendementsOriginalFilesPaths.sort((a: string, b: string) =>
78
+ a.length === b.length ? a.localeCompare(b) : a.length - b.length,
79
+ )
80
+ const amendements = []
43
81
  for (const amendementOriginalFilePath of amendementsOriginalFilesPaths) {
44
- const amendementOriginalJson = fs.readFileSync(amendementOriginalFilePath, {
45
- encoding: "utf8"
46
- });
47
- const amendementOriginal = JSON.parse(amendementOriginalJson);
48
- const amendement = amendementOriginal.amendement;
49
- amendements.push(amendement);
82
+ const amendementOriginalJson: string = fs.readFileSync(
83
+ amendementOriginalFilePath,
84
+ {
85
+ encoding: "utf8",
86
+ },
87
+ )
88
+ const amendementOriginal: any = JSON.parse(amendementOriginalJson)
89
+ const amendement = amendementOriginal.amendement
90
+ amendements.push(amendement)
50
91
  }
51
92
  const texteLegislatif = {
52
93
  "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
53
94
  refTexteLegislatif: uidTexteLegislatif,
54
- amendements: {
55
- amendement: amendements
56
- }
57
- };
58
- textesLegislatifsSamples.push(JSON.stringify(texteLegislatif));
95
+ amendements: { amendement: amendements },
96
+ }
97
+ textesLegislatifsSamples.push(JSON.stringify(texteLegislatif))
59
98
  }
60
- const jsonInput = jsonInputForTargetLanguage("typescript");
99
+
100
+ const jsonInput = jsonInputForTargetLanguage("typescript")
61
101
  await jsonInput.addSource({
62
102
  name: "TexteLegislatif",
63
- samples: textesLegislatifsSamples
64
- });
65
- const inputData = new InputData();
66
- inputData.addInput(jsonInput);
67
- const {
68
- lines
69
- } = await quicktype({
103
+ samples: textesLegislatifsSamples,
104
+ })
105
+ const inputData = new InputData()
106
+ inputData.addInput(jsonInput)
107
+ const { lines } = await quicktype({
70
108
  inputData,
71
109
  lang: "typescript",
72
- rendererOptions: {
73
- acronymStyle: "camel"
74
- }
75
- });
76
- const amendementsRawTypesFilePath = path.join("src", "raw_types", "amendements.ts");
77
- fs.writeFileSync(amendementsRawTypesFilePath, lines.join("\n"));
110
+ rendererOptions: { acronymStyle: "camel" },
111
+ })
112
+
113
+ const amendementsRawTypesFilePath = path.join(
114
+ "src",
115
+ "raw_types",
116
+ "amendements.ts",
117
+ )
118
+ fs.writeFileSync(amendementsRawTypesFilePath, lines.join("\n"))
78
119
  }
79
- break;
120
+ break
80
121
  }
81
122
  }
82
123
  }
83
- generateRawTypesFromAmendements(options.dataDir).then(() => {
84
- process.exit(0);
85
- }).catch(error => {
86
- console.error(error);
87
- process.exit(1);
88
- });
89
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJxdWlja3R5cGUiLCJJbnB1dERhdGEiLCJqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZSIsImRhdGFzZXRzIiwiRGF0YXNldFN0cnVjdHVyZSIsIndhbGtEaXIiLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJvcHRpb25zIiwiZ2VuZXJhdGVSYXdUeXBlc0Zyb21BbWVuZGVtZW50cyIsImRhdGFEaXIiLCJkYXRhc2V0IiwiYW1lbmRlbWVudHMiLCJzdHJ1Y3R1cmUiLCJTZWdtZW50ZWRGaWxlcyIsIm9yaWdpbmFsSnNvbkRpciIsImpvaW4iLCJmaWxlbmFtZSIsInNpbGVudCIsImNvbnNvbGUiLCJsb2ciLCJhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWYiLCJhbWVuZGVtZW50U3BsaXRQYXRoIiwiYW1lbmRlbWVudEZpbGVuYW1lIiwibGVuZ3RoIiwiZW5kc1dpdGgiLCJ1aWRUZXh0ZUxlZ2lzbGF0aWYiLCJhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyIsInVuZGVmaW5lZCIsImFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoIiwicHVzaCIsInVpZHNUZXh0ZXNMZWdpc2xhdGlmcyIsIk9iamVjdCIsImtleXMiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwidGV4dGVzTGVnaXNsYXRpZnNTYW1wbGVzIiwidmVyYm9zZSIsImFtZW5kZW1lbnRPcmlnaW5hbEpzb24iLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsImFtZW5kZW1lbnRPcmlnaW5hbCIsIkpTT04iLCJwYXJzZSIsImFtZW5kZW1lbnQiLCJ0ZXh0ZUxlZ2lzbGF0aWYiLCJyZWZUZXh0ZUxlZ2lzbGF0aWYiLCJzdHJpbmdpZnkiLCJqc29uSW5wdXQiLCJhZGRTb3VyY2UiLCJuYW1lIiwic2FtcGxlcyIsImlucHV0RGF0YSIsImFkZElucHV0IiwibGluZXMiLCJsYW5nIiwicmVuZGVyZXJPcHRpb25zIiwiYWNyb255bVN0eWxlIiwiYW1lbmRlbWVudHNSYXdUeXBlc0ZpbGVQYXRoIiwid3JpdGVGaWxlU3luYyIsInRoZW4iLCJwcm9jZXNzIiwiZXhpdCIsImNhdGNoIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yYXdfdHlwZXNfZnJvbV9hbWVuZGVtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7XG4gIHF1aWNrdHlwZSxcbiAgSW5wdXREYXRhLFxuICBqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZSxcbn0gZnJvbSBcInF1aWNrdHlwZS1jb3JlXCJcblxuaW1wb3J0IHsgZGF0YXNldHMsIERhdGFzZXRTdHJ1Y3R1cmUgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgc2lsZW50T3B0aW9uLFxuICB2ZXJib3NlT3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW3NpbGVudE9wdGlvbiwgdmVyYm9zZU9wdGlvbiwgZGF0YURpckRlZmF1bHRPcHRpb25dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVSYXdUeXBlc0Zyb21BbWVuZGVtZW50cyhkYXRhRGlyOiBzdHJpbmcpIHtcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgc3dpdGNoIChkYXRhc2V0LnN0cnVjdHVyZSkge1xuICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzOlxuICAgICAgICB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxKc29uRGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5maWxlbmFtZSlcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgR2VuZXJhdGluZyByYXcgdHlwZXMgZnJvbSAke29yaWdpbmFsSnNvbkRpcn3igKZgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZjoge1xuICAgICAgICAgICAgW3VpZDogc3RyaW5nXTogc3RyaW5nW11cbiAgICAgICAgICB9ID0ge31cbiAgICAgICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRTcGxpdFBhdGggb2Ygd2Fsa0RpcihvcmlnaW5hbEpzb25EaXIpKSB7XG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZW5hbWUgPVxuICAgICAgICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgIGlmICghYW1lbmRlbWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVpZFRleHRlTGVnaXNsYXRpZiA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAyXVxuICAgICAgICAgICAgbGV0IGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzID1cbiAgICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHNCeVVpZFRleHRMZWdpc2xhdGlmW1xuICAgICAgICAgICAgICAgIHVpZFRleHRlTGVnaXNsYXRpZlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICBpZiAoYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHNCeVVpZFRleHRMZWdpc2xhdGlmW1xuICAgICAgICAgICAgICAgICAgdWlkVGV4dGVMZWdpc2xhdGlmXG4gICAgICAgICAgICAgICAgXSA9IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyLFxuICAgICAgICAgICAgICAuLi5hbWVuZGVtZW50U3BsaXRQYXRoLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMucHVzaChhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB1aWRzVGV4dGVzTGVnaXNsYXRpZnMgPSBPYmplY3Qua2V5cyhcbiAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZixcbiAgICAgICAgICApXG4gICAgICAgICAgdWlkc1RleHRlc0xlZ2lzbGF0aWZzLnNvcnQoKGE6IHN0cmluZywgYjogc3RyaW5nKSA9PlxuICAgICAgICAgICAgYS5sZW5ndGggPT09IGIubGVuZ3RoID8gYS5sb2NhbGVDb21wYXJlKGIpIDogYS5sZW5ndGggLSBiLmxlbmd0aCxcbiAgICAgICAgICApXG4gICAgICAgICAgY29uc3QgdGV4dGVzTGVnaXNsYXRpZnNTYW1wbGVzID0gW11cbiAgICAgICAgICBmb3IgKGNvbnN0IHVpZFRleHRlTGVnaXNsYXRpZiBvZiB1aWRzVGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgYCAgUmVhZGluZyBcImFtZW5kZW1lbnRzIGR1IHRleHRlIGzDqWdpc2xhdGlmXCI6ICR7dWlkVGV4dGVMZWdpc2xhdGlmfeKApmAsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzID1cbiAgICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHNCeVVpZFRleHRMZWdpc2xhdGlmW1xuICAgICAgICAgICAgICAgIHVpZFRleHRlTGVnaXNsYXRpZlxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocy5zb3J0KChhOiBzdHJpbmcsIGI6IHN0cmluZykgPT5cbiAgICAgICAgICAgICAgYS5sZW5ndGggPT09IGIubGVuZ3RoID8gYS5sb2NhbGVDb21wYXJlKGIpIDogYS5sZW5ndGggLSBiLmxlbmd0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRzID0gW11cbiAgICAgICAgICAgIGZvciAoY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGggb2YgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMpIHtcbiAgICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbDogYW55ID0gSlNPTi5wYXJzZShhbWVuZGVtZW50T3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50ID0gYW1lbmRlbWVudE9yaWdpbmFsLmFtZW5kZW1lbnRcbiAgICAgICAgICAgICAgYW1lbmRlbWVudHMucHVzaChhbWVuZGVtZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGV4dGVMZWdpc2xhdGlmID0ge1xuICAgICAgICAgICAgICBcIkB4bWxuczp4c2lcIjogXCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiLFxuICAgICAgICAgICAgICByZWZUZXh0ZUxlZ2lzbGF0aWY6IHVpZFRleHRlTGVnaXNsYXRpZixcbiAgICAgICAgICAgICAgYW1lbmRlbWVudHM6IHsgYW1lbmRlbWVudDogYW1lbmRlbWVudHMgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcy5wdXNoKEpTT04uc3RyaW5naWZ5KHRleHRlTGVnaXNsYXRpZikpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QganNvbklucHV0ID0ganNvbklucHV0Rm9yVGFyZ2V0TGFuZ3VhZ2UoXCJ0eXBlc2NyaXB0XCIpXG4gICAgICAgICAgYXdhaXQganNvbklucHV0LmFkZFNvdXJjZSh7XG4gICAgICAgICAgICBuYW1lOiBcIlRleHRlTGVnaXNsYXRpZlwiLFxuICAgICAgICAgICAgc2FtcGxlczogdGV4dGVzTGVnaXNsYXRpZnNTYW1wbGVzLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgY29uc3QgaW5wdXREYXRhID0gbmV3IElucHV0RGF0YSgpXG4gICAgICAgICAgaW5wdXREYXRhLmFkZElucHV0KGpzb25JbnB1dClcbiAgICAgICAgICBjb25zdCB7IGxpbmVzIH0gPSBhd2FpdCBxdWlja3R5cGUoe1xuICAgICAgICAgICAgaW5wdXREYXRhLFxuICAgICAgICAgICAgbGFuZzogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICByZW5kZXJlck9wdGlvbnM6IHsgYWNyb255bVN0eWxlOiBcImNhbWVsXCIgfSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgY29uc3QgYW1lbmRlbWVudHNSYXdUeXBlc0ZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgXCJzcmNcIixcbiAgICAgICAgICAgIFwicmF3X3R5cGVzXCIsXG4gICAgICAgICAgICBcImFtZW5kZW1lbnRzLnRzXCIsXG4gICAgICAgICAgKVxuICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoYW1lbmRlbWVudHNSYXdUeXBlc0ZpbGVQYXRoLCBsaW5lcy5qb2luKFwiXFxuXCIpKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG59XG5cbmdlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMob3B0aW9ucy5kYXRhRGlyKVxuICAudGhlbigoKSA9PiB7XG4gICAgcHJvY2Vzcy5leGl0KDApXG4gIH0pXG4gIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxlQUFlLE1BQU0sbUJBQW1CO0FBQy9DLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQ3ZCLFNBQ0VDLFNBQVMsRUFDVEMsU0FBUyxFQUNUQywwQkFBMEIsUUFDckIsZ0JBQWdCO0FBQUEsU0FFZEMsUUFBUSxFQUFFQyxnQkFBZ0I7QUFBQSxTQUMxQkMsT0FBTztBQUFBLFNBRWRDLFlBQVksRUFDWkMsYUFBYSxFQUNiQyxvQkFBb0I7QUFHdEIsTUFBTUMsa0JBQWtCLEdBQUcsQ0FBQ0gsWUFBWSxFQUFFQyxhQUFhLEVBQUVDLG9CQUFvQixDQUFD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
124
+
125
+ generateRawTypesFromAmendements(options.dataDir)
126
+ .then(() => {
127
+ process.exit(0)
128
+ })
129
+ .catch((error) => {
130
+ console.error(error)
131
+ process.exit(1)
132
+ })
133
+ */
134
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmF3X3R5cGVzX2Zyb21fYW1lbmRlbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHtcbiAgcXVpY2t0eXBlLFxuICBJbnB1dERhdGEsXG4gIGpzb25JbnB1dEZvclRhcmdldExhbmd1YWdlLFxufSBmcm9tIFwicXVpY2t0eXBlLWNvcmVcIlxuXG5pbXBvcnQgeyBkYXRhc2V0cywgRGF0YXNldFN0cnVjdHVyZSB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4uL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQge1xuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxufSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbc2lsZW50T3B0aW9uLCB2ZXJib3NlT3B0aW9uLCBkYXRhRGlyRGVmYXVsdE9wdGlvbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5hc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVJhd1R5cGVzRnJvbUFtZW5kZW1lbnRzKGRhdGFEaXI6IHN0cmluZykge1xuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICBzd2l0Y2ggKGRhdGFzZXQuc3RydWN0dXJlKSB7XG4gICAgICBjYXNlIERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXM6XG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbEpzb25EaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmZpbGVuYW1lKVxuICAgICAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBHZW5lcmF0aW5nIHJhdyB0eXBlcyBmcm9tICR7b3JpZ2luYWxKc29uRGlyfeKApmApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHNCeVVpZFRleHRMZWdpc2xhdGlmOiB7XG4gICAgICAgICAgICBbdWlkOiBzdHJpbmddOiBzdHJpbmdbXVxuICAgICAgICAgIH0gPSB7fVxuICAgICAgICAgIGZvciAoY29uc3QgYW1lbmRlbWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKG9yaWdpbmFsSnNvbkRpcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlbmFtZSA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgaWYgKCFhbWVuZGVtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdWlkVGV4dGVMZWdpc2xhdGlmID1cbiAgICAgICAgICAgICAgYW1lbmRlbWVudFNwbGl0UGF0aFthbWVuZGVtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDJdXG4gICAgICAgICAgICBsZXQgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMgPVxuICAgICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWZbXG4gICAgICAgICAgICAgICAgdWlkVGV4dGVMZWdpc2xhdGlmXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIGlmIChhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzID1cbiAgICAgICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWZbXG4gICAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgICBdID0gW11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXIsXG4gICAgICAgICAgICAgIC4uLmFtZW5kZW1lbnRTcGxpdFBhdGgsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocy5wdXNoKGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHVpZHNUZXh0ZXNMZWdpc2xhdGlmcyA9IE9iamVjdC5rZXlzKFxuICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHNCeVVpZFRleHRMZWdpc2xhdGlmLFxuICAgICAgICAgIClcbiAgICAgICAgICB1aWRzVGV4dGVzTGVnaXNsYXRpZnMuc29ydCgoYTogc3RyaW5nLCBiOiBzdHJpbmcpID0+XG4gICAgICAgICAgICBhLmxlbmd0aCA9PT0gYi5sZW5ndGggPyBhLmxvY2FsZUNvbXBhcmUoYikgOiBhLmxlbmd0aCAtIGIubGVuZ3RoLFxuICAgICAgICAgIClcbiAgICAgICAgICBjb25zdCB0ZXh0ZXNMZWdpc2xhdGlmc1NhbXBsZXMgPSBbXVxuICAgICAgICAgIGZvciAoY29uc3QgdWlkVGV4dGVMZWdpc2xhdGlmIG9mIHVpZHNUZXh0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgICBSZWFkaW5nIFwiYW1lbmRlbWVudHMgZHUgdGV4dGUgbMOpZ2lzbGF0aWZcIjogJHt1aWRUZXh0ZUxlZ2lzbGF0aWZ94oCmYCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMgPVxuICAgICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWZbXG4gICAgICAgICAgICAgICAgdWlkVGV4dGVMZWdpc2xhdGlmXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzLnNvcnQoKGE6IHN0cmluZywgYjogc3RyaW5nKSA9PlxuICAgICAgICAgICAgICBhLmxlbmd0aCA9PT0gYi5sZW5ndGggPyBhLmxvY2FsZUNvbXBhcmUoYikgOiBhLmxlbmd0aCAtIGIubGVuZ3RoLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudHMgPSBbXVxuICAgICAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCBvZiBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocykge1xuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50T3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsOiBhbnkgPSBKU09OLnBhcnNlKGFtZW5kZW1lbnRPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBhbWVuZGVtZW50T3JpZ2luYWwuYW1lbmRlbWVudFxuICAgICAgICAgICAgICBhbWVuZGVtZW50cy5wdXNoKGFtZW5kZW1lbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgPSB7XG4gICAgICAgICAgICAgIFwiQHhtbG5zOnhzaVwiOiBcImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCIsXG4gICAgICAgICAgICAgIHJlZlRleHRlTGVnaXNsYXRpZjogdWlkVGV4dGVMZWdpc2xhdGlmLFxuICAgICAgICAgICAgICBhbWVuZGVtZW50czogeyBhbWVuZGVtZW50OiBhbWVuZGVtZW50cyB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGV4dGVzTGVnaXNsYXRpZnNTYW1wbGVzLnB1c2goSlNPTi5zdHJpbmdpZnkodGV4dGVMZWdpc2xhdGlmKSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBqc29uSW5wdXQgPSBqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZShcInR5cGVzY3JpcHRcIilcbiAgICAgICAgICBhd2FpdCBqc29uSW5wdXQuYWRkU291cmNlKHtcbiAgICAgICAgICAgIG5hbWU6IFwiVGV4dGVMZWdpc2xhdGlmXCIsXG4gICAgICAgICAgICBzYW1wbGVzOiB0ZXh0ZXNMZWdpc2xhdGlmc1NhbXBsZXMsXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBpbnB1dERhdGEgPSBuZXcgSW5wdXREYXRhKClcbiAgICAgICAgICBpbnB1dERhdGEuYWRkSW5wdXQoanNvbklucHV0KVxuICAgICAgICAgIGNvbnN0IHsgbGluZXMgfSA9IGF3YWl0IHF1aWNrdHlwZSh7XG4gICAgICAgICAgICBpbnB1dERhdGEsXG4gICAgICAgICAgICBsYW5nOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgIHJlbmRlcmVyT3B0aW9uczogeyBhY3JvbnltU3R5bGU6IFwiY2FtZWxcIiB9LFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c1Jhd1R5cGVzRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICBcInNyY1wiLFxuICAgICAgICAgICAgXCJyYXdfdHlwZXNcIixcbiAgICAgICAgICAgIFwiYW1lbmRlbWVudHMudHNcIixcbiAgICAgICAgICApXG4gICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhhbWVuZGVtZW50c1Jhd1R5cGVzRmlsZVBhdGgsIGxpbmVzLmpvaW4oXCJcXG5cIikpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cblxuZ2VuZXJhdGVSYXdUeXBlc0Zyb21BbWVuZGVtZW50cyhvcHRpb25zLmRhdGFEaXIpXG4gIC50aGVuKCgpID0+IHtcbiAgICBwcm9jZXNzLmV4aXQoMClcbiAgfSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH0pXG4qL1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImlnbm9yZUxpc3QiOltdfQ==