@tricoteuses/assemblee 1.10.4 → 2.0.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 (275) hide show
  1. package/README.md +8 -1
  2. package/lib/amendements-79bwpkvR.js +154 -0
  3. package/lib/amendements-CV3s5a0M.js +667 -0
  4. package/lib/cleaners/index.d.ts +9 -9
  5. package/lib/cleaners.js +564 -0
  6. package/lib/datasets.d.ts +3 -3
  7. package/lib/dossiers_legislatifs.d.ts +2 -2
  8. package/lib/index.d.ts +17 -22
  9. package/lib/index.js +1542 -314
  10. package/lib/inserters.d.ts +5 -5
  11. package/lib/loaders-9mHdTl9L.js +4158 -0
  12. package/lib/loaders.d.ts +12 -12
  13. package/lib/loaders.js +29 -1689
  14. package/lib/organes.d.ts +1 -1
  15. package/lib/parse-Ccs6wcUg.js +2512 -0
  16. package/lib/parsers/index.d.ts +2 -3
  17. package/lib/parsers/plf.d.ts +1 -0
  18. package/lib/parsers/recherche_amendements.d.ts +2 -2
  19. package/lib/parsers/textes_lois.d.ts +1 -23
  20. package/lib/parsers.js +398 -0
  21. package/lib/raw_types/acteurs_et_organes.d.ts +4 -2
  22. package/lib/raw_types/debats.d.ts +2 -2
  23. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
  24. package/lib/schemas/acteurs_et_organes.json +1166 -0
  25. package/lib/schemas/agendas.json +1745 -0
  26. package/lib/schemas/amendements.json +2085 -0
  27. package/lib/schemas/debats.json +842 -0
  28. package/lib/schemas/dossiers_legislatifs.json +3874 -0
  29. package/lib/schemas/legislatures.json +17 -0
  30. package/lib/schemas/questions.json +704 -0
  31. package/lib/schemas/scrutins.json +701 -0
  32. package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
  33. package/lib/types/acteurs_et_organes.d.ts +344 -2
  34. package/lib/types/agendas.d.ts +236 -10
  35. package/lib/types/amendements.d.ts +276 -1
  36. package/lib/types/debats.d.ts +52 -2
  37. package/lib/types/dossiers_legislatifs.d.ts +403 -9
  38. package/lib/types/questions.d.ts +99 -2
  39. package/lib/types/scrutins.d.ts +101 -0
  40. package/lib/urls.d.ts +2 -2
  41. package/package.json +33 -95
  42. package/lib/api.js +0 -52
  43. package/lib/api.mjs +0 -45
  44. package/lib/bugs/acteur-00010/plugin.test.js +0 -90
  45. package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
  46. package/lib/bugs/acteur-00010.d.ts +0 -7
  47. package/lib/bugs/acteur-00010.js +0 -116
  48. package/lib/bugs/acteur-00010.mjs +0 -26
  49. package/lib/bugs/agenda-00002/plugin.test.js +0 -124
  50. package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
  51. package/lib/bugs/agenda-00002.d.ts +0 -15
  52. package/lib/bugs/agenda-00002.js +0 -406
  53. package/lib/bugs/agenda-00002.mjs +0 -172
  54. package/lib/bugs/agenda-00008/plugin.test.js +0 -92
  55. package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
  56. package/lib/bugs/agenda-00008.d.ts +0 -7
  57. package/lib/bugs/agenda-00008.js +0 -123
  58. package/lib/bugs/agenda-00008.mjs +0 -26
  59. package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
  60. package/lib/bugs/agenda-00011/plugin.test.js +0 -263
  61. package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
  62. package/lib/bugs/agenda-00011.d.ts +0 -16
  63. package/lib/bugs/agenda-00011.js +0 -333
  64. package/lib/bugs/agenda-00011.mjs +0 -125
  65. package/lib/bugs.d.ts +0 -21
  66. package/lib/bugs.js +0 -452
  67. package/lib/bugs.mjs +0 -70
  68. package/lib/cleaners/actes_legislatifs.js +0 -315
  69. package/lib/cleaners/actes_legislatifs.mjs +0 -253
  70. package/lib/cleaners/acteurs.js +0 -265
  71. package/lib/cleaners/acteurs.mjs +0 -180
  72. package/lib/cleaners/amendements.js +0 -294
  73. package/lib/cleaners/amendements.mjs +0 -227
  74. package/lib/cleaners/debats.js +0 -12
  75. package/lib/cleaners/debats.mjs +0 -5
  76. package/lib/cleaners/documents.js +0 -205
  77. package/lib/cleaners/documents.mjs +0 -133
  78. package/lib/cleaners/dossiers_legislatifs.js +0 -131
  79. package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
  80. package/lib/cleaners/index.js +0 -70
  81. package/lib/cleaners/index.mjs +0 -10
  82. package/lib/cleaners/organes.js +0 -65
  83. package/lib/cleaners/organes.mjs +0 -48
  84. package/lib/cleaners/questions.js +0 -12
  85. package/lib/cleaners/questions.mjs +0 -5
  86. package/lib/cleaners/reunions.js +0 -312
  87. package/lib/cleaners/reunions.mjs +0 -255
  88. package/lib/cleaners/scrutins.js +0 -340
  89. package/lib/cleaners/scrutins.mjs +0 -221
  90. package/lib/cleaners/xml.js +0 -95
  91. package/lib/cleaners/xml.mjs +0 -58
  92. package/lib/datasets.js +0 -837
  93. package/lib/datasets.mjs +0 -755
  94. package/lib/dates.js +0 -124
  95. package/lib/dates.mjs +0 -100
  96. package/lib/dossiers_legislatifs.js +0 -346
  97. package/lib/dossiers_legislatifs.mjs +0 -208
  98. package/lib/file_systems.js +0 -162
  99. package/lib/file_systems.mjs +0 -62
  100. package/lib/git.js +0 -223
  101. package/lib/git.mjs +0 -151
  102. package/lib/index.mjs +0 -17
  103. package/lib/inserters.js +0 -521
  104. package/lib/inserters.mjs +0 -337
  105. package/lib/loaders.mjs +0 -886
  106. package/lib/logger.js +0 -35
  107. package/lib/logger.mjs +0 -26
  108. package/lib/organes.js +0 -22
  109. package/lib/organes.mjs +0 -15
  110. package/lib/parsers/documents.d.ts +0 -62
  111. package/lib/parsers/documents.js +0 -453
  112. package/lib/parsers/documents.mjs +0 -370
  113. package/lib/parsers/index.js +0 -40
  114. package/lib/parsers/index.mjs +0 -4
  115. package/lib/parsers/recherche_amendements.js +0 -403
  116. package/lib/parsers/recherche_amendements.mjs +0 -167
  117. package/lib/parsers/textes_lois.js +0 -307
  118. package/lib/parsers/textes_lois.mjs +0 -264
  119. package/lib/raw_types/acteurs_et_organes.js +0 -1213
  120. package/lib/raw_types/acteurs_et_organes.mjs +0 -1146
  121. package/lib/raw_types/agendas.js +0 -777
  122. package/lib/raw_types/agendas.mjs +0 -724
  123. package/lib/raw_types/amendements.js +0 -1052
  124. package/lib/raw_types/amendements.mjs +0 -993
  125. package/lib/raw_types/debats.js +0 -630
  126. package/lib/raw_types/debats.mjs +0 -573
  127. package/lib/raw_types/dossiers_legislatifs.js +0 -1529
  128. package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
  129. package/lib/raw_types/questions.js +0 -469
  130. package/lib/raw_types/questions.mjs +0 -416
  131. package/lib/raw_types/scrutins.js +0 -651
  132. package/lib/raw_types/scrutins.mjs +0 -598
  133. package/lib/schemas/acteur/Acteur.json +0 -56
  134. package/lib/schemas/acteur/AdresseElectronique.json +0 -52
  135. package/lib/schemas/acteur/AdressePostale.json +0 -75
  136. package/lib/schemas/acteur/Civ.json +0 -14
  137. package/lib/schemas/acteur/Collaborateur.json +0 -29
  138. package/lib/schemas/acteur/EtatCivil.json +0 -51
  139. package/lib/schemas/acteur/Ident.json +0 -40
  140. package/lib/schemas/acteur/Lieu.json +0 -66
  141. package/lib/schemas/acteur/Mandat.json +0 -192
  142. package/lib/schemas/acteur/Profession.json +0 -46
  143. package/lib/schemas/agenda/Agenda.json +0 -318
  144. package/lib/schemas/agenda/CycleDeVie.json +0 -45
  145. package/lib/schemas/agenda/PointOdj.json +0 -82
  146. package/lib/schemas/amendement/Amendement.json +0 -246
  147. package/lib/schemas/amendement/Diff.json +0 -25
  148. package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
  149. package/lib/schemas/amendement/Identifiant.json +0 -62
  150. package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
  151. package/lib/schemas/amendement/Representation.json +0 -67
  152. package/lib/schemas/amendement/Total.json +0 -26
  153. package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
  154. package/lib/schemas/converted_from_type/agendas.json +0 -1100
  155. package/lib/schemas/converted_from_type/amendements.json +0 -3191
  156. package/lib/schemas/converted_from_type/debats.json +0 -682
  157. package/lib/schemas/converted_from_type/deputes.json +0 -26
  158. package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
  159. package/lib/schemas/converted_from_type/legislatures.json +0 -16
  160. package/lib/schemas/converted_from_type/questions.json +0 -328
  161. package/lib/schemas/converted_from_type/scrutins.json +0 -393
  162. package/lib/schemas/debat/Contenu.json +0 -75
  163. package/lib/schemas/debat/Debat.json +0 -40
  164. package/lib/schemas/debat/Metadonnees.json +0 -75
  165. package/lib/schemas/debat/Orateur.json +0 -60
  166. package/lib/schemas/debat/Point.json +0 -169
  167. package/lib/schemas/debat/Sommaire.json +0 -71
  168. package/lib/schemas/debat/SommaireElement.json +0 -108
  169. package/lib/schemas/debat/Texte.json +0 -34
  170. package/lib/schemas/document/CodeLibelle.json +0 -25
  171. package/lib/schemas/document/Document.json +0 -385
  172. package/lib/schemas/document/Indexation.json +0 -38
  173. package/lib/schemas/dossier/ActeLegislatif.json +0 -211
  174. package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
  175. package/lib/schemas/dossier/Agenda.json +0 -23
  176. package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
  177. package/lib/schemas/dossier/Decision.json +0 -25
  178. package/lib/schemas/dossier/Dossier.json +0 -124
  179. package/lib/schemas/dossier/EtudeImpact.json +0 -29
  180. package/lib/schemas/dossier/EtudePlf.json +0 -105
  181. package/lib/schemas/dossier/Europe.json +0 -42
  182. package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
  183. package/lib/schemas/dossier/InfoJO.json +0 -23
  184. package/lib/schemas/dossier/Initiateur.json +0 -36
  185. package/lib/schemas/dossier/Motion.json +0 -27
  186. package/lib/schemas/dossier/Promulgation.json +0 -62
  187. package/lib/schemas/dossier/Rapporteur.json +0 -36
  188. package/lib/schemas/dossier/Texte.json +0 -47
  189. package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
  190. package/lib/schemas/organe/Organe.json +0 -136
  191. package/lib/schemas/organe/ViMoDe.json +0 -28
  192. package/lib/schemas/question/Auteur.json +0 -58
  193. package/lib/schemas/question/Cloture.json +0 -28
  194. package/lib/schemas/question/InfoJO.json +0 -40
  195. package/lib/schemas/question/MinAttribElement.json +0 -30
  196. package/lib/schemas/question/Question.json +0 -172
  197. package/lib/schemas/question/Renouvellement.json +0 -17
  198. package/lib/schemas/question/Signalement.json +0 -21
  199. package/lib/schemas/question/Texte.json +0 -24
  200. package/lib/schemas/scrutin/DecompteVoix.json +0 -35
  201. package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
  202. package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
  203. package/lib/schemas/scrutin/OrganeVotant.json +0 -88
  204. package/lib/schemas/scrutin/Scrutin.json +0 -187
  205. package/lib/schemas/scrutin/Votant.json +0 -37
  206. package/lib/scripts/bugs_helper.d.ts +0 -13
  207. package/lib/scripts/bugs_helper.js +0 -595
  208. package/lib/scripts/bugs_helper.mjs +0 -251
  209. package/lib/scripts/clean_reorganized_data.js +0 -610
  210. package/lib/scripts/clean_reorganized_data.mjs +0 -273
  211. package/lib/scripts/diff_amendements.js +0 -249
  212. package/lib/scripts/diff_amendements.mjs +0 -202
  213. package/lib/scripts/document_dossiers_legislatifs.js +0 -655
  214. package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
  215. package/lib/scripts/get_today_reunions.js +0 -37
  216. package/lib/scripts/get_today_reunions.mjs +0 -31
  217. package/lib/scripts/merge_scrutins.js +0 -97
  218. package/lib/scripts/merge_scrutins.mjs +0 -47
  219. package/lib/scripts/parse_textes_lois.d.ts +0 -1
  220. package/lib/scripts/parse_textes_lois.js +0 -171
  221. package/lib/scripts/parse_textes_lois.mjs +0 -140
  222. package/lib/scripts/process_open_dataset.js +0 -301
  223. package/lib/scripts/process_open_dataset.mjs +0 -134
  224. package/lib/scripts/raw_types_from_amendements.js +0 -135
  225. package/lib/scripts/raw_types_from_amendements.mjs +0 -134
  226. package/lib/scripts/reorganize_data.js +0 -805
  227. package/lib/scripts/reorganize_data.mjs +0 -517
  228. package/lib/scripts/retrieve_deputes_photos.js +0 -310
  229. package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
  230. package/lib/scripts/retrieve_documents.js +0 -547
  231. package/lib/scripts/retrieve_documents.mjs +0 -242
  232. package/lib/scripts/retrieve_open_data.js +0 -107
  233. package/lib/scripts/retrieve_open_data.mjs +0 -26
  234. package/lib/scripts/retrieve_pending_amendments.js +0 -206
  235. package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
  236. package/lib/scripts/retrieve_senateurs_photos.js +0 -234
  237. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
  238. package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
  239. package/lib/scripts/retrieve_textes_lois.js +0 -240
  240. package/lib/scripts/retrieve_textes_lois.mjs +0 -85
  241. package/lib/scripts/shared/cli_helpers.js +0 -89
  242. package/lib/scripts/shared/cli_helpers.mjs +0 -81
  243. package/lib/scripts/test_iter_load.js +0 -155
  244. package/lib/scripts/test_iter_load.mjs +0 -72
  245. package/lib/scripts/test_load.js +0 -26
  246. package/lib/scripts/test_load.mjs +0 -16
  247. package/lib/scripts/test_load_big_files.js +0 -26
  248. package/lib/scripts/test_load_big_files.mjs +0 -16
  249. package/lib/scripts/validate_json.js +0 -353
  250. package/lib/scripts/validate_json.mjs +0 -184
  251. package/lib/shared_types/codes_actes.js +0 -231
  252. package/lib/shared_types/codes_actes.mjs +0 -224
  253. package/lib/strings.js +0 -16
  254. package/lib/strings.mjs +0 -7
  255. package/lib/types/acteurs_et_organes.js +0 -963
  256. package/lib/types/acteurs_et_organes.mjs +0 -904
  257. package/lib/types/agendas.js +0 -628
  258. package/lib/types/agendas.mjs +0 -575
  259. package/lib/types/amendements.js +0 -899
  260. package/lib/types/amendements.mjs +0 -842
  261. package/lib/types/debats.js +0 -619
  262. package/lib/types/debats.mjs +0 -562
  263. package/lib/types/dossiers_legislatifs.js +0 -1188
  264. package/lib/types/dossiers_legislatifs.mjs +0 -1130
  265. package/lib/types/legislatures.js +0 -17
  266. package/lib/types/legislatures.mjs +0 -10
  267. package/lib/types/questions.js +0 -454
  268. package/lib/types/questions.mjs +0 -401
  269. package/lib/types/scrutins.js +0 -556
  270. package/lib/types/scrutins.mjs +0 -503
  271. package/lib/urls.js +0 -325
  272. package/lib/urls.mjs +0 -258
  273. /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
  274. /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
  275. /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
