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