@tricoteuses/assemblee 1.7.2 → 1.7.3
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 +1 -53
- package/lib/git.d.ts +1 -0
- package/lib/git.js +12 -1
- package/lib/git.mjs +11 -1
- package/lib/parsers/textes_lois.d.ts +1 -0
- package/lib/scripts/clean_reorganized_data.js +2 -10
- package/lib/scripts/clean_reorganized_data.mjs +2 -10
- package/lib/scripts/reorganize_data.js +2 -10
- package/lib/scripts/reorganize_data.mjs +2 -10
- package/lib/scripts/retrieve_deputes_photos.d.ts +3 -1
- package/lib/scripts/retrieve_deputes_photos.js +169 -164
- package/lib/scripts/retrieve_deputes_photos.mjs +76 -91
- package/lib/scripts/retrieve_pending_amendments.js +2 -10
- package/lib/scripts/retrieve_pending_amendments.mjs +2 -10
- package/lib/scripts/retrieve_senateurs_photos.js +120 -175
- package/lib/scripts/retrieve_senateurs_photos.mjs +42 -107
- package/lib/scripts/retrieve_textes_lois_llm.d.ts +1 -0
- package/lib/scripts/shared/cli_helpers.d.ts +0 -2
- package/lib/scripts/shared/cli_helpers.js +2 -19
- package/lib/scripts/shared/cli_helpers.mjs +1 -8
- package/lib/shared_types/codes_actes.d.ts +1 -0
- package/lib/shared_types/codes_actes.js +2 -1
- package/lib/shared_types/codes_actes.mjs +2 -1
- package/lib/types/scrutins.d.ts +4 -4
- package/lib/types/scrutins.js +5 -5
- package/lib/types/scrutins.mjs +5 -5
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -108,56 +108,4 @@ for (const { acteur } of iterLoadAssembleeActeurs("../assemblee-data", "16")) {
|
|
|
108
108
|
|
|
109
109
|
## Generating schemas and documentation (for contributors only)
|
|
110
110
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
npx quicktype --acronym-style=camel -o src/raw_types/acteurs_et_organes.ts ../assemblee-data/AMO{10,20,30,40,50}_*.json
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
npx quicktype --acronym-style=camel -o src/raw_types/agendas.ts ../assemblee-data/Agenda_{XIV,XV}.json
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
npx babel-node --extensions ".ts" --max-old-space-size=8192 -- src/scripts/raw_types_from_amendements.ts ../assemblee-data/
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
npx quicktype --acronym-style=camel -o src/raw_types/dossiers_legislatifs.ts ../assemblee-data/Dossiers_Legislatifs_{XIV,XV}.json
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Updating JSON schema files and validating JSON files
|
|
130
|
-
|
|
131
|
-
* Convert src/types/*.ts into JSON schemas for comparison purposes
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
for f in src/types/*.ts ; do b=$(basename $f .ts) ; npx typescript-json-schema src/types/$b.ts '*' > src/schemas/converted_from_type/$b.json ; done
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
* Manually update src/schemas/*/*.json to account for these differences
|
|
138
|
-
* Verify the JSON files validate with the updated schema
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
npx babel-node --extensions .ts -- src/scripts/validate_json.ts --repository=$(git rev-parse --show-toplevel) --dataset ../data/assemblee-nettoye/AMO*nettoye
|
|
142
|
-
npx babel-node --extensions .ts -- src/scripts/validate_json.ts --repository=$(git rev-parse --show-toplevel) --dataset ../data/assemblee-nettoye/Dossiers_Legislatifs_XV_nettoye
|
|
143
|
-
etc.
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
If an error occurs and the schema must be fixed:
|
|
147
|
-
|
|
148
|
-
* Verify the schema works by using **--dev** to use the schema from the current working directory instead of fetching them from the tag maching the version mentionned in the JSON file. For instance, if the file `acteurs/PA766283.json` has `schemaVersion = "acteur-1.0"` it will use the schema found at [schema-acteur-1.0](https://git.en-root.org/tricoteuses/tricoteuses-assemblee/tree/schema-acteur-1.0) and **not** the current working directory, except if **--dev** is used.
|
|
149
|
-
* Once the schema is verified to work, add a tag matching the directory of the schema. For instance for `amendement/Amendement.json` or any of its references (i.e. `amendement/*.json`), set the tag `schema-amendement-X.Y`.
|
|
150
|
-
* If the schema change is backward compatible (i.e. software using the corresponding JSON won't break), increment Y (X.1, X.2, ...)
|
|
151
|
-
* If the schema change is not backward compatible, increment X and set Y to zero (1.0, 2.0, ...)
|
|
152
|
-
|
|
153
|
-
The tag with the highest version will be used by `src/scripts/clean_reorganized_data.ts` to add a `schemaVersion` field for all JSON files created in a `*_nettoye` repository from that point on. The goal is for a JSON file to validate against an immutable schema identified by a version tag and to all each JSON file to have a different version of the schema.
|
|
154
|
-
|
|
155
|
-
See the [discussion in the forum](https://forum.en-root.org/t/release-management/85/) for more information and further discussion.
|
|
156
|
-
|
|
157
|
-
### Helpers to create documentation
|
|
158
|
-
All raw files are kept during the process
|
|
159
|
-
```bash
|
|
160
|
-
$ npx babel-node --extensions .ts -- src/scripts/document_dossiers_legislatifs.ts --data ../data/assemblee-nettoye/Dossiers_Legislatifs_{XIV,XV}_nettoye/dossiers/**/*.json
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
See the [data-site README](https://git.en-root.org/tricoteuses/data-site/blob/master/README.md) for more information about how it is used.
|
|
111
|
+
View instructions [here](https://git.en-root.org/tricoteuses/tricoteuses-assemblee/-/blob/master/src/types)
|
package/lib/git.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare function commit(repositoryDir: string, message: string): boolean;
|
|
2
2
|
export declare function commitAndPush(repositoryDir: string, message: string, remotes?: string[]): number;
|
|
3
3
|
export declare function resetAndPull(gitDir: string): boolean;
|
|
4
|
+
export declare function clone(gitGroupUrl: string | undefined, gitName: string, workingDir: string): void;
|
|
4
5
|
export declare function run(repositoryDir: string, args: string, verbose?: boolean): string;
|
|
5
6
|
export declare function test(repositoryDir: string, args: string, verbose?: boolean): boolean;
|
|
6
7
|
export declare function uidBranchUpdate(repositoryDir: string, subdirectories: any, notHard: boolean): boolean;
|
package/lib/git.js
CHANGED
|
@@ -14,6 +14,7 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", {
|
|
15
15
|
value: true
|
|
16
16
|
});
|
|
17
|
+
exports.clone = clone;
|
|
17
18
|
exports.commit = commit;
|
|
18
19
|
exports.commitAndPush = commitAndPush;
|
|
19
20
|
exports.resetAndPull = resetAndPull;
|
|
@@ -106,6 +107,16 @@ function resetAndPull(gitDir) {
|
|
|
106
107
|
});
|
|
107
108
|
return true;
|
|
108
109
|
}
|
|
110
|
+
function clone(gitGroupUrl, gitName, workingDir) {
|
|
111
|
+
if (gitGroupUrl !== undefined) {
|
|
112
|
+
(0, _child_process.execSync)("git clone ".concat(gitGroupUrl, "/").concat(gitName, ".git"), {
|
|
113
|
+
cwd: workingDir,
|
|
114
|
+
env: process.env,
|
|
115
|
+
encoding: "utf-8",
|
|
116
|
+
stdio: ["ignore", "ignore", "pipe"]
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
109
120
|
function run(repositoryDir, args, verbose) {
|
|
110
121
|
try {
|
|
111
122
|
if (verbose) console.log("git -C ".concat(repositoryDir, " ").concat(args));
|
|
@@ -209,4 +220,4 @@ function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
|
|
|
209
220
|
run(repositoryDir, "reset ".concat(resetOption));
|
|
210
221
|
return status;
|
|
211
222
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfZmlsZV9zeXN0ZW1zIiwiX2NoaWxkX3Byb2Nlc3MiLCJlIiwiX19lc01vZHVsZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJNQVhCVUZGRVIiLCJjb21taXQiLCJyZXBvc2l0b3J5RGlyIiwibWVzc2FnZSIsImV4ZWNTeW5jIiwiY3dkIiwiZW52IiwicHJvY2VzcyIsImVuY29kaW5nIiwic3RkaW8iLCJtYXhCdWZmZXIiLCJjb25jYXQiLCJjaGlsZFByb2Nlc3MiLCJzdGRvdXQiLCJjb25zb2xlIiwiZXJyb3IiLCJvdXRwdXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlcyIsImV4aXRDb2RlIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJyZW1vdGUiLCJzdGF0dXMiLCJlcnIiLCJyZXNldEFuZFB1bGwiLCJnaXREaXIiLCJydW4iLCJhcmdzIiwidmVyYm9zZSIsImxvZyIsInRyaW0iLCJfaSIsIl9hcnIiLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInN1YmRpcmVjdG9yeSIsInVpZERpcmVjdG9yeSIsImZzIiwiZW5zdXJlRGlyU3luYyIsIl9pdGVyYXRvcjQiLCJnZXRGaWxlcyIsIl9zdGVwNCIsInBhdGhuYW1lIiwiZmlsZW5hbWUiLCJwYXRoIiwiYmFzZW5hbWUiLCJyZW5hbWVTeW5jIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsInJlc2V0T3B0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGdldEZpbGVzIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5cbmNvbnN0IE1BWEJVRkZFUiA9IDUwICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdChyZXBvc2l0b3J5RGlyOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBleGVjU3luYyhcImdpdCBhZGQgLlwiLCB7XG4gICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgfSlcbiAgdHJ5IHtcbiAgICBleGVjU3luYyhgZ2l0IGNvbW1pdCAtbSBcIiR7bWVzc2FnZX1cIiAtLXF1aWV0YCwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBpZiAoXG4gICAgICAoY2hpbGRQcm9jZXNzIGFzIENoaWxkUHJvY2Vzcykuc3Rkb3V0ID09PSBudWxsIHx8XG4gICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgbWVzc2FnZTogc3RyaW5nLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBudW1iZXIge1xuICBsZXQgZXhpdENvZGUgPSAwXG4gIGlmIChjb21taXQocmVwb3NpdG9yeURpciwgbWVzc2FnZSkpIHtcbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiByZW1vdGVzIHx8IFtdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgZ2l0IHB1c2ggJHtyZW1vdGV9IG1hc3RlcmAsIHtcbiAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIC8vIERvbid0IHN0b3Agd2hlbiBwdXNoIGZhaWxzLlxuICAgICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICAgIGV4aXRDb2RlID0gKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0YXR1c1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBUaGVyZSB3YXMgbm90aGluZyB0byBjb21taXQuXG4gICAgZXhpdENvZGUgPSAxMFxuICB9XG4gIHJldHVybiBleGl0Q29kZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRBbmRQdWxsKGdpdERpcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGV4ZWNTeW5jKGBnaXQgcmVzZXQgLS1oYXJkIG9yaWdpbi9tYXN0ZXJgLCB7XG4gICAgY3dkOiBnaXREaXIsXG4gICAgZW52OiBwcm9jZXNzLmVudixcbiAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICB9KVxuXG4gIGV4ZWNTeW5jKGBnaXQgcHVsbCAtLXJlYmFzZWAsIHtcbiAgICBjd2Q6IGdpdERpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gIH0pXG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVybiBzdGF0dXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNB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
|
|
223
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfZmlsZV9zeXN0ZW1zIiwiX2NoaWxkX3Byb2Nlc3MiLCJlIiwiX19lc01vZHVsZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJNQVhCVUZGRVIiLCJjb21taXQiLCJyZXBvc2l0b3J5RGlyIiwibWVzc2FnZSIsImV4ZWNTeW5jIiwiY3dkIiwiZW52IiwicHJvY2VzcyIsImVuY29kaW5nIiwic3RkaW8iLCJtYXhCdWZmZXIiLCJjb25jYXQiLCJjaGlsZFByb2Nlc3MiLCJzdGRvdXQiLCJjb25zb2xlIiwiZXJyb3IiLCJvdXRwdXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlcyIsImV4aXRDb2RlIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJyZW1vdGUiLCJzdGF0dXMiLCJlcnIiLCJyZXNldEFuZFB1bGwiLCJnaXREaXIiLCJjbG9uZSIsImdpdEdyb3VwVXJsIiwiZ2l0TmFtZSIsIndvcmtpbmdEaXIiLCJ1bmRlZmluZWQiLCJydW4iLCJhcmdzIiwidmVyYm9zZSIsImxvZyIsInRyaW0iLCJfaSIsIl9hcnIiLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInN1YmRpcmVjdG9yeSIsInVpZERpcmVjdG9yeSIsImZzIiwiZW5zdXJlRGlyU3luYyIsIl9pdGVyYXRvcjQiLCJnZXRGaWxlcyIsIl9zdGVwNCIsInBhdGhuYW1lIiwiZmlsZW5hbWUiLCJwYXRoIiwiYmFzZW5hbWUiLCJyZW5hbWVTeW5jIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsInJlc2V0T3B0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGdldEZpbGVzIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5cbmNvbnN0IE1BWEJVRkZFUiA9IDUwICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdChyZXBvc2l0b3J5RGlyOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBleGVjU3luYyhcImdpdCBhZGQgLlwiLCB7XG4gICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgfSlcbiAgdHJ5IHtcbiAgICBleGVjU3luYyhgZ2l0IGNvbW1pdCAtbSBcIiR7bWVzc2FnZX1cIiAtLXF1aWV0YCwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBpZiAoXG4gICAgICAoY2hpbGRQcm9jZXNzIGFzIENoaWxkUHJvY2Vzcykuc3Rkb3V0ID09PSBudWxsIHx8XG4gICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgbWVzc2FnZTogc3RyaW5nLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBudW1iZXIge1xuICBsZXQgZXhpdENvZGUgPSAwXG4gIGlmIChjb21taXQocmVwb3NpdG9yeURpciwgbWVzc2FnZSkpIHtcbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiByZW1vdGVzIHx8IFtdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgZ2l0IHB1c2ggJHtyZW1vdGV9IG1hc3RlcmAsIHtcbiAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIC8vIERvbid0IHN0b3Agd2hlbiBwdXNoIGZhaWxzLlxuICAgICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICAgIGV4aXRDb2RlID0gKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0YXR1c1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBUaGVyZSB3YXMgbm90aGluZyB0byBjb21taXQuXG4gICAgZXhpdENvZGUgPSAxMFxuICB9XG4gIHJldHVybiBleGl0Q29kZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRBbmRQdWxsKGdpdERpcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGV4ZWNTeW5jKGBnaXQgcmVzZXQgLS1oYXJkIG9yaWdpbi9tYXN0ZXJgLCB7XG4gICAgY3dkOiBnaXREaXIsXG4gICAgZW52OiBwcm9jZXNzLmVudixcbiAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICB9KVxuXG4gIGV4ZWNTeW5jKGBnaXQgcHVsbCAtLXJlYmFzZWAsIHtcbiAgICBjd2Q6IGdpdERpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gIH0pXG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lKFxuICBnaXRHcm91cFVybDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBnaXROYW1lOiBzdHJpbmcsXG4gIHdvcmtpbmdEaXI6IHN0cmluZyxcbik6IHZvaWQge1xuICBpZiAoZ2l0R3JvdXBVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgIGV4ZWNTeW5jKGBnaXQgY2xvbmUgJHtnaXRHcm91cFVybH0vJHtnaXROYW1lfS5naXRgLCB7XG4gICAgICBjd2Q6IHdvcmtpbmdEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVybiBzdGF0dXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxhQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFBc0QsU0FBQUQsdUJBQUFLLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUFBLFNBQUFFLDJCQUFBQyxDQUFBLEVBQUFILENBQUEsUUFBQUksQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRixDQUFBLENBQUFFLE1BQUEsQ0FBQUMsUUFBQSxLQUFBSCxDQUFBLHFCQUFBQyxDQUFBLFFBQUFHLEtBQUEsQ0FBQUMsT0FBQSxDQUFBTCxDQUFBLE1BQUFDLENBQUEsR0FBQUssMkJBQUEsQ0FBQU4sQ0FBQSxNQUFBSCxDQUFBLElBQUFHLENBQUEsdUJBQUFBLENBQUEsQ0FBQU8sTUFBQSxJQUFBTixDQUFBLEtBQUFELENBQUEsR0FBQUMsQ0FBQSxPQUFBTyxFQUFBLE1BQUFDLENBQUEsWUFBQUEsRUFBQSxlQUFBQyxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQSxFQUFBLFdBQUFILEVBQUEsSUFBQVIsQ0FBQSxD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
|
package/lib/git.mjs
CHANGED
|
@@ -65,6 +65,16 @@ export function resetAndPull(gitDir) {
|
|
|
65
65
|
});
|
|
66
66
|
return true;
|
|
67
67
|
}
|
|
68
|
+
export function clone(gitGroupUrl, gitName, workingDir) {
|
|
69
|
+
if (gitGroupUrl !== undefined) {
|
|
70
|
+
execSync(`git clone ${gitGroupUrl}/${gitName}.git`, {
|
|
71
|
+
cwd: workingDir,
|
|
72
|
+
env: process.env,
|
|
73
|
+
encoding: "utf-8",
|
|
74
|
+
stdio: ["ignore", "ignore", "pipe"]
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
68
78
|
export function run(repositoryDir, args, verbose) {
|
|
69
79
|
try {
|
|
70
80
|
if (verbose) console.log(`git -C ${repositoryDir} ${args}`);
|
|
@@ -138,4 +148,4 @@ export function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
|
|
|
138
148
|
run(repositoryDir, `reset ${resetOption}`);
|
|
139
149
|
return status;
|
|
140
150
|
}
|
|
141
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiZnMiLCJnZXRGaWxlcyIsImV4ZWNTeW5jIiwiTUFYQlVGRkVSIiwiY29tbWl0IiwicmVwb3NpdG9yeURpciIsIm1lc3NhZ2UiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsIm1heEJ1ZmZlciIsImNoaWxkUHJvY2VzcyIsInN0ZG91dCIsInRlc3QiLCJjb25zb2xlIiwiZXJyb3IiLCJvdXRwdXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlcyIsImV4aXRDb2RlIiwicmVtb3RlIiwic3RhdHVzIiwicmVzZXRBbmRQdWxsIiwiZ2l0RGlyIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2ciLCJ0b1N0cmluZyIsInRyaW0iLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwic3ViZGlyZWN0b3J5IiwidWlkRGlyZWN0b3J5IiwiZW5zdXJlRGlyU3luYyIsInBhdGhuYW1lIiwiZmlsZW5hbWUiLCJiYXNlbmFtZSIsInJlbmFtZVN5bmMiLCJyZXNldE9wdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9naXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBnZXRGaWxlcyB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuXG5jb25zdCBNQVhCVUZGRVIgPSA1MCAqIDEwMjQgKiAxMDI0XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogbnVtYmVyIHtcbiAgbGV0IGV4aXRDb2RlID0gMFxuICBpZiAoY29tbWl0KHJlcG9zaXRvcnlEaXIsIG1lc3NhZ2UpKSB7XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBleGl0Q29kZSA9IChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGF0dXNcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlcmUgd2FzIG5vdGhpbmcgdG8gY29tbWl0LlxuICAgIGV4aXRDb2RlID0gMTBcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0QW5kUHVsbChnaXREaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBleGVjU3luYyhgZ2l0IHJlc2V0IC0taGFyZCBvcmlnaW4vbWFzdGVyYCwge1xuICAgIGN3ZDogZ2l0RGlyLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgfSlcblxuICBleGVjU3luYyhgZ2l0IHB1bGwgLS1yZWJhc2VgLCB7XG4gICAgY3dkOiBnaXREaXIsXG4gICAgZW52OiBwcm9jZXNzLmVudixcbiAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICB9KVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW4oXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgYXJnczogc3RyaW5nLFxuICB2ZXJib3NlPzogYm9vbGVhbixcbik6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiBvdXRwdXRcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgZm9yIChjb25zdCBvdXRwdXQgb2YgW1wic3Rkb3V0XCIsIFwic3RkZXJyXCJdKVxuICAgICAgY29uc29sZS5lcnJvcihgJHtvdXRwdXR9OiAkeyhjaGlsZFByb2Nlc3MgYXMgYW55KVtvdXRwdXRdfWApXG4gICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlc3QoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgYXJnczogc3RyaW5nLFxuICB2ZXJib3NlPzogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhgZ2l0IC1DICR7cmVwb3NpdG9yeURpcn0gJHthcmdzfWApXG4gICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoYGdpdCAke2FyZ3N9YCwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gICAgfSlcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudHJpbSgpXG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKG91dHB1dClcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBpZiAoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0YXR1cyAhPSAwKSByZXR1cm4gZmFsc2VcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlkQnJhbmNoVXBkYXRlKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4gIG5vdEhhcmQ6IGJvb2xlYW4sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcHJldmlvdXNCcmFuY2ggPSBydW4ocmVwb3NpdG9yeURpciwgXCJyZXYtcGFyc2UgLS1hYmJyZXYtcmVmIEhFQURcIilcbiAgY29uc3QgYnJhbmNoID0gXCJ1aWRcIlxuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIHByb2Nlc3MuY2hkaXIocmVwb3NpdG9yeURpcilcbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHVpZERpcmVjdG9yeSlcbiAgICBmb3IgKGNvbnN0IHBhdGhuYW1lIG9mIGdldEZpbGVzKFtgJHtzdWJkaXJlY3Rvcnl9LyoqLyouanNvbmBdKSkge1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKHBhdGhuYW1lKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRobmFtZSwgYCR7dWlkRGlyZWN0b3J5fS8ke2ZpbGVuYW1lfWApXG4gICAgfVxuICB9XG4gIHByb2Nlc3MuY2hkaXIoY3dkKVxuICBpZiAodGVzdChyZXBvc2l0b3J5RGlyLCBgcmV2LXBhcnNlIHJlbW90ZXMvb3JpZ2luLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgYSByZW1vdGUgYnJhbmNoIGV4aXN0cywgaXQgbXVzdCBiZSB1c2VkIGV2ZW4gaWYgYSBsb2NhbCBicmFuY2ggZXhpc3RzXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gb3JpZ2luLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKSkge1xuICAgIC8vIGlmIG5vIHJlbW90ZSBicmFuY2ggZXhpc3RzIGJ1dCBhIGxvY2FsIG9uZSBleGlzdHMsIHVzZSBpdFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJlc2V0XCIpXG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgdGhlcmUgYXJlIG5vIHJlbW90ZSBvciBsb2NhbCBicmFuY2hlcywgY3JlYXRlIGEgbmV3IG9uZVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYnJhbmNoIC0tZm9yY2UgJHticmFuY2h9IG1hc3RlcmApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJybSAtciAuXCIpXG4gIH1cbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGFkZCAke3VpZERpcmVjdG9yeX1gKVxuICB9XG4gIGxldCBzdGF0dXMgPSBmYWxzZVxuICBpZiAoIXRlc3QocmVwb3NpdG9yeURpciwgXCJkaWZmIC0tcXVpZXQgLS1jYWNoZWRcIikpIHtcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGNvbW1pdCAtbSAnVXBkYXRlJ2ApXG4gICAgc3RhdHVzID0gdHJ1ZVxuICB9XG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke3ByZXZpb3VzQnJhbmNofWApXG4gIGNvbnN0IHJlc2V0T3B0aW9uID0gbm90SGFyZCA/IFwiXCIgOiBcIi0taGFyZFwiXG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgcmVzZXQgJHtyZXNldE9wdGlvbn1gKVxuICByZXR1cm4gc3RhdHVzXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLElBQUksTUFBTSxNQUFNO0FBQ3ZCLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQUEsU0FDaEJDLFFBQVE7QUFDakIsU0FBdUJDLFFBQVEsUUFBUSxlQUFlO0FBRXRELE1BQU1DLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFFbEMsT0FBTyxTQUFTQyxNQUFNQSxDQUFDQyxhQUFxQixFQUFFQyxPQUFlLEVBQVc7RUFDdEVKLFFBQVEsQ0FBQyxXQUFXLEVBQUU7SUFDcEJLLEdBQUcsRUFBRUYsYUFBYTtJQUNsQkcsR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBQUc7SUFDaEJFLFFBQVEsRUFBRSxPQUFPO0lBQ2pCQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNuQ0MsU0FBUyxFQUFFVDtFQUNiLENBQUMsQ0FBQztFQUNGLElBQUk7SUFDRkQsUUFBUSxDQUFDLGtCQUFrQkksT0FBTyxXQUFXLEVBQUU7TUFDN0NDLEdBQUcsRUFBRUYsYUFBYTtNQUNsQkcsR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBQUc7TUFDaEJFLFFBQVEsRUFBRSxPQUFPO01BQ2pCQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU07SUFDbEMsQ0FB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
|
|
151
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiZnMiLCJnZXRGaWxlcyIsImV4ZWNTeW5jIiwiTUFYQlVGRkVSIiwiY29tbWl0IiwicmVwb3NpdG9yeURpciIsIm1lc3NhZ2UiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsIm1heEJ1ZmZlciIsImNoaWxkUHJvY2VzcyIsInN0ZG91dCIsInRlc3QiLCJjb25zb2xlIiwiZXJyb3IiLCJvdXRwdXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlcyIsImV4aXRDb2RlIiwicmVtb3RlIiwic3RhdHVzIiwicmVzZXRBbmRQdWxsIiwiZ2l0RGlyIiwiY2xvbmUiLCJnaXRHcm91cFVybCIsImdpdE5hbWUiLCJ3b3JraW5nRGlyIiwidW5kZWZpbmVkIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2ciLCJ0b1N0cmluZyIsInRyaW0iLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwic3ViZGlyZWN0b3J5IiwidWlkRGlyZWN0b3J5IiwiZW5zdXJlRGlyU3luYyIsInBhdGhuYW1lIiwiZmlsZW5hbWUiLCJiYXNlbmFtZSIsInJlbmFtZVN5bmMiLCJyZXNldE9wdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9naXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBnZXRGaWxlcyB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuXG5jb25zdCBNQVhCVUZGRVIgPSA1MCAqIDEwMjQgKiAxMDI0XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogbnVtYmVyIHtcbiAgbGV0IGV4aXRDb2RlID0gMFxuICBpZiAoY29tbWl0KHJlcG9zaXRvcnlEaXIsIG1lc3NhZ2UpKSB7XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBleGl0Q29kZSA9IChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGF0dXNcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlcmUgd2FzIG5vdGhpbmcgdG8gY29tbWl0LlxuICAgIGV4aXRDb2RlID0gMTBcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0QW5kUHVsbChnaXREaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBleGVjU3luYyhgZ2l0IHJlc2V0IC0taGFyZCBvcmlnaW4vbWFzdGVyYCwge1xuICAgIGN3ZDogZ2l0RGlyLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgfSlcblxuICBleGVjU3luYyhgZ2l0IHB1bGwgLS1yZWJhc2VgLCB7XG4gICAgY3dkOiBnaXREaXIsXG4gICAgZW52OiBwcm9jZXNzLmVudixcbiAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICB9KVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZShcbiAgZ2l0R3JvdXBVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZ2l0TmFtZTogc3RyaW5nLFxuICB3b3JraW5nRGlyOiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgaWYgKGdpdEdyb3VwVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0R3JvdXBVcmx9LyR7Z2l0TmFtZX0uZ2l0YCwge1xuICAgICAgY3dkOiB3b3JraW5nRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW4oXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgYXJnczogc3RyaW5nLFxuICB2ZXJib3NlPzogYm9vbGVhbixcbik6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiBvdXRwdXRcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgZm9yIChjb25zdCBvdXRwdXQgb2YgW1wic3Rkb3V0XCIsIFwic3RkZXJyXCJdKVxuICAgICAgY29uc29sZS5lcnJvcihgJHtvdXRwdXR9OiAkeyhjaGlsZFByb2Nlc3MgYXMgYW55KVtvdXRwdXRdfWApXG4gICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlc3QoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgYXJnczogc3RyaW5nLFxuICB2ZXJib3NlPzogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhgZ2l0IC1DICR7cmVwb3NpdG9yeURpcn0gJHthcmdzfWApXG4gICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoYGdpdCAke2FyZ3N9YCwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gICAgfSlcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudHJpbSgpXG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKG91dHB1dClcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBpZiAoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0YXR1cyAhPSAwKSByZXR1cm4gZmFsc2VcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlkQnJhbmNoVXBkYXRlKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4gIG5vdEhhcmQ6IGJvb2xlYW4sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcHJldmlvdXNCcmFuY2ggPSBydW4ocmVwb3NpdG9yeURpciwgXCJyZXYtcGFyc2UgLS1hYmJyZXYtcmVmIEhFQURcIilcbiAgY29uc3QgYnJhbmNoID0gXCJ1aWRcIlxuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIHByb2Nlc3MuY2hkaXIocmVwb3NpdG9yeURpcilcbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHVpZERpcmVjdG9yeSlcbiAgICBmb3IgKGNvbnN0IHBhdGhuYW1lIG9mIGdldEZpbGVzKFtgJHtzdWJkaXJlY3Rvcnl9LyoqLyouanNvbmBdKSkge1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKHBhdGhuYW1lKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRobmFtZSwgYCR7dWlkRGlyZWN0b3J5fS8ke2ZpbGVuYW1lfWApXG4gICAgfVxuICB9XG4gIHByb2Nlc3MuY2hkaXIoY3dkKVxuICBpZiAodGVzdChyZXBvc2l0b3J5RGlyLCBgcmV2LXBhcnNlIHJlbW90ZXMvb3JpZ2luLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgYSByZW1vdGUgYnJhbmNoIGV4aXN0cywgaXQgbXVzdCBiZSB1c2VkIGV2ZW4gaWYgYSBsb2NhbCBicmFuY2ggZXhpc3RzXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gb3JpZ2luLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKSkge1xuICAgIC8vIGlmIG5vIHJlbW90ZSBicmFuY2ggZXhpc3RzIGJ1dCBhIGxvY2FsIG9uZSBleGlzdHMsIHVzZSBpdFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJlc2V0XCIpXG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgdGhlcmUgYXJlIG5vIHJlbW90ZSBvciBsb2NhbCBicmFuY2hlcywgY3JlYXRlIGEgbmV3IG9uZVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYnJhbmNoIC0tZm9yY2UgJHticmFuY2h9IG1hc3RlcmApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJybSAtciAuXCIpXG4gIH1cbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGFkZCAke3VpZERpcmVjdG9yeX1gKVxuICB9XG4gIGxldCBzdGF0dXMgPSBmYWxzZVxuICBpZiAoIXRlc3QocmVwb3NpdG9yeURpciwgXCJkaWZmIC0tcXVpZXQgLS1jYWNoZWRcIikpIHtcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGNvbW1pdCAtbSAnVXBkYXRlJ2ApXG4gICAgc3RhdHVzID0gdHJ1ZVxuICB9XG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke3ByZXZpb3VzQnJhbmNofWApXG4gIGNvbnN0IHJlc2V0T3B0aW9uID0gbm90SGFyZCA/IFwiXCIgOiBcIi0taGFyZFwiXG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgcmVzZXQgJHtyZXNldE9wdGlvbn1gKVxuICByZXR1cm4gc3RhdHVzXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLElBQUksTUFBTSxNQUFNO0FBQ3ZCLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQUEsU0FDaEJDLFFBQVE7QUFDakIsU0FBdUJDLFFBQVEsUUFBUSxlQUFlO0FBRXRELE1BQU1DLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFFbEMsT0FBTyxTQUFT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LEdBQUdGLFlBQVksSUFBSUcsUUFBUSxFQUFFLENBQUM7SUFDeEQ7RUFDRjtFQUNBdEMsT0FBTyxDQUFDaUMsS0FBSyxDQUFDbkMsR0FBRyxDQUFDO0VBQ2xCLElBQUlRLElBQUksQ0FBQ1YsYUFBYSxFQUFFLDRCQUE0Qm9DLE1BQU0sRUFBRSxDQUFDLEVBQUU7SUFDN0Q7SUFDQVYsR0FBRyxDQUFDMUIsYUFBYSxFQUFFLGtCQUFrQm9DLE1BQU0sV0FBV0EsTUFBTSxFQUFFLENBQUM7SUFDL0RWLEdBQUcsQ0FBQzFCLGFBQWEsRUFBRSxnQ0FBZ0NvQyxNQUFNLEVBQUUsQ0FBQztJQUM1RFYsR0FBRyxDQUFDMUIsYUFBYSxFQUFFLE9BQU8sQ0FBQztFQUM3QixDQUFDLE1BQU0sSUFBSVUsSUFBSSxDQUFDVixhQUFhLEVBQUUsd0JBQXdCb0MsTUFBTSxFQUFFLENBQUMsRUFBRTtJQUNoRTtJQUNBVixHQUFHLENBQUMxQixhQUFhLEVBQUUsZ0NBQWdDb0MsTUFBTSxFQUFFLENBQUM7SUFDNURWLEdBQUcsQ0FBQzFCLGFBQWEsRUFBRSxPQUFPLENBQUM7RUFDN0IsQ0FBQyxNQUFNO0lBQ0w7SUFDQTBCLEdBQUcsQ0FBQzFCLGFBQWEsRUFBRSxrQkFBa0JvQyxNQUFNLFNBQVMsQ0FBQztJQUNyRFYsR0FBRyxDQUFDMUIsYUFBYSxFQUFFLGdDQUFnQ29DLE1BQU0sRUFBRSxDQUFDO0lBQzVEVixHQUFHLENBQUMxQixhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQzNCMEIsR0FBRyxDQUFDMUIsYUFBYSxFQUFFLFNBQVMsQ0FBQztFQUMvQjtFQUNBLEtBQUssTUFBTXNDLFlBQVksSUFBSUwsY0FBYyxFQUFFO0lBQ3pDLE1BQU1NLFlBQVksR0FBRyxHQUFHRCxZQUFZLE1BQU07SUFDMUNaLEdBQUcsQ0FBQzFCLGFBQWEsRUFBRSxPQUFPdUMsWUFBWSxFQUFFLENBQUM7RUFDM0M7RUFDQSxJQUFJckIsTUFBTSxHQUFHLEtBQUs7RUFDbEIsSUFBSSxDQUFDUixJQUFJLENBQUNWLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFO0lBQ2pEMEIsR0FBRyxDQUFDMUIsYUFBYSxFQUFFLG9CQUFvQixDQUFDO0lBQ3hDa0IsTUFBTSxHQUFHLElBQUk7RUFDZjtFQUNBUSxHQUFHLENBQUMxQixhQUFhLEVBQUUsZ0NBQWdDbUMsY0FBYyxFQUFFLENBQUM7RUFDcEUsTUFBTVUsV0FBVyxHQUFHWCxPQUFPLEdBQUcsRUFBRSxHQUFHLFFBQVE7RUFDM0NSLEdBQUcsQ0FBQzFCLGFBQWEsRUFBRSxTQUFTNkMsV0FBVyxFQUFFLENBQUM7RUFDMUMsT0FBTzNCLE1BQU07QUFDZiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseTexteLoi(html: string): Promise<unknown>;
|
|
@@ -25,7 +25,6 @@ require("core-js/modules/es.regexp.exec.js");
|
|
|
25
25
|
require("core-js/modules/es.string.ends-with.js");
|
|
26
26
|
require("core-js/modules/es.string.replace.js");
|
|
27
27
|
require("core-js/modules/es.string.trim.js");
|
|
28
|
-
var _child_process = require("child_process");
|
|
29
28
|
var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
|
|
30
29
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
31
30
|
var _path = _interopRequireDefault(require("path"));
|
|
@@ -74,14 +73,7 @@ function parseArgs(argv) {
|
|
|
74
73
|
return options;
|
|
75
74
|
}
|
|
76
75
|
function cloneGit(gitGroupUrl, datasetName, dataDir) {
|
|
77
|
-
|
|
78
|
-
(0, _child_process.execSync)("git clone ".concat(gitGroupUrl, "/").concat(datasetName, "_nettoye.git"), {
|
|
79
|
-
cwd: dataDir,
|
|
80
|
-
env: process.env,
|
|
81
|
-
encoding: "utf-8",
|
|
82
|
-
stdio: ["ignore", "ignore", "pipe"]
|
|
83
|
-
});
|
|
84
|
-
}
|
|
76
|
+
git.clone(gitGroupUrl, "".concat(datasetName, "_nettoye"), dataDir);
|
|
85
77
|
}
|
|
86
78
|
function commitGit(datasetCleanDir, options, exitCode, subdirectories) {
|
|
87
79
|
if (options.commit) {
|
|
@@ -394,4 +386,4 @@ function main(argv) {
|
|
|
394
386
|
|
|
395
387
|
/* istanbul ignore if */
|
|
396
388
|
if (process.argv[1].endsWith("clean_reorganized_data.ts")) process.exit(main(process.argv));
|
|
397
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9mc0V4dHJhIiwiX3BhdGgiLCJfY2xlYW5lcnMiLCJfZGF0YXNldHMiLCJfZGF0ZXMiLCJfZmlsZV9zeXN0ZW1zIiwiZ2l0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfYWN0ZXVyc19ldF9vcmdhbmVzIiwiX2FnZW5kYXMiLCJfYW1lbmRlbWVudHMiLCJfZG9zc2llcnNfbGVnaXNsYXRpZnMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsIl9jbGlfaGVscGVycyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwibGVuZ3RoIiwiX24iLCJGIiwicyIsImRvbmUiLCJ2YWx1ZSIsImYiLCJvIiwibmV4dCIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwicGFyc2VBcmdzIiwiYXJndiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImNsb25lT3B0aW9uIiwiY29tbWl0T3B0aW9uIiwicmVtb3RlT3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJjYXRlZ29yaWVzT3B0aW9uIiwic2lsZW50T3B0aW9uIiwidmVyYm9zZU9wdGlvbiIsImRhdGFEaXJEZWZhdWx0T3B0aW9uIiwicHVsbE9wdGlvbiIsImFsaWFzIiwiaGVscCIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsImNsb25lR2l0IiwiZ2l0R3JvdXBVcmwiLCJkYXRhc2V0TmFtZSIsImRhdGFEaXIiLCJ1bmRlZmluZWQiLCJleGVjU3luYyIsImNvbmNhdCIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY29tbWl0R2l0IiwiZGF0YXNldENsZWFuRGlyIiwiZXhpdENvZGUiLCJzdWJkaXJlY3RvcmllcyIsImNvbW1pdCIsImVycm9yQ29kZSIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJjb21taXRBbmRQdXNoVWlkIiwiY2xlYW5BbmRWYWxpZGF0ZURhdGEiLCJkYXRhIiwiY2xlYW5lciIsImZyb21Kc29uIiwidG9Kc29uIiwibm9WYWxpZGF0ZSIsImpzb25EYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsInZhbGlkYXRlZERhdGEiLCJwcm9jZXNzRmlsZXMiLCJkYXRhc2V0UmF3RGlyIiwid2Fsa0RpclBhcmFtcyIsImRhdGFDb252ZXJ0ZXIiLCJfaXRlcmF0b3IiLCJ3YWxrRGlyIiwiX3N0ZXAiLCJmaWxlUGF0aEFycmF5IiwiZmlsZW5hbWUiLCJlbmRzV2l0aCIsInJhd0ZpbGVQYXRoIiwicGF0aCIsImpvaW4iLCJhcHBseSIsInJhd0pzb24iLCJmcyIsInJlYWRGaWxlU3luYyIsInZlcmJvc2UiLCJjb25zb2xlIiwibG9nIiwicGFyc2UiLCJ2YWxpZGF0ZURhdGEiLCJjbGVhbkpzb24iLCJjbGVhbkZpbGVQYXRoIiwiZW5zdXJlRGlyU3luYyIsImRpcm5hbWUiLCJ3cml0ZUZpbGVTeW5jIiwiZXJyIiwiY2xlYW5SZW9yZ2FuaXplZERhdGEiLCJfb3B0aW9ucyRjbG9uZSIsIkRhdGUiLCJwcm90b3R5cGUiLCJ0b0pTT04iLCJwYXRjaGVkRGF0ZVRvSnNvbiIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJlbmFibGVkRGF0YXNldHMiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwiY2hvc2VuRGF0YXNldHMiLCJmaWx0ZXJCeUxlZ2lzbGF0dXJlIiwiZGF0YXNldHMiLCJsZWdpc2xhdHVyZSIsIkVuYWJsZWREYXRhc2V0cyIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJfaXRlcmF0b3IyIiwiYWN0ZXVyc0V0T3JnYW5lcyIsIl9zdGVwMiIsImRhdGFzZXQiLCJiYXNlbmFtZSIsInB1bGwiLCJyZXNldEFuZFB1bGwiLCJhbmFseXplQW5kUmVtb3ZlIiwiY2xlYW5BY3RldXIiLCJBY3RldXJzRXRPcmdhbmVzQ29udmVydCIsInRvQWN0ZXVyIiwiYWN0ZXVyVG9Kc29uIiwiY2xlYW5PcmdhbmUiLCJ0b09yZ2FuZSIsIm9yZ2FuZVRvSnNvbiIsIkFnZW5kYXMiLCJfaXRlcmF0b3IzIiwiYWdlbmRhcyIsIl9zdGVwMyIsImNsZWFuUmV1bmlvbiIsIkFnZW5kYXNDb252ZXJ0IiwidG9SZXVuaW9uIiwicmV1bmlvblRvSnNvbiIsIkFtZW5kZW1lbnRzIiwiX2l0ZXJhdG9yNCIsImFtZW5kZW1lbnRzIiwiX3N0ZXA0IiwiY2xlYW5BbWVuZGVtZW50IiwiQW1lbmRlbWVudHNDb252ZXJ0IiwidG9BbWVuZGVtZW50IiwiYW1lbmRlbWVudFRvSnNvbiIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJfaXRlcmF0b3I1IiwiZG9zc2llcnNMZWdpc2xhdGlmcyIsIl9zdGVwNSIsImNsZWFuRG9jdW1lbnRPckRpdmlzaW9uIiwiRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQiLCJ0b0RvY3VtZW50IiwiZG9jdW1lbnRUb0pzb24iLCJjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlIiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsImRvc3NpZXJQYXJsZW1lbnRhaXJlVG9Kc29uIiwiU2NydXRpbnMiLCJfaXRlcmF0b3I2Iiwic2NydXRpbnMiLCJfc3RlcDYiLCJjbGVhblNjcnV0aW4iLCJTY3J1dGluc0NvbnZlcnQiLCJ0b1NjcnV0aW4iLCJzY3J1dGluVG9Kc29uIiwiUXVlc3Rpb25zIiwiX2l0ZXJhdG9yNyIsInF1ZXN0aW9ucyIsIl9zdGVwNyIsImNsZWFuUXVlc3Rpb24iLCJRdWVzdGlvbnNDb252ZXJ0IiwidG9RdWVzdGlvbiIsInF1ZXN0aW9uVG9Kc29uIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJfaXRlcmF0b3I4IiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJfc3RlcDgiLCJjbGVhbkNvbXB0ZVJlbmR1IiwiQ29tcHRlc1JlbmR1c0NvbnZlcnQiLCJ0b0NvbXB0ZVJlbmR1IiwiY29tcHRlUmVuZHVUb0pzb24iLCJleGlzdGluZ0RhdGVUb0pzb24iLCJzaWxlbnQiLCJfaXRlcmF0b3I5IiwicmVhZGRpclN5bmMiLCJfc3RlcDkiLCJwYXRobmFtZSIsInJlbW92ZVN5bmMiLCJyZXBvc2l0b3J5RGlyIiwiZXJyb3IiLCJ1aWRCcmFuY2hVcGRhdGUiLCJfaXRlcmF0b3IxMCIsIl9zdGVwMTAiLCJydW4iLCJjaGlsZFByb2Nlc3MiLCJtYWluIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NsZWFuX3Jlb3JnYW5pemVkX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7XG4gIGNsZWFuQWN0ZXVyLFxuICBjbGVhbkFtZW5kZW1lbnQsXG4gIGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uLFxuICBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICBjbGVhbk9yZ2FuZSxcbiAgY2xlYW5SZXVuaW9uLFxuICBjbGVhblNjcnV0aW4sXG4gIGNsZWFuUXVlc3Rpb24sXG4gIGNsZWFuQ29tcHRlUmVuZHUsXG59IGZyb20gXCIuLi9jbGVhbmVyc1wiXG5pbXBvcnQge1xuICBkYXRhc2V0cyxcbiAgRW5hYmxlZERhdGFzZXRzLFxuICBnZXRFbmFibGVkRGF0YXNldHMsXG4gIGZpbHRlckJ5TGVnaXNsYXR1cmUsXG59IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBleGlzdGluZ0RhdGVUb0pzb24sIHBhdGNoZWREYXRlVG9Kc29uIH0gZnJvbSBcIi4uL2RhdGVzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29udmVydCBhcyBBY3RldXJzRXRPcmdhbmVzQ29udmVydCxcbiAgT3JnYW5lLFxufSBmcm9tIFwiLi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQWdlbmRhc0NvbnZlcnQsIFJldW5pb24gfSBmcm9tIFwiLi4vdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBBbWVuZGVtZW50LCBDb252ZXJ0IGFzIEFtZW5kZW1lbnRzQ29udmVydCB9IGZyb20gXCIuLi90eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQge1xuICBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG59IGZyb20gXCIuLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFNjcnV0aW5zQ29udmVydCwgU2NydXRpbiB9IGZyb20gXCIuLi90eXBlcy9zY3J1dGluc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFF1ZXN0aW9uc0NvbnZlcnQsIFF1ZXN0aW9uIH0gZnJvbSBcIi4uL3R5cGVzL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIENvbXB0ZXNSZW5kdXNDb252ZXJ0LCBDb21wdGVSZW5kdSB9IGZyb20gXCIuLi90eXBlcy9kZWJhdHNcIlxuaW1wb3J0IHtcbiAgY2xvbmVPcHRpb24sXG4gIGNvbW1pdE9wdGlvbixcbiAgcmVtb3RlT3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgY2F0ZWdvcmllc09wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgcHVsbE9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIGNsb25lT3B0aW9uLFxuICAgIGNvbW1pdE9wdGlvbixcbiAgICByZW1vdGVPcHRpb24sXG4gICAgbGVnaXNsYXR1cmVPcHRpb24sXG4gICAgY2F0ZWdvcmllc09wdGlvbixcbiAgICBzaWxlbnRPcHRpb24sXG4gICAgdmVyYm9zZU9wdGlvbixcbiAgICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgICBwdWxsT3B0aW9uLFxuICAgIHtcbiAgICAgIGFsaWFzOiBcImRcIixcbiAgICAgIGhlbHA6IFwic2luZ2xlIGRhdGFzZXQgdG8gcmVvcmdhbml6ZVwiLFxuICAgICAgbmFtZTogXCJkYXRhc2V0XCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWxwOiBcImRvIG5vdCByZXNldCAtLWhhcmQgYWZ0ZXIgY29tbWl0IHRvIHNhdmUgSS9PIGlmIHRoZSB3b3JraW5nIHRyZWUgaXMgdG8gYmUgZGlzY2FyZGVkXCIsXG4gICAgICBuYW1lOiBcIm5vLXJlc2V0LWFmdGVyLWNvbW1pdFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGFsaWFzOiBcIlZcIixcbiAgICAgIGhlbHA6IFwiZG9uJ3QgdmFsaWRhdGUgZGF0YVwiLFxuICAgICAgbmFtZTogXCJuby12YWxpZGF0ZVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICBdXG4gIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zLCB7XG4gICAgYXJndjogYXJndixcbiAgfSlcbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gY2xvbmVHaXQoXG4gIGdpdEdyb3VwVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGRhdGFzZXROYW1lOiBzdHJpbmcsXG4gIGRhdGFEaXI6IHN0cmluZyxcbik6IHZvaWQge1xuICBpZiAoZ2l0R3JvdXBVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgIGV4ZWNTeW5jKGBnaXQgY2xvbmUgJHtnaXRHcm91cFVybH0vJHtkYXRhc2V0TmFtZX1fbmV0dG95ZS5naXRgLCB7XG4gICAgICBjd2Q6IGRhdGFEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0R2l0KFxuICBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuICBleGl0Q29kZTogbnVtYmVyLFxuICBzdWJkaXJlY3RvcmllczogYW55LFxuKTogbnVtYmVyIHtcbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgY29uc3QgZXJyb3JDb2RlID0gZ2l0LmNvbW1pdEFuZFB1c2goXG4gICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICBcIk5vdXZlbGxlIG1vaXNzb25cIixcbiAgICAgIG9wdGlvbnMucmVtb3RlLFxuICAgIClcbiAgICBpZiAoXG4gICAgICAoZXhpdENvZGUgPT09IDEwICYmIGVycm9yQ29kZSAhPT0gMTApIHx8XG4gICAgICAoZXhpdENvZGUgPT09IDAgJiYgZXJyb3JDb2RlICE9PSAwICYmIGVycm9yQ29kZSAhPT0gMTApXG4gICAgKSB7XG4gICAgICBleGl0Q29kZSA9IGVycm9yQ29kZVxuICAgIH1cbiAgfVxuICBpZiAoXG4gICAgY29tbWl0QW5kUHVzaFVpZChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIHN1YmRpcmVjdG9yaWVzKSAmJlxuICAgIChleGl0Q29kZSA9PT0gMCB8fCBleGl0Q29kZSA9PT0gMTApXG4gICkge1xuICAgIGV4aXRDb2RlID0gMVxuICB9XG4gIHJldHVybiBleGl0Q29kZVxufVxuXG5mdW5jdGlvbiBjbGVhbkFuZFZhbGlkYXRlRGF0YTxUPihcbiAgZGF0YTogYW55LFxuICBjbGVhbmVyOiAoZGF0YTogVCkgPT4gdm9pZCxcbiAgZnJvbUpzb246IChqc29uOiBzdHJpbmcpID0+IFQsXG4gIHRvSnNvbjogKGRhdGE6IFQpID0+IHN0cmluZyxcbiAgbm9WYWxpZGF0ZTogQm9vbGVhbixcbik6IHN0cmluZyB7XG4gIGNsZWFuZXIoZGF0YSlcbiAgY29uc3QganNvbkRhdGEgPSBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKVxuICBpZiAoIW5vVmFsaWRhdGUpIHtcbiAgICByZXR1cm4ganNvbkRhdGFcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB2YWxpZGF0ZWREYXRhOiBUID0gZnJvbUpzb24oanNvbkRhdGEpXG4gICAgcmV0dXJuIHRvSnNvbih2YWxpZGF0ZWREYXRhKVxuICB9XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NGaWxlczxUPihcbiAgZGF0YXNldFJhd0Rpcjogc3RyaW5nLFxuICBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyxcbiAgd2Fsa0RpclBhcmFtczogYW55W10sXG4gIGNsZWFuZXI6IGFueSxcbiAgZGF0YUNvbnZlcnRlcjogeyBmcm9tSnNvbjogYW55OyB0b0pzb246IGFueSB9LFxuICBvcHRpb25zOiBhbnksXG4pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBmaWxlUGF0aEFycmF5IG9mIHdhbGtEaXIoZGF0YXNldFJhd0Rpciwgd2Fsa0RpclBhcmFtcykpIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGZpbGVQYXRoQXJyYXlbZmlsZVBhdGhBcnJheS5sZW5ndGggLSAxXVxuICAgIGlmICghZmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkgY29udGludWVcbiAgICBjb25zdCByYXdGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0UmF3RGlyLCAuLi5maWxlUGF0aEFycmF5KVxuICAgIGNvbnN0IHJhd0pzb24gPSBmcy5yZWFkRmlsZVN5bmMocmF3RmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYENsZWFuaW5nIGZpbGU6ICR7cmF3RmlsZVBhdGh9Li4uYClcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyYXdKc29uKVxuICAgIGNvbnN0IHZhbGlkYXRlRGF0YSA9ICFvcHRpb25zW1wibm8tdmFsaWRhdGVcIl1cbiAgICBjb25zdCBjbGVhbkpzb24gPSBjbGVhbkFuZFZhbGlkYXRlRGF0YTxUPihcbiAgICAgIGRhdGEsXG4gICAgICBjbGVhbmVyLFxuICAgICAgZGF0YUNvbnZlcnRlci5mcm9tSnNvbixcbiAgICAgIGRhdGFDb252ZXJ0ZXIudG9Kc29uLFxuICAgICAgdmFsaWRhdGVEYXRhLFxuICAgIClcbiAgICBjb25zdCBjbGVhbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXRDbGVhbkRpciwgLi4uZmlsZVBhdGhBcnJheSlcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHBhdGguZGlybmFtZShjbGVhbkZpbGVQYXRoKSlcbiAgICBmcy53cml0ZUZpbGVTeW5jKGNsZWFuRmlsZVBhdGgsIGNsZWFuSnNvbiwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhblJlb3JnYW5pemVkRGF0YShvcHRpb25zOiBhbnkpOiBudW1iZXIge1xuICBjb25zdCBkYXRhRGlyOiBzdHJpbmcgPSBvcHRpb25zLmRhdGFEaXJcbiAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gcGF0Y2hlZERhdGVUb0pzb25cbiAgbGV0IGV4aXRDb2RlID0gb3B0aW9ucy5jb21taXQgPyAxMCA6IDBcbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lPy50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICBjb25zdCBlbmFibGVkRGF0YXNldHMgPSBnZXRFbmFibGVkRGF0YXNldHMob3B0aW9ucy5jYXRlZ29yaWVzKVxuICBsZXQgY2hvc2VuRGF0YXNldHMgPSBmaWx0ZXJCeUxlZ2lzbGF0dXJlKGRhdGFzZXRzLCBvcHRpb25zLmxlZ2lzbGF0dXJlKVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIuanNvblwiKVxuICAgICAgaWYgKG9wdGlvbnMuZGF0YXNldCAmJiBkYXRhc2V0TmFtZSAhPT0gb3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG5cbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuICAgICAgaWYgKG9wdGlvbnMucHVsbCkge1xuICAgICAgICBnaXQucmVzZXRBbmRQdWxsKGRhdGFzZXRDbGVhbkRpcilcbiAgICAgIH1cblxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIHByb2Nlc3NGaWxlczxBY3RldXI+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcImFjdGV1cnNcIl0sXG4gICAgICAgIGNsZWFuQWN0ZXVyLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyLFxuICAgICAgICAgIHRvSnNvbjogQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQuYWN0ZXVyVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgcHJvY2Vzc0ZpbGVzPE9yZ2FuZT4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW1wib3JnYW5lc1wiXSxcbiAgICAgICAgY2xlYW5PcmdhbmUsXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9PcmdhbmUsXG4gICAgICAgICAgdG9Kc29uOiBBY3RldXJzRXRPcmdhbmVzQ29udmVydC5vcmdhbmVUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcbiAgICAgICAgXCJhY3RldXJzXCIsXG4gICAgICAgIFwib3JnYW5lc1wiLFxuICAgICAgXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIHByb2Nlc3NGaWxlczxSZXVuaW9uPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXSxcbiAgICAgICAgY2xlYW5SZXVuaW9uLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFnZW5kYXNDb252ZXJ0LnRvUmV1bmlvbixcbiAgICAgICAgICB0b0pzb246IEFnZW5kYXNDb252ZXJ0LnJldW5pb25Ub0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcIi5cIl0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIHByb2Nlc3NGaWxlczxBbWVuZGVtZW50PihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXSxcbiAgICAgICAgY2xlYW5BbWVuZGVtZW50LFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnQsXG4gICAgICAgICAgdG9Kc29uOiBBbWVuZGVtZW50c0NvbnZlcnQuYW1lbmRlbWVudFRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIHByb2Nlc3NGaWxlczxEb2N1bWVudD4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW1wiZG9jdW1lbnRzXCJdLFxuICAgICAgICBjbGVhbkRvY3VtZW50T3JEaXZpc2lvbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50LFxuICAgICAgICAgIHRvSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQuZG9jdW1lbnRUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG4gICAgICBwcm9jZXNzRmlsZXM8RG9zc2llclBhcmxlbWVudGFpcmU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcImRvc3NpZXJzXCJdLFxuICAgICAgICBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUsXG4gICAgICAgICAgdG9Kc29uOiBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC5kb3NzaWVyUGFybGVtZW50YWlyZVRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1xuICAgICAgICBcImRvY3VtZW50c1wiLFxuICAgICAgICBcImRvc3NpZXJzXCIsXG4gICAgICBdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8U2NydXRpbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuU2NydXRpbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGluLFxuICAgICAgICAgIHRvSnNvbjogU2NydXRpbnNDb252ZXJ0LnNjcnV0aW5Ub0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcIi5cIl0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIuanNvblwiKVxuICAgICAgaWYgKG9wdGlvbnMuZGF0YXNldCAmJiBkYXRhc2V0TmFtZSAhPT0gb3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcblxuICAgICAgcHJvY2Vzc0ZpbGVzPFF1ZXN0aW9uPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXSxcbiAgICAgICAgY2xlYW5RdWVzdGlvbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBRdWVzdGlvbnNDb252ZXJ0LnRvUXVlc3Rpb24sXG4gICAgICAgICAgdG9Kc29uOiBRdWVzdGlvbnNDb252ZXJ0LnF1ZXN0aW9uVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQ29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi54bWxcIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIHByb2Nlc3NGaWxlczxDb21wdGVSZW5kdT4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuQ29tcHRlUmVuZHUsXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdSxcbiAgICAgICAgICB0b0pzb246IENvbXB0ZXNSZW5kdXNDb252ZXJ0LmNvbXB0ZVJlbmR1VG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RvcmUgc3RhbmRhcmQgY29udmVyc2lvbiBvZiBkYXRlcyB0byBKU09OLlxuICBEYXRlLnByb3RvdHlwZS50b0pTT04gPSBleGlzdGluZ0RhdGVUb0pzb25cblxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZnVuY3Rpb24gYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZTogc3RyaW5nLCBvcHRpb25zOiBhbnkpOiBhbnkge1xuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG4gIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgQ2xlYW5pbmcgZGlyZWN0b3J5OiAke2RhdGFzZXRDbGVhbkRpcn3igKZgKVxuICB9XG4gIGZzLmVuc3VyZURpclN5bmMoZGF0YXNldENsZWFuRGlyKVxuICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKGRhdGFzZXRDbGVhbkRpcikpIHtcbiAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBwYXRobmFtZSA9IHBhdGguam9pbihkYXRhc2V0Q2xlYW5EaXIsIGZpbGVuYW1lKVxuICAgIGZzLnJlbW92ZVN5bmMocGF0aG5hbWUpXG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaFVpZChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgZ2l0LnVpZEJyYW5jaFVwZGF0ZShcbiAgICAgIHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdWJkaXJlY3RvcmllcyxcbiAgICAgIG9wdGlvbnNbXCJuby1yZXNldC1hZnRlci1jb21taXRcIl0sXG4gICAgKVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIG9wdGlvbnMucmVtb3RlIHx8IFtdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBnaXQucnVuKHJlcG9zaXRvcnlEaXIsIGBwdXNoIC0tcXVpZXQgJHtyZW1vdGV9IHVpZDp1aWRgKVxuICAgICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIGVycm9yID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3Jcbn1cblxuZnVuY3Rpb24gbWFpbihhcmd2OiBhbnkpOiBudW1iZXIge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3YpXG4gIHJldHVybiBjbGVhblJlb3JnYW5pemVkRGF0YShvcHRpb25zKVxufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChwcm9jZXNzLmFyZ3ZbMV0uZW5kc1dpdGgoXCJjbGVhbl9yZW9yZ2FuaXplZF9kYXRhLnRzXCIpKVxuICBwcm9jZXNzLmV4aXQobWFpbihwcm9jZXNzLmFyZ3YpKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssU0FBQSxH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
|
|
389
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2NsZWFuZXJzIiwiX2RhdGFzZXRzIiwiX2RhdGVzIiwiX2ZpbGVfc3lzdGVtcyIsImdpdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2FjdGV1cnNfZXRfb3JnYW5lcyIsIl9hZ2VuZGFzIiwiX2FtZW5kZW1lbnRzIiwiX2Rvc3NpZXJzX2xlZ2lzbGF0aWZzIiwiX3NjcnV0aW5zIiwiX3F1ZXN0aW9ucyIsIl9kZWJhdHMiLCJfY2xpX2hlbHBlcnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJkb25lIiwidmFsdWUiLCJmIiwibyIsIm5leHQiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsInBhcnNlQXJncyIsImFyZ3YiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJjbG9uZU9wdGlvbiIsImNvbW1pdE9wdGlvbiIsInJlbW90ZU9wdGlvbiIsImxlZ2lzbGF0dXJlT3B0aW9uIiwiY2F0ZWdvcmllc09wdGlvbiIsInNpbGVudE9wdGlvbiIsInZlcmJvc2VPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsInB1bGxPcHRpb24iLCJhbGlhcyIsImhlbHAiLCJ0eXBlIiwiU3RyaW5nIiwiQm9vbGVhbiIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJjbG9uZUdpdCIsImdpdEdyb3VwVXJsIiwiZGF0YXNldE5hbWUiLCJkYXRhRGlyIiwiY2xvbmUiLCJjb25jYXQiLCJjb21taXRHaXQiLCJkYXRhc2V0Q2xlYW5EaXIiLCJleGl0Q29kZSIsInN1YmRpcmVjdG9yaWVzIiwiY29tbWl0IiwiZXJyb3JDb2RlIiwiY29tbWl0QW5kUHVzaCIsInJlbW90ZSIsImNvbW1pdEFuZFB1c2hVaWQiLCJjbGVhbkFuZFZhbGlkYXRlRGF0YSIsImRhdGEiLCJjbGVhbmVyIiwiZnJvbUpzb24iLCJ0b0pzb24iLCJub1ZhbGlkYXRlIiwianNvbkRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwidmFsaWRhdGVkRGF0YSIsInByb2Nlc3NGaWxlcyIsImRhdGFzZXRSYXdEaXIiLCJ3YWxrRGlyUGFyYW1zIiwiZGF0YUNvbnZlcnRlciIsIl9pdGVyYXRvciIsIndhbGtEaXIiLCJfc3RlcCIsImZpbGVQYXRoQXJyYXkiLCJmaWxlbmFtZSIsImVuZHNXaXRoIiwicmF3RmlsZVBhdGgiLCJwYXRoIiwiam9pbiIsImFwcGx5IiwicmF3SnNvbiIsImZzIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ2ZXJib3NlIiwiY29uc29sZSIsImxvZyIsInBhcnNlIiwidmFsaWRhdGVEYXRhIiwiY2xlYW5Kc29uIiwiY2xlYW5GaWxlUGF0aCIsImVuc3VyZURpclN5bmMiLCJkaXJuYW1lIiwid3JpdGVGaWxlU3luYyIsImVyciIsImNsZWFuUmVvcmdhbml6ZWREYXRhIiwiX29wdGlvbnMkY2xvbmUiLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwicGF0Y2hlZERhdGVUb0pzb24iLCJ0cmltIiwicmVwbGFjZSIsImVuYWJsZWREYXRhc2V0cyIsImdldEVuYWJsZWREYXRhc2V0cyIsImNhdGVnb3JpZXMiLCJjaG9zZW5EYXRhc2V0cyIsImZpbHRlckJ5TGVnaXNsYXR1cmUiLCJkYXRhc2V0cyIsImxlZ2lzbGF0dXJlIiwiRW5hYmxlZERhdGFzZXRzIiwiQWN0ZXVyc0V0T3JnYW5lcyIsIl9pdGVyYXRvcjIiLCJhY3RldXJzRXRPcmdhbmVzIiwiX3N0ZXAyIiwiZGF0YXNldCIsImJhc2VuYW1lIiwicHVsbCIsInJlc2V0QW5kUHVsbCIsImFuYWx5emVBbmRSZW1vdmUiLCJjbGVhbkFjdGV1ciIsIkFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0IiwidG9BY3RldXIiLCJhY3RldXJUb0pzb24iLCJjbGVhbk9yZ2FuZSIsInRvT3JnYW5lIiwib3JnYW5lVG9Kc29uIiwiQWdlbmRhcyIsIl9pdGVyYXRvcjMiLCJhZ2VuZGFzIiwiX3N0ZXAzIiwiY2xlYW5SZXVuaW9uIiwiQWdlbmRhc0NvbnZlcnQiLCJ0b1JldW5pb24iLCJyZXVuaW9uVG9Kc29uIiwiQW1lbmRlbWVudHMiLCJfaXRlcmF0b3I0IiwiYW1lbmRlbWVudHMiLCJfc3RlcDQiLCJjbGVhbkFtZW5kZW1lbnQiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJ0b0FtZW5kZW1lbnQiLCJhbWVuZGVtZW50VG9Kc29uIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsIl9pdGVyYXRvcjUiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX3N0ZXA1IiwiY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24iLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsInRvRG9jdW1lbnQiLCJkb2N1bWVudFRvSnNvbiIsImNsZWFuRG9zc2llclBhcmxlbWVudGFpcmUiLCJ0b0Rvc3NpZXJQYXJsZW1lbnRhaXJlIiwiZG9zc2llclBhcmxlbWVudGFpcmVUb0pzb24iLCJTY3J1dGlucyIsIl9pdGVyYXRvcjYiLCJzY3J1dGlucyIsIl9zdGVwNiIsImNsZWFuU2NydXRpbiIsIlNjcnV0aW5zQ29udmVydCIsInRvU2NydXRpbiIsInNjcnV0aW5Ub0pzb24iLCJRdWVzdGlvbnMiLCJfaXRlcmF0b3I3IiwicXVlc3Rpb25zIiwiX3N0ZXA3IiwiY2xlYW5RdWVzdGlvbiIsIlF1ZXN0aW9uc0NvbnZlcnQiLCJ0b1F1ZXN0aW9uIiwicXVlc3Rpb25Ub0pzb24iLCJDb21wdGVzUmVuZHVzU2VhbmNlcyIsIl9pdGVyYXRvcjgiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsIl9zdGVwOCIsImNsZWFuQ29tcHRlUmVuZHUiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsInRvQ29tcHRlUmVuZHUiLCJjb21wdGVSZW5kdVRvSnNvbiIsImV4aXN0aW5nRGF0ZVRvSnNvbiIsInNpbGVudCIsIl9pdGVyYXRvcjkiLCJyZWFkZGlyU3luYyIsIl9zdGVwOSIsInBhdGhuYW1lIiwicmVtb3ZlU3luYyIsInJlcG9zaXRvcnlEaXIiLCJlcnJvciIsInVpZEJyYW5jaFVwZGF0ZSIsIl9pdGVyYXRvcjEwIiwiX3N0ZXAxMCIsInJ1biIsImNoaWxkUHJvY2VzcyIsIm1haW4iLCJwcm9jZXNzIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NsZWFuX3Jlb3JnYW5pemVkX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQge1xuICBjbGVhbkFjdGV1cixcbiAgY2xlYW5BbWVuZGVtZW50LFxuICBjbGVhbkRvY3VtZW50T3JEaXZpc2lvbixcbiAgY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgY2xlYW5PcmdhbmUsXG4gIGNsZWFuUmV1bmlvbixcbiAgY2xlYW5TY3J1dGluLFxuICBjbGVhblF1ZXN0aW9uLFxuICBjbGVhbkNvbXB0ZVJlbmR1LFxufSBmcm9tIFwiLi4vY2xlYW5lcnNcIlxuaW1wb3J0IHtcbiAgZGF0YXNldHMsXG4gIEVuYWJsZWREYXRhc2V0cyxcbiAgZ2V0RW5hYmxlZERhdGFzZXRzLFxuICBmaWx0ZXJCeUxlZ2lzbGF0dXJlLFxufSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgZXhpc3RpbmdEYXRlVG9Kc29uLCBwYXRjaGVkRGF0ZVRvSnNvbiB9IGZyb20gXCIuLi9kYXRlc1wiXG5pbXBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4uL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQge1xuICBBY3RldXIsXG4gIENvbnZlcnQgYXMgQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQsXG4gIE9yZ2FuZSxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIEFnZW5kYXNDb252ZXJ0LCBSZXVuaW9uIH0gZnJvbSBcIi4uL3R5cGVzL2FnZW5kYXNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHtcbiAgQ29udmVydCBhcyBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCxcbiAgRG9jdW1lbnQsXG4gIERvc3NpZXJQYXJsZW1lbnRhaXJlLFxufSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBTY3J1dGluc0NvbnZlcnQsIFNjcnV0aW4gfSBmcm9tIFwiLi4vdHlwZXMvc2NydXRpbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBRdWVzdGlvbnNDb252ZXJ0LCBRdWVzdGlvbiB9IGZyb20gXCIuLi90eXBlcy9xdWVzdGlvbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBDb21wdGVzUmVuZHVzQ29udmVydCwgQ29tcHRlUmVuZHUgfSBmcm9tIFwiLi4vdHlwZXMvZGViYXRzXCJcbmltcG9ydCB7XG4gIGNsb25lT3B0aW9uLFxuICBjb21taXRPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIGNhdGVnb3JpZXNPcHRpb24sXG4gIGRhdGFEaXJEZWZhdWx0T3B0aW9uLFxuICBzaWxlbnRPcHRpb24sXG4gIHZlcmJvc2VPcHRpb24sXG4gIHB1bGxPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICBjbG9uZU9wdGlvbixcbiAgICBjb21taXRPcHRpb24sXG4gICAgcmVtb3RlT3B0aW9uLFxuICAgIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICAgIGNhdGVnb3JpZXNPcHRpb24sXG4gICAgc2lsZW50T3B0aW9uLFxuICAgIHZlcmJvc2VPcHRpb24sXG4gICAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gICAgcHVsbE9wdGlvbixcbiAgICB7XG4gICAgICBhbGlhczogXCJkXCIsXG4gICAgICBoZWxwOiBcInNpbmdsZSBkYXRhc2V0IHRvIHJlb3JnYW5pemVcIixcbiAgICAgIG5hbWU6IFwiZGF0YXNldFwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJkbyBub3QgcmVzZXQgLS1oYXJkIGFmdGVyIGNvbW1pdCB0byBzYXZlIEkvTyBpZiB0aGUgd29ya2luZyB0cmVlIGlzIHRvIGJlIGRpc2NhcmRlZFwiLFxuICAgICAgbmFtZTogXCJuby1yZXNldC1hZnRlci1jb21taXRcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJWXCIsXG4gICAgICBoZWxwOiBcImRvbid0IHZhbGlkYXRlIGRhdGFcIixcbiAgICAgIG5hbWU6IFwibm8tdmFsaWRhdGVcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG4gIHJldHVybiBvcHRpb25zXG59XG5cbmZ1bmN0aW9uIGNsb25lR2l0KFxuICBnaXRHcm91cFVybDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBkYXRhc2V0TmFtZTogc3RyaW5nLFxuICBkYXRhRGlyOiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgZ2l0LmNsb25lKGdpdEdyb3VwVXJsLCBgJHtkYXRhc2V0TmFtZX1fbmV0dG95ZWAsIGRhdGFEaXIpXG59XG5cbmZ1bmN0aW9uIGNvbW1pdEdpdChcbiAgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcsXG4gIG9wdGlvbnM6IGFueSxcbiAgZXhpdENvZGU6IG51bWJlcixcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbik6IG51bWJlciB7XG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIGNvbnN0IGVycm9yQ29kZSA9IGdpdC5jb21taXRBbmRQdXNoKFxuICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgXCJOb3V2ZWxsZSBtb2lzc29uXCIsXG4gICAgICBvcHRpb25zLnJlbW90ZSxcbiAgICApXG4gICAgaWYgKFxuICAgICAgKGV4aXRDb2RlID09PSAxMCAmJiBlcnJvckNvZGUgIT09IDEwKSB8fFxuICAgICAgKGV4aXRDb2RlID09PSAwICYmIGVycm9yQ29kZSAhPT0gMCAmJiBlcnJvckNvZGUgIT09IDEwKVxuICAgICkge1xuICAgICAgZXhpdENvZGUgPSBlcnJvckNvZGVcbiAgICB9XG4gIH1cbiAgaWYgKFxuICAgIGNvbW1pdEFuZFB1c2hVaWQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBzdWJkaXJlY3RvcmllcykgJiZcbiAgICAoZXhpdENvZGUgPT09IDAgfHwgZXhpdENvZGUgPT09IDEwKVxuICApIHtcbiAgICBleGl0Q29kZSA9IDFcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZnVuY3Rpb24gY2xlYW5BbmRWYWxpZGF0ZURhdGE8VD4oXG4gIGRhdGE6IGFueSxcbiAgY2xlYW5lcjogKGRhdGE6IFQpID0+IHZvaWQsXG4gIGZyb21Kc29uOiAoanNvbjogc3RyaW5nKSA9PiBULFxuICB0b0pzb246IChkYXRhOiBUKSA9PiBzdHJpbmcsXG4gIG5vVmFsaWRhdGU6IEJvb2xlYW4sXG4pOiBzdHJpbmcge1xuICBjbGVhbmVyKGRhdGEpXG4gIGNvbnN0IGpzb25EYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMilcbiAgaWYgKCFub1ZhbGlkYXRlKSB7XG4gICAgcmV0dXJuIGpzb25EYXRhXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmFsaWRhdGVkRGF0YTogVCA9IGZyb21Kc29uKGpzb25EYXRhKVxuICAgIHJldHVybiB0b0pzb24odmFsaWRhdGVkRGF0YSlcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm9jZXNzRmlsZXM8VD4oXG4gIGRhdGFzZXRSYXdEaXI6IHN0cmluZyxcbiAgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcsXG4gIHdhbGtEaXJQYXJhbXM6IGFueVtdLFxuICBjbGVhbmVyOiBhbnksXG4gIGRhdGFDb252ZXJ0ZXI6IHsgZnJvbUpzb246IGFueTsgdG9Kc29uOiBhbnkgfSxcbiAgb3B0aW9uczogYW55LFxuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgZmlsZVBhdGhBcnJheSBvZiB3YWxrRGlyKGRhdGFzZXRSYXdEaXIsIHdhbGtEaXJQYXJhbXMpKSB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBmaWxlUGF0aEFycmF5W2ZpbGVQYXRoQXJyYXkubGVuZ3RoIC0gMV1cbiAgICBpZiAoIWZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIGNvbnRpbnVlXG4gICAgY29uc3QgcmF3RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldFJhd0RpciwgLi4uZmlsZVBhdGhBcnJheSlcbiAgICBjb25zdCByYXdKc29uID0gZnMucmVhZEZpbGVTeW5jKHJhd0ZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGBDbGVhbmluZyBmaWxlOiAke3Jhd0ZpbGVQYXRofS4uLmApXG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmF3SnNvbilcbiAgICBjb25zdCB2YWxpZGF0ZURhdGEgPSAhb3B0aW9uc1tcIm5vLXZhbGlkYXRlXCJdXG4gICAgY29uc3QgY2xlYW5Kc29uID0gY2xlYW5BbmRWYWxpZGF0ZURhdGE8VD4oXG4gICAgICBkYXRhLFxuICAgICAgY2xlYW5lcixcbiAgICAgIGRhdGFDb252ZXJ0ZXIuZnJvbUpzb24sXG4gICAgICBkYXRhQ29udmVydGVyLnRvSnNvbixcbiAgICAgIHZhbGlkYXRlRGF0YSxcbiAgICApXG4gICAgY29uc3QgY2xlYW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0Q2xlYW5EaXIsIC4uLmZpbGVQYXRoQXJyYXkpXG4gICAgZnMuZW5zdXJlRGlyU3luYyhwYXRoLmRpcm5hbWUoY2xlYW5GaWxlUGF0aCkpXG4gICAgZnMud3JpdGVGaWxlU3luYyhjbGVhbkZpbGVQYXRoLCBjbGVhbkpzb24sIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gY2xlYW5SZW9yZ2FuaXplZERhdGEob3B0aW9uczogYW55KTogbnVtYmVyIHtcbiAgY29uc3QgZGF0YURpcjogc3RyaW5nID0gb3B0aW9ucy5kYXRhRGlyXG4gIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gIGxldCBleGl0Q29kZSA9IG9wdGlvbnMuY29tbWl0ID8gMTAgOiAwXG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZT8udHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgbGV0IGNob3NlbkRhdGFzZXRzID0gZmlsdGVyQnlMZWdpc2xhdHVyZShkYXRhc2V0cywgb3B0aW9ucy5sZWdpc2xhdHVyZSlcblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcbiAgICAgIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICAgICAgZ2l0LnJlc2V0QW5kUHVsbChkYXRhc2V0Q2xlYW5EaXIpXG4gICAgICB9XG5cbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBwcm9jZXNzRmlsZXM8QWN0ZXVyPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXCJhY3RldXJzXCJdLFxuICAgICAgICBjbGVhbkFjdGV1cixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cixcbiAgICAgICAgICB0b0pzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LmFjdGV1clRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcbiAgICAgIHByb2Nlc3NGaWxlczxPcmdhbmU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcIm9yZ2FuZXNcIl0sXG4gICAgICAgIGNsZWFuT3JnYW5lLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvT3JnYW5lLFxuICAgICAgICAgIHRvSnNvbjogQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQub3JnYW5lVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXG4gICAgICAgIFwiYWN0ZXVyc1wiLFxuICAgICAgICBcIm9yZ2FuZXNcIixcbiAgICAgIF0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8UmV1bmlvbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuUmV1bmlvbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBZ2VuZGFzQ29udmVydC50b1JldW5pb24sXG4gICAgICAgICAgdG9Kc29uOiBBZ2VuZGFzQ29udmVydC5yZXVuaW9uVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8QW1lbmRlbWVudD4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuQW1lbmRlbWVudCxcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50LFxuICAgICAgICAgIHRvSnNvbjogQW1lbmRlbWVudHNDb252ZXJ0LmFtZW5kZW1lbnRUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcIi5cIl0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8RG9jdW1lbnQ+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcImRvY3VtZW50c1wiXSxcbiAgICAgICAgY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb2N1bWVudCxcbiAgICAgICAgICB0b0pzb246IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LmRvY3VtZW50VG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgcHJvY2Vzc0ZpbGVzPERvc3NpZXJQYXJsZW1lbnRhaXJlPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXCJkb3NzaWVyc1wiXSxcbiAgICAgICAgY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgICAgICAgIHRvSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQuZG9zc2llclBhcmxlbWVudGFpcmVUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcbiAgICAgICAgXCJkb2N1bWVudHNcIixcbiAgICAgICAgXCJkb3NzaWVyc1wiLFxuICAgICAgXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIuanNvblwiKVxuICAgICAgaWYgKG9wdGlvbnMuZGF0YXNldCAmJiBkYXRhc2V0TmFtZSAhPT0gb3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcblxuICAgICAgcHJvY2Vzc0ZpbGVzPFNjcnV0aW4+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtdLFxuICAgICAgICBjbGVhblNjcnV0aW4sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbixcbiAgICAgICAgICB0b0pzb246IFNjcnV0aW5zQ29udmVydC5zY3J1dGluVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIHByb2Nlc3NGaWxlczxRdWVzdGlvbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuUXVlc3Rpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uLFxuICAgICAgICAgIHRvSnNvbjogUXVlc3Rpb25zQ29udmVydC5xdWVzdGlvblRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIueG1sXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8Q29tcHRlUmVuZHU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtdLFxuICAgICAgICBjbGVhbkNvbXB0ZVJlbmR1LFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IENvbXB0ZXNSZW5kdXNDb252ZXJ0LnRvQ29tcHRlUmVuZHUsXG4gICAgICAgICAgdG9Kc29uOiBDb21wdGVzUmVuZHVzQ29udmVydC5jb21wdGVSZW5kdVRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0b3JlIHN0YW5kYXJkIGNvbnZlcnNpb24gb2YgZGF0ZXMgdG8gSlNPTi5cbiAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZXhpc3RpbmdEYXRlVG9Kc29uXG5cbiAgcmV0dXJuIGV4aXRDb2RlXG59XG5cbmZ1bmN0aW9uIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWU6IHN0cmluZywgb3B0aW9uczogYW55KTogYW55IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coYENsZWFuaW5nIGRpcmVjdG9yeTogJHtkYXRhc2V0Q2xlYW5EaXJ94oCmYClcbiAgfVxuICBmcy5lbnN1cmVEaXJTeW5jKGRhdGFzZXRDbGVhbkRpcilcbiAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyhkYXRhc2V0Q2xlYW5EaXIpKSB7XG4gICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgcGF0aG5hbWUgPSBwYXRoLmpvaW4oZGF0YXNldENsZWFuRGlyLCBmaWxlbmFtZSlcbiAgICBmcy5yZW1vdmVTeW5jKHBhdGhuYW1lKVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2hVaWQoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuICBzdWJkaXJlY3RvcmllczogYW55LFxuKTogYm9vbGVhbiB7XG4gIGxldCBlcnJvciA9IGZhbHNlXG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIGdpdC51aWRCcmFuY2hVcGRhdGUoXG4gICAgICByZXBvc2l0b3J5RGlyLFxuICAgICAgc3ViZGlyZWN0b3JpZXMsXG4gICAgICBvcHRpb25zW1wibm8tcmVzZXQtYWZ0ZXItY29tbWl0XCJdLFxuICAgIClcbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiBvcHRpb25zLnJlbW90ZSB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZ2l0LnJ1bihyZXBvc2l0b3J5RGlyLCBgcHVzaCAtLXF1aWV0ICR7cmVtb3RlfSB1aWQ6dWlkYClcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogbnVtYmVyIHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICByZXR1cm4gY2xlYW5SZW9yZ2FuaXplZERhdGEob3B0aW9ucylcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwiY2xlYW5fcmVvcmdhbml6ZWRfZGF0YS50c1wiKSlcbiAgcHJvY2Vzcy5leGl0KG1haW4ocHJvY2Vzcy5hcmd2KSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQVdBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQU1BLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLEdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFTLG1CQUFBLEdBQUFULE9BQUE7QUFLQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxxQkFBQSxHQUFBWixPQUFBO0FBS0EsSUFBQWEsU0FBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsVUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsT0FBQSxHQUFB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
|