@tricoteuses/assemblee 1.0.0-next.2 → 1.0.2
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.
- package/README.md +2 -0
- package/lib/api.js +23 -7
- package/lib/api.mjs +41 -0
- package/lib/bugs/acteur-00010/plugin.test.js +139 -33
- package/lib/bugs/acteur-00010/plugin.test.mjs +33 -0
- package/lib/bugs/acteur-00010.js +166 -24
- package/lib/bugs/acteur-00010.mjs +31 -0
- package/lib/bugs/agenda-00002/plugin.test.js +178 -52
- package/lib/bugs/agenda-00002/plugin.test.mjs +52 -0
- package/lib/bugs/agenda-00002.js +507 -143
- package/lib/bugs/agenda-00002.mjs +197 -0
- package/lib/bugs/agenda-00008/plugin.test.js +143 -31
- package/lib/bugs/agenda-00008/plugin.test.mjs +31 -0
- package/lib/bugs/agenda-00008.js +180 -25
- package/lib/bugs/agenda-00008.mjs +30 -0
- package/lib/bugs/agenda-00011/plugin.test.js +371 -156
- package/lib/bugs/agenda-00011/plugin.test.mjs +156 -0
- package/lib/bugs/agenda-00011.js +416 -117
- package/lib/bugs/agenda-00011.mjs +150 -0
- package/lib/bugs.js +591 -54
- package/lib/bugs.mjs +93 -0
- package/lib/cleaners/actes_legislatifs.js +149 -61
- package/lib/cleaners/actes_legislatifs.mjs +311 -0
- package/lib/cleaners/acteurs.js +255 -123
- package/lib/cleaners/acteurs.mjs +211 -0
- package/lib/cleaners/amendements.js +242 -117
- package/lib/cleaners/amendements.mjs +292 -0
- package/lib/cleaners/documents.js +147 -62
- package/lib/cleaners/documents.mjs +162 -0
- package/lib/cleaners/dossiers_legislatifs.js +132 -45
- package/lib/cleaners/dossiers_legislatifs.mjs +123 -0
- package/lib/cleaners/index.js +64 -8
- package/lib/cleaners/index.mjs +8 -0
- package/lib/cleaners/organes.js +54 -21
- package/lib/cleaners/organes.mjs +64 -0
- package/lib/cleaners/reunions.js +237 -127
- package/lib/cleaners/reunions.mjs +318 -0
- package/lib/cleaners/scrutins.js +261 -99
- package/lib/cleaners/scrutins.mjs +254 -0
- package/lib/cleaners/xml.js +81 -16
- package/lib/cleaners/xml.mjs +42 -0
- package/lib/datasets.js +284 -153
- package/lib/datasets.mjs +596 -0
- package/lib/dates.js +93 -34
- package/lib/dates.mjs +98 -0
- package/lib/dossiers_legislatifs.js +107 -33
- package/lib/dossiers_legislatifs.mjs +215 -0
- package/lib/file_systems.js +203 -35
- package/lib/file_systems.mjs +64 -0
- package/lib/git.js +139 -41
- package/lib/git.mjs +114 -0
- package/lib/index.js +310 -16
- package/lib/index.mjs +16 -0
- package/lib/inserters.js +355 -131
- package/lib/inserters.mjs +413 -0
- package/lib/loaders.js +900 -440
- package/lib/loaders.mjs +678 -0
- package/lib/organes.js +15 -5
- package/lib/organes.mjs +18 -0
- package/lib/parsers/documents.js +241 -89
- package/lib/parsers/documents.mjs +433 -0
- package/lib/parsers/index.js +36 -3
- package/lib/parsers/index.mjs +3 -0
- package/lib/parsers/recherche_amendements.js +616 -173
- package/lib/parsers/recherche_amendements.mjs +189 -0
- package/lib/raw_types/acteurs_et_organes.d.ts +36 -148
- package/lib/raw_types/acteurs_et_organes.js +228 -506
- package/lib/raw_types/acteurs_et_organes.mjs +1240 -0
- package/lib/raw_types/agendas.js +165 -75
- package/lib/raw_types/agendas.mjs +944 -0
- package/lib/raw_types/amendements.js +165 -77
- package/lib/raw_types/amendements.mjs +1040 -0
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -43
- package/lib/raw_types/dossiers_legislatifs.js +181 -143
- package/lib/raw_types/dossiers_legislatifs.mjs +1792 -0
- package/lib/raw_types/scrutins.js +144 -61
- package/lib/raw_types/scrutins.mjs +645 -0
- package/lib/scripts/bugs_helper.js +657 -155
- package/lib/scripts/bugs_helper.mjs +286 -0
- package/lib/scripts/clean_data.js +380 -145
- package/lib/scripts/clean_data.mjs +190 -0
- package/lib/scripts/clean_reorganized_data.js +627 -331
- package/lib/scripts/clean_reorganized_data.mjs +520 -0
- package/lib/scripts/diff_amendements.js +159 -73
- package/lib/scripts/diff_amendements.mjs +234 -0
- package/lib/scripts/document_dossiers_legislatifs.js +570 -288
- package/lib/scripts/document_dossiers_legislatifs.mjs +494 -0
- package/lib/scripts/get_today_reunions.js +37 -20
- package/lib/scripts/get_today_reunions.mjs +41 -0
- package/lib/scripts/merge_scrutins.js +121 -39
- package/lib/scripts/merge_scrutins.mjs +69 -0
- package/lib/scripts/parse_textes_lois.js +179 -125
- package/lib/scripts/parse_textes_lois.mjs +215 -0
- package/lib/scripts/raw_types_from_amendements.js +276 -77
- package/lib/scripts/raw_types_from_amendements.mjs +118 -0
- package/lib/scripts/reorganize_data.js +867 -446
- package/lib/scripts/reorganize_data.mjs +712 -0
- package/lib/scripts/retrieve_deputes_photos.js +378 -157
- package/lib/scripts/retrieve_deputes_photos.mjs +230 -0
- package/lib/scripts/retrieve_documents.js +648 -172
- package/lib/scripts/retrieve_documents.mjs +292 -0
- package/lib/scripts/retrieve_open_data.js +286 -85
- package/lib/scripts/retrieve_open_data.mjs +125 -0
- package/lib/scripts/retrieve_pending_amendments.js +302 -69
- package/lib/scripts/retrieve_pending_amendments.mjs +130 -0
- package/lib/scripts/retrieve_senateurs_photos.js +374 -198
- package/lib/scripts/retrieve_senateurs_photos.mjs +277 -0
- package/lib/scripts/retrieve_textes_lois.js +343 -89
- package/lib/scripts/retrieve_textes_lois.mjs +168 -0
- package/lib/scripts/test_load.js +30 -11
- package/lib/scripts/test_load.mjs +26 -0
- package/lib/scripts/test_load_big_files.js +30 -11
- package/lib/scripts/test_load_big_files.mjs +26 -0
- package/lib/scripts/validate_json.js +370 -120
- package/lib/scripts/validate_json.mjs +216 -0
- package/lib/shared_types/codes_actes.js +50 -15
- package/lib/shared_types/codes_actes.mjs +228 -0
- package/lib/strings.js +16 -3
- package/lib/strings.mjs +7 -0
- package/lib/types/acteurs_et_organes.js +156 -71
- package/lib/types/acteurs_et_organes.mjs +918 -0
- package/lib/types/agendas.js +154 -67
- package/lib/types/agendas.mjs +623 -0
- package/lib/types/amendements.js +166 -77
- package/lib/types/amendements.mjs +885 -0
- package/lib/types/dossiers_legislatifs.d.ts +1 -42
- package/lib/types/dossiers_legislatifs.js +182 -143
- package/lib/types/dossiers_legislatifs.mjs +1120 -0
- package/lib/types/legislatures.js +12 -3
- package/lib/types/legislatures.mjs +9 -0
- package/lib/types/scrutins.js +144 -61
- package/lib/types/scrutins.mjs +528 -0
- package/lib/urls.js +44 -25
- package/lib/urls.mjs +201 -0
- package/package.json +33 -12
|
@@ -1,162 +1,247 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.slice.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.object.to-string.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.function.name.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.array.from.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.string.iterator.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.symbol.js");
|
|
16
|
+
|
|
17
|
+
require("core-js/modules/es.symbol.description.js");
|
|
18
|
+
|
|
19
|
+
require("core-js/modules/es.symbol.iterator.js");
|
|
20
|
+
|
|
21
|
+
require("core-js/modules/es.array.iterator.js");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
24
|
+
|
|
25
|
+
require("core-js/modules/es.object.define-property.js");
|
|
26
|
+
|
|
27
|
+
Object.defineProperty(exports, "__esModule", {
|
|
28
|
+
value: true
|
|
29
|
+
});
|
|
30
|
+
exports.cleanDocumentOrDivision = cleanDocumentOrDivision;
|
|
31
|
+
|
|
32
|
+
require("core-js/modules/es.array.is-array.js");
|
|
33
|
+
|
|
34
|
+
var _assert = _interopRequireDefault(require("assert"));
|
|
35
|
+
|
|
36
|
+
var _xml = require("./xml");
|
|
37
|
+
|
|
38
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
39
|
+
|
|
40
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
41
|
+
|
|
42
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
43
|
+
|
|
44
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
45
|
+
|
|
46
|
+
function cleanDocumentOrDivision(d) {
|
|
47
|
+
(0, _xml.cleanXmlArtefacts)(d);
|
|
48
|
+
var xsiType = d["@xsi:type"];
|
|
6
49
|
|
|
7
50
|
if (xsiType !== undefined) {
|
|
8
51
|
d.xsiType = xsiType;
|
|
9
52
|
delete d["@xsi:type"];
|
|
10
53
|
}
|
|
11
54
|
|
|
12
|
-
|
|
13
|
-
|
|
55
|
+
var cycleDeVie = d.cycleDeVie;
|
|
56
|
+
(0, _assert["default"])(cycleDeVie);
|
|
14
57
|
{
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
cleanXmlArtefacts(chrono);
|
|
58
|
+
var chrono = cycleDeVie.chrono;
|
|
59
|
+
(0, _assert["default"])(chrono);
|
|
60
|
+
(0, _xml.cleanXmlArtefacts)(chrono);
|
|
18
61
|
}
|
|
19
|
-
|
|
62
|
+
var divisions = d.divisions;
|
|
20
63
|
|
|
21
64
|
if (divisions !== undefined) {
|
|
22
65
|
divisions = divisions.division;
|
|
23
66
|
|
|
24
67
|
if (!Array.isArray(divisions)) {
|
|
25
|
-
|
|
68
|
+
(0, _assert["default"])(divisions);
|
|
26
69
|
divisions = [divisions];
|
|
27
70
|
}
|
|
28
71
|
|
|
29
72
|
d.divisions = divisions;
|
|
30
73
|
|
|
31
|
-
|
|
32
|
-
|
|
74
|
+
var _iterator = _createForOfIteratorHelper(divisions),
|
|
75
|
+
_step;
|
|
76
|
+
|
|
77
|
+
try {
|
|
78
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
79
|
+
var division = _step.value;
|
|
80
|
+
cleanDocumentOrDivision(division);
|
|
81
|
+
}
|
|
82
|
+
} catch (err) {
|
|
83
|
+
_iterator.e(err);
|
|
84
|
+
} finally {
|
|
85
|
+
_iterator.f();
|
|
33
86
|
}
|
|
34
87
|
}
|
|
35
88
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
89
|
+
_assert["default"].strictEqual(d.redacteur, undefined);
|
|
90
|
+
|
|
91
|
+
var classification = d.classification;
|
|
92
|
+
(0, _assert["default"])(classification);
|
|
93
|
+
(0, _xml.cleanXmlArtefacts)(classification);
|
|
94
|
+
var auteurs = d.auteurs;
|
|
41
95
|
|
|
42
96
|
if (auteurs !== undefined) {
|
|
43
97
|
auteurs = auteurs.auteur;
|
|
44
98
|
|
|
45
99
|
if (!Array.isArray(auteurs)) {
|
|
46
|
-
|
|
100
|
+
(0, _assert["default"])(auteurs);
|
|
47
101
|
auteurs = [auteurs];
|
|
48
102
|
}
|
|
49
103
|
|
|
50
104
|
d.auteurs = auteurs;
|
|
51
105
|
|
|
52
|
-
|
|
53
|
-
|
|
106
|
+
var _iterator2 = _createForOfIteratorHelper(auteurs),
|
|
107
|
+
_step2;
|
|
54
108
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
109
|
+
try {
|
|
110
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
111
|
+
var auteur = _step2.value;
|
|
112
|
+
var organeRef = auteur.organe;
|
|
113
|
+
|
|
114
|
+
if (organeRef !== undefined) {
|
|
115
|
+
auteur.organeRef = organeRef.organeRef;
|
|
116
|
+
delete auteur.organe;
|
|
117
|
+
}
|
|
58
118
|
}
|
|
119
|
+
} catch (err) {
|
|
120
|
+
_iterator2.e(err);
|
|
121
|
+
} finally {
|
|
122
|
+
_iterator2.f();
|
|
59
123
|
}
|
|
60
124
|
}
|
|
61
125
|
|
|
62
|
-
|
|
126
|
+
var notice = d.notice;
|
|
63
127
|
{
|
|
64
|
-
cleanBooleanAttribute(notice, "adoptionConforme");
|
|
128
|
+
(0, _xml.cleanBooleanAttribute)(notice, "adoptionConforme");
|
|
65
129
|
}
|
|
66
|
-
|
|
130
|
+
var coSignataires = d.coSignataires;
|
|
67
131
|
|
|
68
132
|
if (coSignataires !== undefined) {
|
|
69
133
|
coSignataires = coSignataires.coSignataire;
|
|
70
134
|
|
|
71
135
|
if (!Array.isArray(coSignataires)) {
|
|
72
|
-
|
|
136
|
+
(0, _assert["default"])(coSignataires);
|
|
73
137
|
coSignataires = [coSignataires];
|
|
74
138
|
}
|
|
75
139
|
|
|
76
140
|
d.coSignataires = coSignataires;
|
|
77
141
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
cleanBooleanAttribute(coSignataire, "edite");
|
|
81
|
-
let acteurRef = coSignataire.acteur;
|
|
142
|
+
var _iterator3 = _createForOfIteratorHelper(coSignataires),
|
|
143
|
+
_step3;
|
|
82
144
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
coSignataire
|
|
88
|
-
|
|
145
|
+
try {
|
|
146
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
147
|
+
var coSignataire = _step3.value;
|
|
148
|
+
(0, _xml.cleanXmlArtefacts)(coSignataire);
|
|
149
|
+
(0, _xml.cleanBooleanAttribute)(coSignataire, "edite");
|
|
150
|
+
var acteurRef = coSignataire.acteur;
|
|
151
|
+
|
|
152
|
+
if (acteurRef !== undefined) {
|
|
153
|
+
acteurRef = acteurRef.acteurRef;
|
|
154
|
+
(0, _assert["default"])(acteurRef);
|
|
155
|
+
delete coSignataire.acteur;
|
|
156
|
+
coSignataire.acteurRef = acteurRef;
|
|
157
|
+
}
|
|
89
158
|
|
|
90
|
-
|
|
159
|
+
var organe = coSignataire.organe;
|
|
91
160
|
|
|
92
|
-
|
|
93
|
-
|
|
161
|
+
if (organe !== undefined) {
|
|
162
|
+
(0, _xml.cleanBooleanAttribute)(organe, "etApparentes");
|
|
163
|
+
}
|
|
94
164
|
}
|
|
165
|
+
} catch (err) {
|
|
166
|
+
_iterator3.e(err);
|
|
167
|
+
} finally {
|
|
168
|
+
_iterator3.f();
|
|
95
169
|
}
|
|
96
170
|
}
|
|
97
171
|
|
|
98
|
-
|
|
172
|
+
var depotAmendements = d.depotAmendements;
|
|
99
173
|
|
|
100
174
|
if (depotAmendements !== undefined) {
|
|
101
|
-
cleanXmlArtefacts(depotAmendements);
|
|
102
|
-
|
|
175
|
+
(0, _xml.cleanXmlArtefacts)(depotAmendements);
|
|
176
|
+
var amendementsSeance = depotAmendements.amendementsSeance;
|
|
103
177
|
{
|
|
104
|
-
cleanXmlArtefacts(amendementsSeance);
|
|
105
|
-
cleanBooleanAttribute(amendementsSeance, "amendable");
|
|
178
|
+
(0, _xml.cleanXmlArtefacts)(amendementsSeance);
|
|
179
|
+
(0, _xml.cleanBooleanAttribute)(amendementsSeance, "amendable");
|
|
106
180
|
}
|
|
107
|
-
|
|
181
|
+
var amendementsCommission = depotAmendements.amendementsCommission;
|
|
108
182
|
|
|
109
183
|
if (amendementsCommission !== undefined) {
|
|
110
184
|
amendementsCommission = amendementsCommission.commission;
|
|
111
185
|
|
|
112
186
|
if (!Array.isArray(amendementsCommission)) {
|
|
113
|
-
|
|
187
|
+
(0, _assert["default"])(amendementsCommission);
|
|
114
188
|
amendementsCommission = [amendementsCommission];
|
|
115
189
|
}
|
|
116
190
|
|
|
117
191
|
depotAmendements.amendementsCommission = amendementsCommission;
|
|
118
192
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
193
|
+
var _iterator4 = _createForOfIteratorHelper(amendementsCommission),
|
|
194
|
+
_step4;
|
|
195
|
+
|
|
196
|
+
try {
|
|
197
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
198
|
+
var commision = _step4.value;
|
|
199
|
+
(0, _xml.cleanXmlArtefacts)(commision);
|
|
200
|
+
(0, _xml.cleanBooleanAttribute)(commision, "amendable");
|
|
201
|
+
|
|
202
|
+
_assert["default"].strictEqual(commision.dateLimiteDepot, undefined);
|
|
203
|
+
}
|
|
204
|
+
} catch (err) {
|
|
205
|
+
_iterator4.e(err);
|
|
206
|
+
} finally {
|
|
207
|
+
_iterator4.f();
|
|
123
208
|
}
|
|
124
209
|
}
|
|
125
210
|
}
|
|
126
211
|
|
|
127
|
-
|
|
212
|
+
var imprimerie = d.imprimerie;
|
|
128
213
|
|
|
129
214
|
if (imprimerie !== undefined) {
|
|
130
|
-
cleanXmlArtefacts(imprimerie);
|
|
131
|
-
|
|
215
|
+
(0, _xml.cleanXmlArtefacts)(imprimerie);
|
|
216
|
+
var dian = imprimerie.DIAN;
|
|
132
217
|
|
|
133
218
|
if (dian !== undefined) {
|
|
134
219
|
delete imprimerie.DIAN;
|
|
135
220
|
imprimerie.dian = dian;
|
|
136
221
|
}
|
|
137
222
|
|
|
138
|
-
|
|
223
|
+
var isbn = imprimerie.ISBN;
|
|
139
224
|
|
|
140
225
|
if (isbn !== undefined) {
|
|
141
226
|
delete imprimerie.ISBN;
|
|
142
227
|
imprimerie.isbn = isbn;
|
|
143
228
|
}
|
|
144
229
|
|
|
145
|
-
|
|
230
|
+
_assert["default"].strictEqual(imprimerie.ISSN, undefined);
|
|
146
231
|
}
|
|
147
232
|
|
|
148
|
-
cleanBooleanAttribute(d, "rapportPublie");
|
|
149
|
-
|
|
233
|
+
(0, _xml.cleanBooleanAttribute)(d, "rapportPublie");
|
|
234
|
+
var organesReferents = d.organesReferents;
|
|
150
235
|
|
|
151
236
|
if (organesReferents !== undefined) {
|
|
152
237
|
organesReferents = organesReferents.organeRef;
|
|
153
238
|
|
|
154
239
|
if (!Array.isArray(organesReferents)) {
|
|
155
|
-
|
|
240
|
+
(0, _assert["default"])(organesReferents);
|
|
156
241
|
organesReferents = [organesReferents];
|
|
157
242
|
}
|
|
158
243
|
|
|
159
244
|
d.organesReferents = organesReferents;
|
|
160
245
|
}
|
|
161
246
|
}
|
|
162
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuRG9jdW1lbnRPckRpdmlzaW9uIiwiZCIsInhzaVR5cGUiLCJ1bmRlZmluZWQiLCJjeWNsZURlVmllIiwiY2hyb25vIiwiZGl2aXNpb25zIiwiZGl2aXNpb24iLCJBcnJheSIsImlzQXJyYXkiLCJzdHJpY3RFcXVhbCIsInJlZGFjdGV1ciIsImNsYXNzaWZpY2F0aW9uIiwiYXV0ZXVycyIsImF1dGV1ciIsIm9yZ2FuZVJlZiIsIm9yZ2FuZSIsIm5vdGljZSIsImNvU2lnbmF0YWlyZXMiLCJjb1NpZ25hdGFpcmUiLCJhY3RldXJSZWYiLCJhY3RldXIiLCJkZXBvdEFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHNTZWFuY2UiLCJhbWVuZGVtZW50c0NvbW1pc3Npb24iLCJjb21taXNzaW9uIiwiY29tbWlzaW9uIiwiZGF0ZUxpbWl0ZURlcG90IiwiaW1wcmltZXJpZSIsImRpYW4iLCJESUFOIiwiaXNibiIsIklTQk4iLCJJU1NOIiwib3JnYW5lc1JlZmVyZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVhbmVycy9kb2N1bWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcblxuaW1wb3J0IHsgY2xlYW5Cb29sZWFuQXR0cmlidXRlLCBjbGVhblhtbEFydGVmYWN0cyB9IGZyb20gXCIuL3htbFwiXG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRvY3VtZW50T3JEaXZpc2lvbihkOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZClcblxuICBjb25zdCB4c2lUeXBlID0gZFtcIkB4c2k6dHlwZVwiXVxuICBpZiAoeHNpVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZC54c2lUeXBlID0geHNpVHlwZVxuICAgIGRlbGV0ZSBkW1wiQHhzaTp0eXBlXCJdXG4gIH1cblxuICBjb25zdCBjeWNsZURlVmllID0gZC5jeWNsZURlVmllXG4gIGFzc2VydChjeWNsZURlVmllKVxuICB7XG4gICAgY29uc3QgY2hyb25vID0gY3ljbGVEZVZpZS5jaHJvbm9cbiAgICBhc3NlcnQoY2hyb25vKVxuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGNocm9ubylcbiAgfVxuXG4gIGxldCBkaXZpc2lvbnMgPSBkLmRpdmlzaW9uc1xuICBpZiAoZGl2aXNpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICBkaXZpc2lvbnMgPSBkaXZpc2lvbnMuZGl2aXNpb25cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGl2aXNpb25zKSkge1xuICAgICAgYXNzZXJ0KGRpdmlzaW9ucylcbiAgICAgIGRpdmlzaW9ucyA9IFtkaXZpc2lvbnNdXG4gICAgfVxuICAgIGQuZGl2aXNpb25zID0gZGl2aXNpb25zXG4gICAgZm9yIChjb25zdCBkaXZpc2lvbiBvZiBkaXZpc2lvbnMpIHtcbiAgICAgIGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uKGRpdmlzaW9uKVxuICAgIH1cbiAgfVxuXG4gIGFzc2VydC5zdHJpY3RFcXVhbChkLnJlZGFjdGV1ciwgdW5kZWZpbmVkKVxuXG4gIGNvbnN0IGNsYXNzaWZpY2F0aW9uID0gZC5jbGFzc2lmaWNhdGlvblxuICBhc3NlcnQoY2xhc3NpZmljYXRpb24pXG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKGNsYXNzaWZpY2F0aW9uKVxuXG4gIGxldCBhdXRldXJzID0gZC5hdXRldXJzXG4gIGlmIChhdXRldXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICBhdXRldXJzID0gYXV0ZXVycy5hdXRldXJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXV0ZXVycykpIHtcbiAgICAgIGFzc2VydChhdXRldXJzKVxuICAgICAgYXV0ZXVycyA9IFthdXRldXJzXVxuICAgIH1cbiAgICBkLmF1dGV1cnMgPSBhdXRldXJzXG4gICAgZm9yIChjb25zdCBhdXRldXIgb2YgYXV0ZXVycykge1xuICAgICAgbGV0IG9yZ2FuZVJlZiA9IGF1dGV1ci5vcmdhbmVcbiAgICAgIGlmIChvcmdhbmVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhdXRldXIub3JnYW5lUmVmID0gb3JnYW5lUmVmLm9yZ2FuZVJlZlxuICAgICAgICBkZWxldGUgYXV0ZXVyLm9yZ2FuZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5vdGljZSA9IGQubm90aWNlXG4gIHtcbiAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUobm90aWNlLCBcImFkb3B0aW9uQ29uZm9ybWVcIilcbiAgfVxuXG4gIGxldCBjb1NpZ25hdGFpcmVzID0gZC5jb1NpZ25hdGFpcmVzXG4gIGlmIChjb1NpZ25hdGFpcmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb1NpZ25hdGFpcmVzID0gY29TaWduYXRhaXJlcy5jb1NpZ25hdGFpcmVcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29TaWduYXRhaXJlcykpIHtcbiAgICAgIGFzc2VydChjb1NpZ25hdGFpcmVzKVxuICAgICAgY29TaWduYXRhaXJlcyA9IFtjb1NpZ25hdGFpcmVzXVxuICAgIH1cbiAgICBkLmNvU2lnbmF0YWlyZXMgPSBjb1NpZ25hdGFpcmVzXG4gICAgZm9yIChjb25zdCBjb1NpZ25hdGFpcmUgb2YgY29TaWduYXRhaXJlcykge1xuICAgICAgY2xlYW5YbWxBcnRlZmFjdHMoY29TaWduYXRhaXJlKVxuXG4gICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoY29TaWduYXRhaXJlLCBcImVkaXRlXCIpXG5cbiAgICAgIGxldCBhY3RldXJSZWYgPSBjb1NpZ25hdGFpcmUuYWN0ZXVyXG4gICAgICBpZiAoYWN0ZXVyUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0ZXVyUmVmID0gYWN0ZXVyUmVmLmFjdGV1clJlZlxuICAgICAgICBhc3NlcnQoYWN0ZXVyUmVmKVxuICAgICAgICBkZWxldGUgY29TaWduYXRhaXJlLmFjdGV1clxuICAgICAgICBjb1NpZ25hdGFpcmUuYWN0ZXVyUmVmID0gYWN0ZXVyUmVmXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9yZ2FuZSA9IGNvU2lnbmF0YWlyZS5vcmdhbmVcbiAgICAgIGlmIChvcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUob3JnYW5lLCBcImV0QXBwYXJlbnRlc1wiKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRlcG90QW1lbmRlbWVudHMgPSBkLmRlcG90QW1lbmRlbWVudHNcbiAgaWYgKGRlcG90QW1lbmRlbWVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlcG90QW1lbmRlbWVudHMpXG5cbiAgICBjb25zdCBhbWVuZGVtZW50c1NlYW5jZSA9IGRlcG90QW1lbmRlbWVudHMuYW1lbmRlbWVudHNTZWFuY2VcbiAgICB7XG4gICAgICBjbGVhblhtbEFydGVmYWN0cyhhbWVuZGVtZW50c1NlYW5jZSlcblxuICAgICAgY2xlYW5Cb29sZWFuQXR0cmlidXRlKGFtZW5kZW1lbnRzU2VhbmNlLCBcImFtZW5kYWJsZVwiKVxuICAgIH1cblxuICAgIGxldCBhbWVuZGVtZW50c0NvbW1pc3Npb24gPSBkZXBvdEFtZW5kZW1lbnRzLmFtZW5kZW1lbnRzQ29tbWlzc2lvblxuICAgIGlmIChhbWVuZGVtZW50c0NvbW1pc3Npb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgYW1lbmRlbWVudHNDb21taXNzaW9uID0gYW1lbmRlbWVudHNDb21taXNzaW9uLmNvbW1pc3Npb25cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShhbWVuZGVtZW50c0NvbW1pc3Npb24pKSB7XG4gICAgICAgIGFzc2VydChhbWVuZGVtZW50c0NvbW1pc3Npb24pXG4gICAgICAgIGFtZW5kZW1lbnRzQ29tbWlzc2lvbiA9IFthbWVuZGVtZW50c0NvbW1pc3Npb25dXG4gICAgICB9XG4gICAgICBkZXBvdEFtZW5kZW1lbnRzLmFtZW5kZW1lbnRzQ29tbWlzc2lvbiA9IGFtZW5kZW1lbnRzQ29tbWlzc2lvblxuICAgICAgZm9yIChjb25zdCBjb21taXNpb24gb2YgYW1lbmRlbWVudHNDb21taXNzaW9uKSB7XG4gICAgICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGNvbW1pc2lvbilcblxuICAgICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoY29tbWlzaW9uLCBcImFtZW5kYWJsZVwiKVxuXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXNpb24uZGF0ZUxpbWl0ZURlcG90LCB1bmRlZmluZWQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaW1wcmltZXJpZSA9IGQuaW1wcmltZXJpZVxuICBpZiAoaW1wcmltZXJpZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoaW1wcmltZXJpZSlcblxuICAgIGNvbnN0IGRpYW4gPSBpbXByaW1lcmllLkRJQU5cbiAgICBpZiAoZGlhbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWxldGUgaW1wcmltZXJpZS5ESUFOXG4gICAgICBpbXByaW1lcmllLmRpYW4gPSBkaWFuXG4gICAgfVxuXG4gICAgY29uc3QgaXNibiA9IGltcHJpbWVyaWUuSVNCTlxuICAgIGlmIChpc2JuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBpbXByaW1lcmllLklTQk5cbiAgICAgIGltcHJpbWVyaWUuaXNibiA9IGlzYm5cbiAgICB9XG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW1wcmltZXJpZS5JU1NOLCB1bmRlZmluZWQpXG4gIH1cblxuICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoZCwgXCJyYXBwb3J0UHVibGllXCIpXG5cbiAgbGV0IG9yZ2FuZXNSZWZlcmVudHMgPSBkLm9yZ2FuZXNSZWZlcmVudHNcbiAgaWYgKG9yZ2FuZXNSZWZlcmVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIG9yZ2FuZXNSZWZlcmVudHMgPSBvcmdhbmVzUmVmZXJlbnRzLm9yZ2FuZVJlZlxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcmdhbmVzUmVmZXJlbnRzKSkge1xuICAgICAgYXNzZXJ0KG9yZ2FuZXNSZWZlcmVudHMpXG4gICAgICBvcmdhbmVzUmVmZXJlbnRzID0gW29yZ2FuZXNSZWZlcmVudHNdXG4gICAgfVxuICAgIGQub3JnYW5lc1JlZmVyZW50cyA9IG9yZ2FuZXNSZWZlcmVudHNcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFQLE1BQW1CLFFBQW5CO1NBRVNDLHFCLEVBQXVCQyxpQjtBQUVoQyxPQUFPLFNBQVNDLHVCQUFULENBQWlDQyxDQUFqQyxFQUErQztFQUNwREYsaUJBQWlCLENBQUNFLENBQUQsQ0FBakI7RUFFQSxNQUFNQyxPQUFPLEdBQUdELENBQUMsQ0FBQyxXQUFELENBQWpCOztFQUNBLElBQUlDLE9BQU8sS0FBS0MsU0FBaEIsRUFBMkI7SUFDekJGLENBQUMsQ0FBQ0MsT0FBRixHQUFZQSxPQUFaO0lBQ0EsT0FBT0QsQ0FBQyxDQUFDLFdBQUQsQ0FBUjtFQUNEOztFQUVELE1BQU1HLFVBQVUsR0FBR0gsQ0FBQyxDQUFDRyxVQUFyQjtFQUNBUCxNQUFNLENBQUNPLFVBQUQsQ0FBTjtFQUNBO0lBQ0UsTUFBTUMsTUFBTSxHQUFHRCxVQUFVLENBQUNDLE1BQTFCO0lBQ0FSLE1BQU0sQ0FBQ1EsTUFBRCxDQUFOO0lBQ0FOLGlCQUFpQixDQUFDTSxNQUFELENBQWpCO0VBQ0Q7RUFFRCxJQUFJQyxTQUFTLEdBQUdMLENBQUMsQ0FBQ0ssU0FBbEI7O0VBQ0EsSUFBSUEsU0FBUyxLQUFLSCxTQUFsQixFQUE2QjtJQUMzQkcsU0FBUyxHQUFHQSxTQUFTLENBQUNDLFFBQXRCOztJQUNBLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFOLENBQWNILFNBQWQsQ0FBTCxFQUErQjtNQUM3QlQsTUFBTSxDQUFDUyxTQUFELENBQU47TUFDQUEsU0FBUyxHQUFHLENBQUNBLFNBQUQsQ0FBWjtJQUNEOztJQUNETCxDQUFDLENBQUNLLFNBQUYsR0FBY0EsU0FBZDs7SUFDQSxLQUFLLE1BQU1DLFFBQVgsSUFBdUJELFNBQXZCLEVB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
|
|
247
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbGVhbkRvY3VtZW50T3JEaXZpc2lvbiIsImQiLCJjbGVhblhtbEFydGVmYWN0cyIsInhzaVR5cGUiLCJ1bmRlZmluZWQiLCJjeWNsZURlVmllIiwiYXNzZXJ0IiwiY2hyb25vIiwiZGl2aXNpb25zIiwiZGl2aXNpb24iLCJBcnJheSIsImlzQXJyYXkiLCJzdHJpY3RFcXVhbCIsInJlZGFjdGV1ciIsImNsYXNzaWZpY2F0aW9uIiwiYXV0ZXVycyIsImF1dGV1ciIsIm9yZ2FuZVJlZiIsIm9yZ2FuZSIsIm5vdGljZSIsImNsZWFuQm9vbGVhbkF0dHJpYnV0ZSIsImNvU2lnbmF0YWlyZXMiLCJjb1NpZ25hdGFpcmUiLCJhY3RldXJSZWYiLCJhY3RldXIiLCJkZXBvdEFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHNTZWFuY2UiLCJhbWVuZGVtZW50c0NvbW1pc3Npb24iLCJjb21taXNzaW9uIiwiY29tbWlzaW9uIiwiZGF0ZUxpbWl0ZURlcG90IiwiaW1wcmltZXJpZSIsImRpYW4iLCJESUFOIiwiaXNibiIsIklTQk4iLCJJU1NOIiwib3JnYW5lc1JlZmVyZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVhbmVycy9kb2N1bWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcblxuaW1wb3J0IHsgY2xlYW5Cb29sZWFuQXR0cmlidXRlLCBjbGVhblhtbEFydGVmYWN0cyB9IGZyb20gXCIuL3htbFwiXG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRvY3VtZW50T3JEaXZpc2lvbihkOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZClcblxuICBjb25zdCB4c2lUeXBlID0gZFtcIkB4c2k6dHlwZVwiXVxuICBpZiAoeHNpVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZC54c2lUeXBlID0geHNpVHlwZVxuICAgIGRlbGV0ZSBkW1wiQHhzaTp0eXBlXCJdXG4gIH1cblxuICBjb25zdCBjeWNsZURlVmllID0gZC5jeWNsZURlVmllXG4gIGFzc2VydChjeWNsZURlVmllKVxuICB7XG4gICAgY29uc3QgY2hyb25vID0gY3ljbGVEZVZpZS5jaHJvbm9cbiAgICBhc3NlcnQoY2hyb25vKVxuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGNocm9ubylcbiAgfVxuXG4gIGxldCBkaXZpc2lvbnMgPSBkLmRpdmlzaW9uc1xuICBpZiAoZGl2aXNpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICBkaXZpc2lvbnMgPSBkaXZpc2lvbnMuZGl2aXNpb25cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGl2aXNpb25zKSkge1xuICAgICAgYXNzZXJ0KGRpdmlzaW9ucylcbiAgICAgIGRpdmlzaW9ucyA9IFtkaXZpc2lvbnNdXG4gICAgfVxuICAgIGQuZGl2aXNpb25zID0gZGl2aXNpb25zXG4gICAgZm9yIChjb25zdCBkaXZpc2lvbiBvZiBkaXZpc2lvbnMpIHtcbiAgICAgIGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uKGRpdmlzaW9uKVxuICAgIH1cbiAgfVxuXG4gIGFzc2VydC5zdHJpY3RFcXVhbChkLnJlZGFjdGV1ciwgdW5kZWZpbmVkKVxuXG4gIGNvbnN0IGNsYXNzaWZpY2F0aW9uID0gZC5jbGFzc2lmaWNhdGlvblxuICBhc3NlcnQoY2xhc3NpZmljYXRpb24pXG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKGNsYXNzaWZpY2F0aW9uKVxuXG4gIGxldCBhdXRldXJzID0gZC5hdXRldXJzXG4gIGlmIChhdXRldXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICBhdXRldXJzID0gYXV0ZXVycy5hdXRldXJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXV0ZXVycykpIHtcbiAgICAgIGFzc2VydChhdXRldXJzKVxuICAgICAgYXV0ZXVycyA9IFthdXRldXJzXVxuICAgIH1cbiAgICBkLmF1dGV1cnMgPSBhdXRldXJzXG4gICAgZm9yIChjb25zdCBhdXRldXIgb2YgYXV0ZXVycykge1xuICAgICAgbGV0IG9yZ2FuZVJlZiA9IGF1dGV1ci5vcmdhbmVcbiAgICAgIGlmIChvcmdhbmVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhdXRldXIub3JnYW5lUmVmID0gb3JnYW5lUmVmLm9yZ2FuZVJlZlxuICAgICAgICBkZWxldGUgYXV0ZXVyLm9yZ2FuZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5vdGljZSA9IGQubm90aWNlXG4gIHtcbiAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUobm90aWNlLCBcImFkb3B0aW9uQ29uZm9ybWVcIilcbiAgfVxuXG4gIGxldCBjb1NpZ25hdGFpcmVzID0gZC5jb1NpZ25hdGFpcmVzXG4gIGlmIChjb1NpZ25hdGFpcmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb1NpZ25hdGFpcmVzID0gY29TaWduYXRhaXJlcy5jb1NpZ25hdGFpcmVcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29TaWduYXRhaXJlcykpIHtcbiAgICAgIGFzc2VydChjb1NpZ25hdGFpcmVzKVxuICAgICAgY29TaWduYXRhaXJlcyA9IFtjb1NpZ25hdGFpcmVzXVxuICAgIH1cbiAgICBkLmNvU2lnbmF0YWlyZXMgPSBjb1NpZ25hdGFpcmVzXG4gICAgZm9yIChjb25zdCBjb1NpZ25hdGFpcmUgb2YgY29TaWduYXRhaXJlcykge1xuICAgICAgY2xlYW5YbWxBcnRlZmFjdHMoY29TaWduYXRhaXJlKVxuXG4gICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoY29TaWduYXRhaXJlLCBcImVkaXRlXCIpXG5cbiAgICAgIGxldCBhY3RldXJSZWYgPSBjb1NpZ25hdGFpcmUuYWN0ZXVyXG4gICAgICBpZiAoYWN0ZXVyUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0ZXVyUmVmID0gYWN0ZXVyUmVmLmFjdGV1clJlZlxuICAgICAgICBhc3NlcnQoYWN0ZXVyUmVmKVxuICAgICAgICBkZWxldGUgY29TaWduYXRhaXJlLmFjdGV1clxuICAgICAgICBjb1NpZ25hdGFpcmUuYWN0ZXVyUmVmID0gYWN0ZXVyUmVmXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9yZ2FuZSA9IGNvU2lnbmF0YWlyZS5vcmdhbmVcbiAgICAgIGlmIChvcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUob3JnYW5lLCBcImV0QXBwYXJlbnRlc1wiKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRlcG90QW1lbmRlbWVudHMgPSBkLmRlcG90QW1lbmRlbWVudHNcbiAgaWYgKGRlcG90QW1lbmRlbWVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlcG90QW1lbmRlbWVudHMpXG5cbiAgICBjb25zdCBhbWVuZGVtZW50c1NlYW5jZSA9IGRlcG90QW1lbmRlbWVudHMuYW1lbmRlbWVudHNTZWFuY2VcbiAgICB7XG4gICAgICBjbGVhblhtbEFydGVmYWN0cyhhbWVuZGVtZW50c1NlYW5jZSlcblxuICAgICAgY2xlYW5Cb29sZWFuQXR0cmlidXRlKGFtZW5kZW1lbnRzU2VhbmNlLCBcImFtZW5kYWJsZVwiKVxuICAgIH1cblxuICAgIGxldCBhbWVuZGVtZW50c0NvbW1pc3Npb24gPSBkZXBvdEFtZW5kZW1lbnRzLmFtZW5kZW1lbnRzQ29tbWlzc2lvblxuICAgIGlmIChhbWVuZGVtZW50c0NvbW1pc3Npb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgYW1lbmRlbWVudHNDb21taXNzaW9uID0gYW1lbmRlbWVudHNDb21taXNzaW9uLmNvbW1pc3Npb25cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShhbWVuZGVtZW50c0NvbW1pc3Npb24pKSB7XG4gICAgICAgIGFzc2VydChhbWVuZGVtZW50c0NvbW1pc3Npb24pXG4gICAgICAgIGFtZW5kZW1lbnRzQ29tbWlzc2lvbiA9IFthbWVuZGVtZW50c0NvbW1pc3Npb25dXG4gICAgICB9XG4gICAgICBkZXBvdEFtZW5kZW1lbnRzLmFtZW5kZW1lbnRzQ29tbWlzc2lvbiA9IGFtZW5kZW1lbnRzQ29tbWlzc2lvblxuICAgICAgZm9yIChjb25zdCBjb21taXNpb24gb2YgYW1lbmRlbWVudHNDb21taXNzaW9uKSB7XG4gICAgICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGNvbW1pc2lvbilcblxuICAgICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoY29tbWlzaW9uLCBcImFtZW5kYWJsZVwiKVxuXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXNpb24uZGF0ZUxpbWl0ZURlcG90LCB1bmRlZmluZWQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaW1wcmltZXJpZSA9IGQuaW1wcmltZXJpZVxuICBpZiAoaW1wcmltZXJpZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoaW1wcmltZXJpZSlcblxuICAgIGNvbnN0IGRpYW4gPSBpbXByaW1lcmllLkRJQU5cbiAgICBpZiAoZGlhbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWxldGUgaW1wcmltZXJpZS5ESUFOXG4gICAgICBpbXByaW1lcmllLmRpYW4gPSBkaWFuXG4gICAgfVxuXG4gICAgY29uc3QgaXNibiA9IGltcHJpbWVyaWUuSVNCTlxuICAgIGlmIChpc2JuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBpbXByaW1lcmllLklTQk5cbiAgICAgIGltcHJpbWVyaWUuaXNibiA9IGlzYm5cbiAgICB9XG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW1wcmltZXJpZS5JU1NOLCB1bmRlZmluZWQpXG4gIH1cblxuICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoZCwgXCJyYXBwb3J0UHVibGllXCIpXG5cbiAgbGV0IG9yZ2FuZXNSZWZlcmVudHMgPSBkLm9yZ2FuZXNSZWZlcmVudHNcbiAgaWYgKG9yZ2FuZXNSZWZlcmVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIG9yZ2FuZXNSZWZlcmVudHMgPSBvcmdhbmVzUmVmZXJlbnRzLm9yZ2FuZVJlZlxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcmdhbmVzUmVmZXJlbnRzKSkge1xuICAgICAgYXNzZXJ0KG9yZ2FuZXNSZWZlcmVudHMpXG4gICAgICBvcmdhbmVzUmVmZXJlbnRzID0gW29yZ2FuZXNSZWZlcmVudHNdXG4gICAgfVxuICAgIGQub3JnYW5lc1JlZmVyZW50cyA9IG9yZ2FuZXNSZWZlcmVudHNcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7Ozs7Ozs7OztBQUVPLFNBQVNBLHVCQUFULENBQWlDQyxDQUFqQyxFQUErQztFQUNwRCxJQUFBQyxzQkFBQSxFQUFrQkQsQ0FBbEI7RUFFQSxJQUFNRSxPQUFPLEdBQUdGLENBQUMsQ0FBQyxXQUFELENBQWpCOztFQUNBLElBQUlFLE9BQU8sS0FBS0MsU0FBaEIsRUFBMkI7SUFDekJILENBQUMsQ0FBQ0UsT0FBRixHQUFZQSxPQUFaO0lBQ0EsT0FBT0YsQ0FBQyxDQUFDLFdBQUQsQ0FBUjtFQUNEOztFQUVELElBQU1JLFVBQVUsR0FBR0osQ0FBQyxDQUFDSSxVQUFyQjtFQUNBLElBQUFDLGtCQUFBLEVBQU9ELFVBQVA7RUFDQTtJQUNFLElBQU1FLE1BQU0sR0FBR0YsVUFBVSxDQUFDRSxNQUExQjtJQUNBLElBQUFELGtCQUFBLEVBQU9DLE1BQVA7SUFDQSxJQUFBTCxzQkFBQSxFQUFrQkssTUFBbEI7RUFDRDtFQUVELElBQUlDLFNBQVMsR0FBR1AsQ0FBQyxDQUFDTyxTQUFsQjs7RUFDQSxJQUFJQSxTQUFTLEtBQUtKLFNBQWxCLEVBQTZCO0lBQzNCSSxTQUFTLEdBQUdBLFNBQVMsQ0FBQ0MsUUFBdEI7O0lBQ0EsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0gsU0FBZCxDQUFMLEVBQStCO01BQzdCLElBQUFGLGtCQUFBLEVBQU9FLFNBQVA7TUFDQUEsU0FBUyxHQUFHLENBQUNBLFNBQUQsQ0FBWjtJQUNEOztJQUNEUCxDQUFDLENBQUNPLFNBQUYsR0FBY0EsU0FBZDs7SUFOMkIsMkNBT0pBLFNBUEk7SUFBQTs7SUFBQTtNQU8z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
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import assert from "assert";
|
|
2
|
+
import { cleanBooleanAttribute, cleanXmlArtefacts } from "./xml.mjs";
|
|
3
|
+
export function cleanDocumentOrDivision(d) {
|
|
4
|
+
cleanXmlArtefacts(d);
|
|
5
|
+
const xsiType = d["@xsi:type"];
|
|
6
|
+
|
|
7
|
+
if (xsiType !== undefined) {
|
|
8
|
+
d.xsiType = xsiType;
|
|
9
|
+
delete d["@xsi:type"];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const cycleDeVie = d.cycleDeVie;
|
|
13
|
+
assert(cycleDeVie);
|
|
14
|
+
{
|
|
15
|
+
const chrono = cycleDeVie.chrono;
|
|
16
|
+
assert(chrono);
|
|
17
|
+
cleanXmlArtefacts(chrono);
|
|
18
|
+
}
|
|
19
|
+
let divisions = d.divisions;
|
|
20
|
+
|
|
21
|
+
if (divisions !== undefined) {
|
|
22
|
+
divisions = divisions.division;
|
|
23
|
+
|
|
24
|
+
if (!Array.isArray(divisions)) {
|
|
25
|
+
assert(divisions);
|
|
26
|
+
divisions = [divisions];
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
d.divisions = divisions;
|
|
30
|
+
|
|
31
|
+
for (const division of divisions) {
|
|
32
|
+
cleanDocumentOrDivision(division);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
assert.strictEqual(d.redacteur, undefined);
|
|
37
|
+
const classification = d.classification;
|
|
38
|
+
assert(classification);
|
|
39
|
+
cleanXmlArtefacts(classification);
|
|
40
|
+
let auteurs = d.auteurs;
|
|
41
|
+
|
|
42
|
+
if (auteurs !== undefined) {
|
|
43
|
+
auteurs = auteurs.auteur;
|
|
44
|
+
|
|
45
|
+
if (!Array.isArray(auteurs)) {
|
|
46
|
+
assert(auteurs);
|
|
47
|
+
auteurs = [auteurs];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
d.auteurs = auteurs;
|
|
51
|
+
|
|
52
|
+
for (const auteur of auteurs) {
|
|
53
|
+
let organeRef = auteur.organe;
|
|
54
|
+
|
|
55
|
+
if (organeRef !== undefined) {
|
|
56
|
+
auteur.organeRef = organeRef.organeRef;
|
|
57
|
+
delete auteur.organe;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const notice = d.notice;
|
|
63
|
+
{
|
|
64
|
+
cleanBooleanAttribute(notice, "adoptionConforme");
|
|
65
|
+
}
|
|
66
|
+
let coSignataires = d.coSignataires;
|
|
67
|
+
|
|
68
|
+
if (coSignataires !== undefined) {
|
|
69
|
+
coSignataires = coSignataires.coSignataire;
|
|
70
|
+
|
|
71
|
+
if (!Array.isArray(coSignataires)) {
|
|
72
|
+
assert(coSignataires);
|
|
73
|
+
coSignataires = [coSignataires];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
d.coSignataires = coSignataires;
|
|
77
|
+
|
|
78
|
+
for (const coSignataire of coSignataires) {
|
|
79
|
+
cleanXmlArtefacts(coSignataire);
|
|
80
|
+
cleanBooleanAttribute(coSignataire, "edite");
|
|
81
|
+
let acteurRef = coSignataire.acteur;
|
|
82
|
+
|
|
83
|
+
if (acteurRef !== undefined) {
|
|
84
|
+
acteurRef = acteurRef.acteurRef;
|
|
85
|
+
assert(acteurRef);
|
|
86
|
+
delete coSignataire.acteur;
|
|
87
|
+
coSignataire.acteurRef = acteurRef;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const organe = coSignataire.organe;
|
|
91
|
+
|
|
92
|
+
if (organe !== undefined) {
|
|
93
|
+
cleanBooleanAttribute(organe, "etApparentes");
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const depotAmendements = d.depotAmendements;
|
|
99
|
+
|
|
100
|
+
if (depotAmendements !== undefined) {
|
|
101
|
+
cleanXmlArtefacts(depotAmendements);
|
|
102
|
+
const amendementsSeance = depotAmendements.amendementsSeance;
|
|
103
|
+
{
|
|
104
|
+
cleanXmlArtefacts(amendementsSeance);
|
|
105
|
+
cleanBooleanAttribute(amendementsSeance, "amendable");
|
|
106
|
+
}
|
|
107
|
+
let amendementsCommission = depotAmendements.amendementsCommission;
|
|
108
|
+
|
|
109
|
+
if (amendementsCommission !== undefined) {
|
|
110
|
+
amendementsCommission = amendementsCommission.commission;
|
|
111
|
+
|
|
112
|
+
if (!Array.isArray(amendementsCommission)) {
|
|
113
|
+
assert(amendementsCommission);
|
|
114
|
+
amendementsCommission = [amendementsCommission];
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
depotAmendements.amendementsCommission = amendementsCommission;
|
|
118
|
+
|
|
119
|
+
for (const commision of amendementsCommission) {
|
|
120
|
+
cleanXmlArtefacts(commision);
|
|
121
|
+
cleanBooleanAttribute(commision, "amendable");
|
|
122
|
+
assert.strictEqual(commision.dateLimiteDepot, undefined);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const imprimerie = d.imprimerie;
|
|
128
|
+
|
|
129
|
+
if (imprimerie !== undefined) {
|
|
130
|
+
cleanXmlArtefacts(imprimerie);
|
|
131
|
+
const dian = imprimerie.DIAN;
|
|
132
|
+
|
|
133
|
+
if (dian !== undefined) {
|
|
134
|
+
delete imprimerie.DIAN;
|
|
135
|
+
imprimerie.dian = dian;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const isbn = imprimerie.ISBN;
|
|
139
|
+
|
|
140
|
+
if (isbn !== undefined) {
|
|
141
|
+
delete imprimerie.ISBN;
|
|
142
|
+
imprimerie.isbn = isbn;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
assert.strictEqual(imprimerie.ISSN, undefined);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
cleanBooleanAttribute(d, "rapportPublie");
|
|
149
|
+
let organesReferents = d.organesReferents;
|
|
150
|
+
|
|
151
|
+
if (organesReferents !== undefined) {
|
|
152
|
+
organesReferents = organesReferents.organeRef;
|
|
153
|
+
|
|
154
|
+
if (!Array.isArray(organesReferents)) {
|
|
155
|
+
assert(organesReferents);
|
|
156
|
+
organesReferents = [organesReferents];
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
d.organesReferents = organesReferents;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuRG9jdW1lbnRPckRpdmlzaW9uIiwiZCIsInhzaVR5cGUiLCJ1bmRlZmluZWQiLCJjeWNsZURlVmllIiwiY2hyb25vIiwiZGl2aXNpb25zIiwiZGl2aXNpb24iLCJBcnJheSIsImlzQXJyYXkiLCJzdHJpY3RFcXVhbCIsInJlZGFjdGV1ciIsImNsYXNzaWZpY2F0aW9uIiwiYXV0ZXVycyIsImF1dGV1ciIsIm9yZ2FuZVJlZiIsIm9yZ2FuZSIsIm5vdGljZSIsImNvU2lnbmF0YWlyZXMiLCJjb1NpZ25hdGFpcmUiLCJhY3RldXJSZWYiLCJhY3RldXIiLCJkZXBvdEFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHNTZWFuY2UiLCJhbWVuZGVtZW50c0NvbW1pc3Npb24iLCJjb21taXNzaW9uIiwiY29tbWlzaW9uIiwiZGF0ZUxpbWl0ZURlcG90IiwiaW1wcmltZXJpZSIsImRpYW4iLCJESUFOIiwiaXNibiIsIklTQk4iLCJJU1NOIiwib3JnYW5lc1JlZmVyZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVhbmVycy9kb2N1bWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcblxuaW1wb3J0IHsgY2xlYW5Cb29sZWFuQXR0cmlidXRlLCBjbGVhblhtbEFydGVmYWN0cyB9IGZyb20gXCIuL3htbFwiXG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRvY3VtZW50T3JEaXZpc2lvbihkOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZClcblxuICBjb25zdCB4c2lUeXBlID0gZFtcIkB4c2k6dHlwZVwiXVxuICBpZiAoeHNpVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZC54c2lUeXBlID0geHNpVHlwZVxuICAgIGRlbGV0ZSBkW1wiQHhzaTp0eXBlXCJdXG4gIH1cblxuICBjb25zdCBjeWNsZURlVmllID0gZC5jeWNsZURlVmllXG4gIGFzc2VydChjeWNsZURlVmllKVxuICB7XG4gICAgY29uc3QgY2hyb25vID0gY3ljbGVEZVZpZS5jaHJvbm9cbiAgICBhc3NlcnQoY2hyb25vKVxuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGNocm9ubylcbiAgfVxuXG4gIGxldCBkaXZpc2lvbnMgPSBkLmRpdmlzaW9uc1xuICBpZiAoZGl2aXNpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICBkaXZpc2lvbnMgPSBkaXZpc2lvbnMuZGl2aXNpb25cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGl2aXNpb25zKSkge1xuICAgICAgYXNzZXJ0KGRpdmlzaW9ucylcbiAgICAgIGRpdmlzaW9ucyA9IFtkaXZpc2lvbnNdXG4gICAgfVxuICAgIGQuZGl2aXNpb25zID0gZGl2aXNpb25zXG4gICAgZm9yIChjb25zdCBkaXZpc2lvbiBvZiBkaXZpc2lvbnMpIHtcbiAgICAgIGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uKGRpdmlzaW9uKVxuICAgIH1cbiAgfVxuXG4gIGFzc2VydC5zdHJpY3RFcXVhbChkLnJlZGFjdGV1ciwgdW5kZWZpbmVkKVxuXG4gIGNvbnN0IGNsYXNzaWZpY2F0aW9uID0gZC5jbGFzc2lmaWNhdGlvblxuICBhc3NlcnQoY2xhc3NpZmljYXRpb24pXG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKGNsYXNzaWZpY2F0aW9uKVxuXG4gIGxldCBhdXRldXJzID0gZC5hdXRldXJzXG4gIGlmIChhdXRldXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICBhdXRldXJzID0gYXV0ZXVycy5hdXRldXJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXV0ZXVycykpIHtcbiAgICAgIGFzc2VydChhdXRldXJzKVxuICAgICAgYXV0ZXVycyA9IFthdXRldXJzXVxuICAgIH1cbiAgICBkLmF1dGV1cnMgPSBhdXRldXJzXG4gICAgZm9yIChjb25zdCBhdXRldXIgb2YgYXV0ZXVycykge1xuICAgICAgbGV0IG9yZ2FuZVJlZiA9IGF1dGV1ci5vcmdhbmVcbiAgICAgIGlmIChvcmdhbmVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhdXRldXIub3JnYW5lUmVmID0gb3JnYW5lUmVmLm9yZ2FuZVJlZlxuICAgICAgICBkZWxldGUgYXV0ZXVyLm9yZ2FuZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG5vdGljZSA9IGQubm90aWNlXG4gIHtcbiAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUobm90aWNlLCBcImFkb3B0aW9uQ29uZm9ybWVcIilcbiAgfVxuXG4gIGxldCBjb1NpZ25hdGFpcmVzID0gZC5jb1NpZ25hdGFpcmVzXG4gIGlmIChjb1NpZ25hdGFpcmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb1NpZ25hdGFpcmVzID0gY29TaWduYXRhaXJlcy5jb1NpZ25hdGFpcmVcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29TaWduYXRhaXJlcykpIHtcbiAgICAgIGFzc2VydChjb1NpZ25hdGFpcmVzKVxuICAgICAgY29TaWduYXRhaXJlcyA9IFtjb1NpZ25hdGFpcmVzXVxuICAgIH1cbiAgICBkLmNvU2lnbmF0YWlyZXMgPSBjb1NpZ25hdGFpcmVzXG4gICAgZm9yIChjb25zdCBjb1NpZ25hdGFpcmUgb2YgY29TaWduYXRhaXJlcykge1xuICAgICAgY2xlYW5YbWxBcnRlZmFjdHMoY29TaWduYXRhaXJlKVxuXG4gICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoY29TaWduYXRhaXJlLCBcImVkaXRlXCIpXG5cbiAgICAgIGxldCBhY3RldXJSZWYgPSBjb1NpZ25hdGFpcmUuYWN0ZXVyXG4gICAgICBpZiAoYWN0ZXVyUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYWN0ZXVyUmVmID0gYWN0ZXVyUmVmLmFjdGV1clJlZlxuICAgICAgICBhc3NlcnQoYWN0ZXVyUmVmKVxuICAgICAgICBkZWxldGUgY29TaWduYXRhaXJlLmFjdGV1clxuICAgICAgICBjb1NpZ25hdGFpcmUuYWN0ZXVyUmVmID0gYWN0ZXVyUmVmXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9yZ2FuZSA9IGNvU2lnbmF0YWlyZS5vcmdhbmVcbiAgICAgIGlmIChvcmdhbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUob3JnYW5lLCBcImV0QXBwYXJlbnRlc1wiKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRlcG90QW1lbmRlbWVudHMgPSBkLmRlcG90QW1lbmRlbWVudHNcbiAgaWYgKGRlcG90QW1lbmRlbWVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlcG90QW1lbmRlbWVudHMpXG5cbiAgICBjb25zdCBhbWVuZGVtZW50c1NlYW5jZSA9IGRlcG90QW1lbmRlbWVudHMuYW1lbmRlbWVudHNTZWFuY2VcbiAgICB7XG4gICAgICBjbGVhblhtbEFydGVmYWN0cyhhbWVuZGVtZW50c1NlYW5jZSlcblxuICAgICAgY2xlYW5Cb29sZWFuQXR0cmlidXRlKGFtZW5kZW1lbnRzU2VhbmNlLCBcImFtZW5kYWJsZVwiKVxuICAgIH1cblxuICAgIGxldCBhbWVuZGVtZW50c0NvbW1pc3Npb24gPSBkZXBvdEFtZW5kZW1lbnRzLmFtZW5kZW1lbnRzQ29tbWlzc2lvblxuICAgIGlmIChhbWVuZGVtZW50c0NvbW1pc3Npb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgYW1lbmRlbWVudHNDb21taXNzaW9uID0gYW1lbmRlbWVudHNDb21taXNzaW9uLmNvbW1pc3Npb25cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShhbWVuZGVtZW50c0NvbW1pc3Npb24pKSB7XG4gICAgICAgIGFzc2VydChhbWVuZGVtZW50c0NvbW1pc3Npb24pXG4gICAgICAgIGFtZW5kZW1lbnRzQ29tbWlzc2lvbiA9IFthbWVuZGVtZW50c0NvbW1pc3Npb25dXG4gICAgICB9XG4gICAgICBkZXBvdEFtZW5kZW1lbnRzLmFtZW5kZW1lbnRzQ29tbWlzc2lvbiA9IGFtZW5kZW1lbnRzQ29tbWlzc2lvblxuICAgICAgZm9yIChjb25zdCBjb21taXNpb24gb2YgYW1lbmRlbWVudHNDb21taXNzaW9uKSB7XG4gICAgICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGNvbW1pc2lvbilcblxuICAgICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoY29tbWlzaW9uLCBcImFtZW5kYWJsZVwiKVxuXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb21taXNpb24uZGF0ZUxpbWl0ZURlcG90LCB1bmRlZmluZWQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgaW1wcmltZXJpZSA9IGQuaW1wcmltZXJpZVxuICBpZiAoaW1wcmltZXJpZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoaW1wcmltZXJpZSlcblxuICAgIGNvbnN0IGRpYW4gPSBpbXByaW1lcmllLkRJQU5cbiAgICBpZiAoZGlhbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWxldGUgaW1wcmltZXJpZS5ESUFOXG4gICAgICBpbXByaW1lcmllLmRpYW4gPSBkaWFuXG4gICAgfVxuXG4gICAgY29uc3QgaXNibiA9IGltcHJpbWVyaWUuSVNCTlxuICAgIGlmIChpc2JuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBpbXByaW1lcmllLklTQk5cbiAgICAgIGltcHJpbWVyaWUuaXNibiA9IGlzYm5cbiAgICB9XG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaW1wcmltZXJpZS5JU1NOLCB1bmRlZmluZWQpXG4gIH1cblxuICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoZCwgXCJyYXBwb3J0UHVibGllXCIpXG5cbiAgbGV0IG9yZ2FuZXNSZWZlcmVudHMgPSBkLm9yZ2FuZXNSZWZlcmVudHNcbiAgaWYgKG9yZ2FuZXNSZWZlcmVudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIG9yZ2FuZXNSZWZlcmVudHMgPSBvcmdhbmVzUmVmZXJlbnRzLm9yZ2FuZVJlZlxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcmdhbmVzUmVmZXJlbnRzKSkge1xuICAgICAgYXNzZXJ0KG9yZ2FuZXNSZWZlcmVudHMpXG4gICAgICBvcmdhbmVzUmVmZXJlbnRzID0gW29yZ2FuZXNSZWZlcmVudHNdXG4gICAgfVxuICAgIGQub3JnYW5lc1JlZmVyZW50cyA9IG9yZ2FuZXNSZWZlcmVudHNcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFQLE1BQW1CLFFBQW5CO1NBRVNDLHFCLEVBQXVCQyxpQjtBQUVoQyxPQUFPLFNBQVNDLHVCQUFULENBQWlDQyxDQUFqQyxFQUErQztFQUNwREYsaUJBQWlCLENBQUNFLENBQUQsQ0FBakI7RUFFQSxNQUFNQyxPQUFPLEdBQUdELENBQUMsQ0FBQyxXQUFELENBQWpCOztFQUNBLElBQUlDLE9BQU8sS0FBS0MsU0FBaEIsRUFBMkI7SUFDekJGLENBQUMsQ0FBQ0MsT0FBRixHQUFZQSxPQUFaO0lBQ0EsT0FBT0QsQ0FBQyxDQUFDLFdBQUQsQ0FBUjtFQUNEOztFQUVELE1BQU1HLFVBQVUsR0FBR0gsQ0FBQyxDQUFDRyxVQUFyQjtFQUNBUCxNQUFNLENBQUNPLFVBQUQsQ0FBTjtFQUNBO0lBQ0UsTUFBTUMsTUFBTSxHQUFHRCxVQUFVLENBQUNDLE1BQTFCO0lBQ0FSLE1BQU0sQ0FBQ1EsTUFBRCxDQUFOO0lBQ0FOLGlCQUFpQixDQUFDTSxNQUFELENBQWpCO0VBQ0Q7RUFFRCxJQUFJQyxTQUFTLEdBQUdMLENBQUMsQ0FBQ0ssU0FBbEI7O0VBQ0EsSUFBSUEsU0FBUyxLQUFLSCxTQUFsQixFQUE2QjtJQUMzQkcsU0FBUyxHQUFHQSxTQUFTLENBQUNDLFFBQXRCOztJQUNBLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFOLENBQWNILFNBQWQsQ0FBTCxFQUErQjtNQUM3QlQsTUFBTSxDQUFDUyxTQUFELENBQU47TUFDQUEsU0FBUyxHQUFHLENBQUNBLFNBQUQsQ0FBWjtJQUNEOztJQUNETCxDQUFDLENBQUNLLFNBQUYsR0FBY0EsU0FBZDs7SUFDQSxLQUFLLE1BQU1DLFFBQVgsSUFBdUJELFNBQXZCLEVB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
|