gitlab-ci-local 4.45.0 → 4.45.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/src/argv.js +1 -1
- package/src/commander.js +1 -1
- package/src/data-expander.js +10 -4
- package/src/executor.js +1 -1
- package/src/git-data.js +6 -5
- package/src/handler.js +1 -1
- package/src/index.js +5 -2
- package/src/job.js +65 -48
- package/src/mutex.js +1 -1
- package/src/parallel.js +1 -1
- package/src/parser-includes.js +1 -1
- package/src/parser.js +1 -1
- package/src/predefined-variables.js +7 -6
- package/src/producers.js +1 -1
- package/src/state.js +1 -1
- package/src/utils.js +4 -1
- package/src/validator.js +1 -1
- package/src/variables-from-files.js +4 -4
- package/src/write-streams.js +1 -1
package/src/mutex.js
CHANGED
|
@@ -21,4 +21,4 @@ class Mutex {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
exports.Mutex = Mutex;
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0ZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtdXRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLEtBQUs7SUFFTixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFFekIsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUUsR0FBVztRQUN6QyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDakMsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtnQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsQ0FBQztZQUNMLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFFLEdBQVcsRUFBRSxFQUF1QjtRQUN4RCxNQUFNLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUNYLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7O0FBcEJMLHNCQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNdXRleCB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBsb2NrcyA9IG5ldyBTZXQoKTtcblxuICAgIHByaXZhdGUgc3RhdGljIGFzeW5jIHdhaXRGb3JMb2NrIChrZXk6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsS2V5ID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghTXV0ZXgubG9ja3MuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbEtleSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMTApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgZXhjbHVzaXZlIChrZXk6IHN0cmluZywgY2I6ICgpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgICAgICAgYXdhaXQgTXV0ZXgud2FpdEZvckxvY2soa2V5KTtcbiAgICAgICAgTXV0ZXgubG9ja3MuYWRkKGtleSk7XG4gICAgICAgIGF3YWl0IGNiKCk7XG4gICAgICAgIE11dGV4LmxvY2tzLmRlbGV0ZShrZXkpO1xuICAgIH1cblxufVxuIl19
|
package/src/parallel.js
CHANGED
|
@@ -44,4 +44,4 @@ function matrixVariablesList(jobData, jobName) {
|
|
|
44
44
|
return matrixVariables;
|
|
45
45
|
}
|
|
46
46
|
exports.matrixVariablesList = matrixVariablesList;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXJhbGxlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsOERBQXFDO0FBRXJDLFNBQWdCLG1CQUFtQixDQUFFLE9BQVksRUFBRSxPQUFlO0lBQzlELElBQUksT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxPQUFPLGtDQUFrQyxDQUFDLENBQUM7SUFFN0YsTUFBTSxlQUFlLEdBQThCLEVBQUUsQ0FBQztJQUV0RCx5Q0FBeUM7SUFDekMsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUVELDJEQUEyRDtJQUMzRCxNQUFNLElBQUksR0FBRyxJQUFBLHFCQUFVLEVBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFVixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4RCxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBRVgsS0FBSyxNQUFNLEtBQUssSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDN0IsS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDckIsTUFBTSxjQUFjLEdBQTRCLEVBQUMsR0FBRyxLQUFLLEVBQUMsQ0FBQztvQkFDM0QsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNMLENBQUM7WUFDRCxDQUFDLEVBQUUsQ0FBQztRQUNSLENBQUM7UUFDRCxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDO0FBQzNCLENBQUM7QUEzQ0Qsa0RBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQgZGVlcEV4dGVuZCBmcm9tIFwiZGVlcC1leHRlbmRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1hdHJpeFZhcmlhYmxlc0xpc3QgKGpvYkRhdGE6IGFueSwgam9iTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKGpvYkRhdGE/LnBhcmFsbGVsPy5tYXRyaXggPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoam9iRGF0YS5wYXJhbGxlbC5tYXRyaXgpLCBgJHtqb2JOYW1lfSBwYXJhbGxlbC5tYXRyaXggaXMgbm90IGFuIGFycmF5YCk7XG5cbiAgICBjb25zdCBtYXRyaXhWYXJpYWJsZXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9W10gPSBbXTtcblxuICAgIC8vIEV4cGFuZCBzdHJpbmcgdmFsdWUgdG8gYXJyYXkgb2YgdmFsdWVzXG4gICAgZm9yIChjb25zdCBtIG9mIGpvYkRhdGEucGFyYWxsZWwubWF0cml4KSB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG0pKSB7XG4gICAgICAgICAgICBtW2tleV0gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIHZhcmlhYmxlcyBpbiB3aGlsZSBsb29wIGJ5IGV4cGFuZGluZyB0aGUgbWF0cml4XG4gICAgY29uc3QgZGVlcCA9IGRlZXBFeHRlbmQoe30sIGpvYkRhdGEpO1xuICAgIGZvciAoY29uc3QgbSBvZiBkZWVwLnBhcmFsbGVsLm1hdHJpeCkge1xuICAgICAgICBsZXQgaSA9IDA7XG5cbiAgICAgICAgbGV0IGlubmVyID0gW107XG4gICAgICAgIHdoaWxlIChPYmplY3Qua2V5cyhtKS5sZW5ndGggPiAwICYmIGkgPCAxMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhtKTtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbMF07XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBtW2tleV07XG4gICAgICAgICAgICBkZWxldGUgbVtrZXldO1xuXG4gICAgICAgICAgICBjb25zdCBpbm5lckNsb25lID0gaW5uZXIubGVuZ3RoID4gMCA/IFsuLi5pbm5lcl0gOiBbe31dO1xuICAgICAgICAgICAgaW5uZXIgPSBbXTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBjbG9uZSBvZiBpbm5lckNsb25lKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIHZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXRyaXhWYXJpYWJsZToge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7Li4uY2xvbmV9O1xuICAgICAgICAgICAgICAgICAgICBtYXRyaXhWYXJpYWJsZVtrZXldID0gdjtcbiAgICAgICAgICAgICAgICAgICAgaW5uZXIucHVzaChtYXRyaXhWYXJpYWJsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIG1hdHJpeFZhcmlhYmxlcy5wdXNoKC4uLmlubmVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0cml4VmFyaWFibGVzO1xufVxuIl19
|
package/src/parser-includes.js
CHANGED
|
@@ -204,4 +204,4 @@ class ParserIncludes {
|
|
|
204
204
|
}
|
|
205
205
|
}
|
|
206
206
|
exports.ParserIncludes = ParserIncludes;
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLWluY2x1ZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFyc2VyLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQThCO0FBQzlCLHdEQUEwQjtBQUcxQixpREFBOEM7QUFDOUMsa0RBQTBCO0FBQzFCLHFDQUFnQztBQUNoQyxrREFBMEI7QUFDMUIsb0RBQTRCO0FBWTVCLE1BQWEsY0FBYztJQUV2QixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBRSxVQUFlLEVBQUUsS0FBYSxFQUFFLElBQStCO1FBQzlFLElBQUksWUFBWSxHQUFVLEVBQUUsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsTUFBTSxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFcEUsSUFBQSxnQkFBTSxFQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsSUFBQSxlQUFLLEVBQUEsNkNBQTZDLENBQUMsQ0FBQztRQUN4RSxLQUFLLEVBQUUsQ0FBQztRQUVSLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxRSx5RUFBeUU7UUFDekUsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUU7WUFDekIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2hCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckMsTUFBTSxXQUFXLEdBQUcsYUFBSyxDQUFDLGNBQWMsQ0FBQyxFQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQztnQkFDakcsSUFBSSxX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QUksR0FBRztnQ0FDdEIsR0FBRyxJQUFJLE1BQU0sSUFBSSxHQUFHOytEQUNXLGNBQWM7O2dDQUU3QyxHQUFHLElBQUksUUFBUTtnQ0FDZixHQUFHLElBQUksTUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjO2dDQUN0QyxHQUFHLElBQUksTUFBTSxJQUFJLGNBQWM7cUJBQzFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDZjtpQkFBTTtnQkFDSCxNQUFNLGtCQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sYUFBSyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLE9BQU8sUUFBUSxHQUFHLElBQUksY0FBYyxtQkFBbUIsTUFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDM0o7U0FDSjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1IsTUFBTSxJQUFJLHVCQUFjLENBQUMsRUFBQyxPQUFPLEVBQUUsbURBQW1ELE9BQU8sVUFBVSxHQUFHLFdBQVcsY0FBYyxPQUFPLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQztTQUNuSjtJQUNMLENBQUM7Q0FDSjtBQTVLRCx3Q0E0S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1V0aWxzfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHtXcml0ZVN0cmVhbXN9IGZyb20gXCIuL3dyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7R2l0RGF0YX0gZnJvbSBcIi4vZ2l0LWRhdGFcIjtcbmltcG9ydCBhc3NlcnQsIHtBc3NlcnRpb25FcnJvcn0gZnJvbSBcImFzc2VydFwiO1xuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHtQYXJzZXJ9IGZyb20gXCIuL3BhcnNlclwiO1xuaW1wb3J0IGF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0IGdsb2JieSBmcm9tIFwiZ2xvYmJ5XCI7XG5cbnR5cGUgUGFyc2VySW5jbHVkZXNJbml0T3B0aW9ucyA9IHtcbiAgICBjd2Q6IHN0cmluZztcbiAgICBzdGF0ZURpcjogc3RyaW5nO1xuICAgIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zO1xuICAgIGdpdERhdGE6IEdpdERhdGE7XG4gICAgZmV0Y2hJbmNsdWRlczogYm9vbGVhbjtcbiAgICBleGNsdWRlZEdsb2JzOiBzdHJpbmdbXTtcbiAgICB2YXJpYWJsZXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xufTtcblxuZXhwb3J0IGNsYXNzIFBhcnNlckluY2x1ZGVzIHtcblxuICAgIHN0YXRpYyBhc3luYyBpbml0IChnaXRsYWJEYXRhOiBhbnksIGRlcHRoOiBudW1iZXIsIG9wdHM6IFBhcnNlckluY2x1ZGVzSW5pdE9wdGlvbnMpOiBQcm9taXNlPGFueVtdPiB7XG4gICAgICAgIGxldCBpbmNsdWRlRGF0YXM6IGFueVtdID0gW107XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgICAgIGNvbnN0IHtzdGF0ZURpciwgY3dkLCBmZXRjaEluY2x1ZGVzLCBnaXREYXRhLCBleGNsdWRlZEdsb2JzfSA9IG9wdHM7XG5cbiAgICAgICAgYXNzZXJ0KGRlcHRoIDwgMTAwLCBjaGFsa2BjaXJjdWxhciBkZXBlbmRlbmN5IGRldGVjdGVkIGluIFxcYGluY2x1ZGVcXGBgKTtcbiAgICAgICAgZGVwdGgrKztcblxuICAgICAgICBjb25zdCBpbmNsdWRlID0gdGhpcy5leHBhbmRJbmNsdWRlKGdpdGxhYkRhdGFbXCJpbmNsdWRlXCJdLCBvcHRzLnZhcmlhYmxlcyk7XG5cbiAgICAgICAgLy8gRmluZCBmaWxlcyB0byBmZXRjaCBmcm9tIHJlbW90ZSBhbmQgcGxhY2UgaW4gLmdpdGxhYi1jaS1sb2NhbC9pbmNsdWRlc1xuICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGluY2x1ZGUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZVtcInJ1bGVzXCJdKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5jbHVkZV9ydWxlcyA9IHZhbHVlW1wicnVsZXNcIl07XG4gICAgICAgICAgICAgICAgY29uc3QgcnVsZXNSZXN1bHQgPSBVdGlscy5nZXRSdWxlc1Jlc3VsdCh7Y3dkLCBydWxlczogaW5jbHVkZV9ydWxlcywgdmFyaWFibGVzOiBvcHRzLnZhcmlhYmxlc30pO1xuICAgICAgICAgICAgICAgIGlmIChydWxlc1Jlc3VsdC53aGVuID09PSBcIm5ldmVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbHVlW1wibG9jYWxcIl0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGdsb2JieSh2YWx1ZVtcImxvY2FsXCJdLnJlcGxhY2UoL15cXC8vLCBcIlwiKSwge2RvdDogdHJ1ZSwgY3dkfSk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcih7bWVzc2FnZTogYExvY2FsIGluY2x1ZGUgZmlsZSBjYW5ub3QgYmUgZm91bmQgJHt2YWx1ZVtcImxvY2FsXCJdfWB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW1wiZmlsZVwiXSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZVZhbHVlIG9mIEFycmF5LmlzQXJyYXkodmFsdWVbXCJmaWxlXCJdKSA/IHZhbHVlW1wiZmlsZVwiXSA6IFt2YWx1ZVtcImZpbGVcIl1dKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5kb3dubG9hZEluY2x1ZGVQcm9qZWN0RmlsZShjd2QsIHN0YXRlRGlyLCB2YWx1ZVtcInByb2plY3RcIl0sIHZhbHVlW1wicmVmXCJdIHx8IFwiSEVBRFwiLCBmaWxlVmFsdWUsIGdpdERhdGEsIGZldGNoSW5jbHVkZXMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW1widGVtcGxhdGVcIl0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7cHJvamVjdCwgcmVmLCBmaWxlLCBkb21haW59ID0gdGhpcy5jb3ZlcnRUZW1wbGF0ZVRvUHJvamVjdEZpbGUodmFsdWVbXCJ0ZW1wbGF0ZVwiXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXJsID0gYGh0dHBzOi8vJHtkb21haW59LyR7cHJvamVjdH0vLS9yYXcvJHtyZWZ9LyR7ZmlsZX1gO1xuICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5kb3dubG9hZEluY2x1ZGVSZW1vdGUoY3dkLCBzdGF0ZURpciwgdXJsLCBmZXRjaEluY2x1ZGVzKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW1wicmVtb3RlXCJdKSB7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLmRvd25sb2FkSW5jbHVkZVJlbW90ZShjd2QsIHN0YXRlRGlyLCB2YWx1ZVtcInJlbW90ZVwiXSwgZmV0Y2hJbmNsdWRlcykpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG5cbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBpbmNsdWRlKSB7XG4gICAgICAgICAgICBpZiAodmFsdWVbXCJydWxlc1wiXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVfcnVsZXMgPSB2YWx1ZVtcInJ1bGVzXCJdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJ1bGVzUmVzdWx0ID0gVXRpbHMuZ2V0UnVsZXNSZXN1bHQoe2N3ZCwgcnVsZXM6IGluY2x1ZGVfcnVsZXMsIHZhcmlhYmxlczogb3B0cy52YXJpYWJsZXN9KTtcbiAgICAgICAgICAgICAgICBpZiAocnVsZXNSZXN1bHQud2hlbiA9PT0gXCJuZXZlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZVtcImxvY2FsXCJdKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBhd2FpdCBnbG9iYnkoW3ZhbHVlW1wibG9jYWxcIl0ucmVwbGFjZSgvXlxcLy8sIFwiXCIpLCAuLi5leGNsdWRlZEdsb2JzXSwge2RvdDogdHJ1ZSwgY3dkfSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBsb2NhbEZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IFBhcnNlci5sb2FkWWFtbChgJHtjd2R9LyR7bG9jYWxGaWxlfWApO1xuICAgICAgICAgICAgICAgICAgICBleGNsdWRlZEdsb2JzLnB1c2goYCEke2xvY2FsRmlsZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgaW5jbHVkZURhdGFzID0gaW5jbHVkZURhdGFzLmNvbmNhdChhd2FpdCB0aGlzLmluaXQoY29udGVudCwgZGVwdGgsIG9wdHMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW1wicHJvamVjdFwiXSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZVZhbHVlIG9mIEFycmF5LmlzQXJyYXkodmFsdWVbXCJmaWxlXCJdKSA/IHZhbHVlW1wiZmlsZVwiXSA6IFt2YWx1ZVtcImZpbGVcIl1dKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVEb2MgPSBhd2FpdCBQYXJzZXIubG9hZFlhbWwoYCR7Y3dkfS8ke3N0YXRlRGlyfS9pbmNsdWRlcy8ke2dpdERhdGEucmVtb3RlLmhvc3R9LyR7dmFsdWVbXCJwcm9qZWN0XCJdfS8ke3ZhbHVlW1wicmVmXCJdIHx8IFwiSEVBRFwifS8ke2ZpbGVWYWx1ZX1gKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBFeHBhbmQgbG9jYWwgaW5jbHVkZXMgaW5zaWRlIGEgXCJwcm9qZWN0XCItbGlrZSBpbmNsdWRlXG4gICAgICAgICAgICAgICAgICAgIGZpbGVEb2NbXCJpbmNsdWRlXCJdID0gdGhpcy5leHBhbmRJbmNsdWRlKGZpbGVEb2NbXCJpbmNsdWRlXCJdLCBvcHRzLnZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVEb2NbXCJpbmNsdWRlXCJdLmZvckVhY2goKGlubmVyOiBhbnksIGk6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbm5lcltcImxvY2FsXCJdKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlRG9jW1wiaW5jbHVkZVwiXVtpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0OiB2YWx1ZVtcInByb2plY3RcIl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogaW5uZXJbXCJsb2NhbFwiXS5yZXBsYWNlKC9eXFwvLywgXCJcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiB2YWx1ZVtcInJlZlwiXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGluY2x1ZGVEYXRhcyA9IGluY2x1ZGVEYXRhcy5jb25jYXQoYXdhaXQgdGhpcy5pbml0KGZpbGVEb2MsIGRlcHRoLCBvcHRzKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtcInRlbXBsYXRlXCJdKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge3Byb2plY3QsIHJlZiwgZmlsZSwgZG9tYWlufSA9IHRoaXMuY292ZXJ0VGVtcGxhdGVUb1Byb2plY3RGaWxlKHZhbHVlW1widGVtcGxhdGVcIl0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZzVXJsID0gVXRpbHMuZnNVcmwoYGh0dHBzOi8vJHtkb21haW59LyR7cHJvamVjdH0vLS9yYXcvJHtyZWZ9LyR7ZmlsZX1gKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlRG9jID0gYXdhaXQgUGFyc2VyLmxvYWRZYW1sKGAke2N3ZH0vJHtzdGF0ZURpcn0vaW5jbHVkZXMvJHtmc1VybH1gKTtcbiAgICAgICAgICAgICAgICBpbmNsdWRlRGF0YXMgPSBpbmNsdWRlRGF0YXMuY29uY2F0KGF3YWl0IHRoaXMuaW5pdChmaWxlRG9jLCBkZXB0aCwgb3B0cykpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtcInJlbW90ZVwiXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZzVXJsID0gVXRpbHMuZnNVcmwodmFsdWVbXCJyZW1vdGVcIl0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVEb2MgPSBhd2FpdCBQYXJzZXIubG9hZFlhbWwoYCR7Y3dkfS8ke3N0YXRlRGlyfS9pbmNsdWRlcy8ke2ZzVXJsfWApO1xuICAgICAgICAgICAgICAgIGluY2x1ZGVEYXRhcyA9IGluY2x1ZGVEYXRhcy5jb25jYXQoYXdhaXQgdGhpcy5pbml0KGZpbGVEb2MsIGRlcHRoLCBvcHRzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcih7bWVzc2FnZTogYERpZG4ndCB1bmRlcnN0YW5kIGluY2x1ZGUgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5jbHVkZURhdGFzLnB1c2goZ2l0bGFiRGF0YSk7XG4gICAgICAgIHJldHVybiBpbmNsdWRlRGF0YXM7XG4gICAgfVxuXG4gICAgc3RhdGljIGV4cGFuZEluY2x1ZGUgKGk6IGFueSwgdmFyaWFibGVzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSk6IGFueVtdIHtcbiAgICAgICAgbGV0IGluY2x1ZGUgPSBpIHx8IFtdO1xuICAgICAgICBpZiAoaW5jbHVkZSAmJiBpbmNsdWRlLmxlbmd0aCA9PSBudWxsKSB7XG4gICAgICAgICAgICBpbmNsdWRlID0gWyBpIF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBpbmNsdWRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpbmNsdWRlID0gW2luY2x1ZGVdO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBbaW5kZXgsIGVudHJ5XSBvZiBPYmplY3QuZW50cmllcyhpbmNsdWRlKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gXCJzdHJpbmdcIiAmJiAoZW50cnkuc3RhcnRzV2l0aChcImh0dHBzOlwiKSB8fCBlbnRyeS5zdGFydHNXaXRoKFwiaHR0cDpcIikpKSB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZVtpbmRleF0gPSB7XCJyZW1vdGVcIjogZW50cnl9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZW50cnkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBpbmNsdWRlW2luZGV4XSA9IHtcImxvY2FsXCI6IGVudHJ5fTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZVtpbmRleF0gPSBlbnRyeTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBpbmNsdWRlKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBlbnRyeVtrZXldID0gVXRpbHMuZXhwYW5kVGV4dCh2YWx1ZSwgdmFyaWFibGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbmNsdWRlO1xuICAgIH1cblxuICAgIHN0YXRpYyBjb3ZlcnRUZW1wbGF0ZVRvUHJvamVjdEZpbGUgKHRlbXBsYXRlOiBzdHJpbmcpOiB7cHJvamVjdDogc3RyaW5nOyByZWY6IHN0cmluZzsgZmlsZTogc3RyaW5nOyBkb21haW46IHN0cmluZ30ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZG9tYWluOiBcImdpdGxhYi5jb21cIixcbiAgICAgICAgICAgIHByb2plY3Q6IFwiZ2l0bGFiLW9yZy9naXRsYWJcIixcbiAgICAgICAgICAgIHJlZjogXCJIRUFEXCIsXG4gICAgICAgICAgICBmaWxlOiBgbGliL2dpdGxhYi9jaS90ZW1wbGF0ZXMvJHt0ZW1wbGF0ZX1gLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBkb3dubG9hZEluY2x1ZGVSZW1vdGUgKGN3ZDogc3RyaW5nLCBzdGF0ZURpcjogc3RyaW5nLCB1cmw6IHN0cmluZywgZmV0Y2hJbmNsdWRlczogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBmc1VybCA9IFV0aWxzLmZzVXJsKHVybCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBgJHtjd2R9LyR7c3RhdGVEaXJ9L2luY2x1ZGVzLyR7ZnNVcmx9YDtcbiAgICAgICAgICAgIGlmIChhd2FpdCBmcy5wYXRoRXhpc3RzKHRhcmdldCkgJiYgIWZldGNoSW5jbHVkZXMpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGF4aW9zLmdldCh1cmwpO1xuICAgICAgICAgICAgYXdhaXQgZnMub3V0cHV0RmlsZSh0YXJnZXQsIHJlcy5kYXRhKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKHttZXNzYWdlOiBgUmVtb3RlIGluY2x1ZGUgY291bGQgbm90IGJlIGZldGNoZWQgJHt1cmx9XFxuJHtlfWB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBkb3dubG9hZEluY2x1ZGVQcm9qZWN0RmlsZSAoY3dkOiBzdHJpbmcsIHN0YXRlRGlyOiBzdHJpbmcsIHByb2plY3Q6IHN0cmluZywgcmVmOiBzdHJpbmcsIGZpbGU6IHN0cmluZywgZ2l0RGF0YTogR2l0RGF0YSwgZmV0Y2hJbmNsdWRlczogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCByZW1vdGUgPSBnaXREYXRhLnJlbW90ZTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZEZpbGUgPSBmaWxlLnJlcGxhY2UoL15cXC8rLywgXCJcIik7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBgJHtzdGF0ZURpcn0vaW5jbHVkZXMvJHtyZW1vdGUuaG9zdH0vJHtwcm9qZWN0fS8ke3JlZn1gO1xuICAgICAgICAgICAgaWYgKGF3YWl0IGZzLnBhdGhFeGlzdHMoYCR7Y3dkfS8ke3RhcmdldH0vJHtub3JtYWxpemVkRmlsZX1gKSAmJiAhZmV0Y2hJbmNsdWRlcykgcmV0dXJuO1xuXG4gICAgICAgICAgICBpZiAocmVtb3RlLnNjaGVtYS5zdGFydHNXaXRoKFwiaHR0cFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4dCA9IFwidG1wLVwiICsgTWF0aC5yYW5kb20oKTtcbiAgICAgICAgICAgICAgICBhd2FpdCBmcy5lbnN1cmVGaWxlKGAke2N3ZH0vJHt0YXJnZXR9LyR7bm9ybWFsaXplZEZpbGV9YCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgVXRpbHMuYmFzaChgXG4gICAgICAgICAgICAgICAgICAgIGNkICR7Y3dkfS8ke3N0YXRlRGlyfSBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ2l0IGNsb25lIC1uIC0tZGVwdGg9MSAtLWZpbHRlcj10cmVlOjAgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtyZW1vdGUuc2NoZW1hfTovLyR7cmVtb3RlLmhvc3R9LyR7cHJvamVjdH0uZ2l0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Y3dkfS8ke3RhcmdldH0uJHtleHR9IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBjZCAke2N3ZH0vJHt0YXJnZXR9LiR7ZXh0fSBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ2l0IHNwYXJzZS1jaGVja291dCBzZXQgLS1uby1jb25lICR7bm9ybWFsaXplZEZpbGV9IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBnaXQgY2hlY2tvdXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGNkICR7Y3dkfS8ke3N0YXRlRGlyfSBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgY3AgJHtjd2R9LyR7dGFyZ2V0fS4ke2V4dH0vJHtub3JtYWxpemVkRmlsZX1cXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtjd2R9LyR7dGFyZ2V0fS8ke25vcm1hbGl6ZWRGaWxlfVxuICAgICAgICAgICAgICAgICAgICBgLCBjd2QpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBmcy5ta2RpcnAoYCR7Y3dkfS8ke3RhcmdldH1gKTtcbiAgICAgICAgICAgICAgICBhd2FpdCBVdGlscy5iYXNoKGBnaXQgYXJjaGl2ZSAtLXJlbW90ZT1zc2g6Ly9naXRAJHtyZW1vdGUuaG9zdH06JHtyZW1vdGUucG9ydH0vJHtwcm9qZWN0fS5naXQgJHtyZWZ9ICR7bm9ybWFsaXplZEZpbGV9IHwgdGFyIC1mIC0gLXhDICR7dGFyZ2V0fS9gLCBjd2QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9uRXJyb3Ioe21lc3NhZ2U6IGBQcm9qZWN0IGluY2x1ZGUgY291bGQgbm90IGJlIGZldGNoZWQgeyBwcm9qZWN0OiAke3Byb2plY3R9LCByZWY6ICR7cmVmfSwgZmlsZTogJHtub3JtYWxpemVkRmlsZX0gfVxcbiR7ZX1gfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLWluY2x1ZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFyc2VyLWluY2x1ZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQThCO0FBQzlCLHdEQUEwQjtBQUcxQixpREFBOEM7QUFDOUMsa0RBQTBCO0FBQzFCLHFDQUFnQztBQUNoQyxrREFBMEI7QUFDMUIsb0RBQTRCO0FBWTVCLE1BQWEsY0FBYztJQUV2QixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBRSxVQUFlLEVBQUUsS0FBYSxFQUFFLElBQStCO1FBQzlFLElBQUksWUFBWSxHQUFVLEVBQUUsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsTUFBTSxFQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFcEUsSUFBQSxnQkFBTSxFQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsSUFBQSxlQUFLLEVBQUEsNkNBQTZDLENBQUMsQ0FBQztRQUN4RSxLQUFLLEVBQUUsQ0FBQztRQUVSLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUxRSx5RUFBeUU7UUFDekUsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMxQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNqQixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JDLE1BQU0sV0FBVyxHQUFHLGFBQUssQ0FBQyxjQUFjLENBQUMsRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7Z0JB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c0NvbnRlbnQiOlsiaW1wb3J0IHtVdGlsc30gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7V3JpdGVTdHJlYW1zfSBmcm9tIFwiLi93cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQge0dpdERhdGF9IGZyb20gXCIuL2dpdC1kYXRhXCI7XG5pbXBvcnQgYXNzZXJ0LCB7QXNzZXJ0aW9uRXJyb3J9IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7UGFyc2VyfSBmcm9tIFwiLi9wYXJzZXJcIjtcbmltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCBnbG9iYnkgZnJvbSBcImdsb2JieVwiO1xuXG50eXBlIFBhcnNlckluY2x1ZGVzSW5pdE9wdGlvbnMgPSB7XG4gICAgY3dkOiBzdHJpbmc7XG4gICAgc3RhdGVEaXI6IHN0cmluZztcbiAgICB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcztcbiAgICBnaXREYXRhOiBHaXREYXRhO1xuICAgIGZldGNoSW5jbHVkZXM6IGJvb2xlYW47XG4gICAgZXhjbHVkZWRHbG9iczogc3RyaW5nW107XG4gICAgdmFyaWFibGVzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcbn07XG5cbmV4cG9ydCBjbGFzcyBQYXJzZXJJbmNsdWRlcyB7XG5cbiAgICBzdGF0aWMgYXN5bmMgaW5pdCAoZ2l0bGFiRGF0YTogYW55LCBkZXB0aDogbnVtYmVyLCBvcHRzOiBQYXJzZXJJbmNsdWRlc0luaXRPcHRpb25zKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgICAgICBsZXQgaW5jbHVkZURhdGFzOiBhbnlbXSA9IFtdO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBjb25zdCB7c3RhdGVEaXIsIGN3ZCwgZmV0Y2hJbmNsdWRlcywgZ2l0RGF0YSwgZXhjbHVkZWRHbG9ic30gPSBvcHRzO1xuXG4gICAgICAgIGFzc2VydChkZXB0aCA8IDEwMCwgY2hhbGtgY2lyY3VsYXIgZGVwZW5kZW5jeSBkZXRlY3RlZCBpbiBcXGBpbmNsdWRlXFxgYCk7XG4gICAgICAgIGRlcHRoKys7XG5cbiAgICAgICAgY29uc3QgaW5jbHVkZSA9IHRoaXMuZXhwYW5kSW5jbHVkZShnaXRsYWJEYXRhW1wiaW5jbHVkZVwiXSwgb3B0cy52YXJpYWJsZXMpO1xuXG4gICAgICAgIC8vIEZpbmQgZmlsZXMgdG8gZmV0Y2ggZnJvbSByZW1vdGUgYW5kIHBsYWNlIGluIC5naXRsYWItY2ktbG9jYWwvaW5jbHVkZXNcbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBpbmNsdWRlKSB7XG4gICAgICAgICAgICBpZiAodmFsdWVbXCJydWxlc1wiXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVfcnVsZXMgPSB2YWx1ZVtcInJ1bGVzXCJdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJ1bGVzUmVzdWx0ID0gVXRpbHMuZ2V0UnVsZXNSZXN1bHQoe2N3ZCwgcnVsZXM6IGluY2x1ZGVfcnVsZXMsIHZhcmlhYmxlczogb3B0cy52YXJpYWJsZXN9KTtcbiAgICAgICAgICAgICAgICBpZiAocnVsZXNSZXN1bHQud2hlbiA9PT0gXCJuZXZlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZVtcImxvY2FsXCJdKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBhd2FpdCBnbG9iYnkodmFsdWVbXCJsb2NhbFwiXS5yZXBsYWNlKC9eXFwvLywgXCJcIiksIHtkb3Q6IHRydWUsIGN3ZH0pO1xuICAgICAgICAgICAgICAgIGlmIChmaWxlcy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9uRXJyb3Ioe21lc3NhZ2U6IGBMb2NhbCBpbmNsdWRlIGZpbGUgY2Fubm90IGJlIGZvdW5kICR7dmFsdWVbXCJsb2NhbFwiXX1gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtcImZpbGVcIl0pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVWYWx1ZSBvZiBBcnJheS5pc0FycmF5KHZhbHVlW1wiZmlsZVwiXSkgPyB2YWx1ZVtcImZpbGVcIl0gOiBbdmFsdWVbXCJmaWxlXCJdXSkge1xuICAgICAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMuZG93bmxvYWRJbmNsdWRlUHJvamVjdEZpbGUoY3dkLCBzdGF0ZURpciwgdmFsdWVbXCJwcm9qZWN0XCJdLCB2YWx1ZVtcInJlZlwiXSB8fCBcIkhFQURcIiwgZmlsZVZhbHVlLCBnaXREYXRhLCBmZXRjaEluY2x1ZGVzKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtcInRlbXBsYXRlXCJdKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qge3Byb2plY3QsIHJlZiwgZmlsZSwgZG9tYWlufSA9IHRoaXMuY292ZXJ0VGVtcGxhdGVUb1Byb2plY3RGaWxlKHZhbHVlW1widGVtcGxhdGVcIl0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IGBodHRwczovLyR7ZG9tYWlufS8ke3Byb2plY3R9Ly0vcmF3LyR7cmVmfS8ke2ZpbGV9YDtcbiAgICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMuZG93bmxvYWRJbmNsdWRlUmVtb3RlKGN3ZCwgc3RhdGVEaXIsIHVybCwgZmV0Y2hJbmNsdWRlcykpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtcInJlbW90ZVwiXSkge1xuICAgICAgICAgICAgICAgIHByb21pc2VzLnB1c2godGhpcy5kb3dubG9hZEluY2x1ZGVSZW1vdGUoY3dkLCBzdGF0ZURpciwgdmFsdWVbXCJyZW1vdGVcIl0sIGZldGNoSW5jbHVkZXMpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgaW5jbHVkZSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlW1wicnVsZXNcIl0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmNsdWRlX3J1bGVzID0gdmFsdWVbXCJydWxlc1wiXTtcbiAgICAgICAgICAgICAgICBjb25zdCBydWxlc1Jlc3VsdCA9IFV0aWxzLmdldFJ1bGVzUmVzdWx0KHtjd2QsIHJ1bGVzOiBpbmNsdWRlX3J1bGVzLCB2YXJpYWJsZXM6IG9wdHMudmFyaWFibGVzfSk7XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVzUmVzdWx0LndoZW4gPT09IFwibmV2ZXJcIikge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWVbXCJsb2NhbFwiXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgZ2xvYmJ5KFt2YWx1ZVtcImxvY2FsXCJdLnJlcGxhY2UoL15cXC8vLCBcIlwiKSwgLi4uZXhjbHVkZWRHbG9ic10sIHtkb3Q6IHRydWUsIGN3ZH0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbG9jYWxGaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBQYXJzZXIubG9hZFlhbWwoYCR7Y3dkfS8ke2xvY2FsRmlsZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZWRHbG9icy5wdXNoKGAhJHtsb2NhbEZpbGV9YCk7XG4gICAgICAgICAgICAgICAgICAgIGluY2x1ZGVEYXRhcyA9IGluY2x1ZGVEYXRhcy5jb25jYXQoYXdhaXQgdGhpcy5pbml0KGNvbnRlbnQsIGRlcHRoLCBvcHRzKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtcInByb2plY3RcIl0pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVWYWx1ZSBvZiBBcnJheS5pc0FycmF5KHZhbHVlW1wiZmlsZVwiXSkgPyB2YWx1ZVtcImZpbGVcIl0gOiBbdmFsdWVbXCJmaWxlXCJdXSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWxlRG9jID0gYXdhaXQgUGFyc2VyLmxvYWRZYW1sKGAke2N3ZH0vJHtzdGF0ZURpcn0vaW5jbHVkZXMvJHtnaXREYXRhLnJlbW90ZS5ob3N0fS8ke3ZhbHVlW1wicHJvamVjdFwiXX0vJHt2YWx1ZVtcInJlZlwiXSB8fCBcIkhFQURcIn0vJHtmaWxlVmFsdWV9YCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRXhwYW5kIGxvY2FsIGluY2x1ZGVzIGluc2lkZSBhIFwicHJvamVjdFwiLWxpa2UgaW5jbHVkZVxuICAgICAgICAgICAgICAgICAgICBmaWxlRG9jW1wiaW5jbHVkZVwiXSA9IHRoaXMuZXhwYW5kSW5jbHVkZShmaWxlRG9jW1wiaW5jbHVkZVwiXSwgb3B0cy52YXJpYWJsZXMpO1xuICAgICAgICAgICAgICAgICAgICBmaWxlRG9jW1wiaW5jbHVkZVwiXS5mb3JFYWNoKChpbm5lcjogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5uZXJbXCJsb2NhbFwiXSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZURvY1tcImluY2x1ZGVcIl1baV0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvamVjdDogdmFsdWVbXCJwcm9qZWN0XCJdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IGlubmVyW1wibG9jYWxcIl0ucmVwbGFjZSgvXlxcLy8sIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogdmFsdWVbXCJyZWZcIl0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBpbmNsdWRlRGF0YXMgPSBpbmNsdWRlRGF0YXMuY29uY2F0KGF3YWl0IHRoaXMuaW5pdChmaWxlRG9jLCBkZXB0aCwgb3B0cykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVbXCJ0ZW1wbGF0ZVwiXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtwcm9qZWN0LCByZWYsIGZpbGUsIGRvbWFpbn0gPSB0aGlzLmNvdmVydFRlbXBsYXRlVG9Qcm9qZWN0RmlsZSh2YWx1ZVtcInRlbXBsYXRlXCJdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmc1VybCA9IFV0aWxzLmZzVXJsKGBodHRwczovLyR7ZG9tYWlufS8ke3Byb2plY3R9Ly0vcmF3LyR7cmVmfS8ke2ZpbGV9YCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZURvYyA9IGF3YWl0IFBhcnNlci5sb2FkWWFtbChgJHtjd2R9LyR7c3RhdGVEaXJ9L2luY2x1ZGVzLyR7ZnNVcmx9YCk7XG4gICAgICAgICAgICAgICAgaW5jbHVkZURhdGFzID0gaW5jbHVkZURhdGFzLmNvbmNhdChhd2FpdCB0aGlzLmluaXQoZmlsZURvYywgZGVwdGgsIG9wdHMpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVbXCJyZW1vdGVcIl0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmc1VybCA9IFV0aWxzLmZzVXJsKHZhbHVlW1wicmVtb3RlXCJdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlRG9jID0gYXdhaXQgUGFyc2VyLmxvYWRZYW1sKGAke2N3ZH0vJHtzdGF0ZURpcn0vaW5jbHVkZXMvJHtmc1VybH1gKTtcbiAgICAgICAgICAgICAgICBpbmNsdWRlRGF0YXMgPSBpbmNsdWRlRGF0YXMuY29uY2F0KGF3YWl0IHRoaXMuaW5pdChmaWxlRG9jLCBkZXB0aCwgb3B0cykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9uRXJyb3Ioe21lc3NhZ2U6IGBEaWRuJ3QgdW5kZXJzdGFuZCBpbmNsdWRlICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluY2x1ZGVEYXRhcy5wdXNoKGdpdGxhYkRhdGEpO1xuICAgICAgICByZXR1cm4gaW5jbHVkZURhdGFzO1xuICAgIH1cblxuICAgIHN0YXRpYyBleHBhbmRJbmNsdWRlIChpOiBhbnksIHZhcmlhYmxlczoge1trZXk6IHN0cmluZ106IHN0cmluZ30pOiBhbnlbXSB7XG4gICAgICAgIGxldCBpbmNsdWRlID0gaSB8fCBbXTtcbiAgICAgICAgaWYgKGluY2x1ZGUgJiYgaW5jbHVkZS5sZW5ndGggPT0gbnVsbCkge1xuICAgICAgICAgICAgaW5jbHVkZSA9IFsgaSBdO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgaW5jbHVkZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaW5jbHVkZSA9IFtpbmNsdWRlXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgW2luZGV4LCBlbnRyeV0gb2YgT2JqZWN0LmVudHJpZXMoaW5jbHVkZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZW50cnkgPT09IFwic3RyaW5nXCIgJiYgKGVudHJ5LnN0YXJ0c1dpdGgoXCJodHRwczpcIikgfHwgZW50cnkuc3RhcnRzV2l0aChcImh0dHA6XCIpKSkge1xuICAgICAgICAgICAgICAgIGluY2x1ZGVbaW5kZXhdID0ge1wicmVtb3RlXCI6IGVudHJ5fTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgaW5jbHVkZVtpbmRleF0gPSB7XCJsb2NhbFwiOiBlbnRyeX07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGluY2x1ZGVbaW5kZXhdID0gZW50cnk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgaW5jbHVkZSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgZW50cnlba2V5XSA9IFV0aWxzLmV4cGFuZFRleHQodmFsdWUsIHZhcmlhYmxlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5jbHVkZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY292ZXJ0VGVtcGxhdGVUb1Byb2plY3RGaWxlICh0ZW1wbGF0ZTogc3RyaW5nKToge3Byb2plY3Q6IHN0cmluZzsgcmVmOiBzdHJpbmc7IGZpbGU6IHN0cmluZzsgZG9tYWluOiBzdHJpbmd9IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRvbWFpbjogXCJnaXRsYWIuY29tXCIsXG4gICAgICAgICAgICBwcm9qZWN0OiBcImdpdGxhYi1vcmcvZ2l0bGFiXCIsXG4gICAgICAgICAgICByZWY6IFwiSEVBRFwiLFxuICAgICAgICAgICAgZmlsZTogYGxpYi9naXRsYWIvY2kvdGVtcGxhdGVzLyR7dGVtcGxhdGV9YCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgZG93bmxvYWRJbmNsdWRlUmVtb3RlIChjd2Q6IHN0cmluZywgc3RhdGVEaXI6IHN0cmluZywgdXJsOiBzdHJpbmcsIGZldGNoSW5jbHVkZXM6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZnNVcmwgPSBVdGlscy5mc1VybCh1cmwpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gYCR7Y3dkfS8ke3N0YXRlRGlyfS9pbmNsdWRlcy8ke2ZzVXJsfWA7XG4gICAgICAgICAgICBpZiAoYXdhaXQgZnMucGF0aEV4aXN0cyh0YXJnZXQpICYmICFmZXRjaEluY2x1ZGVzKSByZXR1cm47XG4gICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBheGlvcy5nZXQodXJsKTtcbiAgICAgICAgICAgIGF3YWl0IGZzLm91dHB1dEZpbGUodGFyZ2V0LCByZXMuZGF0YSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBBc3NlcnRpb25FcnJvcih7bWVzc2FnZTogYFJlbW90ZSBpbmNsdWRlIGNvdWxkIG5vdCBiZSBmZXRjaGVkICR7dXJsfVxcbiR7ZX1gfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgZG93bmxvYWRJbmNsdWRlUHJvamVjdEZpbGUgKGN3ZDogc3RyaW5nLCBzdGF0ZURpcjogc3RyaW5nLCBwcm9qZWN0OiBzdHJpbmcsIHJlZjogc3RyaW5nLCBmaWxlOiBzdHJpbmcsIGdpdERhdGE6IEdpdERhdGEsIGZldGNoSW5jbHVkZXM6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcmVtb3RlID0gZ2l0RGF0YS5yZW1vdGU7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaWxlID0gZmlsZS5yZXBsYWNlKC9eXFwvKy8sIFwiXCIpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gYCR7c3RhdGVEaXJ9L2luY2x1ZGVzLyR7cmVtb3RlLmhvc3R9LyR7cHJvamVjdH0vJHtyZWZ9YDtcbiAgICAgICAgICAgIGlmIChhd2FpdCBmcy5wYXRoRXhpc3RzKGAke2N3ZH0vJHt0YXJnZXR9LyR7bm9ybWFsaXplZEZpbGV9YCkgJiYgIWZldGNoSW5jbHVkZXMpIHJldHVybjtcblxuICAgICAgICAgICAgaWYgKHJlbW90ZS5zY2hlbWEuc3RhcnRzV2l0aChcImh0dHBcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHQgPSBcInRtcC1cIiArIE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgZnMuZW5zdXJlRmlsZShgJHtjd2R9LyR7dGFyZ2V0fS8ke25vcm1hbGl6ZWRGaWxlfWApO1xuICAgICAgICAgICAgICAgIGF3YWl0IFV0aWxzLmJhc2goYFxuICAgICAgICAgICAgICAgICAgICBjZCAke2N3ZH0vJHtzdGF0ZURpcn0gXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGdpdCBjbG9uZSAtbiAtLWRlcHRoPTEgLS1maWx0ZXI9dHJlZTowIFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7cmVtb3RlLnNjaGVtYX06Ly8ke3JlbW90ZS5ob3N0fS8ke3Byb2plY3R9LmdpdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2N3ZH0vJHt0YXJnZXR9LiR7ZXh0fSBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgY2QgJHtjd2R9LyR7dGFyZ2V0fS4ke2V4dH0gXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGdpdCBzcGFyc2UtY2hlY2tvdXQgc2V0IC0tbm8tY29uZSAke25vcm1hbGl6ZWRGaWxlfSBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgZ2l0IGNoZWNrb3V0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBjZCAke2N3ZH0vJHtzdGF0ZURpcn0gXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGNwICR7Y3dkfS8ke3RhcmdldH0uJHtleHR9LyR7bm9ybWFsaXplZEZpbGV9XFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Y3dkfS8ke3RhcmdldH0vJHtub3JtYWxpemVkRmlsZX1cbiAgICAgICAgICAgICAgICAgICAgYCwgY3dkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZnMubWtkaXJwKGAke2N3ZH0vJHt0YXJnZXR9YCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgVXRpbHMuYmFzaChgZ2l0IGFyY2hpdmUgLS1yZW1vdGU9c3NoOi8vZ2l0QCR7cmVtb3RlLmhvc3R9OiR7cmVtb3RlLnBvcnR9LyR7cHJvamVjdH0uZ2l0ICR7cmVmfSAke25vcm1hbGl6ZWRGaWxlfSB8IHRhciAtZiAtIC14QyAke3RhcmdldH0vYCwgY3dkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKHttZXNzYWdlOiBgUHJvamVjdCBpbmNsdWRlIGNvdWxkIG5vdCBiZSBmZXRjaGVkIHsgcHJvamVjdDogJHtwcm9qZWN0fSwgcmVmOiAke3JlZn0sIGZpbGU6ICR7bm9ybWFsaXplZEZpbGV9IH1cXG4ke2V9YH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
package/src/parser.js
CHANGED
|
@@ -237,4 +237,4 @@ class Parser {
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
exports.Parser = Parser;
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDhEQUFxQztBQUNyQyw2Q0FBK0I7QUFDL0IsOENBQWdDO0FBQ2hDLGtFQUF5QztBQUN6QywrQkFBMEI7QUFDMUIsOERBQWdEO0FBQ2hELG1DQUE4QjtBQUM5QixvREFBNEI7QUFDNUIsMkNBQXNDO0FBQ3RDLHFEQUF1QztBQUN2Qyx5Q0FBbUM7QUFDbkMsdURBQWlEO0FBQ2pELDJDQUFzQztBQUN0QyxpRUFBMEQ7QUFHMUQsaUVBQXVFO0FBRXZFLE1BQWEsTUFBTTtJQUVQLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLFdBQVcsR0FBa0IsSUFBSSxDQUFDO0lBRWpDLElBQUksQ0FBUTtJQUNaLElBQUksQ0FBTztJQUNYLFlBQVksQ0FBZTtJQUMzQixXQUFXLENBQVM7SUFFN0IsWUFBcUIsSUFBVSxFQUFFLFlBQTBCLEVBQUUsV0FBbUIsRUFBRSxJQUFXO1FBQ3pGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsV0FB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QUFDLENBQUM7b0JBQ2xFLEtBQUssRUFBRSxDQUFDO2lCQUNYO2dCQUNELElBQUksZ0JBQWdCLEVBQUU7b0JBQ2xCLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsa0JBQWtCLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxXQUFXLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckcsS0FBSyxFQUFFLENBQUM7aUJBQ1g7Z0JBQ0QsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLHdCQUF3QixHQUFHLElBQUksQ0FBQzthQUNuQztZQUNELEtBQUssRUFBRSxDQUFDO1NBQ1g7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzlDLElBQUksRUFBRSxVQUFVO1lBQ2hCLFNBQVMsRUFBRSxVQUFVLElBQUk7Z0JBQ3JCLE9BQU8sRUFBQyxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDakMsQ0FBQztTQUNKLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hFLENBQUM7Q0FFSjtBQW5PRCx3QkFtT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgZGVlcEV4dGVuZCBmcm9tIFwiZGVlcC1leHRlbmRcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tIFwianMteWFtbFwiO1xuaW1wb3J0IHByZXR0eUhydGltZSBmcm9tIFwicHJldHR5LWhydGltZVwiO1xuaW1wb3J0IHtKb2J9IGZyb20gXCIuL2pvYlwiO1xuaW1wb3J0ICogYXMgRGF0YUV4cGFuZGVyIGZyb20gXCIuL2RhdGEtZXhwYW5kZXJcIjtcbmltcG9ydCB7VXRpbHN9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7VmFsaWRhdG9yfSBmcm9tIFwiLi92YWxpZGF0b3JcIjtcbmltcG9ydCAqIGFzIHBhcmFsbGVsIGZyb20gXCIuL3BhcmFsbGVsXCI7XG5pbXBvcnQge0dpdERhdGF9IGZyb20gXCIuL2dpdC1kYXRhXCI7XG5pbXBvcnQge1BhcnNlckluY2x1ZGVzfSBmcm9tIFwiLi9wYXJzZXItaW5jbHVkZXNcIjtcbmltcG9ydCB7UHJvZHVjZXJzfSBmcm9tIFwiLi9wcm9kdWNlcnNcIjtcbmltcG9ydCB7VmFyaWFibGVzRnJvbUZpbGVzfSBmcm9tIFwiLi92YXJpYWJsZXMtZnJvbS1maWxlc1wiO1xuaW1wb3J0IHtBcmd2fSBmcm9tIFwiLi9hcmd2XCI7XG5pbXBvcnQge1dyaXRlU3RyZWFtc30gZnJvbSBcIi4vd3JpdGUtc3RyZWFtc1wiO1xuaW1wb3J0IHtpbml0IGFzIGluaXRQcmVkZWZpbmVkVmFyaWFibGVzfSBmcm9tIFwiLi9wcmVkZWZpbmVkLXZhcmlhYmxlc1wiO1xuXG5leHBvcnQgY2xhc3MgUGFyc2VyIHtcblxuICAgIHByaXZhdGUgX3N0YWdlczogc3RyaW5nW10gPSBbXTtcbiAgICBwcml2YXRlIF9naXRsYWJEYXRhOiBhbnk7XG4gICAgcHJpdmF0ZSBfam9iTmFtZVBhZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICByZWFkb25seSBqb2JzOiBKb2JbXTtcbiAgICByZWFkb25seSBhcmd2OiBBcmd2O1xuICAgIHJlYWRvbmx5IHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zO1xuICAgIHJlYWRvbmx5IHBpcGVsaW5lSWlkOiBudW1iZXI7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yIChhcmd2OiBBcmd2LCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcywgcGlwZWxpbmVJaWQ6IG51bWJlciwgam9iczogSm9iW10pIHtcbiAgICAgICAgdGhpcy5hcmd2ID0gYXJndjtcbiAgICAgICAgdGhpcy53cml0ZVN0cmVhbXMgPSB3cml0ZVN0cmVhbXM7XG4gICAgICAgIHRoaXMucGlwZWxpbmVJaWQgPSBwaXBlbGluZUlpZDtcbiAgICAgICAgdGhpcy5qb2JzID0gam9icztcbiAgICB9XG5cbiAgICBnZXQgc3RhZ2VzICgpOiByZWFkb25seSBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFnZXM7XG4gICAgfVxuXG4gICAgZ2V0IGdpdGxhYkRhdGEgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2l0bGFiRGF0YTtcbiAgICB9XG5cbiAgICBnZXQgam9iTmFtZVBhZCAoKTogbnVtYmVyIHtcbiAgICAgICAgYXNzZXJ0KHRoaXMuX2pvYk5hbWVQYWQgIT0gbnVsbCwgXCJqb2JOYW1lUGFkIGlzIHVuaW5pdGlhbGl6ZWRcIik7XG4gICAgICAgIHJldHVybiB0aGlzLl9qb2JOYW1lUGFkO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBjcmVhdGUgKGFyZ3Y6IEFyZ3YsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZDogbnVtYmVyLCBqb2JzOiBKb2JbXSkge1xuICAgICAgICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKGFyZ3YsIHdyaXRlU3RyZWFtcywgcGlwZWxpbmVJaWQsIGpvYnMpO1xuICAgICAgICBjb25zdCB0aW1lID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgICAgICAgYXdhaXQgcGFyc2VyLmluaXQoKTtcbiAgICAgICAgY29uc3Qgd2FybmluZ3MgPSBhd2FpdCBWYWxpZGF0b3IucnVuKHBhcnNlci5qb2JzLCBwYXJzZXIuc3RhZ2VzKTtcbiAgICAgICAgY29uc3QgcGFyc2luZ1RpbWUgPSBwcm9jZXNzLmhydGltZSh0aW1lKTtcblxuICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHtncmV5IHBhcnNpbmcgYW5kIGRvd25sb2FkcyBmaW5pc2hlZH0gaW4ge2dyZXkgJHtwcmV0dHlIcnRpbWUocGFyc2luZ1RpbWUpfX1cXG5gKTtcbiAgICAgICAgZm9yIChjb25zdCB3YXJuaW5nIG9mIHdhcm5pbmdzKSB7XG4gICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgJHt3YXJuaW5nfX1cXG5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJzZXI7XG4gICAgfVxuXG4gICAgYXN5bmMgaW5pdCAoKSB7XG4gICAgICAgIGNvbnN0IGFyZ3YgPSB0aGlzLmFyZ3Y7XG4gICAgICAgIGNvbnN0IGN3ZCA9IGFyZ3YuY3dkO1xuICAgICAgICBjb25zdCBzdGF0ZURpciA9IGFyZ3Yuc3RhdGVEaXI7XG4gICAgICAgIGNvbnN0IHdyaXRlU3RyZWFtcyA9IHRoaXMud3JpdGVTdHJlYW1zO1xuICAgICAgICBjb25zdCBmaWxlID0gYXJndi5maWxlO1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IHRoaXMucGlwZWxpbmVJaWQ7XG4gICAgICAgIGNvbnN0IGZldGNoSW5jbHVkZXMgPSBhcmd2LmZldGNoSW5jbHVkZXM7XG4gICAgICAgIGNvbnN0IGdpdERhdGEgPSBhd2FpdCBHaXREYXRhLmluaXQoY3dkLCB3cml0ZVN0cmVhbXMpO1xuICAgICAgICBjb25zdCB2YXJpYWJsZXNGcm9tRmlsZXMgPSBhd2FpdCBWYXJpYWJsZXNGcm9tRmlsZXMuaW5pdChhcmd2LCB3cml0ZVN0cmVhbXMsIGdpdERhdGEpO1xuICAgICAgICBjb25zdCBwcmVkZWZpbmVkVmFyaWFibGVzID0gaW5pdFByZWRlZmluZWRWYXJpYWJsZXMoe2dpdERhdGEsIGFyZ3Z9KTtcbiAgICAgICAgY29uc3QgZW52TWF0Y2hlZFZhcmlhYmxlcyA9IFV0aWxzLmZpbmRFbnZNYXRjaGVkVmFyaWFibGVzKHZhcmlhYmxlc0Zyb21GaWxlcyk7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsuLi5wcmVkZWZpbmVkVmFyaWFibGVzLCAuLi5lbnZNYXRjaGVkVmFyaWFibGVzLCAuLi5hcmd2LnZhcmlhYmxlfTtcbiAgICAgICAgY29uc3QgZXhwYW5kZWQgPSBVdGlscy5leHBhbmRWYXJpYWJsZXModmFyaWFibGVzKTtcblxuICAgICAgICBsZXQgeWFtbERhdGFMaXN0OiBhbnlbXSA9IFt7c3RhZ2VzOiBbXCIucHJlXCIsIFwiYnVpbGRcIiwgXCJ0ZXN0XCIsIFwiZGVwbG95XCIsIFwiLnBvc3RcIl19XTtcbiAgICAgICAgY29uc3QgZ2l0bGFiQ2lEYXRhID0gYXdhaXQgUGFyc2VyLmxvYWRZYW1sKGAke2N3ZH0vJHtmaWxlfWApO1xuICAgICAgICB5YW1sRGF0YUxpc3QgPSB5YW1sRGF0YUxpc3QuY29uY2F0KGF3YWl0IFBhcnNlckluY2x1ZGVzLmluaXQoZ2l0bGFiQ2lEYXRhLCAwLCB7Y3dkLCBzdGF0ZURpciwgd3JpdGVTdHJlYW1zLCBnaXREYXRhLCBmZXRjaEluY2x1ZGVzLCBleGNsdWRlZEdsb2JzOiBbXSwgdmFyaWFibGVzOiBleHBhbmRlZH0pKTtcblxuICAgICAgICBjb25zdCBnaXRsYWJDaUxvY2FsRGF0YSA9IGF3YWl0IFBhcnNlci5sb2FkWWFtbChgJHtjd2R9Ly5naXRsYWItY2ktbG9jYWwueW1sYCk7XG4gICAgICAgIHlhbWxEYXRhTGlzdCA9IHlhbWxEYXRhTGlzdC5jb25jYXQoYXdhaXQgUGFyc2VySW5jbHVkZXMuaW5pdChnaXRsYWJDaUxvY2FsRGF0YSwgMCwge2N3ZCwgc3RhdGVEaXIsIHdyaXRlU3RyZWFtcywgZ2l0RGF0YSwgZmV0Y2hJbmNsdWRlcywgZXhjbHVkZWRHbG9iczogW10sIHZhcmlhYmxlczogZXhwYW5kZWR9KSk7XG5cbiAgICAgICAgY29uc3QgZ2l0bGFiRGF0YTogYW55ID0gZGVlcEV4dGVuZCh7fSwgLi4ueWFtbERhdGFMaXN0KTtcblxuICAgICAgICAvLyBFeHBhbmQgdmFyaW91cyBmaWVsZHMgaW4gZ2l0bGFiRGF0YVxuICAgICAgICBEYXRhRXhwYW5kZXIuam9iRXh0ZW5kcyhnaXRsYWJEYXRhKTtcbiAgICAgICAgRGF0YUV4cGFuZGVyLnJlZmVyZW5jZShnaXRsYWJEYXRhLCBnaXRsYWJEYXRhKTtcbiAgICAgICAgRGF0YUV4cGFuZGVyLmNvbXBsZXhPYmplY3RzKGdpdGxhYkRhdGEpO1xuICAgICAgICBEYXRhRXhwYW5kZXIuZGVmYXVsdHMoZ2l0bGFiRGF0YSk7XG4gICAgICAgIERhdGFFeHBhbmRlci5nbG9iYWxWYXJpYWJsZXMoZ2l0bGFiRGF0YSk7XG4gICAgICAgIERhdGFFeHBhbmRlci5mbGF0dGVuTGlzdHMoZ2l0bGFiRGF0YSk7XG5cbiAgICAgICAgYXNzZXJ0KGdpdGxhYkRhdGEuc3RhZ2VzICYmIEFycmF5LmlzQXJyYXkoZ2l0bGFiRGF0YS5zdGFnZXMpLCBjaGFsa2B7eWVsbG93IHN0YWdlczp9IG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICAgICAgaWYgKCFnaXRsYWJEYXRhLnN0YWdlcy5pbmNsdWRlcyhcIi5wcmVcIikpIHtcbiAgICAgICAgICAgIGdpdGxhYkRhdGEuc3RhZ2VzLnVuc2hpZnQoXCIucHJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2l0bGFiRGF0YS5zdGFnZXMuaW5jbHVkZXMoXCIucG9zdFwiKSkge1xuICAgICAgICAgICAgZ2l0bGFiRGF0YS5zdGFnZXMucHVzaChcIi5wb3N0XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N0YWdlcyA9IGdpdGxhYkRhdGEuc3RhZ2VzO1xuXG4gICAgICAgIC8vIENoZWNrIGpvYiB2YXJpYWJsZXMgZm9yIGludmFsaWQgaGFzaCBvZiBrZXkgdmFsdWUgcGFpcnMsIGFuZCBjYXN0IG51bWJlcnMgdG8gc3RyaW5nc1xuICAgICAgICBVdGlscy5mb3JFYWNoUmVhbEpvYihnaXRsYWJEYXRhLCAoam9iTmFtZSwgam9iRGF0YSkgPT4ge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoam9iRGF0YS52YXJpYWJsZXMgfHwge30pKSB7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICBjaGFsa2B7Ymx1ZUJyaWdodCAke2pvYk5hbWV9fSBoYXMgaW52YWxpZCB2YXJpYWJsZXMgaGFzaCBvZiBrZXkgdmFsdWUgcGFpcnMuICR7a2V5fT0ke3ZhbHVlfWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGpvYkRhdGEudmFyaWFibGVzW2tleV0gPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IChqb2JEYXRhLnNlcnZpY2VzID8/IFtdKS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcnZpY2UgPSBqb2JEYXRhLnNlcnZpY2VzW2ldO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNlcnZpY2UudmFyaWFibGVzIHx8IHt9KSkge1xuICAgICAgICAgICAgICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbGtge2JsdWVCcmlnaHQgJHtqb2JOYW1lfS5zZXJ2aWNlc1ske2l9XX0gaGFzIGludmFsaWQgdmFyaWFibGVzIGhhc2ggb2Yga2V5IHZhbHVlIHBhaXJzLiAke2tleX09JHt2YWx1ZX1gXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGpvYkRhdGEuc2VydmljZXNbaV0udmFyaWFibGVzW2tleV0gPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZ2l0bGFiRGF0YSA9IGdpdGxhYkRhdGE7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgam9icyBhbmQgcHV0IHRoZW0gaW50byBzdGFnZXNcbiAgICAgICAgVXRpbHMuZm9yRWFjaFJlYWxKb2IoZ2l0bGFiRGF0YSwgKGpvYk5hbWUsIGpvYkRhdGEpID0+IHtcbiAgICAgICAgICAgIGFzc2VydChnaXREYXRhICE9IG51bGwsIFwiZ2l0RGF0YSBtdXN0IGJlIHNldFwiKTtcbiAgICAgICAgICAgIGFzc2VydCh2YXJpYWJsZXNGcm9tRmlsZXMgIT0gbnVsbCwgXCJob21lVmFyaWFibGVzIG11c3QgYmUgc2V0XCIpO1xuXG4gICAgICAgICAgICBsZXQgbm9kZUluZGV4ID0gMTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFsbGVsTWF0cml4VmFyaWFibGVzTGlzdCA9IHBhcmFsbGVsLm1hdHJpeFZhcmlhYmxlc0xpc3Qoam9iRGF0YSwgam9iTmFtZSkgPz8gW251bGxdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwYXJhbGxlbE1hdHJpeFZhcmlhYmxlcyBvZiBwYXJhbGxlbE1hdHJpeFZhcmlhYmxlc0xpc3QpIHtcbiAgICAgICAgICAgICAgICBsZXQgbWF0cml4Sm9iTmFtZSA9IGpvYk5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFsbGVsTWF0cml4VmFyaWFibGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hdHJpeEpvYk5hbWUgPSBgJHtqb2JOYW1lfTogWyR7T2JqZWN0LnZhbHVlcyhwYXJhbGxlbE1hdHJpeFZhcmlhYmxlcyA/PyBbXSkuam9pbihcIixcIil9XWA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgam9iID0gbmV3IEpvYih7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3YsXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcyxcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogam9iRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogbWF0cml4Sm9iTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgYmFzZU5hbWU6IGpvYk5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGdsb2JhbFZhcmlhYmxlczogZ2l0bGFiRGF0YS52YXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgICAgIHBpcGVsaW5lSWlkOiBwaXBlbGluZUlpZCxcbiAgICAgICAgICAgICAgICAgICAgcHJlZGVmaW5lZFZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICAgICAgZ2l0RGF0YSxcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzRnJvbUZpbGVzLFxuICAgICAgICAgICAgICAgICAgICBtYXRyaXhWYXJpYWJsZXM6IHBhcmFsbGVsTWF0cml4VmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICBub2RlSW5kZXg6IHBhcmFsbGVsTWF0cml4VmFyaWFibGVzICE9PSBudWxsID8gbm9kZUluZGV4IDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbm9kZXNUb3RhbDogcGFyYWxsZWxNYXRyaXhWYXJpYWJsZXNMaXN0Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZFN0YWdlID0gdGhpcy5zdGFnZXMuaW5jbHVkZXMoam9iLnN0YWdlKTtcbiAgICAgICAgICAgICAgICBhc3NlcnQoZm91bmRTdGFnZSwgY2hhbGtge3llbGxvdyBzdGFnZToke2pvYi5zdGFnZX19IG5vdCBmb3VuZCBmb3Ige2JsdWVCcmlnaHQgJHtqb2IubmFtZX19YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5qb2JzLnB1c2goam9iKTtcbiAgICAgICAgICAgICAgICBub2RlSW5kZXgrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRkIHNvbWUgcGFkZGluZyBzbyB0aGF0IGpvYiBsb2dzIGFyZSBuaWNlbHkgYWxpZ25lZFxuICAgICAgICAvLyBhbGxvdyB1c2VycyB0byBvdmVycmlkZSB0aGlzIGluIGNhc2UgdGhleSBoYXZlIHJlYWxseSBsb25nIGpvYiBuYW1lIChzZWUgIzg0MClcbiAgICAgICAgaWYgKHRoaXMuYXJndi5tYXhKb2JOYW1lUGFkZGluZyAhPT0gbnVsbCAmJiB0aGlzLmFyZ3YubWF4Sm9iTmFtZVBhZGRpbmcgPD0gMCkge1xuICAgICAgICAgICAgdGhpcy5fam9iTmFtZVBhZCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmpvYnMuZm9yRWFjaCgoam9iKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fam9iTmFtZVBhZCA9IE1hdGgubWF4KGpvYi5uYW1lLmxlbmd0aCwgdGhpcy5fam9iTmFtZVBhZCA/PyAwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuYXJndi5tYXhKb2JOYW1lUGFkZGluZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2pvYk5hbWVQYWQgPSBNYXRoLm1pbih0aGlzLmFyZ3YubWF4Sm9iTmFtZVBhZGRpbmcgPz8gMCwgdGhpcy5fam9iTmFtZVBhZCA/PyAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCBqb2JOYW1lUGFkIG9uIGFsbCBqb2JzXG4gICAgICAgIHRoaXMuam9icy5mb3JFYWNoKChqb2IpID0+IHtcbiAgICAgICAgICAgIGpvYi5qb2JOYW1lUGFkID0gdGhpcy5qb2JOYW1lUGFkO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBHZW5lcmF0ZSBwcm9kdWNlcnMgZm9yIGVhY2ggam9iXG4gICAgICAgIHRoaXMuam9icy5mb3JFYWNoKChqb2IpID0+IHtcbiAgICAgICAgICAgIGpvYi5wcm9kdWNlcnMgPSBQcm9kdWNlcnMuaW5pdCh0aGlzLmpvYnMsIHRoaXMuc3RhZ2VzLCBqb2IpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgbG9hZFlhbWwgKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCB5bWxQYXRoID0gYCR7ZmlsZVBhdGh9YDtcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHltbFBhdGgpKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWxlQ29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKGAke2ZpbGVQYXRofWAsIFwidXRmOFwiKTtcbiAgICAgICAgY29uc3QgZmlsZVNwbGl0ID0gZmlsZUNvbnRlbnQuc3BsaXQoL1xccj9cXG4vZyk7XG4gICAgICAgIGNvbnN0IGZpbGVTcGxpdENsb25lID0gZmlsZVNwbGl0LnNsaWNlKCk7XG5cbiAgICAgICAgbGV0IGludGVyYWN0aXZlTWF0Y2ggPSBudWxsO1xuICAgICAgICBsZXQgZGVzY3JpcHRpb25NYXRjaCA9IG51bGw7XG4gICAgICAgIGxldCBpbmplY3RTU0hBZ2VudCA9IG51bGw7XG4gICAgICAgIGxldCBub0FydGlmYWN0c1RvU291cmNlTWF0Y2ggPSBudWxsO1xuICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgZmlsZVNwbGl0KSB7XG4gICAgICAgICAgICBpbnRlcmFjdGl2ZU1hdGNoID0gIWludGVyYWN0aXZlTWF0Y2ggPyAvI1xccz9AXFxzP1tJaV1udGVyYWN0aXZlLy5leGVjKGxpbmUpIDogaW50ZXJhY3RpdmVNYXRjaDtcbiAgICAgICAgICAgIGluamVjdFNTSEFnZW50ID0gIWluamVjdFNTSEFnZW50ID8gLyNcXHM/QFxccz9bSWldbmplY3RTU0hBZ2VudC8uZXhlYyhsaW5lKSA6IGluamVjdFNTSEFnZW50O1xuICAgICAgICAgICAgbm9BcnRpZmFjdHNUb1NvdXJjZU1hdGNoID0gIW5vQXJ0aWZhY3RzVG9Tb3VyY2VNYXRjaCA/IC8jXFxzP0BcXHM/Tm9BcnRpZmFjdHNUb1NvdXJjZS9pLmV4ZWMobGluZSkgOiBub0FydGlmYWN0c1RvU291cmNlTWF0Y2g7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbk1hdGNoID0gIWRlc2NyaXB0aW9uTWF0Y2ggPyAvI1xccz9AXFxzP1tEZF1lc2NyaXB0aW9uICg/PGRlc2NyaXB0aW9uPi4qKS8uZXhlYyhsaW5lKSA6IGRlc2NyaXB0aW9uTWF0Y2g7XG5cbiAgICAgICAgICAgIGNvbnN0IGpvYk1hdGNoID0gL1xcdzovLmV4ZWMobGluZSk7XG4gICAgICAgICAgICBpZiAoam9iTWF0Y2ggJiYgKGludGVyYWN0aXZlTWF0Y2ggfHwgZGVzY3JpcHRpb25NYXRjaCB8fCBpbmplY3RTU0hBZ2VudCB8fCBub0FydGlmYWN0c1RvU291cmNlTWF0Y2gpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGludGVyYWN0aXZlTWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZVNwbGl0Q2xvbmUuc3BsaWNlKGluZGV4ICsgMSwgMCwgXCIgIGludGVyYWN0aXZlOiB0cnVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5qZWN0U1NIQWdlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZVNwbGl0Q2xvbmUuc3BsaWNlKGluZGV4ICsgMSwgMCwgXCIgIGluamVjdFNTSEFnZW50OiB0cnVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobm9BcnRpZmFjdHNUb1NvdXJjZU1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVTcGxpdENsb25lLnNwbGljZShpbmRleCArIDEsIDAsIFwiICBhcnRpZmFjdHNUb1NvdXJjZTogZmFsc2VcIik7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChkZXNjcmlwdGlvbk1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVTcGxpdENsb25lLnNwbGljZShpbmRleCArIDEsIDAsIGAgIGRlc2NyaXB0aW9uOiAke2Rlc2NyaXB0aW9uTWF0Y2g/Lmdyb3Vwcz8uZGVzY3JpcHRpb24gPz8gXCJcIn1gKTtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaW50ZXJhY3RpdmVNYXRjaCA9IG51bGw7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb25NYXRjaCA9IG51bGw7XG4gICAgICAgICAgICAgICAgaW5qZWN0U1NIQWdlbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIG5vQXJ0aWZhY3RzVG9Tb3VyY2VNYXRjaCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlVHlwZSA9IG5ldyB5YW1sLlR5cGUoXCIhcmVmZXJlbmNlXCIsIHtcbiAgICAgICAgICAgIGtpbmQ6IFwic2VxdWVuY2VcIixcbiAgICAgICAgICAgIGNvbnN0cnVjdDogZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3JlZmVyZW5jZURhdGE6IGRhdGF9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNjaGVtYSA9IHlhbWwuREVGQVVMVF9TQ0hFTUEuZXh0ZW5kKFtyZWZlcmVuY2VUeXBlXSk7XG4gICAgICAgIHJldHVybiB5YW1sLmxvYWQoZmlsZVNwbGl0Q2xvbmUuam9pbihcIlxcblwiKSwge3NjaGVtYX0pIHx8IHt9O1xuICAgIH1cblxufVxuIl19
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDhEQUFxQztBQUNyQyw2Q0FBK0I7QUFDL0IsOENBQWdDO0FBQ2hDLGtFQUF5QztBQUN6QywrQkFBMEI7QUFDMUIsOERBQWdEO0FBQ2hELG1DQUE4QjtBQUM5QixvREFBNEI7QUFDNUIsMkNBQXNDO0FBQ3RDLHFEQUF1QztBQUN2Qyx5Q0FBbUM7QUFDbkMsdURBQWlEO0FBQ2pELDJDQUFzQztBQUN0QyxpRUFBMEQ7QUFHMUQsaUVBQXVFO0FBRXZFLE1BQWEsTUFBTTtJQUVQLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLFdBQVcsR0FBa0IsSUFBSSxDQUFDO0lBRWpDLElBQUksQ0FBUTtJQUNaLElBQUksQ0FBTztJQUNYLFlBQVksQ0FBZTtJQUMzQixXQUFXLENBQVM7SUFFN0IsWUFBcUIsSUFBVSxFQUFFLFlBQTBCLEVBQUUsV0FBbUIsRUFBRSxJQUFXO1FBQ3pGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsV0FB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bU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IGRlZXBFeHRlbmQgZnJvbSBcImRlZXAtZXh0ZW5kXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSBcImpzLXlhbWxcIjtcbmltcG9ydCBwcmV0dHlIcnRpbWUgZnJvbSBcInByZXR0eS1ocnRpbWVcIjtcbmltcG9ydCB7Sm9ifSBmcm9tIFwiLi9qb2JcIjtcbmltcG9ydCAqIGFzIERhdGFFeHBhbmRlciBmcm9tIFwiLi9kYXRhLWV4cGFuZGVyXCI7XG5pbXBvcnQge1V0aWxzfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQge1ZhbGlkYXRvcn0gZnJvbSBcIi4vdmFsaWRhdG9yXCI7XG5pbXBvcnQgKiBhcyBwYXJhbGxlbCBmcm9tIFwiLi9wYXJhbGxlbFwiO1xuaW1wb3J0IHtHaXREYXRhfSBmcm9tIFwiLi9naXQtZGF0YVwiO1xuaW1wb3J0IHtQYXJzZXJJbmNsdWRlc30gZnJvbSBcIi4vcGFyc2VyLWluY2x1ZGVzXCI7XG5pbXBvcnQge1Byb2R1Y2Vyc30gZnJvbSBcIi4vcHJvZHVjZXJzXCI7XG5pbXBvcnQge1ZhcmlhYmxlc0Zyb21GaWxlc30gZnJvbSBcIi4vdmFyaWFibGVzLWZyb20tZmlsZXNcIjtcbmltcG9ydCB7QXJndn0gZnJvbSBcIi4vYXJndlwiO1xuaW1wb3J0IHtXcml0ZVN0cmVhbXN9IGZyb20gXCIuL3dyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7aW5pdCBhcyBpbml0UHJlZGVmaW5lZFZhcmlhYmxlc30gZnJvbSBcIi4vcHJlZGVmaW5lZC12YXJpYWJsZXNcIjtcblxuZXhwb3J0IGNsYXNzIFBhcnNlciB7XG5cbiAgICBwcml2YXRlIF9zdGFnZXM6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBfZ2l0bGFiRGF0YTogYW55O1xuICAgIHByaXZhdGUgX2pvYk5hbWVQYWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgcmVhZG9ubHkgam9iczogSm9iW107XG4gICAgcmVhZG9ubHkgYXJndjogQXJndjtcbiAgICByZWFkb25seSB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcztcbiAgICByZWFkb25seSBwaXBlbGluZUlpZDogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvciAoYXJndjogQXJndiwgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkOiBudW1iZXIsIGpvYnM6IEpvYltdKSB7XG4gICAgICAgIHRoaXMuYXJndiA9IGFyZ3Y7XG4gICAgICAgIHRoaXMud3JpdGVTdHJlYW1zID0gd3JpdGVTdHJlYW1zO1xuICAgICAgICB0aGlzLnBpcGVsaW5lSWlkID0gcGlwZWxpbmVJaWQ7XG4gICAgICAgIHRoaXMuam9icyA9IGpvYnM7XG4gICAgfVxuXG4gICAgZ2V0IHN0YWdlcyAoKTogcmVhZG9ubHkgc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhZ2VzO1xuICAgIH1cblxuICAgIGdldCBnaXRsYWJEYXRhICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dpdGxhYkRhdGE7XG4gICAgfVxuXG4gICAgZ2V0IGpvYk5hbWVQYWQgKCk6IG51bWJlciB7XG4gICAgICAgIGFzc2VydCh0aGlzLl9qb2JOYW1lUGFkICE9IG51bGwsIFwiam9iTmFtZVBhZCBpcyB1bmluaXRpYWxpemVkXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy5fam9iTmFtZVBhZDtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgY3JlYXRlIChhcmd2OiBBcmd2LCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcywgcGlwZWxpbmVJaWQ6IG51bWJlciwgam9iczogSm9iW10pIHtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IFBhcnNlcihhcmd2LCB3cml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkLCBqb2JzKTtcbiAgICAgICAgY29uc3QgdGltZSA9IHByb2Nlc3MuaHJ0aW1lKCk7XG4gICAgICAgIGF3YWl0IHBhcnNlci5pbml0KCk7XG4gICAgICAgIGNvbnN0IHdhcm5pbmdzID0gYXdhaXQgVmFsaWRhdG9yLnJ1bihwYXJzZXIuam9icywgcGFyc2VyLnN0YWdlcyk7XG4gICAgICAgIGNvbnN0IHBhcnNpbmdUaW1lID0gcHJvY2Vzcy5ocnRpbWUodGltZSk7XG5cbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7Z3JleSBwYXJzaW5nIGFuZCBkb3dubG9hZHMgZmluaXNoZWR9IGluIHtncmV5ICR7cHJldHR5SHJ0aW1lKHBhcnNpbmdUaW1lKX19XFxuYCk7XG4gICAgICAgIGZvciAoY29uc3Qgd2FybmluZyBvZiB3YXJuaW5ncykge1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93ICR7d2FybmluZ319XFxuYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyc2VyO1xuICAgIH1cblxuICAgIGFzeW5jIGluaXQgKCkge1xuICAgICAgICBjb25zdCBhcmd2ID0gdGhpcy5hcmd2O1xuICAgICAgICBjb25zdCBjd2QgPSBhcmd2LmN3ZDtcbiAgICAgICAgY29uc3Qgc3RhdGVEaXIgPSBhcmd2LnN0YXRlRGlyO1xuICAgICAgICBjb25zdCB3cml0ZVN0cmVhbXMgPSB0aGlzLndyaXRlU3RyZWFtcztcbiAgICAgICAgY29uc3QgZmlsZSA9IGFyZ3YuZmlsZTtcbiAgICAgICAgY29uc3QgcGlwZWxpbmVJaWQgPSB0aGlzLnBpcGVsaW5lSWlkO1xuICAgICAgICBjb25zdCBmZXRjaEluY2x1ZGVzID0gYXJndi5mZXRjaEluY2x1ZGVzO1xuICAgICAgICBjb25zdCBnaXREYXRhID0gYXdhaXQgR2l0RGF0YS5pbml0KGN3ZCwgd3JpdGVTdHJlYW1zKTtcbiAgICAgICAgY29uc3QgdmFyaWFibGVzRnJvbUZpbGVzID0gYXdhaXQgVmFyaWFibGVzRnJvbUZpbGVzLmluaXQoYXJndiwgd3JpdGVTdHJlYW1zLCBnaXREYXRhKTtcbiAgICAgICAgY29uc3QgcHJlZGVmaW5lZFZhcmlhYmxlcyA9IGluaXRQcmVkZWZpbmVkVmFyaWFibGVzKHtnaXREYXRhLCBhcmd2fSk7XG4gICAgICAgIGNvbnN0IGVudk1hdGNoZWRWYXJpYWJsZXMgPSBVdGlscy5maW5kRW52TWF0Y2hlZFZhcmlhYmxlcyh2YXJpYWJsZXNGcm9tRmlsZXMpO1xuICAgICAgICBjb25zdCB2YXJpYWJsZXMgPSB7Li4ucHJlZGVmaW5lZFZhcmlhYmxlcywgLi4uZW52TWF0Y2hlZFZhcmlhYmxlcywgLi4uYXJndi52YXJpYWJsZX07XG4gICAgICAgIGNvbnN0IGV4cGFuZGVkID0gVXRpbHMuZXhwYW5kVmFyaWFibGVzKHZhcmlhYmxlcyk7XG5cbiAgICAgICAgbGV0IHlhbWxEYXRhTGlzdDogYW55W10gPSBbe3N0YWdlczogW1wiLnByZVwiLCBcImJ1aWxkXCIsIFwidGVzdFwiLCBcImRlcGxveVwiLCBcIi5wb3N0XCJdfV07XG4gICAgICAgIGNvbnN0IGdpdGxhYkNpRGF0YSA9IGF3YWl0IFBhcnNlci5sb2FkWWFtbChgJHtjd2R9LyR7ZmlsZX1gKTtcbiAgICAgICAgeWFtbERhdGFMaXN0ID0geWFtbERhdGFMaXN0LmNvbmNhdChhd2FpdCBQYXJzZXJJbmNsdWRlcy5pbml0KGdpdGxhYkNpRGF0YSwgMCwge2N3ZCwgc3RhdGVEaXIsIHdyaXRlU3RyZWFtcywgZ2l0RGF0YSwgZmV0Y2hJbmNsdWRlcywgZXhjbHVkZWRHbG9iczogW10sIHZhcmlhYmxlczogZXhwYW5kZWR9KSk7XG5cbiAgICAgICAgY29uc3QgZ2l0bGFiQ2lMb2NhbERhdGEgPSBhd2FpdCBQYXJzZXIubG9hZFlhbWwoYCR7Y3dkfS8uZ2l0bGFiLWNpLWxvY2FsLnltbGApO1xuICAgICAgICB5YW1sRGF0YUxpc3QgPSB5YW1sRGF0YUxpc3QuY29uY2F0KGF3YWl0IFBhcnNlckluY2x1ZGVzLmluaXQoZ2l0bGFiQ2lMb2NhbERhdGEsIDAsIHtjd2QsIHN0YXRlRGlyLCB3cml0ZVN0cmVhbXMsIGdpdERhdGEsIGZldGNoSW5jbHVkZXMsIGV4Y2x1ZGVkR2xvYnM6IFtdLCB2YXJpYWJsZXM6IGV4cGFuZGVkfSkpO1xuXG4gICAgICAgIGNvbnN0IGdpdGxhYkRhdGE6IGFueSA9IGRlZXBFeHRlbmQoe30sIC4uLnlhbWxEYXRhTGlzdCk7XG5cbiAgICAgICAgLy8gRXhwYW5kIHZhcmlvdXMgZmllbGRzIGluIGdpdGxhYkRhdGFcbiAgICAgICAgRGF0YUV4cGFuZGVyLmpvYkV4dGVuZHMoZ2l0bGFiRGF0YSk7XG4gICAgICAgIERhdGFFeHBhbmRlci5yZWZlcmVuY2UoZ2l0bGFiRGF0YSwgZ2l0bGFiRGF0YSk7XG4gICAgICAgIERhdGFFeHBhbmRlci5jb21wbGV4T2JqZWN0cyhnaXRsYWJEYXRhKTtcbiAgICAgICAgRGF0YUV4cGFuZGVyLmRlZmF1bHRzKGdpdGxhYkRhdGEpO1xuICAgICAgICBEYXRhRXhwYW5kZXIuZ2xvYmFsVmFyaWFibGVzKGdpdGxhYkRhdGEpO1xuICAgICAgICBEYXRhRXhwYW5kZXIuZmxhdHRlbkxpc3RzKGdpdGxhYkRhdGEpO1xuXG4gICAgICAgIGFzc2VydChnaXRsYWJEYXRhLnN0YWdlcyAmJiBBcnJheS5pc0FycmF5KGdpdGxhYkRhdGEuc3RhZ2VzKSwgY2hhbGtge3llbGxvdyBzdGFnZXM6fSBtdXN0IGJlIGFuIGFycmF5YCk7XG4gICAgICAgIGlmICghZ2l0bGFiRGF0YS5zdGFnZXMuaW5jbHVkZXMoXCIucHJlXCIpKSB7XG4gICAgICAgICAgICBnaXRsYWJEYXRhLnN0YWdlcy51bnNoaWZ0KFwiLnByZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdpdGxhYkRhdGEuc3RhZ2VzLmluY2x1ZGVzKFwiLnBvc3RcIikpIHtcbiAgICAgICAgICAgIGdpdGxhYkRhdGEuc3RhZ2VzLnB1c2goXCIucG9zdFwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zdGFnZXMgPSBnaXRsYWJEYXRhLnN0YWdlcztcblxuICAgICAgICAvLyBDaGVjayBqb2IgdmFyaWFibGVzIGZvciBpbnZhbGlkIGhhc2ggb2Yga2V5IHZhbHVlIHBhaXJzLCBhbmQgY2FzdCBudW1iZXJzIHRvIHN0cmluZ3NcbiAgICAgICAgVXRpbHMuZm9yRWFjaFJlYWxKb2IoZ2l0bGFiRGF0YSwgKGpvYk5hbWUsIGpvYkRhdGEpID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGpvYkRhdGEudmFyaWFibGVzIHx8IHt9KSkge1xuICAgICAgICAgICAgICAgIGFzc2VydChcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgY2hhbGtge2JsdWVCcmlnaHQgJHtqb2JOYW1lfX0gaGFzIGludmFsaWQgdmFyaWFibGVzIGhhc2ggb2Yga2V5IHZhbHVlIHBhaXJzLiAke2tleX09JHt2YWx1ZX1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBqb2JEYXRhLnZhcmlhYmxlc1trZXldID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAoam9iRGF0YS5zZXJ2aWNlcyA/PyBbXSkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXJ2aWNlID0gam9iRGF0YS5zZXJ2aWNlc1tpXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhzZXJ2aWNlLnZhcmlhYmxlcyB8fCB7fSkpIHtcbiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWxrYHtibHVlQnJpZ2h0ICR7am9iTmFtZX0uc2VydmljZXNbJHtpfV19IGhhcyBpbnZhbGlkIHZhcmlhYmxlcyBoYXNoIG9mIGtleSB2YWx1ZSBwYWlycy4gJHtrZXl9PSR7dmFsdWV9YFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBqb2JEYXRhLnNlcnZpY2VzW2ldLnZhcmlhYmxlc1trZXldID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2dpdGxhYkRhdGEgPSBnaXRsYWJEYXRhO1xuXG4gICAgICAgIC8vIEdlbmVyYXRlIGpvYnMgYW5kIHB1dCB0aGVtIGludG8gc3RhZ2VzXG4gICAgICAgIFV0aWxzLmZvckVhY2hSZWFsSm9iKGdpdGxhYkRhdGEsIChqb2JOYW1lLCBqb2JEYXRhKSA9PiB7XG4gICAgICAgICAgICBhc3NlcnQoZ2l0RGF0YSAhPSBudWxsLCBcImdpdERhdGEgbXVzdCBiZSBzZXRcIik7XG4gICAgICAgICAgICBhc3NlcnQodmFyaWFibGVzRnJvbUZpbGVzICE9IG51bGwsIFwiaG9tZVZhcmlhYmxlcyBtdXN0IGJlIHNldFwiKTtcblxuICAgICAgICAgICAgbGV0IG5vZGVJbmRleCA9IDE7XG4gICAgICAgICAgICBjb25zdCBwYXJhbGxlbE1hdHJpeFZhcmlhYmxlc0xpc3QgPSBwYXJhbGxlbC5tYXRyaXhWYXJpYWJsZXNMaXN0KGpvYkRhdGEsIGpvYk5hbWUpID8/IFtudWxsXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGFyYWxsZWxNYXRyaXhWYXJpYWJsZXMgb2YgcGFyYWxsZWxNYXRyaXhWYXJpYWJsZXNMaXN0KSB7XG4gICAgICAgICAgICAgICAgbGV0IG1hdHJpeEpvYk5hbWUgPSBqb2JOYW1lO1xuICAgICAgICAgICAgICAgIGlmIChwYXJhbGxlbE1hdHJpeFZhcmlhYmxlcykge1xuICAgICAgICAgICAgICAgICAgICBtYXRyaXhKb2JOYW1lID0gYCR7am9iTmFtZX06IFske09iamVjdC52YWx1ZXMocGFyYWxsZWxNYXRyaXhWYXJpYWJsZXMgPz8gW10pLmpvaW4oXCIsXCIpfV1gO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGpvYiA9IG5ldyBKb2Ioe1xuICAgICAgICAgICAgICAgICAgICBhcmd2LFxuICAgICAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGpvYkRhdGEsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG1hdHJpeEpvYk5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGJhc2VOYW1lOiBqb2JOYW1lLFxuICAgICAgICAgICAgICAgICAgICBnbG9iYWxWYXJpYWJsZXM6IGdpdGxhYkRhdGEudmFyaWFibGVzLFxuICAgICAgICAgICAgICAgICAgICBwaXBlbGluZUlpZDogcGlwZWxpbmVJaWQsXG4gICAgICAgICAgICAgICAgICAgIHByZWRlZmluZWRWYXJpYWJsZXMsXG4gICAgICAgICAgICAgICAgICAgIGdpdERhdGEsXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlc0Zyb21GaWxlcyxcbiAgICAgICAgICAgICAgICAgICAgbWF0cml4VmFyaWFibGVzOiBwYXJhbGxlbE1hdHJpeFZhcmlhYmxlcyxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUluZGV4OiBwYXJhbGxlbE1hdHJpeFZhcmlhYmxlcyAhPT0gbnVsbCA/IG5vZGVJbmRleCA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVzVG90YWw6IHBhcmFsbGVsTWF0cml4VmFyaWFibGVzTGlzdC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmRTdGFnZSA9IHRoaXMuc3RhZ2VzLmluY2x1ZGVzKGpvYi5zdGFnZSk7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KGZvdW5kU3RhZ2UsIGNoYWxrYHt5ZWxsb3cgc3RhZ2U6JHtqb2Iuc3RhZ2V9fSBub3QgZm91bmQgZm9yIHtibHVlQnJpZ2h0ICR7am9iLm5hbWV9fWApO1xuICAgICAgICAgICAgICAgIHRoaXMuam9icy5wdXNoKGpvYik7XG4gICAgICAgICAgICAgICAgbm9kZUluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCBzb21lIHBhZGRpbmcgc28gdGhhdCBqb2IgbG9ncyBhcmUgbmljZWx5IGFsaWduZWRcbiAgICAgICAgLy8gYWxsb3cgdXNlcnMgdG8gb3ZlcnJpZGUgdGhpcyBpbiBjYXNlIHRoZXkgaGF2ZSByZWFsbHkgbG9uZyBqb2IgbmFtZSAoc2VlICM4NDApXG4gICAgICAgIGlmICh0aGlzLmFyZ3YubWF4Sm9iTmFtZVBhZGRpbmcgIT09IG51bGwgJiYgdGhpcy5hcmd2Lm1heEpvYk5hbWVQYWRkaW5nIDw9IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2pvYk5hbWVQYWQgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5qb2JzLmZvckVhY2goKGpvYikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2pvYk5hbWVQYWQgPSBNYXRoLm1heChqb2IubmFtZS5sZW5ndGgsIHRoaXMuX2pvYk5hbWVQYWQgPz8gMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmFyZ3YubWF4Sm9iTmFtZVBhZGRpbmcgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9qb2JOYW1lUGFkID0gTWF0aC5taW4odGhpcy5hcmd2Lm1heEpvYk5hbWVQYWRkaW5nID8/IDAsIHRoaXMuX2pvYk5hbWVQYWQgPz8gMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgam9iTmFtZVBhZCBvbiBhbGwgam9ic1xuICAgICAgICB0aGlzLmpvYnMuZm9yRWFjaCgoam9iKSA9PiB7XG4gICAgICAgICAgICBqb2Iuam9iTmFtZVBhZCA9IHRoaXMuam9iTmFtZVBhZDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gR2VuZXJhdGUgcHJvZHVjZXJzIGZvciBlYWNoIGpvYlxuICAgICAgICB0aGlzLmpvYnMuZm9yRWFjaCgoam9iKSA9PiB7XG4gICAgICAgICAgICBqb2IucHJvZHVjZXJzID0gUHJvZHVjZXJzLmluaXQodGhpcy5qb2JzLCB0aGlzLnN0YWdlcywgam9iKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jIGxvYWRZYW1sIChmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgeW1sUGF0aCA9IGAke2ZpbGVQYXRofWA7XG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh5bWxQYXRoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsZUNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShgJHtmaWxlUGF0aH1gLCBcInV0ZjhcIik7XG4gICAgICAgIGNvbnN0IGZpbGVTcGxpdCA9IGZpbGVDb250ZW50LnNwbGl0KC9cXHI/XFxuL2cpO1xuICAgICAgICBjb25zdCBmaWxlU3BsaXRDbG9uZSA9IGZpbGVTcGxpdC5zbGljZSgpO1xuXG4gICAgICAgIGxldCBpbnRlcmFjdGl2ZU1hdGNoID0gbnVsbDtcbiAgICAgICAgbGV0IGRlc2NyaXB0aW9uTWF0Y2ggPSBudWxsO1xuICAgICAgICBsZXQgaW5qZWN0U1NIQWdlbnQgPSBudWxsO1xuICAgICAgICBsZXQgbm9BcnRpZmFjdHNUb1NvdXJjZU1hdGNoID0gbnVsbDtcbiAgICAgICAgbGV0IGluZGV4ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGZpbGVTcGxpdCkge1xuICAgICAgICAgICAgaW50ZXJhY3RpdmVNYXRjaCA9ICFpbnRlcmFjdGl2ZU1hdGNoID8gLyNcXHM/QFxccz9bSWldbnRlcmFjdGl2ZS8uZXhlYyhsaW5lKSA6IGludGVyYWN0aXZlTWF0Y2g7XG4gICAgICAgICAgICBpbmplY3RTU0hBZ2VudCA9ICFpbmplY3RTU0hBZ2VudCA/IC8jXFxzP0BcXHM/W0lpXW5qZWN0U1NIQWdlbnQvLmV4ZWMobGluZSkgOiBpbmplY3RTU0hBZ2VudDtcbiAgICAgICAgICAgIG5vQXJ0aWZhY3RzVG9Tb3VyY2VNYXRjaCA9ICFub0FydGlmYWN0c1RvU291cmNlTWF0Y2ggPyAvI1xccz9AXFxzP05vQXJ0aWZhY3RzVG9Tb3VyY2UvaS5leGVjKGxpbmUpIDogbm9BcnRpZmFjdHNUb1NvdXJjZU1hdGNoO1xuICAgICAgICAgICAgZGVzY3JpcHRpb25NYXRjaCA9ICFkZXNjcmlwdGlvbk1hdGNoID8gLyNcXHM/QFxccz9bRGRdZXNjcmlwdGlvbiAoPzxkZXNjcmlwdGlvbj4uKikvLmV4ZWMobGluZSkgOiBkZXNjcmlwdGlvbk1hdGNoO1xuXG4gICAgICAgICAgICBjb25zdCBqb2JNYXRjaCA9IC9cXHc6Ly5leGVjKGxpbmUpO1xuICAgICAgICAgICAgaWYgKGpvYk1hdGNoICYmIChpbnRlcmFjdGl2ZU1hdGNoIHx8IGRlc2NyaXB0aW9uTWF0Y2ggfHwgaW5qZWN0U1NIQWdlbnQgfHwgbm9BcnRpZmFjdHNUb1NvdXJjZU1hdGNoKSkge1xuICAgICAgICAgICAgICAgIGlmIChpbnRlcmFjdGl2ZU1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVTcGxpdENsb25lLnNwbGljZShpbmRleCArIDEsIDAsIFwiICBpbnRlcmFjdGl2ZTogdHJ1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGluamVjdFNTSEFnZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVTcGxpdENsb25lLnNwbGljZShpbmRleCArIDEsIDAsIFwiICBpbmplY3RTU0hBZ2VudDogdHJ1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5vQXJ0aWZhY3RzVG9Tb3VyY2VNYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICBmaWxlU3BsaXRDbG9uZS5zcGxpY2UoaW5kZXggKyAxLCAwLCBcIiAgYXJ0aWZhY3RzVG9Tb3VyY2U6IGZhbHNlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRpb25NYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICBmaWxlU3BsaXRDbG9uZS5zcGxpY2UoaW5kZXggKyAxLCAwLCBgICBkZXNjcmlwdGlvbjogJHtkZXNjcmlwdGlvbk1hdGNoPy5ncm91cHM/LmRlc2NyaXB0aW9uID8/IFwiXCJ9YCk7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGludGVyYWN0aXZlTWF0Y2ggPSBudWxsO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uTWF0Y2ggPSBudWxsO1xuICAgICAgICAgICAgICAgIGluamVjdFNTSEFnZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBub0FydGlmYWN0c1RvU291cmNlTWF0Y2ggPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZVR5cGUgPSBuZXcgeWFtbC5UeXBlKFwiIXJlZmVyZW5jZVwiLCB7XG4gICAgICAgICAgICBraW5kOiBcInNlcXVlbmNlXCIsXG4gICAgICAgICAgICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtyZWZlcmVuY2VEYXRhOiBkYXRhfTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzY2hlbWEgPSB5YW1sLkRFRkFVTFRfU0NIRU1BLmV4dGVuZChbcmVmZXJlbmNlVHlwZV0pO1xuICAgICAgICByZXR1cm4geWFtbC5sb2FkKGZpbGVTcGxpdENsb25lLmpvaW4oXCJcXG5cIiksIHtzY2hlbWF9KSB8fCB7fTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -11,7 +11,7 @@ function init({ gitData, argv }) {
|
|
|
11
11
|
GITLAB_USER_EMAIL: gitData.user["GITLAB_USER_EMAIL"],
|
|
12
12
|
GITLAB_USER_NAME: gitData.user["GITLAB_USER_NAME"],
|
|
13
13
|
GITLAB_USER_ID: gitData.user["GITLAB_USER_ID"],
|
|
14
|
-
CI_COMMIT_SHORT_SHA: gitData.commit.
|
|
14
|
+
CI_COMMIT_SHORT_SHA: gitData.commit.SHA.slice(0, 8), // Changes
|
|
15
15
|
CI_COMMIT_SHA: gitData.commit.SHA,
|
|
16
16
|
CI_PROJECT_NAME: gitData.remote.project,
|
|
17
17
|
CI_PROJECT_TITLE: `${(0, camelcase_1.default)(gitData.remote.project)}`,
|
|
@@ -21,12 +21,13 @@ function init({ gitData, argv }) {
|
|
|
21
21
|
CI_PROJECT_VISIBILITY: "internal",
|
|
22
22
|
CI_PROJECT_ID: "1217",
|
|
23
23
|
CI_COMMIT_REF_PROTECTED: "false",
|
|
24
|
-
CI_COMMIT_BRANCH: gitData.commit.REF_NAME,
|
|
25
|
-
CI_COMMIT_REF_NAME: gitData.commit.REF_NAME,
|
|
24
|
+
CI_COMMIT_BRANCH: gitData.commit.REF_NAME, // Not available in merge request or tag pipelines
|
|
25
|
+
CI_COMMIT_REF_NAME: gitData.commit.REF_NAME, // Tag or branch name
|
|
26
26
|
CI_COMMIT_REF_SLUG: gitData.commit.REF_NAME.replace(/[^a-z\d]+/ig, "-").replace(/^-/, "").slice(0, 63).replace(/-$/, "").toLowerCase(),
|
|
27
|
-
CI_COMMIT_TITLE: "Commit Title",
|
|
28
|
-
CI_COMMIT_MESSAGE: "Commit Title\nMore commit text",
|
|
27
|
+
CI_COMMIT_TITLE: "Commit Title", // First line of commit message.
|
|
28
|
+
CI_COMMIT_MESSAGE: "Commit Title\nMore commit text", // Full commit message
|
|
29
29
|
CI_COMMIT_DESCRIPTION: "More commit text",
|
|
30
|
+
CI_DEFAULT_BRANCH: gitData.remote.defaultBranch,
|
|
30
31
|
CI_PIPELINE_SOURCE: "push",
|
|
31
32
|
CI_SERVER_HOST: `${gitData.remote.host}`,
|
|
32
33
|
CI_SERVER_PORT: `${gitData.remote.port}`,
|
|
@@ -43,4 +44,4 @@ function init({ gitData, argv }) {
|
|
|
43
44
|
return predefinedVariables;
|
|
44
45
|
}
|
|
45
46
|
exports.init = init;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGVmaW5lZC12YXJpYWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVkZWZpbmVkLXZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBa0M7QUFRbEMsU0FBZ0IsSUFBSSxDQUFFLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBMEI7SUFDMUQsTUFBTSxtQkFBbUIsR0FBNEI7UUFDakQsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUNwRCxpQkFBaUIsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3BELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDbEQsY0FBYyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxVQUFVO1FBQy9ELGFBQWEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUc7UUFDakMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTztRQUN2QyxnQkFBZ0IsRUFBRSxHQUFHLElBQUEsbUJBQVMsRUFBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3hELGVBQWUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ3BFLG9CQUFvQixFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUM3RixvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO1FBQy9DLHFCQUFxQixFQUFFLFVBQVU7UUFDakMsYUFBYSxFQUFFLE1BQU07UUFDckIsdUJBQXVCLEVBQUUsT0FBTztRQUNoQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxrREFBa0Q7UUFDN0Ysa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUscUJBQXFCO1FBQ2xFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFO1FBQ3RJLGVBQWUsRUFBRSxjQUFjLEVBQUUsZ0NBQWdDO1FBQ2pFLGlCQUFpQixFQUFFLGdDQUFnQyxFQUFFLHNCQUFzQjtRQUMzRSxxQkFBcUIsRUFBRSxrQkFBa0I7UUFDekMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhO1FBQy9DLGtCQUFrQixFQUFFLE1BQU07UUFDMUIsY0FBYyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDeEMsY0FBYyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDeEMsYUFBYSxFQUFFLFdBQVcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU07UUFDbkQsa0JBQWtCLEVBQUUsT0FBTztRQUMzQixhQUFhLEVBQUUsV0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUztRQUN0RCxjQUFjLEVBQUUsV0FBVyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNsRyxTQUFTLEVBQUUsT0FBTztLQUNyQixDQUFDO0lBRUYsc0RBQXNEO0lBQ3RELEtBQUssTUFBTSxhQUFhLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE9BQU8sbUJBQW1CLENBQUM7QUFDL0IsQ0FBQztBQXZDRCxvQkF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2FtZWxDYXNlIGZyb20gXCJjYW1lbGNhc2VcIjtcbmltcG9ydCB7R2l0RGF0YX0gZnJvbSBcIi4vZ2l0LWRhdGFcIjtcblxudHlwZSBQcmVkZWZpbmVkVmFyaWFibGVzT3B0cyA9IHtcbiAgICBnaXREYXRhOiBHaXREYXRhO1xuICAgIGFyZ3Y6IHt1bnNldFZhcmlhYmxlczogc3RyaW5nW119O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXQgKHtnaXREYXRhLCBhcmd2fTogUHJlZGVmaW5lZFZhcmlhYmxlc09wdHMpOiB7W25hbWU6IHN0cmluZ106IHN0cmluZ30ge1xuICAgIGNvbnN0IHByZWRlZmluZWRWYXJpYWJsZXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgICAgICBHSVRMQUJfVVNFUl9MT0dJTjogZ2l0RGF0YS51c2VyW1wiR0lUTEFCX1VTRVJfTE9HSU5cIl0sXG4gICAgICAgIEdJVExBQl9VU0VSX0VNQUlMOiBnaXREYXRhLnVzZXJbXCJHSVRMQUJfVVNFUl9FTUFJTFwiXSxcbiAgICAgICAgR0lUTEFCX1VTRVJfTkFNRTogZ2l0RGF0YS51c2VyW1wiR0lUTEFCX1VTRVJfTkFNRVwiXSxcbiAgICAgICAgR0lUTEFCX1VTRVJfSUQ6IGdpdERhdGEudXNlcltcIkdJVExBQl9VU0VSX0lEXCJdLFxuICAgICAgICBDSV9DT01NSVRfU0hPUlRfU0hBOiBnaXREYXRhLmNvbW1pdC5TSEEuc2xpY2UoMCwgOCksIC8vIENoYW5nZXNcbiAgICAgICAgQ0lfQ09NTUlUX1NIQTogZ2l0RGF0YS5jb21taXQuU0hBLFxuICAgICAgICBDSV9QUk9KRUNUX05BTUU6IGdpdERhdGEucmVtb3RlLnByb2plY3QsXG4gICAgICAgIENJX1BST0pFQ1RfVElUTEU6IGAke2NhbWVsQ2FzZShnaXREYXRhLnJlbW90ZS5wcm9qZWN0KX1gLFxuICAgICAgICBDSV9QUk9KRUNUX1BBVEg6IGAke2dpdERhdGEucmVtb3RlLmdyb3VwfS8ke2dpdERhdGEucmVtb3RlLnByb2plY3R9YCxcbiAgICAgICAgQ0lfUFJPSkVDVF9QQVRIX1NMVUc6IGAke2dpdERhdGEucmVtb3RlLmdyb3VwLnJlcGxhY2UoL1xcLy9nLCBcIi1cIil9LSR7Z2l0RGF0YS5yZW1vdGUucHJvamVjdH1gLFxuICAgICAgICBDSV9QUk9KRUNUX05BTUVTUEFDRTogYCR7Z2l0RGF0YS5yZW1vdGUuZ3JvdXB9YCxcbiAgICAgICAgQ0lfUFJPSkVDVF9WSVNJQklMSVRZOiBcImludGVybmFsXCIsXG4gICAgICAgIENJX1BST0pFQ1RfSUQ6IFwiMTIxN1wiLFxuICAgICAgICBDSV9DT01NSVRfUkVGX1BST1RFQ1RFRDogXCJmYWxzZVwiLFxuICAgICAgICBDSV9DT01NSVRfQlJBTkNIOiBnaXREYXRhLmNvbW1pdC5SRUZfTkFNRSwgLy8gTm90IGF2YWlsYWJsZSBpbiBtZXJnZSByZXF1ZXN0IG9yIHRhZyBwaXBlbGluZXNcbiAgICAgICAgQ0lfQ09NTUlUX1JFRl9OQU1FOiBnaXREYXRhLmNvbW1pdC5SRUZfTkFNRSwgLy8gVGFnIG9yIGJyYW5jaCBuYW1lXG4gICAgICAgIENJX0NPTU1JVF9SRUZfU0xVRzogZ2l0RGF0YS5jb21taXQuUkVGX05BTUUucmVwbGFjZSgvW15hLXpcXGRdKy9pZywgXCItXCIpLnJlcGxhY2UoL14tLywgXCJcIikuc2xpY2UoMCwgNjMpLnJlcGxhY2UoLy0kLywgXCJcIikudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgQ0lfQ09NTUlUX1RJVExFOiBcIkNvbW1pdCBUaXRsZVwiLCAvLyBGaXJzdCBsaW5lIG9mIGNvbW1pdCBtZXNzYWdlLlxuICAgICAgICBDSV9DT01NSVRfTUVTU0FHRTogXCJDb21taXQgVGl0bGVcXG5Nb3JlIGNvbW1pdCB0ZXh0XCIsIC8vIEZ1bGwgY29tbWl0IG1lc3NhZ2VcbiAgICAgICAgQ0lfQ09NTUlUX0RFU0NSSVBUSU9OOiBcIk1vcmUgY29tbWl0IHRleHRcIixcbiAgICAgICAgQ0lfREVGQVVMVF9CUkFOQ0g6IGdpdERhdGEucmVtb3RlLmRlZmF1bHRCcmFuY2gsXG4gICAgICAgIENJX1BJUEVMSU5FX1NPVVJDRTogXCJwdXNoXCIsXG4gICAgICAgIENJX1NFUlZFUl9IT1NUOiBgJHtnaXREYXRhLnJlbW90ZS5ob3N0fWAsXG4gICAgICAgIENJX1NFUlZFUl9QT1JUOiBgJHtnaXREYXRhLnJlbW90ZS5wb3J0fWAsXG4gICAgICAgIENJX1NFUlZFUl9VUkw6IGBodHRwczovLyR7Z2l0RGF0YS5yZW1vdGUuaG9zdH06NDQzYCxcbiAgICAgICAgQ0lfU0VSVkVSX1BST1RPQ09MOiBcImh0dHBzXCIsXG4gICAgICAgIENJX0FQSV9WNF9VUkw6IGBodHRwczovLyR7Z2l0RGF0YS5yZW1vdGUuaG9zdH0vYXBpL3Y0YCxcbiAgICAgICAgQ0lfUFJPSkVDVF9VUkw6IGBodHRwczovLyR7Z2l0RGF0YS5yZW1vdGUuaG9zdH0vJHtnaXREYXRhLnJlbW90ZS5ncm91cH0vJHtnaXREYXRhLnJlbW90ZS5wcm9qZWN0fWAsXG4gICAgICAgIEdJVExBQl9DSTogXCJmYWxzZVwiLFxuICAgIH07XG5cbiAgICAvLyBEZWxldGUgdmFyaWFibGVzIHRoZSB1c2VyIGludGVudGlvbmFsbHkgd2FudHMgdW5zZXRcbiAgICBmb3IgKGNvbnN0IHVuc2V0VmFyaWFibGUgb2YgYXJndi51bnNldFZhcmlhYmxlcykge1xuICAgICAgICBkZWxldGUgcHJlZGVmaW5lZFZhcmlhYmxlc1t1bnNldFZhcmlhYmxlXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJlZGVmaW5lZFZhcmlhYmxlcztcbn1cbiJdfQ==
|
package/src/producers.js
CHANGED
|
@@ -43,4 +43,4 @@ class Producers {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
exports.Producers = Producers;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJvZHVjZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUE4QjtBQUc5QixNQUFhLFNBQVM7SUFFbEIsTUFBTSxDQUFDLElBQUksQ0FBRSxJQUF3QixFQUFFLE1BQXlCLEVBQUUsR0FBUTtRQUN0RSxNQUFNLFdBQVcsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUUzQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxPQUFPLElBQUksYUFBSyxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0UsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQztRQUNELENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDMUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLENBQUM7WUFDdkUsSUFBSSxZQUFZO2dCQUFFLE9BQU87WUFDekIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUFFLE9BQU87WUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQzFCLElBQUksSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTztZQUN6QixXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUU1QixLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJO2dCQUFFLFNBQVM7WUFDMUMsSUFBSSxTQUFTLENBQUMsSUFBSSxJQUFJLE9BQU87Z0JBQUUsU0FBUztZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7Z0JBQUUsU0FBUztZQUN2RixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxFQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksSUFBSSxFQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBRUo7QUFwQ0QsOEJBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVdGlsc30gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7Sm9ifSBmcm9tIFwiLi9qb2JcIjtcblxuZXhwb3J0IGNsYXNzIFByb2R1Y2VycyB7XG5cbiAgICBzdGF0aWMgaW5pdCAoam9iczogUmVhZG9ubHlBcnJheTxKb2I+LCBzdGFnZXM6IHJlYWRvbmx5IHN0cmluZ1tdLCBqb2I6IEpvYikge1xuICAgICAgICBjb25zdCBwcm9kdWNlclNldDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cbiAgICAgICAgaWYgKGpvYi5uZWVkcyAmJiBqb2IubmVlZHMubGVuZ3RoID09PSAwKSByZXR1cm4gW107XG4gICAgICAgIGlmICgham9iLm5lZWRzICYmICFqb2IuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGpvYk5hbWUgb2YgVXRpbHMuZ2V0Sm9iTmFtZXNGcm9tUHJldmlvdXNTdGFnZXMoam9icywgc3RhZ2VzLCBqb2IpKSB7XG4gICAgICAgICAgICAgICAgcHJvZHVjZXJTZXQuYWRkKGpvYk5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIChqb2IuZGVwZW5kZW5jaWVzID8/IFtdKS5mb3JFYWNoKGRlcGVuZGVuY3kgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm91bmRJbk5lZWRzID0gKGpvYi5uZWVkcyA/PyBbXSkuZmluZChuID0+IG4uam9iID09PSBkZXBlbmRlbmN5KTtcbiAgICAgICAgICAgIGlmIChmb3VuZEluTmVlZHMpIHJldHVybjtcbiAgICAgICAgICAgIHByb2R1Y2VyU2V0LmFkZChkZXBlbmRlbmN5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIChqb2IubmVlZHMgPz8gW10pLmZvckVhY2gobmVlZCA9PiB7XG4gICAgICAgICAgICBpZiAoIW5lZWQuYXJ0aWZhY3RzKSByZXR1cm47XG4gICAgICAgICAgICBpZiAobmVlZC5waXBlbGluZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKG5lZWQucHJvamVjdCkgcmV0dXJuO1xuICAgICAgICAgICAgcHJvZHVjZXJTZXQuYWRkKG5lZWQuam9iKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcHJvZHVjZXJzOiBKb2JbXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgcG90ZW50aWFsIG9mIGpvYnMpIHtcbiAgICAgICAgICAgIGlmIChwb3RlbnRpYWwuYXJ0aWZhY3RzID09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKHBvdGVudGlhbC53aGVuID09IFwibmV2ZXJcIikgY29udGludWU7XG4gICAgICAgICAgICBpZiAoIXByb2R1Y2VyU2V0Lmhhcyhwb3RlbnRpYWwubmFtZSkgJiYgIXByb2R1Y2VyU2V0Lmhhcyhwb3RlbnRpYWwuYmFzZU5hbWUpKSBjb250aW51ZTtcbiAgICAgICAgICAgIHByb2R1Y2Vycy5wdXNoKHBvdGVudGlhbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHByb2R1Y2Vycy5tYXAocHJvZHVjZXIgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtuYW1lOiBwcm9kdWNlci5uYW1lLCBkb3RlbnY6IHByb2R1Y2VyPy5hcnRpZmFjdHM/LnJlcG9ydHM/LmRvdGVudiA/PyBudWxsfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG59XG4iXX0=
|
package/src/state.js
CHANGED
|
@@ -46,4 +46,4 @@ const incrementPipelineIid = async (cwd, stateDir) => {
|
|
|
46
46
|
await fs.outputFile(stateFile, `---\n${yaml.dump(ymlData)}`);
|
|
47
47
|
};
|
|
48
48
|
exports.incrementPipelineIid = incrementPipelineIid;
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUErQjtBQUMvQiw4Q0FBZ0M7QUFFaEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLFNBQWlCLEVBQWdCLEVBQUU7SUFDM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQzNELE1BQU0sU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLFFBQVEsWUFBWSxDQUFDO0lBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlDLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUM7QUFVTSx3Q0FBYztBQVJ0QixNQUFNLG9CQUFvQixHQUFHLEtBQUssRUFBRSxHQUFXLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ2pFLE1BQU0sU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLFFBQVEsWUFBWSxDQUFDO0lBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUVzQixvREFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHlhbWwgZnJvbSBcImpzLXlhbWxcIjtcblxuY29uc3QgbG9hZFN0YXRlWU1MID0gYXN5bmMgKHN0YXRlRmlsZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoc3RhdGVGaWxlKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0IHN0YXRlRmlsZUNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShzdGF0ZUZpbGUsIFwidXRmOFwiKTtcbiAgICByZXR1cm4geWFtbC5sb2FkKHN0YXRlRmlsZUNvbnRlbnQpIHx8IHt9O1xufTtcblxuY29uc3QgZ2V0UGlwZWxpbmVJaWQgPSBhc3luYyAoY3dkOiBzdHJpbmcsIHN0YXRlRGlyOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBzdGF0ZUZpbGUgPSBgJHtjd2R9LyR7c3RhdGVEaXJ9L3N0YXRlLnltbGA7XG4gICAgY29uc3QgeW1sRGF0YSA9IGF3YWl0IGxvYWRTdGF0ZVlNTChzdGF0ZUZpbGUpO1xuXG4gICAgcmV0dXJuIHltbERhdGFbXCJwaXBlbGluZUlpZFwiXSA/IHltbERhdGFbXCJwaXBlbGluZUlpZFwiXSA6IDA7XG59O1xuXG5jb25zdCBpbmNyZW1lbnRQaXBlbGluZUlpZCA9IGFzeW5jIChjd2Q6IHN0cmluZywgc3RhdGVEaXI6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHN0YXRlRmlsZSA9IGAke2N3ZH0vJHtzdGF0ZURpcn0vc3RhdGUueW1sYDtcbiAgICBjb25zdCB5bWxEYXRhID0gYXdhaXQgbG9hZFN0YXRlWU1MKHN0YXRlRmlsZSk7XG5cbiAgICB5bWxEYXRhW1wicGlwZWxpbmVJaWRcIl0gPSB5bWxEYXRhW1wicGlwZWxpbmVJaWRcIl0gIT0gbnVsbCA/IHltbERhdGFbXCJwaXBlbGluZUlpZFwiXSArIDEgOiAwO1xuICAgIGF3YWl0IGZzLm91dHB1dEZpbGUoc3RhdGVGaWxlLCBgLS0tXFxuJHt5YW1sLmR1bXAoeW1sRGF0YSl9YCk7XG59O1xuXG5leHBvcnQge2dldFBpcGVsaW5lSWlkLCBpbmNyZW1lbnRQaXBlbGluZUlpZH07XG4iXX0=
|
package/src/utils.js
CHANGED
|
@@ -232,6 +232,9 @@ class Utils {
|
|
|
232
232
|
const result = await Promise.all(promises);
|
|
233
233
|
return (0, checksum_1.default)(result.join(""));
|
|
234
234
|
}
|
|
235
|
+
static isObject(v) {
|
|
236
|
+
return Object.getPrototypeOf(v) === Object.prototype;
|
|
237
|
+
}
|
|
235
238
|
}
|
|
236
239
|
exports.Utils = Utils;
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQiwrQkFBMEI7QUFDMUIsNkNBQStCO0FBQy9CLHdEQUFnQztBQUNoQywwREFBa0M7QUFDbEMsa0RBQTBCO0FBQzFCLG9EQUE0QjtBQUU1QixvREFBNEI7QUFtQjVCLE1BQWEsS0FBSztJQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUUsV0FBbUIsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRztRQUNwRSxPQUFPLElBQUEsZUFBSyxFQUFDLFdBQVcsRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUUsT0FBaUIsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRztRQUNuRSxPQUFPLElBQUEsZUFBSyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUUsR0FBVztRQUNyQixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBRSxPQUFlO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6QyxP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QUNyQyxDQUFDO0NBRUo7QUFuT0Qsc0JBbU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHtKb2J9IGZyb20gXCIuL2pvYlwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgY2hlY2tzdW0gZnJvbSBcImNoZWNrc3VtXCI7XG5pbXBvcnQgYmFzZTY0dXJsIGZyb20gXCJiYXNlNjR1cmxcIjtcbmltcG9ydCBleGVjYSBmcm9tIFwiZXhlY2FcIjtcbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiO1xuaW1wb3J0IHtDSUNEVmFyaWFibGV9IGZyb20gXCIuL3ZhcmlhYmxlcy1mcm9tLWZpbGVzXCI7XG5pbXBvcnQgZ2xvYmJ5IGZyb20gXCJnbG9iYnlcIjtcblxudHlwZSBSdWxlUmVzdWx0T3B0ID0ge1xuICAgIGN3ZDogc3RyaW5nO1xuICAgIHJ1bGVzOiB7XG4gICAgICAgIGlmPzogc3RyaW5nO1xuICAgICAgICB3aGVuPzogc3RyaW5nO1xuICAgICAgICBleGlzdHM/OiBzdHJpbmdbXTtcbiAgICAgICAgYWxsb3dfZmFpbHVyZT86IGJvb2xlYW47XG4gICAgICAgIHZhcmlhYmxlcz86IHtbbmFtZTogc3RyaW5nXTogc3RyaW5nfTtcbiAgICB9W107XG4gICAgdmFyaWFibGVzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcbn07XG5cbnR5cGUgRXhwYW5kV2l0aCA9IHtcbiAgICB1bmVzY2FwZTogc3RyaW5nO1xuICAgIHZhcmlhYmxlOiAobmFtZTogc3RyaW5nKSA9PiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY2xhc3MgVXRpbHMge1xuICAgIHN0YXRpYyBiYXNoIChzaGVsbFNjcmlwdDogc3RyaW5nLCBjd2QgPSBwcm9jZXNzLmN3ZCgpLCBlbnYgPSBwcm9jZXNzLmVudik6IFByb21pc2U8e3N0ZG91dDogc3RyaW5nOyBzdGRlcnI6IHN0cmluZzsgZXhpdENvZGU6IG51bWJlcn0+IHtcbiAgICAgICAgcmV0dXJuIGV4ZWNhKHNoZWxsU2NyaXB0LCB7c2hlbGw6IFwiYmFzaFwiLCBjd2QsIGVudn0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBzcGF3biAoY21kQXJnczogc3RyaW5nW10sIGN3ZCA9IHByb2Nlc3MuY3dkKCksIGVudiA9IHByb2Nlc3MuZW52KTogUHJvbWlzZTx7c3Rkb3V0OiBzdHJpbmc7IHN0ZGVycjogc3RyaW5nfT4ge1xuICAgICAgICByZXR1cm4gZXhlY2EoY21kQXJnc1swXSwgY21kQXJncy5zbGljZSgxKSwge2N3ZCwgZW52fSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGZzVXJsICh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB1cmwucmVwbGFjZSgvXmh0dHBzOlxcL1xcLy9nLCBcIlwiKS5yZXBsYWNlKC9eaHR0cDpcXC9cXC8vZywgXCJcIik7XG4gICAgfVxuXG4gICAgc3RhdGljIHNhZmVEb2NrZXJTdHJpbmcgKGpvYk5hbWU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gam9iTmFtZS5yZXBsYWNlKC9bXlxcdy1dKy9nLCAobWF0Y2gpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBiYXNlNjR1cmwuZW5jb2RlKG1hdGNoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvckVhY2hSZWFsSm9iIChnaXRsYWJEYXRhOiBhbnksIGNhbGxiYWNrOiAoam9iTmFtZTogc3RyaW5nLCBqb2JEYXRhOiBhbnkpID0+IHZvaWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBbam9iTmFtZSwgam9iRGF0YV0gb2YgT2JqZWN0LmVudHJpZXM8YW55PihnaXRsYWJEYXRhKSkge1xuICAgICAgICAgICAgaWYgKEpvYi5pbGxlZ2FsSm9iTmFtZXMuaGFzKGpvYk5hbWUpIHx8IGpvYk5hbWVbMF0uc3RhcnRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhbGxiYWNrKGpvYk5hbWUsIGpvYkRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEpvYk5hbWVzRnJvbVByZXZpb3VzU3RhZ2VzIChqb2JzOiBSZWFkb25seUFycmF5PEpvYj4sIHN0YWdlczogcmVhZG9ubHkgc3RyaW5nW10sIGN1cnJlbnRKb2I6IEpvYikge1xuICAgICAgICBjb25zdCBqb2JOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY29uc3QgY3VycmVudFN0YWdlSW5kZXggPSBzdGFnZXMuaW5kZXhPZihjdXJyZW50Sm9iLnN0YWdlKTtcbiAgICAgICAgam9icy5mb3JFYWNoKGpvYiA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGFnZUluZGV4ID0gc3RhZ2VzLmluZGV4T2Yoam9iLnN0YWdlKTtcbiAgICAgICAgICAgIGlmIChzdGFnZUluZGV4IDwgY3VycmVudFN0YWdlSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBqb2JOYW1lcy5wdXNoKGpvYi5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBqb2JOYW1lcztcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgZ2V0Q292ZXJhZ2VQZXJjZW50IChjd2Q6IHN0cmluZywgc3RhdGVEaXI6IHN0cmluZywgY292ZXJhZ2VSZWdleDogc3RyaW5nLCBqb2JOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKGAke2N3ZH0vJHtzdGF0ZURpcn0vb3V0cHV0LyR7am9iTmFtZX0ubG9nYCwgXCJ1dGY4XCIpO1xuXG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChjb3ZlcmFnZVJlZ2V4LnJlcGxhY2UoL15cXC8vLCBcIlwiKS5yZXBsYWNlKC9cXC8kLywgXCJcIiksIFwiZ21cIik7XG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSBBcnJheS5mcm9tKGNvbnRlbnQubWF0Y2hBbGwocmVnZXgpKTtcbiAgICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID09PSAwKSByZXR1cm4gXCIwXCI7XG5cbiAgICAgICAgY29uc3QgbGFzdE1hdGNoID0gbWF0Y2hlc1ttYXRjaGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICBjb25zdCBkaWdpdHMgPSAvXFxkKyg/OlxcLlxcZCspPy8uZXhlYyhsYXN0TWF0Y2hbMV0gPz8gbGFzdE1hdGNoWzBdKTtcbiAgICAgICAgaWYgKCFkaWdpdHMpIHJldHVybiBcIjBcIjtcbiAgICAgICAgcmV0dXJuIGRpZ2l0c1swXSA/PyBcIjBcIjtcbiAgICB9XG5cbiAgICBzdGF0aWMgcHJpbnRKb2JOYW1lcyAoc3RyZWFtOiAodHh0OiBzdHJpbmcpID0+IHZvaWQsIGpvYjoge25hbWU6IHN0cmluZ30sIGk6IG51bWJlciwgYXJyOiB7bmFtZTogc3RyaW5nfVtdKSB7XG4gICAgICAgIGlmIChpID09PSBhcnIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgc3RyZWFtKGNoYWxrYHtibHVlQnJpZ2h0ICR7am9iLm5hbWV9fWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RyZWFtKGNoYWxrYHtibHVlQnJpZ2h0ICR7am9iLm5hbWV9fSwgYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBleHBhbmRUZXh0V2l0aCAodGV4dDogYW55LCBleHBhbmRXaXRoOiBFeHBhbmRXaXRoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGV4dCAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGV4dC5yZXBsYWNlKFxuICAgICAgICAgICAgLyhcXCRcXCQpfFxcJFxceyhbYS16QS1aX11cXHcqKX0/fFxcJChbYS16QS1aX11cXHcqKS9nLFxuICAgICAgICAgICAgKF9tYXRjaCwgZXNjYXBlLCB2YXIxLCB2YXIyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBlc2NhcGUgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGFuZFdpdGgudW5lc2NhcGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IHZhcjEgfHwgdmFyMjtcbiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KG5hbWUsIFwidW5leHBlY3RlZCB1bnNldCBjYXB0dXJlIGdyb3VwXCIpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBgJHtleHBhbmRXaXRoLnZhcmlhYmxlKG5hbWUpfWA7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwiXFxcIi9cIikgJiYgdmFsdWUuZW5kc1dpdGgoXCIvXFxcIlwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMSkuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZXhwYW5kVGV4dCAodGV4dDogYW55LCBlbnZzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSkge1xuICAgICAgICByZXR1cm4gdGhpcy5leHBhbmRUZXh0V2l0aCh0ZXh0LCB7XG4gICAgICAgICAgICB1bmVzY2FwZTogXCIkXCIsXG4gICAgICAgICAgICB2YXJpYWJsZTogKG5hbWUpID0+IGVudnNbbmFtZV0gPz8gXCJcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGV4cGFuZFZhcmlhYmxlcyAodmFyaWFibGVzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSkge1xuICAgICAgICBsZXQgZXhwYW5kZWRBbnlWYXJpYWJsZXMsIGkgPSAwO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICBhc3NlcnQoaSA8IDEwMCwgXCJSZWN1cnNpdmUgdmFyaWFibGUgZXhwYW5zaW9uIHJlYWNoZWQgMTAwIGl0ZXJhdGlvbnNcIik7XG4gICAgICAgICAgICBleHBhbmRlZEFueVZhcmlhYmxlcyA9IGZhbHNlO1xuICAgICAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudnNXaXRob3V0U2VsZiA9IHsuLi52YXJpYWJsZXN9O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnZzV2l0aG91dFNlbGZba107XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlICQkJ3MgYXJlIGNvbnZlcnRlZCB0byBzaW5nbGUgJCdzIG5vdywgdGhlbiB0aGUgbmV4dFxuICAgICAgICAgICAgICAgIC8vIGl0ZXJhdGlvbiwgdGhleSBtaWdodCBiZSBpbnRlcnByZXRlZCBhcyB2YXJpYWJsZXMsIGV2ZW5cbiAgICAgICAgICAgICAgICAvLyB0aG91Z2ggdGhleSB3ZXJlICpleHBsaWNpdGx5KiBlc2NhcGVkLiBUbyB3b3JrIGFyb3VuZCB0aGlzLFxuICAgICAgICAgICAgICAgIC8vIGxlYXZlIHRoZSAnJCQncyBhcyB0aGUgc2FtZSB2YWx1ZSwgdGhlbiBvbmx5IHVuZXNjYXBlIHRoZW0gYXRcbiAgICAgICAgICAgICAgICAvLyB0aGUgdmVyeSBlbmQuXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzW2tdID0gVXRpbHMuZXhwYW5kVGV4dFdpdGgodiwge1xuICAgICAgICAgICAgICAgICAgICB1bmVzY2FwZTogXCIkJFwiLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZTogKG5hbWUpID0+IGVudnNXaXRob3V0U2VsZltuYW1lXSA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGV4cGFuZGVkQW55VmFyaWFibGVzIHx8PSB2YXJpYWJsZXNba10gIT09IHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH0gd2hpbGUgKGV4cGFuZGVkQW55VmFyaWFibGVzKTtcblxuICAgICAgICAvLyBOb3cgdGhhdCByZWN1cnNpdmUgZXhwYW5zaW9uIGhhcyB0YWtlbiBwbGFjZSwgdW5lc2NhcGUgJCQncy5cbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xuICAgICAgICAgICAgdmFyaWFibGVzW2tdID0gVXRpbHMuZXhwYW5kVGV4dCh2LCB7fSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFyaWFibGVzO1xuICAgIH1cblxuICAgIHN0YXRpYyBmaW5kRW52TWF0Y2hlZFZhcmlhYmxlcyAodmFyaWFibGVzOiB7W25hbWU6IHN0cmluZ106IENJQ0RWYXJpYWJsZX0sIGZpbGVWYXJpYWJsZXNEaXI/OiBzdHJpbmcsIGVudmlyb25tZW50Pzoge25hbWU6IHN0cmluZ30pIHtcbiAgICAgICAgY29uc3QgZW52TWF0Y2hlZFZhcmlhYmxlczoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiB2LmVudmlyb25tZW50cykge1xuICAgICAgICAgICAgICAgIGlmIChlbnZpcm9ubWVudD8ubmFtZS5tYXRjaChlbnRyeS5yZWdleHApIHx8IGVudHJ5LnJlZ2V4cC5zb3VyY2UgPT09IFwiLipcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsZVZhcmlhYmxlc0RpciAhPSBudWxsICYmIHYudHlwZSA9PT0gXCJmaWxlXCIgJiYgIWVudHJ5LmZpbGVTb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudk1hdGNoZWRWYXJpYWJsZXNba10gPSBgJHtmaWxlVmFyaWFibGVzRGlyfS8ke2t9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZzLm1rZGlycFN5bmMoYCR7ZmlsZVZhcmlhYmxlc0Rpcn1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoYCR7ZmlsZVZhcmlhYmxlc0Rpcn0vJHtrfWAsIGVudHJ5LmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpbGVWYXJpYWJsZXNEaXIgIT0gbnVsbCAmJiB2LnR5cGUgPT09IFwiZmlsZVwiICYmIGVudHJ5LmZpbGVTb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudk1hdGNoZWRWYXJpYWJsZXNba10gPSBgJHtmaWxlVmFyaWFibGVzRGlyfS8ke2t9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZzLm1rZGlycFN5bmMoYCR7ZmlsZVZhcmlhYmxlc0Rpcn1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhlbnRyeS5maWxlU291cmNlLCBgJHtmaWxlVmFyaWFibGVzRGlyfS8ke2t9YCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnZNYXRjaGVkVmFyaWFibGVzW2tdID0gZW50cnkuY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudk1hdGNoZWRWYXJpYWJsZXM7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldFJ1bGVzUmVzdWx0IChvcHQ6IFJ1bGVSZXN1bHRPcHQpOiB7d2hlbjogc3RyaW5nOyBhbGxvd0ZhaWx1cmU6IGJvb2xlYW47IHZhcmlhYmxlcz86IHtbbmFtZTogc3RyaW5nXTogc3RyaW5nfX0ge1xuICAgICAgICBsZXQgd2hlbiA9IFwibmV2ZXJcIjtcbiAgICAgICAgbGV0IGFsbG93RmFpbHVyZSA9IGZhbHNlO1xuICAgICAgICBsZXQgcnVsZVZhcmlhYmxlOiB7W25hbWU6IHN0cmluZ106IHN0cmluZ30gfCB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBydWxlRXhpc3RzO1xuXG4gICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBvcHQucnVsZXMpIHtcbiAgICAgICAgICAgIGlmIChVdGlscy5ldmFsdWF0ZVJ1bGVJZihydWxlLmlmIHx8IFwidHJ1ZVwiLCBvcHQudmFyaWFibGVzKSkge1xuICAgICAgICAgICAgICAgIHdoZW4gPSBydWxlLndoZW4gPyBydWxlLndoZW4gOiBcIm9uX3N1Y2Nlc3NcIjtcbiAgICAgICAgICAgICAgICBhbGxvd0ZhaWx1cmUgPSBydWxlLmFsbG93X2ZhaWx1cmUgPz8gZmFsc2U7XG4gICAgICAgICAgICAgICAgcnVsZVZhcmlhYmxlID0gcnVsZS52YXJpYWJsZXM7XG4gICAgICAgICAgICAgICAgcnVsZUV4aXN0cyA9IHJ1bGUuZXhpc3RzO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVFeGlzdHMgJiYgIVV0aWxzLmV2YWx1ZGF0ZVJ1bGVFeGlzdChvcHQuY3dkLCBydWxlRXhpc3RzKSkge1xuICAgICAgICAgICAgICAgICAgICB3aGVuID0gXCJuZXZlclwiO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHt3aGVuLCBhbGxvd0ZhaWx1cmUsIHZhcmlhYmxlczogcnVsZVZhcmlhYmxlfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZXZhbHVhdGVSdWxlSWYgKHJ1bGVJZjogc3RyaW5nLCBlbnZzOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSkge1xuICAgICAgICBsZXQgZXZhbFN0ciA9IHJ1bGVJZjtcblxuICAgICAgICAvLyBFeHBhbmQgYWxsIHZhcmlhYmxlc1xuICAgICAgICBldmFsU3RyID0gdGhpcy5leHBhbmRUZXh0V2l0aChldmFsU3RyLCB7XG4gICAgICAgICAgICB1bmVzY2FwZTogSlNPTi5zdHJpbmdpZnkoXCIkXCIpLFxuICAgICAgICAgICAgdmFyaWFibGU6IChuYW1lKSA9PiBKU09OLnN0cmluZ2lmeShlbnZzW25hbWVdID8/IG51bGwpLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDb252ZXJ0ID1+IHRvIG1hdGNoIGZ1bmN0aW9uXG4gICAgICAgIGV2YWxTdHIgPSBldmFsU3RyLnJlcGxhY2UoL1xccyo9flxccyooXFwvLio/XFwvW2lnbXN1eV0qKSg/Olxcc3wkKS9nLCBcIi5tYXRjaCgkMSkgIT0gbnVsbFwiKTtcbiAgICAgICAgZXZhbFN0ciA9IGV2YWxTdHIucmVwbGFjZSgvXFxzKj1+XFxzKC4rPykoXFwpKj8pKD86XFxzfCQpL2csIFwiLm1hdGNoKG5ldyBSZWdFeHAoJDEpKSAhPSBudWxsJDJcIik7IC8vIFdpdGhvdXQgZm9yd2FyZCBzbGFzaGVzXG5cbiAgICAgICAgLy8gQ29udmVydCAhfiB0byBtYXRjaCBmdW5jdGlvblxuICAgICAgICBldmFsU3RyID0gZXZhbFN0ci5yZXBsYWNlKC9cXHMqIX5cXHMqKFxcLy4qP1xcL1tpZ21zdXldKikoPzpcXHN8JCkvZywgXCIubWF0Y2goJDEpID09IG51bGxcIik7XG4gICAgICAgIGV2YWxTdHIgPSBldmFsU3RyLnJlcGxhY2UoL1xccyohflxccyguKz8pKFxcKSo/KSg/Olxcc3wkKS9nLCBcIi5tYXRjaChuZXcgUmVnRXhwKCQxKSkgPT0gbnVsbCQyXCIpOyAvLyBXaXRob3V0IGZvcndhcmQgc2xhc2hlc1xuXG4gICAgICAgIC8vIENvbnZlcnQgYWxsIG51bGwubWF0Y2ggZnVuY3Rpb25zIHRvIGZhbHNlXG4gICAgICAgIGV2YWxTdHIgPSBldmFsU3RyLnJlcGxhY2UoL251bGwubWF0Y2hcXCguKz9cXCkgIT0gbnVsbC9nLCBcImZhbHNlXCIpO1xuICAgICAgICBldmFsU3RyID0gZXZhbFN0ci5yZXBsYWNlKC9udWxsLm1hdGNoXFwoLis/XFwpID09IG51bGwvZywgXCJmYWxzZVwiKTtcblxuICAgICAgICAvLyBub2luc3BlY3Rpb24gQmFkRXhwcmVzc2lvblN0YXRlbWVudEpTXG4gICAgICAgIHJldHVybiBldmFsKGBpZiAoJHtldmFsU3RyfSkgeyB0cnVlIH0gZWxzZSB7IGZhbHNlIH1gKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZXZhbHVkYXRlUnVsZUV4aXN0IChjd2Q6IHN0cmluZywgcnVsZUV4aXN0czogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgZm9yIChjb25zdCBwYXR0ZXJuIG9mIHJ1bGVFeGlzdHMpIHtcbiAgICAgICAgICAgIGlmIChnbG9iYnkuc3luYyhwYXR0ZXJuLCB7ZG90OiB0cnVlLCBjd2R9KS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyByc3luY1RyYWNrZWRGaWxlcyAoY3dkOiBzdHJpbmcsIHN0YXRlRGlyOiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKTogUHJvbWlzZTx7aHJkZWx0YXRpbWU6IFtudW1iZXIsIG51bWJlcl19PiB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBwcm9jZXNzLmhydGltZSgpO1xuICAgICAgICBhd2FpdCBmcy5ta2RpcnAoYCR7Y3dkfS8ke3N0YXRlRGlyfS9idWlsZHMvJHt0YXJnZXR9YCk7XG4gICAgICAgIGF3YWl0IFV0aWxzLmJhc2goYHJzeW5jIC1hIC0tZGVsZXRlLWV4Y2x1ZGVkIC0tZGVsZXRlIC0tZXhjbHVkZS1mcm9tPTwoZ2l0IGxzLWZpbGVzIC1vIC0tZGlyZWN0b3J5IHwgYXdrICd7cHJpbnQgXCIvXCIkMH0nKSAtLWV4Y2x1ZGUgJHtzdGF0ZURpcn0vIC4vICR7c3RhdGVEaXJ9L2J1aWxkcy8ke3RhcmdldH0vYCwgY3dkKTtcbiAgICAgICAgcmV0dXJuIHtocmRlbHRhdGltZTogcHJvY2Vzcy5ocnRpbWUodGltZSl9O1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBjaGVja3N1bUZpbGVzIChmaWxlczogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTxzdHJpbmc+W10gPSBbXTtcblxuICAgICAgICBmaWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgICBjaGVja3N1bS5maWxlKGZpbGUsIChlcnIsIGhhc2gpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoaGFzaCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrc3VtKHJlc3VsdC5qb2luKFwiXCIpKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQiwrQkFBMEI7QUFDMUIsNkNBQStCO0FBQy9CLHdEQUFnQztBQUNoQywwREFBa0M7QUFDbEMsa0RBQTBCO0FBQzFCLG9EQUE0QjtBQUU1QixvREFBNEI7QUFtQjVCLE1BQWEsS0FBSztJQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUUsV0FBbUIsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRztRQUNwRSxPQUFPLElBQUEsZUFBSyxFQUFDLFdBQVcsRUFBRSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUUsT0FBaUIsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRztRQUNuRSxPQUFPLElBQUEsZUFBSyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUUsR0FBVztRQUNyQixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBRSxPQUFlO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6QyxP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QUFDO29CQUN2QixDQUFDO29CQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFBLGtCQUFRLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFFLENBQU07UUFDbkIsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDekQsQ0FBQztDQUNKO0FBdE9ELHNCQXNPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7Sm9ifSBmcm9tIFwiLi9qb2JcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IGNoZWNrc3VtIGZyb20gXCJjaGVja3N1bVwiO1xuaW1wb3J0IGJhc2U2NHVybCBmcm9tIFwiYmFzZTY0dXJsXCI7XG5pbXBvcnQgZXhlY2EgZnJvbSBcImV4ZWNhXCI7XG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7Q0lDRFZhcmlhYmxlfSBmcm9tIFwiLi92YXJpYWJsZXMtZnJvbS1maWxlc1wiO1xuaW1wb3J0IGdsb2JieSBmcm9tIFwiZ2xvYmJ5XCI7XG5cbnR5cGUgUnVsZVJlc3VsdE9wdCA9IHtcbiAgICBjd2Q6IHN0cmluZztcbiAgICBydWxlczoge1xuICAgICAgICBpZj86IHN0cmluZztcbiAgICAgICAgd2hlbj86IHN0cmluZztcbiAgICAgICAgZXhpc3RzPzogc3RyaW5nW107XG4gICAgICAgIGFsbG93X2ZhaWx1cmU/OiBib29sZWFuO1xuICAgICAgICB2YXJpYWJsZXM/OiB7W25hbWU6IHN0cmluZ106IHN0cmluZ307XG4gICAgfVtdO1xuICAgIHZhcmlhYmxlczoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG59O1xuXG50eXBlIEV4cGFuZFdpdGggPSB7XG4gICAgdW5lc2NhcGU6IHN0cmluZztcbiAgICB2YXJpYWJsZTogKG5hbWU6IHN0cmluZykgPT4gc3RyaW5nO1xufTtcblxuZXhwb3J0IGNsYXNzIFV0aWxzIHtcbiAgICBzdGF0aWMgYmFzaCAoc2hlbGxTY3JpcHQ6IHN0cmluZywgY3dkID0gcHJvY2Vzcy5jd2QoKSwgZW52ID0gcHJvY2Vzcy5lbnYpOiBQcm9taXNlPHtzdGRvdXQ6IHN0cmluZzsgc3RkZXJyOiBzdHJpbmc7IGV4aXRDb2RlOiBudW1iZXJ9PiB7XG4gICAgICAgIHJldHVybiBleGVjYShzaGVsbFNjcmlwdCwge3NoZWxsOiBcImJhc2hcIiwgY3dkLCBlbnZ9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgc3Bhd24gKGNtZEFyZ3M6IHN0cmluZ1tdLCBjd2QgPSBwcm9jZXNzLmN3ZCgpLCBlbnYgPSBwcm9jZXNzLmVudik6IFByb21pc2U8e3N0ZG91dDogc3RyaW5nOyBzdGRlcnI6IHN0cmluZ30+IHtcbiAgICAgICAgcmV0dXJuIGV4ZWNhKGNtZEFyZ3NbMF0sIGNtZEFyZ3Muc2xpY2UoMSksIHtjd2QsIGVudn0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBmc1VybCAodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdXJsLnJlcGxhY2UoL15odHRwczpcXC9cXC8vZywgXCJcIikucmVwbGFjZSgvXmh0dHA6XFwvXFwvL2csIFwiXCIpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzYWZlRG9ja2VyU3RyaW5nIChqb2JOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIGpvYk5hbWUucmVwbGFjZSgvW15cXHctXSsvZywgKG1hdGNoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYmFzZTY0dXJsLmVuY29kZShtYXRjaCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBmb3JFYWNoUmVhbEpvYiAoZ2l0bGFiRGF0YTogYW55LCBjYWxsYmFjazogKGpvYk5hbWU6IHN0cmluZywgam9iRGF0YTogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgIGZvciAoY29uc3QgW2pvYk5hbWUsIGpvYkRhdGFdIG9mIE9iamVjdC5lbnRyaWVzPGFueT4oZ2l0bGFiRGF0YSkpIHtcbiAgICAgICAgICAgIGlmIChKb2IuaWxsZWdhbEpvYk5hbWVzLmhhcyhqb2JOYW1lKSB8fCBqb2JOYW1lWzBdLnN0YXJ0c1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYWxsYmFjayhqb2JOYW1lLCBqb2JEYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBnZXRKb2JOYW1lc0Zyb21QcmV2aW91c1N0YWdlcyAoam9iczogUmVhZG9ubHlBcnJheTxKb2I+LCBzdGFnZXM6IHJlYWRvbmx5IHN0cmluZ1tdLCBjdXJyZW50Sm9iOiBKb2IpIHtcbiAgICAgICAgY29uc3Qgam9iTmFtZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGFnZUluZGV4ID0gc3RhZ2VzLmluZGV4T2YoY3VycmVudEpvYi5zdGFnZSk7XG4gICAgICAgIGpvYnMuZm9yRWFjaChqb2IgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhZ2VJbmRleCA9IHN0YWdlcy5pbmRleE9mKGpvYi5zdGFnZSk7XG4gICAgICAgICAgICBpZiAoc3RhZ2VJbmRleCA8IGN1cnJlbnRTdGFnZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgam9iTmFtZXMucHVzaChqb2IubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gam9iTmFtZXM7XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jIGdldENvdmVyYWdlUGVyY2VudCAoY3dkOiBzdHJpbmcsIHN0YXRlRGlyOiBzdHJpbmcsIGNvdmVyYWdlUmVnZXg6IHN0cmluZywgam9iTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShgJHtjd2R9LyR7c3RhdGVEaXJ9L291dHB1dC8ke2pvYk5hbWV9LmxvZ2AsIFwidXRmOFwiKTtcblxuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoY292ZXJhZ2VSZWdleC5yZXBsYWNlKC9eXFwvLywgXCJcIikucmVwbGFjZSgvXFwvJC8sIFwiXCIpLCBcImdtXCIpO1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gQXJyYXkuZnJvbShjb250ZW50Lm1hdGNoQWxsKHJlZ2V4KSk7XG4gICAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiMFwiO1xuXG4gICAgICAgIGNvbnN0IGxhc3RNYXRjaCA9IG1hdGNoZXNbbWF0Y2hlcy5sZW5ndGggLSAxXTtcbiAgICAgICAgY29uc3QgZGlnaXRzID0gL1xcZCsoPzpcXC5cXGQrKT8vLmV4ZWMobGFzdE1hdGNoWzFdID8/IGxhc3RNYXRjaFswXSk7XG4gICAgICAgIGlmICghZGlnaXRzKSByZXR1cm4gXCIwXCI7XG4gICAgICAgIHJldHVybiBkaWdpdHNbMF0gPz8gXCIwXCI7XG4gICAgfVxuXG4gICAgc3RhdGljIHByaW50Sm9iTmFtZXMgKHN0cmVhbTogKHR4dDogc3RyaW5nKSA9PiB2b2lkLCBqb2I6IHtuYW1lOiBzdHJpbmd9LCBpOiBudW1iZXIsIGFycjoge25hbWU6IHN0cmluZ31bXSkge1xuICAgICAgICBpZiAoaSA9PT0gYXJyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHN0cmVhbShjaGFsa2B7Ymx1ZUJyaWdodCAke2pvYi5uYW1lfX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0cmVhbShjaGFsa2B7Ymx1ZUJyaWdodCAke2pvYi5uYW1lfX0sIGApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZXhwYW5kVGV4dFdpdGggKHRleHQ6IGFueSwgZXhwYW5kV2l0aDogRXhwYW5kV2l0aCkge1xuICAgICAgICBpZiAodHlwZW9mIHRleHQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRleHQucmVwbGFjZShcbiAgICAgICAgICAgIC8oXFwkXFwkKXxcXCRcXHsoW2EtekEtWl9dXFx3Kil9P3xcXCQoW2EtekEtWl9dXFx3KikvZyxcbiAgICAgICAgICAgIChfbWF0Y2gsIGVzY2FwZSwgdmFyMSwgdmFyMikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZXNjYXBlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBleHBhbmRXaXRoLnVuZXNjYXBlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSB2YXIxIHx8IHZhcjI7XG4gICAgICAgICAgICAgICAgICAgIGFzc2VydChuYW1lLCBcInVuZXhwZWN0ZWQgdW5zZXQgY2FwdHVyZSBncm91cFwiKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gYCR7ZXhwYW5kV2l0aC52YXJpYWJsZShuYW1lKX1gO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aChcIlxcXCIvXCIpICYmIHZhbHVlLmVuZHNXaXRoKFwiL1xcXCJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDEpLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3RhdGljIGV4cGFuZFRleHQgKHRleHQ6IGFueSwgZW52czoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kVGV4dFdpdGgodGV4dCwge1xuICAgICAgICAgICAgdW5lc2NhcGU6IFwiJFwiLFxuICAgICAgICAgICAgdmFyaWFibGU6IChuYW1lKSA9PiBlbnZzW25hbWVdID8/IFwiXCIsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBleHBhbmRWYXJpYWJsZXMgKHZhcmlhYmxlczoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcbiAgICAgICAgbGV0IGV4cGFuZGVkQW55VmFyaWFibGVzLCBpID0gMDtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgYXNzZXJ0KGkgPCAxMDAsIFwiUmVjdXJzaXZlIHZhcmlhYmxlIGV4cGFuc2lvbiByZWFjaGVkIDEwMCBpdGVyYXRpb25zXCIpO1xuICAgICAgICAgICAgZXhwYW5kZWRBbnlWYXJpYWJsZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbnZzV2l0aG91dFNlbGYgPSB7Li4udmFyaWFibGVzfTtcbiAgICAgICAgICAgICAgICBkZWxldGUgZW52c1dpdGhvdXRTZWxmW2tdO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSAkJCdzIGFyZSBjb252ZXJ0ZWQgdG8gc2luZ2xlICQncyBub3csIHRoZW4gdGhlIG5leHRcbiAgICAgICAgICAgICAgICAvLyBpdGVyYXRpb24sIHRoZXkgbWlnaHQgYmUgaW50ZXJwcmV0ZWQgYXMgdmFyaWFibGVzLCBldmVuXG4gICAgICAgICAgICAgICAgLy8gdGhvdWdoIHRoZXkgd2VyZSAqZXhwbGljaXRseSogZXNjYXBlZC4gVG8gd29yayBhcm91bmQgdGhpcyxcbiAgICAgICAgICAgICAgICAvLyBsZWF2ZSB0aGUgJyQkJ3MgYXMgdGhlIHNhbWUgdmFsdWUsIHRoZW4gb25seSB1bmVzY2FwZSB0aGVtIGF0XG4gICAgICAgICAgICAgICAgLy8gdGhlIHZlcnkgZW5kLlxuICAgICAgICAgICAgICAgIHZhcmlhYmxlc1trXSA9IFV0aWxzLmV4cGFuZFRleHRXaXRoKHYsIHtcbiAgICAgICAgICAgICAgICAgICAgdW5lc2NhcGU6IFwiJCRcIixcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFibGU6IChuYW1lKSA9PiBlbnZzV2l0aG91dFNlbGZbbmFtZV0gPz8gXCJcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBleHBhbmRlZEFueVZhcmlhYmxlcyB8fD0gdmFyaWFibGVzW2tdICE9PSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9IHdoaWxlIChleHBhbmRlZEFueVZhcmlhYmxlcyk7XG5cbiAgICAgICAgLy8gTm93IHRoYXQgcmVjdXJzaXZlIGV4cGFuc2lvbiBoYXMgdGFrZW4gcGxhY2UsIHVuZXNjYXBlICQkJ3MuXG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykpIHtcbiAgICAgICAgICAgIHZhcmlhYmxlc1trXSA9IFV0aWxzLmV4cGFuZFRleHQodiwge30pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgICB9XG5cbiAgICBzdGF0aWMgZmluZEVudk1hdGNoZWRWYXJpYWJsZXMgKHZhcmlhYmxlczoge1tuYW1lOiBzdHJpbmddOiBDSUNEVmFyaWFibGV9LCBmaWxlVmFyaWFibGVzRGlyPzogc3RyaW5nLCBlbnZpcm9ubWVudD86IHtuYW1lOiBzdHJpbmd9KSB7XG4gICAgICAgIGNvbnN0IGVudk1hdGNoZWRWYXJpYWJsZXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2Ygdi5lbnZpcm9ubWVudHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW52aXJvbm1lbnQ/Lm5hbWUubWF0Y2goZW50cnkucmVnZXhwKSB8fCBlbnRyeS5yZWdleHAuc291cmNlID09PSBcIi4qXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbGVWYXJpYWJsZXNEaXIgIT0gbnVsbCAmJiB2LnR5cGUgPT09IFwiZmlsZVwiICYmICFlbnRyeS5maWxlU291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnZNYXRjaGVkVmFyaWFibGVzW2tdID0gYCR7ZmlsZVZhcmlhYmxlc0Rpcn0vJHtrfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcy5ta2RpcnBTeW5jKGAke2ZpbGVWYXJpYWJsZXNEaXJ9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGAke2ZpbGVWYXJpYWJsZXNEaXJ9LyR7a31gLCBlbnRyeS5jb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxlVmFyaWFibGVzRGlyICE9IG51bGwgJiYgdi50eXBlID09PSBcImZpbGVcIiAmJiBlbnRyeS5maWxlU291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnZNYXRjaGVkVmFyaWFibGVzW2tdID0gYCR7ZmlsZVZhcmlhYmxlc0Rpcn0vJHtrfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcy5ta2RpcnBTeW5jKGAke2ZpbGVWYXJpYWJsZXNEaXJ9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMoZW50cnkuZmlsZVNvdXJjZSwgYCR7ZmlsZVZhcmlhYmxlc0Rpcn0vJHtrfWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW52TWF0Y2hlZFZhcmlhYmxlc1trXSA9IGVudHJ5LmNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBlbnZNYXRjaGVkVmFyaWFibGVzO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRSdWxlc1Jlc3VsdCAob3B0OiBSdWxlUmVzdWx0T3B0KToge3doZW46IHN0cmluZzsgYWxsb3dGYWlsdXJlOiBib29sZWFuOyB2YXJpYWJsZXM/OiB7W25hbWU6IHN0cmluZ106IHN0cmluZ319IHtcbiAgICAgICAgbGV0IHdoZW4gPSBcIm5ldmVyXCI7XG4gICAgICAgIGxldCBhbGxvd0ZhaWx1cmUgPSBmYWxzZTtcbiAgICAgICAgbGV0IHJ1bGVWYXJpYWJsZToge1tuYW1lOiBzdHJpbmddOiBzdHJpbmd9IHwgdW5kZWZpbmVkO1xuICAgICAgICBsZXQgcnVsZUV4aXN0cztcblxuICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2Ygb3B0LnJ1bGVzKSB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuZXZhbHVhdGVSdWxlSWYocnVsZS5pZiB8fCBcInRydWVcIiwgb3B0LnZhcmlhYmxlcykpIHtcbiAgICAgICAgICAgICAgICB3aGVuID0gcnVsZS53aGVuID8gcnVsZS53aGVuIDogXCJvbl9zdWNjZXNzXCI7XG4gICAgICAgICAgICAgICAgYWxsb3dGYWlsdXJlID0gcnVsZS5hbGxvd19mYWlsdXJlID8/IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJ1bGVWYXJpYWJsZSA9IHJ1bGUudmFyaWFibGVzO1xuICAgICAgICAgICAgICAgIHJ1bGVFeGlzdHMgPSBydWxlLmV4aXN0cztcblxuICAgICAgICAgICAgICAgIGlmIChydWxlRXhpc3RzICYmICFVdGlscy5ldmFsdWRhdGVSdWxlRXhpc3Qob3B0LmN3ZCwgcnVsZUV4aXN0cykpIHtcbiAgICAgICAgICAgICAgICAgICAgd2hlbiA9IFwibmV2ZXJcIjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7d2hlbiwgYWxsb3dGYWlsdXJlLCB2YXJpYWJsZXM6IHJ1bGVWYXJpYWJsZX07XG4gICAgfVxuXG4gICAgc3RhdGljIGV2YWx1YXRlUnVsZUlmIChydWxlSWY6IHN0cmluZywgZW52czoge1trZXk6IHN0cmluZ106IHN0cmluZ30pIHtcbiAgICAgICAgbGV0IGV2YWxTdHIgPSBydWxlSWY7XG5cbiAgICAgICAgLy8gRXhwYW5kIGFsbCB2YXJpYWJsZXNcbiAgICAgICAgZXZhbFN0ciA9IHRoaXMuZXhwYW5kVGV4dFdpdGgoZXZhbFN0ciwge1xuICAgICAgICAgICAgdW5lc2NhcGU6IEpTT04uc3RyaW5naWZ5KFwiJFwiKSxcbiAgICAgICAgICAgIHZhcmlhYmxlOiAobmFtZSkgPT4gSlNPTi5zdHJpbmdpZnkoZW52c1tuYW1lXSA/PyBudWxsKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQ29udmVydCA9fiB0byBtYXRjaCBmdW5jdGlvblxuICAgICAgICBldmFsU3RyID0gZXZhbFN0ci5yZXBsYWNlKC9cXHMqPX5cXHMqKFxcLy4qP1xcL1tpZ21zdXldKikoPzpcXHN8JCkvZywgXCIubWF0Y2goJDEpICE9IG51bGxcIik7XG4gICAgICAgIGV2YWxTdHIgPSBldmFsU3RyLnJlcGxhY2UoL1xccyo9flxccyguKz8pKFxcKSo/KSg/Olxcc3wkKS9nLCBcIi5tYXRjaChuZXcgUmVnRXhwKCQxKSkgIT0gbnVsbCQyXCIpOyAvLyBXaXRob3V0IGZvcndhcmQgc2xhc2hlc1xuXG4gICAgICAgIC8vIENvbnZlcnQgIX4gdG8gbWF0Y2ggZnVuY3Rpb25cbiAgICAgICAgZXZhbFN0ciA9IGV2YWxTdHIucmVwbGFjZSgvXFxzKiF+XFxzKihcXC8uKj9cXC9baWdtc3V5XSopKD86XFxzfCQpL2csIFwiLm1hdGNoKCQxKSA9PSBudWxsXCIpO1xuICAgICAgICBldmFsU3RyID0gZXZhbFN0ci5yZXBsYWNlKC9cXHMqIX5cXHMoLis/KShcXCkqPykoPzpcXHN8JCkvZywgXCIubWF0Y2gobmV3IFJlZ0V4cCgkMSkpID09IG51bGwkMlwiKTsgLy8gV2l0aG91dCBmb3J3YXJkIHNsYXNoZXNcblxuICAgICAgICAvLyBDb252ZXJ0IGFsbCBudWxsLm1hdGNoIGZ1bmN0aW9ucyB0byBmYWxzZVxuICAgICAgICBldmFsU3RyID0gZXZhbFN0ci5yZXBsYWNlKC9udWxsLm1hdGNoXFwoLis/XFwpICE9IG51bGwvZywgXCJmYWxzZVwiKTtcbiAgICAgICAgZXZhbFN0ciA9IGV2YWxTdHIucmVwbGFjZSgvbnVsbC5tYXRjaFxcKC4rP1xcKSA9PSBudWxsL2csIFwiZmFsc2VcIik7XG5cbiAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEJhZEV4cHJlc3Npb25TdGF0ZW1lbnRKU1xuICAgICAgICByZXR1cm4gZXZhbChgaWYgKCR7ZXZhbFN0cn0pIHsgdHJ1ZSB9IGVsc2UgeyBmYWxzZSB9YCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGV2YWx1ZGF0ZVJ1bGVFeGlzdCAoY3dkOiBzdHJpbmcsIHJ1bGVFeGlzdHM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIGZvciAoY29uc3QgcGF0dGVybiBvZiBydWxlRXhpc3RzKSB7XG4gICAgICAgICAgICBpZiAoZ2xvYmJ5LnN5bmMocGF0dGVybiwge2RvdDogdHJ1ZSwgY3dkfSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgcnN5bmNUcmFja2VkRmlsZXMgKGN3ZDogc3RyaW5nLCBzdGF0ZURpcjogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyk6IFByb21pc2U8e2hyZGVsdGF0aW1lOiBbbnVtYmVyLCBudW1iZXJdfT4ge1xuICAgICAgICBjb25zdCB0aW1lID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgICAgICAgYXdhaXQgZnMubWtkaXJwKGAke2N3ZH0vJHtzdGF0ZURpcn0vYnVpbGRzLyR7dGFyZ2V0fWApO1xuICAgICAgICBhd2FpdCBVdGlscy5iYXNoKGByc3luYyAtYSAtLWRlbGV0ZS1leGNsdWRlZCAtLWRlbGV0ZSAtLWV4Y2x1ZGUtZnJvbT08KGdpdCBscy1maWxlcyAtbyAtLWRpcmVjdG9yeSB8IGF3ayAne3ByaW50IFwiL1wiJDB9JykgLS1leGNsdWRlICR7c3RhdGVEaXJ9LyAuLyAke3N0YXRlRGlyfS9idWlsZHMvJHt0YXJnZXR9L2AsIGN3ZCk7XG4gICAgICAgIHJldHVybiB7aHJkZWx0YXRpbWU6IHByb2Nlc3MuaHJ0aW1lKHRpbWUpfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYXN5bmMgY2hlY2tzdW1GaWxlcyAoZmlsZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8c3RyaW5nPltdID0gW107XG5cbiAgICAgICAgZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY2hlY2tzdW0uZmlsZShmaWxlLCAoZXJyLCBoYXNoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGhhc2gpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIHJldHVybiBjaGVja3N1bShyZXN1bHQuam9pbihcIlwiKSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGlzT2JqZWN0ICh2OiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZih2KSA9PT0gT2JqZWN0LnByb3RvdHlwZTtcbiAgICB9XG59XG4iXX0=
|
package/src/validator.js
CHANGED
|
@@ -89,4 +89,4 @@ class Validator {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
exports.Validator = Validator;
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLG9EQUE0QjtBQUM1QixrREFBMEI7QUFFMUIsTUFBYSxTQUFTO0lBRVYsTUFBTSxDQUFDLEtBQUssQ0FBRSxJQUF3QixFQUFFLE1BQXlCO1FBQ3JFLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtZQUNwQixJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQUUsU0FBUztZQUUzRCxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUNmLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxJQUFJLENBQUMsR0FBRyxzQ0FBc0MsQ0FBQyxDQUFDO29CQUM3RixTQUFTO2lCQUNaO2dCQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7b0JBQzVFLFNBQVM7aUJBQ1o7Z0JBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPO29CQUFFLFNBQVM7Z0JBQ3hDLElBQUEsZ0JBQU0sRUFBQyxPQUFPLElBQUksSUFBSSxFQUFFLElBQUEsZUFB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QUEwQyxDQUFDLENBQUMsQ0FBQztZQUN0SSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBQSxnQkFBTSxFQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxJQUFBLGVBQUssRUFBQSxTQUFTLEdBQUcsQ0FBQyxJQUFJLG9DQUFvQyxDQUFDLENBQUMsQ0FBQztTQUM5SDtJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBRSxJQUF3QixFQUFFLE1BQXlCO1FBQ2pFLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQXRGRCw4QkFzRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0pvYn0gZnJvbSBcIi4vam9iXCI7XG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvciB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBuZWVkcyAoam9iczogUmVhZG9ubHlBcnJheTxKb2I+LCBzdGFnZXM6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCB3YXJuaW5nczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBqb2Igb2Ygam9icykge1xuICAgICAgICAgICAgaWYgKGpvYi5uZWVkcyA9PT0gbnVsbCB8fCBqb2IubmVlZHMubGVuZ3RoID09PSAwKSBjb250aW51ZTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBbaSwgbmVlZF0gb2Ygam9iLm5lZWRzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgICAgIGlmIChuZWVkLnBpcGVsaW5lKSB7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLnB1c2goYCR7am9iLm5hbWV9Lm5lZWRzWyR7aX1dLmpvYjoke25lZWQuam9ifSBpZ25vcmVkLCBwaXBlbGluZSBrZXkgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5lZWQucHJvamVjdCkge1xuICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy5wdXNoKGAke2pvYi5uYW1lfS5uZWVkc1ske2l9XSBpZ25vcmVkLCBwcm9qZWN0IGtleSBub3Qgc3VwcG9ydGVkYCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBuZWVkSm9iID0gam9icy5maW5kKGogPT4gai5iYXNlTmFtZSA9PT0gbmVlZC5qb2IpO1xuICAgICAgICAgICAgICAgIGlmIChuZWVkLm9wdGlvbmFsICYmICFuZWVkSm9iKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBhc3NlcnQobmVlZEpvYiAhPSBudWxsLCBjaGFsa2BuZWVkczogW3tibHVlQnJpZ2h0ICR7bmVlZC5qb2J9fV0gZm9yIHtibHVlQnJpZ2h0ICR7am9iLmJhc2VOYW1lfX0gY291bGQgbm90IGJlIGZvdW5kYCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmVlZEpvYlN0YWdlSW5kZXggPSBzdGFnZXMuaW5kZXhPZihuZWVkSm9iLnN0YWdlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBqb2JTdGFnZUluZGV4ID0gc3RhZ2VzLmluZGV4T2Yoam9iLnN0YWdlKTtcbiAgICAgICAgICAgICAgICBhc3NlcnQobmVlZEpvYlN0YWdlSW5kZXggPD0gam9iU3RhZ2VJbmRleCwgY2hhbGtgbmVlZHM6IFt7Ymx1ZUJyaWdodCAke25lZWRKb2IubmFtZX19XSBmb3Ige2JsdWVCcmlnaHQgJHtqb2IubmFtZX19IGlzIGluIGEgZnV0dXJlIHN0YWdlYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd2FybmluZ3M7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZGVwZW5kZW5jaWVzIChqb2JzOiBSZWFkb25seUFycmF5PEpvYj4sIHN0YWdlczogcmVhZG9ubHkgc3RyaW5nW10pIHtcbiAgICAgICAgZm9yIChjb25zdCBqb2Igb2Ygam9icykge1xuICAgICAgICAgICAgaWYgKGpvYi5kZXBlbmRlbmNpZXMgPT09IG51bGwgfHwgam9iLmRlcGVuZGVuY2llcy5sZW5ndGggPT09IDApIGNvbnRpbnVlO1xuXG4gICAgICAgICAgICBjb25zdCB1bmRlZkRlcHMgPSBqb2IuZGVwZW5kZW5jaWVzLmZpbHRlcigoaikgPT4gIWpvYnMuc29tZShuID0+IG4uYmFzZU5hbWUgPT09IGopKTtcbiAgICAgICAgICAgIGFzc2VydCh1bmRlZkRlcHMubGVuZ3RoICE9PSBqb2IuZGVwZW5kZW5jaWVzLmxlbmd0aCwgY2hhbGtgZGVwZW5kZW5jaWVzOiBbe2JsdWVCcmlnaHQgJHt1bmRlZkRlcHMuam9pbihcIixcIil9fV0gZm9yIHtibHVlQnJpZ2h0ICR7am9iLm5hbWV9fSBjYW5ub3QgYmUgZm91bmRgKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygam9iLmRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlcEpvYiA9IGpvYnMuZmluZChqID0+IGouYmFzZU5hbWUgPT09IGRlcCk7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KGRlcEpvYiAhPSBudWxsLCBjaGFsa2BkZXBlbmRlbmNpZXM6IFt7Ymx1ZUJyaWdodCAke2RlcH19XSBmb3Ige2JsdWVCcmlnaHQgJHtqb2IuYmFzZU5hbWV9fSBjb3VsZCBub3QgYmUgZm91bmRgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBKb2JTdGFnZUluZGV4ID0gc3RhZ2VzLmluZGV4T2YoZGVwSm9iLnN0YWdlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBqb2JTdGFnZUluZGV4ID0gc3RhZ2VzLmluZGV4T2Yoam9iLnN0YWdlKTtcbiAgICAgICAgICAgICAgICBhc3NlcnQoZGVwSm9iU3RhZ2VJbmRleCA8PSBqb2JTdGFnZUluZGV4LCBjaGFsa2BkZXBlbmRlbmNpZXM6IFt7Ymx1ZUJyaWdodCAke2RlcEpvYi5uYW1lfX1dIGZvciB7Ymx1ZUJyaWdodCAke2pvYi5uYW1lfX0gaXMgaW4gYSBmdXR1cmUgc3RhZ2VgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGRlcGVuZGVuY2llc0NvbnRhaW5tZW50IChqb2JzOiBSZWFkb25seUFycmF5PEpvYj4pIHtcbiAgICAgICAgZm9yIChjb25zdCBqb2Igb2Ygam9icykge1xuICAgICAgICAgICAgY29uc3QgbmVlZHMgPSBqb2IubmVlZHM7XG4gICAgICAgICAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSBqb2IuZGVwZW5kZW5jaWVzO1xuICAgICAgICAgICAgaWYgKG5lZWRzICYmIG5lZWRzLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG4gICAgICAgICAgICBpZiAoIWRlcGVuZGVuY2llcyB8fCAhbmVlZHMpIGNvbnRpbnVlO1xuXG5cbiAgICAgICAgICAgIGNvbnN0IGV2ZXJ5SW5jbHVkZWQgPSBkZXBlbmRlbmNpZXMuZXZlcnkoKGRlcDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5lZWRzLnNvbWUobiA9PiBuLmpvYiA9PT0gZGVwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgYXNzZXJ0TXNnID0gYCR7am9iLmZvcm1hdHRlZEpvYk5hbWV9IG5lZWRzOiAnJHtuZWVkcy5tYXAobiA9PiBuLmpvYikuam9pbihcIixcIil9JyBkb2Vzbid0IGZ1bGx5IGNvbnRhaW4gZGVwZW5kZW5jaWVzOiAnJHtkZXBlbmRlbmNpZXMuam9pbihcIixcIil9J2A7XG4gICAgICAgICAgICBhc3NlcnQoZXZlcnlJbmNsdWRlZCwgYXNzZXJ0TXNnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHNjcmlwdEJsYW5rIChqb2JzOiBSZWFkb25seUFycmF5PEpvYj4pIHtcbiAgICAgICAgZm9yIChjb25zdCBqb2Igb2Ygam9icykge1xuICAgICAgICAgICAgaWYgKGpvYi50cmlnZ2VyKSBjb250aW51ZTsgLy8gSm9icyB3aXRoIHRyaWdnZXIgYXJlIGFsbG93ZWQgdG8gaGF2ZSBlbXB0eSBzY3JpcHRcbiAgICAgICAgICAgIGFzc2VydChqb2Iuc2NyaXB0cy5sZW5ndGggPiAwLCBjaGFsa2B7Ymx1ZSAke2pvYi5uYW1lfX0gaGFzIGVtcHR5IHNjcmlwdGApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgYXJyYXlPZlN0cmluZ3MgKGpvYnM6IFJlYWRvbmx5QXJyYXk8Sm9iPikge1xuICAgICAgICBmb3IgKGNvbnN0IGpvYiBvZiBqb2JzKSB7XG4gICAgICAgICAgICBpZiAoam9iLnRyaWdnZXIpIGNvbnRpbnVlO1xuICAgICAgICAgICAgam9iLmJlZm9yZVNjcmlwdHMuZm9yRWFjaCgoczogYW55KSA9PiBhc3NlcnQodHlwZW9mIHMgPT09IFwic3RyaW5nXCIsIGNoYWxrYHtibHVlICR7am9iLm5hbWV9fSBiZWZvcmVfc2NyaXB0IGNvbnRhaW5zIG5vbiBzdHJpbmcgdmFsdWVgKSk7XG4gICAgICAgICAgICBqb2IuYWZ0ZXJTY3JpcHRzLmZvckVhY2goKHM6IGFueSkgPT4gYXNzZXJ0KHR5cGVvZiBzID09PSBcInN0cmluZ1wiLCBjaGFsa2B7Ymx1ZSAke2pvYi5uYW1lfX0gYWZ0ZXJfc2NyaXB0IGNvbnRhaW5zIG5vbiBzdHJpbmcgdmFsdWVgKSk7XG4gICAgICAgICAgICBqb2Iuc2NyaXB0cy5mb3JFYWNoKChzOiBhbnkpID0+IGFzc2VydCh0eXBlb2YgcyA9PT0gXCJzdHJpbmdcIiwgY2hhbGtge2JsdWUgJHtqb2IubmFtZX19IHNjcmlwdCBjb250YWlucyBub24gc3RyaW5nIHZhbHVlYCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jIHJ1biAoam9iczogUmVhZG9ubHlBcnJheTxKb2I+LCBzdGFnZXM6IHJlYWRvbmx5IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICB0aGlzLnNjcmlwdEJsYW5rKGpvYnMpO1xuICAgICAgICB0aGlzLmFycmF5T2ZTdHJpbmdzKGpvYnMpO1xuICAgICAgICB3YXJuaW5ncy5wdXNoKC4uLnRoaXMubmVlZHMoam9icywgc3RhZ2VzKSk7XG4gICAgICAgIHRoaXMuZGVwZW5kZW5jaWVzKGpvYnMsIHN0YWdlcyk7XG4gICAgICAgIHRoaXMuZGVwZW5kZW5jaWVzQ29udGFpbm1lbnQoam9icyk7XG4gICAgICAgIHJldHVybiB3YXJuaW5ncztcbiAgICB9XG59XG4iXX0=
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLG9EQUE0QjtBQUM1QixrREFBMEI7QUFFMUIsTUFBYSxTQUFTO0lBRVYsTUFBTSxDQUFDLEtBQUssQ0FBRSxJQUF3QixFQUFFLE1BQXlCO1FBQ3JFLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxTQUFTO1lBRTNELEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDLFNBQVMsSUFBSSxDQUFDLEdBQUcsc0NBQXNDLENBQUMsQ0FBQztvQkFDN0YsU0FBUztnQkFDYixDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNmLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsc0NBQXNDLENBQUMsQ0FBQztvQkFDNUUsU0FBUztnQkFDYixDQUFDO2dCQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsT0FBTztvQkFBRSxTQUFTO2dCQUN4QyxJQUFBLGdCQUFNLEVB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QUUsQ0FBQyxJQUFBLGdCQUFNLEVBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLElBQUEsZUFBSyxFQUFBLFNBQVMsR0FBRyxDQUFDLElBQUksMENBQTBDLENBQUMsQ0FBQyxDQUFDO1lBQ3RJLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxJQUFBLGdCQUFNLEVBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLElBQUEsZUFBSyxFQUFBLFNBQVMsR0FBRyxDQUFDLElBQUksb0NBQW9DLENBQUMsQ0FBQyxDQUFDO1FBQy9ILENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUUsSUFBd0IsRUFBRSxNQUF5QjtRQUNqRSxNQUFNLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUF0RkQsOEJBc0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtKb2J9IGZyb20gXCIuL2pvYlwiO1xuaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmV4cG9ydCBjbGFzcyBWYWxpZGF0b3Ige1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgbmVlZHMgKGpvYnM6IFJlYWRvbmx5QXJyYXk8Sm9iPiwgc3RhZ2VzOiByZWFkb25seSBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3Qgd2FybmluZ3M6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgam9iIG9mIGpvYnMpIHtcbiAgICAgICAgICAgIGlmIChqb2IubmVlZHMgPT09IG51bGwgfHwgam9iLm5lZWRzLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgW2ksIG5lZWRdIG9mIGpvYi5uZWVkcy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAobmVlZC5waXBlbGluZSkge1xuICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy5wdXNoKGAke2pvYi5uYW1lfS5uZWVkc1ske2l9XS5qb2I6JHtuZWVkLmpvYn0gaWdub3JlZCwgcGlwZWxpbmUga2V5IG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChuZWVkLnByb2plY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgd2FybmluZ3MucHVzaChgJHtqb2IubmFtZX0ubmVlZHNbJHtpfV0gaWdub3JlZCwgcHJvamVjdCBrZXkgbm90IHN1cHBvcnRlZGApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbmVlZEpvYiA9IGpvYnMuZmluZChqID0+IGouYmFzZU5hbWUgPT09IG5lZWQuam9iKTtcbiAgICAgICAgICAgICAgICBpZiAobmVlZC5vcHRpb25hbCAmJiAhbmVlZEpvYikgY29udGludWU7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KG5lZWRKb2IgIT0gbnVsbCwgY2hhbGtgbmVlZHM6IFt7Ymx1ZUJyaWdodCAke25lZWQuam9ifX1dIGZvciB7Ymx1ZUJyaWdodCAke2pvYi5iYXNlTmFtZX19IGNvdWxkIG5vdCBiZSBmb3VuZGApO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5lZWRKb2JTdGFnZUluZGV4ID0gc3RhZ2VzLmluZGV4T2YobmVlZEpvYi5zdGFnZSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgam9iU3RhZ2VJbmRleCA9IHN0YWdlcy5pbmRleE9mKGpvYi5zdGFnZSk7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KG5lZWRKb2JTdGFnZUluZGV4IDw9IGpvYlN0YWdlSW5kZXgsIGNoYWxrYG5lZWRzOiBbe2JsdWVCcmlnaHQgJHtuZWVkSm9iLm5hbWV9fV0gZm9yIHtibHVlQnJpZ2h0ICR7am9iLm5hbWV9fSBpcyBpbiBhIGZ1dHVyZSBzdGFnZWApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHdhcm5pbmdzO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGRlcGVuZGVuY2llcyAoam9iczogUmVhZG9ubHlBcnJheTxKb2I+LCBzdGFnZXM6IHJlYWRvbmx5IHN0cmluZ1tdKSB7XG4gICAgICAgIGZvciAoY29uc3Qgam9iIG9mIGpvYnMpIHtcbiAgICAgICAgICAgIGlmIChqb2IuZGVwZW5kZW5jaWVzID09PSBudWxsIHx8IGpvYi5kZXBlbmRlbmNpZXMubGVuZ3RoID09PSAwKSBjb250aW51ZTtcblxuICAgICAgICAgICAgY29uc3QgdW5kZWZEZXBzID0gam9iLmRlcGVuZGVuY2llcy5maWx0ZXIoKGopID0+ICFqb2JzLnNvbWUobiA9PiBuLmJhc2VOYW1lID09PSBqKSk7XG4gICAgICAgICAgICBhc3NlcnQodW5kZWZEZXBzLmxlbmd0aCAhPT0gam9iLmRlcGVuZGVuY2llcy5sZW5ndGgsIGNoYWxrYGRlcGVuZGVuY2llczogW3tibHVlQnJpZ2h0ICR7dW5kZWZEZXBzLmpvaW4oXCIsXCIpfX1dIGZvciB7Ymx1ZUJyaWdodCAke2pvYi5uYW1lfX0gY2Fubm90IGJlIGZvdW5kYCk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGpvYi5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBKb2IgPSBqb2JzLmZpbmQoaiA9PiBqLmJhc2VOYW1lID09PSBkZXApO1xuICAgICAgICAgICAgICAgIGFzc2VydChkZXBKb2IgIT0gbnVsbCwgY2hhbGtgZGVwZW5kZW5jaWVzOiBbe2JsdWVCcmlnaHQgJHtkZXB9fV0gZm9yIHtibHVlQnJpZ2h0ICR7am9iLmJhc2VOYW1lfX0gY291bGQgbm90IGJlIGZvdW5kYCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVwSm9iU3RhZ2VJbmRleCA9IHN0YWdlcy5pbmRleE9mKGRlcEpvYi5zdGFnZSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgam9iU3RhZ2VJbmRleCA9IHN0YWdlcy5pbmRleE9mKGpvYi5zdGFnZSk7XG4gICAgICAgICAgICAgICAgYXNzZXJ0KGRlcEpvYlN0YWdlSW5kZXggPD0gam9iU3RhZ2VJbmRleCwgY2hhbGtgZGVwZW5kZW5jaWVzOiBbe2JsdWVCcmlnaHQgJHtkZXBKb2IubmFtZX19XSBmb3Ige2JsdWVCcmlnaHQgJHtqb2IubmFtZX19IGlzIGluIGEgZnV0dXJlIHN0YWdlYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBkZXBlbmRlbmNpZXNDb250YWlubWVudCAoam9iczogUmVhZG9ubHlBcnJheTxKb2I+KSB7XG4gICAgICAgIGZvciAoY29uc3Qgam9iIG9mIGpvYnMpIHtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzID0gam9iLm5lZWRzO1xuICAgICAgICAgICAgY29uc3QgZGVwZW5kZW5jaWVzID0gam9iLmRlcGVuZGVuY2llcztcbiAgICAgICAgICAgIGlmIChuZWVkcyAmJiBuZWVkcy5sZW5ndGggPT09IDApIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKCFkZXBlbmRlbmNpZXMgfHwgIW5lZWRzKSBjb250aW51ZTtcblxuXG4gICAgICAgICAgICBjb25zdCBldmVyeUluY2x1ZGVkID0gZGVwZW5kZW5jaWVzLmV2ZXJ5KChkZXA6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZWVkcy5zb21lKG4gPT4gbi5qb2IgPT09IGRlcCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGFzc2VydE1zZyA9IGAke2pvYi5mb3JtYXR0ZWRKb2JOYW1lfSBuZWVkczogJyR7bmVlZHMubWFwKG4gPT4gbi5qb2IpLmpvaW4oXCIsXCIpfScgZG9lc24ndCBmdWxseSBjb250YWluIGRlcGVuZGVuY2llczogJyR7ZGVwZW5kZW5jaWVzLmpvaW4oXCIsXCIpfSdgO1xuICAgICAgICAgICAgYXNzZXJ0KGV2ZXJ5SW5jbHVkZWQsIGFzc2VydE1zZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBzY3JpcHRCbGFuayAoam9iczogUmVhZG9ubHlBcnJheTxKb2I+KSB7XG4gICAgICAgIGZvciAoY29uc3Qgam9iIG9mIGpvYnMpIHtcbiAgICAgICAgICAgIGlmIChqb2IudHJpZ2dlcikgY29udGludWU7IC8vIEpvYnMgd2l0aCB0cmlnZ2VyIGFyZSBhbGxvd2VkIHRvIGhhdmUgZW1wdHkgc2NyaXB0XG4gICAgICAgICAgICBhc3NlcnQoam9iLnNjcmlwdHMubGVuZ3RoID4gMCwgY2hhbGtge2JsdWUgJHtqb2IubmFtZX19IGhhcyBlbXB0eSBzY3JpcHRgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGFycmF5T2ZTdHJpbmdzIChqb2JzOiBSZWFkb25seUFycmF5PEpvYj4pIHtcbiAgICAgICAgZm9yIChjb25zdCBqb2Igb2Ygam9icykge1xuICAgICAgICAgICAgaWYgKGpvYi50cmlnZ2VyKSBjb250aW51ZTtcbiAgICAgICAgICAgIGpvYi5iZWZvcmVTY3JpcHRzLmZvckVhY2goKHM6IGFueSkgPT4gYXNzZXJ0KHR5cGVvZiBzID09PSBcInN0cmluZ1wiLCBjaGFsa2B7Ymx1ZSAke2pvYi5uYW1lfX0gYmVmb3JlX3NjcmlwdCBjb250YWlucyBub24gc3RyaW5nIHZhbHVlYCkpO1xuICAgICAgICAgICAgam9iLmFmdGVyU2NyaXB0cy5mb3JFYWNoKChzOiBhbnkpID0+IGFzc2VydCh0eXBlb2YgcyA9PT0gXCJzdHJpbmdcIiwgY2hhbGtge2JsdWUgJHtqb2IubmFtZX19IGFmdGVyX3NjcmlwdCBjb250YWlucyBub24gc3RyaW5nIHZhbHVlYCkpO1xuICAgICAgICAgICAgam9iLnNjcmlwdHMuZm9yRWFjaCgoczogYW55KSA9PiBhc3NlcnQodHlwZW9mIHMgPT09IFwic3RyaW5nXCIsIGNoYWxrYHtibHVlICR7am9iLm5hbWV9fSBzY3JpcHQgY29udGFpbnMgbm9uIHN0cmluZyB2YWx1ZWApKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBydW4gKGpvYnM6IFJlYWRvbmx5QXJyYXk8Sm9iPiwgc3RhZ2VzOiByZWFkb25seSBzdHJpbmdbXSkge1xuICAgICAgICBjb25zdCB3YXJuaW5nczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgdGhpcy5zY3JpcHRCbGFuayhqb2JzKTtcbiAgICAgICAgdGhpcy5hcnJheU9mU3RyaW5ncyhqb2JzKTtcbiAgICAgICAgd2FybmluZ3MucHVzaCguLi50aGlzLm5lZWRzKGpvYnMsIHN0YWdlcykpO1xuICAgICAgICB0aGlzLmRlcGVuZGVuY2llcyhqb2JzLCBzdGFnZXMpO1xuICAgICAgICB0aGlzLmRlcGVuZGVuY2llc0NvbnRhaW5tZW50KGpvYnMpO1xuICAgICAgICByZXR1cm4gd2FybmluZ3M7XG4gICAgfVxufVxuIl19
|