@tricoteuses/assemblee 1.8.0 → 1.9.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.
- package/lib/bugs/acteur-00010/plugin.test.js +2 -2
- package/lib/bugs/acteur-00010.js +3 -3
- package/lib/bugs/agenda-00002/plugin.test.js +3 -3
- package/lib/bugs/agenda-00002.js +5 -5
- package/lib/bugs/agenda-00008/plugin.test.js +2 -2
- package/lib/bugs/agenda-00008.js +3 -3
- package/lib/bugs/agenda-00011/plugin.test.js +6 -6
- package/lib/bugs/agenda-00011.js +8 -8
- package/lib/bugs.js +11 -11
- package/lib/cleaners/index.d.ts +1 -0
- package/lib/cleaners/index.js +8 -1
- package/lib/cleaners/index.mjs +2 -1
- package/lib/cleaners/scrutins.js +2 -1
- package/lib/cleaners/scrutins.mjs +3 -2
- package/lib/cleaners/textes_loi.d.ts +1 -0
- package/lib/cleaners/textes_loi.js +12 -0
- package/lib/cleaners/textes_loi.mjs +5 -0
- package/lib/cleaners/xml.d.ts +3 -0
- package/lib/cleaners/xml.js +13 -1
- package/lib/cleaners/xml.mjs +11 -1
- package/lib/datasets.d.ts +9 -2
- package/lib/datasets.js +24 -3
- package/lib/datasets.mjs +24 -3
- package/lib/dates.js +3 -3
- package/lib/examples/PIONANR5L15B0020/input.d.ts +2 -0
- package/lib/examples/PIONANR5L15B0020/input.js +10 -0
- package/lib/examples/PIONANR5L15B0020/input.mjs +193 -0
- package/lib/examples/PRJLANR5L16B0914/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B0914/input.js +10 -0
- package/lib/examples/PRJLANR5L16B0914/input.mjs +322 -0
- package/lib/examples/PRJLANR5L16B2014/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2014/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2014/input.mjs +577 -0
- package/lib/examples/PRJLANR5L16B2424/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2424/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2424/input.mjs +322 -0
- package/lib/examples/PRJLANR5L16B2462/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2462/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2462/input.mjs +1308 -0
- package/lib/loaders.d.ts +5 -0
- package/lib/loaders.js +308 -262
- package/lib/loaders.mjs +16 -3
- package/lib/logger.d.ts +16 -0
- package/lib/logger.js +35 -0
- package/lib/logger.mjs +26 -0
- package/lib/parsers/documents.js +2 -2
- package/lib/parsers/textes_lois.d.ts +16 -1
- package/lib/parsers/textes_lois.js +733 -28
- package/lib/parsers/textes_lois.mjs +587 -22
- package/lib/raw_types/acteurs_et_organes.js +1 -1
- package/lib/raw_types/agendas.js +1 -1
- package/lib/raw_types/amendements.js +1 -1
- package/lib/raw_types/debats.js +1 -1
- package/lib/raw_types/dossiers_legislatifs.js +1 -1
- package/lib/raw_types/questions.js +1 -1
- package/lib/raw_types/scrutins.d.ts +18 -13
- package/lib/raw_types/scrutins.js +28 -14
- package/lib/raw_types/scrutins.mjs +28 -14
- package/lib/raw_types/textes_loi.d.ts +93 -0
- package/lib/raw_types/textes_loi.js +429 -0
- package/lib/raw_types/textes_loi.mjs +378 -0
- package/lib/scripts/bugs_helper.js +9 -9
- package/lib/scripts/document_dossiers_legislatifs.js +1 -1
- package/lib/scripts/process_open_dataset.d.ts +17 -0
- package/lib/scripts/process_open_dataset.js +302 -0
- package/lib/scripts/process_open_dataset.mjs +136 -0
- package/lib/scripts/process_textes_loi_dataset.d.ts +7 -0
- package/lib/scripts/process_textes_loi_dataset.js +374 -0
- package/lib/scripts/process_textes_loi_dataset.mjs +237 -0
- package/lib/scripts/raw_types_from_amendements.js +2 -2
- package/lib/scripts/reorganize_data.js +1 -1
- package/lib/scripts/reorganize_data.mjs +1 -1
- package/lib/scripts/retrieve_deputes_photos.js +3 -3
- package/lib/scripts/retrieve_documents.js +4 -4
- package/lib/scripts/retrieve_open_data.js +41 -279
- package/lib/scripts/retrieve_open_data.mjs +13 -126
- package/lib/scripts/retrieve_pending_amendments.js +2 -2
- package/lib/scripts/retrieve_senateurs_photos.js +2 -2
- package/lib/scripts/retrieve_textes_lois.js +2 -2
- package/lib/scripts/shared/cli_helpers.d.ts +5 -0
- package/lib/scripts/shared/cli_helpers.js +7 -2
- package/lib/scripts/shared/cli_helpers.mjs +6 -1
- package/lib/scripts/test_iter_load.js +25 -10
- package/lib/scripts/test_iter_load.mjs +19 -11
- package/lib/scripts/validate_json.js +3 -3
- package/lib/types/acteurs_et_organes.js +1 -1
- package/lib/types/agendas.js +1 -1
- package/lib/types/amendements.js +1 -1
- package/lib/types/debats.js +1 -1
- package/lib/types/dossiers_legislatifs.js +1 -1
- package/lib/types/questions.js +1 -1
- package/lib/types/scrutins.d.ts +6 -3
- package/lib/types/scrutins.js +13 -7
- package/lib/types/scrutins.mjs +13 -7
- package/lib/types/textes_loi.d.ts +94 -0
- package/lib/types/textes_loi.js +429 -0
- package/lib/types/textes_loi.mjs +378 -0
- package/package.json +13 -12
- package/lib/scripts/retrieve_textes_lois_llm.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois_llm.js +0 -188
- package/lib/scripts/retrieve_textes_lois_llm.mjs +0 -85
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
// To parse this data:
|
|
2
|
+
//
|
|
3
|
+
// import { Convert, TextesLoi } from "./file";
|
|
4
|
+
//
|
|
5
|
+
// const textesLoi = Convert.toTextesLoi(json);
|
|
6
|
+
//
|
|
7
|
+
// These functions will throw an error if the JSON doesn't
|
|
8
|
+
// match the expected interface, even if the JSON is valid.
|
|
9
|
+
|
|
10
|
+
export let Cardinal = /*#__PURE__*/function (Cardinal) {
|
|
11
|
+
Cardinal["A"] = "A";
|
|
12
|
+
Cardinal["B"] = "B";
|
|
13
|
+
Cardinal["Bis"] = "bis";
|
|
14
|
+
Cardinal["BisA"] = "bis A";
|
|
15
|
+
Cardinal["C"] = "C";
|
|
16
|
+
Cardinal["CardinalNouveau"] = "(nouveau)";
|
|
17
|
+
Cardinal["Empty"] = "";
|
|
18
|
+
Cardinal["Er"] = "er";
|
|
19
|
+
Cardinal["Nouveau"] = "nouveau";
|
|
20
|
+
return Cardinal;
|
|
21
|
+
}({});
|
|
22
|
+
export let Organe = /*#__PURE__*/function (Organe) {
|
|
23
|
+
Organe["Assembl\xE9eNationale"] = "Assembl\xE9e Nationale";
|
|
24
|
+
Organe["OrganeAssembl\xE9eNationale"] = "ASSEMBL\xC9E NATIONALE";
|
|
25
|
+
return Organe;
|
|
26
|
+
}({});
|
|
27
|
+
export let Fonction = /*#__PURE__*/function (Fonction) {
|
|
28
|
+
Fonction["D\xE9put\xE9"] = "D\xE9put\xE9";
|
|
29
|
+
Fonction["D\xE9put\xE9e"] = "D\xE9put\xE9e";
|
|
30
|
+
Fonction["Empty"] = "";
|
|
31
|
+
return Fonction;
|
|
32
|
+
}({});
|
|
33
|
+
export let TypeDivision = /*#__PURE__*/function (TypeDivision) {
|
|
34
|
+
TypeDivision["Chapitre"] = "Chapitre";
|
|
35
|
+
TypeDivision["Titre"] = "Titre";
|
|
36
|
+
return TypeDivision;
|
|
37
|
+
}({});
|
|
38
|
+
export let TypeTexte = /*#__PURE__*/function (TypeTexte) {
|
|
39
|
+
TypeTexte["MotionDeCensure"] = "Motion de censure";
|
|
40
|
+
TypeTexte["PropositionDeLoi"] = "Proposition de loi";
|
|
41
|
+
TypeTexte["PropositionDeLoiConstitutionnelle"] = "PROPOSITION DE LOI CONSTITUTIONNELLE";
|
|
42
|
+
TypeTexte["PropositionDeLoiOrganique"] = "PROPOSITION DE LOI ORGANIQUE";
|
|
43
|
+
TypeTexte["TypeTexteMotionDeCensure"] = "MOTION DE CENSURE";
|
|
44
|
+
TypeTexte["TypeTextePropositionDeLoi"] = "PROPOSITION DE LOI";
|
|
45
|
+
return TypeTexte;
|
|
46
|
+
}({});
|
|
47
|
+
|
|
48
|
+
// Converts JSON strings to/from your types
|
|
49
|
+
// and asserts the results of JSON.parse at runtime
|
|
50
|
+
export class Convert {
|
|
51
|
+
static toTextesLoi(json) {
|
|
52
|
+
return cast(JSON.parse(json), r("TextesLoi"));
|
|
53
|
+
}
|
|
54
|
+
static textesLoiToJson(value) {
|
|
55
|
+
return JSON.stringify(uncast(value, r("TextesLoi")), null, 2);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function invalidValue(typ, val, key, parent = '') {
|
|
59
|
+
const prettyTyp = prettyTypeName(typ);
|
|
60
|
+
const parentText = parent ? ` on ${parent}` : '';
|
|
61
|
+
const keyText = key ? ` for key "${key}"` : '';
|
|
62
|
+
throw Error(`Invalid value${keyText}${parentText}. Expected ${prettyTyp} but got ${JSON.stringify(val)}`);
|
|
63
|
+
}
|
|
64
|
+
function prettyTypeName(typ) {
|
|
65
|
+
if (Array.isArray(typ)) {
|
|
66
|
+
if (typ.length === 2 && typ[0] === undefined) {
|
|
67
|
+
return `an optional ${prettyTypeName(typ[1])}`;
|
|
68
|
+
} else {
|
|
69
|
+
return `one of [${typ.map(a => {
|
|
70
|
+
return prettyTypeName(a);
|
|
71
|
+
}).join(", ")}]`;
|
|
72
|
+
}
|
|
73
|
+
} else if (typeof typ === "object" && typ.literal !== undefined) {
|
|
74
|
+
return typ.literal;
|
|
75
|
+
} else {
|
|
76
|
+
return typeof typ;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function jsonToJSProps(typ) {
|
|
80
|
+
if (typ.jsonToJS === undefined) {
|
|
81
|
+
const map = {};
|
|
82
|
+
typ.props.forEach(p => map[p.json] = {
|
|
83
|
+
key: p.js,
|
|
84
|
+
typ: p.typ
|
|
85
|
+
});
|
|
86
|
+
typ.jsonToJS = map;
|
|
87
|
+
}
|
|
88
|
+
return typ.jsonToJS;
|
|
89
|
+
}
|
|
90
|
+
function jsToJSONProps(typ) {
|
|
91
|
+
if (typ.jsToJSON === undefined) {
|
|
92
|
+
const map = {};
|
|
93
|
+
typ.props.forEach(p => map[p.js] = {
|
|
94
|
+
key: p.json,
|
|
95
|
+
typ: p.typ
|
|
96
|
+
});
|
|
97
|
+
typ.jsToJSON = map;
|
|
98
|
+
}
|
|
99
|
+
return typ.jsToJSON;
|
|
100
|
+
}
|
|
101
|
+
function transform(val, typ, getProps, key = '', parent = '') {
|
|
102
|
+
function transformPrimitive(typ, val) {
|
|
103
|
+
if (typeof typ === typeof val) return val;
|
|
104
|
+
return invalidValue(typ, val, key, parent);
|
|
105
|
+
}
|
|
106
|
+
function transformUnion(typs, val) {
|
|
107
|
+
// val must validate against one typ in typs
|
|
108
|
+
const l = typs.length;
|
|
109
|
+
for (let i = 0; i < l; i++) {
|
|
110
|
+
const typ = typs[i];
|
|
111
|
+
try {
|
|
112
|
+
return transform(val, typ, getProps);
|
|
113
|
+
} catch (_) {}
|
|
114
|
+
}
|
|
115
|
+
return invalidValue(typs, val, key, parent);
|
|
116
|
+
}
|
|
117
|
+
function transformEnum(cases, val) {
|
|
118
|
+
if (cases.indexOf(val) !== -1) return val;
|
|
119
|
+
return invalidValue(cases.map(a => {
|
|
120
|
+
return l(a);
|
|
121
|
+
}), val, key, parent);
|
|
122
|
+
}
|
|
123
|
+
function transformArray(typ, val) {
|
|
124
|
+
// val must be an array with no invalid elements
|
|
125
|
+
if (!Array.isArray(val)) return invalidValue(l("array"), val, key, parent);
|
|
126
|
+
return val.map(el => transform(el, typ, getProps));
|
|
127
|
+
}
|
|
128
|
+
function transformDate(val) {
|
|
129
|
+
if (val === null) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
const d = new Date(val);
|
|
133
|
+
if (isNaN(d.valueOf())) {
|
|
134
|
+
return invalidValue(l("Date"), val, key, parent);
|
|
135
|
+
}
|
|
136
|
+
return d;
|
|
137
|
+
}
|
|
138
|
+
function transformObject(props, additional, val) {
|
|
139
|
+
if (val === null || typeof val !== "object" || Array.isArray(val)) {
|
|
140
|
+
return invalidValue(l(ref || "object"), val, key, parent);
|
|
141
|
+
}
|
|
142
|
+
const result = {};
|
|
143
|
+
Object.getOwnPropertyNames(props).forEach(key => {
|
|
144
|
+
const prop = props[key];
|
|
145
|
+
const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
|
|
146
|
+
result[prop.key] = transform(v, prop.typ, getProps, key, ref);
|
|
147
|
+
});
|
|
148
|
+
Object.getOwnPropertyNames(val).forEach(key => {
|
|
149
|
+
if (!Object.prototype.hasOwnProperty.call(props, key)) {
|
|
150
|
+
result[key] = transform(val[key], additional, getProps, key, ref);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
if (typ === "any") return val;
|
|
156
|
+
if (typ === null) {
|
|
157
|
+
if (val === null) return val;
|
|
158
|
+
return invalidValue(typ, val, key, parent);
|
|
159
|
+
}
|
|
160
|
+
if (typ === false) return invalidValue(typ, val, key, parent);
|
|
161
|
+
let ref = undefined;
|
|
162
|
+
while (typeof typ === "object" && typ.ref !== undefined) {
|
|
163
|
+
ref = typ.ref;
|
|
164
|
+
typ = typeMap[typ.ref];
|
|
165
|
+
}
|
|
166
|
+
if (Array.isArray(typ)) return transformEnum(typ, val);
|
|
167
|
+
if (typeof typ === "object") {
|
|
168
|
+
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, key, parent);
|
|
169
|
+
}
|
|
170
|
+
// Numbers can be parsed by Date but shouldn't be.
|
|
171
|
+
if (typ === Date && typeof val !== "number") return transformDate(val);
|
|
172
|
+
return transformPrimitive(typ, val);
|
|
173
|
+
}
|
|
174
|
+
function cast(val, typ) {
|
|
175
|
+
return transform(val, typ, jsonToJSProps);
|
|
176
|
+
}
|
|
177
|
+
function uncast(val, typ) {
|
|
178
|
+
return transform(val, typ, jsToJSONProps);
|
|
179
|
+
}
|
|
180
|
+
function l(typ) {
|
|
181
|
+
return {
|
|
182
|
+
literal: typ
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
function a(typ) {
|
|
186
|
+
return {
|
|
187
|
+
arrayItems: typ
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function u(...typs) {
|
|
191
|
+
return {
|
|
192
|
+
unionMembers: typs
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function o(props, additional) {
|
|
196
|
+
return {
|
|
197
|
+
props,
|
|
198
|
+
additional
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function r(name) {
|
|
202
|
+
return {
|
|
203
|
+
ref: name
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
const typeMap = {
|
|
207
|
+
"TextesLoi": o([{
|
|
208
|
+
json: "documentRef",
|
|
209
|
+
js: "documentRef",
|
|
210
|
+
typ: ""
|
|
211
|
+
}, {
|
|
212
|
+
json: "titre",
|
|
213
|
+
js: "titre",
|
|
214
|
+
typ: ""
|
|
215
|
+
}, {
|
|
216
|
+
json: "organe",
|
|
217
|
+
js: "organe",
|
|
218
|
+
typ: r("Organe")
|
|
219
|
+
}, {
|
|
220
|
+
json: "typeTexte",
|
|
221
|
+
js: "typeTexte",
|
|
222
|
+
typ: r("TypeTexte")
|
|
223
|
+
}, {
|
|
224
|
+
json: "commission",
|
|
225
|
+
js: "commission",
|
|
226
|
+
typ: ""
|
|
227
|
+
}, {
|
|
228
|
+
json: "procedureAcceleree",
|
|
229
|
+
js: "procedureAcceleree",
|
|
230
|
+
typ: true
|
|
231
|
+
}, {
|
|
232
|
+
json: "representants",
|
|
233
|
+
js: "representants",
|
|
234
|
+
typ: r("Representants")
|
|
235
|
+
}, {
|
|
236
|
+
json: "dateConstitution",
|
|
237
|
+
js: "dateConstitution",
|
|
238
|
+
typ: Date
|
|
239
|
+
}, {
|
|
240
|
+
json: "dateDepotAssemblee",
|
|
241
|
+
js: "dateDepotAssemblee",
|
|
242
|
+
typ: Date
|
|
243
|
+
}, {
|
|
244
|
+
json: "numeroLegislature",
|
|
245
|
+
js: "numeroLegislature",
|
|
246
|
+
typ: 0
|
|
247
|
+
}, {
|
|
248
|
+
json: "numeroTexte",
|
|
249
|
+
js: "numeroTexte",
|
|
250
|
+
typ: ""
|
|
251
|
+
}, {
|
|
252
|
+
json: "sommaire",
|
|
253
|
+
js: "sommaire",
|
|
254
|
+
typ: u(a(r("SommaireElement")), r("PurpleSommaire"))
|
|
255
|
+
}, {
|
|
256
|
+
json: "contenu",
|
|
257
|
+
js: "contenu",
|
|
258
|
+
typ: r("Contenu")
|
|
259
|
+
}, {
|
|
260
|
+
json: "signataires",
|
|
261
|
+
js: "signataires",
|
|
262
|
+
typ: u(undefined, a(r("Signataire")))
|
|
263
|
+
}], false),
|
|
264
|
+
"Contenu": o([{
|
|
265
|
+
json: "articles",
|
|
266
|
+
js: "articles",
|
|
267
|
+
typ: a(r("Article"))
|
|
268
|
+
}, {
|
|
269
|
+
json: "exposeMotifs",
|
|
270
|
+
js: "exposeMotifs",
|
|
271
|
+
typ: r("ExposeMotifs")
|
|
272
|
+
}], false),
|
|
273
|
+
"Article": o([{
|
|
274
|
+
json: "numeroArticle",
|
|
275
|
+
js: "numeroArticle",
|
|
276
|
+
typ: 0
|
|
277
|
+
}, {
|
|
278
|
+
json: "numeroArticles",
|
|
279
|
+
js: "numeroArticles",
|
|
280
|
+
typ: a("any")
|
|
281
|
+
}, {
|
|
282
|
+
json: "cardinal",
|
|
283
|
+
js: "cardinal",
|
|
284
|
+
typ: r("Cardinal")
|
|
285
|
+
}, {
|
|
286
|
+
json: "parent",
|
|
287
|
+
js: "parent",
|
|
288
|
+
typ: ""
|
|
289
|
+
}, {
|
|
290
|
+
json: "nouveau",
|
|
291
|
+
js: "nouveau",
|
|
292
|
+
typ: true
|
|
293
|
+
}, {
|
|
294
|
+
json: "titre",
|
|
295
|
+
js: "titre",
|
|
296
|
+
typ: ""
|
|
297
|
+
}, {
|
|
298
|
+
json: "alineas",
|
|
299
|
+
js: "alineas",
|
|
300
|
+
typ: a(r("Alinea"))
|
|
301
|
+
}, {
|
|
302
|
+
json: "texte",
|
|
303
|
+
js: "texte",
|
|
304
|
+
typ: ""
|
|
305
|
+
}], false),
|
|
306
|
+
"Alinea": o([{
|
|
307
|
+
json: "numeroAlinea",
|
|
308
|
+
js: "numeroAlinea",
|
|
309
|
+
typ: 0
|
|
310
|
+
}, {
|
|
311
|
+
json: "texte",
|
|
312
|
+
js: "texte",
|
|
313
|
+
typ: ""
|
|
314
|
+
}, {
|
|
315
|
+
json: "debut",
|
|
316
|
+
js: "debut",
|
|
317
|
+
typ: u(undefined, "")
|
|
318
|
+
}, {
|
|
319
|
+
json: "fin",
|
|
320
|
+
js: "fin",
|
|
321
|
+
typ: u(undefined, "")
|
|
322
|
+
}], false),
|
|
323
|
+
"ExposeMotifs": o([{
|
|
324
|
+
json: "texte",
|
|
325
|
+
js: "texte",
|
|
326
|
+
typ: ""
|
|
327
|
+
}, {
|
|
328
|
+
json: "citation",
|
|
329
|
+
js: "citation",
|
|
330
|
+
typ: u(undefined, "")
|
|
331
|
+
}], false),
|
|
332
|
+
"Representants": o([{
|
|
333
|
+
json: "par",
|
|
334
|
+
js: "par",
|
|
335
|
+
typ: a(r("Signataire"))
|
|
336
|
+
}], false),
|
|
337
|
+
"Signataire": o([{
|
|
338
|
+
json: "nom",
|
|
339
|
+
js: "nom",
|
|
340
|
+
typ: ""
|
|
341
|
+
}, {
|
|
342
|
+
json: "fonction",
|
|
343
|
+
js: "fonction",
|
|
344
|
+
typ: r("Fonction")
|
|
345
|
+
}], false),
|
|
346
|
+
"SommaireElement": o([{
|
|
347
|
+
json: "typeDivision",
|
|
348
|
+
js: "typeDivision",
|
|
349
|
+
typ: r("TypeDivision")
|
|
350
|
+
}, {
|
|
351
|
+
json: "numeroDivision",
|
|
352
|
+
js: "numeroDivision",
|
|
353
|
+
typ: ""
|
|
354
|
+
}, {
|
|
355
|
+
json: "sequence",
|
|
356
|
+
js: "sequence",
|
|
357
|
+
typ: 0
|
|
358
|
+
}, {
|
|
359
|
+
json: "titre",
|
|
360
|
+
js: "titre",
|
|
361
|
+
typ: ""
|
|
362
|
+
}, {
|
|
363
|
+
json: "parent",
|
|
364
|
+
js: "parent",
|
|
365
|
+
typ: u(undefined, "")
|
|
366
|
+
}], false),
|
|
367
|
+
"PurpleSommaire": o([{
|
|
368
|
+
json: "sommaire",
|
|
369
|
+
js: "sommaire",
|
|
370
|
+
typ: a("any")
|
|
371
|
+
}], false),
|
|
372
|
+
"Cardinal": ["A", "B", "bis", "bis A", "C", "(nouveau)", "", "er", "nouveau"],
|
|
373
|
+
"Organe": ["Assemblée Nationale", "ASSEMBLÉE NATIONALE"],
|
|
374
|
+
"Fonction": ["Député", "Députée", ""],
|
|
375
|
+
"TypeDivision": ["Chapitre", "Titre"],
|
|
376
|
+
"TypeTexte": ["Motion de censure", "Proposition de loi", "PROPOSITION DE LOI CONSTITUTIONNELLE", "PROPOSITION DE LOI ORGANIQUE", "MOTION DE CENSURE", "PROPOSITION DE LOI"]
|
|
377
|
+
};
|
|
378
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYXJkaW5hbCIsIk9yZ2FuZSIsIkZvbmN0aW9uIiwiVHlwZURpdmlzaW9uIiwiVHlwZVRleHRlIiwiQ29udmVydCIsInRvVGV4dGVzTG9pIiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwidGV4dGVzTG9pVG9Kc29uIiwidmFsdWUiLCJzdHJpbmdpZnkiLCJ1bmNhc3QiLCJpbnZhbGlkVmFsdWUiLCJ0eXAiLCJ2YWwiLCJrZXkiLCJwYXJlbnQiLCJwcmV0dHlUeXAiLCJwcmV0dHlUeXBlTmFtZSIsInBhcmVudFRleHQiLCJrZXlUZXh0IiwiRXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJtYXAiLCJhIiwiam9pbiIsImxpdGVyYWwiLCJqc29uVG9KU1Byb3BzIiwianNvblRvSlMiLCJwcm9wcyIsImZvckVhY2giLCJwIiwianMiLCJqc1RvSlNPTlByb3BzIiwianNUb0pTT04iLCJ0cmFuc2Zvcm0iLCJnZXRQcm9wcyIsInRyYW5zZm9ybVByaW1pdGl2ZSIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlZiIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwidSIsIm8iLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jhd190eXBlcy90ZXh0ZXNfbG9pLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRvIHBhcnNlIHRoaXMgZGF0YTpcbi8vXG4vLyAgIGltcG9ydCB7IENvbnZlcnQsIFRleHRlc0xvaSB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IHRleHRlc0xvaSA9IENvbnZlcnQudG9UZXh0ZXNMb2koanNvbik7XG4vL1xuLy8gVGhlc2UgZnVuY3Rpb25zIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIEpTT04gZG9lc24ndFxuLy8gbWF0Y2ggdGhlIGV4cGVjdGVkIGludGVyZmFjZSwgZXZlbiBpZiB0aGUgSlNPTiBpcyB2YWxpZC5cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZXNMb2kge1xuICAgIGRvY3VtZW50UmVmOiAgICAgICAgc3RyaW5nO1xuICAgIHRpdHJlOiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIG9yZ2FuZTogICAgICAgICAgICAgT3JnYW5lO1xuICAgIHR5cGVUZXh0ZTogICAgICAgICAgVHlwZVRleHRlO1xuICAgIGNvbW1pc3Npb246ICAgICAgICAgc3RyaW5nO1xuICAgIHByb2NlZHVyZUFjY2VsZXJlZTogYm9vbGVhbjtcbiAgICByZXByZXNlbnRhbnRzOiAgICAgIFJlcHJlc2VudGFudHM7XG4gICAgZGF0ZUNvbnN0aXR1dGlvbjogICBEYXRlO1xuICAgIGRhdGVEZXBvdEFzc2VtYmxlZTogRGF0ZTtcbiAgICBudW1lcm9MZWdpc2xhdHVyZTogIG51bWJlcjtcbiAgICBudW1lcm9UZXh0ZTogICAgICAgIHN0cmluZztcbiAgICBzb21tYWlyZTogICAgICAgICAgIFNvbW1haXJlRWxlbWVudFtdIHwgUHVycGxlU29tbWFpcmU7XG4gICAgY29udGVudTogICAgICAgICAgICBDb250ZW51O1xuICAgIHNpZ25hdGFpcmVzPzogICAgICAgU2lnbmF0YWlyZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnUge1xuICAgIGFydGljbGVzOiAgICAgQXJ0aWNsZVtdO1xuICAgIGV4cG9zZU1vdGlmczogRXhwb3NlTW90aWZzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGUge1xuICAgIG51bWVyb0FydGljbGU6ICBudW1iZXI7XG4gICAgbnVtZXJvQXJ0aWNsZXM6IGFueVtdO1xuICAgIGNhcmRpbmFsOiAgICAgICBDYXJkaW5hbDtcbiAgICBwYXJlbnQ6ICAgICAgICAgc3RyaW5nO1xuICAgIG5vdXZlYXU6ICAgICAgICBib29sZWFuO1xuICAgIHRpdHJlOiAgICAgICAgICBzdHJpbmc7XG4gICAgYWxpbmVhczogICAgICAgIEFsaW5lYVtdO1xuICAgIHRleHRlOiAgICAgICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxpbmVhIHtcbiAgICBudW1lcm9BbGluZWE6IG51bWJlcjtcbiAgICB0ZXh0ZTogICAgICAgIHN0cmluZztcbiAgICBkZWJ1dD86ICAgICAgIHN0cmluZztcbiAgICBmaW4/OiAgICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gQ2FyZGluYWwge1xuICAgIEEgPSBcIkFcIixcbiAgICBCID0gXCJCXCIsXG4gICAgQmlzID0gXCJiaXNcIixcbiAgICBCaXNBID0gXCJiaXMgQVwiLFxuICAgIEMgPSBcIkNcIixcbiAgICBDYXJkaW5hbE5vdXZlYXUgPSBcIihub3V2ZWF1KVwiLFxuICAgIEVtcHR5ID0gXCJcIixcbiAgICBFciA9IFwiZXJcIixcbiAgICBOb3V2ZWF1ID0gXCJub3V2ZWF1XCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3NlTW90aWZzIHtcbiAgICB0ZXh0ZTogICAgIHN0cmluZztcbiAgICBjaXRhdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gT3JnYW5lIHtcbiAgICBBc3NlbWJsw6llTmF0aW9uYWxlID0gXCJBc3NlbWJsw6llIE5hdGlvbmFsZVwiLFxuICAgIE9yZ2FuZUFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIkFTU0VNQkzDiUUgTkFUSU9OQUxFXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwcmVzZW50YW50cyB7XG4gICAgcGFyOiBTaWduYXRhaXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0YWlyZSB7XG4gICAgbm9tOiAgICAgIHN0cmluZztcbiAgICBmb25jdGlvbjogRm9uY3Rpb247XG59XG5cbmV4cG9ydCBlbnVtIEZvbmN0aW9uIHtcbiAgICBEw6lwdXTDqSA9IFwiRMOpcHV0w6lcIixcbiAgICBEw6lwdXTDqWUgPSBcIkTDqXB1dMOpZVwiLFxuICAgIEVtcHR5ID0gXCJcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb21tYWlyZUVsZW1lbnQge1xuICAgIHR5cGVEaXZpc2lvbjogICBUeXBlRGl2aXNpb247XG4gICAgbnVtZXJvRGl2aXNpb246IHN0cmluZztcbiAgICBzZXF1ZW5jZTogICAgICAgbnVtYmVyO1xuICAgIHRpdHJlOiAgICAgICAgICBzdHJpbmc7XG4gICAgcGFyZW50PzogICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVHlwZURpdmlzaW9uIHtcbiAgICBDaGFwaXRyZSA9IFwiQ2hhcGl0cmVcIixcbiAgICBUaXRyZSA9IFwiVGl0cmVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXJwbGVTb21tYWlyZSB7XG4gICAgc29tbWFpcmU6IGFueVtdO1xufVxuXG5leHBvcnQgZW51bSBUeXBlVGV4dGUge1xuICAgIE1vdGlvbkRlQ2Vuc3VyZSA9IFwiTW90aW9uIGRlIGNlbnN1cmVcIixcbiAgICBQcm9wb3NpdGlvbkRlTG9pID0gXCJQcm9wb3NpdGlvbiBkZSBsb2lcIixcbiAgICBQcm9wb3NpdGlvbkRlTG9pQ29uc3RpdHV0aW9ubmVsbGUgPSBcIlBST1BPU0lUSU9OIERFIExPSSBDT05TVElUVVRJT05ORUxMRVwiLFxuICAgIFByb3Bvc2l0aW9uRGVMb2lPcmdhbmlxdWUgPSBcIlBST1BPU0lUSU9OIERFIExPSSBPUkdBTklRVUVcIixcbiAgICBUeXBlVGV4dGVNb3Rpb25EZUNlbnN1cmUgPSBcIk1PVElPTiBERSBDRU5TVVJFXCIsXG4gICAgVHlwZVRleHRlUHJvcG9zaXRpb25EZUxvaSA9IFwiUFJPUE9TSVRJT04gREUgTE9JXCIsXG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICAgIHB1YmxpYyBzdGF0aWMgdG9UZXh0ZXNMb2koanNvbjogc3RyaW5nKTogVGV4dGVzTG9pIHtcbiAgICAgICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlRleHRlc0xvaVwiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0ZXh0ZXNMb2lUb0pzb24odmFsdWU6IFRleHRlc0xvaSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJUZXh0ZXNMb2lcIikpLCBudWxsLCAyKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGludmFsaWRWYWx1ZSh0eXA6IGFueSwgdmFsOiBhbnksIGtleTogYW55LCBwYXJlbnQ6IGFueSA9ICcnKTogbmV2ZXIge1xuICAgIGNvbnN0IHByZXR0eVR5cCA9IHByZXR0eVR5cGVOYW1lKHR5cCk7XG4gICAgY29uc3QgcGFyZW50VGV4dCA9IHBhcmVudCA/IGAgb24gJHtwYXJlbnR9YCA6ICcnO1xuICAgIGNvbnN0IGtleVRleHQgPSBrZXkgPyBgIGZvciBrZXkgXCIke2tleX1cImAgOiAnJztcbiAgICB0aHJvdyBFcnJvcihgSW52YWxpZCB2YWx1ZSR7a2V5VGV4dH0ke3BhcmVudFRleHR9LiBFeHBlY3RlZCAke3ByZXR0eVR5cH0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCk7XG59XG5cbmZ1bmN0aW9uIHByZXR0eVR5cGVOYW1lKHR5cDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0eXApKSB7XG4gICAgICAgIGlmICh0eXAubGVuZ3RoID09PSAyICYmIHR5cFswXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYGFuIG9wdGlvbmFsICR7cHJldHR5VHlwZU5hbWUodHlwWzFdKX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGBvbmUgb2YgWyR7dHlwLm1hcChhID0+IHsgcmV0dXJuIHByZXR0eVR5cGVOYW1lKGEpOyB9KS5qb2luKFwiLCBcIil9XWA7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLmxpdGVyYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdHlwLmxpdGVyYWw7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0eXA7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzb25Ub0pTID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbWFwOiBhbnkgPSB7fTtcbiAgICAgICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gbWFwW3AuanNvbl0gPSB7IGtleTogcC5qcywgdHlwOiBwLnR5cCB9KTtcbiAgICAgICAgdHlwLmpzb25Ub0pTID0gbWFwO1xuICAgIH1cbiAgICByZXR1cm4gdHlwLmpzb25Ub0pTO1xufVxuXG5mdW5jdGlvbiBqc1RvSlNPTlByb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzVG9KU09OID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbWFwOiBhbnkgPSB7fTtcbiAgICAgICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gbWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KTtcbiAgICAgICAgdHlwLmpzVG9KU09OID0gbWFwO1xuICAgIH1cbiAgICByZXR1cm4gdHlwLmpzVG9KU09OO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm0odmFsOiBhbnksIHR5cDogYW55LCBnZXRQcm9wczogYW55LCBrZXk6IGFueSA9ICcnLCBwYXJlbnQ6IGFueSA9ICcnKTogYW55IHtcbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwOiBzdHJpbmcsIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0eXAgPT09IHR5cGVvZiB2YWwpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1Vbmlvbih0eXBzOiBhbnlbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgICAgICBjb25zdCBsID0gdHlwcy5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0eXAgPSB0eXBzW2ldO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcyk7XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKGNhc2VzLmluZGV4T2YodmFsKSAhPT0gLTEpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMubWFwKGEgPT4geyByZXR1cm4gbChhKTsgfSksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIC8vIHZhbCBtdXN0IGJlIGFuIGFycmF5IHdpdGggbm8gaW52YWxpZCBlbGVtZW50c1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGludmFsaWRWYWx1ZShsKFwiYXJyYXlcIiksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgICAgICByZXR1cm4gdmFsLm1hcChlbCA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRlKHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbCk7XG4gICAgICAgIGlmIChpc05hTihkLnZhbHVlT2YoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUobChcIkRhdGVcIiksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybU9iamVjdChwcm9wczogeyBbazogc3RyaW5nXTogYW55IH0sIGFkZGl0aW9uYWw6IGFueSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKGwocmVmIHx8IFwib2JqZWN0XCIpLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwcm9wcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IHByb3BzW2tleV07XG4gICAgICAgICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KSA/IHZhbFtrZXldIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmVzdWx0W3Byb3Aua2V5XSA9IHRyYW5zZm9ybSh2LCBwcm9wLnR5cCwgZ2V0UHJvcHMsIGtleSwgcmVmKTtcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybSh2YWxba2V5XSwgYWRkaXRpb25hbCwgZ2V0UHJvcHMsIGtleSwgcmVmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cCA9PT0gXCJhbnlcIikgcmV0dXJuIHZhbDtcbiAgICBpZiAodHlwID09PSBudWxsKSB7XG4gICAgICAgIGlmICh2YWwgPT09IG51bGwpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG4gICAgaWYgKHR5cCA9PT0gZmFsc2UpIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICBsZXQgcmVmOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlZiA9IHR5cC5yZWY7XG4gICAgICAgIHR5cCA9IHR5cGVNYXBbdHlwLnJlZl07XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKTtcbiAgICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gdHlwLmhhc093blByb3BlcnR5KFwidW5pb25NZW1iZXJzXCIpID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgICAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwicHJvcHNcIikgICAgICAgICA/IHRyYW5zZm9ybU9iamVjdChnZXRQcm9wcyh0eXApLCB0eXAuYWRkaXRpb25hbCwgdmFsKVxuICAgICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG4gICAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgICBpZiAodHlwID09PSBEYXRlICYmIHR5cGVvZiB2YWwgIT09IFwibnVtYmVyXCIpIHJldHVybiB0cmFuc2Zvcm1EYXRlKHZhbCk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXAsIHZhbCk7XG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNvblRvSlNQcm9wcyk7XG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc1RvSlNPTlByb3BzKTtcbn1cblxuZnVuY3Rpb24gbCh0eXA6IGFueSkge1xuICAgIHJldHVybiB7IGxpdGVyYWw6IHR5cCB9O1xufVxuXG5mdW5jdGlvbiBhKHR5cDogYW55KSB7XG4gICAgcmV0dXJuIHsgYXJyYXlJdGVtczogdHlwIH07XG59XG5cbmZ1bmN0aW9uIHUoLi4udHlwczogYW55W10pIHtcbiAgICByZXR1cm4geyB1bmlvbk1lbWJlcnM6IHR5cHMgfTtcbn1cblxuZnVuY3Rpb24gbyhwcm9wczogYW55W10sIGFkZGl0aW9uYWw6IGFueSkge1xuICAgIHJldHVybiB7IHByb3BzLCBhZGRpdGlvbmFsIH07XG59XG5cbmZ1bmN0aW9uIHIobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHsgcmVmOiBuYW1lIH07XG59XG5cbmNvbnN0IHR5cGVNYXA6IGFueSA9IHtcbiAgICBcIlRleHRlc0xvaVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImRvY3VtZW50UmVmXCIsIGpzOiBcImRvY3VtZW50UmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJvcmdhbmVcIiwganM6IFwib3JnYW5lXCIsIHR5cDogcihcIk9yZ2FuZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwidHlwZVRleHRlXCIsIGpzOiBcInR5cGVUZXh0ZVwiLCB0eXA6IHIoXCJUeXBlVGV4dGVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNvbW1pc3Npb25cIiwganM6IFwiY29tbWlzc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInByb2NlZHVyZUFjY2VsZXJlZVwiLCBqczogXCJwcm9jZWR1cmVBY2NlbGVyZWVcIiwgdHlwOiB0cnVlIH0sXG4gICAgICAgIHsganNvbjogXCJyZXByZXNlbnRhbnRzXCIsIGpzOiBcInJlcHJlc2VudGFudHNcIiwgdHlwOiByKFwiUmVwcmVzZW50YW50c1wiKSB9LFxuICAgICAgICB7IGpzb246IFwiZGF0ZUNvbnN0aXR1dGlvblwiLCBqczogXCJkYXRlQ29uc3RpdHV0aW9uXCIsIHR5cDogRGF0ZSB9LFxuICAgICAgICB7IGpzb246IFwiZGF0ZURlcG90QXNzZW1ibGVlXCIsIGpzOiBcImRhdGVEZXBvdEFzc2VtYmxlZVwiLCB0eXA6IERhdGUgfSxcbiAgICAgICAgeyBqc29uOiBcIm51bWVyb0xlZ2lzbGF0dXJlXCIsIGpzOiBcIm51bWVyb0xlZ2lzbGF0dXJlXCIsIHR5cDogMCB9LFxuICAgICAgICB7IGpzb246IFwibnVtZXJvVGV4dGVcIiwganM6IFwibnVtZXJvVGV4dGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZVwiLCBqczogXCJzb21tYWlyZVwiLCB0eXA6IHUoYShyKFwiU29tbWFpcmVFbGVtZW50XCIpKSwgcihcIlB1cnBsZVNvbW1haXJlXCIpKSB9LFxuICAgICAgICB7IGpzb246IFwiY29udGVudVwiLCBqczogXCJjb250ZW51XCIsIHR5cDogcihcIkNvbnRlbnVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNpZ25hdGFpcmVzXCIsIGpzOiBcInNpZ25hdGFpcmVzXCIsIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlNpZ25hdGFpcmVcIikpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbnRlbnVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJhcnRpY2xlc1wiLCBqczogXCJhcnRpY2xlc1wiLCB0eXA6IGEocihcIkFydGljbGVcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJleHBvc2VNb3RpZnNcIiwganM6IFwiZXhwb3NlTW90aWZzXCIsIHR5cDogcihcIkV4cG9zZU1vdGlmc1wiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkFydGljbGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJudW1lcm9BcnRpY2xlXCIsIGpzOiBcIm51bWVyb0FydGljbGVcIiwgdHlwOiAwIH0sXG4gICAgICAgIHsganNvbjogXCJudW1lcm9BcnRpY2xlc1wiLCBqczogXCJudW1lcm9BcnRpY2xlc1wiLCB0eXA6IGEoXCJhbnlcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNhcmRpbmFsXCIsIGpzOiBcImNhcmRpbmFsXCIsIHR5cDogcihcIkNhcmRpbmFsXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJlbnRcIiwganM6IFwicGFyZW50XCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibm91dmVhdVwiLCBqczogXCJub3V2ZWF1XCIsIHR5cDogdHJ1ZSB9LFxuICAgICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJhbGluZWFzXCIsIGpzOiBcImFsaW5lYXNcIiwgdHlwOiBhKHIoXCJBbGluZWFcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJ0ZXh0ZVwiLCBqczogXCJ0ZXh0ZVwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJBbGluZWFcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJudW1lcm9BbGluZWFcIiwganM6IFwibnVtZXJvQWxpbmVhXCIsIHR5cDogMCB9LFxuICAgICAgICB7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJkZWJ1dFwiLCBqczogXCJkZWJ1dFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiZmluXCIsIGpzOiBcImZpblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkV4cG9zZU1vdGlmc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiY2l0YXRpb25cIiwganM6IFwiY2l0YXRpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJSZXByZXNlbnRhbnRzXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicGFyXCIsIGpzOiBcInBhclwiLCB0eXA6IGEocihcIlNpZ25hdGFpcmVcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU2lnbmF0YWlyZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5vbVwiLCBqczogXCJub21cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJmb25jdGlvblwiLCBqczogXCJmb25jdGlvblwiLCB0eXA6IHIoXCJGb25jdGlvblwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlNvbW1haXJlRWxlbWVudFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInR5cGVEaXZpc2lvblwiLCBqczogXCJ0eXBlRGl2aXNpb25cIiwgdHlwOiByKFwiVHlwZURpdmlzaW9uXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJudW1lcm9EaXZpc2lvblwiLCBqczogXCJudW1lcm9EaXZpc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInNlcXVlbmNlXCIsIGpzOiBcInNlcXVlbmNlXCIsIHR5cDogMCB9LFxuICAgICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJlbnRcIiwganM6IFwicGFyZW50XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUHVycGxlU29tbWFpcmVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZVwiLCBqczogXCJzb21tYWlyZVwiLCB0eXA6IGEoXCJhbnlcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJDYXJkaW5hbFwiOiBbXG4gICAgICAgIFwiQVwiLFxuICAgICAgICBcIkJcIixcbiAgICAgICAgXCJiaXNcIixcbiAgICAgICAgXCJiaXMgQVwiLFxuICAgICAgICBcIkNcIixcbiAgICAgICAgXCIobm91dmVhdSlcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJlclwiLFxuICAgICAgICBcIm5vdXZlYXVcIixcbiAgICBdLFxuICAgIFwiT3JnYW5lXCI6IFtcbiAgICAgICAgXCJBc3NlbWJsw6llIE5hdGlvbmFsZVwiLFxuICAgICAgICBcIkFTU0VNQkzDiUUgTkFUSU9OQUxFXCIsXG4gICAgXSxcbiAgICBcIkZvbmN0aW9uXCI6IFtcbiAgICAgICAgXCJEw6lwdXTDqVwiLFxuICAgICAgICBcIkTDqXB1dMOpZVwiLFxuICAgICAgICBcIlwiLFxuICAgIF0sXG4gICAgXCJUeXBlRGl2aXNpb25cIjogW1xuICAgICAgICBcIkNoYXBpdHJlXCIsXG4gICAgICAgIFwiVGl0cmVcIixcbiAgICBdLFxuICAgIFwiVHlwZVRleHRlXCI6IFtcbiAgICAgICAgXCJNb3Rpb24gZGUgY2Vuc3VyZVwiLFxuICAgICAgICBcIlByb3Bvc2l0aW9uIGRlIGxvaVwiLFxuICAgICAgICBcIlBST1BPU0lUSU9OIERFIExPSSBDT05TVElUVVRJT05ORUxMRVwiLFxuICAgICAgICBcIlBST1BPU0lUSU9OIERFIExPSSBPUkdBTklRVUVcIixcbiAgICAgICAgXCJNT1RJT04gREUgQ0VOU1VSRVwiLFxuICAgICAgICBcIlBST1BPU0lUSU9OIERFIExPSVwiLFxuICAgIF0sXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQTBDQSxXQUFZQSxRQUFRLDBCQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQUEsT0FBUkEsUUFBUTtBQUFBO0FBaUJwQixXQUFZQyxNQUFNLDBCQUFOQSxNQUFNO0VBQU5BLE1BQU07RUFBTkEsTUFBTTtFQUFBLE9BQU5BLE1BQU07QUFBQTtBQWNsQixXQUFZQyxRQUFRLDBCQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQUEsT0FBUkEsUUFBUTtBQUFBO0FBY3BCLFdBQVlDLFlBQVksMEJBQVpBLFlBQVk7RUFBWkEsWUFBWTtFQUFaQSxZQUFZO0VBQUEsT0FBWkEsWUFBWTtBQUFBO0FBU3hCLFdBQVlDLFNBQVMsMEJBQVRBLFNBQVM7RUFB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
|