@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
|
@@ -21,51 +21,39 @@ const optionsDefinitions = [{
|
|
|
21
21
|
type: String
|
|
22
22
|
}];
|
|
23
23
|
const options = commandLineArgs(optionsDefinitions);
|
|
24
|
-
|
|
25
24
|
async function generateRawTypesFromAmendements(dataDir) {
|
|
26
25
|
for (const dataset of datasets.amendements) {
|
|
27
26
|
switch (dataset.structure) {
|
|
28
27
|
case DatasetStructure.SegmentedFiles:
|
|
29
28
|
{
|
|
30
29
|
const originalJsonDir = path.join(dataDir, dataset.filename);
|
|
31
|
-
|
|
32
30
|
if (!options.silent) {
|
|
33
31
|
console.log(`Generating raw types from ${originalJsonDir}…`);
|
|
34
32
|
}
|
|
35
|
-
|
|
36
33
|
const amendementsOriginalFilesPathsByUidTextLegislatif = {};
|
|
37
|
-
|
|
38
34
|
for (const amendementSplitPath of walkDir(originalJsonDir)) {
|
|
39
35
|
const amendementFilename = amendementSplitPath[amendementSplitPath.length - 1];
|
|
40
|
-
|
|
41
36
|
if (!amendementFilename.endsWith(".json")) {
|
|
42
37
|
continue;
|
|
43
38
|
}
|
|
44
|
-
|
|
45
39
|
const uidTexteLegislatif = amendementSplitPath[amendementSplitPath.length - 2];
|
|
46
40
|
let amendementsOriginalFilesPaths = amendementsOriginalFilesPathsByUidTextLegislatif[uidTexteLegislatif];
|
|
47
|
-
|
|
48
41
|
if (amendementsOriginalFilesPaths === undefined) {
|
|
49
42
|
amendementsOriginalFilesPaths = amendementsOriginalFilesPathsByUidTextLegislatif[uidTexteLegislatif] = [];
|
|
50
43
|
}
|
|
51
|
-
|
|
52
44
|
const amendementOriginalFilePath = path.join(originalJsonDir, ...amendementSplitPath);
|
|
53
45
|
amendementsOriginalFilesPaths.push(amendementOriginalFilePath);
|
|
54
46
|
}
|
|
55
|
-
|
|
56
47
|
const uidsTextesLegislatifs = Object.keys(amendementsOriginalFilesPathsByUidTextLegislatif);
|
|
57
48
|
uidsTextesLegislatifs.sort((a, b) => a.length === b.length ? a.localeCompare(b) : a.length - b.length);
|
|
58
49
|
const textesLegislatifsSamples = [];
|
|
59
|
-
|
|
60
50
|
for (const uidTexteLegislatif of uidsTextesLegislatifs) {
|
|
61
51
|
if (options.verbose) {
|
|
62
52
|
console.log(` Reading "amendements du texte législatif": ${uidTexteLegislatif}…`);
|
|
63
53
|
}
|
|
64
|
-
|
|
65
54
|
const amendementsOriginalFilesPaths = amendementsOriginalFilesPathsByUidTextLegislatif[uidTexteLegislatif];
|
|
66
55
|
amendementsOriginalFilesPaths.sort((a, b) => a.length === b.length ? a.localeCompare(b) : a.length - b.length);
|
|
67
56
|
const amendements = [];
|
|
68
|
-
|
|
69
57
|
for (const amendementOriginalFilePath of amendementsOriginalFilesPaths) {
|
|
70
58
|
const amendementOriginalJson = fs.readFileSync(amendementOriginalFilePath, {
|
|
71
59
|
encoding: "utf8"
|
|
@@ -74,7 +62,6 @@ async function generateRawTypesFromAmendements(dataDir) {
|
|
|
74
62
|
const amendement = amendementOriginal.amendement;
|
|
75
63
|
amendements.push(amendement);
|
|
76
64
|
}
|
|
77
|
-
|
|
78
65
|
const texteLegislatif = {
|
|
79
66
|
"@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
|
|
80
67
|
refTexteLegislatif: uidTexteLegislatif,
|
|
@@ -84,7 +71,6 @@ async function generateRawTypesFromAmendements(dataDir) {
|
|
|
84
71
|
};
|
|
85
72
|
textesLegislatifsSamples.push(JSON.stringify(texteLegislatif));
|
|
86
73
|
}
|
|
87
|
-
|
|
88
74
|
const jsonInput = jsonInputForTargetLanguage("typescript");
|
|
89
75
|
await jsonInput.addSource({
|
|
90
76
|
name: "TexteLegislatif",
|
|
@@ -108,11 +94,10 @@ async function generateRawTypesFromAmendements(dataDir) {
|
|
|
108
94
|
}
|
|
109
95
|
}
|
|
110
96
|
}
|
|
111
|
-
|
|
112
97
|
generateRawTypesFromAmendements(options.dataDir).then(() => {
|
|
113
98
|
process.exit(0);
|
|
114
99
|
}).catch(error => {
|
|
115
100
|
console.error(error);
|
|
116
101
|
process.exit(1);
|
|
117
102
|
});
|
|
118
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJxdWlja3R5cGUiLCJJbnB1dERhdGEiLCJqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZSIsImRhdGFzZXRzIiwiRGF0YXNldFN0cnVjdHVyZSIsIndhbGtEaXIiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0T3B0aW9uIiwiU3RyaW5nIiwib3B0aW9ucyIsImdlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMiLCJkYXRhRGlyIiwiZGF0YXNldCIsImFtZW5kZW1lbnRzIiwic3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJvcmlnaW5hbEpzb25EaXIiLCJqb2luIiwiZmlsZW5hbWUiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHNCeVVpZFRleHRMZWdpc2xhdGlmIiwiYW1lbmRlbWVudFNwbGl0UGF0aCIsImFtZW5kZW1lbnRGaWxlbmFtZSIsImxlbmd0aCIsImVuZHNXaXRoIiwidWlkVGV4dGVMZWdpc2xhdGlmIiwiYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMiLCJ1bmRlZmluZWQiLCJhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCIsInB1c2giLCJ1aWRzVGV4dGVzTGVnaXNsYXRpZnMiLCJPYmplY3QiLCJrZXlzIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsInRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyIsInZlcmJvc2UiLCJhbWVuZGVtZW50T3JpZ2luYWxKc29uIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJhbWVuZGVtZW50T3JpZ2luYWwiLCJKU09OIiwicGFyc2UiLCJhbWVuZGVtZW50IiwidGV4dGVMZWdpc2xhdGlmIiwicmVmVGV4dGVMZWdpc2xhdGlmIiwic3RyaW5naWZ5IiwianNvbklucHV0IiwiYWRkU291cmNlIiwic2FtcGxlcyIsImlucHV0RGF0YSIsImFkZElucHV0IiwibGluZXMiLCJsYW5nIiwicmVuZGVyZXJPcHRpb25zIiwiYWNyb255bVN0eWxlIiwiYW1lbmRlbWVudHNSYXdUeXBlc0ZpbGVQYXRoIiwid3JpdGVGaWxlU3luYyIsInRoZW4iLCJwcm9jZXNzIiwiZXhpdCIsImNhdGNoIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yYXdfdHlwZXNfZnJvbV9hbWVuZGVtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7XG4gIHF1aWNrdHlwZSxcbiAgSW5wdXREYXRhLFxuICBqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZSxcbn0gZnJvbSBcInF1aWNrdHlwZS1jb3JlXCJcblxuaW1wb3J0IHsgZGF0YXNldHMsIERhdGFzZXRTdHJ1Y3R1cmUgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMoZGF0YURpcjogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbkRpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEdlbmVyYXRpbmcgcmF3IHR5cGVzIGZyb20gJHtvcmlnaW5hbEpzb25EaXJ94oCmYClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWY6IHtcbiAgICAgICAgICAgIFt1aWQ6IHN0cmluZ106IHN0cmluZ1tdXG4gICAgICAgICAgfSA9IHt9XG4gICAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIob3JpZ2luYWxKc29uRGlyKSkge1xuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVuYW1lID1cbiAgICAgICAgICAgICAgYW1lbmRlbWVudFNwbGl0UGF0aFthbWVuZGVtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgPVxuICAgICAgICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMl1cbiAgICAgICAgICAgIGxldCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgaWYgKGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMgPVxuICAgICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICAgIHVpZFRleHRlTGVnaXNsYXRpZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcixcbiAgICAgICAgICAgICAgLi4uYW1lbmRlbWVudFNwbGl0UGF0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzLnB1c2goYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdWlkc1RleHRlc0xlZ2lzbGF0aWZzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWYsXG4gICAgICAgICAgKVxuICAgICAgICAgIHVpZHNUZXh0ZXNMZWdpc2xhdGlmcy5zb3J0KChhOiBzdHJpbmcsIGI6IHN0cmluZykgPT5cbiAgICAgICAgICAgIGEubGVuZ3RoID09PSBiLmxlbmd0aCA/IGEubG9jYWxlQ29tcGFyZShiKSA6IGEubGVuZ3RoIC0gYi5sZW5ndGgsXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnN0IHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyA9IFtdXG4gICAgICAgICAgZm9yIChjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgb2YgdWlkc1RleHRlc0xlZ2lzbGF0aWZzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGAgIFJlYWRpbmcgXCJhbWVuZGVtZW50cyBkdSB0ZXh0ZSBsw6lnaXNsYXRpZlwiOiAke3VpZFRleHRlTGVnaXNsYXRpZn3igKZgLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMuc29ydCgoYTogc3RyaW5nLCBiOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIGEubGVuZ3RoID09PSBiLmxlbmd0aCA/IGEubG9jYWxlQ29tcGFyZShiKSA6IGEubGVuZ3RoIC0gYi5sZW5ndGgsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50cyA9IFtdXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoIG9mIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICBhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50T3JpZ2luYWw6IGFueSA9IEpTT04ucGFyc2UoYW1lbmRlbWVudE9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudCA9IGFtZW5kZW1lbnRPcmlnaW5hbC5hbWVuZGVtZW50XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzLnB1c2goYW1lbmRlbWVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHRlTGVnaXNsYXRpZiA9IHtcbiAgICAgICAgICAgICAgXCJAeG1sbnM6eHNpXCI6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIixcbiAgICAgICAgICAgICAgcmVmVGV4dGVMZWdpc2xhdGlmOiB1aWRUZXh0ZUxlZ2lzbGF0aWYsXG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzOiB7IGFtZW5kZW1lbnQ6IGFtZW5kZW1lbnRzIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZXh0ZXNMZWdpc2xhdGlmc1NhbXBsZXMucHVzaChKU09OLnN0cmluZ2lmeSh0ZXh0ZUxlZ2lzbGF0aWYpKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGpzb25JbnB1dCA9IGpzb25JbnB1dEZvclRhcmdldExhbmd1YWdlKFwidHlwZXNjcmlwdFwiKVxuICAgICAgICAgIGF3YWl0IGpzb25JbnB1dC5hZGRTb3VyY2Uoe1xuICAgICAgICAgICAgbmFtZTogXCJUZXh0ZUxlZ2lzbGF0aWZcIixcbiAgICAgICAgICAgIHNhbXBsZXM6IHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlucHV0RGF0YSA9IG5ldyBJbnB1dERhdGEoKVxuICAgICAgICAgIGlucHV0RGF0YS5hZGRJbnB1dChqc29uSW5wdXQpXG4gICAgICAgICAgY29uc3QgeyBsaW5lcyB9ID0gYXdhaXQgcXVpY2t0eXBlKHtcbiAgICAgICAgICAgIGlucHV0RGF0YSxcbiAgICAgICAgICAgIGxhbmc6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgcmVuZGVyZXJPcHRpb25zOiB7IGFjcm9ueW1TdHlsZTogXCJjYW1lbFwiIH0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRzUmF3VHlwZXNGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIFwic3JjXCIsXG4gICAgICAgICAgICBcInJhd190eXBlc1wiLFxuICAgICAgICAgICAgXCJhbWVuZGVtZW50cy50c1wiLFxuICAgICAgICAgIClcbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGFtZW5kZW1lbnRzUmF3VHlwZXNGaWxlUGF0aCwgbGluZXMuam9pbihcIlxcblwiKSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuXG5nZW5lcmF0ZVJhd1R5cGVzRnJvbUFtZW5kZW1lbnRzKG9wdGlvbnMuZGF0YURpcilcbiAgLnRoZW4oKCkgPT4ge1xuICAgIHByb2Nlc3MuZXhpdCgwKVxuICB9KVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsZUFBUCxNQUE0QixtQkFBNUI7QUFDQSxPQUFPQyxFQUFQLE1BQWUsVUFBZjtBQUNBLE9BQU9DLElBQVAsTUFBaUIs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
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJxdWlja3R5cGUiLCJJbnB1dERhdGEiLCJqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZSIsImRhdGFzZXRzIiwiRGF0YXNldFN0cnVjdHVyZSIsIndhbGtEaXIiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0T3B0aW9uIiwiU3RyaW5nIiwib3B0aW9ucyIsImdlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMiLCJkYXRhRGlyIiwiZGF0YXNldCIsImFtZW5kZW1lbnRzIiwic3RydWN0dXJlIiwiU2VnbWVudGVkRmlsZXMiLCJvcmlnaW5hbEpzb25EaXIiLCJqb2luIiwiZmlsZW5hbWUiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHNCeVVpZFRleHRMZWdpc2xhdGlmIiwiYW1lbmRlbWVudFNwbGl0UGF0aCIsImFtZW5kZW1lbnRGaWxlbmFtZSIsImxlbmd0aCIsImVuZHNXaXRoIiwidWlkVGV4dGVMZWdpc2xhdGlmIiwiYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMiLCJ1bmRlZmluZWQiLCJhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCIsInB1c2giLCJ1aWRzVGV4dGVzTGVnaXNsYXRpZnMiLCJPYmplY3QiLCJrZXlzIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsInRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyIsInZlcmJvc2UiLCJhbWVuZGVtZW50T3JpZ2luYWxKc29uIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJhbWVuZGVtZW50T3JpZ2luYWwiLCJKU09OIiwicGFyc2UiLCJhbWVuZGVtZW50IiwidGV4dGVMZWdpc2xhdGlmIiwicmVmVGV4dGVMZWdpc2xhdGlmIiwic3RyaW5naWZ5IiwianNvbklucHV0IiwiYWRkU291cmNlIiwic2FtcGxlcyIsImlucHV0RGF0YSIsImFkZElucHV0IiwibGluZXMiLCJsYW5nIiwicmVuZGVyZXJPcHRpb25zIiwiYWNyb255bVN0eWxlIiwiYW1lbmRlbWVudHNSYXdUeXBlc0ZpbGVQYXRoIiwid3JpdGVGaWxlU3luYyIsInRoZW4iLCJwcm9jZXNzIiwiZXhpdCIsImNhdGNoIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yYXdfdHlwZXNfZnJvbV9hbWVuZGVtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7XG4gIHF1aWNrdHlwZSxcbiAgSW5wdXREYXRhLFxuICBqc29uSW5wdXRGb3JUYXJnZXRMYW5ndWFnZSxcbn0gZnJvbSBcInF1aWNrdHlwZS1jb3JlXCJcblxuaW1wb3J0IHsgZGF0YXNldHMsIERhdGFzZXRTdHJ1Y3R1cmUgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlUmF3VHlwZXNGcm9tQW1lbmRlbWVudHMoZGF0YURpcjogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbkRpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZmlsZW5hbWUpXG4gICAgICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEdlbmVyYXRpbmcgcmF3IHR5cGVzIGZyb20gJHtvcmlnaW5hbEpzb25EaXJ94oCmYClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWY6IHtcbiAgICAgICAgICAgIFt1aWQ6IHN0cmluZ106IHN0cmluZ1tdXG4gICAgICAgICAgfSA9IHt9XG4gICAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIob3JpZ2luYWxKc29uRGlyKSkge1xuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudEZpbGVuYW1lID1cbiAgICAgICAgICAgICAgYW1lbmRlbWVudFNwbGl0UGF0aFthbWVuZGVtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgPVxuICAgICAgICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMl1cbiAgICAgICAgICAgIGxldCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgaWYgKGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMgPVxuICAgICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICAgIHVpZFRleHRlTGVnaXNsYXRpZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcixcbiAgICAgICAgICAgICAgLi4uYW1lbmRlbWVudFNwbGl0UGF0aCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzLnB1c2goYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdWlkc1RleHRlc0xlZ2lzbGF0aWZzID0gT2JqZWN0LmtleXMoXG4gICAgICAgICAgICBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRoc0J5VWlkVGV4dExlZ2lzbGF0aWYsXG4gICAgICAgICAgKVxuICAgICAgICAgIHVpZHNUZXh0ZXNMZWdpc2xhdGlmcy5zb3J0KChhOiBzdHJpbmcsIGI6IHN0cmluZykgPT5cbiAgICAgICAgICAgIGEubGVuZ3RoID09PSBiLmxlbmd0aCA/IGEubG9jYWxlQ29tcGFyZShiKSA6IGEubGVuZ3RoIC0gYi5sZW5ndGgsXG4gICAgICAgICAgKVxuICAgICAgICAgIGNvbnN0IHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyA9IFtdXG4gICAgICAgICAgZm9yIChjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgb2YgdWlkc1RleHRlc0xlZ2lzbGF0aWZzKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGAgIFJlYWRpbmcgXCJhbWVuZGVtZW50cyBkdSB0ZXh0ZSBsw6lnaXNsYXRpZlwiOiAke3VpZFRleHRlTGVnaXNsYXRpZn3igKZgLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50c09yaWdpbmFsRmlsZXNQYXRocyA9XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzQnlVaWRUZXh0TGVnaXNsYXRpZltcbiAgICAgICAgICAgICAgICB1aWRUZXh0ZUxlZ2lzbGF0aWZcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgYW1lbmRlbWVudHNPcmlnaW5hbEZpbGVzUGF0aHMuc29ydCgoYTogc3RyaW5nLCBiOiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIGEubGVuZ3RoID09PSBiLmxlbmd0aCA/IGEubG9jYWxlQ29tcGFyZShiKSA6IGEubGVuZ3RoIC0gYi5sZW5ndGgsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50cyA9IFtdXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoIG9mIGFtZW5kZW1lbnRzT3JpZ2luYWxGaWxlc1BhdGhzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICBhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50T3JpZ2luYWw6IGFueSA9IEpTT04ucGFyc2UoYW1lbmRlbWVudE9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudCA9IGFtZW5kZW1lbnRPcmlnaW5hbC5hbWVuZGVtZW50XG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzLnB1c2goYW1lbmRlbWVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHRlTGVnaXNsYXRpZiA9IHtcbiAgICAgICAgICAgICAgXCJAeG1sbnM6eHNpXCI6IFwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2VcIixcbiAgICAgICAgICAgICAgcmVmVGV4dGVMZWdpc2xhdGlmOiB1aWRUZXh0ZUxlZ2lzbGF0aWYsXG4gICAgICAgICAgICAgIGFtZW5kZW1lbnRzOiB7IGFtZW5kZW1lbnQ6IGFtZW5kZW1lbnRzIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0ZXh0ZXNMZWdpc2xhdGlmc1NhbXBsZXMucHVzaChKU09OLnN0cmluZ2lmeSh0ZXh0ZUxlZ2lzbGF0aWYpKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGpzb25JbnB1dCA9IGpzb25JbnB1dEZvclRhcmdldExhbmd1YWdlKFwidHlwZXNjcmlwdFwiKVxuICAgICAgICAgIGF3YWl0IGpzb25JbnB1dC5hZGRTb3VyY2Uoe1xuICAgICAgICAgICAgbmFtZTogXCJUZXh0ZUxlZ2lzbGF0aWZcIixcbiAgICAgICAgICAgIHNhbXBsZXM6IHRleHRlc0xlZ2lzbGF0aWZzU2FtcGxlcyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGlucHV0RGF0YSA9IG5ldyBJbnB1dERhdGEoKVxuICAgICAgICAgIGlucHV0RGF0YS5hZGRJbnB1dChqc29uSW5wdXQpXG4gICAgICAgICAgY29uc3QgeyBsaW5lcyB9ID0gYXdhaXQgcXVpY2t0eXBlKHtcbiAgICAgICAgICAgIGlucHV0RGF0YSxcbiAgICAgICAgICAgIGxhbmc6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgcmVuZGVyZXJPcHRpb25zOiB7IGFjcm9ueW1TdHlsZTogXCJjYW1lbFwiIH0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRzUmF3VHlwZXNGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIFwic3JjXCIsXG4gICAgICAgICAgICBcInJhd190eXBlc1wiLFxuICAgICAgICAgICAgXCJhbWVuZGVtZW50cy50c1wiLFxuICAgICAgICAgIClcbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGFtZW5kZW1lbnRzUmF3VHlwZXNGaWxlUGF0aCwgbGluZXMuam9pbihcIlxcblwiKSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuXG5nZW5lcmF0ZVJhd1R5cGVzRnJvbUFtZW5kZW1lbnRzKG9wdGlvbnMuZGF0YURpcilcbiAgLnRoZW4oKCkgPT4ge1xuICAgIHByb2Nlc3MuZXhpdCgwKVxuICB9KVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsZUFBZSxNQUFNLG1CQUFtQjtBQUMvQyxPQUFPQyxFQUFFLE1BQU0sVUFBVTtBQUN6QixPQUFPQyxJQUFJLE1BQU0s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
|