@@ -1,416 +0,0 @@
1
- // To parse this data:
2
- //
3
- // import { Convert, Questions, QuestionWrapper } from "./file";
4
- //
5
- // const questions = Convert.toQuestionsjson);
6
- // const questionWrapper = Convert.toQuestionWrapper(json);
7
- //
8
- // These functions will throw an error if the JSON doesn't
9
- // match the expected interface, even if the JSON is valid.
10
-
11
- export let QuestionXsiType = /*#__PURE__*/function (QuestionXsiType) {
12
- QuestionXsiType["QuestionEcrite"] = "QuestionEcrite_Type";
13
- QuestionXsiType["QuestionGouvernement"] = "QuestionGouvernement_Type";
14
- QuestionXsiType["QuestionOrale"] = "QuestionOrale_Type";
15
- return QuestionXsiType;
16
- }({});
17
- export let TypeJo = /*#__PURE__*/function (TypeJo) {
18
- TypeJo["JoQuestion"] = "JO_QUESTION";
19
- TypeJo["JoLoiDecret"] = "JO_LOI_DECRET";
20
- TypeJo["JoDebate"] = "JO_DEBAT";
21
- return TypeJo;
22
- }({});
23
- export let Type = /*#__PURE__*/function (Type) {
24
- Type["Qe"] = "QE";
25
- Type["Qg"] = "QG";
26
- Type["Qosd"] = "QOSD";
27
- return Type;
28
- }({});
29
-
30
- // Converts JSON strings to/from your types
31
- // and asserts the results of JSON.parse at runtime
32
- export class Convert {
33
- static toQuestions(json) {
34
- return cast(JSON.parse(json), r("Questions"));
35
- }
36
- static questionsToJson(value) {
37
- return JSON.stringify(uncast(value, r("Questions")), null, 2);
38
- }
39
- static toQuestionWrapper(json) {
40
- return cast(JSON.parse(json), r("QuestionWrapper"));
41
- }
42
- static questionWrapperToJson(value) {
43
- return JSON.stringify(uncast(value, r("QuestionWrapper")), null, 2);
44
- }
45
- }
46
- function invalidValue(typ, val, key = '') {
47
- if (key) {
48
- throw Error(`Invalid value for key "${key}". Expected type ${JSON.stringify(typ)} but got ${JSON.stringify(val)}`);
49
- }
50
- throw Error(`Invalid value ${JSON.stringify(val)} for type ${JSON.stringify(typ)}`);
51
- }
52
- function jsonToJSProps(typ) {
53
- if (typ.jsonToJS === undefined) {
54
- const map = {};
55
- typ.props.forEach(p => map[p.json] = {
56
- key: p.js,
57
- typ: p.typ
58
- });
59
- typ.jsonToJS = map;
60
- }
61
- return typ.jsonToJS;
62
- }
63
- function jsToJSONProps(typ) {
64
- if (typ.jsToJSON === undefined) {
65
- const map = {};
66
- typ.props.forEach(p => map[p.js] = {
67
- key: p.json,
68
- typ: p.typ
69
- });
70
- typ.jsToJSON = map;
71
- }
72
- return typ.jsToJSON;
73
- }
74
- function transform(val, typ, getProps, key = '') {
75
- function transformPrimitive(typ, val) {
76
- if (typeof typ === typeof val) return val;
77
- return invalidValue(typ, val, key);
78
- }
79
- function transformUnion(typs, val) {
80
- // val must validate against one typ in typs
81
- const l = typs.length;
82
- for (let i = 0; i < l; i++) {
83
- const typ = typs[i];
84
- try {
85
- return transform(val, typ, getProps);
86
- } catch (_) {}
87
- }
88
- return invalidValue(typs, val);
89
- }
90
- function transformEnum(cases, val) {
91
- if (cases.indexOf(val) !== -1) return val;
92
- return invalidValue(cases, val);
93
- }
94
- function transformArray(typ, val) {
95
- // val must be an array with no invalid elements
96
- if (!Array.isArray(val)) return invalidValue("array", val);
97
- return val.map(el => transform(el, typ, getProps));
98
- }
99
- function transformDate(val) {
100
- if (val === null) {
101
- return null;
102
- }
103
- const d = new Date(val);
104
- if (isNaN(d.valueOf())) {
105
- return invalidValue("Date", val);
106
- }
107
- return d;
108
- }
109
- function transformObject(props, additional, val) {
110
- if (val === null || typeof val !== "object" || Array.isArray(val)) {
111
- return invalidValue("object", val);
112
- }
113
- const result = {};
114
- Object.getOwnPropertyNames(props).forEach(key => {
115
- const prop = props[key];
116
- const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
117
- result[prop.key] = transform(v, prop.typ, getProps, prop.key);
118
- });
119
- Object.getOwnPropertyNames(val).forEach(key => {
120
- if (!Object.prototype.hasOwnProperty.call(props, key)) {
121
- result[key] = transform(val[key], additional, getProps, key);
122
- }
123
- });
124
- return result;
125
- }
126
- if (typ === "any") return val;
127
- if (typ === null) {
128
- if (val === null) return val;
129
- return invalidValue(typ, val);
130
- }
131
- if (typ === false) return invalidValue(typ, val);
132
- while (typeof typ === "object" && typ.ref !== undefined) {
133
- typ = typeMap[typ.ref];
134
- }
135
- if (Array.isArray(typ)) return transformEnum(typ, val);
136
- if (typeof typ === "object") {
137
- return typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val) : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val) : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val) : invalidValue(typ, val);
138
- }
139
- // Numbers can be parsed by Date but shouldn't be.
140
- if (typ === Date && typeof val !== "number") return transformDate(val);
141
- return transformPrimitive(typ, val);
142
- }
143
- function cast(val, typ) {
144
- return transform(val, typ, jsonToJSProps);
145
- }
146
- function uncast(val, typ) {
147
- return transform(val, typ, jsToJSONProps);
148
- }
149
- function a(typ) {
150
- return {
151
- arrayItems: typ
152
- };
153
- }
154
- function u(...typs) {
155
- return {
156
- unionMembers: typs
157
- };
158
- }
159
- function o(props, additional) {
160
- return {
161
- props,
162
- additional
163
- };
164
- }
165
-
166
- // function m(additional: any) {
167
- // return { props: [], additional };
168
- // }
169
-
170
- function r(name) {
171
- return {
172
- ref: name
173
- };
174
- }
175
- const typeMap = {
176
- "Questions": o([{
177
- json: "questions",
178
- js: "questions",
179
- typ: r("QuestionsClass")
180
- }], false),
181
- "QuestionsClass": o([{
182
- json: "question",
183
- js: "question",
184
- typ: a(r("Question"))
185
- }], false),
186
- "QuestionWrapper": o([{
187
- json: "question",
188
- js: "question",
189
- typ: r("Question")
190
- }], false),
191
- "Question": o([{
192
- json: "@xmlns",
193
- js: "@xmlns",
194
- typ: ""
195
- }, {
196
- json: "@xmlns:xsi",
197
- js: "@xmlns:xsi",
198
- typ: ""
199
- }, {
200
- json: "@xsi:type",
201
- js: "@xsi:type",
202
- typ: r("QuestionXsiType")
203
- }, {
204
- json: "uid",
205
- js: "uid",
206
- typ: ""
207
- }, {
208
- json: "identifiant",
209
- js: "identifiant",
210
- typ: r("Identifiant")
211
- }, {
212
- json: "type",
213
- js: "type",
214
- typ: r("Type")
215
- }, {
216
- json: "indexationAN",
217
- js: "indexationAN",
218
- typ: r("IndexationAn")
219
- }, {
220
- json: "auteur",
221
- js: "auteur",
222
- typ: r("Auteur")
223
- }, {
224
- json: "minInt",
225
- js: "minInt",
226
- typ: r("Groupe")
227
- }, {
228
- json: "minAttribs",
229
- js: "minAttribs",
230
- typ: r("MinAttribs")
231
- }, {
232
- json: "textesQuestion",
233
- js: "textesQuestion",
234
- typ: u(r("TextesQuestion"), null, undefined)
235
- }, {
236
- json: "textesReponse",
237
- js: "textesReponse",
238
- typ: u(r("TextesReponse"), null, undefined)
239
- }, {
240
- json: "cloture",
241
- js: "cloture",
242
- typ: u(r("Cloture"), null, undefined)
243
- }, {
244
- json: "signalement",
245
- js: "signalement",
246
- typ: u(r("Signalement"), null, undefined)
247
- }, {
248
- json: "renouvellements",
249
- js: "renouvellements",
250
- typ: u(r("Renouvellements"), null, undefined)
251
- }], false),
252
- "Auteur": o([{
253
- json: "identite",
254
- js: "identite",
255
- typ: r("Identite")
256
- }, {
257
- json: "groupe",
258
- js: "groupe",
259
- typ: r("Groupe")
260
- }], false),
261
- "Groupe": o([{
262
- json: "organeRef",
263
- js: "organeRef",
264
- typ: ""
265
- }, {
266
- json: "abrege",
267
- js: "abrege",
268
- typ: ""
269
- }, {
270
- json: "developpe",
271
- js: "developpe",
272
- typ: ""
273
- }], false),
274
- "Identite": o([{
275
- json: "acteurRef",
276
- js: "acteurRef",
277
- typ: ""
278
- }, {
279
- json: "mandatRef",
280
- js: "mandatRef",
281
- typ: ""
282
- }], false),
283
- "Cloture": o([{
284
- json: "codeCloture",
285
- js: "codeCloture",
286
- typ: ""
287
- }, {
288
- json: "libelleCloture",
289
- js: "libelleCloture",
290
- typ: ""
291
- }, {
292
- json: "dateCloture",
293
- js: "dateCloture",
294
- typ: ""
295
- }, {
296
- json: "infoJO",
297
- js: "infoJO",
298
- typ: u(r("InfoJo"), null)
299
- }], false),
300
- "Identifiant": o([{
301
- json: "numero",
302
- js: "numero",
303
- typ: ""
304
- }, {
305
- json: "regime",
306
- js: "regime",
307
- typ: ""
308
- }, {
309
- json: "legislature",
310
- js: "legislature",
311
- typ: ""
312
- }], false),
313
- "IndexationAn": o([{
314
- json: "rubrique",
315
- js: "rubrique",
316
- typ: u("", null)
317
- }, {
318
- json: "teteAnalyse",
319
- js: "teteAnalyse",
320
- typ: null
321
- }, {
322
- json: "analyses",
323
- js: "analyses",
324
- typ: r("Analyse")
325
- }], false),
326
- "Analyse": o([{
327
- json: "analyse",
328
- js: "analyse",
329
- typ: u("", null)
330
- }], false),
331
- "MinAttribs": o([{
332
- json: "minAttrib",
333
- js: "minAttrib",
334
- typ: u(a(r("MinAttribElement")), r("MinAttribElement"))
335
- }], false),
336
- "MinAttribElement": o([{
337
- json: "infoJO",
338
- js: "infoJO",
339
- typ: r("InfoJo")
340
- }, {
341
- json: "denomination",
342
- js: "denomination",
343
- typ: r("Groupe")
344
- }], false),
345
- "InfoJo": o([{
346
- json: "typeJO",
347
- js: "typeJO",
348
- typ: u(r("TypeJo"), null)
349
- }, {
350
- json: "dateJO",
351
- js: "dateJO",
352
- typ: ""
353
- }, {
354
- json: "pageJO",
355
- js: "pageJO",
356
- typ: u("", null)
357
- }, {
358
- json: "numJO",
359
- js: "numJO",
360
- typ: u("", null)
361
- }, {
362
- json: "urlLegifrance",
363
- js: "urlLegifrance",
364
- typ: u("", null)
365
- }, {
366
- json: "referenceNOR",
367
- js: "referenceNOR",
368
- typ: u("", null)
369
- }], false),
370
- "TextesQuestion": o([{
371
- json: "texteQuestion",
372
- js: "texteQuestion",
373
- typ: u(a(r("Texte")), r("Texte"))
374
- }], false),
375
- "Texte": o([{
376
- json: "infoJO",
377
- js: "infoJO",
378
- typ: r("InfoJo")
379
- }, {
380
- json: "texte",
381
- js: "texte",
382
- typ: u("", null)
383
- }, {
384
- json: "erratum",
385
- js: "erratum",
386
- typ: u(undefined, "")
387
- }], false),
388
- "TextesReponse": o([{
389
- json: "texteReponse",
390
- js: "texteReponse",
391
- typ: u(a(r("Texte")), r("Texte"))
392
- }], false),
393
- "Signalement": o([{
394
- json: "infoJO",
395
- js: "infoJO",
396
- typ: r("InfoJo")
397
- }, {
398
- json: "dateDepotSignal",
399
- js: "dateDepotSignal",
400
- typ: ""
401
- }], false),
402
- "Renouvellements": o([{
403
- json: "renouvellement",
404
- js: "renouvellement",
405
- typ: u(a(r("Renouvellement")), r("Renouvellement"))
406
- }], false),
407
- "Renouvellement": o([{
408
- json: "infoJO",
409
- js: "infoJO",
410
- typ: r("InfoJo")
411
- }], false),
412
- "QuestionXsiType": ["QuestionEcrite_Type", "QuestionGouvernement_Type", "QuestionOrale_Type"],
413
- "TypeJo": ["JO_QUESTION", "JO_LOI_DECRET", "JO_DEBAT"],
414
- "Type": ["QE", "QG", "QOSD"]
415
- };
416
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJRdWVzdGlvblhzaVR5cGUiLCJUeXBlSm8iLCJUeXBlIiwiQ29udmVydCIsInRvUXVlc3Rpb25zIiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwicXVlc3Rpb25zVG9Kc29uIiwidmFsdWUiLCJzdHJpbmdpZnkiLCJ1bmNhc3QiLCJ0b1F1ZXN0aW9uV3JhcHBlciIsInF1ZXN0aW9uV3JhcHBlclRvSnNvbiIsImludmFsaWRWYWx1ZSIsInR5cCIsInZhbCIsImtleSIsIkVycm9yIiwianNvblRvSlNQcm9wcyIsImpzb25Ub0pTIiwidW5kZWZpbmVkIiwibWFwIiwicHJvcHMiLCJmb3JFYWNoIiwicCIsImpzIiwianNUb0pTT05Qcm9wcyIsImpzVG9KU09OIiwidHJhbnNmb3JtIiwiZ2V0UHJvcHMiLCJ0cmFuc2Zvcm1QcmltaXRpdmUiLCJ0cmFuc2Zvcm1VbmlvbiIsInR5cHMiLCJsIiwibGVuZ3RoIiwiaSIsIl8iLCJ0cmFuc2Zvcm1FbnVtIiwiY2FzZXMiLCJpbmRleE9mIiwidHJhbnNmb3JtQXJyYXkiLCJBcnJheSIsImlzQXJyYXkiLCJlbCIsInRyYW5zZm9ybURhdGUiLCJkIiwiRGF0ZSIsImlzTmFOIiwidmFsdWVPZiIsInRyYW5zZm9ybU9iamVjdCIsImFkZGl0aW9uYWwiLCJyZXN1bHQiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcCIsInYiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJyZWYiLCJ0eXBlTWFwIiwidW5pb25NZW1iZXJzIiwiYXJyYXlJdGVtcyIsImEiLCJ1IiwibyIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmF3X3R5cGVzL3F1ZXN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBwYXJzZSB0aGlzIGRhdGE6XG4vL1xuLy8gICBpbXBvcnQgeyBDb252ZXJ0LCBRdWVzdGlvbnMsIFF1ZXN0aW9uV3JhcHBlciB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IHF1ZXN0aW9ucyA9IENvbnZlcnQudG9RdWVzdGlvbnNqc29uKTtcbi8vICAgY29uc3QgcXVlc3Rpb25XcmFwcGVyID0gQ29udmVydC50b1F1ZXN0aW9uV3JhcHBlcihqc29uKTtcbi8vXG4vLyBUaGVzZSBmdW5jdGlvbnMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgSlNPTiBkb2Vzbid0XG4vLyBtYXRjaCB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlLCBldmVuIGlmIHRoZSBKU09OIGlzIHZhbGlkLlxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXN0aW9ucyB7XG4gICAgcXVlc3Rpb25zOiBRdWVzdGlvbnNDbGFzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbnNDbGFzcyB7XG4gICAgcXVlc3Rpb246IFF1ZXN0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlc3Rpb25XcmFwcGVyIHtcbiAgICBxdWVzdGlvbjogUXVlc3Rpb25cbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbiB7XG4gICAgXCJAeG1sbnNcIj86ICAgICAgICBzdHJpbmc7XG4gICAgXCJAeG1sbnM6eHNpXCI6ICAgICBzdHJpbmc7XG4gICAgXCJAeHNpOnR5cGVcIjogICAgICBRdWVzdGlvblhzaVR5cGU7XG4gICAgdWlkOiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGlkZW50aWZpYW50OiAgICAgIElkZW50aWZpYW50O1xuICAgIHR5cGU6ICAgICAgICAgICAgIFR5cGU7XG4gICAgaW5kZXhhdGlvbkFOOiAgICAgSW5kZXhhdGlvbkFuO1xuICAgIGF1dGV1cjogICAgICAgICAgIEF1dGV1cjtcbiAgICBtaW5JbnQ6ICAgICAgICAgICBHcm91cGU7XG4gICAgbWluQXR0cmliczogICAgICAgTWluQXR0cmlicztcbiAgICB0ZXh0ZXNRdWVzdGlvbj86ICBUZXh0ZXNRdWVzdGlvbiB8IG51bGw7XG4gICAgdGV4dGVzUmVwb25zZT86ICAgVGV4dGVzUmVwb25zZSB8IG51bGw7XG4gICAgY2xvdHVyZT86ICAgICAgICAgQ2xvdHVyZSB8IG51bGw7XG4gICAgc2lnbmFsZW1lbnQ/OiAgICAgU2lnbmFsZW1lbnQgfCBudWxsO1xuICAgIHJlbm91dmVsbGVtZW50cz86IFJlbm91dmVsbGVtZW50cyB8IG51bGw7XG59XG5cbmV4cG9ydCBlbnVtIFF1ZXN0aW9uWHNpVHlwZSB7XG4gICAgUXVlc3Rpb25FY3JpdGUgPSBcIlF1ZXN0aW9uRWNyaXRlX1R5cGVcIixcbiAgICBRdWVzdGlvbkdvdXZlcm5lbWVudCA9IFwiUXVlc3Rpb25Hb3V2ZXJuZW1lbnRfVHlwZVwiLFxuICAgIFF1ZXN0aW9uT3JhbGUgPSBcIlF1ZXN0aW9uT3JhbGVfVHlwZVwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0ZXVyIHtcbiAgICBpZGVudGl0ZTogSWRlbnRpdGU7XG4gICAgZ3JvdXBlOiAgIEdyb3VwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cGUge1xuICAgIG9yZ2FuZVJlZjogc3RyaW5nO1xuICAgIGFicmVnZTogICAgc3RyaW5nO1xuICAgIGRldmVsb3BwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXRlIHtcbiAgICBhY3RldXJSZWY6IHN0cmluZztcbiAgICBtYW5kYXRSZWY6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG90dXJlIHtcbiAgICBjb2RlQ2xvdHVyZTogICAgc3RyaW5nO1xuICAgIGxpYmVsbGVDbG90dXJlOiBzdHJpbmc7XG4gICAgZGF0ZUNsb3R1cmU6ICAgIHN0cmluZztcbiAgICBpbmZvSk86ICAgICAgICAgSW5mb0pvIHwgbnVsbDtcbn1cblxuZXhwb3J0IGVudW0gVHlwZUpvIHtcbiAgICBKb1F1ZXN0aW9uID0gXCJKT19RVUVTVElPTlwiLFxuICAgIEpvTG9pRGVjcmV0ID0gXCJKT19MT0lfREVDUkVUXCIsXG4gICAgSm9EZWJhdGUgPSBcIkpPX0RFQkFUXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmlhbnQge1xuICAgIG51bWVybzogICAgICBzdHJpbmc7XG4gICAgcmVnaW1lOiAgICAgIHN0cmluZztcbiAgICBsZWdpc2xhdHVyZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4YXRpb25BbiB7XG4gICAgcnVicmlxdWU6ICAgIHN0cmluZyB8IG51bGw7XG4gICAgdGV0ZUFuYWx5c2U6IG51bGw7XG4gICAgYW5hbHlzZXM6ICAgICBBbmFseXNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuYWx5c2Uge1xuICAgIGFuYWx5c2U6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluQXR0cmlicyB7XG4gICAgbWluQXR0cmliOiBNaW5BdHRyaWJFbGVtZW50W10gfCBNaW5BdHRyaWJFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pbkF0dHJpYkVsZW1lbnQge1xuICAgIGluZm9KTzogSW5mb0pvO1xuICAgIGRlbm9taW5hdGlvbjogR3JvdXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRlc1F1ZXN0aW9uIHtcbiAgICB0ZXh0ZVF1ZXN0aW9uOiBUZXh0ZVtdIHwgVGV4dGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dGUge1xuICAgIGluZm9KTzogSW5mb0pvO1xuICAgIHRleHRlOiAgc3RyaW5nIHwgbnVsbDtcbiAgICBlcnJhdHVtPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9KbyB7XG4gICAgdHlwZUpPOiAgICAgICAgICBUeXBlSm8gfCBudWxsO1xuICAgIGRhdGVKTzogICAgICAgICAgc3RyaW5nO1xuICAgIHBhZ2VKTzogICAgICAgICAgc3RyaW5nIHwgbnVsbDtcbiAgICBudW1KTzogICAgICAgICAgIHN0cmluZyB8IG51bGw7XG4gICAgdXJsTGVnaWZyYW5jZTogICBzdHJpbmcgfCBudWxsO1xuICAgIHJlZmVyZW5jZU5PUjogICAgc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZXNSZXBvbnNlIHtcbiAgICB0ZXh0ZVJlcG9uc2U6IFRleHRlW10gfCBUZXh0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYWxlbWVudCB7XG4gICAgZGF0ZURlcG90U2lnbmFsOiAgc3RyaW5nO1xuICAgIGluZm9KTzogICAgICAgICAgIEluZm9Kbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW5vdXZlbGxlbWVudHMge1xuICAgIHJlbm91dmVsbGVtZW50OiBSZW5vdXZlbGxlbWVudFtdIHwgUmVub3V2ZWxsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVub3V2ZWxsZW1lbnQge1xuICAgIGluZm9KTzogSW5mb0pvO1xufVxuXG5leHBvcnQgZW51bSBUeXBlIHtcbiAgICBRZSA9IFwiUUVcIixcbiAgICBRZyA9IFwiUUdcIixcbiAgICBRb3NkID0gXCJRT1NEXCJcbn1cblxuLy8gQ29udmVydHMgSlNPTiBzdHJpbmdzIHRvL2Zyb20geW91ciB0eXBlc1xuLy8gYW5kIGFzc2VydHMgdGhlIHJlc3VsdHMgb2YgSlNPTi5wYXJzZSBhdCBydW50aW1lXG5leHBvcnQgY2xhc3MgQ29udmVydCB7XG4gICAgcHVibGljIHN0YXRpYyB0b1F1ZXN0aW9ucyhqc29uOiBzdHJpbmcpOiBRdWVzdGlvbnMge1xuICAgICAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiUXVlc3Rpb25zXCIpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHF1ZXN0aW9uc1RvSnNvbih2YWx1ZTogUXVlc3Rpb25zKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIlF1ZXN0aW9uc1wiKSksIG51bGwsIDIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdG9RdWVzdGlvbldyYXBwZXIoanNvbjogc3RyaW5nKTogUXVlc3Rpb25XcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlF1ZXN0aW9uV3JhcHBlclwiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBxdWVzdGlvbldyYXBwZXJUb0pzb24odmFsdWU6IFF1ZXN0aW9uV3JhcHBlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJRdWVzdGlvbldyYXBwZXJcIikpLCBudWxsLCAyKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGludmFsaWRWYWx1ZSh0eXA6IGFueSwgdmFsOiBhbnksIGtleTogYW55ID0gJycpOiBuZXZlciB7XG4gICAgaWYgKGtleSkge1xuICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCB2YWx1ZSBmb3Iga2V5IFwiJHtrZXl9XCIuIEV4cGVjdGVkIHR5cGUgJHtKU09OLnN0cmluZ2lmeSh0eXApfSBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkodmFsKX1gKTtcbiAgICB9XG4gICAgdGhyb3cgRXJyb3IoYEludmFsaWQgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfSBmb3IgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cCl9YCwgKTtcbn1cblxuZnVuY3Rpb24ganNvblRvSlNQcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cC5qc29uVG9KUyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG1hcDogYW55ID0ge307XG4gICAgICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IG1hcFtwLmpzb25dID0geyBrZXk6IHAuanMsIHR5cDogcC50eXAgfSk7XG4gICAgICAgIHR5cC5qc29uVG9KUyA9IG1hcDtcbiAgICB9XG4gICAgcmV0dXJuIHR5cC5qc29uVG9KUztcbn1cblxuZnVuY3Rpb24ganNUb0pTT05Qcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cC5qc1RvSlNPTiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG1hcDogYW55ID0ge307XG4gICAgICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IG1hcFtwLmpzXSA9IHsga2V5OiBwLmpzb24sIHR5cDogcC50eXAgfSk7XG4gICAgICAgIHR5cC5qc1RvSlNPTiA9IG1hcDtcbiAgICB9XG4gICAgcmV0dXJuIHR5cC5qc1RvSlNPTjtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtKHZhbDogYW55LCB0eXA6IGFueSwgZ2V0UHJvcHM6IGFueSwga2V5OiBhbnkgPSAnJyk6IGFueSB7XG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtUHJpbWl0aXZlKHR5cDogc3RyaW5nLCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsO1xuICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsLCBrZXkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybVVuaW9uKHR5cHM6IGFueVtdLCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIC8vIHZhbCBtdXN0IHZhbGlkYXRlIGFnYWluc3Qgb25lIHR5cCBpbiB0eXBzXG4gICAgICAgIGNvbnN0IGwgPSB0eXBzLmxlbmd0aDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cCA9IHR5cHNbaV07XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGdldFByb3BzKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXBzLCB2YWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybUVudW0oY2FzZXM6IHN0cmluZ1tdLCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIGlmIChjYXNlcy5pbmRleE9mKHZhbCkgIT09IC0xKSByZXR1cm4gdmFsO1xuICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKGNhc2VzLCB2YWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIC8vIHZhbCBtdXN0IGJlIGFuIGFycmF5IHdpdGggbm8gaW52YWxpZCBlbGVtZW50c1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGludmFsaWRWYWx1ZShcImFycmF5XCIsIHZhbCk7XG4gICAgICAgIHJldHVybiB2YWwubWFwKGVsID0+IHRyYW5zZm9ybShlbCwgdHlwLCBnZXRQcm9wcykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybURhdGUodmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodmFsID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkID0gbmV3IERhdGUodmFsKTtcbiAgICAgICAgaWYgKGlzTmFOKGQudmFsdWVPZigpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZShcIkRhdGVcIiwgdmFsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3QocHJvcHM6IHsgW2s6IHN0cmluZ106IGFueSB9LCBhZGRpdGlvbmFsOiBhbnksIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZShcIm9iamVjdFwiLCB2YWwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9wID0gcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsLCBrZXkpID8gdmFsW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywgcHJvcC5rZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmFsKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywga2V5KSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtKHZhbFtrZXldLCBhZGRpdGlvbmFsLCBnZXRQcm9wcywga2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cCA9PT0gXCJhbnlcIikgcmV0dXJuIHZhbDtcbiAgICBpZiAodHlwID09PSBudWxsKSB7XG4gICAgICAgIGlmICh2YWwgPT09IG51bGwpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpO1xuICAgIH1cbiAgICBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCk7XG4gICAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHR5cCA9IHR5cGVNYXBbdHlwLnJlZl07XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKTtcbiAgICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gdHlwLmhhc093blByb3BlcnR5KFwidW5pb25NZW1iZXJzXCIpID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgICAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwicHJvcHNcIikgICAgICAgICA/IHRyYW5zZm9ybU9iamVjdChnZXRQcm9wcyh0eXApLCB0eXAuYWRkaXRpb25hbCwgdmFsKVxuICAgICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpO1xuICAgIH1cbiAgICAvLyBOdW1iZXJzIGNhbiBiZSBwYXJzZWQgYnkgRGF0ZSBidXQgc2hvdWxkbid0IGJlLlxuICAgIGlmICh0eXAgPT09IERhdGUgJiYgdHlwZW9mIHZhbCAhPT0gXCJudW1iZXJcIikgcmV0dXJuIHRyYW5zZm9ybURhdGUodmFsKTtcbiAgICByZXR1cm4gdHJhbnNmb3JtUHJpbWl0aXZlKHR5cCwgdmFsKTtcbn1cblxuZnVuY3Rpb24gY2FzdDxUPih2YWw6IGFueSwgdHlwOiBhbnkpOiBUIHtcbiAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc29uVG9KU1Byb3BzKTtcbn1cblxuZnVuY3Rpb24gdW5jYXN0PFQ+KHZhbDogVCwgdHlwOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzVG9KU09OUHJvcHMpO1xufVxuXG5mdW5jdGlvbiBhKHR5cDogYW55KSB7XG4gICAgcmV0dXJuIHsgYXJyYXlJdGVtczogdHlwIH07XG59XG5cbmZ1bmN0aW9uIHUoLi4udHlwczogYW55W10pIHtcbiAgICByZXR1cm4geyB1bmlvbk1lbWJlcnM6IHR5cHMgfTtcbn1cblxuZnVuY3Rpb24gbyhwcm9wczogYW55W10sIGFkZGl0aW9uYWw6IGFueSkge1xuICAgIHJldHVybiB7IHByb3BzLCBhZGRpdGlvbmFsIH07XG59XG5cbi8vIGZ1bmN0aW9uIG0oYWRkaXRpb25hbDogYW55KSB7XG4vLyAgICAgcmV0dXJuIHsgcHJvcHM6IFtdLCBhZGRpdGlvbmFsIH07XG4vLyB9XG5cbmZ1bmN0aW9uIHIobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHsgcmVmOiBuYW1lIH07XG59XG5cbmNvbnN0IHR5cGVNYXA6IGFueSA9IHtcbiAgICBcIlF1ZXN0aW9uc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInF1ZXN0aW9uc1wiLCBqczogXCJxdWVzdGlvbnNcIiwgdHlwOiByKFwiUXVlc3Rpb25zQ2xhc3NcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJRdWVzdGlvbnNDbGFzc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInF1ZXN0aW9uXCIsIGpzOiBcInF1ZXN0aW9uXCIsIHR5cDogYShyKFwiUXVlc3Rpb25cIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUXVlc3Rpb25XcmFwcGVyXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicXVlc3Rpb25cIiwganM6IFwicXVlc3Rpb25cIiwgdHlwOiByKFwiUXVlc3Rpb25cIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJRdWVzdGlvblwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIkB4bWxuc1wiLCBqczogXCJAeG1sbnNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJAeG1sbnM6eHNpXCIsIGpzOiBcIkB4bWxuczp4c2lcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJAeHNpOnR5cGVcIiwganM6IFwiQHhzaTp0eXBlXCIsIHR5cDogcihcIlF1ZXN0aW9uWHNpVHlwZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwidWlkXCIsIGpzOiBcInVpZFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImlkZW50aWZpYW50XCIsIGpzOiBcImlkZW50aWZpYW50XCIsIHR5cDogcihcIklkZW50aWZpYW50XCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlXCIsIGpzOiBcInR5cGVcIiwgdHlwOiByKFwiVHlwZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaW5kZXhhdGlvbkFOXCIsIGpzOiBcImluZGV4YXRpb25BTlwiLCB0eXA6IHIoXCJJbmRleGF0aW9uQW5cIikgfSxcbiAgICAgICAgeyBqc29uOiBcImF1dGV1clwiLCBqczogXCJhdXRldXJcIiwgdHlwOiByKFwiQXV0ZXVyXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJtaW5JbnRcIiwganM6IFwibWluSW50XCIsIHR5cDogcihcIkdyb3VwZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwibWluQXR0cmlic1wiLCBqczogXCJtaW5BdHRyaWJzXCIsIHR5cDogcihcIk1pbkF0dHJpYnNcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInRleHRlc1F1ZXN0aW9uXCIsIGpzOiBcInRleHRlc1F1ZXN0aW9uXCIsIHR5cDogdShyKFwiVGV4dGVzUXVlc3Rpb25cIiksIG51bGwsIHVuZGVmaW5lZCkgfSxcbiAgICAgICAgeyBqc29uOiBcInRleHRlc1JlcG9uc2VcIiwganM6IFwidGV4dGVzUmVwb25zZVwiLCB0eXA6IHUocihcIlRleHRlc1JlcG9uc2VcIiksIG51bGwsIHVuZGVmaW5lZCkgfSxcbiAgICAgICAgeyBqc29uOiBcImNsb3R1cmVcIiwganM6IFwiY2xvdHVyZVwiLCB0eXA6IHUocihcIkNsb3R1cmVcIiksIG51bGwsIHVuZGVmaW5lZCkgfSxcbiAgICAgICAgeyBqc29uOiBcInNpZ25hbGVtZW50XCIsIGpzOiBcInNpZ25hbGVtZW50XCIsIHR5cDogdShyKFwiU2lnbmFsZW1lbnRcIiksIG51bGwsIHVuZGVmaW5lZCkgfSxcbiAgICAgICAgeyBqc29uOiBcInJlbm91dmVsbGVtZW50c1wiLCBqczogXCJyZW5vdXZlbGxlbWVudHNcIiwgdHlwOiB1KHIoXCJSZW5vdXZlbGxlbWVudHNcIiksIG51bGwsIHVuZGVmaW5lZCkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJBdXRldXJcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJpZGVudGl0ZVwiLCBqczogXCJpZGVudGl0ZVwiLCB0eXA6IHIoXCJJZGVudGl0ZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwiZ3JvdXBlXCIsIGpzOiBcImdyb3VwZVwiLCB0eXA6IHIoXCJHcm91cGVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJHcm91cGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJvcmdhbmVSZWZcIiwganM6IFwib3JnYW5lUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiYWJyZWdlXCIsIGpzOiBcImFicmVnZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImRldmVsb3BwZVwiLCBqczogXCJkZXZlbG9wcGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiSWRlbnRpdGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJhY3RldXJSZWZcIiwganM6IFwiYWN0ZXVyUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibWFuZGF0UmVmXCIsIGpzOiBcIm1hbmRhdFJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJDbG90dXJlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwiY29kZUNsb3R1cmVcIiwganM6IFwiY29kZUNsb3R1cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJsaWJlbGxlQ2xvdHVyZVwiLCBqczogXCJsaWJlbGxlQ2xvdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImRhdGVDbG90dXJlXCIsIGpzOiBcImRhdGVDbG90dXJlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiaW5mb0pPXCIsIGpzOiBcImluZm9KT1wiLCB0eXA6IHUocihcIkluZm9Kb1wiKSwgbnVsbCkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJJZGVudGlmaWFudFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm51bWVyb1wiLCBqczogXCJudW1lcm9cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJyZWdpbWVcIiwganM6IFwicmVnaW1lXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibGVnaXNsYXR1cmVcIiwganM6IFwibGVnaXNsYXR1cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiSW5kZXhhdGlvbkFuXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicnVicmlxdWVcIiwganM6IFwicnVicmlxdWVcIiwgdHlwOiB1KFwiXCIsIG51bGwpIH0sXG4gICAgICAgIHsganNvbjogXCJ0ZXRlQW5hbHlzZVwiLCBqczogXCJ0ZXRlQW5hbHlzZVwiLCB0eXA6IG51bGwgfSxcbiAgICAgICAgeyBqc29uOiBcImFuYWx5c2VzXCIsIGpzOiBcImFuYWx5c2VzXCIsIHR5cDogcihcIkFuYWx5c2VcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJBbmFseXNlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwiYW5hbHlzZVwiLCBqczogXCJhbmFseXNlXCIsIHR5cDogdShcIlwiLCBudWxsKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIk1pbkF0dHJpYnNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJtaW5BdHRyaWJcIiwganM6IFwibWluQXR0cmliXCIsIHR5cDogdShhKHIoXCJNaW5BdHRyaWJFbGVtZW50XCIpKSwgcihcIk1pbkF0dHJpYkVsZW1lbnRcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiTWluQXR0cmliRWxlbWVudFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImluZm9KT1wiLCBqczogXCJpbmZvSk9cIiwgdHlwOiByKFwiSW5mb0pvXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJkZW5vbWluYXRpb25cIiwganM6IFwiZGVub21pbmF0aW9uXCIsIHR5cDogcihcIkdyb3VwZVwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkluZm9Kb1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInR5cGVKT1wiLCBqczogXCJ0eXBlSk9cIiwgdHlwOiB1KHIoXCJUeXBlSm9cIiksIG51bGwpIH0sXG4gICAgICAgIHsganNvbjogXCJkYXRlSk9cIiwganM6IFwiZGF0ZUpPXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwicGFnZUpPXCIsIGpzOiBcInBhZ2VKT1wiLCB0eXA6IHUoXCJcIiwgbnVsbCkgfSxcbiAgICAgICAgeyBqc29uOiBcIm51bUpPXCIsIGpzOiBcIm51bUpPXCIsIHR5cDogdShcIlwiLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwidXJsTGVnaWZyYW5jZVwiLCBqczogXCJ1cmxMZWdpZnJhbmNlXCIsIHR5cDogdShcIlwiLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwicmVmZXJlbmNlTk9SXCIsIGpzOiBcInJlZmVyZW5jZU5PUlwiLCB0eXA6IHUoXCJcIiwgbnVsbCkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJUZXh0ZXNRdWVzdGlvblwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInRleHRlUXVlc3Rpb25cIiwganM6IFwidGV4dGVRdWVzdGlvblwiLCB0eXA6IHUoYShyKFwiVGV4dGVcIikpLCByKFwiVGV4dGVcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiVGV4dGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJpbmZvSk9cIiwganM6IFwiaW5mb0pPXCIsIHR5cDogcihcIkluZm9Kb1wiKSB9LFxuICAgICAgICB7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiB1KFwiXCIsIG51bGwpIH0sXG4gICAgICAgIHsganNvbjogXCJlcnJhdHVtXCIsIGpzOiBcImVycmF0dW1cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIil9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlRleHRlc1JlcG9uc2VcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJ0ZXh0ZVJlcG9uc2VcIiwganM6IFwidGV4dGVSZXBvbnNlXCIsIHR5cDogdShhKHIoXCJUZXh0ZVwiKSksIHIoXCJUZXh0ZVwiKSkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJTaWduYWxlbWVudFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImluZm9KT1wiLCBqczogXCJpbmZvSk9cIiwgdHlwOiByKFwiSW5mb0pvXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJkYXRlRGVwb3RTaWduYWxcIiwganM6IFwiZGF0ZURlcG90U2lnbmFsXCIsIHR5cDogXCJcIiB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlJlbm91dmVsbGVtZW50c1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInJlbm91dmVsbGVtZW50XCIsIGpzOiBcInJlbm91dmVsbGVtZW50XCIsIHR5cDogdShhKHIoXCJSZW5vdXZlbGxlbWVudFwiKSksIHIoXCJSZW5vdXZlbGxlbWVudFwiKSkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJSZW5vdXZlbGxlbWVudFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImluZm9KT1wiLCBqczogXCJpbmZvSk9cIiwgdHlwOiByKFwiSW5mb0pvXCIpIH1cbiAgICBdLCBmYWxzZSksXG4gICAgXCJRdWVzdGlvblhzaVR5cGVcIjogW1xuICAgICAgICBcIlF1ZXN0aW9uRWNyaXRlX1R5cGVcIixcbiAgICAgICAgXCJRdWVzdGlvbkdvdXZlcm5lbWVudF9UeXBlXCIsXG4gICAgICAgIFwiUXVlc3Rpb25PcmFsZV9UeXBlXCJcbiAgICBdLFxuICAgIFwiVHlwZUpvXCI6IFtcbiAgICAgICAgXCJKT19RVUVTVElPTlwiLFxuICAgICAgICBcIkpPX0xPSV9ERUNSRVRcIixcbiAgICAgICAgXCJKT19ERUJBVFwiXG4gICAgXSxcbiAgICBcIlR5cGVcIjogW1xuICAgICAgICBcIlFFXCIsXG4gICAgICAgIFwiUUdcIixcbiAgICAgICAgXCJRT1NEXCJcbiAgICBdLFxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQWdDQSxXQUFZQSxlQUFlLDBCQUFmQSxlQUFlO0VBQWZBLGVBQWU7RUFBZkEsZUFBZTtFQUFmQSxlQUFlO0VBQUEsT0FBZkEsZUFBZTtBQUFBO0FBNkIzQixXQUFZQyxNQUFNLDBCQUFOQSxNQUFNO0VBQU5BLE1BQU07RUFBTkEsTUFBTTtFQUFOQSxNQUFNO0VBQUEsT0FBTkEsTUFBTTtBQUFBO0FBbUVsQixXQUFZQyxJQUFJLDBCQUFKQSxJQUFJO0VBQUpBLElBQUk7RUFBSkEsSUFBSTtFQUFKQSxJQUFJO0VBQUEsT0FBSkEsSUFBSTtBQUFBOztBQU1oQjtBQUNBO0FBQ0EsT0FBTyxNQUFNQyxPQUFPLENBQUM7RUFDakIsT0FBY0MsV0FBV0EsQ0FBQ0MsSUFBWSxFQUFhO0lBQy9DLE9BQU9DLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILElBQUksQ0FBQyxFQUFFSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7RUFDakQ7RUFFQSxPQUFjQyxlQUFlQSxDQUFDQyxLQUFnQixFQUFVO0lBQ3BELE9BQU9KLElBQUksQ0FBQ0ssU0FBUyxDQUFDQyxNQUFNLENBQUNGLEtBQUssRUFBRUYsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztFQUNqRTtFQUVBLE9BQWNLLGlCQUFpQkEsQ0FBQ1QsSUFBWSxFQUFtQjtJQUMzRCxPQUFPQyxJQUFJLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxDQUFDSCxJQUFJLENBQUMsRUFBRUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7RUFDdkQ7RUFFQSxPQUFjTSxxQkFBcUJBLENBQUNKLEtBQXNCLEVBQVU7SUFDaEUsT0FBT0osSUFBSSxDQUFDSyxTQUFTLENBQUNDLE1BQU0sQ0FBQ0YsS0FBSyxFQUFFRixDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7RUFDdkU7QUFDSjtBQUVBLFNBQVNPLFlBQVlBLENBQUNDLEdBQVEsRUFBRUMsR0FBUSxFQUFFQyxHQUFRLEdBQUcsRUFBRSxFQUFTO0VBQzVELElBQUlBLEdBQUcsRUFBRTtJQUNMLE1BQU1DLEtBQUssQ0FBQywwQkFBMEJELEdBQUcsb0JBQW9CWixJQUFJLENBQUNLLFNBQVMsQ0FBQ0ssR0FBRyxDQUFDLFlBQVlWLElBQUksQ0FBQ0ssU0FBUyxDQUFDTSxHQUFHLENBQUMsRUFBRSxDQUFDO0VBQ3RIO0VBQ0EsTUFBTUUsS0FBSyxDQUFDLGlCQUFpQmIsSUFBSSxDQUFDSyxTQUFTLENBQUNNLEdBQUcsQ0FBQyxhQUFhWCxJQUFJLENBQUNLLFNBQVMsQ0FBQ0ssR0FBRyxDQUFDLEVBQUksQ0FBQztBQUN6RjtBQUVBLFNBQVNJLGFBQWFBLENBQUNKLEdBQVEsRUFBTztFQUNsQyxJQUFJQSxHQUFHLENBQUNLLFFBQVEsS0FBS0MsU0FBUyxFQUFFO0lBQzVCLE1BQU1DLEdBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkJQLEdBQUcsQ0FBQ1EsS0FBSyxDQUFDQyxPQUFPLENBQUVDLENBQU0sSUFBS0gsR0FBRyxDQUFDRyxDQUFDLENBQUN0QixJQUFJLENBQUMsR0FBRztNQUFFYyxHQUFHLEVBQUVRLENBQUMsQ0FBQ0MsRUFBRTtNQUFFWCxHQUFHLEVBQUVVLENBQUMsQ0FBQ1Y7SUFBSSxDQUFDLENBQUM7SUFDdEVBLEdBQUcsQ0FBQ0ssUUFBUSxHQUFHRSxHQUFHO0VBQ3RCO0VBQ0EsT0FBT1AsR0FBRyxDQUFDSyxRQUFRO0FBQ3ZCO0FBRUEsU0FBU08sYUFBYUEsQ0FBQ1osR0FBUSxFQUFPO0VBQ2xDLElBQUlBLEdBQUcsQ0FBQ2EsUUFBUSxLQUFLUCxTQUFTLEVBQUU7SUFDNUIsTUFBTUMsR0FBUSxHQUFHLENBQUMsQ0FBQztJQUNuQlAsR0FBRyxDQUFDUSxLQUFLLENBQUNDLE9BQU8sQ0FBRUMsQ0FBTSxJQUFLSCxHQUFHLENBQUNHLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLEdBQUc7TUFBRVQsR0FBRyxFQUFFUSxDQUFDLENBQUN0QixJQUFJO01BQUVZLEdBQUcsRUFBRVUsQ0FBQyxDQUFDVjtJQUFJLENBQUMsQ0FBQztJQUN0RUEsR0FBRyxDQUFDYSxRQUFRLEdBQUdOLEdBQUc7RUFDdEI7RUFDQSxPQUFPUCxHQUFHLENBQUNhLFFBQVE7QUFDdkI7QUFFQSxTQUFTQyxTQUFTQSxDQUFDYixHQUFRLEVBQUVELEdBQVEsRUFBRWUsUUFBYSxFQUFFYixHQUFRLEdBQUcsRUFBRSxFQUFPO0VBQ3RFLFNBQVNjLGtCQUFrQkEsQ0FBQ2hCLEdBQVcsRUFBRUMsR0FBUSxFQUFPO0lBQ3BELElBQUksT0FBT0QsR0FBRyxLQUFLLE9BQU9DLEdBQUcsRUFBRSxPQUFPQSxHQUFHO0lBQ3pDLE9BQU9GLFlBQVksQ0FBQ0MsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztFQUN0QztFQUVBLFNBQVNlLGNBQWNBLENBQUNDLElBQVcsRUFBRWpCLEdBQVEsRUFBTztJQUNoRDtJQUNBLE1BQU1rQixDQUFDLEdBQUdELElBQUksQ0FBQ0UsTUFBTTtJQUNyQixLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0YsQ0FBQyxFQUFFRSxDQUFDLEVBQUUsRUFBRTtNQUN4QixNQUFNckIsR0FBRyxHQUFHa0IsSUFBSSxDQUFDRyxDQUFDLENBQUM7TUFDbkIsSUFBSTtRQUNBLE9BQU9QLFNBQVMsQ0FBQ2IsR0FBRyxFQUFFRCxHQUFHLEVBQUVlLFFBQVEsQ0FBQztNQUN4QyxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFLENBQUM7SUFDakI7SUFDQSxPQUFPdkIsWUFBWSxDQUFDbUIsSUFBSSxFQUFFakIsR0FBRyxDQUFDO0VBQ2xDO0VBRUEsU0FBU3NCLGFBQWFBLENBQUNDLEtBQWUsRUFBRXZCLEdBQVEsRUFBTztJQUNuRCxJQUFJdUIsS0FBSyxDQUFDQyxPQUFPLENBQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPQSxHQUFHO0lBQ3pDLE9BQU9GLFlBQVksQ0FBQ3lCLEtBQUssRUFBRXZCLEdBQUcsQ0FBQztFQUNuQztFQUVBLFNBQVN5QixjQUFjQSxDQUFDMUIsR0FBUSxFQUFFQyxHQUFRLEVBQU87SUFDN0M7SUFDQSxJQUFJLENBQUMwQixLQUFLLENBQUNDLE9BQU8sQ0FBQzNCLEdBQUcsQ0FBQyxFQUFFLE9BQU9GLFlBQVksQ0FBQyxPQUFPLEVBQUVFLEdBQUcsQ0FBQztJQUMxRCxPQUFPQSxHQUFHLENBQUNNLEdBQUcsQ0FBQ3NCLEVBQUUsSUFBSWYsU0FBUyxDQUFDZSxFQUFFLEVBQUU3QixHQUFHLEVBQUVlLFFBQVEsQ0FBQyxDQUFDO0VBQ3REO0VBRUEsU0FBU2UsYUFBYUEsQ0FBQzdCLEdBQVEsRUFBTztJQUNsQyxJQUFJQSxHQUFHLEtBQUssSUFBSSxFQUFFO01BQ2QsT0FBTyxJQUFJO0lBQ2Y7SUFDQSxNQUFNOEIsQ0FBQyxHQUFHLElBQUlDLElBQUksQ0FBQy9CLEdBQUcsQ0FBQztJQUN2QixJQUFJZ0MsS0FBSyxDQUFDRixDQUFDLENBQUNHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtNQUNwQixPQUFPbkMsWUFBWSxDQUFDLE1BQU0sRUFBRUUsR0FBRyxDQUFDO0lBQ3BDO0lBQ0EsT0FBTzhCLENBQUM7RUFDWjtFQUVBLFNBQVNJLGVBQWVBLENBQUMzQixLQUEyQixFQUFFNEIsVUFBZSxFQUFFbkMsR0FBUSxFQUFPO0lBQ2xGLElBQUlBLEdBQUcsS0FBSyxJQUFJLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsSUFBSTBCLEtBQUssQ0FBQ0MsT0FBTyxDQUFDM0IsR0FBRyxDQUFDLEVBQUU7TUFDL0QsT0FBT0YsWUFBWSxDQUFDLFFBQVEsRUFBRUUsR0FBRyxDQUFDO0lBQ3RDO0lBQ0EsTUFBTW9DLE1BQVcsR0FBRyxDQUFDLENBQUM7SUFDdEJDLE1BQU0sQ0FBQ0MsbUJBQW1CLENBQUMvQixLQUFLLENBQUMsQ0FBQ0MsT0FBTyxDQUFDUCxHQUFHLElBQUk7TUFDN0MsTUFBTXNDLElBQUksR0FBR2hDLEtBQUssQ0FBQ04sR0FBRyxDQUFDO01BQ3ZCLE1BQU11QyxDQUFDLEdBQUdILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQzNDLEdBQUcsRUFBRUMsR0FBRyxDQUFDLEdBQUdELEdBQUcsQ0FBQ0MsR0FBRyxDQUFDLEdBQUdJLFNBQVM7TUFDL0UrQixNQUFNLENBQUNHLElBQUksQ0FBQ3RDLEdBQUcsQ0FBQyxHQUFHWSxTQUFTLENBQUMyQixDQUFDLEVBQUVELElBQUksQ0FBQ3hDLEdBQUcsRUFBRWUsUUFBUSxFQUFFeUIsSUFBSSxDQUFDdEMsR0FBRyxDQUFDO0lBQ2pFLENBQUMsQ0FBQztJQUNGb0MsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQ3RDLEdBQUcsQ0FBQyxDQUFDUSxPQUFPLENBQUNQLEdBQUcsSUFBSTtNQUMzQyxJQUFJLENBQUNvQyxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNwQyxLQUFLLEVBQUVOLEdBQUcsQ0FBQyxFQUFFO1FBQ25EbUMsTUFBTSxDQUFDbkMsR0FBRyxDQUFDLEdBQUdZLFNBQVMsQ0FBQ2IsR0FBRyxDQUFDQyxHQUFHLENBQUMsRUFBRWtDLFVBQVUsRUFBRXJCLFFBQVEsRUFBRWIsR0FBRyxDQUFDO01BQ2hFO0lBQ0osQ0FBQyxDQUFDO0lBQ0YsT0FBT21DLE1BQU07RUFDakI7RUFFQSxJQUFJckMsR0FBRyxLQUFLLEtBQUssRUFBRSxPQUFPQyxHQUFHO0VBQzdCLElBQUlELEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDZCxJQUFJQyxHQUFHLEtBQUssSUFBSSxFQUFFLE9BQU9BLEdBQUc7SUFDNUIsT0FBT0YsWUFBWSxDQUFDQyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztFQUNqQztFQUNBLElBQUlELEdBQUcsS0FBSyxLQUFLLEVBQUUsT0FBT0QsWUFBWSxDQUFDQyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztFQUNoRCxPQUFPLE9BQU9ELEdBQUcsS0FBSyxRQUFRLElBQUlBLEdBQUcsQ0FBQzZDLEdBQUcsS0FBS3ZDLFNBQVMsRUFBRTtJQUNyRE4sR0FBRyxHQUFHOEMsT0FBTyxDQUFDOUMsR0FBRyxDQUFDNkMsR0FBRyxDQUFDO0VBQzFCO0VBQ0EsSUFBSWxCLEtBQUssQ0FBQ0MsT0FBTyxDQUFDNUIsR0FBRyxDQUFDLEVBQUUsT0FBT3VCLGFBQWEsQ0FBQ3ZCLEdBQUcsRUFBRUMsR0FBRyxDQUFDO0VBQ3RELElBQUksT0FBT0QsR0FBRyxLQUFLLFFBQVEsRUFBRTtJQUN6QixPQUFPQSxHQUFHLENBQUMyQyxjQUFjLENBQUMsY0FBYyxDQUFDLEdBQUcxQixjQUFjLENBQUNqQixHQUFHLENBQUMrQyxZQUFZLEVBQUU5QyxHQUFHLENBQUMsR0FDM0VELEdBQUcsQ0FBQzJDLGNBQWMsQ0FBQyxZQUFZLENBQUMsR0FBTWpCLGNBQWMsQ0FBQzFCLEdBQUcsQ0FBQ2dELFVBQVUsRUFBRS9DLEdBQUcsQ0FBQyxHQUN6RUQsR0FBRyxDQUFDMkMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFXUixlQUFlLENBQUNwQixRQUFRLENBQUNmLEdBQUcsQ0FBQyxFQUFFQSxHQUFHLENBQUNvQyxVQUFVLEVBQUVuQyxHQUFHLENBQUMsR0FDekZGLFlBQVksQ0FBQ0MsR0FBRyxFQUFFQyxHQUFHLENBQUM7RUFDaEM7RUFDQTtFQUNBLElBQUlELEdBQUcsS0FBS2dDLElBQUksSUFBSSxPQUFPL0IsR0FBRyxLQUFLLFFBQVEsRUFBRSxPQUFPNkIsYUFBYSxDQUFDN0IsR0FBRyxDQUFDO0VBQ3RFLE9BQU9lLGtCQUFrQixDQUFDaEIsR0FBRyxFQUFFQyxHQUFHLENBQUM7QUFDdkM7QUFFQSxTQUFTWixJQUFJQSxDQUFJWSxHQUFRLEVBQUVELEdBQVEsRUFBSztFQUNwQyxPQUFPYyxTQUFTLENBQUNiLEdBQUcsRUFBRUQsR0FBRyxFQUFFSSxhQUFhLENBQUM7QUFDN0M7QUFFQSxTQUFTUixNQUFNQSxDQUFJSyxHQUFNLEVBQUVELEdBQVEsRUFBTztFQUN0QyxPQUFPYyxTQUFTLENBQUNiLEdBQUcsRUFBRUQsR0FBRyxFQUFFWSxhQUFhLENBQUM7QUFDN0M7QUFFQSxTQUFTcUMsQ0FBQ0EsQ0FBQ2pELEdBQVEsRUFBRTtFQUNqQixPQUFPO0lBQUVnRCxVQUFVLEVBQUVoRDtFQUFJLENBQUM7QUFDOUI7QUFFQSxTQUFTa0QsQ0FBQ0EsQ0FBQyxHQUFHaEMsSUFBVyxFQUFFO0VBQ3ZCLE9BQU87SUFBRTZCLFlBQVksRUFBRTdCO0VBQUssQ0FBQztBQUNqQztBQUVBLFNBQVNpQyxDQUFDQSxDQUFDM0MsS0FBWSxFQUFFNEIsVUFBZSxFQUFFO0VBQ3RDLE9BQU87SUFBRTVCLEtBQUs7SUFBRTRCO0VBQVcsQ0FBQztBQUNoQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsU0FBUzVDLENBQUNBLENBQUM0RCxJQUFZLEVBQUU7RUFDckIsT0FBTztJQUFFUCxHQUFHLEVBQUVPO0VBQUssQ0FBQztBQUN4QjtBQUVBLE1BQU1OLE9BQVksR0FBRztFQUNqQixXQUFXLEVBQUVLLENBQUMsQ0FBQyxDQUNYO0lBQUUvRCxJQUFJLEVBQUUsV0FBVztJQUFFdUIsRUFBRSxFQUFFLFdBQVc7SUFBRVgsR0FBRyxFQUFFUixDQUFDLENBQUMsZ0JBQWdCO0VBQUUsQ0FBQyxDQUNuRSxFQUFFLEtBQUssQ0FBQztFQUNULGdCQUFnQixFQUFFMkQsQ0FBQyxDQUFDLENBQ2hCO0lBQUUvRCxJQUFJLEVBQUUsVUFBVTtJQUFFdUIsRUFBRSxFQUFFLFVBQVU7SUFBRVgsR0FBRyxFQUFFaUQsQ0FBQyxDQUFDekQsQ0FBQyxDQUFDLFVBQVUsQ0FBQztFQUFFLENBQUMsQ0FDOUQsRUFBRSxLQUFLLENBQUM7RUFDVCxpQkFBaUIsRUFBRTJELENBQUMsQ0FBQyxDQUNqQjtJQUFFL0QsSUFBSSxFQUFFLFVBQVU7SUFBRXVCLEVBQUUsRUFBRSxVQUFVO0lBQUVYLEdBQUcsRUFBRVIsQ0FBQyxDQUFDLFVBQVU7RUFBRSxDQUFDLENBQzNELEVBQUUsS0FBSyxDQUFDO0VBQ1QsVUFBVSxFQUFFMkQsQ0FBQyxDQUFDLENBQ1Y7SUFBRS9ELElBQUksRUFBRSxRQUFRO0lBQUV1QixFQUFFLEVBQUUsUUFBUTtJQUFFWCxHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ3pDO0lBQUVaLElBQUksRUFBRSxZQUFZO0lBQUV1QixFQUFFLEVBQUUsWUFBWTtJQUFFWCxHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ2pEO0lBQUVaLElBQUksRUFBRSxXQUFXO0lBQUV1QixFQUFFLEVBQUUsV0FBVztJQUFFWCxHQUFHLEVBQUVSLENBQUMsQ0FBQyxpQkFBaUI7RUFBRSxDQUFDLEVBQ2pFO0lBQUVKLElBQUksRUFBRSxLQUFLO0lBQUV1QixFQUFFLEVBQUUsS0FBSztJQUFFWCxHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ25DO0lBQUVaLElBQUksRUFBRSxhQUFhO0lBQUV1QixFQUFFLEVBQUUsYUFBYTtJQUFFWCxHQUFHLEVBQUVSLENBQUMsQ0FBQyxhQUFhO0VBQUUsQ0FBQyxFQUNqRTtJQUFFSixJQUFJLEVBQUUsTUFBTTtJQUFFdUIsRUFBRSxFQUFFLE1BQU07SUFBRVgsR0FBRyxFQUFFUixDQUFDLENBQUMsTUFBTTtFQUFFLENBQUMsRUFDNUM7SUFBRUosSUFBSSxFQUFFLGNBQWM7SUFBRXVCLEVBQUUsRUFBRSxjQUFjO0lBQUVYLEdBQUcsRUFBRVIsQ0FBQyxDQUFDLGNBQWM7RUFBRSxDQUFDLEVBQ3BFO0lBQUVKLElBQUksRUFBRSxRQUFRO0lBQUV1QixFQUFFLEVBQUUsUUFBUTtJQUFFWCxHQUFHLEVBQUVSLENBQUMsQ0FBQyxRQUFRO0VBQUUsQ0FBQyxFQUNsRDtJQUFFSixJQUFJLEVBQUUsUUFBUTtJQUFFdUIsRUFBRSxFQUFFLFFBQVE7SUFBRVgsR0FBRyxFQUFFUixDQUFDLENBQUMsUUFBUTtFQUFFLENBQUMsRUFDbEQ7SUFBRUosSUFBSSxFQUFFLFlBQVk7SUFBRXVCLEVBQUUsRUFBRSxZQUFZO0lBQUVYLEdBQUcsRUFBRVIsQ0FBQyxDQUFDLFlBQVk7RUFBRSxDQUFDLEVBQzlEO0lBQUVKLElBQUksRUFBRSxnQkFBZ0I7SUFBRXVCLEVBQUUsRUFBRSxnQkFBZ0I7SUFBRVgsR0FBRyxFQUFFa0QsQ0FBQyxDQUFDMUQsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFYyxTQUFTO0VBQUUsQ0FBQyxFQUM5RjtJQUFFbEIsSUFBSSxFQUFFLGVBQWU7SUFBRXVCLEVBQUUsRUFBRSxlQUFlO0lBQUVYLEdBQUcsRUFBRWtELENBQUMsQ0FBQzFELENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLEVBQUVjLFNBQVM7RUFBRSxDQUFDLEVBQzNGO0lBQUVsQixJQUFJLEVBQUUsU0FBUztJQUFFdUIsRUFBRSxFQUFFLFNBQVM7SUFBRVgsR0FBRyxFQUFFa0QsQ0FBQyxDQUFDMUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRWMsU0FBUztFQUFFLENBQUMsRUFDekU7SUFBRWxCLElBQUksRUFBRSxhQUFhO0lBQUV1QixFQUFFLEVBQUUsYUFBYTtJQUFFWCxHQUFHLEVBQUVrRCxDQUFDLENBQUMxRCxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFYyxTQUFTO0VBQUUsQ0FBQyxFQUNyRjtJQUFFbEIsSUFBSSxFQUFFLGlCQUFpQjtJQUFFdUIsRUFBRSxFQUFFLGlCQUFpQjtJQUFFWCxHQUFHLEVBQUVrRCxDQUFDLENBQUMxRCxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUVjLFNBQVM7RUFBRSxDQUFDLENBQ3BHLEVBQUUsS0FBSyxDQUFDO0VBQ1QsUUFBUSxFQUFFNkMsQ0FBQyxDQUFDLENBQ1I7SUFBRS9ELElBQUksRUFBRSxVQUFVO0lBQUV1QixFQUFFLEVBQUUsVUFBVTtJQUFFWCxHQUFHLEVBQUVSLENBQUMsQ0FBQyxVQUFVO0VBQUUsQ0FBQyxFQUN4RDtJQUFFSixJQUFJLEVBQUUsUUFBUTtJQUFFdUIsRUFBRSxFQUFFLFFBQVE7SUFBRVgsR0FBRyxFQUFFUixDQUFDLENBQUMsUUFBUTtFQUFFLENBQUMsQ0FDckQsRUFBRSxLQUFLLENBQUM7RUFDVCxRQUFRLEVBQUUyRCxDQUFDLENBQUMsQ0FDUjtJQUFFL0QsSUFBSSxFQUFFLFdBQVc7SUFBRXVCLEVBQUUsRUFBRSxXQUFXO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDL0M7SUFBRVosSUFBSSxFQUFFLFFBQVE7SUFBRXVCLEVBQUUsRUFBRSxRQUFRO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDekM7SUFBRVosSUFBSSxFQUFFLFdBQVc7SUFBRXVCLEVBQUUsRUFBRSxXQUFXO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsQ0FDbEQsRUFBRSxLQUFLLENBQUM7RUFDVCxVQUFVLEVBQUVtRCxDQUFDLENBQUMsQ0FDVjtJQUFFL0QsSUFBSSxFQUFFLFdBQVc7SUFBRXVCLEVBQUUsRUFBRSxXQUFXO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDL0M7SUFBRVosSUFBSSxFQUFFLFdBQVc7SUFBRXVCLEVBQUUsRUFBRSxXQUFXO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsQ0FDbEQsRUFBRSxLQUFLLENBQUM7RUFDVCxTQUFTLEVBQUVtRCxDQUFDLENBQUMsQ0FDVDtJQUFFL0QsSUFBSSxFQUFFLGFBQWE7SUFBRXVCLEVBQUUsRUFBRSxhQUFhO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDbkQ7SUFBRVosSUFBSSxFQUFFLGdCQUFnQjtJQUFFdUIsRUFBRSxFQUFFLGdCQUFnQjtJQUFFWCxHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ3pEO0lBQUVaLElBQUksRUFBRSxhQUFhO0lBQUV1QixFQUFFLEVBQUUsYUFBYTtJQUFFWCxHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ25EO0lBQUVaLElBQUksRUFBRSxRQUFRO0lBQUV1QixFQUFFLEVBQUUsUUFBUTtJQUFFWCxHQUFHLEVBQUVrRCxDQUFDLENBQUMxRCxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSTtFQUFFLENBQUMsQ0FDOUQsRUFBRSxLQUFLLENBQUM7RUFDVCxhQUFhLEVBQUUyRCxDQUFDLENBQUMsQ0FDYjtJQUFFL0QsSUFBSSxFQUFFLFFBQVE7SUFBRXVCLEVBQUUsRUFBRSxRQUFRO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDekM7SUFBRVosSUFBSSxFQUFFLFFBQVE7SUFBRXVCLEVBQUUsRUFBRSxRQUFRO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDekM7SUFBRVosSUFBSSxFQUFFLGFBQWE7SUFBRXVCLEVBQUUsRUFBRSxhQUFhO0lBQUVYLEdBQUcsRUFBRTtFQUFHLENBQUMsQ0FDdEQsRUFBRSxLQUFLLENBQUM7RUFDVCxjQUFjLEVBQUVtRCxDQUFDLENBQUMsQ0FDZDtJQUFFL0QsSUFBSSxFQUFFLFVBQVU7SUFBRXVCLEVBQUUsRUFBRSxVQUFVO0lBQUVYLEdBQUcsRUFBRWtELENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSTtFQUFFLENBQUMsRUFDdEQ7SUFBRTlELElBQUksRUFBRSxhQUFhO0lBQUV1QixFQUFFLEVBQUUsYUFBYTtJQUFFWCxHQUFHLEVBQUU7RUFBSyxDQUFDLEVBQ3JEO0lBQUVaLElBQUksRUFBRSxVQUFVO0lBQUV1QixFQUFFLEVBQUUsVUFBVTtJQUFFWCxHQUFHLEVBQUVSLENBQUMsQ0FBQyxTQUFTO0VBQUUsQ0FBQyxDQUMxRCxFQUFFLEtBQUssQ0FBQztFQUNULFNBQVMsRUFBRTJELENBQUMsQ0FBQyxDQUNUO0lBQUUvRCxJQUFJLEVBQUUsU0FBUztJQUFFdUIsRUFBRSxFQUFFLFNBQVM7SUFBRVgsR0FBRyxFQUFFa0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJO0VBQUUsQ0FBQyxDQUN2RCxFQUFFLEtBQUssQ0FBQztFQUNULFlBQVksRUFBRUMsQ0FBQyxDQUFDLENBQ1o7SUFBRS9ELElBQUksRUFBRSxXQUFXO0lBQUV1QixFQUFFLEVBQUUsV0FBVztJQUFFWCxHQUFHLEVBQUVrRCxDQUFDLENBQUNELENBQUMsQ0FBQ3pELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUVBLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztFQUFFLENBQUMsQ0FDbEcsRUFBRSxLQUFLLENBQUM7RUFDVCxrQkFBa0IsRUFBRTJELENBQUMsQ0FBQyxDQUNsQjtJQUFFL0QsSUFBSSxFQUFFLFFBQVE7SUFBRXVCLEVBQUUsRUFBRSxRQUFRO0lBQUVYLEdBQUcsRUFBRVIsQ0FBQyxDQUFDLFFBQVE7RUFBRSxDQUFDLEVBQ2xEO0lBQUVKLElBQUksRUFBRSxjQUFjO0lBQUV1QixFQUFFLEVBQUUsY0FBYztJQUFFWCxHQUFHLEVBQUVSLENBQUMsQ0FBQyxRQUFRO0VBQUUsQ0FBQyxDQUNqRSxFQUFFLEtBQUssQ0FBQztFQUNULFFBQVEsRUFBRTJELENBQUMsQ0FBQyxDQUNSO0lBQUUvRCxJQUFJLEVBQUUsUUFBUTtJQUFFdUIsRUFBRSxFQUFFLFFBQVE7SUFBRVgsR0FBRyxFQUFFa0QsQ0FBQyxDQUFDMUQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUk7RUFBRSxDQUFDLEVBQzNEO0lBQUVKLElBQUksRUFBRSxRQUFRO0lBQUV1QixFQUFFLEVBQUUsUUFBUTtJQUFFWCxHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ3pDO0lBQUVaLElBQUksRUFBRSxRQUFRO0lBQUV1QixFQUFFLEVBQUUsUUFBUTtJQUFFWCxHQUFHLEVBQUVrRCxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUk7RUFBRSxDQUFDLEVBQ2xEO0lBQUU5RCxJQUFJLEVBQUUsT0FBTztJQUFFdUIsRUFBRSxFQUFFLE9BQU87SUFBRVgsR0FBRyxFQUFFa0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJO0VBQUUsQ0FBQyxFQUNoRDtJQUFFOUQsSUFBSSxFQUFFLGVBQWU7SUFBRXVCLEVBQUUsRUFBRSxlQUFlO0lBQUVYLEdBQUcsRUFBRWtELENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSTtFQUFFLENBQUMsRUFDaEU7SUFBRTlELElBQUksRUFBRSxjQUFjO0lBQUV1QixFQUFFLEVBQUUsY0FBYztJQUFFWCxHQUFHLEVBQUVrRCxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUk7RUFBRSxDQUFDLENBQ2pFLEVBQUUsS0FBSyxDQUFDO0VBQ1QsZ0JBQWdCLEVBQUVDLENBQUMsQ0FBQyxDQUNoQjtJQUFFL0QsSUFBSSxFQUFFLGVBQWU7SUFBRXVCLEVBQUUsRUFBRSxlQUFlO0lBQUVYLEdBQUcsRUFBRWtELENBQUMsQ0FBQ0QsQ0FBQyxDQUFDekQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUVBLENBQUMsQ0FBQyxPQUFPLENBQUM7RUFBRSxDQUFDLENBQ3BGLEVBQUUsS0FBSyxDQUFDO0VBQ1QsT0FBTyxFQUFFMkQsQ0FBQyxDQUFDLENBQ1A7SUFBRS9ELElBQUksRUFBRSxRQUFRO0lBQUV1QixFQUFFLEVBQUUsUUFBUTtJQUFFWCxHQUFHLEVBQUVSLENBQUMsQ0FBQyxRQUFRO0VBQUUsQ0FBQyxFQUNsRDtJQUFFSixJQUFJLEVBQUUsT0FBTztJQUFFdUIsRUFBRSxFQUFFLE9BQU87SUFBRVgsR0FBRyxFQUFFa0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJO0VBQUUsQ0FBQyxFQUNoRDtJQUFFOUQsSUFBSSxFQUFFLFNBQVM7SUFBRXVCLEVBQUUsRUFBRSxTQUFTO0lBQUVYLEdBQUcsRUFBRWtELENBQUMsQ0FBQzVDLFNBQVMsRUFBRSxFQUFFO0VBQUMsQ0FBQyxDQUMzRCxFQUFFLEtBQUssQ0FBQztFQUNULGVBQWUsRUFBRTZDLENBQUMsQ0FBQyxDQUNmO0lBQUUvRCxJQUFJLEVBQUUsY0FBYztJQUFFdUIsRUFBRSxFQUFFLGNBQWM7SUFBRVgsR0FBRyxFQUFFa0QsQ0FBQyxDQUFDRCxDQUFDLENBQUN6RCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQztFQUFFLENBQUMsQ0FDbEYsRUFBRSxLQUFLLENBQUM7RUFDVCxhQUFhLEVBQUUyRCxDQUFDLENBQUMsQ0FDYjtJQUFFL0QsSUFBSSxFQUFFLFFBQVE7SUFBRXVCLEVBQUUsRUFBRSxRQUFRO0lBQUVYLEdBQUcsRUFBRVIsQ0FBQyxDQUFDLFFBQVE7RUFBRSxDQUFDLEVBQ2xEO0lBQUVKLElBQUksRUFBRSxpQkFBaUI7SUFBRXVCLEVBQUUsRUFBRSxpQkFBaUI7SUFBRVgsR0FBRyxFQUFFO0VBQUcsQ0FBQyxDQUM5RCxFQUFFLEtBQUssQ0FBQztFQUNULGlCQUFpQixFQUFFbUQsQ0FBQyxDQUFDLENBQ2pCO0lBQUUvRCxJQUFJLEVBQUUsZ0JBQWdCO0lBQUV1QixFQUFFLEVBQUUsZ0JBQWdCO0lBQUVYLEdBQUcsRUFBRWtELENBQUMsQ0FBQ0QsQ0FBQyxDQUFDekQsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRUEsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO0VBQUUsQ0FBQyxDQUN4RyxFQUFFLEtBQUssQ0FBQztFQUNULGdCQUFnQixFQUFFMkQsQ0FBQyxDQUFDLENBQ2hCO0lBQUUvRCxJQUFJLEVBQUUsUUFBUTtJQUFFdUIsRUFBRSxFQUFFLFFBQVE7SUFBRVgsR0FBRyxFQUFFUixDQUFDLENBQUMsUUFBUTtFQUFFLENBQUMsQ0FDckQsRUFBRSxLQUFLLENBQUM7RUFDVCxpQkFBaUIsRUFBRSxDQUNmLHFCQUFxQixFQUNyQiwyQkFBMkIsRUFDM0Isb0JBQW9CLENBQ3ZCO0VBQ0QsUUFBUSxFQUFFLENBQ04sYUFBYSxFQUNiLGVBQWUsRUFDZixVQUFVLENBQ2I7RUFDRCxNQUFNLEVBQUUsQ0FDSixJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU07QUFFZCxDQUFDIiwiaWdub3JlTGlzdCI6W119