@tricoteuses/assemblee 1.0.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api.js +3 -9
- package/lib/api.mjs +4 -5
- package/lib/bugs/acteur-00010/plugin.test.js +3 -50
- package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
- package/lib/bugs/acteur-00010.js +2 -57
- package/lib/bugs/acteur-00010.mjs +1 -6
- package/lib/bugs/agenda-00002/plugin.test.js +3 -53
- package/lib/bugs/agenda-00002/plugin.test.mjs +1 -3
- package/lib/bugs/agenda-00002.js +3 -148
- package/lib/bugs/agenda-00002.mjs +1 -28
- package/lib/bugs/agenda-00008/plugin.test.js +3 -52
- package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00008.js +2 -61
- package/lib/bugs/agenda-00008.mjs +1 -5
- package/lib/bugs/agenda-00011/plugin.test.js +5 -99
- package/lib/bugs/agenda-00011/plugin.test.mjs +3 -3
- package/lib/bugs/agenda-00011.js +4 -105
- package/lib/bugs/agenda-00011.mjs +3 -29
- package/lib/bugs.js +3 -164
- package/lib/bugs.mjs +1 -26
- package/lib/cleaners/actes_legislatifs.js +11 -115
- package/lib/cleaners/actes_legislatifs.mjs +7 -82
- package/lib/cleaners/acteurs.js +12 -92
- package/lib/cleaners/acteurs.mjs +7 -38
- package/lib/cleaners/amendements.js +10 -103
- package/lib/cleaners/amendements.mjs +4 -58
- package/lib/cleaners/documents.js +5 -67
- package/lib/cleaners/documents.mjs +1 -37
- package/lib/cleaners/dossiers_legislatifs.js +5 -61
- package/lib/cleaners/dossiers_legislatifs.mjs +1 -29
- package/lib/cleaners/index.js +1 -9
- package/lib/cleaners/index.mjs +1 -1
- package/lib/cleaners/organes.js +1 -33
- package/lib/cleaners/organes.mjs +1 -17
- package/lib/cleaners/reunions.js +4 -119
- package/lib/cleaners/reunions.mjs +1 -64
- package/lib/cleaners/scrutins.js +10 -102
- package/lib/cleaners/scrutins.mjs +1 -48
- package/lib/cleaners/xml.js +8 -42
- package/lib/cleaners/xml.mjs +6 -8
- package/lib/datasets.js +14 -113
- package/lib/datasets.mjs +6 -46
- package/lib/dates.js +7 -37
- package/lib/dates.mjs +9 -14
- package/lib/dossiers_legislatifs.js +6 -68
- package/lib/dossiers_legislatifs.mjs +5 -36
- package/lib/file_systems.js +56 -139
- package/lib/file_systems.mjs +1 -9
- package/lib/git.js +4 -53
- package/lib/git.mjs +1 -12
- package/lib/index.js +1 -15
- package/lib/index.mjs +1 -1
- package/lib/inserters.js +23 -146
- package/lib/inserters.mjs +6 -87
- package/lib/loaders.js +44 -316
- package/lib/loaders.mjs +12 -135
- package/lib/organes.js +1 -7
- package/lib/organes.mjs +1 -4
- package/lib/parsers/documents.js +22 -151
- package/lib/parsers/documents.mjs +19 -81
- package/lib/parsers/index.js +1 -4
- package/lib/parsers/index.mjs +1 -1
- package/lib/parsers/recherche_amendements.js +302 -527
- package/lib/parsers/recherche_amendements.mjs +8 -31
- package/lib/raw_types/acteurs_et_organes.d.ts +1 -30
- package/lib/raw_types/acteurs_et_organes.js +5 -124
- package/lib/raw_types/acteurs_et_organes.mjs +5 -105
- package/lib/raw_types/agendas.js +6 -89
- package/lib/raw_types/agendas.mjs +9 -65
- package/lib/raw_types/amendements.d.ts +2 -0
- package/lib/raw_types/amendements.js +10 -90
- package/lib/raw_types/amendements.mjs +11 -69
- package/lib/raw_types/dossiers_legislatifs.js +6 -96
- package/lib/raw_types/dossiers_legislatifs.mjs +6 -73
- package/lib/raw_types/scrutins.js +6 -81
- package/lib/raw_types/scrutins.mjs +9 -57
- package/lib/scripts/bugs_helper.js +2 -181
- package/lib/scripts/bugs_helper.mjs +2 -39
- package/lib/scripts/clean_data.js +27 -143
- package/lib/scripts/clean_data.mjs +15 -34
- package/lib/scripts/clean_reorganized_data.js +76 -240
- package/lib/scripts/clean_reorganized_data.mjs +36 -99
- package/lib/scripts/diff_amendements.js +19 -79
- package/lib/scripts/diff_amendements.mjs +17 -35
- package/lib/scripts/document_dossiers_legislatifs.js +17 -142
- package/lib/scripts/document_dossiers_legislatifs.mjs +6 -90
- package/lib/scripts/get_today_reunions.js +4 -22
- package/lib/scripts/get_today_reunions.mjs +1 -7
- package/lib/scripts/merge_scrutins.js +3 -47
- package/lib/scripts/merge_scrutins.mjs +1 -9
- package/lib/scripts/parse_textes_lois.js +15 -44
- package/lib/scripts/parse_textes_lois.mjs +18 -19
- package/lib/scripts/raw_types_from_amendements.js +3 -95
- package/lib/scripts/raw_types_from_amendements.mjs +1 -16
- package/lib/scripts/reorganize_data.js +74 -294
- package/lib/scripts/reorganize_data.mjs +22 -133
- package/lib/scripts/retrieve_deputes_photos.js +6 -119
- package/lib/scripts/retrieve_deputes_photos.mjs +7 -33
- package/lib/scripts/retrieve_documents.js +4 -192
- package/lib/scripts/retrieve_documents.mjs +2 -50
- package/lib/scripts/retrieve_open_data.js +44 -116
- package/lib/scripts/retrieve_open_data.mjs +14 -19
- package/lib/scripts/retrieve_pending_amendments.js +4 -98
- package/lib/scripts/retrieve_pending_amendments.mjs +1 -14
- package/lib/scripts/retrieve_senateurs_photos.js +18 -114
- package/lib/scripts/retrieve_senateurs_photos.mjs +20 -48
- package/lib/scripts/retrieve_textes_lois.js +3 -122
- package/lib/scripts/retrieve_textes_lois.mjs +3 -21
- package/lib/scripts/test_load.js +2 -10
- package/lib/scripts/test_load.mjs +2 -1
- package/lib/scripts/test_load_big_files.js +2 -10
- package/lib/scripts/test_load_big_files.mjs +2 -1
- package/lib/scripts/validate_json.js +4 -119
- package/lib/scripts/validate_json.mjs +2 -36
- package/lib/shared_types/codes_actes.js +1 -24
- package/lib/shared_types/codes_actes.mjs +3 -10
- package/lib/strings.js +1 -5
- package/lib/strings.mjs +1 -1
- package/lib/types/acteurs_et_organes.js +9 -84
- package/lib/types/acteurs_et_organes.mjs +10 -63
- package/lib/types/agendas.js +8 -90
- package/lib/types/agendas.mjs +11 -66
- package/lib/types/amendements.d.ts +2 -0
- package/lib/types/amendements.js +12 -92
- package/lib/types/amendements.mjs +15 -70
- package/lib/types/dossiers_legislatifs.js +8 -96
- package/lib/types/dossiers_legislatifs.mjs +10 -72
- package/lib/types/legislatures.js +1 -3
- package/lib/types/legislatures.mjs +1 -2
- package/lib/types/scrutins.js +8 -82
- package/lib/types/scrutins.mjs +11 -58
- package/lib/urls.js +3 -27
- package/lib/urls.mjs +3 -21
- package/package.json +1 -1
package/lib/urls.mjs
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
export let DocumentUrlFormat;
|
|
2
|
-
|
|
1
|
+
export let DocumentUrlFormat; // The version of the document that can be parsed to extract divisions & articles
|
|
3
2
|
(function (DocumentUrlFormat) {
|
|
4
3
|
DocumentUrlFormat["Html"] = "html";
|
|
5
4
|
DocumentUrlFormat["Pdf"] = "pdf";
|
|
6
5
|
DocumentUrlFormat["RawHtml"] = "raw-html";
|
|
7
6
|
})(DocumentUrlFormat || (DocumentUrlFormat = {}));
|
|
8
|
-
|
|
9
7
|
const documentUrlFragmentsByType = {
|
|
10
8
|
ACIN: {
|
|
11
9
|
directory: "projets",
|
|
@@ -118,84 +116,68 @@ const documentUrlFragmentsByType = {
|
|
|
118
116
|
suffix: "-a0"
|
|
119
117
|
}
|
|
120
118
|
};
|
|
121
|
-
|
|
122
119
|
function extensionFromDocumentUrlFormat(format) {
|
|
123
120
|
switch (format) {
|
|
124
121
|
case DocumentUrlFormat.Html:
|
|
125
122
|
return ".asp";
|
|
126
|
-
|
|
127
123
|
case DocumentUrlFormat.Pdf:
|
|
128
124
|
return ".pdf";
|
|
129
|
-
|
|
130
125
|
case DocumentUrlFormat.RawHtml:
|
|
131
126
|
return ".asp";
|
|
132
127
|
}
|
|
133
128
|
}
|
|
134
|
-
|
|
135
129
|
export function urlFromDocument(document, format) {
|
|
136
130
|
// Code taken from function `an_text_url` in project anpy:
|
|
137
131
|
// https://github.com/regardscitoyens/anpy/blob/master/anpy/dossier_from_opendata.py
|
|
138
132
|
// See http://www.assemblee-nationale.fr/opendata/Implementation_Referentiel/Identifiants_Referentiels.html
|
|
139
133
|
// for a description of the format of an UID.
|
|
134
|
+
|
|
140
135
|
const extension = extensionFromDocumentUrlFormat(format);
|
|
141
136
|
const match = /^(.{4})([ANS]*)(R[0-9])([LS]*)([0-9]*)([BTACP]*)(.*)$/.exec(document.uid);
|
|
142
|
-
|
|
143
137
|
if (match === null) {
|
|
144
138
|
console.log(`Unable to generate URL from document with unexpected UID: "${document.uid}"`);
|
|
145
139
|
return null;
|
|
146
140
|
}
|
|
147
|
-
|
|
148
141
|
const chambre = match[2];
|
|
149
|
-
|
|
150
142
|
if (chambre === "SN") {
|
|
151
143
|
console.log(`Unable to generate URL for document in Sénat. UID: "${document.uid}"`);
|
|
152
144
|
return null;
|
|
153
145
|
}
|
|
154
|
-
|
|
155
146
|
const legislature = match[5];
|
|
156
147
|
let number = match[7];
|
|
157
|
-
|
|
158
148
|
if (format === DocumentUrlFormat.RawHtml) {
|
|
159
149
|
return `http://www.assemblee-nationale.fr/${legislature}/textes/${number}${extension}`;
|
|
160
150
|
}
|
|
161
|
-
|
|
162
151
|
let documentType = {
|
|
163
152
|
BTC: "TCOM",
|
|
164
153
|
BTA: "TADO",
|
|
165
154
|
TAP: "TADO"
|
|
166
155
|
}[match[6]] || match[1];
|
|
167
|
-
|
|
168
156
|
if (document.classification !== undefined && document.classification.sousType !== undefined && document.classification.sousType.code === "COMPA") {
|
|
169
157
|
// Annexe au rapport : Texte comparatif COMPA
|
|
170
158
|
number = number.replace(/-COMPA/, "-aCOMPA");
|
|
171
159
|
}
|
|
172
|
-
|
|
173
160
|
if (documentType == "AVCE") {
|
|
174
161
|
documentType = `AVCE${document.classification.famille.classe.code}`;
|
|
175
162
|
}
|
|
176
|
-
|
|
177
163
|
const fragments = documentUrlFragmentsByType[documentType];
|
|
178
|
-
|
|
179
164
|
if (fragments === undefined) {
|
|
180
165
|
// For example: ALCNANR5L15B0002 (allocution du président)
|
|
181
166
|
console.log(`Unable to generate URL from document of UID "${document.uid}" and type "${documentType}"`);
|
|
182
167
|
return null;
|
|
183
168
|
}
|
|
184
|
-
|
|
185
169
|
const directory = format === DocumentUrlFormat.Pdf ? `pdf/${fragments.directory}` : fragments.directory;
|
|
186
170
|
return `http://www.assemblee-nationale.fr/${legislature}/${directory}/${fragments.prefix}${number}${fragments.suffix}${extension}`;
|
|
187
171
|
}
|
|
188
172
|
export function urlFromScrutin(scrutin) {
|
|
189
173
|
// Sample UIDs: VTANR5L15V389
|
|
190
174
|
const match = /^VTANR([0-9]+)L([0-9]+)V([0-9]+)$/.exec(scrutin.uid);
|
|
191
|
-
|
|
192
175
|
if (match === null) {
|
|
193
176
|
console.log(`Unable to generate URL from scrutin with unexpected UID: "${scrutin.uid}"`);
|
|
194
177
|
return null;
|
|
195
178
|
}
|
|
196
|
-
|
|
197
179
|
const legislature = match[2];
|
|
198
180
|
const numero = match[3];
|
|
199
181
|
return `http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/${legislature}/(num)/${numero}`;
|
|
200
182
|
}
|
|
201
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlIiwiQUNJTiIsImRpcmVjdG9yeSIsInByZWZpeCIsInN1ZmZpeCIsIkFWQ0VQUkpMT0kiLCJBVkNFTEVUVFJFIiwiQVZDRVBJT05MT0kiLCJBVklTIiwiRVRESSIsIkxFVFQiLCJQSU9OIiwiUE5SRSIsIlBOUkVBUFBBUlQzNDEiLCJQTlJFQ09NRU5RIiwiUE5SRU1PRFJFR0xUQU4iLCJQTlJFVFZYSU5TVElURVVST1AiLCJQUkpMIiwiUkFQUCIsIlJJTkYiLCJSSU9OIiwiVEFETyIsIlRDT00iLCJUQ09NQ09NRU5RIiwiVENPTU1PRFJFR0xUQU4iLCJUQ09NVFZYSU5TVElURVVST1AiLCJleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQiLCJmb3JtYXQiLCJIdG1sIiwiUGRmIiwiUmF3SHRtbCIsInVybEZyb21Eb2N1bWVudCIsImRvY3VtZW50IiwiZXh0ZW5zaW9uIiwibWF0Y2giLCJleGVjIiwidWlkIiwiY29uc29sZSIsImxvZyIsImNoYW1icmUiLCJsZWdpc2xhdHVyZSIsIm51bWJlciIsImRvY3VtZW50VHlwZSIsIkJUQyIsIkJUQSIsIlRBUCIsImNsYXNzaWZpY2F0aW9uIiwidW5kZWZpbmVkIiwic291c1R5cGUiLCJjb2RlIiwicmVwbGFjZSIsImZhbWlsbGUiLCJjbGFzc2UiLCJmcmFnbWVudHMiLCJ1cmxGcm9tU2NydXRpbiIsInNjcnV0aW4iLCJudW1lcm8iXSwic291cmNlcyI6WyIuLi9zcmMvdXJscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuXG5leHBvcnQgZW51bSBEb2N1bWVudFVybEZvcm1hdCB7XG4gIEh0bWwgPSBcImh0bWxcIixcbiAgUGRmID0gXCJwZGZcIixcbiAgUmF3SHRtbCA9IFwicmF3LWh0bWxcIiwgLy8gVGhlIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IHRoYXQgY2FuIGJlIHBhcnNlZCB0byBleHRyYWN0IGRpdmlzaW9ucyAmIGFydGljbGVzXG59XG5cbmNvbnN0IGRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlOiB7XG4gIFt0eXBlOiBzdHJpbmddOiB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmdcbiAgICBwcmVmaXg6IHN0cmluZ1xuICAgIHN1ZmZpeDogc3RyaW5nXG4gIH1cbn0gPSB7XG4gIEFDSU46IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWlcIixcbiAgfSxcbiAgQVZDRVBSSkxPSToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRUxFVFRSRToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRVBJT05MT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiLWFjZVwiLFxuICB9LFxuICBBVklTOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIEVUREk6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItZWlcIixcbiAgfSxcbiAgTEVUVDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1sXCIsXG4gIH0sXG4gIFBJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVBUFBBUlQzNDE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVDT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVNT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFVFZYSU5TVElURVVST1A6IHtcbiAgICBkaXJlY3Rvcnk6IFwiZXVyb3BlL3Jlc29sdXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBwZVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUFJKTDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSQVBQOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJTkY6IHtcbiAgICBkaXJlY3Rvcnk6IFwicmFwLWluZm9cIixcbiAgICBwcmVmaXg6IFwiaVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUklPTjoge1xuICAgIGRpcmVjdG9yeTogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQURPOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhXCIsXG4gICAgcHJlZml4OiBcInRhXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQ09NOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTUNPTUVOUToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01NT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbn1cblxuZnVuY3Rpb24gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUGRmOlxuICAgICAgcmV0dXJuIFwiLnBkZlwiXG4gICAgY2FzZSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sOlxuICAgICAgcmV0dXJuIFwiLmFzcFwiXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21Eb2N1bWVudChcbiAgZG9jdW1lbnQ6IGFueSxcbiAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdCxcbik6IHN0cmluZyB8IG51bGwge1xuICAvLyBDb2RlIHRha2VuIGZyb20gZnVuY3Rpb24gYGFuX3RleHRfdXJsYCBpbiBwcm9qZWN0IGFucHk6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWdhcmRzY2l0b3llbnMvYW5weS9ibG9iL21hc3Rlci9hbnB5L2Rvc3NpZXJfZnJvbV9vcGVuZGF0YS5weVxuICAvLyBTZWUgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL29wZW5kYXRhL0ltcGxlbWVudGF0aW9uX1JlZmVyZW50aWVsL0lkZW50aWZpYW50c19SZWZlcmVudGllbHMuaHRtbFxuICAvLyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0IG9mIGFuIFVJRC5cblxuICBjb25zdCBleHRlbnNpb24gPSBleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQoZm9ybWF0KVxuICBjb25zdCBtYXRjaCA9IC9eKC57NH0pKFtBTlNdKikoUlswLTldKShbTFNdKikoWzAtOV0qKShbQlRBQ1BdKikoLiopJC8uZXhlYyhcbiAgICBkb2N1bWVudC51aWQsXG4gIClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IHdpdGggdW5leHBlY3RlZCBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGNoYW1icmUgPSBtYXRjaFsyXVxuICBpZiAoY2hhbWJyZSA9PT0gXCJTTlwiKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmb3IgZG9jdW1lbnQgaW4gU8OpbmF0LiBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbNV1cbiAgbGV0IG51bWJlciA9IG1hdGNoWzddXG4gIGlmIChmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwpIHtcbiAgICByZXR1cm4gYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8ke2xlZ2lzbGF0dXJlfS90ZXh0ZXMvJHtudW1iZXJ9JHtleHRlbnNpb259YFxuICB9XG4gIGxldCBkb2N1bWVudFR5cGUgPVxuICAgIChcbiAgICAgIHtcbiAgICAgICAgQlRDOiBcIlRDT01cIixcbiAgICAgICAgQlRBOiBcIlRBRE9cIixcbiAgICAgICAgVEFQOiBcIlRBRE9cIixcbiAgICAgIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIClbbWF0Y2hbNl1dIHx8IG1hdGNoWzFdXG4gIGlmIChcbiAgICBkb2N1bWVudC5jbGFzc2lmaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgZG9jdW1lbnQuY2xhc3NpZmljYXRpb24uc291c1R5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlLmNvZGUgPT09IFwiQ09NUEFcIlxuICApIHtcbiAgICAvLyBBbm5leGUgYXUgcmFwcG9ydCA6IFRleHRlIGNvbXBhcmF0aWYgQ09NUEFcbiAgICBudW1iZXIgPSBudW1iZXIucmVwbGFjZSgvLUNPTVBBLywgXCItYUNPTVBBXCIpXG4gIH1cbiAgaWYgKGRvY3VtZW50VHlwZSA9PSBcIkFWQ0VcIikge1xuICAgIGRvY3VtZW50VHlwZSA9IGBBVkNFJHtkb2N1bWVudC5jbGFzc2lmaWNhdGlvbi5mYW1pbGxlLmNsYXNzZS5jb2RlfWBcbiAgfVxuICBjb25zdCBmcmFnbWVudHMgPSBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZVtkb2N1bWVudFR5cGVdXG4gIGlmIChmcmFnbWVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIEZvciBleGFtcGxlOiBBTENOQU5SNUwxNUIwMDAyIChhbGxvY3V0aW9uIGR1IHByw6lzaWRlbnQpXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IG9mIFVJRCBcIiR7ZG9jdW1lbnQudWlkfVwiIGFuZCB0eXBlIFwiJHtkb2N1bWVudFR5cGV9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGRpcmVjdG9yeSA9XG4gICAgZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5QZGZcbiAgICAgID8gYHBkZi8ke2ZyYWdtZW50cy5kaXJlY3Rvcnl9YFxuICAgICAgOiBmcmFnbWVudHMuZGlyZWN0b3J5XG4gIHJldHVybiBgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLyR7bGVnaXNsYXR1cmV9LyR7ZGlyZWN0b3J5fS8ke2ZyYWdtZW50cy5wcmVmaXh9JHtudW1iZXJ9JHtmcmFnbWVudHMuc3VmZml4fSR7ZXh0ZW5zaW9ufWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21TY3J1dGluKHNjcnV0aW46IFNjcnV0aW4pIHtcbiAgLy8gU2FtcGxlIFVJRHM6IFZUQU5SNUwxNVYzODlcbiAgY29uc3QgbWF0Y2ggPSAvXlZUQU5SKFswLTldKylMKFswLTldKylWKFswLTldKykkLy5leGVjKHNjcnV0aW4udWlkKVxuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVbmFibGUgdG8gZ2VuZXJhdGUgVVJMIGZyb20gc2NydXRpbiB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7c2NydXRpbi51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbMl1cbiAgY29uc3QgbnVtZXJvID0gbWF0Y2hbM11cbiAgcmV0dXJuIGBodHRwOi8vd3d3Mi5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3NjcnV0aW5zL2RldGFpbC8obGVnaXNsYXR1cmUpLyR7bGVnaXNsYXR1cmV9LyhudW0pLyR7bnVtZXJvfWBcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsV0FBWUEsaUJBQVo7O1dBQVlBLGlCO0VBQUFBLGlCO0VBQUFBLGlCO0VBQUFBLGlCO0dBQUFBLGlCLEtBQUFBLGlCOztBQU1aLE1B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
|
|
183
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlIiwiQUNJTiIsImRpcmVjdG9yeSIsInByZWZpeCIsInN1ZmZpeCIsIkFWQ0VQUkpMT0kiLCJBVkNFTEVUVFJFIiwiQVZDRVBJT05MT0kiLCJBVklTIiwiRVRESSIsIkxFVFQiLCJQSU9OIiwiUE5SRSIsIlBOUkVBUFBBUlQzNDEiLCJQTlJFQ09NRU5RIiwiUE5SRU1PRFJFR0xUQU4iLCJQTlJFVFZYSU5TVElURVVST1AiLCJQUkpMIiwiUkFQUCIsIlJJTkYiLCJSSU9OIiwiVEFETyIsIlRDT00iLCJUQ09NQ09NRU5RIiwiVENPTU1PRFJFR0xUQU4iLCJUQ09NVFZYSU5TVElURVVST1AiLCJleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQiLCJmb3JtYXQiLCJIdG1sIiwiUGRmIiwiUmF3SHRtbCIsInVybEZyb21Eb2N1bWVudCIsImRvY3VtZW50IiwiZXh0ZW5zaW9uIiwibWF0Y2giLCJleGVjIiwidWlkIiwiY29uc29sZSIsImxvZyIsImNoYW1icmUiLCJsZWdpc2xhdHVyZSIsIm51bWJlciIsImRvY3VtZW50VHlwZSIsIkJUQyIsIkJUQSIsIlRBUCIsImNsYXNzaWZpY2F0aW9uIiwidW5kZWZpbmVkIiwic291c1R5cGUiLCJjb2RlIiwicmVwbGFjZSIsImZhbWlsbGUiLCJjbGFzc2UiLCJmcmFnbWVudHMiLCJ1cmxGcm9tU2NydXRpbiIsInNjcnV0aW4iLCJudW1lcm8iXSwic291cmNlcyI6WyIuLi9zcmMvdXJscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuXG5leHBvcnQgZW51bSBEb2N1bWVudFVybEZvcm1hdCB7XG4gIEh0bWwgPSBcImh0bWxcIixcbiAgUGRmID0gXCJwZGZcIixcbiAgUmF3SHRtbCA9IFwicmF3LWh0bWxcIiwgLy8gVGhlIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IHRoYXQgY2FuIGJlIHBhcnNlZCB0byBleHRyYWN0IGRpdmlzaW9ucyAmIGFydGljbGVzXG59XG5cbmNvbnN0IGRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlOiB7XG4gIFt0eXBlOiBzdHJpbmddOiB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmdcbiAgICBwcmVmaXg6IHN0cmluZ1xuICAgIHN1ZmZpeDogc3RyaW5nXG4gIH1cbn0gPSB7XG4gIEFDSU46IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWlcIixcbiAgfSxcbiAgQVZDRVBSSkxPSToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRUxFVFRSRToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRVBJT05MT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiLWFjZVwiLFxuICB9LFxuICBBVklTOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIEVUREk6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItZWlcIixcbiAgfSxcbiAgTEVUVDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1sXCIsXG4gIH0sXG4gIFBJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVBUFBBUlQzNDE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVDT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVNT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFVFZYSU5TVElURVVST1A6IHtcbiAgICBkaXJlY3Rvcnk6IFwiZXVyb3BlL3Jlc29sdXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBwZVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUFJKTDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSQVBQOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJTkY6IHtcbiAgICBkaXJlY3Rvcnk6IFwicmFwLWluZm9cIixcbiAgICBwcmVmaXg6IFwiaVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUklPTjoge1xuICAgIGRpcmVjdG9yeTogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQURPOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhXCIsXG4gICAgcHJlZml4OiBcInRhXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQ09NOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTUNPTUVOUToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01NT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbn1cblxuZnVuY3Rpb24gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUGRmOlxuICAgICAgcmV0dXJuIFwiLnBkZlwiXG4gICAgY2FzZSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sOlxuICAgICAgcmV0dXJuIFwiLmFzcFwiXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21Eb2N1bWVudChcbiAgZG9jdW1lbnQ6IGFueSxcbiAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdCxcbik6IHN0cmluZyB8IG51bGwge1xuICAvLyBDb2RlIHRha2VuIGZyb20gZnVuY3Rpb24gYGFuX3RleHRfdXJsYCBpbiBwcm9qZWN0IGFucHk6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWdhcmRzY2l0b3llbnMvYW5weS9ibG9iL21hc3Rlci9hbnB5L2Rvc3NpZXJfZnJvbV9vcGVuZGF0YS5weVxuICAvLyBTZWUgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL29wZW5kYXRhL0ltcGxlbWVudGF0aW9uX1JlZmVyZW50aWVsL0lkZW50aWZpYW50c19SZWZlcmVudGllbHMuaHRtbFxuICAvLyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0IG9mIGFuIFVJRC5cblxuICBjb25zdCBleHRlbnNpb24gPSBleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQoZm9ybWF0KVxuICBjb25zdCBtYXRjaCA9IC9eKC57NH0pKFtBTlNdKikoUlswLTldKShbTFNdKikoWzAtOV0qKShbQlRBQ1BdKikoLiopJC8uZXhlYyhcbiAgICBkb2N1bWVudC51aWQsXG4gIClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IHdpdGggdW5leHBlY3RlZCBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGNoYW1icmUgPSBtYXRjaFsyXVxuICBpZiAoY2hhbWJyZSA9PT0gXCJTTlwiKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmb3IgZG9jdW1lbnQgaW4gU8OpbmF0LiBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbNV1cbiAgbGV0IG51bWJlciA9IG1hdGNoWzddXG4gIGlmIChmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwpIHtcbiAgICByZXR1cm4gYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8ke2xlZ2lzbGF0dXJlfS90ZXh0ZXMvJHtudW1iZXJ9JHtleHRlbnNpb259YFxuICB9XG4gIGxldCBkb2N1bWVudFR5cGUgPVxuICAgIChcbiAgICAgIHtcbiAgICAgICAgQlRDOiBcIlRDT01cIixcbiAgICAgICAgQlRBOiBcIlRBRE9cIixcbiAgICAgICAgVEFQOiBcIlRBRE9cIixcbiAgICAgIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIClbbWF0Y2hbNl1dIHx8IG1hdGNoWzFdXG4gIGlmIChcbiAgICBkb2N1bWVudC5jbGFzc2lmaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgZG9jdW1lbnQuY2xhc3NpZmljYXRpb24uc291c1R5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlLmNvZGUgPT09IFwiQ09NUEFcIlxuICApIHtcbiAgICAvLyBBbm5leGUgYXUgcmFwcG9ydCA6IFRleHRlIGNvbXBhcmF0aWYgQ09NUEFcbiAgICBudW1iZXIgPSBudW1iZXIucmVwbGFjZSgvLUNPTVBBLywgXCItYUNPTVBBXCIpXG4gIH1cbiAgaWYgKGRvY3VtZW50VHlwZSA9PSBcIkFWQ0VcIikge1xuICAgIGRvY3VtZW50VHlwZSA9IGBBVkNFJHtkb2N1bWVudC5jbGFzc2lmaWNhdGlvbi5mYW1pbGxlLmNsYXNzZS5jb2RlfWBcbiAgfVxuICBjb25zdCBmcmFnbWVudHMgPSBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZVtkb2N1bWVudFR5cGVdXG4gIGlmIChmcmFnbWVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIEZvciBleGFtcGxlOiBBTENOQU5SNUwxNUIwMDAyIChhbGxvY3V0aW9uIGR1IHByw6lzaWRlbnQpXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IG9mIFVJRCBcIiR7ZG9jdW1lbnQudWlkfVwiIGFuZCB0eXBlIFwiJHtkb2N1bWVudFR5cGV9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGRpcmVjdG9yeSA9XG4gICAgZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5QZGZcbiAgICAgID8gYHBkZi8ke2ZyYWdtZW50cy5kaXJlY3Rvcnl9YFxuICAgICAgOiBmcmFnbWVudHMuZGlyZWN0b3J5XG4gIHJldHVybiBgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLyR7bGVnaXNsYXR1cmV9LyR7ZGlyZWN0b3J5fS8ke2ZyYWdtZW50cy5wcmVmaXh9JHtudW1iZXJ9JHtmcmFnbWVudHMuc3VmZml4fSR7ZXh0ZW5zaW9ufWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21TY3J1dGluKHNjcnV0aW46IFNjcnV0aW4pIHtcbiAgLy8gU2FtcGxlIFVJRHM6IFZUQU5SNUwxNVYzODlcbiAgY29uc3QgbWF0Y2ggPSAvXlZUQU5SKFswLTldKylMKFswLTldKylWKFswLTldKykkLy5leGVjKHNjcnV0aW4udWlkKVxuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVbmFibGUgdG8gZ2VuZXJhdGUgVVJMIGZyb20gc2NydXRpbiB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7c2NydXRpbi51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbMl1cbiAgY29uc3QgbnVtZXJvID0gbWF0Y2hbM11cbiAgcmV0dXJuIGBodHRwOi8vd3d3Mi5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3NjcnV0aW5zL2RldGFpbC8obGVnaXNsYXR1cmUpLyR7bGVnaXNsYXR1cmV9LyhudW0pLyR7bnVtZXJvfWBcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsV0FBWUEsaUJBQWlCLEVBR0w7QUFDdkIsV0FKV0EsaUJBQWlCO0VBQWpCQSxpQkFBaUI7RUFBakJBLGlCQUFpQjtFQUFqQkEsaUJB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
|