@tricoteuses/assemblee 1.0.0-next.2 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/lib/api.js +23 -7
- package/lib/api.mjs +41 -0
- package/lib/bugs/acteur-00010/plugin.test.js +139 -33
- package/lib/bugs/acteur-00010/plugin.test.mjs +33 -0
- package/lib/bugs/acteur-00010.js +166 -24
- package/lib/bugs/acteur-00010.mjs +31 -0
- package/lib/bugs/agenda-00002/plugin.test.js +178 -52
- package/lib/bugs/agenda-00002/plugin.test.mjs +52 -0
- package/lib/bugs/agenda-00002.js +507 -143
- package/lib/bugs/agenda-00002.mjs +197 -0
- package/lib/bugs/agenda-00008/plugin.test.js +143 -31
- package/lib/bugs/agenda-00008/plugin.test.mjs +31 -0
- package/lib/bugs/agenda-00008.js +180 -25
- package/lib/bugs/agenda-00008.mjs +30 -0
- package/lib/bugs/agenda-00011/plugin.test.js +371 -156
- package/lib/bugs/agenda-00011/plugin.test.mjs +156 -0
- package/lib/bugs/agenda-00011.js +416 -117
- package/lib/bugs/agenda-00011.mjs +150 -0
- package/lib/bugs.js +591 -54
- package/lib/bugs.mjs +93 -0
- package/lib/cleaners/actes_legislatifs.js +149 -61
- package/lib/cleaners/actes_legislatifs.mjs +311 -0
- package/lib/cleaners/acteurs.js +255 -123
- package/lib/cleaners/acteurs.mjs +211 -0
- package/lib/cleaners/amendements.js +242 -117
- package/lib/cleaners/amendements.mjs +292 -0
- package/lib/cleaners/documents.js +147 -62
- package/lib/cleaners/documents.mjs +162 -0
- package/lib/cleaners/dossiers_legislatifs.js +132 -45
- package/lib/cleaners/dossiers_legislatifs.mjs +123 -0
- package/lib/cleaners/index.js +64 -8
- package/lib/cleaners/index.mjs +8 -0
- package/lib/cleaners/organes.js +54 -21
- package/lib/cleaners/organes.mjs +64 -0
- package/lib/cleaners/reunions.js +237 -127
- package/lib/cleaners/reunions.mjs +318 -0
- package/lib/cleaners/scrutins.js +261 -99
- package/lib/cleaners/scrutins.mjs +254 -0
- package/lib/cleaners/xml.js +81 -16
- package/lib/cleaners/xml.mjs +42 -0
- package/lib/datasets.js +284 -153
- package/lib/datasets.mjs +596 -0
- package/lib/dates.js +93 -34
- package/lib/dates.mjs +98 -0
- package/lib/dossiers_legislatifs.js +107 -33
- package/lib/dossiers_legislatifs.mjs +215 -0
- package/lib/file_systems.js +203 -35
- package/lib/file_systems.mjs +64 -0
- package/lib/git.js +139 -41
- package/lib/git.mjs +114 -0
- package/lib/index.js +310 -16
- package/lib/index.mjs +16 -0
- package/lib/inserters.js +355 -131
- package/lib/inserters.mjs +413 -0
- package/lib/loaders.js +900 -440
- package/lib/loaders.mjs +678 -0
- package/lib/organes.js +15 -5
- package/lib/organes.mjs +18 -0
- package/lib/parsers/documents.js +241 -89
- package/lib/parsers/documents.mjs +433 -0
- package/lib/parsers/index.js +36 -3
- package/lib/parsers/index.mjs +3 -0
- package/lib/parsers/recherche_amendements.js +616 -173
- package/lib/parsers/recherche_amendements.mjs +189 -0
- package/lib/raw_types/acteurs_et_organes.d.ts +36 -148
- package/lib/raw_types/acteurs_et_organes.js +228 -506
- package/lib/raw_types/acteurs_et_organes.mjs +1240 -0
- package/lib/raw_types/agendas.js +165 -75
- package/lib/raw_types/agendas.mjs +944 -0
- package/lib/raw_types/amendements.js +165 -77
- package/lib/raw_types/amendements.mjs +1040 -0
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -43
- package/lib/raw_types/dossiers_legislatifs.js +181 -143
- package/lib/raw_types/dossiers_legislatifs.mjs +1792 -0
- package/lib/raw_types/scrutins.js +144 -61
- package/lib/raw_types/scrutins.mjs +645 -0
- package/lib/scripts/bugs_helper.js +657 -155
- package/lib/scripts/bugs_helper.mjs +286 -0
- package/lib/scripts/clean_data.js +380 -145
- package/lib/scripts/clean_data.mjs +190 -0
- package/lib/scripts/clean_reorganized_data.js +627 -331
- package/lib/scripts/clean_reorganized_data.mjs +520 -0
- package/lib/scripts/diff_amendements.js +159 -73
- package/lib/scripts/diff_amendements.mjs +234 -0
- package/lib/scripts/document_dossiers_legislatifs.js +570 -288
- package/lib/scripts/document_dossiers_legislatifs.mjs +494 -0
- package/lib/scripts/get_today_reunions.js +37 -20
- package/lib/scripts/get_today_reunions.mjs +41 -0
- package/lib/scripts/merge_scrutins.js +121 -39
- package/lib/scripts/merge_scrutins.mjs +69 -0
- package/lib/scripts/parse_textes_lois.js +179 -125
- package/lib/scripts/parse_textes_lois.mjs +215 -0
- package/lib/scripts/raw_types_from_amendements.js +276 -77
- package/lib/scripts/raw_types_from_amendements.mjs +118 -0
- package/lib/scripts/reorganize_data.js +867 -446
- package/lib/scripts/reorganize_data.mjs +712 -0
- package/lib/scripts/retrieve_deputes_photos.js +378 -157
- package/lib/scripts/retrieve_deputes_photos.mjs +230 -0
- package/lib/scripts/retrieve_documents.js +648 -172
- package/lib/scripts/retrieve_documents.mjs +292 -0
- package/lib/scripts/retrieve_open_data.js +286 -85
- package/lib/scripts/retrieve_open_data.mjs +125 -0
- package/lib/scripts/retrieve_pending_amendments.js +302 -69
- package/lib/scripts/retrieve_pending_amendments.mjs +130 -0
- package/lib/scripts/retrieve_senateurs_photos.js +374 -198
- package/lib/scripts/retrieve_senateurs_photos.mjs +277 -0
- package/lib/scripts/retrieve_textes_lois.js +343 -89
- package/lib/scripts/retrieve_textes_lois.mjs +168 -0
- package/lib/scripts/test_load.js +30 -11
- package/lib/scripts/test_load.mjs +26 -0
- package/lib/scripts/test_load_big_files.js +30 -11
- package/lib/scripts/test_load_big_files.mjs +26 -0
- package/lib/scripts/validate_json.js +370 -120
- package/lib/scripts/validate_json.mjs +216 -0
- package/lib/shared_types/codes_actes.js +50 -15
- package/lib/shared_types/codes_actes.mjs +228 -0
- package/lib/strings.js +16 -3
- package/lib/strings.mjs +7 -0
- package/lib/types/acteurs_et_organes.js +156 -71
- package/lib/types/acteurs_et_organes.mjs +918 -0
- package/lib/types/agendas.js +154 -67
- package/lib/types/agendas.mjs +623 -0
- package/lib/types/amendements.js +166 -77
- package/lib/types/amendements.mjs +885 -0
- package/lib/types/dossiers_legislatifs.d.ts +1 -42
- package/lib/types/dossiers_legislatifs.js +182 -143
- package/lib/types/dossiers_legislatifs.mjs +1120 -0
- package/lib/types/legislatures.js +12 -3
- package/lib/types/legislatures.mjs +9 -0
- package/lib/types/scrutins.js +144 -61
- package/lib/types/scrutins.mjs +528 -0
- package/lib/urls.js +44 -25
- package/lib/urls.mjs +201 -0
- package/package.json +33 -12
|
@@ -0,0 +1,623 @@
|
|
|
1
|
+
// To parse this data:
|
|
2
|
+
//
|
|
3
|
+
// import { Convert, Reunion, Agendas } from "./file";
|
|
4
|
+
//
|
|
5
|
+
// const reunion = Convert.toReunion(json);
|
|
6
|
+
// const agendas = Convert.toAgendas(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
|
+
export let ReunionXsiType;
|
|
11
|
+
|
|
12
|
+
(function (ReunionXsiType) {
|
|
13
|
+
ReunionXsiType["ReunionCommissionType"] = "reunionCommission_type";
|
|
14
|
+
ReunionXsiType["ReunionInitParlementaireType"] = "reunionInitParlementaire_type";
|
|
15
|
+
ReunionXsiType["SeanceType"] = "seance_type";
|
|
16
|
+
})(ReunionXsiType || (ReunionXsiType = {}));
|
|
17
|
+
|
|
18
|
+
export let PointOdjXsiType;
|
|
19
|
+
|
|
20
|
+
(function (PointOdjXsiType) {
|
|
21
|
+
PointOdjXsiType["PodjReunionType"] = "podjReunion_type";
|
|
22
|
+
PointOdjXsiType["PodjSeanceConfPresType"] = "podjSeanceConfPres_type";
|
|
23
|
+
})(PointOdjXsiType || (PointOdjXsiType = {}));
|
|
24
|
+
|
|
25
|
+
export let EtatCycleDeVie;
|
|
26
|
+
|
|
27
|
+
(function (EtatCycleDeVie) {
|
|
28
|
+
EtatCycleDeVie["Annul\xE9"] = "Annul\xE9";
|
|
29
|
+
EtatCycleDeVie["Confirm\xE9"] = "Confirm\xE9";
|
|
30
|
+
EtatCycleDeVie["Eventuel"] = "Eventuel";
|
|
31
|
+
EtatCycleDeVie["Supprim\xE9"] = "Supprim\xE9";
|
|
32
|
+
})(EtatCycleDeVie || (EtatCycleDeVie = {}));
|
|
33
|
+
|
|
34
|
+
export let NatureTravauxOdj;
|
|
35
|
+
|
|
36
|
+
(function (NatureTravauxOdj) {
|
|
37
|
+
NatureTravauxOdj["Odjpr"] = "ODJPR";
|
|
38
|
+
NatureTravauxOdj["Odjsn"] = "ODJSN";
|
|
39
|
+
})(NatureTravauxOdj || (NatureTravauxOdj = {}));
|
|
40
|
+
|
|
41
|
+
export let Procedure;
|
|
42
|
+
|
|
43
|
+
(function (Procedure) {
|
|
44
|
+
Procedure["DiscussionG\xE9n\xE9raleCommune"] = "discussion g\xE9n\xE9rale commune";
|
|
45
|
+
Procedure["Proc\xE9dureDExamenSimplifi\xE9eArticle103"] = "proc\xE9dure d'examen simplifi\xE9e-Article 103";
|
|
46
|
+
Procedure["Proc\xE9dureDExamenSimplifi\xE9eArticle106"] = "proc\xE9dure d'examen simplifi\xE9e-Article 106";
|
|
47
|
+
Procedure["Proc\xE9dureDeL\xE9gislationEnCommissionArticle1071"] = "proc\xE9dure de l\xE9gislation en commission-Article 107-1";
|
|
48
|
+
})(Procedure || (Procedure = {}));
|
|
49
|
+
|
|
50
|
+
export let TypePointOdj;
|
|
51
|
+
|
|
52
|
+
(function (TypePointOdj) {
|
|
53
|
+
TypePointOdj["AmendementsArt88"] = "Amendements (Art. 88)";
|
|
54
|
+
TypePointOdj["AmendementsArt91"] = "Amendements (Art. 91)";
|
|
55
|
+
TypePointOdj["Audition"] = "Audition";
|
|
56
|
+
TypePointOdj["AuditionMinistre"] = "Audition ministre";
|
|
57
|
+
TypePointOdj["AuditionMinistreOuverte\xC0LaPresse"] = "Audition ministre ouverte \xE0 la presse";
|
|
58
|
+
TypePointOdj["AuditionOuverte\xC0LaPresse"] = "Audition ouverte \xE0 la presse";
|
|
59
|
+
TypePointOdj["Communication"] = "Communication";
|
|
60
|
+
TypePointOdj["ConstitutionDeMissionDInformation"] = "Constitution de mission d'information";
|
|
61
|
+
TypePointOdj["Discussion"] = "Discussion";
|
|
62
|
+
TypePointOdj["D\xE9batDInitiativeParlementaire"] = "D\xE9bat d'initiative parlementaire";
|
|
63
|
+
TypePointOdj["D\xE9clarationDuGouvernementSuivieDUnD\xE9bat"] = "D\xE9claration du Gouvernement suivie d'un d\xE9bat";
|
|
64
|
+
TypePointOdj["EchangesDeVues"] = "Echanges de vues";
|
|
65
|
+
TypePointOdj["Examen"] = "Examen";
|
|
66
|
+
TypePointOdj["ExplicationsDeVoteDesGroupesEtVoteParScrutinPublic"] = "Explications de vote des groupes et vote par scrutin public";
|
|
67
|
+
TypePointOdj["ExplicationsDeVoteEtVoteParScrutinPublic"] = "Explications de vote et vote par scrutin public";
|
|
68
|
+
TypePointOdj["FixationDeLOrdreDuJour"] = "Fixation de l'ordre du jour";
|
|
69
|
+
TypePointOdj["NominationBureau"] = "Nomination bureau";
|
|
70
|
+
TypePointOdj["NominationCandidatsOrganismeExtraparlementaire"] = "Nomination candidats organisme extraparlementaire";
|
|
71
|
+
TypePointOdj["NominationDUnMembreDUneMissionDInformation"] = "Nomination d'un membre d'une mission d'information";
|
|
72
|
+
TypePointOdj["NominationRapporteur"] = "Nomination rapporteur";
|
|
73
|
+
TypePointOdj["NominationRapporteurDApplication"] = "Nomination rapporteur d'application";
|
|
74
|
+
TypePointOdj["NominationRapporteurDInformation"] = "Nomination rapporteur d'information";
|
|
75
|
+
TypePointOdj["NominationRapporteurPourAvis"] = "Nomination rapporteur pour avis";
|
|
76
|
+
TypePointOdj["OuvertureEtCl\xF4tureDeSession"] = "Ouverture et cl\xF4ture de session";
|
|
77
|
+
TypePointOdj["QuestionsAuGouvernement"] = "Questions au Gouvernement";
|
|
78
|
+
TypePointOdj["QuestionsOralesSansD\xE9bat"] = "Questions orales sans d\xE9bat";
|
|
79
|
+
TypePointOdj["Rapport"] = "Rapport";
|
|
80
|
+
TypePointOdj["RapportDInformation"] = "Rapport d'information";
|
|
81
|
+
TypePointOdj["RapportPourAvis"] = "Rapport pour avis";
|
|
82
|
+
TypePointOdj["SuiteDeLaDiscussion"] = "Suite de la discussion";
|
|
83
|
+
TypePointOdj["TableRonde"] = "Table ronde";
|
|
84
|
+
TypePointOdj["VoteParScrutinPublic"] = "Vote par scrutin public";
|
|
85
|
+
TypePointOdj["VoteSolennel"] = "Vote solennel";
|
|
86
|
+
})(TypePointOdj || (TypePointOdj = {}));
|
|
87
|
+
|
|
88
|
+
export let FormatReunion;
|
|
89
|
+
|
|
90
|
+
(function (FormatReunion) {
|
|
91
|
+
FormatReunion["AuditionExterne"] = "AuditionExterne";
|
|
92
|
+
FormatReunion["AuditionParPresidentCommission"] = "AuditionParPresidentCommission";
|
|
93
|
+
FormatReunion["AuditionParRapporteur"] = "AuditionParRapporteur";
|
|
94
|
+
FormatReunion["Ordinaire"] = "Ordinaire";
|
|
95
|
+
})(FormatReunion || (FormatReunion = {}));
|
|
96
|
+
|
|
97
|
+
export let Quantieme;
|
|
98
|
+
|
|
99
|
+
(function (Quantieme) {
|
|
100
|
+
Quantieme["Deuxi\xE8me"] = "Deuxi\xE8me";
|
|
101
|
+
Quantieme["Premi\xE8re"] = "Premi\xE8re";
|
|
102
|
+
Quantieme["Troisi\xE8me"] = "Troisi\xE8me";
|
|
103
|
+
Quantieme["Unique"] = "Unique";
|
|
104
|
+
})(Quantieme || (Quantieme = {}));
|
|
105
|
+
|
|
106
|
+
export let Presence;
|
|
107
|
+
|
|
108
|
+
(function (Presence) {
|
|
109
|
+
Presence["Absent"] = "absent";
|
|
110
|
+
Presence["Excus\xE9"] = "excus\xE9";
|
|
111
|
+
Presence["Pr\xE9sent"] = "pr\xE9sent";
|
|
112
|
+
})(Presence || (Presence = {}));
|
|
113
|
+
|
|
114
|
+
export let Civ;
|
|
115
|
+
|
|
116
|
+
(function (Civ) {
|
|
117
|
+
Civ["M"] = "M.";
|
|
118
|
+
Civ["Mme"] = "Mme";
|
|
119
|
+
})(Civ || (Civ = {}));
|
|
120
|
+
|
|
121
|
+
export let PersonneAuditionneeXsiType;
|
|
122
|
+
|
|
123
|
+
(function (PersonneAuditionneeXsiType) {
|
|
124
|
+
PersonneAuditionneeXsiType["IdActeurType"] = "IdActeur_type";
|
|
125
|
+
PersonneAuditionneeXsiType["IdPersonneExterneType"] = "IdPersonneExterne_type";
|
|
126
|
+
})(PersonneAuditionneeXsiType || (PersonneAuditionneeXsiType = {}));
|
|
127
|
+
|
|
128
|
+
export let TypeReunion; // Converts JSON strings to/from your types
|
|
129
|
+
// and asserts the results of JSON.parse at runtime
|
|
130
|
+
|
|
131
|
+
(function (TypeReunion) {
|
|
132
|
+
TypeReunion["Dep"] = "DEP";
|
|
133
|
+
TypeReunion["Ga"] = "GA";
|
|
134
|
+
TypeReunion["Ge"] = "GE";
|
|
135
|
+
TypeReunion["Gevi"] = "GEVI";
|
|
136
|
+
TypeReunion["Gp"] = "GP";
|
|
137
|
+
TypeReunion["H\xE9Aur\xE9lien"] = "H\xC9 Aur\xE9lien";
|
|
138
|
+
})(TypeReunion || (TypeReunion = {}));
|
|
139
|
+
|
|
140
|
+
export class Convert {
|
|
141
|
+
static toAgendas(json) {
|
|
142
|
+
return cast(JSON.parse(json), r("Agendas"));
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
static agendasToJson(value) {
|
|
146
|
+
return JSON.stringify(uncast(value, r("Agendas")), null, 2);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
static toReunion(json) {
|
|
150
|
+
return cast(JSON.parse(json), r("Reunion"));
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
static reunionToJson(value) {
|
|
154
|
+
return JSON.stringify(uncast(value, r("Reunion")), null, 2);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function invalidValue(typ, val, key = "") {
|
|
160
|
+
if (key) {
|
|
161
|
+
throw Error(`Invalid value for key "${key}". Expected type ${JSON.stringify(typ)} but got ${JSON.stringify(val)}`);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
throw Error(`Invalid value ${JSON.stringify(val)} for type ${JSON.stringify(typ)}`);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function jsonToJSProps(typ) {
|
|
168
|
+
if (typ.jsonToJS === undefined) {
|
|
169
|
+
var map = {};
|
|
170
|
+
typ.props.forEach(p => map[p.json] = {
|
|
171
|
+
key: p.js,
|
|
172
|
+
typ: p.typ
|
|
173
|
+
});
|
|
174
|
+
typ.jsonToJS = map;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return typ.jsonToJS;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function jsToJSONProps(typ) {
|
|
181
|
+
if (typ.jsToJSON === undefined) {
|
|
182
|
+
var map = {};
|
|
183
|
+
typ.props.forEach(p => map[p.js] = {
|
|
184
|
+
key: p.json,
|
|
185
|
+
typ: p.typ
|
|
186
|
+
});
|
|
187
|
+
typ.jsToJSON = map;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return typ.jsToJSON;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function transform(val, typ, getProps, key = "") {
|
|
194
|
+
function transformPrimitive(typ, val) {
|
|
195
|
+
if (typeof typ === typeof val) return val;
|
|
196
|
+
return invalidValue(typ, val, key);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
function transformUnion(typs, val) {
|
|
200
|
+
// val must validate against one typ in typs
|
|
201
|
+
const l = typs.length;
|
|
202
|
+
|
|
203
|
+
for (let i = 0; i < l; i++) {
|
|
204
|
+
const typ = typs[i];
|
|
205
|
+
|
|
206
|
+
try {
|
|
207
|
+
return transform(val, typ, getProps);
|
|
208
|
+
} catch (_) {}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
return invalidValue(typs, val);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
function transformEnum(cases, val) {
|
|
215
|
+
if (cases.indexOf(val) !== -1) return val;
|
|
216
|
+
return invalidValue(cases, val);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function transformArray(typ, val) {
|
|
220
|
+
// val must be an array with no invalid elements
|
|
221
|
+
if (!Array.isArray(val)) return invalidValue("array", val);
|
|
222
|
+
return val.map(el => transform(el, typ, getProps));
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function transformDate(val) {
|
|
226
|
+
if (val === null) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
const d = new Date(val);
|
|
231
|
+
|
|
232
|
+
if (isNaN(d.valueOf())) {
|
|
233
|
+
return invalidValue("Date", val);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
return d;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
function transformObject(props, additional, val) {
|
|
240
|
+
if (val === null || typeof val !== "object" || Array.isArray(val)) {
|
|
241
|
+
return invalidValue("object", val);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const result = {};
|
|
245
|
+
Object.getOwnPropertyNames(props).forEach(key => {
|
|
246
|
+
const prop = props[key];
|
|
247
|
+
const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
|
|
248
|
+
result[prop.key] = transform(v, prop.typ, getProps, prop.key);
|
|
249
|
+
});
|
|
250
|
+
Object.getOwnPropertyNames(val).forEach(key => {
|
|
251
|
+
if (!Object.prototype.hasOwnProperty.call(props, key)) {
|
|
252
|
+
result[key] = transform(val[key], additional, getProps, key);
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
return result;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
if (typ === "any") return val;
|
|
259
|
+
|
|
260
|
+
if (typ === null) {
|
|
261
|
+
if (val === null) return val;
|
|
262
|
+
return invalidValue(typ, val);
|
|
263
|
+
} // if (typ === false) return invalidValue(typ, val)
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
while (typeof typ === "object" && typ.ref !== undefined) {
|
|
267
|
+
typ = typeMap[typ.ref];
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
if (Array.isArray(typ)) return transformEnum(typ, val);
|
|
271
|
+
|
|
272
|
+
if (typeof typ === "object") {
|
|
273
|
+
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);
|
|
274
|
+
} // Numbers can be parsed by Date but shouldn't be.
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
if (typ === Date && typeof val !== "number") return transformDate(val);
|
|
278
|
+
return transformPrimitive(typ, val);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
function cast(val, typ) {
|
|
282
|
+
return transform(val, typ, jsonToJSProps);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
function uncast(val, typ) {
|
|
286
|
+
return transform(val, typ, jsToJSONProps);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
function a(typ) {
|
|
290
|
+
return {
|
|
291
|
+
arrayItems: typ
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
function u(...typs) {
|
|
296
|
+
return {
|
|
297
|
+
unionMembers: typs
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
function o(props, additional) {
|
|
302
|
+
return {
|
|
303
|
+
props,
|
|
304
|
+
additional
|
|
305
|
+
};
|
|
306
|
+
} // function m(additional: any) {
|
|
307
|
+
// return { props: [], additional }
|
|
308
|
+
// }
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
function r(name) {
|
|
312
|
+
return {
|
|
313
|
+
ref: name
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
const typeMap = {
|
|
318
|
+
Agendas: o([{
|
|
319
|
+
json: "reunions",
|
|
320
|
+
js: "reunions",
|
|
321
|
+
typ: a(r("Reunion"))
|
|
322
|
+
}], false),
|
|
323
|
+
Reunion: o([{
|
|
324
|
+
json: "schemaVersion",
|
|
325
|
+
js: "schemaVersion",
|
|
326
|
+
typ: u(undefined, "")
|
|
327
|
+
}, {
|
|
328
|
+
json: "xsiType",
|
|
329
|
+
js: "xsiType",
|
|
330
|
+
typ: u(undefined, r("ReunionXsiType"))
|
|
331
|
+
}, {
|
|
332
|
+
json: "uid",
|
|
333
|
+
js: "uid",
|
|
334
|
+
typ: ""
|
|
335
|
+
}, {
|
|
336
|
+
json: "timestampDebut",
|
|
337
|
+
js: "timestampDebut",
|
|
338
|
+
typ: Date
|
|
339
|
+
}, {
|
|
340
|
+
json: "timestampFin",
|
|
341
|
+
js: "timestampFin",
|
|
342
|
+
typ: u(undefined, Date)
|
|
343
|
+
}, {
|
|
344
|
+
json: "lieu",
|
|
345
|
+
js: "lieu",
|
|
346
|
+
typ: u(undefined, r("Lieu"))
|
|
347
|
+
}, {
|
|
348
|
+
json: "cycleDeVie",
|
|
349
|
+
js: "cycleDeVie",
|
|
350
|
+
typ: r("CycleDeVie")
|
|
351
|
+
}, {
|
|
352
|
+
json: "demandeurs",
|
|
353
|
+
js: "demandeurs",
|
|
354
|
+
typ: u(undefined, r("Demandeurs"))
|
|
355
|
+
}, {
|
|
356
|
+
json: "organeReuniRef",
|
|
357
|
+
js: "organeReuniRef",
|
|
358
|
+
typ: u(undefined, "")
|
|
359
|
+
}, {
|
|
360
|
+
json: "typeReunion",
|
|
361
|
+
js: "typeReunion",
|
|
362
|
+
typ: u(undefined, r("TypeReunion"))
|
|
363
|
+
}, {
|
|
364
|
+
json: "participants",
|
|
365
|
+
js: "participants",
|
|
366
|
+
typ: u(undefined, r("Participants"))
|
|
367
|
+
}, {
|
|
368
|
+
json: "sessionRef",
|
|
369
|
+
js: "sessionRef",
|
|
370
|
+
typ: u(undefined, "")
|
|
371
|
+
}, {
|
|
372
|
+
json: "ouverturePresse",
|
|
373
|
+
js: "ouverturePresse",
|
|
374
|
+
typ: u(undefined, false)
|
|
375
|
+
}, {
|
|
376
|
+
json: "odj",
|
|
377
|
+
js: "odj",
|
|
378
|
+
typ: u(undefined, r("Odj"))
|
|
379
|
+
}, {
|
|
380
|
+
json: "compteRenduRef",
|
|
381
|
+
js: "compteRenduRef",
|
|
382
|
+
typ: u(undefined, "")
|
|
383
|
+
}, {
|
|
384
|
+
json: "identifiants",
|
|
385
|
+
js: "identifiants",
|
|
386
|
+
typ: u(undefined, r("Identifiants"))
|
|
387
|
+
}, {
|
|
388
|
+
json: "formatReunion",
|
|
389
|
+
js: "formatReunion",
|
|
390
|
+
typ: u(undefined, r("FormatReunion"))
|
|
391
|
+
}, {
|
|
392
|
+
json: "infosReunionsInternationale",
|
|
393
|
+
js: "infosReunionsInternationale",
|
|
394
|
+
typ: u(undefined, r("InfosReunionsInternationale"))
|
|
395
|
+
}, {
|
|
396
|
+
json: "captationVideo",
|
|
397
|
+
js: "captationVideo",
|
|
398
|
+
typ: u(undefined, false)
|
|
399
|
+
}, {
|
|
400
|
+
json: "visioConference",
|
|
401
|
+
js: "visioConference",
|
|
402
|
+
typ: u(undefined, "")
|
|
403
|
+
}], false),
|
|
404
|
+
Odj: o([{
|
|
405
|
+
json: "convocationOdj",
|
|
406
|
+
js: "convocationOdj",
|
|
407
|
+
typ: u(undefined, a(""))
|
|
408
|
+
}, {
|
|
409
|
+
json: "resumeOdj",
|
|
410
|
+
js: "resumeOdj",
|
|
411
|
+
typ: u(undefined, a(""))
|
|
412
|
+
}, {
|
|
413
|
+
json: "pointsOdj",
|
|
414
|
+
js: "pointsOdj",
|
|
415
|
+
typ: u(undefined, a(r("PointOdj")))
|
|
416
|
+
}], false),
|
|
417
|
+
PointOdj: o([{
|
|
418
|
+
json: "xsiType",
|
|
419
|
+
js: "xsiType",
|
|
420
|
+
typ: r("PointOdjXsiType")
|
|
421
|
+
}, {
|
|
422
|
+
json: "uid",
|
|
423
|
+
js: "uid",
|
|
424
|
+
typ: ""
|
|
425
|
+
}, {
|
|
426
|
+
json: "cycleDeVie",
|
|
427
|
+
js: "cycleDeVie",
|
|
428
|
+
typ: r("CycleDeVie")
|
|
429
|
+
}, {
|
|
430
|
+
json: "objet",
|
|
431
|
+
js: "objet",
|
|
432
|
+
typ: ""
|
|
433
|
+
}, {
|
|
434
|
+
json: "procedure",
|
|
435
|
+
js: "procedure",
|
|
436
|
+
typ: u(undefined, r("Procedure"))
|
|
437
|
+
}, {
|
|
438
|
+
json: "dossiersLegislatifsRefs",
|
|
439
|
+
js: "dossiersLegislatifsRefs",
|
|
440
|
+
typ: u(undefined, a(""))
|
|
441
|
+
}, {
|
|
442
|
+
json: "typePointOdj",
|
|
443
|
+
js: "typePointOdj",
|
|
444
|
+
typ: r("TypePointOdj")
|
|
445
|
+
}, {
|
|
446
|
+
json: "comiteSecret",
|
|
447
|
+
js: "comiteSecret",
|
|
448
|
+
typ: false
|
|
449
|
+
}, {
|
|
450
|
+
json: "natureTravauxOdj",
|
|
451
|
+
js: "natureTravauxOdj",
|
|
452
|
+
typ: u(undefined, r("NatureTravauxOdj"))
|
|
453
|
+
}, {
|
|
454
|
+
json: "dateConfPres",
|
|
455
|
+
js: "dateConfPres",
|
|
456
|
+
typ: u(undefined, Date)
|
|
457
|
+
}, {
|
|
458
|
+
json: "dateLettreMinistre",
|
|
459
|
+
js: "dateLettreMinistre",
|
|
460
|
+
typ: u(undefined, Date)
|
|
461
|
+
}], false),
|
|
462
|
+
CycleDeVie: o([{
|
|
463
|
+
json: "etat",
|
|
464
|
+
js: "etat",
|
|
465
|
+
typ: r("EtatCycleDeVie")
|
|
466
|
+
}, {
|
|
467
|
+
json: "chrono",
|
|
468
|
+
js: "chrono",
|
|
469
|
+
typ: r("Chrono")
|
|
470
|
+
}], false),
|
|
471
|
+
Chrono: o([{
|
|
472
|
+
json: "creation",
|
|
473
|
+
js: "creation",
|
|
474
|
+
typ: Date
|
|
475
|
+
}, {
|
|
476
|
+
json: "cloture",
|
|
477
|
+
js: "cloture",
|
|
478
|
+
typ: u(undefined, Date)
|
|
479
|
+
}], false),
|
|
480
|
+
Demandeurs: o([{
|
|
481
|
+
json: "acteurs",
|
|
482
|
+
js: "acteurs",
|
|
483
|
+
typ: u(undefined, a(r("DemandeurActeur")))
|
|
484
|
+
}, {
|
|
485
|
+
json: "organe",
|
|
486
|
+
js: "organe",
|
|
487
|
+
typ: u(undefined, r("DemandeurOrgane"))
|
|
488
|
+
}], false),
|
|
489
|
+
DemandeurActeur: o([{
|
|
490
|
+
json: "nom",
|
|
491
|
+
js: "nom",
|
|
492
|
+
typ: u(undefined, "")
|
|
493
|
+
}, {
|
|
494
|
+
json: "acteurRef",
|
|
495
|
+
js: "acteurRef",
|
|
496
|
+
typ: ""
|
|
497
|
+
}], false),
|
|
498
|
+
DemandeurOrgane: o([{
|
|
499
|
+
json: "nom",
|
|
500
|
+
js: "nom",
|
|
501
|
+
typ: ""
|
|
502
|
+
}, {
|
|
503
|
+
json: "organeRef",
|
|
504
|
+
js: "organeRef",
|
|
505
|
+
typ: ""
|
|
506
|
+
}], false),
|
|
507
|
+
Identifiants: o([{
|
|
508
|
+
json: "numSeanceJo",
|
|
509
|
+
js: "numSeanceJo",
|
|
510
|
+
typ: u(undefined, "")
|
|
511
|
+
}, {
|
|
512
|
+
json: "idJo",
|
|
513
|
+
js: "idJo",
|
|
514
|
+
typ: u(undefined, "")
|
|
515
|
+
}, {
|
|
516
|
+
json: "quantieme",
|
|
517
|
+
js: "quantieme",
|
|
518
|
+
typ: r("Quantieme")
|
|
519
|
+
}, {
|
|
520
|
+
json: "dateSeance",
|
|
521
|
+
js: "dateSeance",
|
|
522
|
+
typ: Date
|
|
523
|
+
}], false),
|
|
524
|
+
InfosReunionsInternationale: o([{
|
|
525
|
+
json: "estReunionInternationale",
|
|
526
|
+
js: "estReunionInternationale",
|
|
527
|
+
typ: false
|
|
528
|
+
}, {
|
|
529
|
+
json: "listePays",
|
|
530
|
+
js: "listePays",
|
|
531
|
+
typ: u(undefined, a(""))
|
|
532
|
+
}, {
|
|
533
|
+
json: "informationsComplementaires",
|
|
534
|
+
js: "informationsComplementaires",
|
|
535
|
+
typ: u(undefined, "")
|
|
536
|
+
}], false),
|
|
537
|
+
Lieu: o([{
|
|
538
|
+
json: "code",
|
|
539
|
+
js: "code",
|
|
540
|
+
typ: u(undefined, "")
|
|
541
|
+
}, {
|
|
542
|
+
json: "libelleCourt",
|
|
543
|
+
js: "libelleCourt",
|
|
544
|
+
typ: u(undefined, "")
|
|
545
|
+
}, {
|
|
546
|
+
json: "libelleLong",
|
|
547
|
+
js: "libelleLong",
|
|
548
|
+
typ: u(undefined, "")
|
|
549
|
+
}, {
|
|
550
|
+
json: "lieuRef",
|
|
551
|
+
js: "lieuRef",
|
|
552
|
+
typ: u(undefined, "")
|
|
553
|
+
}], false),
|
|
554
|
+
Participants: o([{
|
|
555
|
+
json: "participantsInternes",
|
|
556
|
+
js: "participantsInternes",
|
|
557
|
+
typ: u(undefined, a(r("ParticipantInterne")))
|
|
558
|
+
}, {
|
|
559
|
+
json: "personnesAuditionnees",
|
|
560
|
+
js: "personnesAuditionnees",
|
|
561
|
+
typ: u(undefined, a(r("PersonneAuditionnee")))
|
|
562
|
+
}], false),
|
|
563
|
+
ParticipantInterne: o([{
|
|
564
|
+
json: "acteurRef",
|
|
565
|
+
js: "acteurRef",
|
|
566
|
+
typ: ""
|
|
567
|
+
}, {
|
|
568
|
+
json: "presence",
|
|
569
|
+
js: "presence",
|
|
570
|
+
typ: r("Presence")
|
|
571
|
+
}], false),
|
|
572
|
+
PersonneAuditionnee: o([{
|
|
573
|
+
json: "xsiType",
|
|
574
|
+
js: "xsiType",
|
|
575
|
+
typ: r("PersonneAuditionneeXsiType")
|
|
576
|
+
}, {
|
|
577
|
+
json: "uid",
|
|
578
|
+
js: "uid",
|
|
579
|
+
typ: ""
|
|
580
|
+
}, {
|
|
581
|
+
json: "ident",
|
|
582
|
+
js: "ident",
|
|
583
|
+
typ: r("Ident")
|
|
584
|
+
}, {
|
|
585
|
+
json: "dateNais",
|
|
586
|
+
js: "dateNais",
|
|
587
|
+
typ: u(undefined, Date)
|
|
588
|
+
}], false),
|
|
589
|
+
Ident: o([{
|
|
590
|
+
json: "civ",
|
|
591
|
+
js: "civ",
|
|
592
|
+
typ: r("Civ")
|
|
593
|
+
}, {
|
|
594
|
+
json: "prenom",
|
|
595
|
+
js: "prenom",
|
|
596
|
+
typ: ""
|
|
597
|
+
}, {
|
|
598
|
+
json: "nom",
|
|
599
|
+
js: "nom",
|
|
600
|
+
typ: ""
|
|
601
|
+
}, {
|
|
602
|
+
json: "alpha",
|
|
603
|
+
js: "alpha",
|
|
604
|
+
typ: u(undefined, "")
|
|
605
|
+
}, {
|
|
606
|
+
json: "trigramme",
|
|
607
|
+
js: "trigramme",
|
|
608
|
+
typ: u(undefined, "")
|
|
609
|
+
}], false),
|
|
610
|
+
ReunionXsiType: ["reunionCommission_type", "reunionInitParlementaire_type", "seance_type"],
|
|
611
|
+
PointOdjXsiType: ["podjReunion_type", "podjSeanceConfPres_type"],
|
|
612
|
+
EtatCycleDeVie: ["Annulé", "Confirmé", "Eventuel", "Supprimé"],
|
|
613
|
+
NatureTravauxOdj: ["ODJPR", "ODJSN"],
|
|
614
|
+
Procedure: ["discussion générale commune", "procédure d'examen simplifiée-Article 103", "procédure d'examen simplifiée-Article 106", "procédure de législation en commission-Article 107-1"],
|
|
615
|
+
TypePointOdj: ["Amendements (Art. 88)", "Amendements (Art. 91)", "Audition", "Audition ministre", "Audition ministre ouverte à la presse", "Audition ouverte à la presse", "Communication", "Constitution de mission d'information", "Discussion", "Débat d'initiative parlementaire", "Déclaration du Gouvernement suivie d'un débat", "Echanges de vues", "Examen", "Explications de vote des groupes et vote par scrutin public", "Explications de vote et vote par scrutin public", "Fixation de l'ordre du jour", "Nomination bureau", "Nomination candidats organisme extraparlementaire", "Nomination d'un membre d'une mission d'information", "Nomination rapporteur", "Nomination rapporteur d'application", "Nomination rapporteur d'information", "Nomination rapporteur pour avis", "Ouverture et clôture de session", "Questions au Gouvernement", "Questions orales sans débat", "Rapport", "Rapport d'information", "Rapport pour avis", "Suite de la discussion", "Table ronde", "Vote par scrutin public", "Vote solennel"],
|
|
616
|
+
FormatReunion: ["AuditionExterne", "AuditionParPresidentCommission", "AuditionParRapporteur", "Ordinaire"],
|
|
617
|
+
Quantieme: ["Deuxième", "Première", "Troisième", "Unique"],
|
|
618
|
+
Presence: ["absent", "excusé", "présent"],
|
|
619
|
+
Civ: ["M.", "Mme"],
|
|
620
|
+
PersonneAuditionneeXsiType: ["IdActeur_type", "IdPersonneExterne_type"],
|
|
621
|
+
TypeReunion: ["DEP", "GA", "GE", "GEVI", "GP", "HÉ Aurélien"]
|
|
622
|
+
};
|
|
623
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXVuaW9uWHNpVHlwZSIsIlBvaW50T2RqWHNpVHlwZSIsIkV0YXRDeWNsZURlVmllIiwiTmF0dXJlVHJhdmF1eE9kaiIsIlByb2NlZHVyZSIsIlR5cGVQb2ludE9kaiIsIkZvcm1hdFJldW5pb24iLCJRdWFudGllbWUiLCJQcmVzZW5jZSIsIkNpdiIsIlBlcnNvbm5lQXVkaXRpb25uZWVYc2lUeXBlIiwiVHlwZVJldW5pb24iLCJDb252ZXJ0IiwidG9BZ2VuZGFzIiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwiYWdlbmRhc1RvSnNvbiIsInZhbHVlIiwic3RyaW5naWZ5IiwidW5jYXN0IiwidG9SZXVuaW9uIiwicmV1bmlvblRvSnNvbiIsImludmFsaWRWYWx1ZSIsInR5cCIsInZhbCIsImtleSIsIkVycm9yIiwianNvblRvSlNQcm9wcyIsImpzb25Ub0pTIiwidW5kZWZpbmVkIiwibWFwIiwicHJvcHMiLCJmb3JFYWNoIiwicCIsImpzIiwianNUb0pTT05Qcm9wcyIsImpzVG9KU09OIiwidHJhbnNmb3JtIiwiZ2V0UHJvcHMiLCJ0cmFuc2Zvcm1QcmltaXRpdmUiLCJ0cmFuc2Zvcm1VbmlvbiIsInR5cHMiLCJsIiwibGVuZ3RoIiwiaSIsIl8iLCJ0cmFuc2Zvcm1FbnVtIiwiY2FzZXMiLCJpbmRleE9mIiwidHJhbnNmb3JtQXJyYXkiLCJBcnJheSIsImlzQXJyYXkiLCJlbCIsInRyYW5zZm9ybURhdGUiLCJkIiwiRGF0ZSIsImlzTmFOIiwidmFsdWVPZiIsInRyYW5zZm9ybU9iamVjdCIsImFkZGl0aW9uYWwiLCJyZXN1bHQiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcCIsInYiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJyZWYiLCJ0eXBlTWFwIiwidW5pb25NZW1iZXJzIiwiYXJyYXlJdGVtcyIsImEiLCJ1IiwibyIsIm5hbWUiLCJBZ2VuZGFzIiwiUmV1bmlvbiIsIk9kaiIsIlBvaW50T2RqIiwiQ3ljbGVEZVZpZSIsIkNocm9ubyIsIkRlbWFuZGV1cnMiLCJEZW1hbmRldXJBY3RldXIiLCJEZW1hbmRldXJPcmdhbmUiLCJJZGVudGlmaWFudHMiLCJJbmZvc1JldW5pb25zSW50ZXJuYXRpb25hbGUiLCJMaWV1IiwiUGFydGljaXBhbnRzIiwiUGFydGljaXBhbnRJbnRlcm5lIiwiUGVyc29ubmVBdWRpdGlvbm5lZSIsIklkZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2FnZW5kYXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVG8gcGFyc2UgdGhpcyBkYXRhOlxuLy9cbi8vICAgaW1wb3J0IHsgQ29udmVydCwgUmV1bmlvbiwgQWdlbmRhcyB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IHJldW5pb24gPSBDb252ZXJ0LnRvUmV1bmlvbihqc29uKTtcbi8vICAgY29uc3QgYWdlbmRhcyA9IENvbnZlcnQudG9BZ2VuZGFzKGpzb24pO1xuLy9cbi8vIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBKU09OIGRvZXNuJ3Rcbi8vIG1hdGNoIHRoZSBleHBlY3RlZCBpbnRlcmZhY2UsIGV2ZW4gaWYgdGhlIEpTT04gaXMgdmFsaWQuXG5cbmltcG9ydCB7IEFjdGV1ciwgT3JnYW5lIH0gZnJvbSBcIi4vYWN0ZXVyc19ldF9vcmdhbmVzXCJcblxuZXhwb3J0IGludGVyZmFjZSBBZ2VuZGFzIHtcbiAgcmV1bmlvbnM6IFJldW5pb25bXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldW5pb24ge1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nXG4gIHhzaVR5cGU/OiBSZXVuaW9uWHNpVHlwZVxuICB1aWQ6IHN0cmluZ1xuICB0aW1lc3RhbXBEZWJ1dDogRGF0ZVxuICB0aW1lc3RhbXBGaW4/OiBEYXRlXG4gIGxpZXU/OiBMaWV1XG4gIGN5Y2xlRGVWaWU6IEN5Y2xlRGVWaWVcbiAgZGVtYW5kZXVycz86IERlbWFuZGV1cnNcbiAgb3JnYW5lUmV1bmlSZWY/OiBzdHJpbmdcbiAgb3JnYW5lUmV1bmk/OiBPcmdhbmUgLy8gQWRkZWQgYnkgVHJpY290ZXVzZXNcbiAgdHlwZVJldW5pb24/OiBUeXBlUmV1bmlvblxuICBwYXJ0aWNpcGFudHM/OiBQYXJ0aWNpcGFudHNcbiAgc2Vzc2lvblJlZj86IHN0cmluZ1xuICBvdXZlcnR1cmVQcmVzc2U/OiBib29sZWFuXG4gIG9kaj86IE9kalxuICBjb21wdGVSZW5kdVJlZj86IHN0cmluZ1xuICBpZGVudGlmaWFudHM/OiBJZGVudGlmaWFudHNcbiAgZm9ybWF0UmV1bmlvbj86IEZvcm1hdFJldW5pb25cbiAgaW5mb3NSZXVuaW9uc0ludGVybmF0aW9uYWxlPzogSW5mb3NSZXVuaW9uc0ludGVybmF0aW9uYWxlXG4gIGNhcHRhdGlvblZpZGVvPzogYm9vbGVhblxuICB2aXNpb0NvbmZlcmVuY2U/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gUmV1bmlvblhzaVR5cGUge1xuICBSZXVuaW9uQ29tbWlzc2lvblR5cGUgPSBcInJldW5pb25Db21taXNzaW9uX3R5cGVcIixcbiAgUmV1bmlvbkluaXRQYXJsZW1lbnRhaXJlVHlwZSA9IFwicmV1bmlvbkluaXRQYXJsZW1lbnRhaXJlX3R5cGVcIixcbiAgU2VhbmNlVHlwZSA9IFwic2VhbmNlX3R5cGVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPZGoge1xuICBjb252b2NhdGlvbk9kaj86IHN0cmluZ1tdXG4gIHJlc3VtZU9kaj86IHN0cmluZ1tdXG4gIHBvaW50c09kaj86IFBvaW50T2RqW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2ludE9kaiB7XG4gIHhzaVR5cGU6IFBvaW50T2RqWHNpVHlwZVxuICB1aWQ6IHN0cmluZ1xuICBjeWNsZURlVmllOiBDeWNsZURlVmllXG4gIG9iamV0OiBzdHJpbmdcbiAgcHJvY2VkdXJlPzogUHJvY2VkdXJlXG4gIGRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzPzogc3RyaW5nW11cbiAgdHlwZVBvaW50T2RqOiBUeXBlUG9pbnRPZGpcbiAgY29taXRlU2VjcmV0OiBib29sZWFuXG4gIG5hdHVyZVRyYXZhdXhPZGo/OiBOYXR1cmVUcmF2YXV4T2RqXG4gIGRhdGVDb25mUHJlcz86IERhdGVcbiAgZGF0ZUxldHRyZU1pbmlzdHJlPzogRGF0ZVxufVxuXG5leHBvcnQgZW51bSBQb2ludE9kalhzaVR5cGUge1xuICBQb2RqUmV1bmlvblR5cGUgPSBcInBvZGpSZXVuaW9uX3R5cGVcIixcbiAgUG9kalNlYW5jZUNvbmZQcmVzVHlwZSA9IFwicG9kalNlYW5jZUNvbmZQcmVzX3R5cGVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDeWNsZURlVmllIHtcbiAgZXRhdDogRXRhdEN5Y2xlRGVWaWVcbiAgY2hyb25vOiBDaHJvbm9cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaHJvbm8ge1xuICBjcmVhdGlvbjogRGF0ZVxuICBjbG90dXJlPzogRGF0ZVxufVxuXG5leHBvcnQgZW51bSBFdGF0Q3ljbGVEZVZpZSB7XG4gIEFubnVsw6kgPSBcIkFubnVsw6lcIixcbiAgQ29uZmlybcOpID0gXCJDb25maXJtw6lcIixcbiAgRXZlbnR1ZWwgPSBcIkV2ZW50dWVsXCIsXG4gIFN1cHByaW3DqSA9IFwiU3VwcHJpbcOpXCIsXG59XG5cbmV4cG9ydCBlbnVtIE5hdHVyZVRyYXZhdXhPZGoge1xuICBPZGpwciA9IFwiT0RKUFJcIixcbiAgT2Rqc24gPSBcIk9ESlNOXCIsXG59XG5cbmV4cG9ydCBlbnVtIFByb2NlZHVyZSB7XG4gIERpc2N1c3Npb25Hw6luw6lyYWxlQ29tbXVuZSA9IFwiZGlzY3Vzc2lvbiBnw6luw6lyYWxlIGNvbW11bmVcIixcbiAgUHJvY8OpZHVyZURFeGFtZW5TaW1wbGlmacOpZUFydGljbGUxMDMgPSBcInByb2PDqWR1cmUgZCdleGFtZW4gc2ltcGxpZmnDqWUtQXJ0aWNsZSAxMDNcIixcbiAgUHJvY8OpZHVyZURFeGFtZW5TaW1wbGlmacOpZUFydGljbGUxMDYgPSBcInByb2PDqWR1cmUgZCdleGFtZW4gc2ltcGxpZmnDqWUtQXJ0aWNsZSAxMDZcIixcbiAgUHJvY8OpZHVyZURlTMOpZ2lzbGF0aW9uRW5Db21taXNzaW9uQXJ0aWNsZTEwNzEgPSBcInByb2PDqWR1cmUgZGUgbMOpZ2lzbGF0aW9uIGVuIGNvbW1pc3Npb24tQXJ0aWNsZSAxMDctMVwiLFxufVxuXG5leHBvcnQgZW51bSBUeXBlUG9pbnRPZGoge1xuICBBbWVuZGVtZW50c0FydDg4ID0gXCJBbWVuZGVtZW50cyAoQXJ0LiA4OClcIixcbiAgQW1lbmRlbWVudHNBcnQ5MSA9IFwiQW1lbmRlbWVudHMgKEFydC4gOTEpXCIsXG4gIEF1ZGl0aW9uID0gXCJBdWRpdGlvblwiLFxuICBBdWRpdGlvbk1pbmlzdHJlID0gXCJBdWRpdGlvbiBtaW5pc3RyZVwiLFxuICBBdWRpdGlvbk1pbmlzdHJlT3V2ZXJ0ZcOATGFQcmVzc2UgPSBcIkF1ZGl0aW9uIG1pbmlzdHJlIG91dmVydGUgw6AgbGEgcHJlc3NlXCIsXG4gIEF1ZGl0aW9uT3V2ZXJ0ZcOATGFQcmVzc2UgPSBcIkF1ZGl0aW9uIG91dmVydGUgw6AgbGEgcHJlc3NlXCIsXG4gIENvbW11bmljYXRpb24gPSBcIkNvbW11bmljYXRpb25cIixcbiAgQ29uc3RpdHV0aW9uRGVNaXNzaW9uREluZm9ybWF0aW9uID0gXCJDb25zdGl0dXRpb24gZGUgbWlzc2lvbiBkJ2luZm9ybWF0aW9uXCIsXG4gIERpc2N1c3Npb24gPSBcIkRpc2N1c3Npb25cIixcbiAgRMOpYmF0REluaXRpYXRpdmVQYXJsZW1lbnRhaXJlID0gXCJEw6liYXQgZCdpbml0aWF0aXZlIHBhcmxlbWVudGFpcmVcIixcbiAgRMOpY2xhcmF0aW9uRHVHb3V2ZXJuZW1lbnRTdWl2aWVEVW5Ew6liYXQgPSBcIkTDqWNsYXJhdGlvbiBkdSBHb3V2ZXJuZW1lbnQgc3VpdmllIGQndW4gZMOpYmF0XCIsXG4gIEVjaGFuZ2VzRGVWdWVzID0gXCJFY2hhbmdlcyBkZSB2dWVzXCIsXG4gIEV4YW1lbiA9IFwiRXhhbWVuXCIsXG4gIEV4cGxpY2F0aW9uc0RlVm90ZURlc0dyb3VwZXNFdFZvdGVQYXJTY3J1dGluUHVibGljID0gXCJFeHBsaWNhdGlvbnMgZGUgdm90ZSBkZXMgZ3JvdXBlcyBldCB2b3RlIHBhciBzY3J1dGluIHB1YmxpY1wiLFxuICBFeHBsaWNhdGlvbnNEZVZvdGVFdFZvdGVQYXJTY3J1dGluUHVibGljID0gXCJFeHBsaWNhdGlvbnMgZGUgdm90ZSBldCB2b3RlIHBhciBzY3J1dGluIHB1YmxpY1wiLFxuICBGaXhhdGlvbkRlTE9yZHJlRHVKb3VyID0gXCJGaXhhdGlvbiBkZSBsJ29yZHJlIGR1IGpvdXJcIixcbiAgTm9taW5hdGlvbkJ1cmVhdSA9IFwiTm9taW5hdGlvbiBidXJlYXVcIixcbiAgTm9taW5hdGlvbkNhbmRpZGF0c09yZ2FuaXNtZUV4dHJhcGFybGVtZW50YWlyZSA9IFwiTm9taW5hdGlvbiBjYW5kaWRhdHMgb3JnYW5pc21lIGV4dHJhcGFybGVtZW50YWlyZVwiLFxuICBOb21pbmF0aW9uRFVuTWVtYnJlRFVuZU1pc3Npb25ESW5mb3JtYXRpb24gPSBcIk5vbWluYXRpb24gZCd1biBtZW1icmUgZCd1bmUgbWlzc2lvbiBkJ2luZm9ybWF0aW9uXCIsXG4gIE5vbWluYXRpb25SYXBwb3J0ZXVyID0gXCJOb21pbmF0aW9uIHJhcHBvcnRldXJcIixcbiAgTm9taW5hdGlvblJhcHBvcnRldXJEQXBwbGljYXRpb24gPSBcIk5vbWluYXRpb24gcmFwcG9ydGV1ciBkJ2FwcGxpY2F0aW9uXCIsXG4gIE5vbWluYXRpb25SYXBwb3J0ZXVyREluZm9ybWF0aW9uID0gXCJOb21pbmF0aW9uIHJhcHBvcnRldXIgZCdpbmZvcm1hdGlvblwiLFxuICBOb21pbmF0aW9uUmFwcG9ydGV1clBvdXJBdmlzID0gXCJOb21pbmF0aW9uIHJhcHBvcnRldXIgcG91ciBhdmlzXCIsXG4gIE91dmVydHVyZUV0Q2zDtHR1cmVEZVNlc3Npb24gPSBcIk91dmVydHVyZSBldCBjbMO0dHVyZSBkZSBzZXNzaW9uXCIsXG4gIFF1ZXN0aW9uc0F1R291dmVybmVtZW50ID0gXCJRdWVzdGlvbnMgYXUgR291dmVybmVtZW50XCIsXG4gIFF1ZXN0aW9uc09yYWxlc1NhbnNEw6liYXQgPSBcIlF1ZXN0aW9ucyBvcmFsZXMgc2FucyBkw6liYXRcIixcbiAgUmFwcG9ydCA9IFwiUmFwcG9ydFwiLFxuICBSYXBwb3J0REluZm9ybWF0aW9uID0gXCJSYXBwb3J0IGQnaW5mb3JtYXRpb25cIixcbiAgUmFwcG9ydFBvdXJBdmlzID0gXCJSYXBwb3J0IHBvdXIgYXZpc1wiLFxuICBTdWl0ZURlTGFEaXNjdXNzaW9uID0gXCJTdWl0ZSBkZSBsYSBkaXNjdXNzaW9uXCIsXG4gIFRhYmxlUm9uZGUgPSBcIlRhYmxlIHJvbmRlXCIsXG4gIFZvdGVQYXJTY3J1dGluUHVibGljID0gXCJWb3RlIHBhciBzY3J1dGluIHB1YmxpY1wiLFxuICBWb3RlU29sZW5uZWwgPSBcIlZvdGUgc29sZW5uZWxcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZW1hbmRldXJzIHtcbiAgYWN0ZXVycz86IERlbWFuZGV1ckFjdGV1cltdXG4gIG9yZ2FuZT86IERlbWFuZGV1ck9yZ2FuZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbWFuZGV1ckFjdGV1ciB7XG4gIG5vbT86IHN0cmluZ1xuICBhY3RldXJSZWY6IHN0cmluZ1xuICBhY3RldXI/OiBBY3RldXIgLy8gQWRkZWQgYnkgVHJpY290ZXVzZXNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZW1hbmRldXJPcmdhbmUge1xuICBub206IHN0cmluZ1xuICBvcmdhbmVSZWY6IHN0cmluZ1xuICBvcmdhbmU/OiBPcmdhbmUgLy8gQWRkZWQgYnkgVHJpY290ZXVzZXNcbn1cblxuZXhwb3J0IGVudW0gRm9ybWF0UmV1bmlvbiB7XG4gIEF1ZGl0aW9uRXh0ZXJuZSA9IFwiQXVkaXRpb25FeHRlcm5lXCIsXG4gIEF1ZGl0aW9uUGFyUHJlc2lkZW50Q29tbWlzc2lvbiA9IFwiQXVkaXRpb25QYXJQcmVzaWRlbnRDb21taXNzaW9uXCIsXG4gIEF1ZGl0aW9uUGFyUmFwcG9ydGV1ciA9IFwiQXVkaXRpb25QYXJSYXBwb3J0ZXVyXCIsXG4gIE9yZGluYWlyZSA9IFwiT3JkaW5haXJlXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWRlbnRpZmlhbnRzIHtcbiAgbnVtU2VhbmNlSm8/OiBzdHJpbmdcbiAgaWRKbz86IHN0cmluZ1xuICBxdWFudGllbWU6IFF1YW50aWVtZVxuICBkYXRlU2VhbmNlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gUXVhbnRpZW1lIHtcbiAgRGV1eGnDqG1lID0gXCJEZXV4acOobWVcIixcbiAgUHJlbWnDqHJlID0gXCJQcmVtacOocmVcIixcbiAgVHJvaXNpw6htZSA9IFwiVHJvaXNpw6htZVwiLFxuICBVbmlxdWUgPSBcIlVuaXF1ZVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9zUmV1bmlvbnNJbnRlcm5hdGlvbmFsZSB7XG4gIGVzdFJldW5pb25JbnRlcm5hdGlvbmFsZTogYm9vbGVhblxuICBsaXN0ZVBheXM/OiBzdHJpbmdbXVxuICBpbmZvcm1hdGlvbnNDb21wbGVtZW50YWlyZXM/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWV1IHtcbiAgY29kZT86IHN0cmluZ1xuICBsaWJlbGxlQ291cnQ/OiBzdHJpbmdcbiAgbGliZWxsZUxvbmc/OiBzdHJpbmdcbiAgbGlldVJlZj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpY2lwYW50cyB7XG4gIHBhcnRpY2lwYW50c0ludGVybmVzPzogUGFydGljaXBhbnRJbnRlcm5lW11cbiAgcGVyc29ubmVzQXVkaXRpb25uZWVzPzogUGVyc29ubmVBdWRpdGlvbm5lZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGljaXBhbnRJbnRlcm5lIHtcbiAgYWN0ZXVyUmVmOiBzdHJpbmdcbiAgYWN0ZXVyPzogQWN0ZXVyIC8vIEFkZGVkIGJ5IFRyaWNvdGV1c2VzXG4gIHByZXNlbmNlOiBQcmVzZW5jZVxufVxuXG5leHBvcnQgZW51bSBQcmVzZW5jZSB7XG4gIEFic2VudCA9IFwiYWJzZW50XCIsXG4gIEV4Y3Vzw6kgPSBcImV4Y3Vzw6lcIixcbiAgUHLDqXNlbnQgPSBcInByw6lzZW50XCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29ubmVBdWRpdGlvbm5lZSB7XG4gIHhzaVR5cGU6IFBlcnNvbm5lQXVkaXRpb25uZWVYc2lUeXBlXG4gIHVpZDogc3RyaW5nXG4gIGlkZW50OiBJZGVudFxuICBkYXRlTmFpcz86IERhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudCB7XG4gIGNpdjogQ2l2XG4gIHByZW5vbTogc3RyaW5nXG4gIG5vbTogc3RyaW5nXG4gIGFscGhhPzogc3RyaW5nXG4gIHRyaWdyYW1tZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZW51bSBDaXYge1xuICBNID0gXCJNLlwiLFxuICBNbWUgPSBcIk1tZVwiLFxufVxuXG5leHBvcnQgZW51bSBQZXJzb25uZUF1ZGl0aW9ubmVlWHNpVHlwZSB7XG4gIElkQWN0ZXVyVHlwZSA9IFwiSWRBY3RldXJfdHlwZVwiLFxuICBJZFBlcnNvbm5lRXh0ZXJuZVR5cGUgPSBcIklkUGVyc29ubmVFeHRlcm5lX3R5cGVcIixcbn1cblxuZXhwb3J0IGVudW0gVHlwZVJldW5pb24ge1xuICBEZXAgPSBcIkRFUFwiLCAvLyBEw6lwdXTDqVxuICBHYSA9IFwiR0FcIiwgLy8gR3JvdXBlIGQnYW1pdGnDqVxuICBHZSA9IFwiR0VcIiwgLy8gR3JvdXBlIGQnw6l0dWRlXG4gIEdldmkgPSBcIkdFVklcIiwgLy8gR3JvdXBlIGQnw6l0dWRlIMOgIHZvY2F0aW9uIGludGVybmF0aW9uYWxlXG4gIEdwID0gXCJHUFwiLCAvLyBHcm91cGUgcGFybGVtZW50YWlyZVxuICBIw6lBdXLDqWxpZW4gPSBcIkjDiSBBdXLDqWxpZW5cIixcbn1cblxuLy8gQ29udmVydHMgSlNPTiBzdHJpbmdzIHRvL2Zyb20geW91ciB0eXBlc1xuLy8gYW5kIGFzc2VydHMgdGhlIHJlc3VsdHMgb2YgSlNPTi5wYXJzZSBhdCBydW50aW1lXG5leHBvcnQgY2xhc3MgQ29udmVydCB7XG4gIHB1YmxpYyBzdGF0aWMgdG9BZ2VuZGFzKGpzb246IHN0cmluZyk6IEFnZW5kYXMge1xuICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJBZ2VuZGFzXCIpKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhZ2VuZGFzVG9Kc29uKHZhbHVlOiBBZ2VuZGFzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiQWdlbmRhc1wiKSksIG51bGwsIDIpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvUmV1bmlvbihqc29uOiBzdHJpbmcpOiBSZXVuaW9uIHtcbiAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiUmV1bmlvblwiKSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgcmV1bmlvblRvSnNvbih2YWx1ZTogUmV1bmlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIlJldW5pb25cIikpLCBudWxsLCAyKVxuICB9XG59XG5cbmZ1bmN0aW9uIGludmFsaWRWYWx1ZSh0eXA6IGFueSwgdmFsOiBhbnksIGtleTogYW55ID0gXCJcIik6IG5ldmVyIHtcbiAgaWYgKGtleSkge1xuICAgIHRocm93IEVycm9yKFxuICAgICAgYEludmFsaWQgdmFsdWUgZm9yIGtleSBcIiR7a2V5fVwiLiBFeHBlY3RlZCB0eXBlICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHR5cCxcbiAgICAgICl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2YWwpfWAsXG4gICAgKVxuICB9XG4gIHRocm93IEVycm9yKFxuICAgIGBJbnZhbGlkIHZhbHVlICR7SlNPTi5zdHJpbmdpZnkodmFsKX0gZm9yIHR5cGUgJHtKU09OLnN0cmluZ2lmeSh0eXApfWAsXG4gIClcbn1cblxuZnVuY3Rpb24ganNvblRvSlNQcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gIGlmICh0eXAuanNvblRvSlMgPT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBtYXA6IGFueSA9IHt9XG4gICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gKG1hcFtwLmpzb25dID0geyBrZXk6IHAuanMsIHR5cDogcC50eXAgfSkpXG4gICAgdHlwLmpzb25Ub0pTID0gbWFwXG4gIH1cbiAgcmV0dXJuIHR5cC5qc29uVG9KU1xufVxuXG5mdW5jdGlvbiBqc1RvSlNPTlByb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc1RvSlNPTiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIG1hcDogYW55ID0ge31cbiAgICB0eXAucHJvcHMuZm9yRWFjaCgocDogYW55KSA9PiAobWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KSlcbiAgICB0eXAuanNUb0pTT04gPSBtYXBcbiAgfVxuICByZXR1cm4gdHlwLmpzVG9KU09OXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybSh2YWw6IGFueSwgdHlwOiBhbnksIGdldFByb3BzOiBhbnksIGtleTogYW55ID0gXCJcIik6IGFueSB7XG4gIGZ1bmN0aW9uIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXA6IHN0cmluZywgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5KVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgIGNvbnN0IGwgPSB0eXBzLmxlbmd0aFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB0eXAgPSB0eXBzW2ldXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcylcbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbFxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMsIHZhbClcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBpbnZhbGlkVmFsdWUoXCJhcnJheVwiLCB2YWwpXG4gICAgcmV0dXJuIHZhbC5tYXAoKGVsKSA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoaXNOYU4oZC52YWx1ZU9mKCkpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwiRGF0ZVwiLCB2YWwpXG4gICAgfVxuICAgIHJldHVybiBkXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3QoXG4gICAgcHJvcHM6IHsgW2s6IHN0cmluZ106IGFueSB9LFxuICAgIGFkZGl0aW9uYWw6IGFueSxcbiAgICB2YWw6IGFueSxcbiAgKTogYW55IHtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwib2JqZWN0XCIsIHZhbClcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1trZXldXG4gICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KVxuICAgICAgICA/IHZhbFtrZXldXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywgcHJvcC5rZXkpXG4gICAgfSlcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm0odmFsW2tleV0sIGFkZGl0aW9uYWwsIGdldFByb3BzLCBrZXkpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsXG4gIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICBpZiAodmFsID09PSBudWxsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgfVxuICAvLyBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXVxuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKVxuICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIilcbiAgICAgID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpXG4gICAgICA/IHRyYW5zZm9ybUFycmF5KHR5cC5hcnJheUl0ZW1zLCB2YWwpXG4gICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcInByb3BzXCIpXG4gICAgICA/IHRyYW5zZm9ybU9iamVjdChnZXRQcm9wcyh0eXApLCB0eXAuYWRkaXRpb25hbCwgdmFsKVxuICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpXG4gIH1cbiAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgaWYgKHR5cCA9PT0gRGF0ZSAmJiB0eXBlb2YgdmFsICE9PSBcIm51bWJlclwiKSByZXR1cm4gdHJhbnNmb3JtRGF0ZSh2YWwpXG4gIHJldHVybiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwLCB2YWwpXG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzb25Ub0pTUHJvcHMpXG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNUb0pTT05Qcm9wcylcbn1cblxuZnVuY3Rpb24gYSh0eXA6IGFueSkge1xuICByZXR1cm4geyBhcnJheUl0ZW1zOiB0eXAgfVxufVxuXG5mdW5jdGlvbiB1KC4uLnR5cHM6IGFueVtdKSB7XG4gIHJldHVybiB7IHVuaW9uTWVtYmVyczogdHlwcyB9XG59XG5cbmZ1bmN0aW9uIG8ocHJvcHM6IGFueVtdLCBhZGRpdGlvbmFsOiBhbnkpIHtcbiAgcmV0dXJuIHsgcHJvcHMsIGFkZGl0aW9uYWwgfVxufVxuXG4vLyBmdW5jdGlvbiBtKGFkZGl0aW9uYWw6IGFueSkge1xuLy8gICByZXR1cm4geyBwcm9wczogW10sIGFkZGl0aW9uYWwgfVxuLy8gfVxuXG5mdW5jdGlvbiByKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyByZWY6IG5hbWUgfVxufVxuXG5jb25zdCB0eXBlTWFwOiBhbnkgPSB7XG4gIEFnZW5kYXM6IG8oXG4gICAgW3sganNvbjogXCJyZXVuaW9uc1wiLCBqczogXCJyZXVuaW9uc1wiLCB0eXA6IGEocihcIlJldW5pb25cIikpIH1dLFxuICAgIGZhbHNlLFxuICApLFxuICBSZXVuaW9uOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJzY2hlbWFWZXJzaW9uXCIsIGpzOiBcInNjaGVtYVZlcnNpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJ4c2lUeXBlXCIsXG4gICAgICAgIGpzOiBcInhzaVR5cGVcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgcihcIlJldW5pb25Yc2lUeXBlXCIpKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwidWlkXCIsIGpzOiBcInVpZFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJ0aW1lc3RhbXBEZWJ1dFwiLCBqczogXCJ0aW1lc3RhbXBEZWJ1dFwiLCB0eXA6IERhdGUgfSxcbiAgICAgIHsganNvbjogXCJ0aW1lc3RhbXBGaW5cIiwganM6IFwidGltZXN0YW1wRmluXCIsIHR5cDogdSh1bmRlZmluZWQsIERhdGUpIH0sXG4gICAgICB7IGpzb246IFwibGlldVwiLCBqczogXCJsaWV1XCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJMaWV1XCIpKSB9LFxuICAgICAgeyBqc29uOiBcImN5Y2xlRGVWaWVcIiwganM6IFwiY3ljbGVEZVZpZVwiLCB0eXA6IHIoXCJDeWNsZURlVmllXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiZGVtYW5kZXVyc1wiLFxuICAgICAgICBqczogXCJkZW1hbmRldXJzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJEZW1hbmRldXJzXCIpKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwib3JnYW5lUmV1bmlSZWZcIiwganM6IFwib3JnYW5lUmV1bmlSZWZcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJ0eXBlUmV1bmlvblwiLFxuICAgICAgICBqczogXCJ0eXBlUmV1bmlvblwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCByKFwiVHlwZVJldW5pb25cIikpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJwYXJ0aWNpcGFudHNcIixcbiAgICAgICAganM6IFwicGFydGljaXBhbnRzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJQYXJ0aWNpcGFudHNcIikpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJzZXNzaW9uUmVmXCIsIGpzOiBcInNlc3Npb25SZWZcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJvdXZlcnR1cmVQcmVzc2VcIixcbiAgICAgICAganM6IFwib3V2ZXJ0dXJlUHJlc3NlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGZhbHNlKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwib2RqXCIsIGpzOiBcIm9kalwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiT2RqXCIpKSB9LFxuICAgICAgeyBqc29uOiBcImNvbXB0ZVJlbmR1UmVmXCIsIGpzOiBcImNvbXB0ZVJlbmR1UmVmXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiaWRlbnRpZmlhbnRzXCIsXG4gICAgICAgIGpzOiBcImlkZW50aWZpYW50c1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCByKFwiSWRlbnRpZmlhbnRzXCIpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiZm9ybWF0UmV1bmlvblwiLFxuICAgICAgICBqczogXCJmb3JtYXRSZXVuaW9uXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJGb3JtYXRSZXVuaW9uXCIpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiaW5mb3NSZXVuaW9uc0ludGVybmF0aW9uYWxlXCIsXG4gICAgICAgIGpzOiBcImluZm9zUmV1bmlvbnNJbnRlcm5hdGlvbmFsZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCByKFwiSW5mb3NSZXVuaW9uc0ludGVybmF0aW9uYWxlXCIpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY2FwdGF0aW9uVmlkZW9cIixcbiAgICAgICAganM6IFwiY2FwdGF0aW9uVmlkZW9cIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgZmFsc2UpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJ2aXNpb0NvbmZlcmVuY2VcIiwganM6IFwidmlzaW9Db25mZXJlbmNlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgT2RqOiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjb252b2NhdGlvbk9kalwiLFxuICAgICAgICBqczogXCJjb252b2NhdGlvbk9kalwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKFwiXCIpKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwicmVzdW1lT2RqXCIsIGpzOiBcInJlc3VtZU9kalwiLCB0eXA6IHUodW5kZWZpbmVkLCBhKFwiXCIpKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInBvaW50c09kalwiLFxuICAgICAgICBqczogXCJwb2ludHNPZGpcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiUG9pbnRPZGpcIikpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgUG9pbnRPZGo6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcInhzaVR5cGVcIiwganM6IFwieHNpVHlwZVwiLCB0eXA6IHIoXCJQb2ludE9kalhzaVR5cGVcIikgfSxcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImN5Y2xlRGVWaWVcIiwganM6IFwiY3ljbGVEZVZpZVwiLCB0eXA6IHIoXCJDeWNsZURlVmllXCIpIH0sXG4gICAgICB7IGpzb246IFwib2JqZXRcIiwganM6IFwib2JqZXRcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwicHJvY2VkdXJlXCIsIGpzOiBcInByb2NlZHVyZVwiLCB0eXA6IHUodW5kZWZpbmVkLCByKFwiUHJvY2VkdXJlXCIpKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzXCIsXG4gICAgICAgIGpzOiBcImRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEoXCJcIikpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJ0eXBlUG9pbnRPZGpcIiwganM6IFwidHlwZVBvaW50T2RqXCIsIHR5cDogcihcIlR5cGVQb2ludE9kalwiKSB9LFxuICAgICAgeyBqc29uOiBcImNvbWl0ZVNlY3JldFwiLCBqczogXCJjb21pdGVTZWNyZXRcIiwgdHlwOiBmYWxzZSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm5hdHVyZVRyYXZhdXhPZGpcIixcbiAgICAgICAganM6IFwibmF0dXJlVHJhdmF1eE9kalwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCByKFwiTmF0dXJlVHJhdmF1eE9kalwiKSksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImRhdGVDb25mUHJlc1wiLCBqczogXCJkYXRlQ29uZlByZXNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgRGF0ZSkgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJkYXRlTGV0dHJlTWluaXN0cmVcIixcbiAgICAgICAganM6IFwiZGF0ZUxldHRyZU1pbmlzdHJlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIERhdGUpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBDeWNsZURlVmllOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJldGF0XCIsIGpzOiBcImV0YXRcIiwgdHlwOiByKFwiRXRhdEN5Y2xlRGVWaWVcIikgfSxcbiAgICAgIHsganNvbjogXCJjaHJvbm9cIiwganM6IFwiY2hyb25vXCIsIHR5cDogcihcIkNocm9ub1wiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIENocm9ubzogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiY3JlYXRpb25cIiwganM6IFwiY3JlYXRpb25cIiwgdHlwOiBEYXRlIH0sXG4gICAgICB7IGpzb246IFwiY2xvdHVyZVwiLCBqczogXCJjbG90dXJlXCIsIHR5cDogdSh1bmRlZmluZWQsIERhdGUpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVtYW5kZXVyczogbyhcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiYWN0ZXVyc1wiLFxuICAgICAgICBqczogXCJhY3RldXJzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIkRlbWFuZGV1ckFjdGV1clwiKSkpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJvcmdhbmVcIiwganM6IFwib3JnYW5lXCIsIHR5cDogdSh1bmRlZmluZWQsIHIoXCJEZW1hbmRldXJPcmdhbmVcIikpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVtYW5kZXVyQWN0ZXVyOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJub21cIiwganM6IFwibm9tXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwiYWN0ZXVyUmVmXCIsIGpzOiBcImFjdGV1clJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBEZW1hbmRldXJPcmdhbmU6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcIm5vbVwiLCBqczogXCJub21cIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBJZGVudGlmaWFudHM6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcIm51bVNlYW5jZUpvXCIsIGpzOiBcIm51bVNlYW5jZUpvXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwiaWRKb1wiLCBqczogXCJpZEpvXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwicXVhbnRpZW1lXCIsIGpzOiBcInF1YW50aWVtZVwiLCB0eXA6IHIoXCJRdWFudGllbWVcIikgfSxcbiAgICAgIHsganNvbjogXCJkYXRlU2VhbmNlXCIsIGpzOiBcImRhdGVTZWFuY2VcIiwgdHlwOiBEYXRlIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgSW5mb3NSZXVuaW9uc0ludGVybmF0aW9uYWxlOiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJlc3RSZXVuaW9uSW50ZXJuYXRpb25hbGVcIixcbiAgICAgICAganM6IFwiZXN0UmV1bmlvbkludGVybmF0aW9uYWxlXCIsXG4gICAgICAgIHR5cDogZmFsc2UsXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImxpc3RlUGF5c1wiLCBqczogXCJsaXN0ZVBheXNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgYShcIlwiKSkgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJpbmZvcm1hdGlvbnNDb21wbGVtZW50YWlyZXNcIixcbiAgICAgICAganM6IFwiaW5mb3JtYXRpb25zQ29tcGxlbWVudGFpcmVzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBMaWV1OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJjb2RlXCIsIGpzOiBcImNvZGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJsaWJlbGxlQ291cnRcIiwganM6IFwibGliZWxsZUNvdXJ0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwibGliZWxsZUxvbmdcIiwganM6IFwibGliZWxsZUxvbmdcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJsaWV1UmVmXCIsIGpzOiBcImxpZXVSZWZcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBQYXJ0aWNpcGFudHM6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcInBhcnRpY2lwYW50c0ludGVybmVzXCIsXG4gICAgICAgIGpzOiBcInBhcnRpY2lwYW50c0ludGVybmVzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlBhcnRpY2lwYW50SW50ZXJuZVwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJwZXJzb25uZXNBdWRpdGlvbm5lZXNcIixcbiAgICAgICAganM6IFwicGVyc29ubmVzQXVkaXRpb25uZWVzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlBlcnNvbm5lQXVkaXRpb25uZWVcIikpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgUGFydGljaXBhbnRJbnRlcm5lOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJhY3RldXJSZWZcIiwganM6IFwiYWN0ZXVyUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInByZXNlbmNlXCIsIGpzOiBcInByZXNlbmNlXCIsIHR5cDogcihcIlByZXNlbmNlXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgUGVyc29ubmVBdWRpdGlvbm5lZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwieHNpVHlwZVwiLCBqczogXCJ4c2lUeXBlXCIsIHR5cDogcihcIlBlcnNvbm5lQXVkaXRpb25uZWVYc2lUeXBlXCIpIH0sXG4gICAgICB7IGpzb246IFwidWlkXCIsIGpzOiBcInVpZFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJpZGVudFwiLCBqczogXCJpZGVudFwiLCB0eXA6IHIoXCJJZGVudFwiKSB9LFxuICAgICAgeyBqc29uOiBcImRhdGVOYWlzXCIsIGpzOiBcImRhdGVOYWlzXCIsIHR5cDogdSh1bmRlZmluZWQsIERhdGUpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgSWRlbnQ6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImNpdlwiLCBqczogXCJjaXZcIiwgdHlwOiByKFwiQ2l2XCIpIH0sXG4gICAgICB7IGpzb246IFwicHJlbm9tXCIsIGpzOiBcInByZW5vbVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJub21cIiwganM6IFwibm9tXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImFscGhhXCIsIGpzOiBcImFscGhhXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwidHJpZ3JhbW1lXCIsIGpzOiBcInRyaWdyYW1tZVwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFJldW5pb25Yc2lUeXBlOiBbXG4gICAgXCJyZXVuaW9uQ29tbWlzc2lvbl90eXBlXCIsXG4gICAgXCJyZXVuaW9uSW5pdFBhcmxlbWVudGFpcmVfdHlwZVwiLFxuICAgIFwic2VhbmNlX3R5cGVcIixcbiAgXSxcbiAgUG9pbnRPZGpYc2lUeXBlOiBbXCJwb2RqUmV1bmlvbl90eXBlXCIsIFwicG9kalNlYW5jZUNvbmZQcmVzX3R5cGVcIl0sXG4gIEV0YXRDeWNsZURlVmllOiBbXCJBbm51bMOpXCIsIFwiQ29uZmlybcOpXCIsIFwiRXZlbnR1ZWxcIiwgXCJTdXBwcmltw6lcIl0sXG4gIE5hdHVyZVRyYXZhdXhPZGo6IFtcIk9ESlBSXCIsIFwiT0RKU05cIl0sXG4gIFByb2NlZHVyZTogW1xuICAgIFwiZGlzY3Vzc2lvbiBnw6luw6lyYWxlIGNvbW11bmVcIixcbiAgICBcInByb2PDqWR1cmUgZCdleGFtZW4gc2ltcGxpZmnDqWUtQXJ0aWNsZSAxMDNcIixcbiAgICBcInByb2PDqWR1cmUgZCdleGFtZW4gc2ltcGxpZmnDqWUtQXJ0aWNsZSAxMDZcIixcbiAgICBcInByb2PDqWR1cmUgZGUgbMOpZ2lzbGF0aW9uIGVuIGNvbW1pc3Npb24tQXJ0aWNsZSAxMDctMVwiLFxuICBdLFxuICBUeXBlUG9pbnRPZGo6IFtcbiAgICBcIkFtZW5kZW1lbnRzIChBcnQuIDg4KVwiLFxuICAgIFwiQW1lbmRlbWVudHMgKEFydC4gOTEpXCIsXG4gICAgXCJBdWRpdGlvblwiLFxuICAgIFwiQXVkaXRpb24gbWluaXN0cmVcIixcbiAgICBcIkF1ZGl0aW9uIG1pbmlzdHJlIG91dmVydGUgw6AgbGEgcHJlc3NlXCIsXG4gICAgXCJBdWRpdGlvbiBvdXZlcnRlIMOgIGxhIHByZXNzZVwiLFxuICAgIFwiQ29tbXVuaWNhdGlvblwiLFxuICAgIFwiQ29uc3RpdHV0aW9uIGRlIG1pc3Npb24gZCdpbmZvcm1hdGlvblwiLFxuICAgIFwiRGlzY3Vzc2lvblwiLFxuICAgIFwiRMOpYmF0IGQnaW5pdGlhdGl2ZSBwYXJsZW1lbnRhaXJlXCIsXG4gICAgXCJEw6ljbGFyYXRpb24gZHUgR291dmVybmVtZW50IHN1aXZpZSBkJ3VuIGTDqWJhdFwiLFxuICAgIFwiRWNoYW5nZXMgZGUgdnVlc1wiLFxuICAgIFwiRXhhbWVuXCIsXG4gICAgXCJFeHBsaWNhdGlvbnMgZGUgdm90ZSBkZXMgZ3JvdXBlcyBldCB2b3RlIHBhciBzY3J1dGluIHB1YmxpY1wiLFxuICAgIFwiRXhwbGljYXRpb25zIGRlIHZvdGUgZXQgdm90ZSBwYXIgc2NydXRpbiBwdWJsaWNcIixcbiAgICBcIkZpeGF0aW9uIGRlIGwnb3JkcmUgZHUgam91clwiLFxuICAgIFwiTm9taW5hdGlvbiBidXJlYXVcIixcbiAgICBcIk5vbWluYXRpb24gY2FuZGlkYXRzIG9yZ2FuaXNtZSBleHRyYXBhcmxlbWVudGFpcmVcIixcbiAgICBcIk5vbWluYXRpb24gZCd1biBtZW1icmUgZCd1bmUgbWlzc2lvbiBkJ2luZm9ybWF0aW9uXCIsXG4gICAgXCJOb21pbmF0aW9uIHJhcHBvcnRldXJcIixcbiAgICBcIk5vbWluYXRpb24gcmFwcG9ydGV1ciBkJ2FwcGxpY2F0aW9uXCIsXG4gICAgXCJOb21pbmF0aW9uIHJhcHBvcnRldXIgZCdpbmZvcm1hdGlvblwiLFxuICAgIFwiTm9taW5hdGlvbiByYXBwb3J0ZXVyIHBvdXIgYXZpc1wiLFxuICAgIFwiT3V2ZXJ0dXJlIGV0IGNsw7R0dXJlIGRlIHNlc3Npb25cIixcbiAgICBcIlF1ZXN0aW9ucyBhdSBHb3V2ZXJuZW1lbnRcIixcbiAgICBcIlF1ZXN0aW9ucyBvcmFsZXMgc2FucyBkw6liYXRcIixcbiAgICBcIlJhcHBvcnRcIixcbiAgICBcIlJhcHBvcnQgZCdpbmZvcm1hdGlvblwiLFxuICAgIFwiUmFwcG9ydCBwb3VyIGF2aXNcIixcbiAgICBcIlN1aXRlIGRlIGxhIGRpc2N1c3Npb25cIixcbiAgICBcIlRhYmxlIHJvbmRlXCIsXG4gICAgXCJWb3RlIHBhciBzY3J1dGluIHB1YmxpY1wiLFxuICAgIFwiVm90ZSBzb2xlbm5lbFwiLFxuICBdLFxuICBGb3JtYXRSZXVuaW9uOiBbXG4gICAgXCJBdWRpdGlvbkV4dGVybmVcIixcbiAgICBcIkF1ZGl0aW9uUGFyUHJlc2lkZW50Q29tbWlzc2lvblwiLFxuICAgIFwiQXVkaXRpb25QYXJSYXBwb3J0ZXVyXCIsXG4gICAgXCJPcmRpbmFpcmVcIixcbiAgXSxcbiAgUXVhbnRpZW1lOiBbXCJEZXV4acOobWVcIiwgXCJQcmVtacOocmVcIiwgXCJUcm9pc2nDqG1lXCIsIFwiVW5pcXVlXCJdLFxuICBQcmVzZW5jZTogW1wiYWJzZW50XCIsIFwiZXhjdXPDqVwiLCBcInByw6lzZW50XCJdLFxuICBDaXY6IFtcIk0uXCIsIFwiTW1lXCJdLFxuICBQZXJzb25uZUF1ZGl0aW9ubmVlWHNpVHlwZTogW1wiSWRBY3RldXJfdHlwZVwiLCBcIklkUGVyc29ubmVFeHRlcm5lX3R5cGVcIl0sXG4gIFR5cGVSZXVuaW9uOiBbXCJERVBcIiwgXCJHQVwiLCBcIkdFXCIsIFwiR0VWSVwiLCBcIkdQXCIsIFwiSMOJIEF1csOpbGllblwiXSxcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZ0NBLFdBQVlBLGNBQVo7O1dBQVlBLGM7RUFBQUEsYztFQUFBQSxjO0VBQUFBLGM7R0FBQUEsYyxLQUFBQSxjOztBQTBCWixXQUFZQyxlQUFaOztXQUFZQSxlO0VBQUFBLGU7RUFBQUEsZTtHQUFBQSxlLEtBQUFBLGU7O0FBZVosV0FBWUMsY0FBWjs7V0FBWUEsYztFQUFBQSxjO0VBQUFBLGM7RUFBQUEsYztFQUFBQSxjO0dBQUFBLGMsS0FBQUEsYzs7QUFPWixXQUFZQyxnQkFBWjs7V0FBWUEsZ0I7RUFBQUEsZ0I7RUFBQUEsZ0I7R0FBQUEsZ0IsS0FBQUEsZ0I7O0FBS1osV0FBWUMsU0FBWjs7V0FBWUEsUztFQUFBQSxTO0VBQUFBLFM7RUFBQUEsUztFQUFBQSxTO0dBQUFBLFMsS0FBQUEsUzs7QUFPWixXQUFZQyxZQUFaOztXQUFZQSxZO0VBQUFBLFk7RUFBQUEsWTtFQUFBQSxZO0VBQUFBLFk7RUFBQUEsWTtFQUFBQSxZ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
|