@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.
- package/README.md +8 -1
- package/lib/amendements-79bwpkvR.js +154 -0
- package/lib/amendements-CV3s5a0M.js +667 -0
- package/lib/cleaners/index.d.ts +9 -9
- package/lib/cleaners.js +564 -0
- package/lib/datasets.d.ts +3 -3
- package/lib/dossiers_legislatifs.d.ts +2 -2
- package/lib/index.d.ts +17 -22
- package/lib/index.js +1542 -314
- package/lib/inserters.d.ts +5 -5
- package/lib/loaders-9mHdTl9L.js +4158 -0
- package/lib/loaders.d.ts +12 -12
- package/lib/loaders.js +29 -1689
- package/lib/organes.d.ts +1 -1
- package/lib/parse-Ccs6wcUg.js +2512 -0
- package/lib/parsers/index.d.ts +2 -3
- package/lib/parsers/plf.d.ts +1 -0
- package/lib/parsers/recherche_amendements.d.ts +2 -2
- package/lib/parsers/textes_lois.d.ts +1 -23
- package/lib/parsers.js +398 -0
- package/lib/raw_types/debats.d.ts +2 -2
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
- package/lib/schemas/acteurs_et_organes.json +1166 -0
- package/lib/schemas/agendas.json +1745 -0
- package/lib/schemas/amendements.json +2085 -0
- package/lib/schemas/debats.json +842 -0
- package/lib/schemas/dossiers_legislatifs.json +3874 -0
- package/lib/schemas/legislatures.json +17 -0
- package/lib/schemas/questions.json +704 -0
- package/lib/schemas/scrutins.json +701 -0
- package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
- package/lib/types/acteurs_et_organes.d.ts +340 -0
- package/lib/types/agendas.d.ts +236 -10
- package/lib/types/amendements.d.ts +276 -1
- package/lib/types/debats.d.ts +52 -2
- package/lib/types/dossiers_legislatifs.d.ts +403 -9
- package/lib/types/questions.d.ts +99 -2
- package/lib/types/scrutins.d.ts +101 -0
- package/lib/urls.d.ts +2 -2
- package/package.json +32 -94
- package/lib/api.js +0 -52
- package/lib/api.mjs +0 -45
- package/lib/bugs/acteur-00010/plugin.test.js +0 -90
- package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
- package/lib/bugs/acteur-00010.d.ts +0 -7
- package/lib/bugs/acteur-00010.js +0 -116
- package/lib/bugs/acteur-00010.mjs +0 -26
- package/lib/bugs/agenda-00002/plugin.test.js +0 -124
- package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
- package/lib/bugs/agenda-00002.d.ts +0 -15
- package/lib/bugs/agenda-00002.js +0 -406
- package/lib/bugs/agenda-00002.mjs +0 -172
- package/lib/bugs/agenda-00008/plugin.test.js +0 -92
- package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
- package/lib/bugs/agenda-00008.d.ts +0 -7
- package/lib/bugs/agenda-00008.js +0 -123
- package/lib/bugs/agenda-00008.mjs +0 -26
- package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
- package/lib/bugs/agenda-00011/plugin.test.js +0 -263
- package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
- package/lib/bugs/agenda-00011.d.ts +0 -16
- package/lib/bugs/agenda-00011.js +0 -333
- package/lib/bugs/agenda-00011.mjs +0 -125
- package/lib/bugs.d.ts +0 -21
- package/lib/bugs.js +0 -452
- package/lib/bugs.mjs +0 -70
- package/lib/cleaners/actes_legislatifs.js +0 -315
- package/lib/cleaners/actes_legislatifs.mjs +0 -253
- package/lib/cleaners/acteurs.js +0 -265
- package/lib/cleaners/acteurs.mjs +0 -180
- package/lib/cleaners/amendements.js +0 -294
- package/lib/cleaners/amendements.mjs +0 -227
- package/lib/cleaners/debats.js +0 -12
- package/lib/cleaners/debats.mjs +0 -5
- package/lib/cleaners/documents.js +0 -205
- package/lib/cleaners/documents.mjs +0 -133
- package/lib/cleaners/dossiers_legislatifs.js +0 -131
- package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
- package/lib/cleaners/index.js +0 -70
- package/lib/cleaners/index.mjs +0 -10
- package/lib/cleaners/organes.js +0 -65
- package/lib/cleaners/organes.mjs +0 -48
- package/lib/cleaners/questions.js +0 -12
- package/lib/cleaners/questions.mjs +0 -5
- package/lib/cleaners/reunions.js +0 -312
- package/lib/cleaners/reunions.mjs +0 -255
- package/lib/cleaners/scrutins.js +0 -340
- package/lib/cleaners/scrutins.mjs +0 -221
- package/lib/cleaners/xml.js +0 -74
- package/lib/cleaners/xml.mjs +0 -59
- package/lib/datasets.js +0 -837
- package/lib/datasets.mjs +0 -755
- package/lib/dates.js +0 -124
- package/lib/dates.mjs +0 -100
- package/lib/dossiers_legislatifs.js +0 -346
- package/lib/dossiers_legislatifs.mjs +0 -208
- package/lib/file_systems.js +0 -162
- package/lib/file_systems.mjs +0 -62
- package/lib/git.js +0 -223
- package/lib/git.mjs +0 -151
- package/lib/index.mjs +0 -17
- package/lib/inserters.js +0 -521
- package/lib/inserters.mjs +0 -337
- package/lib/loaders.mjs +0 -886
- package/lib/logger.js +0 -35
- package/lib/logger.mjs +0 -26
- package/lib/organes.js +0 -22
- package/lib/organes.mjs +0 -15
- package/lib/parsers/documents.d.ts +0 -62
- package/lib/parsers/documents.js +0 -453
- package/lib/parsers/documents.mjs +0 -370
- package/lib/parsers/index.js +0 -40
- package/lib/parsers/index.mjs +0 -4
- package/lib/parsers/recherche_amendements.js +0 -403
- package/lib/parsers/recherche_amendements.mjs +0 -167
- package/lib/parsers/textes_lois.js +0 -307
- package/lib/parsers/textes_lois.mjs +0 -264
- package/lib/raw_types/acteurs_et_organes.js +0 -1215
- package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
- package/lib/raw_types/agendas.js +0 -777
- package/lib/raw_types/agendas.mjs +0 -724
- package/lib/raw_types/amendements.js +0 -1052
- package/lib/raw_types/amendements.mjs +0 -993
- package/lib/raw_types/debats.js +0 -630
- package/lib/raw_types/debats.mjs +0 -573
- package/lib/raw_types/dossiers_legislatifs.js +0 -1529
- package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
- package/lib/raw_types/questions.js +0 -469
- package/lib/raw_types/questions.mjs +0 -416
- package/lib/raw_types/scrutins.js +0 -651
- package/lib/raw_types/scrutins.mjs +0 -598
- package/lib/schemas/acteur/Acteur.json +0 -56
- package/lib/schemas/acteur/AdresseElectronique.json +0 -52
- package/lib/schemas/acteur/AdressePostale.json +0 -75
- package/lib/schemas/acteur/Civ.json +0 -14
- package/lib/schemas/acteur/Collaborateur.json +0 -29
- package/lib/schemas/acteur/EtatCivil.json +0 -51
- package/lib/schemas/acteur/Ident.json +0 -40
- package/lib/schemas/acteur/Lieu.json +0 -66
- package/lib/schemas/acteur/Mandat.json +0 -192
- package/lib/schemas/acteur/Profession.json +0 -46
- package/lib/schemas/agenda/Agenda.json +0 -318
- package/lib/schemas/agenda/CycleDeVie.json +0 -45
- package/lib/schemas/agenda/PointOdj.json +0 -82
- package/lib/schemas/amendement/Amendement.json +0 -246
- package/lib/schemas/amendement/Diff.json +0 -25
- package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
- package/lib/schemas/amendement/Identifiant.json +0 -62
- package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
- package/lib/schemas/amendement/Representation.json +0 -67
- package/lib/schemas/amendement/Total.json +0 -26
- package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
- package/lib/schemas/converted_from_type/agendas.json +0 -1100
- package/lib/schemas/converted_from_type/amendements.json +0 -3191
- package/lib/schemas/converted_from_type/debats.json +0 -682
- package/lib/schemas/converted_from_type/deputes.json +0 -26
- package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
- package/lib/schemas/converted_from_type/legislatures.json +0 -16
- package/lib/schemas/converted_from_type/questions.json +0 -328
- package/lib/schemas/converted_from_type/scrutins.json +0 -393
- package/lib/schemas/debat/Contenu.json +0 -75
- package/lib/schemas/debat/Debat.json +0 -40
- package/lib/schemas/debat/Metadonnees.json +0 -75
- package/lib/schemas/debat/Orateur.json +0 -60
- package/lib/schemas/debat/Point.json +0 -169
- package/lib/schemas/debat/Sommaire.json +0 -71
- package/lib/schemas/debat/SommaireElement.json +0 -108
- package/lib/schemas/debat/Texte.json +0 -34
- package/lib/schemas/document/CodeLibelle.json +0 -25
- package/lib/schemas/document/Document.json +0 -385
- package/lib/schemas/document/Indexation.json +0 -38
- package/lib/schemas/dossier/ActeLegislatif.json +0 -211
- package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
- package/lib/schemas/dossier/Agenda.json +0 -23
- package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
- package/lib/schemas/dossier/Decision.json +0 -25
- package/lib/schemas/dossier/Dossier.json +0 -124
- package/lib/schemas/dossier/EtudeImpact.json +0 -29
- package/lib/schemas/dossier/EtudePlf.json +0 -105
- package/lib/schemas/dossier/Europe.json +0 -42
- package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
- package/lib/schemas/dossier/InfoJO.json +0 -23
- package/lib/schemas/dossier/Initiateur.json +0 -36
- package/lib/schemas/dossier/Motion.json +0 -27
- package/lib/schemas/dossier/Promulgation.json +0 -62
- package/lib/schemas/dossier/Rapporteur.json +0 -36
- package/lib/schemas/dossier/Texte.json +0 -47
- package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
- package/lib/schemas/organe/Organe.json +0 -136
- package/lib/schemas/organe/ViMoDe.json +0 -28
- package/lib/schemas/question/Auteur.json +0 -58
- package/lib/schemas/question/Cloture.json +0 -28
- package/lib/schemas/question/InfoJO.json +0 -40
- package/lib/schemas/question/MinAttribElement.json +0 -30
- package/lib/schemas/question/Question.json +0 -172
- package/lib/schemas/question/Renouvellement.json +0 -17
- package/lib/schemas/question/Signalement.json +0 -21
- package/lib/schemas/question/Texte.json +0 -24
- package/lib/schemas/scrutin/DecompteVoix.json +0 -35
- package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
- package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
- package/lib/schemas/scrutin/OrganeVotant.json +0 -88
- package/lib/schemas/scrutin/Scrutin.json +0 -187
- package/lib/schemas/scrutin/Votant.json +0 -37
- package/lib/scripts/bugs_helper.d.ts +0 -13
- package/lib/scripts/bugs_helper.js +0 -595
- package/lib/scripts/bugs_helper.mjs +0 -251
- package/lib/scripts/clean_reorganized_data.js +0 -613
- package/lib/scripts/clean_reorganized_data.mjs +0 -276
- package/lib/scripts/diff_amendements.js +0 -249
- package/lib/scripts/diff_amendements.mjs +0 -202
- package/lib/scripts/document_dossiers_legislatifs.js +0 -655
- package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
- package/lib/scripts/get_today_reunions.js +0 -37
- package/lib/scripts/get_today_reunions.mjs +0 -31
- package/lib/scripts/merge_scrutins.js +0 -97
- package/lib/scripts/merge_scrutins.mjs +0 -47
- package/lib/scripts/parse_textes_lois.d.ts +0 -1
- package/lib/scripts/parse_textes_lois.js +0 -171
- package/lib/scripts/parse_textes_lois.mjs +0 -140
- package/lib/scripts/process_open_dataset.js +0 -301
- package/lib/scripts/process_open_dataset.mjs +0 -134
- package/lib/scripts/raw_types_from_amendements.js +0 -135
- package/lib/scripts/raw_types_from_amendements.mjs +0 -134
- package/lib/scripts/reorganize_data.js +0 -805
- package/lib/scripts/reorganize_data.mjs +0 -517
- package/lib/scripts/retrieve_deputes_photos.js +0 -310
- package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
- package/lib/scripts/retrieve_documents.js +0 -547
- package/lib/scripts/retrieve_documents.mjs +0 -242
- package/lib/scripts/retrieve_open_data.js +0 -107
- package/lib/scripts/retrieve_open_data.mjs +0 -26
- package/lib/scripts/retrieve_pending_amendments.js +0 -206
- package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
- package/lib/scripts/retrieve_senateurs_photos.js +0 -234
- package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
- package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois.js +0 -240
- package/lib/scripts/retrieve_textes_lois.mjs +0 -85
- package/lib/scripts/shared/cli_helpers.js +0 -89
- package/lib/scripts/shared/cli_helpers.mjs +0 -81
- package/lib/scripts/test_iter_load.js +0 -155
- package/lib/scripts/test_iter_load.mjs +0 -72
- package/lib/scripts/test_load.js +0 -26
- package/lib/scripts/test_load.mjs +0 -16
- package/lib/scripts/test_load_big_files.js +0 -26
- package/lib/scripts/test_load_big_files.mjs +0 -16
- package/lib/scripts/validate_json.js +0 -353
- package/lib/scripts/validate_json.mjs +0 -184
- package/lib/shared_types/codes_actes.js +0 -231
- package/lib/shared_types/codes_actes.mjs +0 -224
- package/lib/strings.js +0 -16
- package/lib/strings.mjs +0 -7
- package/lib/types/acteurs_et_organes.js +0 -965
- package/lib/types/acteurs_et_organes.mjs +0 -906
- package/lib/types/agendas.js +0 -628
- package/lib/types/agendas.mjs +0 -575
- package/lib/types/amendements.js +0 -899
- package/lib/types/amendements.mjs +0 -842
- package/lib/types/debats.js +0 -619
- package/lib/types/debats.mjs +0 -562
- package/lib/types/dossiers_legislatifs.js +0 -1188
- package/lib/types/dossiers_legislatifs.mjs +0 -1130
- package/lib/types/legislatures.js +0 -17
- package/lib/types/legislatures.mjs +0 -10
- package/lib/types/questions.js +0 -454
- package/lib/types/questions.mjs +0 -401
- package/lib/types/scrutins.js +0 -556
- package/lib/types/scrutins.mjs +0 -503
- package/lib/urls.js +0 -325
- package/lib/urls.mjs +0 -258
- /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
- /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
- /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
package/lib/raw_types/debats.mjs
DELETED
|
@@ -1,573 +0,0 @@
|
|
|
1
|
-
// To parse this data:
|
|
2
|
-
//
|
|
3
|
-
// import { Convert, ComptesRendus, CompteRenduWrapper } from "./file";
|
|
4
|
-
//
|
|
5
|
-
// const compteRendu = Convert.toCompteRendu(json);
|
|
6
|
-
// const compteRenduWrapper = Convert.toCompteRenduWrapper(json);
|
|
7
|
-
//
|
|
8
|
-
// These functions will throw an error if the JSON doesn't
|
|
9
|
-
// match the expected interface, even if the JSON is valid.
|
|
10
|
-
|
|
11
|
-
export let Decision = /*#__PURE__*/function (Decision) {
|
|
12
|
-
Decision["AdoptionAmendementMainLev\xE9eAdt"] = "ADOPTION amendement (main lev\xE9e) adt";
|
|
13
|
-
Decision["AdoptionDUnArticleVote\xC0MainLev\xE9e"] = "ADOPTION d\u2019un article (vote \xE0 main lev\xE9e)";
|
|
14
|
-
Decision["AdoptionDUnSousAmendementMainLev\xE9eSsAdt"] = "ADOPTION d\u2019un sous-amendement (main lev\xE9e) ss-adt";
|
|
15
|
-
Decision["AdoptionDePlusieursAmendementsMainLev\xE9eAdts"] = "ADOPTION de plusieurs amendements (main lev\xE9e) adts";
|
|
16
|
-
Decision["AdoptionDePlusieursSousAmendementsMainLev\xE9eSsAdts"] = "ADOPTION de plusieurs sous-amendements (main lev\xE9e) ss-adts";
|
|
17
|
-
Decision["Empty"] = "";
|
|
18
|
-
Decision["RejetDUnAmendementMainLev\xE9eAdt"] = "REJET d\u2019un amendement (main lev\xE9e) adt";
|
|
19
|
-
Decision["RejetDUnArticleVote\xC0MainLev\xE9e"] = "REJET d\u2019un article (vote \xE0 main lev\xE9e)";
|
|
20
|
-
Decision["RejetDUnSousAmendementMainLev\xE9eSsAdt"] = "REJET d\u2019un sous-amendement (main lev\xE9e) ss-adt";
|
|
21
|
-
Decision["RejetDePlusieursAmendementsMainLev\xE9eAdts"] = "REJET de plusieurs amendements (main lev\xE9e) adts";
|
|
22
|
-
Decision["RejetDePlusieursSousAmendementsMainLev\xE9eSsAdts"] = "REJET de plusieurs sous-amendements (main lev\xE9e) ss-adts";
|
|
23
|
-
Decision["RejetMotionDeRejetPr\xE9alableMainLev\xE9e"] = "REJET motion de rejet pr\xE9alable (main lev\xE9e)";
|
|
24
|
-
return Decision;
|
|
25
|
-
}({});
|
|
26
|
-
// Converts JSON strings to/from your types
|
|
27
|
-
// and asserts the results of JSON.parse at runtime
|
|
28
|
-
export class Convert {
|
|
29
|
-
static toComptesRendus(json) {
|
|
30
|
-
return cast(JSON.parse(json), r("ComptesRendus"));
|
|
31
|
-
}
|
|
32
|
-
static comptesRendusToJson(value) {
|
|
33
|
-
return JSON.stringify(uncast(value, r("ComptesRendus")), null, 2);
|
|
34
|
-
}
|
|
35
|
-
static toCompteRenduWrapper(json) {
|
|
36
|
-
return cast(JSON.parse(json), r("CompteRenduWrapper"));
|
|
37
|
-
}
|
|
38
|
-
static compteRenduWrapperToJson(value) {
|
|
39
|
-
return JSON.stringify(uncast(value, r("CompteRenduWrapper")), null, 2);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
function invalidValue(typ, val, key, parent = '') {
|
|
43
|
-
const prettyTyp = prettyTypeName(typ);
|
|
44
|
-
const parentText = parent ? ` on ${parent}` : '';
|
|
45
|
-
const keyText = key ? ` for key "${key}"` : '';
|
|
46
|
-
throw Error(`Invalid value${keyText}${parentText}. Expected ${prettyTyp} but got ${JSON.stringify(val)}`);
|
|
47
|
-
}
|
|
48
|
-
function prettyTypeName(typ) {
|
|
49
|
-
if (Array.isArray(typ)) {
|
|
50
|
-
if (typ.length === 2 && typ[0] === undefined) {
|
|
51
|
-
return `an optional ${prettyTypeName(typ[1])}`;
|
|
52
|
-
} else {
|
|
53
|
-
return `one of [${typ.map(a => {
|
|
54
|
-
return prettyTypeName(a);
|
|
55
|
-
}).join(", ")}]`;
|
|
56
|
-
}
|
|
57
|
-
} else if (typeof typ === "object" && typ.literal !== undefined) {
|
|
58
|
-
return typ.literal;
|
|
59
|
-
} else {
|
|
60
|
-
return typeof typ;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
function jsonToJSProps(typ) {
|
|
64
|
-
if (typ.jsonToJS === undefined) {
|
|
65
|
-
const map = {};
|
|
66
|
-
typ.props.forEach(p => map[p.json] = {
|
|
67
|
-
key: p.js,
|
|
68
|
-
typ: p.typ
|
|
69
|
-
});
|
|
70
|
-
typ.jsonToJS = map;
|
|
71
|
-
}
|
|
72
|
-
return typ.jsonToJS;
|
|
73
|
-
}
|
|
74
|
-
function jsToJSONProps(typ) {
|
|
75
|
-
if (typ.jsToJSON === undefined) {
|
|
76
|
-
const map = {};
|
|
77
|
-
typ.props.forEach(p => map[p.js] = {
|
|
78
|
-
key: p.json,
|
|
79
|
-
typ: p.typ
|
|
80
|
-
});
|
|
81
|
-
typ.jsToJSON = map;
|
|
82
|
-
}
|
|
83
|
-
return typ.jsToJSON;
|
|
84
|
-
}
|
|
85
|
-
function transform(val, typ, getProps, key = '', parent = '') {
|
|
86
|
-
function transformPrimitive(typ, val) {
|
|
87
|
-
if (typeof typ === typeof val) return val;
|
|
88
|
-
return invalidValue(typ, val, key, parent);
|
|
89
|
-
}
|
|
90
|
-
function transformUnion(typs, val) {
|
|
91
|
-
// val must validate against one typ in typs
|
|
92
|
-
const l = typs.length;
|
|
93
|
-
for (let i = 0; i < l; i++) {
|
|
94
|
-
const typ = typs[i];
|
|
95
|
-
try {
|
|
96
|
-
return transform(val, typ, getProps);
|
|
97
|
-
} catch (_) {}
|
|
98
|
-
}
|
|
99
|
-
return invalidValue(typs, val, key, parent);
|
|
100
|
-
}
|
|
101
|
-
function transformEnum(cases, val) {
|
|
102
|
-
if (cases.indexOf(val) !== -1) return val;
|
|
103
|
-
return invalidValue(cases.map(a => {
|
|
104
|
-
return l(a);
|
|
105
|
-
}), val, key, parent);
|
|
106
|
-
}
|
|
107
|
-
function transformArray(typ, val) {
|
|
108
|
-
// val must be an array with no invalid elements
|
|
109
|
-
if (!Array.isArray(val)) return invalidValue(l("array"), val, key, parent);
|
|
110
|
-
return val.map(el => transform(el, typ, getProps));
|
|
111
|
-
}
|
|
112
|
-
function transformDate(val) {
|
|
113
|
-
if (val === null) {
|
|
114
|
-
return null;
|
|
115
|
-
}
|
|
116
|
-
const d = new Date(val);
|
|
117
|
-
if (isNaN(d.valueOf())) {
|
|
118
|
-
return invalidValue(l("Date"), val, key, parent);
|
|
119
|
-
}
|
|
120
|
-
return d;
|
|
121
|
-
}
|
|
122
|
-
function transformObject(props, additional, val) {
|
|
123
|
-
if (val === null || typeof val !== "object" || Array.isArray(val)) {
|
|
124
|
-
return invalidValue(l(ref || "object"), val, key, parent);
|
|
125
|
-
}
|
|
126
|
-
const result = {};
|
|
127
|
-
Object.getOwnPropertyNames(props).forEach(key => {
|
|
128
|
-
const prop = props[key];
|
|
129
|
-
const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
|
|
130
|
-
result[prop.key] = transform(v, prop.typ, getProps, key, ref);
|
|
131
|
-
});
|
|
132
|
-
Object.getOwnPropertyNames(val).forEach(key => {
|
|
133
|
-
if (!Object.prototype.hasOwnProperty.call(props, key)) {
|
|
134
|
-
result[key] = transform(val[key], additional, getProps, key, ref);
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
return result;
|
|
138
|
-
}
|
|
139
|
-
if (typ === "any") return val;
|
|
140
|
-
if (typ === null) {
|
|
141
|
-
if (val === null) return val;
|
|
142
|
-
return invalidValue(typ, val, key, parent);
|
|
143
|
-
}
|
|
144
|
-
if (typ === false) return invalidValue(typ, val, key, parent);
|
|
145
|
-
let ref = undefined;
|
|
146
|
-
while (typeof typ === "object" && typ.ref !== undefined) {
|
|
147
|
-
ref = typ.ref;
|
|
148
|
-
typ = typeMap[typ.ref];
|
|
149
|
-
}
|
|
150
|
-
if (Array.isArray(typ)) return transformEnum(typ, val);
|
|
151
|
-
if (typeof typ === "object") {
|
|
152
|
-
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);
|
|
153
|
-
}
|
|
154
|
-
// Numbers can be parsed by Date but shouldn't be.
|
|
155
|
-
if (typ === Date && typeof val !== "number") return transformDate(val);
|
|
156
|
-
return transformPrimitive(typ, val);
|
|
157
|
-
}
|
|
158
|
-
function cast(val, typ) {
|
|
159
|
-
return transform(val, typ, jsonToJSProps);
|
|
160
|
-
}
|
|
161
|
-
function uncast(val, typ) {
|
|
162
|
-
return transform(val, typ, jsToJSONProps);
|
|
163
|
-
}
|
|
164
|
-
function l(typ) {
|
|
165
|
-
return {
|
|
166
|
-
literal: typ
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
function a(typ) {
|
|
170
|
-
return {
|
|
171
|
-
arrayItems: typ
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
function u(...typs) {
|
|
175
|
-
return {
|
|
176
|
-
unionMembers: typs
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
function o(props, additional) {
|
|
180
|
-
return {
|
|
181
|
-
props,
|
|
182
|
-
additional
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// function m(additional: any) {
|
|
187
|
-
// return { props: [], additional };
|
|
188
|
-
// }
|
|
189
|
-
|
|
190
|
-
function r(name) {
|
|
191
|
-
return {
|
|
192
|
-
ref: name
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
const typeMap = {
|
|
196
|
-
"ComptesRendus": o([{
|
|
197
|
-
json: "comptesRendus",
|
|
198
|
-
js: "comptesRendus",
|
|
199
|
-
typ: r("CompteRenduClass")
|
|
200
|
-
}], false),
|
|
201
|
-
"CompteRenduClass": o([{
|
|
202
|
-
json: "compteRendu",
|
|
203
|
-
js: "compteRendu",
|
|
204
|
-
typ: a(r("CompteRendu"))
|
|
205
|
-
}], false),
|
|
206
|
-
"CompteRenduWrapper": o([{
|
|
207
|
-
json: "compteRendu",
|
|
208
|
-
js: "compteRendu",
|
|
209
|
-
typ: r("CompteRendu")
|
|
210
|
-
}], false),
|
|
211
|
-
"CompteRendu": o([{
|
|
212
|
-
json: "xmlns",
|
|
213
|
-
js: "xmlns",
|
|
214
|
-
typ: ""
|
|
215
|
-
}, {
|
|
216
|
-
json: "uid",
|
|
217
|
-
js: "uid",
|
|
218
|
-
typ: ""
|
|
219
|
-
}, {
|
|
220
|
-
json: "seanceRef",
|
|
221
|
-
js: "seanceRef",
|
|
222
|
-
typ: ""
|
|
223
|
-
}, {
|
|
224
|
-
json: "sessionRef",
|
|
225
|
-
js: "sessionRef",
|
|
226
|
-
typ: ""
|
|
227
|
-
}, {
|
|
228
|
-
json: "metadonnees",
|
|
229
|
-
js: "metadonnees",
|
|
230
|
-
typ: r("Metadonnees")
|
|
231
|
-
}, {
|
|
232
|
-
json: "contenu",
|
|
233
|
-
js: "contenu",
|
|
234
|
-
typ: r("Contenu")
|
|
235
|
-
}], false),
|
|
236
|
-
"Contenu": o([{
|
|
237
|
-
json: "quantiemes",
|
|
238
|
-
js: "quantiemes",
|
|
239
|
-
typ: r("Quantiemes")
|
|
240
|
-
}, {
|
|
241
|
-
json: "ouvertureSeance",
|
|
242
|
-
js: "ouvertureSeance",
|
|
243
|
-
typ: u(a(r("Point")), r("Point"))
|
|
244
|
-
}, {
|
|
245
|
-
json: "point",
|
|
246
|
-
js: "point",
|
|
247
|
-
typ: u(a(r("Point")), r("Point"))
|
|
248
|
-
}, {
|
|
249
|
-
json: "finSeance",
|
|
250
|
-
js: "finSeance",
|
|
251
|
-
typ: u(undefined, r("FinSeance"))
|
|
252
|
-
}, {
|
|
253
|
-
json: "paragraphe",
|
|
254
|
-
js: "paragraphe",
|
|
255
|
-
typ: u(undefined, a(r("Point")))
|
|
256
|
-
}], false),
|
|
257
|
-
"FinSeance": o([{
|
|
258
|
-
json: "point",
|
|
259
|
-
js: "point",
|
|
260
|
-
typ: r("Point")
|
|
261
|
-
}], false),
|
|
262
|
-
"Orateurs": o([{
|
|
263
|
-
json: "orateur",
|
|
264
|
-
js: "orateur",
|
|
265
|
-
typ: u(a(r("OrateurElement")), r("OrateurElement"))
|
|
266
|
-
}], false),
|
|
267
|
-
"OrateurElement": o([{
|
|
268
|
-
json: "nom",
|
|
269
|
-
js: "nom",
|
|
270
|
-
typ: u(undefined, "")
|
|
271
|
-
}, {
|
|
272
|
-
json: "id",
|
|
273
|
-
js: "id",
|
|
274
|
-
typ: u(undefined, "")
|
|
275
|
-
}, {
|
|
276
|
-
json: "qualite",
|
|
277
|
-
js: "qualite",
|
|
278
|
-
typ: u(undefined, "")
|
|
279
|
-
}], false),
|
|
280
|
-
"Texte": o([{
|
|
281
|
-
json: "_",
|
|
282
|
-
js: "_",
|
|
283
|
-
typ: u(undefined, "")
|
|
284
|
-
}, {
|
|
285
|
-
json: "id_syceron",
|
|
286
|
-
js: "id_syceron",
|
|
287
|
-
typ: u(undefined, "")
|
|
288
|
-
}, {
|
|
289
|
-
json: "stime",
|
|
290
|
-
js: "stime",
|
|
291
|
-
typ: u(undefined, "")
|
|
292
|
-
}, {
|
|
293
|
-
json: "sup",
|
|
294
|
-
js: "sup",
|
|
295
|
-
typ: u(undefined, "")
|
|
296
|
-
}, {
|
|
297
|
-
json: "lienAdt",
|
|
298
|
-
js: "lienAdt",
|
|
299
|
-
typ: u(undefined, u(a(r("Texte")), r("Texte")))
|
|
300
|
-
}], false),
|
|
301
|
-
"Point": o([{
|
|
302
|
-
json: "nivpoint",
|
|
303
|
-
js: "nivpoint",
|
|
304
|
-
typ: u(undefined, "")
|
|
305
|
-
}, {
|
|
306
|
-
json: "valeur_ptsodj",
|
|
307
|
-
js: "valeur_ptsodj",
|
|
308
|
-
typ: u(undefined, "")
|
|
309
|
-
}, {
|
|
310
|
-
json: "ordinal_prise",
|
|
311
|
-
js: "ordinal_prise",
|
|
312
|
-
typ: u(undefined, "")
|
|
313
|
-
}, {
|
|
314
|
-
json: "id_preparation",
|
|
315
|
-
js: "id_preparation",
|
|
316
|
-
typ: u(undefined, "")
|
|
317
|
-
}, {
|
|
318
|
-
json: "ordre_absolu_seance",
|
|
319
|
-
js: "ordre_absolu_seance",
|
|
320
|
-
typ: u(undefined, "")
|
|
321
|
-
}, {
|
|
322
|
-
json: "code_grammaire",
|
|
323
|
-
js: "code_grammaire",
|
|
324
|
-
typ: u(undefined, "")
|
|
325
|
-
}, {
|
|
326
|
-
json: "code_style",
|
|
327
|
-
js: "code_style",
|
|
328
|
-
typ: u(undefined, "")
|
|
329
|
-
}, {
|
|
330
|
-
json: "code_parole",
|
|
331
|
-
js: "code_parole",
|
|
332
|
-
typ: u(undefined, "")
|
|
333
|
-
}, {
|
|
334
|
-
json: "sommaire",
|
|
335
|
-
js: "sommaire",
|
|
336
|
-
typ: u(undefined, "")
|
|
337
|
-
}, {
|
|
338
|
-
json: "id_syceron",
|
|
339
|
-
js: "id_syceron",
|
|
340
|
-
typ: u(undefined, "")
|
|
341
|
-
}, {
|
|
342
|
-
json: "valeur",
|
|
343
|
-
js: "valeur",
|
|
344
|
-
typ: u(undefined, "")
|
|
345
|
-
}, {
|
|
346
|
-
json: "orateurs",
|
|
347
|
-
js: "orateurs",
|
|
348
|
-
typ: u(r("Orateurs"), u("", undefined))
|
|
349
|
-
}, {
|
|
350
|
-
json: "texte",
|
|
351
|
-
js: "texte",
|
|
352
|
-
typ: u(r("Texte"), u("", undefined))
|
|
353
|
-
}, {
|
|
354
|
-
json: "paragraphe",
|
|
355
|
-
js: "paragraphe",
|
|
356
|
-
typ: u(undefined, u(a(r("Point")), r("Point")))
|
|
357
|
-
}, {
|
|
358
|
-
json: "interExtraction",
|
|
359
|
-
js: "interExtraction",
|
|
360
|
-
typ: u(undefined, u(a(r("Point")), r("Point")))
|
|
361
|
-
}, {
|
|
362
|
-
json: "point",
|
|
363
|
-
js: "point",
|
|
364
|
-
typ: u(undefined, u(a(r("Point")), r("Point")))
|
|
365
|
-
}, {
|
|
366
|
-
json: "structure",
|
|
367
|
-
js: "structure",
|
|
368
|
-
typ: u(undefined, "")
|
|
369
|
-
}, {
|
|
370
|
-
json: "id_acteur",
|
|
371
|
-
js: "id_acteur",
|
|
372
|
-
typ: u(undefined, "")
|
|
373
|
-
}, {
|
|
374
|
-
json: "id_mandat",
|
|
375
|
-
js: "id_mandat",
|
|
376
|
-
typ: u(undefined, "")
|
|
377
|
-
}, {
|
|
378
|
-
json: "id_nomination_oe",
|
|
379
|
-
js: "id_nomination_oe",
|
|
380
|
-
typ: u(undefined, "")
|
|
381
|
-
}, {
|
|
382
|
-
json: "id_nomination_op",
|
|
383
|
-
js: "id_nomination_op",
|
|
384
|
-
typ: u(undefined, "")
|
|
385
|
-
}, {
|
|
386
|
-
json: "orateur",
|
|
387
|
-
js: "orateur",
|
|
388
|
-
typ: u(undefined, "")
|
|
389
|
-
}, {
|
|
390
|
-
json: "bibard",
|
|
391
|
-
js: "bibard",
|
|
392
|
-
typ: u(undefined, "")
|
|
393
|
-
}, {
|
|
394
|
-
json: "art",
|
|
395
|
-
js: "art",
|
|
396
|
-
typ: u(undefined, "")
|
|
397
|
-
}, {
|
|
398
|
-
json: "adt",
|
|
399
|
-
js: "adt",
|
|
400
|
-
typ: u(undefined, "")
|
|
401
|
-
}, {
|
|
402
|
-
json: "ssadt",
|
|
403
|
-
js: "ssadt",
|
|
404
|
-
typ: u(undefined, "")
|
|
405
|
-
}, {
|
|
406
|
-
json: "roledebat",
|
|
407
|
-
js: "roledebat",
|
|
408
|
-
typ: u(undefined, "")
|
|
409
|
-
}, {
|
|
410
|
-
json: "type_debat",
|
|
411
|
-
js: "type_debat",
|
|
412
|
-
typ: u(undefined, "")
|
|
413
|
-
}, {
|
|
414
|
-
json: "changementPresidence",
|
|
415
|
-
js: "changementPresidence",
|
|
416
|
-
typ: u(undefined, r("Point"))
|
|
417
|
-
}, {
|
|
418
|
-
json: "decision",
|
|
419
|
-
js: "decision",
|
|
420
|
-
typ: u(undefined, r("Decision"))
|
|
421
|
-
}, {
|
|
422
|
-
json: "ouvertureSeance",
|
|
423
|
-
js: "ouvertureSeance",
|
|
424
|
-
typ: u(undefined, r("Point"))
|
|
425
|
-
}, {
|
|
426
|
-
json: "nom_orateur",
|
|
427
|
-
js: "nom_orateur",
|
|
428
|
-
typ: u(undefined, "")
|
|
429
|
-
}, {
|
|
430
|
-
json: "qualite",
|
|
431
|
-
js: "qualite",
|
|
432
|
-
typ: u(undefined, "")
|
|
433
|
-
}], false),
|
|
434
|
-
"Quantiemes": o([{
|
|
435
|
-
json: "journee",
|
|
436
|
-
js: "journee",
|
|
437
|
-
typ: ""
|
|
438
|
-
}, {
|
|
439
|
-
json: "session",
|
|
440
|
-
js: "session",
|
|
441
|
-
typ: ""
|
|
442
|
-
}], false),
|
|
443
|
-
"Metadonnees": o([{
|
|
444
|
-
json: "dateSeance",
|
|
445
|
-
js: "dateSeance",
|
|
446
|
-
typ: ""
|
|
447
|
-
}, {
|
|
448
|
-
json: "dateSeanceJour",
|
|
449
|
-
js: "dateSeanceJour",
|
|
450
|
-
typ: ""
|
|
451
|
-
}, {
|
|
452
|
-
json: "numSeanceJour",
|
|
453
|
-
js: "numSeanceJour",
|
|
454
|
-
typ: ""
|
|
455
|
-
}, {
|
|
456
|
-
json: "numSeance",
|
|
457
|
-
js: "numSeance",
|
|
458
|
-
typ: ""
|
|
459
|
-
}, {
|
|
460
|
-
json: "typeAssemblee",
|
|
461
|
-
js: "typeAssemblee",
|
|
462
|
-
typ: ""
|
|
463
|
-
}, {
|
|
464
|
-
json: "legislature",
|
|
465
|
-
js: "legislature",
|
|
466
|
-
typ: ""
|
|
467
|
-
}, {
|
|
468
|
-
json: "session",
|
|
469
|
-
js: "session",
|
|
470
|
-
typ: ""
|
|
471
|
-
}, {
|
|
472
|
-
json: "nomFichierJo",
|
|
473
|
-
js: "nomFichierJo",
|
|
474
|
-
typ: ""
|
|
475
|
-
}, {
|
|
476
|
-
json: "validite",
|
|
477
|
-
js: "validite",
|
|
478
|
-
typ: ""
|
|
479
|
-
}, {
|
|
480
|
-
json: "etat",
|
|
481
|
-
js: "etat",
|
|
482
|
-
typ: ""
|
|
483
|
-
}, {
|
|
484
|
-
json: "diffusion",
|
|
485
|
-
js: "diffusion",
|
|
486
|
-
typ: ""
|
|
487
|
-
}, {
|
|
488
|
-
json: "version",
|
|
489
|
-
js: "version",
|
|
490
|
-
typ: ""
|
|
491
|
-
}, {
|
|
492
|
-
json: "environnement",
|
|
493
|
-
js: "environnement",
|
|
494
|
-
typ: ""
|
|
495
|
-
}, {
|
|
496
|
-
json: "heureGeneration",
|
|
497
|
-
js: "heureGeneration",
|
|
498
|
-
typ: Date
|
|
499
|
-
}, {
|
|
500
|
-
json: "sommaire",
|
|
501
|
-
js: "sommaire",
|
|
502
|
-
typ: r("Sommaire")
|
|
503
|
-
}], false),
|
|
504
|
-
"Sommaire": o([{
|
|
505
|
-
json: "presidentSeance",
|
|
506
|
-
js: "presidentSeance",
|
|
507
|
-
typ: r("Texte")
|
|
508
|
-
}, {
|
|
509
|
-
json: "sommaire1",
|
|
510
|
-
js: "sommaire1",
|
|
511
|
-
typ: u(a(r("SommaireElement")), r("SommaireElement"))
|
|
512
|
-
}, {
|
|
513
|
-
json: "sommaire3",
|
|
514
|
-
js: "sommaire3",
|
|
515
|
-
typ: u(undefined, u(a(r("SommaireElement")), r("SommaireElement")))
|
|
516
|
-
}, {
|
|
517
|
-
json: "sommaire2",
|
|
518
|
-
js: "sommaire2",
|
|
519
|
-
typ: u(undefined, u(a(r("SommaireElement")), r("SommaireElement")))
|
|
520
|
-
}, {
|
|
521
|
-
json: "para",
|
|
522
|
-
js: "para",
|
|
523
|
-
typ: u(undefined, u(a(r("Texte")), r("Texte")))
|
|
524
|
-
}], false),
|
|
525
|
-
"SommaireElement": o([{
|
|
526
|
-
json: "valeur_pts_odj",
|
|
527
|
-
js: "valeur_pts_odj",
|
|
528
|
-
typ: u(undefined, "")
|
|
529
|
-
}, {
|
|
530
|
-
json: "titreStruct",
|
|
531
|
-
js: "titreStruct",
|
|
532
|
-
typ: u(undefined, r("TitreStruct"))
|
|
533
|
-
}, {
|
|
534
|
-
json: "para",
|
|
535
|
-
js: "para",
|
|
536
|
-
typ: u(undefined, u(a(u(r("Texte"), "")), r("Texte")))
|
|
537
|
-
}, {
|
|
538
|
-
json: "sommaire2",
|
|
539
|
-
js: "sommaire2",
|
|
540
|
-
typ: u(undefined, u(a(r("SommaireElement")), r("SommaireElement")))
|
|
541
|
-
}, {
|
|
542
|
-
json: "sommaire3",
|
|
543
|
-
js: "sommaire3",
|
|
544
|
-
typ: u(undefined, u(a(r("SommaireElement")), r("SommaireElement")))
|
|
545
|
-
}, {
|
|
546
|
-
json: "presidentSeance",
|
|
547
|
-
js: "presidentSeance",
|
|
548
|
-
typ: u(undefined, u(a(r("Texte")), r("Texte")))
|
|
549
|
-
}, {
|
|
550
|
-
json: "type_debat",
|
|
551
|
-
js: "type_debat",
|
|
552
|
-
typ: u(undefined, "")
|
|
553
|
-
}], false),
|
|
554
|
-
"TitreStruct": o([{
|
|
555
|
-
json: "id_syceron",
|
|
556
|
-
js: "id_syceron",
|
|
557
|
-
typ: ""
|
|
558
|
-
}, {
|
|
559
|
-
json: "intitule",
|
|
560
|
-
js: "intitule",
|
|
561
|
-
typ: u(undefined, "")
|
|
562
|
-
}, {
|
|
563
|
-
json: "sousIntitule",
|
|
564
|
-
js: "sousIntitule",
|
|
565
|
-
typ: u(undefined, "")
|
|
566
|
-
}, {
|
|
567
|
-
json: "type_debat",
|
|
568
|
-
js: "type_debat",
|
|
569
|
-
typ: u(undefined, "")
|
|
570
|
-
}], false),
|
|
571
|
-
"Decision": ["ADOPTION amendement (main levée) adt", "ADOPTION d’un article (vote à main levée)", "ADOPTION d’un sous-amendement (main levée) ss-adt", "ADOPTION de plusieurs amendements (main levée) adts", "ADOPTION de plusieurs sous-amendements (main levée) ss-adts", "", "REJET d’un amendement (main levée) adt", "REJET d’un article (vote à main levée)", "REJET d’un sous-amendement (main levée) ss-adt", "REJET de plusieurs amendements (main levée) adts", "REJET de plusieurs sous-amendements (main levée) ss-adts", "REJET motion de rejet préalable (main levée)"]
|
|
572
|
-
};
|
|
573
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZWNpc2lvbiIsIkNvbnZlcnQiLCJ0b0NvbXB0ZXNSZW5kdXMiLCJqc29uIiwiY2FzdCIsIkpTT04iLCJwYXJzZSIsInIiLCJjb21wdGVzUmVuZHVzVG9Kc29uIiwidmFsdWUiLCJzdHJpbmdpZnkiLCJ1bmNhc3QiLCJ0b0NvbXB0ZVJlbmR1V3JhcHBlciIsImNvbXB0ZVJlbmR1V3JhcHBlclRvSnNvbiIsImludmFsaWRWYWx1ZSIsInR5cCIsInZhbCIsImtleSIsInBhcmVudCIsInByZXR0eVR5cCIsInByZXR0eVR5cGVOYW1lIiwicGFyZW50VGV4dCIsImtleVRleHQiLCJFcnJvciIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInVuZGVmaW5lZCIsIm1hcCIsImEiLCJqb2luIiwibGl0ZXJhbCIsImpzb25Ub0pTUHJvcHMiLCJqc29uVG9KUyIsInByb3BzIiwiZm9yRWFjaCIsInAiLCJqcyIsImpzVG9KU09OUHJvcHMiLCJqc1RvSlNPTiIsInRyYW5zZm9ybSIsImdldFByb3BzIiwidHJhbnNmb3JtUHJpbWl0aXZlIiwidHJhbnNmb3JtVW5pb24iLCJ0eXBzIiwibCIsImkiLCJfIiwidHJhbnNmb3JtRW51bSIsImNhc2VzIiwiaW5kZXhPZiIsInRyYW5zZm9ybUFycmF5IiwiZWwiLCJ0cmFuc2Zvcm1EYXRlIiwiZCIsIkRhdGUiLCJpc05hTiIsInZhbHVlT2YiLCJ0cmFuc2Zvcm1PYmplY3QiLCJhZGRpdGlvbmFsIiwicmVmIiwicmVzdWx0IiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3AiLCJ2IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidHlwZU1hcCIsInVuaW9uTWVtYmVycyIsImFycmF5SXRlbXMiLCJ1IiwibyIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmF3X3R5cGVzL2RlYmF0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBwYXJzZSB0aGlzIGRhdGE6XG4vL1xuLy8gICBpbXBvcnQgeyBDb252ZXJ0LCBDb21wdGVzUmVuZHVzLCBDb21wdGVSZW5kdVdyYXBwZXIgfSBmcm9tIFwiLi9maWxlXCI7XG4vL1xuLy8gICBjb25zdCBjb21wdGVSZW5kdSA9IENvbnZlcnQudG9Db21wdGVSZW5kdShqc29uKTtcbi8vICAgY29uc3QgY29tcHRlUmVuZHVXcmFwcGVyID0gQ29udmVydC50b0NvbXB0ZVJlbmR1V3JhcHBlcihqc29uKTtcbi8vXG4vLyBUaGVzZSBmdW5jdGlvbnMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgSlNPTiBkb2Vzbid0XG4vLyBtYXRjaCB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlLCBldmVuIGlmIHRoZSBKU09OIGlzIHZhbGlkLlxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZXNSZW5kdXMge1xuICAgIGNvbXB0ZVJlbmR1OiBDb21wdGVSZW5kdUNsYXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZVJlbmR1Q2xhc3Mge1xuICAgIGNvbXB0ZVJlbmR1OiBDb21wdGVSZW5kdVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZVJlbmR1V3JhcHBlciB7XG4gICAgY29tcHRlUmVuZHU6IENvbXB0ZVJlbmR1O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXB0ZVJlbmR1IHtcbiAgICB4bWxuczogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICAgIHNlYW5jZVJlZjogc3RyaW5nO1xuICAgIHNlc3Npb25SZWY6IHN0cmluZztcbiAgICBtZXRhZG9ubmVlczogTWV0YWRvbm5lZXM7XG4gICAgY29udGVudTogQ29udGVudTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW51IHtcbiAgICBxdWFudGllbWVzOiBRdWFudGllbWVzO1xuICAgIG91dmVydHVyZVNlYW5jZTogUG9pbnRbXSB8IFBvaW50O1xuICAgIHBvaW50OiBQb2ludFtdIHwgUG9pbnQ7XG4gICAgZmluU2VhbmNlPzogRmluU2VhbmNlO1xuICAgIHBhcmFncmFwaGU/OiBQb2ludFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpblNlYW5jZSB7XG4gICAgcG9pbnQ6IFBvaW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yYXRldXJzIHtcbiAgICBvcmF0ZXVyOiBPcmF0ZXVyRWxlbWVudFtdIHwgT3JhdGV1ckVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JhdGV1ckVsZW1lbnQge1xuICAgIG5vbTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcXVhbGl0ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRlIHtcbiAgICBfPzogc3RyaW5nXG4gICAgaWRfc3ljZXJvbj86IHN0cmluZ1xuICAgIHN0aW1lPzogc3RyaW5nXG4gICAgc3VwPzogc3RyaW5nXG4gICAgbGllbkFkdD86IFRleHRlW10gfCBUZXh0ZVxufVxuXG5leHBvcnQgZW51bSBEZWNpc2lvbiB7XG4gICAgQWRvcHRpb25BbWVuZGVtZW50TWFpbkxldsOpZUFkdCA9IFwiQURPUFRJT04gYW1lbmRlbWVudCAobWFpbiBsZXbDqWUpIGFkdFwiLFxuICAgIEFkb3B0aW9uRFVuQXJ0aWNsZVZvdGXDgE1haW5MZXbDqWUgPSBcIkFET1BUSU9OIGTigJl1biBhcnRpY2xlICh2b3RlIMOgIG1haW4gbGV2w6llKVwiLFxuICAgIEFkb3B0aW9uRFVuU291c0FtZW5kZW1lbnRNYWluTGV2w6llU3NBZHQgPSBcIkFET1BUSU9OIGTigJl1biBzb3VzLWFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBzcy1hZHRcIixcbiAgICBBZG9wdGlvbkRlUGx1c2lldXJzQW1lbmRlbWVudHNNYWluTGV2w6llQWR0cyA9IFwiQURPUFRJT04gZGUgcGx1c2lldXJzIGFtZW5kZW1lbnRzIChtYWluIGxldsOpZSkgYWR0c1wiLFxuICAgIEFkb3B0aW9uRGVQbHVzaWV1cnNTb3VzQW1lbmRlbWVudHNNYWluTGV2w6llU3NBZHRzID0gXCJBRE9QVElPTiBkZSBwbHVzaWV1cnMgc291cy1hbWVuZGVtZW50cyAobWFpbiBsZXbDqWUpIHNzLWFkdHNcIixcbiAgICBFbXB0eSA9IFwiXCIsXG4gICAgUmVqZXREVW5BbWVuZGVtZW50TWFpbkxldsOpZUFkdCA9IFwiUkVKRVQgZOKAmXVuIGFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBhZHRcIixcbiAgICBSZWpldERVbkFydGljbGVWb3Rlw4BNYWluTGV2w6llID0gXCJSRUpFVCBk4oCZdW4gYXJ0aWNsZSAodm90ZSDDoCBtYWluIGxldsOpZSlcIixcbiAgICBSZWpldERVblNvdXNBbWVuZGVtZW50TWFpbkxldsOpZVNzQWR0ID0gXCJSRUpFVCBk4oCZdW4gc291cy1hbWVuZGVtZW50IChtYWluIGxldsOpZSkgc3MtYWR0XCIsXG4gICAgUmVqZXREZVBsdXNpZXVyc0FtZW5kZW1lbnRzTWFpbkxldsOpZUFkdHMgPSBcIlJFSkVUIGRlIHBsdXNpZXVycyBhbWVuZGVtZW50cyAobWFpbiBsZXbDqWUpIGFkdHNcIixcbiAgICBSZWpldERlUGx1c2lldXJzU291c0FtZW5kZW1lbnRzTWFpbkxldsOpZVNzQWR0cyA9IFwiUkVKRVQgZGUgcGx1c2lldXJzIHNvdXMtYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBzcy1hZHRzXCIsXG4gICAgUmVqZXRNb3Rpb25EZVJlamV0UHLDqWFsYWJsZU1haW5MZXbDqWUgPSBcIlJFSkVUIG1vdGlvbiBkZSByZWpldCBwcsOpYWxhYmxlIChtYWluIGxldsOpZSlcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2ludCB7XG4gICAgaWRfcHJlcGFyYXRpb24/OiBzdHJpbmc7XG4gICAgb3JkcmVfYWJzb2x1X3NlYW5jZT86IHN0cmluZztcbiAgICBjb2RlX2dyYW1tYWlyZT86IHN0cmluZztcbiAgICBzb21tYWlyZT86IHN0cmluZztcbiAgICBpZF9zeWNlcm9uPzogc3RyaW5nO1xuICAgIHZhbGV1cl9wdHNvZGo/OiBzdHJpbmc7XG4gICAgbml2cG9pbnQ/OiBzdHJpbmc7XG4gICAgb3JkaW5hbF9wcmlzZT86IHN0cmluZztcbiAgICBjb2RlX3N0eWxlPzogc3RyaW5nO1xuICAgIGNvZGVfcGFyb2xlPzogc3RyaW5nO1xuICAgIHZhbGV1cj86IHN0cmluZztcbiAgICBvcmF0ZXVycz86IE9yYXRldXJzIHwgc3RyaW5nO1xuICAgIHRleHRlPzogVGV4dGUgfCBzdHJpbmc7XG4gICAgcGFyYWdyYXBoZT86IFBvaW50W10gfCBQb2ludDtcbiAgICBpbnRlckV4dHJhY3Rpb24/OiBQb2ludFtdIHwgUG9pbnQ7XG4gICAgcG9pbnQ/OiBQb2ludFtdIHwgUG9pbnQ7XG4gICAgc3RydWN0dXJlPzogc3RyaW5nO1xuICAgIGlkX2FjdGV1cj86IHN0cmluZztcbiAgICBpZF9tYW5kYXQ/OiBzdHJpbmc7XG4gICAgaWRfbm9taW5hdGlvbl9vZT86IHN0cmluZztcbiAgICBpZF9ub21pbmF0aW9uX29wPzogc3RyaW5nO1xuICAgIG9yYXRldXI/OiBzdHJpbmc7XG4gICAgYmliYXJkPzogc3RyaW5nO1xuICAgIGFydD86IHN0cmluZztcbiAgICBhZHQ/OiBzdHJpbmc7XG4gICAgc3NhZHQ/OiBzdHJpbmc7XG4gICAgcm9sZWRlYmF0Pzogc3RyaW5nO1xuICAgIGNoYW5nZW1lbnRQcmVzaWRlbmNlPzogUG9pbnQ7XG4gICAgdHlwZV9kZWJhdD86IHN0cmluZztcbiAgICBkZWNpc2lvbj86IERlY2lzaW9uO1xuICAgIG91dmVydHVyZVNlYW5jZT86IFBvaW50O1xuICAgIHF1YWxpdGU/OiBzdHJpbmc7XG4gICAgbm9tX29yYXRldXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbnRpZW1lcyB7XG4gICAgam91cm5lZTogc3RyaW5nO1xuICAgIHNlc3Npb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXRhZG9ubmVlcyB7XG4gICAgZGF0ZVNlYW5jZTogc3RyaW5nO1xuICAgIGRhdGVTZWFuY2VKb3VyOiBzdHJpbmc7XG4gICAgbnVtU2VhbmNlSm91cjogc3RyaW5nO1xuICAgIG51bVNlYW5jZTogc3RyaW5nO1xuICAgIHR5cGVBc3NlbWJsZWU6IHN0cmluZztcbiAgICBsZWdpc2xhdHVyZTogc3RyaW5nO1xuICAgIHNlc3Npb246IHN0cmluZztcbiAgICBub21GaWNoaWVySm86IHN0cmluZztcbiAgICB2YWxpZGl0ZTogc3RyaW5nO1xuICAgIGV0YXQ6IHN0cmluZztcbiAgICBkaWZmdXNpb246IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgZW52aXJvbm5lbWVudDogc3RyaW5nO1xuICAgIGhldXJlR2VuZXJhdGlvbjogRGF0ZTtcbiAgICBzb21tYWlyZTogU29tbWFpcmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29tbWFpcmUge1xuICAgIHByZXNpZGVudFNlYW5jZTogVGV4dGU7XG4gICAgc29tbWFpcmUxOiBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBzb21tYWlyZTM/OiBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBzb21tYWlyZTI/OiBTb21tYWlyZUVsZW1lbnRbXSB8IFNvbW1haXJlRWxlbWVudDtcbiAgICBwYXJhPzogVGV4dGVbXSB8IFRleHRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvbW1haXJlRWxlbWVudCB7XG4gICAgdmFsZXVyX3B0c19vZGo6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB0aXRyZVN0cnVjdDogVGl0cmVTdHJ1Y3Q7XG4gICAgcGFyYT86IEFycmF5PFRleHRlIHwgc3RyaW5nPiB8IFRleHRlO1xuICAgIHNvbW1haXJlMj86IFNvbW1haXJlRWxlbWVudFtdIHwgU29tbWFpcmVFbGVtZW50O1xuICAgIHNvbW1haXJlMz86IFNvbW1haXJlRWxlbWVudFtdIHwgU29tbWFpcmVFbGVtZW50O1xuICAgIHByZXNpZGVudFNlYW5jZT86IFRleHRlW10gfCBUZXh0ZTtcbiAgICB0eXBlX2RlYmF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpdHJlU3RydWN0IHtcbiAgICBpZF9zeWNlcm9uOiBzdHJpbmc7XG4gICAgaW50aXR1bGU/OiBzdHJpbmc7XG4gICAgc291c0ludGl0dWxlPzogc3RyaW5nO1xuICAgIHR5cGVfZGViYXQ/OiBzdHJpbmc7XG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICAgIHB1YmxpYyBzdGF0aWMgdG9Db21wdGVzUmVuZHVzKGpzb246IHN0cmluZyk6IENvbXB0ZXNSZW5kdXMge1xuICAgICAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiQ29tcHRlc1JlbmR1c1wiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjb21wdGVzUmVuZHVzVG9Kc29uKHZhbHVlOiBDb21wdGVzUmVuZHVzKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIkNvbXB0ZXNSZW5kdXNcIikpLCBudWxsLCAyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvQ29tcHRlUmVuZHVXcmFwcGVyKGpzb246IHN0cmluZyk6IENvbXB0ZVJlbmR1V3JhcHBlciB7XG4gICAgICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJDb21wdGVSZW5kdVdyYXBwZXJcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY29tcHRlUmVuZHVXcmFwcGVyVG9Kc29uKHZhbHVlOiBDb21wdGVSZW5kdVdyYXBwZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiQ29tcHRlUmVuZHVXcmFwcGVyXCIpKSwgbnVsbCwgMik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBpbnZhbGlkVmFsdWUodHlwOiBhbnksIHZhbDogYW55LCBrZXk6IGFueSwgcGFyZW50OiBhbnkgPSAnJyk6IG5ldmVyIHtcbiAgICBjb25zdCBwcmV0dHlUeXAgPSBwcmV0dHlUeXBlTmFtZSh0eXApO1xuICAgIGNvbnN0IHBhcmVudFRleHQgPSBwYXJlbnQgPyBgIG9uICR7cGFyZW50fWAgOiAnJztcbiAgICBjb25zdCBrZXlUZXh0ID0ga2V5ID8gYCBmb3Iga2V5IFwiJHtrZXl9XCJgIDogJyc7XG4gICAgdGhyb3cgRXJyb3IoYEludmFsaWQgdmFsdWUke2tleVRleHR9JHtwYXJlbnRUZXh0fS4gRXhwZWN0ZWQgJHtwcmV0dHlUeXB9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2YWwpfWApO1xufVxuXG5mdW5jdGlvbiBwcmV0dHlUeXBlTmFtZSh0eXA6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodHlwKSkge1xuICAgICAgICBpZiAodHlwLmxlbmd0aCA9PT0gMiAmJiB0eXBbMF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIGBhbiBvcHRpb25hbCAke3ByZXR0eVR5cGVOYW1lKHR5cFsxXSl9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBgb25lIG9mIFske3R5cC5tYXAoYSA9PiB7IHJldHVybiBwcmV0dHlUeXBlTmFtZShhKTsgfSkuam9pbihcIiwgXCIpfV1gO1xuICAgICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiICYmIHR5cC5saXRlcmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHR5cC5saXRlcmFsO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdHlwO1xuICAgIH1cbn1cblxuZnVuY3Rpb24ganNvblRvSlNQcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cC5qc29uVG9KUyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG1hcDogYW55ID0ge307XG4gICAgICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IG1hcFtwLmpzb25dID0geyBrZXk6IHAuanMsIHR5cDogcC50eXAgfSk7XG4gICAgICAgIHR5cC5qc29uVG9KUyA9IG1hcDtcbiAgICB9XG4gICAgcmV0dXJuIHR5cC5qc29uVG9KUztcbn1cblxuZnVuY3Rpb24ganNUb0pTT05Qcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cC5qc1RvSlNPTiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG1hcDogYW55ID0ge307XG4gICAgICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IG1hcFtwLmpzXSA9IHsga2V5OiBwLmpzb24sIHR5cDogcC50eXAgfSk7XG4gICAgICAgIHR5cC5qc1RvSlNPTiA9IG1hcDtcbiAgICB9XG4gICAgcmV0dXJuIHR5cC5qc1RvSlNPTjtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtKHZhbDogYW55LCB0eXA6IGFueSwgZ2V0UHJvcHM6IGFueSwga2V5OiBhbnkgPSAnJywgcGFyZW50OiBhbnkgPSAnJyk6IGFueSB7XG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtUHJpbWl0aXZlKHR5cDogc3RyaW5nLCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsO1xuICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgLy8gdmFsIG11c3QgdmFsaWRhdGUgYWdhaW5zdCBvbmUgdHlwIGluIHR5cHNcbiAgICAgICAgY29uc3QgbCA9IHR5cHMubGVuZ3RoO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgdHlwID0gdHlwc1tpXTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwgZ2V0UHJvcHMpO1xuICAgICAgICAgICAgfSBjYXRjaCAoXykgeyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXBzLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1FbnVtKGNhc2VzOiBzdHJpbmdbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbDtcbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZShjYXNlcy5tYXAoYSA9PiB7IHJldHVybiBsKGEpOyB9KSwgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtQXJyYXkodHlwOiBhbnksIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gaW52YWxpZFZhbHVlKGwoXCJhcnJheVwiKSwgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgICAgIHJldHVybiB2YWwubWFwKGVsID0+IHRyYW5zZm9ybShlbCwgdHlwLCBnZXRQcm9wcykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybURhdGUodmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodmFsID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkID0gbmV3IERhdGUodmFsKTtcbiAgICAgICAgaWYgKGlzTmFOKGQudmFsdWVPZigpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZShsKFwiRGF0ZVwiKSwgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtT2JqZWN0KHByb3BzOiB7IFtrOiBzdHJpbmddOiBhbnkgfSwgYWRkaXRpb25hbDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdHlwZW9mIHZhbCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUobChyZWYgfHwgXCJvYmplY3RcIiksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9wID0gcHJvcHNba2V5XTtcbiAgICAgICAgICAgIGNvbnN0IHYgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsLCBrZXkpID8gdmFsW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywga2V5LCByZWYpO1xuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmFsKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywga2V5KSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtKHZhbFtrZXldLCBhZGRpdGlvbmFsLCBnZXRQcm9wcywga2V5LCByZWYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsO1xuICAgIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkgcmV0dXJuIHZhbDtcbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgIH1cbiAgICBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgIGxldCByZWY6IGFueSA9IHVuZGVmaW5lZDtcbiAgICB3aGlsZSAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIiAmJiB0eXAucmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVmID0gdHlwLnJlZjtcbiAgICAgICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodHlwKSkgcmV0dXJuIHRyYW5zZm9ybUVudW0odHlwLCB2YWwpO1xuICAgIGlmICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIikgPyB0cmFuc2Zvcm1Vbmlvbih0eXAudW5pb25NZW1iZXJzLCB2YWwpXG4gICAgICAgICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcImFycmF5SXRlbXNcIikgPyB0cmFuc2Zvcm1BcnJheSh0eXAuYXJyYXlJdGVtcywgdmFsKVxuICAgICAgICAgICAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwicHJvcHNcIikgPyB0cmFuc2Zvcm1PYmplY3QoZ2V0UHJvcHModHlwKSwgdHlwLmFkZGl0aW9uYWwsIHZhbClcbiAgICAgICAgICAgICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG4gICAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgICBpZiAodHlwID09PSBEYXRlICYmIHR5cGVvZiB2YWwgIT09IFwibnVtYmVyXCIpIHJldHVybiB0cmFuc2Zvcm1EYXRlKHZhbCk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXAsIHZhbCk7XG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNvblRvSlNQcm9wcyk7XG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc1RvSlNPTlByb3BzKTtcbn1cblxuZnVuY3Rpb24gbCh0eXA6IGFueSkge1xuICAgIHJldHVybiB7IGxpdGVyYWw6IHR5cCB9O1xufVxuXG5mdW5jdGlvbiBhKHR5cDogYW55KSB7XG4gICAgcmV0dXJuIHsgYXJyYXlJdGVtczogdHlwIH07XG59XG5cbmZ1bmN0aW9uIHUoLi4udHlwczogYW55W10pIHtcbiAgICByZXR1cm4geyB1bmlvbk1lbWJlcnM6IHR5cHMgfTtcbn1cblxuZnVuY3Rpb24gbyhwcm9wczogYW55W10sIGFkZGl0aW9uYWw6IGFueSkge1xuICAgIHJldHVybiB7IHByb3BzLCBhZGRpdGlvbmFsIH07XG59XG5cbi8vIGZ1bmN0aW9uIG0oYWRkaXRpb25hbDogYW55KSB7XG4vLyAgICAgcmV0dXJuIHsgcHJvcHM6IFtdLCBhZGRpdGlvbmFsIH07XG4vLyB9XG5cbmZ1bmN0aW9uIHIobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHsgcmVmOiBuYW1lIH07XG59XG5cbmNvbnN0IHR5cGVNYXA6IGFueSA9IHtcbiAgICBcIkNvbXB0ZXNSZW5kdXNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJjb21wdGVzUmVuZHVzXCIsIGpzOiBcImNvbXB0ZXNSZW5kdXNcIiwgdHlwOiByKFwiQ29tcHRlUmVuZHVDbGFzc1wiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbXB0ZVJlbmR1Q2xhc3NcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJjb21wdGVSZW5kdVwiLCBqczogXCJjb21wdGVSZW5kdVwiLCB0eXA6IGEocihcIkNvbXB0ZVJlbmR1XCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbXB0ZVJlbmR1V3JhcHBlclwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImNvbXB0ZVJlbmR1XCIsIGpzOiBcImNvbXB0ZVJlbmR1XCIsIHR5cDogcihcIkNvbXB0ZVJlbmR1XCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiQ29tcHRlUmVuZHVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJ4bWxuc1wiLCBqczogXCJ4bWxuc1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInVpZFwiLCBqczogXCJ1aWRcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJzZWFuY2VSZWZcIiwganM6IFwic2VhbmNlUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwic2Vzc2lvblJlZlwiLCBqczogXCJzZXNzaW9uUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibWV0YWRvbm5lZXNcIiwganM6IFwibWV0YWRvbm5lZXNcIiwgdHlwOiByKFwiTWV0YWRvbm5lZXNcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNvbnRlbnVcIiwganM6IFwiY29udGVudVwiLCB0eXA6IHIoXCJDb250ZW51XCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiQ29udGVudVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInF1YW50aWVtZXNcIiwganM6IFwicXVhbnRpZW1lc1wiLCB0eXA6IHIoXCJRdWFudGllbWVzXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJvdXZlcnR1cmVTZWFuY2VcIiwganM6IFwib3V2ZXJ0dXJlU2VhbmNlXCIsIHR5cDogdShhKHIoXCJQb2ludFwiKSksIHIoXCJQb2ludFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBvaW50XCIsIGpzOiBcInBvaW50XCIsIHR5cDogdShhKHIoXCJQb2ludFwiKSksIHIoXCJQb2ludFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImZpblNlYW5jZVwiLCBqczogXCJmaW5TZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkZpblNlYW5jZVwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBhcmFncmFwaGVcIiwganM6IFwicGFyYWdyYXBoZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJQb2ludFwiKSkpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiRmluU2VhbmNlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicG9pbnRcIiwganM6IFwicG9pbnRcIiwgdHlwOiByKFwiUG9pbnRcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJPcmF0ZXVyc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm9yYXRldXJcIiwganM6IFwib3JhdGV1clwiLCB0eXA6IHUoYShyKFwiT3JhdGV1ckVsZW1lbnRcIikpLCByKFwiT3JhdGV1ckVsZW1lbnRcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiT3JhdGV1ckVsZW1lbnRcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJub21cIiwganM6IFwibm9tXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJpZFwiLCBqczogXCJpZFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwicXVhbGl0ZVwiLCBqczogXCJxdWFsaXRlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiVGV4dGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJfXCIsIGpzOiBcIl9cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX3N5Y2Vyb25cIiwganM6IFwiaWRfc3ljZXJvblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwic3RpbWVcIiwganM6IFwic3RpbWVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInN1cFwiLCBqczogXCJzdXBcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImxpZW5BZHRcIiwganM6IFwibGllbkFkdFwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEocihcIlRleHRlXCIpKSwgcihcIlRleHRlXCIpKSkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJQb2ludFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5pdnBvaW50XCIsIGpzOiBcIm5pdnBvaW50XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ2YWxldXJfcHRzb2RqXCIsIGpzOiBcInZhbGV1cl9wdHNvZGpcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yZGluYWxfcHJpc2VcIiwganM6IFwib3JkaW5hbF9wcmlzZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaWRfcHJlcGFyYXRpb25cIiwganM6IFwiaWRfcHJlcGFyYXRpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yZHJlX2Fic29sdV9zZWFuY2VcIiwganM6IFwib3JkcmVfYWJzb2x1X3NlYW5jZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiY29kZV9ncmFtbWFpcmVcIiwganM6IFwiY29kZV9ncmFtbWFpcmVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNvZGVfc3R5bGVcIiwganM6IFwiY29kZV9zdHlsZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiY29kZV9wYXJvbGVcIiwganM6IFwiY29kZV9wYXJvbGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlXCIsIGpzOiBcInNvbW1haXJlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJpZF9zeWNlcm9uXCIsIGpzOiBcImlkX3N5Y2Vyb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInZhbGV1clwiLCBqczogXCJ2YWxldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm9yYXRldXJzXCIsIGpzOiBcIm9yYXRldXJzXCIsIHR5cDogdShyKFwiT3JhdGV1cnNcIiksIHUoXCJcIiwgdW5kZWZpbmVkKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogdShyKFwiVGV4dGVcIiksIHUoXCJcIiwgdW5kZWZpbmVkKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBhcmFncmFwaGVcIiwganM6IFwicGFyYWdyYXBoZVwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEocihcIlBvaW50XCIpKSwgcihcIlBvaW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImludGVyRXh0cmFjdGlvblwiLCBqczogXCJpbnRlckV4dHJhY3Rpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJQb2ludFwiKSksIHIoXCJQb2ludFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJwb2ludFwiLCBqczogXCJwb2ludFwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEocihcIlBvaW50XCIpKSwgcihcIlBvaW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInN0cnVjdHVyZVwiLCBqczogXCJzdHJ1Y3R1cmVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX2FjdGV1clwiLCBqczogXCJpZF9hY3RldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX21hbmRhdFwiLCBqczogXCJpZF9tYW5kYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImlkX25vbWluYXRpb25fb2VcIiwganM6IFwiaWRfbm9taW5hdGlvbl9vZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiaWRfbm9taW5hdGlvbl9vcFwiLCBqczogXCJpZF9ub21pbmF0aW9uX29wXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJvcmF0ZXVyXCIsIGpzOiBcIm9yYXRldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImJpYmFyZFwiLCBqczogXCJiaWJhcmRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImFydFwiLCBqczogXCJhcnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImFkdFwiLCBqczogXCJhZHRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNzYWR0XCIsIGpzOiBcInNzYWR0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJyb2xlZGViYXRcIiwganM6IFwicm9sZWRlYmF0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlX2RlYmF0XCIsIGpzOiBcInR5cGVfZGViYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNoYW5nZW1lbnRQcmVzaWRlbmNlXCIsIGpzOiBcImNoYW5nZW1lbnRQcmVzaWRlbmNlXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJQb2ludFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcImRlY2lzaW9uXCIsIGpzOiBcImRlY2lzaW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJEZWNpc2lvblwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcIm91dmVydHVyZVNlYW5jZVwiLCBqczogXCJvdXZlcnR1cmVTZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgcihcIlBvaW50XCIpKSB9LFxuICAgICAgICB7IGpzb246IFwibm9tX29yYXRldXJcIiwganM6IFwibm9tX29yYXRldXJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInF1YWxpdGVcIiwganM6IFwicXVhbGl0ZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlF1YW50aWVtZXNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJqb3VybmVlXCIsIGpzOiBcImpvdXJuZWVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJzZXNzaW9uXCIsIGpzOiBcInNlc3Npb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiTWV0YWRvbm5lZXNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJkYXRlU2VhbmNlXCIsIGpzOiBcImRhdGVTZWFuY2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJkYXRlU2VhbmNlSm91clwiLCBqczogXCJkYXRlU2VhbmNlSm91clwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm51bVNlYW5jZUpvdXJcIiwganM6IFwibnVtU2VhbmNlSm91clwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm51bVNlYW5jZVwiLCBqczogXCJudW1TZWFuY2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlQXNzZW1ibGVlXCIsIGpzOiBcInR5cGVBc3NlbWJsZWVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJsZWdpc2xhdHVyZVwiLCBqczogXCJsZWdpc2xhdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInNlc3Npb25cIiwganM6IFwic2Vzc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm5vbUZpY2hpZXJKb1wiLCBqczogXCJub21GaWNoaWVySm9cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ2YWxpZGl0ZVwiLCBqczogXCJ2YWxpZGl0ZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImV0YXRcIiwganM6IFwiZXRhdFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImRpZmZ1c2lvblwiLCBqczogXCJkaWZmdXNpb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJ2ZXJzaW9uXCIsIGpzOiBcInZlcnNpb25cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJlbnZpcm9ubmVtZW50XCIsIGpzOiBcImVudmlyb25uZW1lbnRcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJoZXVyZUdlbmVyYXRpb25cIiwganM6IFwiaGV1cmVHZW5lcmF0aW9uXCIsIHR5cDogRGF0ZSB9LFxuICAgICAgICB7IGpzb246IFwic29tbWFpcmVcIiwganM6IFwic29tbWFpcmVcIiwgdHlwOiByKFwiU29tbWFpcmVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJTb21tYWlyZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInByZXNpZGVudFNlYW5jZVwiLCBqczogXCJwcmVzaWRlbnRTZWFuY2VcIiwgdHlwOiByKFwiVGV4dGVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlMVwiLCBqczogXCJzb21tYWlyZTFcIiwgdHlwOiB1KGEocihcIlNvbW1haXJlRWxlbWVudFwiKSksIHIoXCJTb21tYWlyZUVsZW1lbnRcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZTNcIiwganM6IFwic29tbWFpcmUzXCIsIHR5cDogdSh1bmRlZmluZWQsIHUoYShyKFwiU29tbWFpcmVFbGVtZW50XCIpKSwgcihcIlNvbW1haXJlRWxlbWVudFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZTJcIiwganM6IFwic29tbWFpcmUyXCIsIHR5cDogdSh1bmRlZmluZWQsIHUoYShyKFwiU29tbWFpcmVFbGVtZW50XCIpKSwgcihcIlNvbW1haXJlRWxlbWVudFwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJhXCIsIGpzOiBcInBhcmFcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJUZXh0ZVwiKSksIHIoXCJUZXh0ZVwiKSkpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU29tbWFpcmVFbGVtZW50XCI6IG8oW1xuICAgICAgICB7IGpzb246IFwidmFsZXVyX3B0c19vZGpcIiwganM6IFwidmFsZXVyX3B0c19vZGpcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInRpdHJlU3RydWN0XCIsIGpzOiBcInRpdHJlU3RydWN0XCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJUaXRyZVN0cnVjdFwiKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInBhcmFcIiwganM6IFwicGFyYVwiLCB0eXA6IHUodW5kZWZpbmVkLCB1KGEodShyKFwiVGV4dGVcIiksIFwiXCIpKSwgcihcIlRleHRlXCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlMlwiLCBqczogXCJzb21tYWlyZTJcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJTb21tYWlyZUVsZW1lbnRcIikpLCByKFwiU29tbWFpcmVFbGVtZW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInNvbW1haXJlM1wiLCBqczogXCJzb21tYWlyZTNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJTb21tYWlyZUVsZW1lbnRcIikpLCByKFwiU29tbWFpcmVFbGVtZW50XCIpKSkgfSxcbiAgICAgICAgeyBqc29uOiBcInByZXNpZGVudFNlYW5jZVwiLCBqczogXCJwcmVzaWRlbnRTZWFuY2VcIiwgdHlwOiB1KHVuZGVmaW5lZCwgdShhKHIoXCJUZXh0ZVwiKSksIHIoXCJUZXh0ZVwiKSkpIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlX2RlYmF0XCIsIGpzOiBcInR5cGVfZGViYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJUaXRyZVN0cnVjdFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImlkX3N5Y2Vyb25cIiwganM6IFwiaWRfc3ljZXJvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImludGl0dWxlXCIsIGpzOiBcImludGl0dWxlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJzb3VzSW50aXR1bGVcIiwganM6IFwic291c0ludGl0dWxlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ0eXBlX2RlYmF0XCIsIGpzOiBcInR5cGVfZGViYXRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJEZWNpc2lvblwiOiBbXG4gICAgICAgIFwiQURPUFRJT04gYW1lbmRlbWVudCAobWFpbiBsZXbDqWUpIGFkdFwiLFxuICAgICAgICBcIkFET1BUSU9OIGTigJl1biBhcnRpY2xlICh2b3RlIMOgIG1haW4gbGV2w6llKVwiLFxuICAgICAgICBcIkFET1BUSU9OIGTigJl1biBzb3VzLWFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBzcy1hZHRcIixcbiAgICAgICAgXCJBRE9QVElPTiBkZSBwbHVzaWV1cnMgYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBhZHRzXCIsXG4gICAgICAgIFwiQURPUFRJT04gZGUgcGx1c2lldXJzIHNvdXMtYW1lbmRlbWVudHMgKG1haW4gbGV2w6llKSBzcy1hZHRzXCIsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIFwiUkVKRVQgZOKAmXVuIGFtZW5kZW1lbnQgKG1haW4gbGV2w6llKSBhZHRcIixcbiAgICAgICAgXCJSRUpFVCBk4oCZdW4gYXJ0aWNsZSAodm90ZSDDoCBtYWluIGxldsOpZSlcIixcbiAgICAgICAgXCJSRUpFVCBk4oCZdW4gc291cy1hbWVuZGVtZW50IChtYWluIGxldsOpZSkgc3MtYWR0XCIsXG4gICAgICAgIFwiUkVKRVQgZGUgcGx1c2lldXJzIGFtZW5kZW1lbnRzIChtYWluIGxldsOpZSkgYWR0c1wiLFxuICAgICAgICBcIlJFSkVUIGRlIHBsdXNpZXVycyBzb3VzLWFtZW5kZW1lbnRzIChtYWluIGxldsOpZSkgc3MtYWR0c1wiLFxuICAgICAgICBcIlJFSkVUIG1vdGlvbiBkZSByZWpldCBwcsOpYWxhYmxlIChtYWluIGxldsOpZSlcIixcbiAgICBdLFxufTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFxREEsV0FBWUEsUUFBUSwwQkFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFBLE9BQVJBLFFBQVE7QUFBQTtBQW1HcEI7QUFDQTtBQUNBLE9BQU8sTUFBTUMsT0FBTyxDQUFDO0VBQ2pCLE9BQWNDLGVBQWVBLENBQUNDLElBQVksRUFBaUI7SUFDdkQsT0FBT0MsSUFBSSxDQUFDQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0gsSUFBSSxDQUFDLEVBQUVJLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztFQUNyRDtFQUVBLE9BQWNDLG1C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
|