@cdktn/commons 0.25.0-pre.53 → 0.25.0-pre.55
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/build/config.d.ts +5 -0
- package/build/config.d.ts.map +1 -1
- package/build/config.js +26 -1
- package/build/config.test.js +23 -1
- package/build/construct-maker-target.d.ts +2 -0
- package/build/construct-maker-target.d.ts.map +1 -1
- package/build/construct-maker-target.js +3 -1
- package/build/debug.js +11 -11
- package/build/debug.test.js +9 -2
- package/build/errors.d.ts +3 -0
- package/build/errors.d.ts.map +1 -1
- package/build/errors.js +31 -23
- package/build/errors.test.d.ts +2 -0
- package/build/errors.test.d.ts.map +1 -0
- package/build/errors.test.js +24 -0
- package/build/identity.d.ts +3 -0
- package/build/identity.d.ts.map +1 -0
- package/build/identity.js +88 -0
- package/build/index.d.ts +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -2
- package/build/process-state.d.ts +2 -0
- package/build/process-state.d.ts.map +1 -0
- package/build/process-state.js +15 -0
- package/build/telemetry.d.ts +24 -0
- package/build/telemetry.d.ts.map +1 -0
- package/build/telemetry.js +721 -0
- package/build/telemetry.test.d.ts +2 -0
- package/build/telemetry.test.d.ts.map +1 -0
- package/build/telemetry.test.js +1501 -0
- package/build/terraform.d.ts +10 -1
- package/build/terraform.d.ts.map +1 -1
- package/build/terraform.js +43 -8
- package/build/terraform.test.d.ts +2 -0
- package/build/terraform.test.d.ts.map +1 -0
- package/build/terraform.test.js +136 -0
- package/package.json +3 -3
- package/build/checkpoint.d.ts +0 -19
- package/build/checkpoint.d.ts.map +0 -1
- package/build/checkpoint.js +0 -185
package/build/config.d.ts
CHANGED
|
@@ -75,7 +75,12 @@ interface ConfigBase {
|
|
|
75
75
|
* `targetVersions` before running it.
|
|
76
76
|
*/
|
|
77
77
|
readonly validateInstalledBinary?: boolean;
|
|
78
|
+
readonly sendCrashReports?: boolean;
|
|
79
|
+
readonly sendUsageTelemetry?: boolean;
|
|
78
80
|
}
|
|
81
|
+
declare const CONSENT_FLAGS: readonly ["sendCrashReports", "sendUsageTelemetry"];
|
|
82
|
+
/** A boolean or "true"/"false" is a decision; anything else is unset. */
|
|
83
|
+
export declare function normalizeConsentFlag(key: (typeof CONSENT_FLAGS)[number], value: unknown): boolean | undefined;
|
|
79
84
|
/**
|
|
80
85
|
* Validates the shape of a `targetVersions` declaration; returns a list of
|
|
81
86
|
* human-readable problems (empty when valid).
|
package/build/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/build/config.js
CHANGED
|
@@ -39,6 +39,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
exports.parseConfig = exports.DEFAULT_TARGET_VERSIONS = exports.TerraformProviderConstraint = exports.TerraformModuleConstraint = exports.CONFIG_DEFAULTS = exports.LANGUAGES = exports.Language = void 0;
|
|
41
41
|
exports.isLocalModule = isLocalModule;
|
|
42
|
+
exports.normalizeConsentFlag = normalizeConsentFlag;
|
|
42
43
|
exports.validateTargetVersions = validateTargetVersions;
|
|
43
44
|
exports.readConfigSync = readConfigSync;
|
|
44
45
|
exports.shouldCheckCodeMakerOutput = shouldCheckCodeMakerOutput;
|
|
@@ -246,6 +247,18 @@ exports.TerraformProviderConstraint = TerraformProviderConstraint;
|
|
|
246
247
|
// context key, and product list as internal wiring via the subpath.
|
|
247
248
|
const validations_1 = require("cdktn/lib/validations");
|
|
248
249
|
Object.defineProperty(exports, "DEFAULT_TARGET_VERSIONS", { enumerable: true, get: function () { return validations_1.DEFAULT_TARGET_VERSIONS; } });
|
|
250
|
+
const CONSENT_FLAGS = ["sendCrashReports", "sendUsageTelemetry"];
|
|
251
|
+
/** A boolean or "true"/"false" is a decision; anything else is unset. */
|
|
252
|
+
function normalizeConsentFlag(key, value) {
|
|
253
|
+
if (typeof value === "boolean") {
|
|
254
|
+
return value;
|
|
255
|
+
}
|
|
256
|
+
if (value === "true" || value === "false") {
|
|
257
|
+
return value === "true";
|
|
258
|
+
}
|
|
259
|
+
logging_1.logger.debug(`Ignoring ${key} in ${CONFIG_FILE}: expected a boolean, got ${JSON.stringify(value)}`);
|
|
260
|
+
return undefined;
|
|
261
|
+
}
|
|
249
262
|
/**
|
|
250
263
|
* Validates the shape of a `targetVersions` declaration; returns a list of
|
|
251
264
|
* human-readable problems (empty when valid).
|
|
@@ -298,6 +311,18 @@ const parseConfig = (configJSON) => {
|
|
|
298
311
|
if (isPresent(config.terraformProviders)) {
|
|
299
312
|
config.terraformProviders = (_b = config.terraformProviders) === null || _b === void 0 ? void 0 : _b.map((provider) => new TerraformProviderConstraint(provider));
|
|
300
313
|
}
|
|
314
|
+
const flags = config;
|
|
315
|
+
for (const key of CONSENT_FLAGS) {
|
|
316
|
+
if (key in flags) {
|
|
317
|
+
const normalized = normalizeConsentFlag(key, flags[key]);
|
|
318
|
+
if (normalized === undefined) {
|
|
319
|
+
delete flags[key];
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
flags[key] = normalized;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
301
326
|
const targetVersionProblems = validateTargetVersions(config.targetVersions);
|
|
302
327
|
if (targetVersionProblems.length > 0) {
|
|
303
328
|
throw new Error(`Invalid ${CONFIG_FILE}:\n ${targetVersionProblems.join("\n ")}`);
|
|
@@ -335,4 +360,4 @@ function logTimespan(message) {
|
|
|
335
360
|
logging_1.logger.debug(`${message} took ${duration}ms`);
|
|
336
361
|
};
|
|
337
362
|
}
|
|
338
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3RUgsc0NBRUM7QUF3T0Qsd0RBa0RDO0FBdUVELHdDQVVDO0FBRUQsZ0VBSUM7QUFFRCxrQ0FTQztBQXBjRCw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyx1Q0FBbUM7QUFDbkMseURBQXNEO0FBQ3RELHFDQUE4QjtBQUM5Qix5Q0FBeUM7QUFFekMsSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUF5QixDQUFBO0lBQ3pCLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7SUFDYixxQkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5XLFFBQVEsd0JBQVIsUUFBUSxRQU1uQjtBQUVZLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLElBQUk7SUFDYixRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxFQUFFO0NBQ1osQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBRXpDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQXdCcEIsUUFBQSxlQUFlLEdBQUc7SUFDN0IsTUFBTSxFQUFFLFdBQVc7SUFDbkIsZUFBZSxFQUFFLE1BQU07Q0FDeEIsQ0FBQztBQUVGLFNBQVMsU0FBUyxDQUFDLEtBQXdCO0lBQ3pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBU0QsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNuQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9D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LEVBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsTUFBYztJQUN2RCxPQUFPLENBQ0wsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FDM0UsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixXQUFXLENBQUMsT0FBZTtJQUN6QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFekIsT0FBTyxTQUFTLGNBQWM7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDN0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLFNBQVMsUUFBUSxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tIFwic2VtdmVyXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBpc1JlZ2lzdHJ5TW9kdWxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLW1vZHVsZVwiO1xuaW1wb3J0IHsgZW52IH0gZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJjb2RlbWFrZXJcIjtcblxuZXhwb3J0IGVudW0gTGFuZ3VhZ2Uge1xuICBUWVBFU0NSSVBUID0gXCJ0eXBlc2NyaXB0XCIsXG4gIFBZVEhPTiA9IFwicHl0aG9uXCIsXG4gIENTSEFSUCA9IFwiY3NoYXJwXCIsXG4gIEpBVkEgPSBcImphdmFcIixcbiAgR08gPSBcImdvXCIsXG59XG5cbmV4cG9ydCBjb25zdCBMQU5HVUFHRVMgPSBbXG4gIExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gIExhbmd1YWdlLlBZVEhPTixcbiAgTGFuZ3VhZ2UuSkFWQSxcbiAgTGFuZ3VhZ2UuQ1NIQVJQLFxuICBMYW5ndWFnZS5HTyxcbl07XG5cbmNvbnN0IENPTlRFWFRfRU5WID0gXCJDREtURl9DT05URVhUX0pTT05cIjtcblxuY29uc3QgQ09ORklHX0ZJTEUgPSBcImNka3RmLmpzb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0TGFuZ3VhZ2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFN1ZmZpeCB0byBhcHBlbmQgdG8gcmVsYXRpdmUgaW1wb3J0cy5cbiAgICogRGVmYXVsdHMgdG8gXCJcIiAoQ29tbW9uSlMpLlxuICAgKiBVc2UgXCIuanNcIiBvciBcIi50c1wiIGZvciBFU00tY29tcGF0aWJsZSBpbXBvcnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXh0ZW5zaW9uPzogc3RyaW5nO1xufVxuXG4vLyBGb3Igbm93LCB0aGVzZSBsYW5ndWFnZXMgaGF2ZSBubyBsYW5ndWFnZS1zcGVjaWZpYyBvcHRpb25zLlxuZXhwb3J0IHR5cGUgUHl0aG9uTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuZXhwb3J0IHR5cGUgQ1NoYXJwTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuZXhwb3J0IHR5cGUgSmF2YUxhbmd1YWdlT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbmV4cG9ydCB0eXBlIEdvTGFuZ3VhZ2VPcHRpb25zID0gUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgdHlwZSBMYW5ndWFnZU9wdGlvbnMgPVxuICB8IFR5cGVTY3JpcHRMYW5ndWFnZU9wdGlvbnNcbiAgfCBQeXRob25MYW5ndWFnZU9wdGlvbnNcbiAgfCBDU2hhcnBMYW5ndWFnZU9wdGlvbnNcbiAgfCBKYXZhTGFuZ3VhZ2VPcHRpb25zXG4gIHwgR29MYW5ndWFnZU9wdGlvbnM7XG5cbmV4cG9ydCBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIG91dHB1dDogXCJjZGt0Zi5vdXRcIixcbiAgY29kZU1ha2VyT3V0cHV0OiBcIi5nZW5cIixcbn07XG5cbmZ1bmN0aW9uIGlzUHJlc2VudChpbnB1dDogYW55W10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA+IDA7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxNYXRjaChzb3VyY2U6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHtcbiAgcmV0dXJuIHNvdXJjZS5tYXRjaCgvXihcXC5cXC98XFwuXFwuXFwvfFxcLlxcXFxcXFxcfFxcLlxcLlxcXFxcXFxcKSguKikvKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxNb2R1bGUoc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldExvY2FsTWF0Y2goc291cmNlKSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsU291cmNlQWJzb2x1dGVQYXRoPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW06IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoaXRlbSk7XG4gICAgICB0aGlzLm5hbWUgPSBwYXJzZWQubmFtZTtcbiAgICAgIHRoaXMuc291cmNlID0gcGFyc2VkLnNvdXJjZTtcbiAgICAgIHRoaXMuZnFuID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMudmVyc2lvbiA9IHBhcnNlZC52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBwYXJzZWQubmFtZXNwYWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IGl0ZW0ubmFtZXNwYWNlO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsTWF0Y2ggPSBnZXRMb2NhbE1hdGNoKHRoaXMuc291cmNlKTtcbiAgICBpZiAobG9jYWxNYXRjaCkge1xuICAgICAgdGhpcy5sb2NhbFNvdXJjZUFic29sdXRlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCB0aGlzLnNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuIHRvUGFzY2FsQ2FzZSh0aGlzLm5hbWUucmVwbGFjZSgvWy0vLl0vZywgXCJfXCIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZXNwYWNlID8gYCR7dGhpcy5uYW1lc3BhY2V9LyR7dGhpcy5uYW1lfWAgOiB0aGlzLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgbG9jYWxNYXRjaCA9IGdldExvY2FsTWF0Y2goaXRlbSk7XG4gICAgaWYgKGxvY2FsTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGZxbiA9IGxvY2FsTWF0Y2hbMl07XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKSA/PyBmcW47XG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGZxbixcbiAgICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IFtzb3VyY2UsIHZlcnNpb25dID0gaXRlbS5zcGxpdChcIkBcIik7XG4gICAgbGV0IG1vZHVsZVBhcnRzID0gc291cmNlLnNwbGl0KFwiLy9cIik7XG4gICAgaWYgKGlzUmVnaXN0cnlNb2R1bGUobW9kdWxlUGFydHNbMF0pKSB7XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1swXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBwcm92aWRlciA9IG5hbWVQYXJ0cy5wb3AoKTsgLy8gbGFzdCBwYXJ0IGlzIHRoZSBwcm92aWRlclxuICAgICAgbGV0IG5hbWUgPSBuYW1lUGFydHMucG9wKCkgPz8gc291cmNlO1xuICAgICAgbGV0IG5hbWVzcGFjZSA9IGAke25hbWVQYXJ0cy5wb3AoKX0vJHtwcm92aWRlcn1gO1xuXG4gICAgICBpZiAobW9kdWxlUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lUGFydHMucG9wKCk7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWVzcGFjZX0vJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgZnFuOiBzb3VyY2UucmVwbGFjZShcIi8vXCIsIFwiL1wiKS5yZXBsYWNlKC9cXC4vZywgXCItXCIpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgdG9Qcm9jZXNzID0gaXRlbTsgLy8gcHJvY2VzcyBvbmUgcGFydCBhdCBhIHRpbWVcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcHJlZml4XG4gICAgY29uc3QgcHJlZml4TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWjAtOV0qKTo6KC4qKS8pO1xuICAgIGlmIChwcmVmaXhNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcHJlZml4TWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBwcm90b2NvbFxuICAgIGNvbnN0IHByb3RvY29sTWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWl0qKTpcXC9cXC8oLiopLyk7XG4gICAgaWYgKHByb3RvY29sTWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHByb3RvY29sTWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gYW55dGhpbmcgYmVmb3JlIGxhc3QgJzonIHdvbid0IGNvbnRyaWJ1dGVcbiAgICBjb25zdCBjb2xvblBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiOlwiKTtcbiAgICB0b1Byb2Nlc3MgPSBjb2xvblBhcnRzLnBvcCgpID8/IHRvUHJvY2VzcztcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcG9ydFxuICAgIGNvbnN0IHBvcnRNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvXltcXGRdKiguKikvKTtcbiAgICBpZiAocG9ydE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwb3J0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBob3N0bmFtZVxuICAgIGNvbnN0IGhvc3RNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvW14vXSpcXC5bXi9dKlxcLyguKikvKTtcbiAgICBpZiAoaG9zdE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBob3N0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBhcmd1bWVudHNcbiAgICBjb25zdCBhcmd1bWVudE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC8oLiopXFw/LiovKTtcbiAgICBpZiAoYXJndW1lbnRNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gYXJndW1lbnRNYXRjaFsxXTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHR5cGVzXG4gICAgdG9Qcm9jZXNzID0gdG9Qcm9jZXNzLnJlcGxhY2UoL1xcLmdpdHxcXC5oZ3xcXC56aXAvLCBcIlwiKTtcblxuICAgIG1vZHVsZVBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiLy9cIik7XG4gICAgY29uc3QgbmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMF0uc3BsaXQoXCIvXCIpO1xuICAgIGxldCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGxldCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIGlmIChtb2R1bGVQYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVBhcnRzLnBvcCgpO1xuICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lc3BhY2V9LyR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICB9XG4gICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgZnFuOiB0b1Byb2Nlc3MucmVwbGFjZShcIi8vXCIsIFwiL1wiKSxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBPbWl0PFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LCBcImZxblwiPiB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KGl0ZW0pO1xuICAgICAgdGhpcy5uYW1lID0gcGFyc2VkLm5hbWU7XG4gICAgICB0aGlzLmZxbiA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnNvdXJjZSA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnZlcnNpb24gPSBwYXJzZWQudmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gcGFyc2VkLm5hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBpdGVtLm5hbWVzcGFjZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgW2ZxbiwgdmVyc2lvbl0gPSBpdGVtLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IG5hbWUgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBmcW4sXG4gICAgICAvLyBUZXJyYWZvcm0gZG9lc24ndCBzdXBwb3J0ICosIGluc3RlYWQgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICAgIHZlcnNpb246IHZlcnNpb24gPT09IFwiKlwiID8gdW5kZWZpbmVkIDogdmVyc2lvbixcbiAgICAgIGZxbixcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbi8vIFRoZSB0YXJnZXRWZXJzaW9ucyB2b2NhYnVsYXJ5IGlzIG93bmVkIGJ5IHRoZSBjZGt0biBwYWNrYWdlIChpdHMgY2Fub25pY2FsXG4vLyBob21lOyBjZGt0biBtdXN0IG5vdCBkZXBlbmQgb24gY29tbW9ucywgc28gdGhlIGRlcGVuZGVuY3kgZ29lcyB0aGlzIHdheSkuXG4vLyBjZGt0bidzIHB1YmxpYyAoanNpaSkgQVBJIGludGVudGlvbmFsbHkgZXhwb3NlcyBvbmx5IHRoZSBhdXRob3ItZmFjaW5nXG4vLyB2YWxpZGF0aW9uLCBzbyBjb21tb25zIGNvbnN1bWVzIHRoZSBwcm9qZWN0LWZhY2luZyB0eXBlLCBkZWZhdWx0IGJhc2VsaW5lLFxuLy8gY29udGV4dCBrZXksIGFuZCBwcm9kdWN0IGxpc3QgYXMgaW50ZXJuYWwgd2lyaW5nIHZpYSB0aGUgc3VicGF0aC5cbmltcG9ydCB7XG4gIERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TLFxuICBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyxcbiAgVEFSR0VUX1BST0RVQ1RTLFxuICBUQVJHRVRfVkVSU0lPTlNfQ09OVEVYVF9LRVksXG59IGZyb20gXCJjZGt0bi9saWIvdmFsaWRhdGlvbnNcIjtcblxuLy8gUmUtZXhwb3J0ZWQgc28gZXhpc3RpbmcgY29tbW9ucyBjb25zdW1lcnMgKGUuZy4gQGNka3RuL2NsaS1jb3JlKSBrZWVwIGFcbi8vIHNpbmdsZSBpbXBvcnQgc3VyZmFjZS5cbmV4cG9ydCB7IERFRkFVTFRfVEFSR0VUX1ZFUlNJT05TIH07XG5leHBvcnQgdHlwZSB7IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zIH07XG5cbmludGVyZmFjZSBDb25maWdCYXNlIHtcbiAgcmVhZG9ubHkgYXBwPzogc3RyaW5nO1xuICByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY29kZU1ha2VyT3V0cHV0OiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVycz86IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludFtdO1xuICB0ZXJyYWZvcm1Nb2R1bGVzPzogVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludFtdO1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgcmVhZG9ubHkgdGFyZ2V0VmVyc2lvbnM/OiBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucztcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgY29tbWFuZHMgdGhhdCBleGVjdXRlIHRoZSBUZXJyYWZvcm0tY29tcGF0aWJsZSBDTEkgKGRpZmYsXG4gICAqIGRlcGxveSwgZGVzdHJveSkgdmVyaWZ5IHRoYXQgdGhlIGluc3RhbGxlZCBiaW5hcnkgc2F0aXNmaWVzIHRoZSBkZWNsYXJlZFxuICAgKiBgdGFyZ2V0VmVyc2lvbnNgIGJlZm9yZSBydW5uaW5nIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGVJbnN0YWxsZWRCaW5hcnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgc2hhcGUgb2YgYSBgdGFyZ2V0VmVyc2lvbnNgIGRlY2xhcmF0aW9uOyByZXR1cm5zIGEgbGlzdCBvZlxuICogaHVtYW4tcmVhZGFibGUgcHJvYmxlbXMgKGVtcHR5IHdoZW4gdmFsaWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYXJnZXRWZXJzaW9ucyh0YXJnZXRWZXJzaW9uczogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgaWYgKHRhcmdldFZlcnNpb25zID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcblxuICBpZiAoXG4gICAgdHlwZW9mIHRhcmdldFZlcnNpb25zICE9PSBcIm9iamVjdFwiIHx8XG4gICAgdGFyZ2V0VmVyc2lvbnMgPT09IG51bGwgfHxcbiAgICBBcnJheS5pc0FycmF5KHRhcmdldFZlcnNpb25zKVxuICApIHtcbiAgICByZXR1cm4gW1xuICAgICAgYHRhcmdldFZlcnNpb25zIG11c3QgYmUgYW4gb2JqZWN0IG1hcHBpbmcgcHJvZHVjdHMgdG8gc2VtdmVyIHJhbmdlcywgZS5nLiB7IFwidGVycmFmb3JtXCI6IFwiPj0xLjUuN1wiIH1gLFxuICAgIF07XG4gIH1cblxuICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModGFyZ2V0VmVyc2lvbnMpO1xuICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW1xuICAgICAgYHRhcmdldFZlcnNpb25zIG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgcHJvZHVjdCAoXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpIG9yIGJlIG9taXR0ZWQgZW50aXJlbHlgLFxuICAgIF07XG4gIH1cblxuICBjb25zdCBwcm9ibGVtczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBbcHJvZHVjdCwgcmFuZ2VdIG9mIGVudHJpZXMpIHtcbiAgICBpZiAoIShUQVJHRVRfUFJPRFVDVFMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHByb2R1Y3QpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMgaGFzIHVua25vd24gcHJvZHVjdCBcIiR7cHJvZHVjdH1cIiAoZXhwZWN0ZWQgXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpYCxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiByYW5nZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgcHJvYmxlbXMucHVzaChcbiAgICAgICAgYHRhcmdldFZlcnNpb25zLiR7cHJvZHVjdH0gbXVzdCBiZSBhIHNlbXZlciByYW5nZSBzdHJpbmcsIGdvdCAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHJhbmdlLFxuICAgICAgICApfWAsXG4gICAgICApO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChyYW5nZS5pbmNsdWRlcyhcIn4+XCIpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMuJHtwcm9kdWN0fSBcIiR7cmFuZ2V9XCIgdXNlcyBUZXJyYWZvcm0gcHJvdmlkZXIgY29uc3RyYWludCBzeW50YXg7IHVzZSBucG0gc2VtdmVyIHJhbmdlcyBpbnN0ZWFkIChlLmcuIFwiPj0xLjUuN1wiIG9yIFwifjEuNS43XCIpYCxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHNlbXZlci52YWxpZFJhbmdlKHJhbmdlKSA9PT0gbnVsbCkge1xuICAgICAgcHJvYmxlbXMucHVzaChcbiAgICAgICAgYHRhcmdldFZlcnNpb25zLiR7cHJvZHVjdH0gXCIke3JhbmdlfVwiIGlzIG5vdCBhIHZhbGlkIHNlbXZlciByYW5nZWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcm9ibGVtcztcbn1cblxuLyoqXG4gKiBMYW5ndWFnZS1zcGVjaWZpYyBjb2RlIGdlbmVyYXRpb24gb3B0aW9ucywgZGlzY3JpbWluYXRlZCBieSBgbGFuZ3VhZ2VgLlxuICogT25seSBUeXBlU2NyaXB0IGN1cnJlbnRseSBoYXMgdHVuYWJsZSBvcHRpb25zOyBhbGwgb3RoZXIgbGFuZ3VhZ2VzXG4gKiBhY2NlcHQgYW4gZW1wdHkgYGxhbmd1YWdlT3B0aW9uc2Agb2JqZWN0IGFzIGEgZnV0dXJlIGV4dGVuc2lvbiBwb2ludC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0gQ29uZmlnQmFzZSAmXG4gIChcbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U/OiBMYW5ndWFnZS5UWVBFU0NSSVBUO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBUeXBlU2NyaXB0TGFuZ3VhZ2VPcHRpb25zO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZTogTGFuZ3VhZ2UuUFlUSE9OO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBQeXRob25MYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5DU0hBUlA7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IENTaGFycExhbmd1YWdlT3B0aW9ucztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U6IExhbmd1YWdlLkpBVkE7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IEphdmFMYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5HTztcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2VPcHRpb25zPzogR29MYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbmZpZyA9IChjb25maWdKU09OPzogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIC4uLkNPTkZJR19ERUZBVUxUUyxcbiAgICAuLi5KU09OLnBhcnNlKGNvbmZpZ0pTT04gfHwgXCJ7fVwiKSxcbiAgfTtcblxuICBpZiAoaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzKSkge1xuICAgIGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzID0gY29uZmlnLnRlcnJhZm9ybU1vZHVsZXM/Lm1hcChcbiAgICAgIChtb2QpID0+IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KG1vZCksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycykpIHtcbiAgICBjb25maWcudGVycmFmb3JtUHJvdmlkZXJzID0gY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycz8ubWFwKFxuICAgICAgKHByb3ZpZGVyKSA9PiBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KHByb3ZpZGVyKSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgdGFyZ2V0VmVyc2lvblByb2JsZW1zID0gdmFsaWRhdGVUYXJnZXRWZXJzaW9ucyhjb25maWcudGFyZ2V0VmVyc2lvbnMpO1xuICBpZiAodGFyZ2V0VmVyc2lvblByb2JsZW1zLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCAke0NPTkZJR19GSUxFfTpcXG4gICR7dGFyZ2V0VmVyc2lvblByb2JsZW1zLmpvaW4oXCJcXG4gIFwiKX1gLFxuICAgICk7XG4gIH1cblxuICAvLyBkZWNsYXJlZCB0YXJnZXQgdmVyc2lvbnMgcmlkZSBhbG9uZyBpbiB0aGUgY29udGV4dCBzbyB0aGV5IHJlYWNoIHRoZVxuICAvLyBzeW50aGVzaXplZCBhcHAgd2l0aG91dCBhIHNlcGFyYXRlIGNoYW5uZWxcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICAuLi5jb25maWcuY29udGV4dCxcbiAgICAuLi4oY29uZmlnLnRhcmdldFZlcnNpb25zXG4gICAgICA/IHsgW1RBUkdFVF9WRVJTSU9OU19DT05URVhUX0tFWV06IGNvbmZpZy50YXJnZXRWZXJzaW9ucyB9XG4gICAgICA6IHt9KSxcbiAgfTtcbiAgaWYgKE9iamVjdC5rZXlzKGNvbnRleHQpLmxlbmd0aCA+IDApIHtcbiAgICBlbnZbQ09OVEVYVF9FTlZdID0gSlNPTi5zdHJpbmdpZnkoY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb25maWdTeW5jKFxuICBjb25maWdGaWxlID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIENPTkZJR19GSUxFKSxcbik6IENvbmZpZyB7XG4gIGxldCBjb25maWdGaWxlQ29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGlmIChmcy5leGlzdHNTeW5jKGNvbmZpZ0ZpbGUpKSB7XG4gICAgY29uZmlnRmlsZUNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoY29uZmlnRmlsZSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZUNvbmZpZyhjb25maWdGaWxlQ29udGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRDaGVja0NvZGVNYWtlck91dHB1dChjb25maWc6IENvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGlzUHJlc2VudChjb25maWcudGVycmFmb3JtTW9kdWxlcykgfHwgaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dUaW1lc3BhbihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgbG9nZ2VyLmRlYnVnKGBTdGFydCB0aW1lciBmb3IgJHttZXNzYWdlfS4uLmApO1xuICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGxvZ1RpbWVzcGFuRW5kKCkge1xuICAgIGNvbnN0IGVuZCA9IERhdGUubm93KCk7XG4gICAgY29uc3QgZHVyYXRpb24gPSBlbmQgLSBzdGFydDtcbiAgICBsb2dnZXIuZGVidWcoYCR7bWVzc2FnZX0gdG9vayAke2R1cmF0aW9ufW1zYCk7XG4gIH07XG59XG4iXX0=
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3RUgsc0NBRUM7QUEyT0Qsb0RBY0M7QUFNRCx3REFrREM7QUFtRkQsd0NBVUM7QUFFRCxnRUFJQztBQUVELGtDQVNDO0FBdmVELDZDQUErQjtBQUMvQiwyQ0FBNkI7QUFDN0IsK0NBQWlDO0FBQ2pDLHVDQUFtQztBQUNuQyx5REFBc0Q7QUFDdEQscUNBQThCO0FBQzlCLHlDQUF5QztBQUV6QyxJQUFZLFFBTVg7QUFORCxXQUFZLFFBQVE7SUFDbEIscUNBQXlCLENBQUE7SUFDekIsNkJBQWlCLENBQUE7SUFDakIsNkJBQWlCLENBQUE7SUFDakIseUJBQWEsQ0FBQTtJQUNiLHFCQUFTLENBQUE7QUFDWCxDQUFDLEVBTlcsUUFBUSx3QkFBUixRQUFRLFFBTW5CO0FBRVksUUFBQSxTQUFTLEdBQUc7SUFDdkIsUUFBUSxDQUFDLFVBQVU7SUFDbkIsUUFBUSxDQUFDLE1BQU07SUFDZixRQUFRLENBQUMsSUFBSTtJQUNiLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLEVBQUU7Q0FDWixDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUM7QUFFekMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO0FBd0JwQixRQUFBLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsV0FBVztJQUNuQixlQUFlLEVBQUUsTUFBTTtDQUN4QixDQUFDO0FBRUYsU0FBUyxTQUFTLENBQUMsS0FBd0I7SUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFTRCxTQUFTLGFBQWEsQ0FBQyxNQUFjO0lBQ25DLE9BQU8sTUFBTSxDQUFDLEtBQUss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LGtCQUFrQixDQUFDLENBQzNFLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLE9BQWU7SUFDekMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXpCLE9BQU8sU0FBUyxjQUFjO1FBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQzdCLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxTQUFTLFFBQVEsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSBcInNlbXZlclwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuaW1wb3J0IHsgaXNSZWdpc3RyeU1vZHVsZSB9IGZyb20gXCIuL3RlcnJhZm9ybS1tb2R1bGVcIjtcbmltcG9ydCB7IGVudiB9IGZyb20gXCJwcm9jZXNzXCI7XG5pbXBvcnQgeyB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5cbmV4cG9ydCBlbnVtIExhbmd1YWdlIHtcbiAgVFlQRVNDUklQVCA9IFwidHlwZXNjcmlwdFwiLFxuICBQWVRIT04gPSBcInB5dGhvblwiLFxuICBDU0hBUlAgPSBcImNzaGFycFwiLFxuICBKQVZBID0gXCJqYXZhXCIsXG4gIEdPID0gXCJnb1wiLFxufVxuXG5leHBvcnQgY29uc3QgTEFOR1VBR0VTID0gW1xuICBMYW5ndWFnZS5UWVBFU0NSSVBULFxuICBMYW5ndWFnZS5QWVRIT04sXG4gIExhbmd1YWdlLkpBVkEsXG4gIExhbmd1YWdlLkNTSEFSUCxcbiAgTGFuZ3VhZ2UuR08sXG5dO1xuXG5jb25zdCBDT05URVhUX0VOViA9IFwiQ0RLVEZfQ09OVEVYVF9KU09OXCI7XG5cbmNvbnN0IENPTkZJR19GSUxFID0gXCJjZGt0Zi5qc29uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVNjcmlwdExhbmd1YWdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTdWZmaXggdG8gYXBwZW5kIHRvIHJlbGF0aXZlIGltcG9ydHMuXG4gICAqIERlZmF1bHRzIHRvIFwiXCIgKENvbW1vbkpTKS5cbiAgICogVXNlIFwiLmpzXCIgb3IgXCIudHNcIiBmb3IgRVNNLWNvbXBhdGlibGUgaW1wb3J0cy5cbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydEV4dGVuc2lvbj86IHN0cmluZztcbn1cblxuLy8gRm9yIG5vdywgdGhlc2UgbGFuZ3VhZ2VzIGhhdmUgbm8gbGFuZ3VhZ2Utc3BlY2lmaWMgb3B0aW9ucy5cbmV4cG9ydCB0eXBlIFB5dGhvbkxhbmd1YWdlT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbmV4cG9ydCB0eXBlIENTaGFycExhbmd1YWdlT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcbmV4cG9ydCB0eXBlIEphdmFMYW5ndWFnZU9wdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5leHBvcnQgdHlwZSBHb0xhbmd1YWdlT3B0aW9ucyA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuZXhwb3J0IHR5cGUgTGFuZ3VhZ2VPcHRpb25zID1cbiAgfCBUeXBlU2NyaXB0TGFuZ3VhZ2VPcHRpb25zXG4gIHwgUHl0aG9uTGFuZ3VhZ2VPcHRpb25zXG4gIHwgQ1NoYXJwTGFuZ3VhZ2VPcHRpb25zXG4gIHwgSmF2YUxhbmd1YWdlT3B0aW9uc1xuICB8IEdvTGFuZ3VhZ2VPcHRpb25zO1xuXG5leHBvcnQgY29uc3QgQ09ORklHX0RFRkFVTFRTID0ge1xuICBvdXRwdXQ6IFwiY2RrdGYub3V0XCIsXG4gIGNvZGVNYWtlck91dHB1dDogXCIuZ2VuXCIsXG59O1xuXG5mdW5jdGlvbiBpc1ByZXNlbnQoaW5wdXQ6IGFueVtdIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGlucHV0KSAmJiBpbnB1dC5sZW5ndGggPiAwO1xufVxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsTWF0Y2goc291cmNlOiBzdHJpbmcpOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB7XG4gIHJldHVybiBzb3VyY2UubWF0Y2goL14oXFwuXFwvfFxcLlxcLlxcL3xcXC5cXFxcXFxcXHxcXC5cXC5cXFxcXFxcXCkoLiopLyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xvY2FsTW9kdWxlKHNvdXJjZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRMb2NhbE1hdGNoKHNvdXJjZSkgIT09IG51bGw7XG59XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IGltcGxlbWVudHMgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhbFNvdXJjZUFic29sdXRlUGF0aD86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KGl0ZW0pO1xuICAgICAgdGhpcy5uYW1lID0gcGFyc2VkLm5hbWU7XG4gICAgICB0aGlzLnNvdXJjZSA9IHBhcnNlZC5zb3VyY2U7XG4gICAgICB0aGlzLmZxbiA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnZlcnNpb24gPSBwYXJzZWQudmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gcGFyc2VkLm5hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3VyY2UgPSBpdGVtLnNvdXJjZTtcbiAgICAgIHRoaXMubmFtZSA9IGl0ZW0ubmFtZTtcbiAgICAgIHRoaXMuZnFuID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy52ZXJzaW9uID0gaXRlbS52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBpdGVtLm5hbWVzcGFjZTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbE1hdGNoID0gZ2V0TG9jYWxNYXRjaCh0aGlzLnNvdXJjZSk7XG4gICAgaWYgKGxvY2FsTWF0Y2gpIHtcbiAgICAgIHRoaXMubG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgdGhpcy5zb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiB0b1Bhc2NhbENhc2UodGhpcy5uYW1lLnJlcGxhY2UoL1stLy5dL2csIFwiX1wiKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbGVOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWVzcGFjZSA/IGAke3RoaXMubmFtZXNwYWNlfS8ke3RoaXMubmFtZX1gIDogdGhpcy5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KFxuICAgIGl0ZW06IHN0cmluZyxcbiAgKTogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICAgIGNvbnN0IGxvY2FsTWF0Y2ggPSBnZXRMb2NhbE1hdGNoKGl0ZW0pO1xuICAgIGlmIChsb2NhbE1hdGNoKSB7XG4gICAgICBjb25zdCBmcW4gPSBsb2NhbE1hdGNoWzJdO1xuICAgICAgY29uc3QgbmFtZVBhcnRzID0gZnFuLnNwbGl0KFwiL1wiKTtcbiAgICAgIGNvbnN0IG5hbWUgPSBuYW1lUGFydHMucG9wKCkgPz8gZnFuO1xuICAgICAgY29uc3QgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBmcW4sXG4gICAgICAgIHNvdXJjZTogaXRlbSxcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBbc291cmNlLCB2ZXJzaW9uXSA9IGl0ZW0uc3BsaXQoXCJAXCIpO1xuICAgIGxldCBtb2R1bGVQYXJ0cyA9IHNvdXJjZS5zcGxpdChcIi8vXCIpO1xuICAgIGlmIChpc1JlZ2lzdHJ5TW9kdWxlKG1vZHVsZVBhcnRzWzBdKSkge1xuICAgICAgY29uc3QgbmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMF0uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgcHJvdmlkZXIgPSBuYW1lUGFydHMucG9wKCk7IC8vIGxhc3QgcGFydCBpcyB0aGUgcHJvdmlkZXJcbiAgICAgIGxldCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpID8/IHNvdXJjZTtcbiAgICAgIGxldCBuYW1lc3BhY2UgPSBgJHtuYW1lUGFydHMucG9wKCl9LyR7cHJvdmlkZXJ9YDtcblxuICAgICAgaWYgKG1vZHVsZVBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMV0uc3BsaXQoXCIvXCIpO1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVBhcnRzLnBvcCgpO1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lc3BhY2V9LyR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgICAgbmFtZSA9IG1vZHVsZU5hbWUgPz8gbmFtZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgc291cmNlLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGZxbjogc291cmNlLnJlcGxhY2UoXCIvL1wiLCBcIi9cIikucmVwbGFjZSgvXFwuL2csIFwiLVwiKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHRvUHJvY2VzcyA9IGl0ZW07IC8vIHByb2Nlc3Mgb25lIHBhcnQgYXQgYSB0aW1lXG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHByZWZpeFxuICAgIGNvbnN0IHByZWZpeE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC9eKFthLXpBLVowLTldKik6OiguKikvKTtcbiAgICBpZiAocHJlZml4TWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHByZWZpeE1hdGNoWzJdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcHJvdG9jb2xcbiAgICBjb25zdCBwcm90b2NvbE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC9eKFthLXpBLVpdKik6XFwvXFwvKC4qKS8pO1xuICAgIGlmIChwcm90b2NvbE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwcm90b2NvbE1hdGNoWzJdO1xuICAgIH1cblxuICAgIC8vIGFueXRoaW5nIGJlZm9yZSBsYXN0ICc6JyB3b24ndCBjb250cmlidXRlXG4gICAgY29uc3QgY29sb25QYXJ0cyA9IHRvUHJvY2Vzcy5zcGxpdChcIjpcIik7XG4gICAgdG9Qcm9jZXNzID0gY29sb25QYXJ0cy5wb3AoKSA/PyB0b1Byb2Nlc3M7XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHBvcnRcbiAgICBjb25zdCBwb3J0TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL15bXFxkXSooLiopLyk7XG4gICAgaWYgKHBvcnRNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcG9ydE1hdGNoWzFdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgaG9zdG5hbWVcbiAgICBjb25zdCBob3N0TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL1teL10qXFwuW14vXSpcXC8oLiopLyk7XG4gICAgaWYgKGhvc3RNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gaG9zdE1hdGNoWzFdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgYXJndW1lbnRzXG4gICAgY29uc3QgYXJndW1lbnRNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvKC4qKVxcPy4qLyk7XG4gICAgaWYgKGFyZ3VtZW50TWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IGFyZ3VtZW50TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSB0eXBlc1xuICAgIHRvUHJvY2VzcyA9IHRvUHJvY2Vzcy5yZXBsYWNlKC9cXC5naXR8XFwuaGd8XFwuemlwLywgXCJcIik7XG5cbiAgICBtb2R1bGVQYXJ0cyA9IHRvUHJvY2Vzcy5zcGxpdChcIi8vXCIpO1xuICAgIGNvbnN0IG5hbWVQYXJ0cyA9IG1vZHVsZVBhcnRzWzBdLnNwbGl0KFwiL1wiKTtcbiAgICBsZXQgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKTtcbiAgICBsZXQgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgbmFtZSBzaG91bGQgYmUgcHJvcGVybHkgc2V0IGluICR7aXRlbX1gKTtcbiAgICB9XG5cbiAgICBpZiAobW9kdWxlUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgbW9kdWxlTmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMV0uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IG1vZHVsZU5hbWVQYXJ0cy5wb3AoKTtcbiAgICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgICAgbmFtZXNwYWNlID0gYCR7bmFtZXNwYWNlfS8ke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgfVxuICAgICAgbmFtZSA9IG1vZHVsZU5hbWUgPz8gbmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIHNvdXJjZTogaXRlbSxcbiAgICAgIGZxbjogdG9Qcm9jZXNzLnJlcGxhY2UoXCIvL1wiLCBcIi9cIiksXG4gICAgICBuYW1lc3BhY2UsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50IGltcGxlbWVudHMgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoaXRlbTogT21pdDxUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCwgXCJmcW5cIj4gfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VEZXBlbmRlbmN5Q29uc3RyYWludChpdGVtKTtcbiAgICAgIHRoaXMubmFtZSA9IHBhcnNlZC5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBwYXJzZWQuZnFuO1xuICAgICAgdGhpcy5zb3VyY2UgPSBwYXJzZWQuZnFuO1xuICAgICAgdGhpcy52ZXJzaW9uID0gcGFyc2VkLnZlcnNpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IHBhcnNlZC5uYW1lc3BhY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubmFtZSA9IGl0ZW0ubmFtZTtcbiAgICAgIHRoaXMuZnFuID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy52ZXJzaW9uID0gaXRlbS52ZXJzaW9uO1xuICAgICAgdGhpcy5zb3VyY2UgPSBpdGVtLnNvdXJjZTtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gaXRlbS5uYW1lc3BhY2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KFxuICAgIGl0ZW06IHN0cmluZyxcbiAgKTogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICAgIGNvbnN0IFtmcW4sIHZlcnNpb25dID0gaXRlbS5zcGxpdChcIkBcIik7XG4gICAgY29uc3QgbmFtZVBhcnRzID0gZnFuLnNwbGl0KFwiL1wiKTtcbiAgICBjb25zdCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IG5hbWVQYXJ0cy5wb3AoKTtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvdmlkZXIgbmFtZSBzaG91bGQgYmUgcHJvcGVybHkgc2V0IGluICR7aXRlbX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIHNvdXJjZTogZnFuLFxuICAgICAgLy8gVGVycmFmb3JtIGRvZXNuJ3Qgc3VwcG9ydCAqLCBpbnN0ZWFkIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAgICB2ZXJzaW9uOiB2ZXJzaW9uID09PSBcIipcIiA/IHVuZGVmaW5lZCA6IHZlcnNpb24sXG4gICAgICBmcW4sXG4gICAgICBuYW1lc3BhY2UsXG4gICAgfTtcbiAgfVxufVxuXG4vLyBUaGUgdGFyZ2V0VmVyc2lvbnMgdm9jYWJ1bGFyeSBpcyBvd25lZCBieSB0aGUgY2RrdG4gcGFja2FnZSAoaXRzIGNhbm9uaWNhbFxuLy8gaG9tZTsgY2RrdG4gbXVzdCBub3QgZGVwZW5kIG9uIGNvbW1vbnMsIHNvIHRoZSBkZXBlbmRlbmN5IGdvZXMgdGhpcyB3YXkpLlxuLy8gY2RrdG4ncyBwdWJsaWMgKGpzaWkpIEFQSSBpbnRlbnRpb25hbGx5IGV4cG9zZXMgb25seSB0aGUgYXV0aG9yLWZhY2luZ1xuLy8gdmFsaWRhdGlvbiwgc28gY29tbW9ucyBjb25zdW1lcyB0aGUgcHJvamVjdC1mYWNpbmcgdHlwZSwgZGVmYXVsdCBiYXNlbGluZSxcbi8vIGNvbnRleHQga2V5LCBhbmQgcHJvZHVjdCBsaXN0IGFzIGludGVybmFsIHdpcmluZyB2aWEgdGhlIHN1YnBhdGguXG5pbXBvcnQge1xuICBERUZBVUxUX1RBUkdFVF9WRVJTSU9OUyxcbiAgVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnMsXG4gIFRBUkdFVF9QUk9EVUNUUyxcbiAgVEFSR0VUX1ZFUlNJT05TX0NPTlRFWFRfS0VZLFxufSBmcm9tIFwiY2RrdG4vbGliL3ZhbGlkYXRpb25zXCI7XG5cbi8vIFJlLWV4cG9ydGVkIHNvIGV4aXN0aW5nIGNvbW1vbnMgY29uc3VtZXJzIChlLmcuIEBjZGt0bi9jbGktY29yZSkga2VlcCBhXG4vLyBzaW5nbGUgaW1wb3J0IHN1cmZhY2UuXG5leHBvcnQgeyBERUZBVUxUX1RBUkdFVF9WRVJTSU9OUyB9O1xuZXhwb3J0IHR5cGUgeyBUZXJyYWZvcm1UYXJnZXRWZXJzaW9ucyB9O1xuXG5pbnRlcmZhY2UgQ29uZmlnQmFzZSB7XG4gIHJlYWRvbmx5IGFwcD86IHN0cmluZztcbiAgcmVhZG9ubHkgb3V0cHV0OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZGVNYWtlck91dHB1dDogc3RyaW5nO1xuICB0ZXJyYWZvcm1Qcm92aWRlcnM/OiBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnRbXTtcbiAgdGVycmFmb3JtTW9kdWxlcz86IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnRbXTtcbiAgcmVhZG9ubHkgY29udGV4dD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIHJlYWRvbmx5IHRhcmdldFZlcnNpb25zPzogVGVycmFmb3JtVGFyZ2V0VmVyc2lvbnM7XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIGNvbW1hbmRzIHRoYXQgZXhlY3V0ZSB0aGUgVGVycmFmb3JtLWNvbXBhdGlibGUgQ0xJIChkaWZmLFxuICAgKiBkZXBsb3ksIGRlc3Ryb3kpIHZlcmlmeSB0aGF0IHRoZSBpbnN0YWxsZWQgYmluYXJ5IHNhdGlzZmllcyB0aGUgZGVjbGFyZWRcbiAgICogYHRhcmdldFZlcnNpb25zYCBiZWZvcmUgcnVubmluZyBpdC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlSW5zdGFsbGVkQmluYXJ5PzogYm9vbGVhbjtcbiAgLy8gT24gZGlzayBlaXRoZXIgZmxhZyBtYXkgYmUgdGhlIHN0cmluZyBcInRydWVcIi9cImZhbHNlXCIgKHRoZSBpbml0IHRlbXBsYXRlc1xuICAvLyByZW5kZXIgaXQgdGhhdCB3YXkpOyBwYXJzZUNvbmZpZyBub3JtYWxpc2VzIGJvdGggdG8gYSBib29sZWFuLlxuICByZWFkb25seSBzZW5kQ3Jhc2hSZXBvcnRzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc2VuZFVzYWdlVGVsZW1ldHJ5PzogYm9vbGVhbjtcbn1cblxuY29uc3QgQ09OU0VOVF9GTEFHUyA9IFtcInNlbmRDcmFzaFJlcG9ydHNcIiwgXCJzZW5kVXNhZ2VUZWxlbWV0cnlcIl0gYXMgY29uc3Q7XG5cbi8qKiBBIGJvb2xlYW4gb3IgXCJ0cnVlXCIvXCJmYWxzZVwiIGlzIGEgZGVjaXNpb247IGFueXRoaW5nIGVsc2UgaXMgdW5zZXQuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQ29uc2VudEZsYWcoXG4gIGtleTogKHR5cGVvZiBDT05TRU5UX0ZMQUdTKVtudW1iZXJdLFxuICB2YWx1ZTogdW5rbm93bixcbik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAodmFsdWUgPT09IFwidHJ1ZVwiIHx8IHZhbHVlID09PSBcImZhbHNlXCIpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IFwidHJ1ZVwiO1xuICB9XG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgSWdub3JpbmcgJHtrZXl9IGluICR7Q09ORklHX0ZJTEV9OiBleHBlY3RlZCBhIGJvb2xlYW4sIGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gLFxuICApO1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgc2hhcGUgb2YgYSBgdGFyZ2V0VmVyc2lvbnNgIGRlY2xhcmF0aW9uOyByZXR1cm5zIGEgbGlzdCBvZlxuICogaHVtYW4tcmVhZGFibGUgcHJvYmxlbXMgKGVtcHR5IHdoZW4gdmFsaWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVUYXJnZXRWZXJzaW9ucyh0YXJnZXRWZXJzaW9uczogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgaWYgKHRhcmdldFZlcnNpb25zID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcblxuICBpZiAoXG4gICAgdHlwZW9mIHRhcmdldFZlcnNpb25zICE9PSBcIm9iamVjdFwiIHx8XG4gICAgdGFyZ2V0VmVyc2lvbnMgPT09IG51bGwgfHxcbiAgICBBcnJheS5pc0FycmF5KHRhcmdldFZlcnNpb25zKVxuICApIHtcbiAgICByZXR1cm4gW1xuICAgICAgYHRhcmdldFZlcnNpb25zIG11c3QgYmUgYW4gb2JqZWN0IG1hcHBpbmcgcHJvZHVjdHMgdG8gc2VtdmVyIHJhbmdlcywgZS5nLiB7IFwidGVycmFmb3JtXCI6IFwiPj0xLjUuN1wiIH1gLFxuICAgIF07XG4gIH1cblxuICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModGFyZ2V0VmVyc2lvbnMpO1xuICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW1xuICAgICAgYHRhcmdldFZlcnNpb25zIG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgcHJvZHVjdCAoXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpIG9yIGJlIG9taXR0ZWQgZW50aXJlbHlgLFxuICAgIF07XG4gIH1cblxuICBjb25zdCBwcm9ibGVtczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBbcHJvZHVjdCwgcmFuZ2VdIG9mIGVudHJpZXMpIHtcbiAgICBpZiAoIShUQVJHRVRfUFJPRFVDVFMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHByb2R1Y3QpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMgaGFzIHVua25vd24gcHJvZHVjdCBcIiR7cHJvZHVjdH1cIiAoZXhwZWN0ZWQgXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpYCxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiByYW5nZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgcHJvYmxlbXMucHVzaChcbiAgICAgICAgYHRhcmdldFZlcnNpb25zLiR7cHJvZHVjdH0gbXVzdCBiZSBhIHNlbXZlciByYW5nZSBzdHJpbmcsIGdvdCAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHJhbmdlLFxuICAgICAgICApfWAsXG4gICAgICApO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChyYW5nZS5pbmNsdWRlcyhcIn4+XCIpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMuJHtwcm9kdWN0fSBcIiR7cmFuZ2V9XCIgdXNlcyBUZXJyYWZvcm0gcHJvdmlkZXIgY29uc3RyYWludCBzeW50YXg7IHVzZSBucG0gc2VtdmVyIHJhbmdlcyBpbnN0ZWFkIChlLmcuIFwiPj0xLjUuN1wiIG9yIFwifjEuNS43XCIpYCxcbiAgICAgICk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKHNlbXZlci52YWxpZFJhbmdlKHJhbmdlKSA9PT0gbnVsbCkge1xuICAgICAgcHJvYmxlbXMucHVzaChcbiAgICAgICAgYHRhcmdldFZlcnNpb25zLiR7cHJvZHVjdH0gXCIke3JhbmdlfVwiIGlzIG5vdCBhIHZhbGlkIHNlbXZlciByYW5nZWAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcm9ibGVtcztcbn1cblxuLyoqXG4gKiBMYW5ndWFnZS1zcGVjaWZpYyBjb2RlIGdlbmVyYXRpb24gb3B0aW9ucywgZGlzY3JpbWluYXRlZCBieSBgbGFuZ3VhZ2VgLlxuICogT25seSBUeXBlU2NyaXB0IGN1cnJlbnRseSBoYXMgdHVuYWJsZSBvcHRpb25zOyBhbGwgb3RoZXIgbGFuZ3VhZ2VzXG4gKiBhY2NlcHQgYW4gZW1wdHkgYGxhbmd1YWdlT3B0aW9uc2Agb2JqZWN0IGFzIGEgZnV0dXJlIGV4dGVuc2lvbiBwb2ludC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0gQ29uZmlnQmFzZSAmXG4gIChcbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U/OiBMYW5ndWFnZS5UWVBFU0NSSVBUO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBUeXBlU2NyaXB0TGFuZ3VhZ2VPcHRpb25zO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZTogTGFuZ3VhZ2UuUFlUSE9OO1xuICAgICAgICByZWFkb25seSBsYW5ndWFnZU9wdGlvbnM/OiBQeXRob25MYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5DU0hBUlA7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IENTaGFycExhbmd1YWdlT3B0aW9ucztcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2U6IExhbmd1YWdlLkpBVkE7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlT3B0aW9ucz86IEphdmFMYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHJlYWRvbmx5IGxhbmd1YWdlOiBMYW5ndWFnZS5HTztcbiAgICAgICAgcmVhZG9ubHkgbGFuZ3VhZ2VPcHRpb25zPzogR29MYW5ndWFnZU9wdGlvbnM7XG4gICAgICB9XG4gICk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbmZpZyA9IChjb25maWdKU09OPzogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGNvbmZpZzogQ29uZmlnID0ge1xuICAgIC4uLkNPTkZJR19ERUZBVUxUUyxcbiAgICAuLi5KU09OLnBhcnNlKGNvbmZpZ0pTT04gfHwgXCJ7fVwiKSxcbiAgfTtcblxuICBpZiAoaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzKSkge1xuICAgIGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzID0gY29uZmlnLnRlcnJhZm9ybU1vZHVsZXM/Lm1hcChcbiAgICAgIChtb2QpID0+IG5ldyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KG1vZCksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycykpIHtcbiAgICBjb25maWcudGVycmFmb3JtUHJvdmlkZXJzID0gY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycz8ubWFwKFxuICAgICAgKHByb3ZpZGVyKSA9PiBuZXcgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50KHByb3ZpZGVyKSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZmxhZ3MgPSBjb25maWcgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgZm9yIChjb25zdCBrZXkgb2YgQ09OU0VOVF9GTEFHUykge1xuICAgIGlmIChrZXkgaW4gZmxhZ3MpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVDb25zZW50RmxhZyhrZXksIGZsYWdzW2tleV0pO1xuICAgICAgaWYgKG5vcm1hbGl6ZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkZWxldGUgZmxhZ3Nba2V5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZsYWdzW2tleV0gPSBub3JtYWxpemVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHRhcmdldFZlcnNpb25Qcm9ibGVtcyA9IHZhbGlkYXRlVGFyZ2V0VmVyc2lvbnMoY29uZmlnLnRhcmdldFZlcnNpb25zKTtcbiAgaWYgKHRhcmdldFZlcnNpb25Qcm9ibGVtcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgJHtDT05GSUdfRklMRX06XFxuICAke3RhcmdldFZlcnNpb25Qcm9ibGVtcy5qb2luKFwiXFxuICBcIil9YCxcbiAgICApO1xuICB9XG5cbiAgLy8gZGVjbGFyZWQgdGFyZ2V0IHZlcnNpb25zIHJpZGUgYWxvbmcgaW4gdGhlIGNvbnRleHQgc28gdGhleSByZWFjaCB0aGVcbiAgLy8gc3ludGhlc2l6ZWQgYXBwIHdpdGhvdXQgYSBzZXBhcmF0ZSBjaGFubmVsXG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgLi4uY29uZmlnLmNvbnRleHQsXG4gICAgLi4uKGNvbmZpZy50YXJnZXRWZXJzaW9uc1xuICAgICAgPyB7IFtUQVJHRVRfVkVSU0lPTlNfQ09OVEVYVF9LRVldOiBjb25maWcudGFyZ2V0VmVyc2lvbnMgfVxuICAgICAgOiB7fSksXG4gIH07XG4gIGlmIChPYmplY3Qua2V5cyhjb250ZXh0KS5sZW5ndGggPiAwKSB7XG4gICAgZW52W0NPTlRFWFRfRU5WXSA9IEpTT04uc3RyaW5naWZ5KGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQ29uZmlnU3luYyhcbiAgY29uZmlnRmlsZSA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBDT05GSUdfRklMRSksXG4pOiBDb25maWcge1xuICBsZXQgY29uZmlnRmlsZUNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBpZiAoZnMuZXhpc3RzU3luYyhjb25maWdGaWxlKSkge1xuICAgIGNvbmZpZ0ZpbGVDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGNvbmZpZ0ZpbGUpLnRvU3RyaW5nKCk7XG4gIH1cblxuICByZXR1cm4gcGFyc2VDb25maWcoY29uZmlnRmlsZUNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkQ2hlY2tDb2RlTWFrZXJPdXRwdXQoY29uZmlnOiBDb25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMpIHx8IGlzUHJlc2VudChjb25maWcudGVycmFmb3JtUHJvdmlkZXJzKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nVGltZXNwYW4obWVzc2FnZTogc3RyaW5nKSB7XG4gIGxvZ2dlci5kZWJ1ZyhgU3RhcnQgdGltZXIgZm9yICR7bWVzc2FnZX0uLi5gKTtcbiAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuXG4gIHJldHVybiBmdW5jdGlvbiBsb2dUaW1lc3BhbkVuZCgpIHtcbiAgICBjb25zdCBlbmQgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gZW5kIC0gc3RhcnQ7XG4gICAgbG9nZ2VyLmRlYnVnKGAke21lc3NhZ2V9IHRvb2sgJHtkdXJhdGlvbn1tc2ApO1xuICB9O1xufVxuIl19
|
package/build/config.test.js
CHANGED
|
@@ -693,6 +693,28 @@ describe("parseConfig", () => {
|
|
|
693
693
|
`);
|
|
694
694
|
});
|
|
695
695
|
});
|
|
696
|
+
describe("consent flags", () => {
|
|
697
|
+
it.each([
|
|
698
|
+
[true, true],
|
|
699
|
+
[false, false],
|
|
700
|
+
// the init templates render the flags as strings
|
|
701
|
+
["true", true],
|
|
702
|
+
["false", false],
|
|
703
|
+
["yes", undefined],
|
|
704
|
+
[1, undefined],
|
|
705
|
+
[null, undefined],
|
|
706
|
+
])("normalises %p to %p", (value, expected) => {
|
|
707
|
+
const config = (0, config_1.parseConfig)(JSON.stringify({ sendCrashReports: value, sendUsageTelemetry: value }));
|
|
708
|
+
expect(config.sendCrashReports).toBe(expected);
|
|
709
|
+
expect(config.sendUsageTelemetry).toBe(expected);
|
|
710
|
+
expect("sendUsageTelemetry" in config).toBe(expected !== undefined);
|
|
711
|
+
});
|
|
712
|
+
it("leaves an absent flag absent", () => {
|
|
713
|
+
const config = (0, config_1.parseConfig)(JSON.stringify({ sendCrashReports: true }));
|
|
714
|
+
expect(config.sendCrashReports).toBe(true);
|
|
715
|
+
expect("sendUsageTelemetry" in config).toBe(false);
|
|
716
|
+
});
|
|
717
|
+
});
|
|
696
718
|
describe("targetVersions", () => {
|
|
697
719
|
const ENV_KEY = "CDKTF_CONTEXT_JSON";
|
|
698
720
|
let envBefore;
|
|
@@ -746,4 +768,4 @@ describe("parseConfig", () => {
|
|
|
746
768
|
});
|
|
747
769
|
});
|
|
748
770
|
});
|
|
749
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsMEJBT0M7QUF2QkQsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxxQ0FBdUM7QUFDdkMsNkNBQStCO0FBQy9CLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFFN0I7Ozs7R0FJRztBQUNILFNBQVMsV0FBVyxDQUFDLENBQVM7SUFDNUIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRU0sS0FBSyxVQUFVLE9BQU8sQ0FBQyxPQUF1QztJQUNuRSxNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0FBQ0gsQ0FBQztBQUVELFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzNCLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM5QyxNQUFNLENBQUMsSUFBQSxvQkFBVyxHQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7S0FLM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtRQUN6QixFQUFFLENBQUMsd0JBQXdCLEVB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Q0FBQztRQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdkUsbUNBQW1DLENBQ3BDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7WUFDbkMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUNWLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNwRSxDQUFDLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBwYXJzZUNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuLyoqXG4gKiBSZXdyaXRlcyBuYXRpdmUgc2VwYXJhdG9ycyB0byBcIi9cIiBzbyBwYXRoIGFzc2VydGlvbnMgY2FuIGJlIHdyaXR0ZW4gb25jZS5cbiAqIGBsb2NhbFNvdXJjZUFic29sdXRlUGF0aGAgaXMgcmVzb2x2ZWQgd2l0aCBgcGF0aC5yZXNvbHZlYCwgd2hpY2ggeWllbGRzXG4gKiBiYWNrc2xhc2hlcyBvbiBXaW5kb3dzLlxuICovXG5mdW5jdGlvbiB0b1Bvc2l4UGF0aChwOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcC5zcGxpdChwYXRoLnNlcCkuam9pbihwYXRoLnBvc2l4LnNlcCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBta2R0ZW1wKGNsb3N1cmU6IChkaXI6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICBjb25zdCB3b3JrZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY2RrdGYuXCIpKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBjbG9zdXJlKHdvcmtkaXIpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGZzLnJlbW92ZSh3b3JrZGlyKTtcbiAgfVxufVxuXG5kZXNjcmliZShcInBhcnNlQ29uZmlnXCIsICgpID0+IHtcbiAgaXQoXCJwcm92aWRlcyBkZWZhdWx0IHdpdGggbm8gaW5wdXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4cGVjdChwYXJzZUNvbmZpZygpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAge1xuICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgIH1cbiAgICBgKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJwcm92aWRlcnNcIiwgKCkgPT4ge1xuICAgIGl0KFwicGFyc2VzIHByb3ZpZGVyIHN0cmluZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJhd3NAfj4gMi4wXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtUHJvdmlkZXJzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IDIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHByb3ZpZGVyIHN0cmluZyB3aXRoIG5hbWVzcGFjZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJoYXNoaWNvcnAvYXdzQH4+IDIuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybVByb3ZpZGVyc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCJ+PiAyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBjb21wbGV4IHByb3ZpZGVyIGNvbmZpZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJhd3NcIixcbiAgICAgICAgICAgIHZlcnNpb246IFwifj4gMi4wXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybVByb3ZpZGVyc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJhd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IDIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJtb2R1bGVzXCIsICgpID0+IHtcbiAgICBpdChcInBhcnNlcyBtb2R1bGUgc3RyaW5nXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c0AyLjM5LjBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3NcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIyLjM5LjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBtb2R1bGUgZm9yIGxvY2FsIG1vZHVsZSBmb3IgbW9kdWxlIGdlbmVyYXRvclwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwibG9jYWwtbW9kdWxlXCIsXG4gICAgICAgICAgICBzb3VyY2U6IFwiLi9mb29cIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHBhcnNlZDogYW55ID0gcGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgdG9Qb3NpeFBhdGgocGFyc2VkLnRlcnJhZm9ybU1vZHVsZXNbMF0ubG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGgpLFxuICAgICAgKS50b01hdGNoKFwiL3BhY2thZ2VzL0BjZGt0bi9jb21tb25zL2Zvb1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1YiBtb2R1bGUgcmVnaXN0cnkgc3RyaW5nXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudEAzLjEyLjBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3MvbW9kdWxlcy9pYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJpYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3MvaWFtL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIzLjEyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInRha2VzIGNvbXBsZXggY29uZmlnXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgIHNvdXJjZTpcbiAgICAgICAgICAgICAgXCJodHRwczovL2dpdGh1Yi5jb20vdGVycmFmb3JtLWF3cy1tb2R1bGVzL3RlcnJhZm9ybS1hd3MtdnBjXCIsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIn4+IHYyLjBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vdGVycmFmb3JtLWF3cy1tb2R1bGVzL3RlcnJhZm9ybS1hd3MtdnBjXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IHYyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInRha2VzIGNvbXBsZXggYW5kIHN0cmluZyBjb25maWdcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzQDIuMzkuMFwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICBzb3VyY2U6XG4gICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL3RlcnJhZm9ybS1hd3MtbW9kdWxlcy90ZXJyYWZvcm0tYXdzLXZwY1wiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCJ+PiB2Mi4wXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL3ZwYy9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2F3c1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjIuMzkuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImN1c3RvbUFXU1ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS90ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdGVycmFmb3JtLWF3cy12cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IFwifj4gdjIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGxvY2FsIHBhdGhcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcIi4vY29uc3VsXCJdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcGFyc2VkOiBhbnkgPSBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpO1xuICAgICAgZXhwZWN0KFxuICAgICAgICB0b1Bvc2l4UGF0aChwYXJzZWQudGVycmFmb3JtTW9kdWxlc1swXS5sb2NhbFNvdXJjZUFic29sdXRlUGF0aCksXG4gICAgICApLnRvTWF0Y2goXCIvcGFja2FnZXMvQGNka3RuL2NvbW1vbnMvY29uc3VsXCIpO1xuXG4gICAgICBleHBlY3QocGFyc2VkLnRlcnJhZm9ybU1vZHVsZXNbMF0ubmFtZSkudG9NYXRjaChcImNvbnN1bFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJlZ2lzdHJ5XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJoYXNoaWNvcnAvY29uc3VsL2F3c0AwLjEuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaGFzaGljb3JwL2NvbnN1bC9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uc3VsXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImhhc2hpY29ycC9jb25zdWwvYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjAuMS4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgcHJpdmF0ZSByZWdpc3RyeVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwiYXBwLnRlcnJhZm9ybS5pby9leGFtcGxlLWNvcnAvazhzLWNsdXN0ZXIvYXp1cmVybUAxLjEuMFwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJhcHAtdGVycmFmb3JtLWlvL2V4YW1wbGUtY29ycC9rOHMtY2x1c3Rlci9henVyZXJtXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcIms4cy1jbHVzdGVyXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiZXhhbXBsZS1jb3JwL2F6dXJlcm1cIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJhcHAudGVycmFmb3JtLmlvL2V4YW1wbGUtY29ycC9rOHMtY2x1c3Rlci9henVyZXJtXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjEuMS4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgZ2l0aHViXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXRodWIuY29tL2hhc2hpY29ycC9leGFtcGxlXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJoYXNoaWNvcnAvZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJleGFtcGxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2l0aHViLmNvbS9oYXNoaWNvcnAvZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGdpdGh1YiBzc2hcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdEBnaXRodWIuY29tOmhhc2hpY29ycC9leGFtcGxlLmdpdFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaGFzaGljb3JwL2V4YW1wbGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycFwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdEBnaXRodWIuY29tOmhhc2hpY29ycC9leGFtcGxlLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGJpdGJ1Y2tldFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiYml0YnVja2V0Lm9yZy9oYXNoaWNvcnAvdGVycmFmb3JtLWNvbnN1bC1hd3NcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC90ZXJyYWZvcm0tY29uc3VsLWF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ0ZXJyYWZvcm0tY29uc3VsLWF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycFwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImJpdGJ1Y2tldC5vcmcvaGFzaGljb3JwL3RlcnJhZm9ybS1jb25zdWwtYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgZ2VuZXJpYyBnaXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS92cGMuZ2l0XCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGdpdCBzc2hcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdDo6c3NoOi8vdXNlcm5hbWVAZXhhbXBsZS5jb20vc3RvcmFnZS5naXRcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInN0b3JhZ2VcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwic3RvcmFnZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2l0Ojpzc2g6Ly91c2VybmFtZUBleGFtcGxlLmNvbS9zdG9yYWdlLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJldmlzaW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vaW5mcmEvbWFpbi12cGMuZ2l0P3JlZj12MS4yLjBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaW5mcmEvbWFpbi12cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwibWFpbi12cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJpbmZyYVwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9pbmZyYS9tYWluLXZwYy5naXQ/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHNjcFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiZ2l0Ojp1c2VybmFtZUBleGFtcGxlLmNvbTpzdG9yYWdlLmdpdFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwic3RvcmFnZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJzdG9yYWdlXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6OnVzZXJuYW1lQGV4YW1wbGUuY29tOnN0b3JhZ2UuZ2l0XCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgbWVyY3VyaWFsXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJoZzo6aHR0cDovL2V4YW1wbGUuY29tL3ZwYy5oZ1wiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGdcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBoZyByZXZpc2lvblwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGc/cmVmPXYxLjIuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGc/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGh0dHBcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLW1vZHVsZS56aXBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInZwYy1tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjLW1vZHVsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS92cGMtbW9kdWxlLnppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGFyY2hpdmUgdHlwZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaHR0cHM6Ly9leGFtcGxlLmNvbS92cGMtbW9kdWxlP2FyY2hpdmU9emlwXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJ2cGMtbW9kdWxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwYy1tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLW1vZHVsZT9hcmNoaXZlPXppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHMzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJzMzo6aHR0cHM6Ly9zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9leGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy92cGMuemlwXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImV4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJleGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL3ZwYy56aXBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBnY3NcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdjczo6aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vc3RvcmFnZS92MS9tb2R1bGVzL2Zvb21vZHVsZS56aXBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwic3RvcmFnZS92MS9tb2R1bGVzL2Zvb21vZHVsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJmb29tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2NzOjpodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9zdG9yYWdlL3YxL21vZHVsZXMvZm9vbW9kdWxlLnppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1Ym1vZHVsZSByZWdpc3RyeVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaGFzaGljb3JwL2NvbnN1bC9hd3MvL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC9jb25zdWwvYXdzL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJoYXNoaWNvcnAvYXdzL2NvbnN1bC9tb2R1bGVzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGFzaGljb3JwL2NvbnN1bC9hd3MvL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgZ2l0XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vbmV0d29yay5naXQvL21vZHVsZXMvdnBjXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJuZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgaHR0cFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLW1vZHVsZS56aXAvL21vZHVsZXMvdnBjXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcIm5ldHdvcmstbW9kdWxlL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmstbW9kdWxlL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJodHRwczovL2V4YW1wbGUuY29tL25ldHdvcmstbW9kdWxlLnppcC8vbW9kdWxlcy92cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgczNcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsuemlwLy9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJleGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy9uZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImV4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsuemlwLy9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1Ym1vZHVsZSByZWZcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGM/cmVmPXYxLjIuMFwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJuZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGM/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJlZiB3aXRoIC9cIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdpdDo6aHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkcG9zc2UvdGVycmFmb3JtLW51bGwtbGFiZWwuZ2l0P3JlZj10YWdzLzAuMTQuMVwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJjbG91ZHBvc3NlL3RlcnJhZm9ybS1udWxsLWxhYmVsXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInRlcnJhZm9ybS1udWxsLWxhYmVsXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiY2xvdWRwb3NzZVwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkcG9zc2UvdGVycmFmb3JtLW51bGwtbGFiZWwuZ2l0P3JlZj10YWdzLzAuMTQuMVwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJ0YXJnZXRWZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgRU5WX0tFWSA9IFwiQ0RLVEZfQ09OVEVYVF9KU09OXCI7XG4gICAgbGV0IGVudkJlZm9yZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgZW52QmVmb3JlID0gcHJvY2Vzcy5lbnZbRU5WX0tFWV07XG4gICAgICBkZWxldGUgcHJvY2Vzcy5lbnZbRU5WX0tFWV07XG4gICAgfSk7XG4gICAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICAgIGlmIChlbnZCZWZvcmUgPT09IHVuZGVmaW5lZCkgZGVsZXRlIHByb2Nlc3MuZW52W0VOVl9LRVldO1xuICAgICAgZWxzZSBwcm9jZXNzLmVudltFTlZfS0VZXSA9IGVudkJlZm9yZTtcbiAgICB9KTtcblxuICAgIGl0KFwiYWNjZXB0cyBjb25zdHJhaW50LXNoYXBlZCB0YXJnZXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHBhcnNlQ29uZmlnKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIj49MS41LjdcIiwgb3BlbnRvZnU6IFwiPj0xLjYuMFwiIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChjb25maWcudGFyZ2V0VmVyc2lvbnMpLnRvRXF1YWwoe1xuICAgICAgICB0ZXJyYWZvcm06IFwiPj0xLjUuN1wiLFxuICAgICAgICBvcGVudG9mdTogXCI+PTEuNi4wXCIsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwiYWNjZXB0cyBhIHNpbmdsZSBwcm9kdWN0XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgcGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoeyB0YXJnZXRWZXJzaW9uczogeyBvcGVudG9mdTogXCJ+MS45XCIgfSB9KSlcbiAgICAgICAgICAudGFyZ2V0VmVyc2lvbnMsXG4gICAgICApLnRvRXF1YWwoeyBvcGVudG9mdTogXCJ+MS45XCIgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhc3NlcyB0YXJnZXRWZXJzaW9ucyB0byB0aGUgYXBwIHZpYSB0aGUgY29udGV4dCBlbnZpcm9ubWVudFwiLCAoKSA9PiB7XG4gICAgICBwYXJzZUNvbmZpZyhcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNvbnRleHQ6IHsgc29tZUZsYWc6IFwidHJ1ZVwiIH0sXG4gICAgICAgICAgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIj49MS44LjBcIiB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICBleHBlY3QoSlNPTi5wYXJzZShwcm9jZXNzLmVudltFTlZfS0VZXSEpKS50b0VxdWFsKHtcbiAgICAgICAgc29tZUZsYWc6IFwidHJ1ZVwiLFxuICAgICAgICB0YXJnZXRWZXJzaW9uczogeyB0ZXJyYWZvcm06IFwiPj0xLjguMFwiIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyB1bmtub3duIHByb2R1Y3QgbmFtZXNcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+XG4gICAgICAgIHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHsgdG9mdTogXCI+PTEuNi4wXCIgfSB9KSksXG4gICAgICApLnRvVGhyb3coXG4gICAgICAgIGB0YXJnZXRWZXJzaW9ucyBoYXMgdW5rbm93biBwcm9kdWN0IFwidG9mdVwiIChleHBlY3RlZCBcInRlcnJhZm9ybVwiIG9yIFwib3BlbnRvZnVcIilgLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyBtYWxmb3JtZWQgc2VtdmVyIHJhbmdlc1wiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT5cbiAgICAgICAgcGFyc2VDb25maWcoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyB0YXJnZXRWZXJzaW9uczogeyB0ZXJyYWZvcm06IFwibGF0ZXN0XCIgfSB9KSxcbiAgICAgICAgKSxcbiAgICAgICkudG9UaHJvdyhgXCJsYXRlc3RcIiBpcyBub3QgYSB2YWxpZCBzZW12ZXIgcmFuZ2VgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyBUZXJyYWZvcm0gcHJvdmlkZXIgY29uc3RyYWludCBzeW50YXggd2l0aCBhIGhpbnRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+XG4gICAgICAgIHBhcnNlQ29uZmlnKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIn4+IDEuNVwiIH0gfSksXG4gICAgICAgICksXG4gICAgICApLnRvVGhyb3coYHVzZXMgVGVycmFmb3JtIHByb3ZpZGVyIGNvbnN0cmFpbnQgc3ludGF4YCk7XG4gICAgfSk7XG5cbiAgICBpdChcInJlamVjdHMgYW4gZW1wdHkgZGVjbGFyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHt9IH0pKSkudG9UaHJvdyhcbiAgICAgICAgYG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgcHJvZHVjdGAsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJyZWplY3RzIG5vbi1zdHJpbmcgcmFuZ2VzXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PlxuICAgICAgICBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeSh7IHRhcmdldFZlcnNpb25zOiB7IHRlcnJhZm9ybTogMS41IH0gfSkpLFxuICAgICAgKS50b1Rocm93KGB0YXJnZXRWZXJzaW9ucy50ZXJyYWZvcm0gbXVzdCBiZSBhIHNlbXZlciByYW5nZSBzdHJpbmdgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
771
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsMEJBT0M7QUF2QkQsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxxQ0FBdUM7QUFDdkMsNkNBQStCO0FBQy9CLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFFN0I7Ozs7R0FJRztBQUNILFNBQVMsV0FBVyxDQUFDLENBQVM7SUFDNUIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRU0sS0FBSyxVQUFVLE9BQU8sQ0FBQyxPQUF1QztJQUNuRSxNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0FBQ0gsQ0FBQztBQUVELFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzNCLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM5QyxNQUFNLENBQUMsSUFBQSxvQkFBVyxHQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7S0FLM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtRQUN6QixFQUFFLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdEMsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osa0JBQWtCLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDbkMsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JELE1BQU0sS0FBSyxHQUFHO2dCQUNaLGtCQUFrQixFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDN0MsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzlDLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGtCQUFrQixFQUFFO29CQUNsQjt3QkFDRSxJQUFJLEVBQUUsS0FBSzt3QkFDWCxPQUFPLEVBQUUsUUFBUTtxQkFDbEI7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7T0FjaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNwQyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2FBQzNELENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNuRSxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRTtvQkFDaEI7d0JBQ0UsSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLE1BQU0sRUFBRSxPQUFPO3FCQUNoQjtpQkFDRjthQUNGLENBQUM7WUFDRixNQUFNLE1BQU0sR0FBUSxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FDSixXQUFXLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQ2hFLENBQUMsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsbUNBQW1DLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDakQsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osZ0JBQWdCLEVBQUU7b0JBQ2hCLDJEQUEyRDtpQkFDNUQ7YUFDRixDQUFDO1lBRUYsTUFBTSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7T0FjaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDcEMsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osZ0JBQWdCLEVBQUU7b0JBQ2hCO3dCQUNFLElBQUksRUFBRSxjQUFjO3dCQUNwQixNQUFNLEVBQ0osNERBQTREO3dCQUM5RCxPQUFPLEVBQUUsU0FBUztxQkFDbkI7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7T0FjaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDL0MsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osZ0JBQWdCLEVBQUU7b0JBQ2hCLHNDQUFzQztvQkFDdEM7d0JBQ0UsSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLE1BQU0sRUFDSiw0REFBNEQ7d0JBQzlELE9BQU8sRUFBRSxTQUFTO3FCQUNuQjtpQkFDRjthQUNGLENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQmhFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGdCQUFnQixFQUFFLENBQUMsVUFBVSxDQUFDO2FBQy9CLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBUSxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FDSixXQUFXLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQ2hFLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFFN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDL0IsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osZ0JBQWdCLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQzthQUNqRCxDQUFDO1lBRUYsTUFBTSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7T0FjaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMseUJBQXlCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDdkMsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osZ0JBQWdCLEVBQUU7b0JBQ2hCLHlEQUF5RDtpQkFDMUQ7YUFDRixDQUFDO1lBRUYsTUFBTSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7T0FjaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzdCLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGdCQUFnQixFQUFFLENBQUMsOEJBQThCLENBQUM7YUFDbkQsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG1CQUFtQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2pDLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGdCQUFnQixFQUFFLENBQUMsc0NBQXNDLENBQUM7YUFDM0QsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtCQUFrQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2hDLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGdCQUFnQixFQUFFLENBQUMsOENBQThDLENBQUM7YUFDbkUsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG9CQUFvQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2xDLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGdCQUFnQixFQUFFLENBQUMsa0NBQWtDLENBQUM7YUFDdkQsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzlCLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGdCQUFnQixFQUFFLENBQUMsNkNBQTZDLENBQUM7YUFDbEUsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQy9CLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGdCQUFnQixFQUFFO29CQUNoQix3REFBd0Q7aUJBQ3pEO2FBQ0YsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxQixNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRSxDQUFDLHVDQUF1QyxDQUFDO2FBQzVELENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNoQyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRSxDQUFDLCtCQUErQixDQUFDO2FBQ3BELENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO2FBQy9ELENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDM0IsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osZ0JBQWdCLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQzthQUN6RCxDQUFDO1lBRUYsTUFBTSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7T0FjaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbkMsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osZ0JBQWdCLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQzthQUNqRSxDQUFDO1lBRUYsTUFBTSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7T0FjaEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3pCLE1BQU0sS0FBSyxHQUFHO2dCQUNaLGdCQUFnQixFQUFFO29CQUNoQiw4RUFBOEU7aUJBQy9FO2FBQ0YsQ0FBQztZQUVGLE1BQU0sQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7Ozs7Ozs7Ozs7O09BY2hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxQixNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRTtvQkFDaEIsa0VBQWtFO2lCQUNuRTthQUNGLENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN6QyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRSxDQUFDLDhDQUE4QyxDQUFDO2FBQ25FLENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNwQyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRSxDQUFDLG1EQUFtRCxDQUFDO2FBQ3hFLENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyQyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRTtvQkFDaEIscURBQXFEO2lCQUN0RDthQUNGLENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNuQyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRTtvQkFDaEIsK0ZBQStGO2lCQUNoRzthQUNGLENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNwQyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRTtvQkFDaEIsOERBQThEO2lCQUMvRDthQUNGLENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNqQyxNQUFNLEtBQUssR0FBRztnQkFDWixnQkFBZ0IsRUFBRTtvQkFDaEIsNkVBQTZFO2lCQUM5RTthQUNGLENBQUM7WUFFRixNQUFNLENBQUMsSUFBQSxvQkFBVyxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztPQWNoRSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7UUFDN0IsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNOLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztZQUNaLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUNkLGlEQUFpRDtZQUNqRCxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDZCxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7WUFDaEIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztZQUNkLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztTQUNsQixDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBQSxvQkFBVyxFQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQ3ZFLENBQUM7WUFDRixNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakQsTUFBTSxDQUFDLG9CQUFvQixJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLG9CQUFvQixJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtRQUM5QixNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQztRQUNyQyxJQUFJLFNBQTZCLENBQUM7UUFDbEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLFNBQVMsS0FBSyxTQUFTO2dCQUFFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzs7Z0JBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFXLEVBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2IsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO2FBQzlELENBQUMsQ0FDSCxDQUFDO1lBQ0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQ3BDLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixRQUFRLEVBQUUsU0FBUzthQUNwQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7WUFDbEMsTUFBTSxDQUNKLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDbEUsY0FBYyxDQUNsQixDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhEQUE4RCxFQUFFLEdBQUcsRUFBRTtZQUN0RSxJQUFBLG9CQUFXLEVBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDYixPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUM3QixjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFO2FBQ3pDLENBQUMsQ0FDSCxDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNoRCxRQUFRLEVBQUUsTUFBTTtnQkFDaEIsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRTthQUN6QyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7WUFDdkMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUNWLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNyRSxDQUFDLE9BQU8sQ0FDUCxnRkFBZ0YsQ0FDakYsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLEdBQUcsRUFBRTtZQUN6QyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQ1YsSUFBQSxvQkFBVyxFQUNULElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUM1RCxDQUNGLENBQUMsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO1lBQ2xFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FDVixJQUFBLG9CQUFXLEVBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQzVELENBQ0YsQ0FBQyxPQUFPLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdkUsbUNBQW1DLENBQ3BDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7WUFDbkMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUNWLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNwRSxDQUFDLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBwYXJzZUNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuLyoqXG4gKiBSZXdyaXRlcyBuYXRpdmUgc2VwYXJhdG9ycyB0byBcIi9cIiBzbyBwYXRoIGFzc2VydGlvbnMgY2FuIGJlIHdyaXR0ZW4gb25jZS5cbiAqIGBsb2NhbFNvdXJjZUFic29sdXRlUGF0aGAgaXMgcmVzb2x2ZWQgd2l0aCBgcGF0aC5yZXNvbHZlYCwgd2hpY2ggeWllbGRzXG4gKiBiYWNrc2xhc2hlcyBvbiBXaW5kb3dzLlxuICovXG5mdW5jdGlvbiB0b1Bvc2l4UGF0aChwOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcC5zcGxpdChwYXRoLnNlcCkuam9pbihwYXRoLnBvc2l4LnNlcCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBta2R0ZW1wKGNsb3N1cmU6IChkaXI6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICBjb25zdCB3b3JrZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY2RrdGYuXCIpKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBjbG9zdXJlKHdvcmtkaXIpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGZzLnJlbW92ZSh3b3JrZGlyKTtcbiAgfVxufVxuXG5kZXNjcmliZShcInBhcnNlQ29uZmlnXCIsICgpID0+IHtcbiAgaXQoXCJwcm92aWRlcyBkZWZhdWx0IHdpdGggbm8gaW5wdXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4cGVjdChwYXJzZUNvbmZpZygpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAge1xuICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgIH1cbiAgICBgKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJwcm92aWRlcnNcIiwgKCkgPT4ge1xuICAgIGl0KFwicGFyc2VzIHByb3ZpZGVyIHN0cmluZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJhd3NAfj4gMi4wXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtUHJvdmlkZXJzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IDIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHByb3ZpZGVyIHN0cmluZyB3aXRoIG5hbWVzcGFjZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJoYXNoaWNvcnAvYXdzQH4+IDIuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybVByb3ZpZGVyc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCJ+PiAyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBjb21wbGV4IHByb3ZpZGVyIGNvbmZpZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJhd3NcIixcbiAgICAgICAgICAgIHZlcnNpb246IFwifj4gMi4wXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybVByb3ZpZGVyc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJhd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IDIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJtb2R1bGVzXCIsICgpID0+IHtcbiAgICBpdChcInBhcnNlcyBtb2R1bGUgc3RyaW5nXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c0AyLjM5LjBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3NcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIyLjM5LjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBtb2R1bGUgZm9yIGxvY2FsIG1vZHVsZSBmb3IgbW9kdWxlIGdlbmVyYXRvclwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwibG9jYWwtbW9kdWxlXCIsXG4gICAgICAgICAgICBzb3VyY2U6IFwiLi9mb29cIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHBhcnNlZDogYW55ID0gcGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgdG9Qb3NpeFBhdGgocGFyc2VkLnRlcnJhZm9ybU1vZHVsZXNbMF0ubG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGgpLFxuICAgICAgKS50b01hdGNoKFwiL3BhY2thZ2VzL0BjZGt0bi9jb21tb25zL2Zvb1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1YiBtb2R1bGUgcmVnaXN0cnkgc3RyaW5nXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudEAzLjEyLjBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3MvbW9kdWxlcy9pYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJpYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3MvaWFtL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIzLjEyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInRha2VzIGNvbXBsZXggY29uZmlnXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgIHNvdXJjZTpcbiAgICAgICAgICAgICAgXCJodHRwczovL2dpdGh1Yi5jb20vdGVycmFmb3JtLWF3cy1tb2R1bGVzL3RlcnJhZm9ybS1hd3MtdnBjXCIsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIn4+IHYyLjBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vdGVycmFmb3JtLWF3cy1tb2R1bGVzL3RlcnJhZm9ybS1hd3MtdnBjXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IHYyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInRha2VzIGNvbXBsZXggYW5kIHN0cmluZyBjb25maWdcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzQDIuMzkuMFwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICBzb3VyY2U6XG4gICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL3RlcnJhZm9ybS1hd3MtbW9kdWxlcy90ZXJyYWZvcm0tYXdzLXZwY1wiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCJ+PiB2Mi4wXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL3ZwYy9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2F3c1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjIuMzkuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImN1c3RvbUFXU1ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS90ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdGVycmFmb3JtLWF3cy12cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IFwifj4gdjIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGxvY2FsIHBhdGhcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcIi4vY29uc3VsXCJdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcGFyc2VkOiBhbnkgPSBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpO1xuICAgICAgZXhwZWN0KFxuICAgICAgICB0b1Bvc2l4UGF0aChwYXJzZWQudGVycmFmb3JtTW9kdWxlc1swXS5sb2NhbFNvdXJjZUFic29sdXRlUGF0aCksXG4gICAgICApLnRvTWF0Y2goXCIvcGFja2FnZXMvQGNka3RuL2NvbW1vbnMvY29uc3VsXCIpO1xuXG4gICAgICBleHBlY3QocGFyc2VkLnRlcnJhZm9ybU1vZHVsZXNbMF0ubmFtZSkudG9NYXRjaChcImNvbnN1bFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJlZ2lzdHJ5XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJoYXNoaWNvcnAvY29uc3VsL2F3c0AwLjEuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaGFzaGljb3JwL2NvbnN1bC9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uc3VsXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImhhc2hpY29ycC9jb25zdWwvYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjAuMS4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgcHJpdmF0ZSByZWdpc3RyeVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwiYXBwLnRlcnJhZm9ybS5pby9leGFtcGxlLWNvcnAvazhzLWNsdXN0ZXIvYXp1cmVybUAxLjEuMFwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJhcHAtdGVycmFmb3JtLWlvL2V4YW1wbGUtY29ycC9rOHMtY2x1c3Rlci9henVyZXJtXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcIms4cy1jbHVzdGVyXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiZXhhbXBsZS1jb3JwL2F6dXJlcm1cIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJhcHAudGVycmFmb3JtLmlvL2V4YW1wbGUtY29ycC9rOHMtY2x1c3Rlci9henVyZXJtXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjEuMS4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgZ2l0aHViXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXRodWIuY29tL2hhc2hpY29ycC9leGFtcGxlXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJoYXNoaWNvcnAvZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJleGFtcGxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2l0aHViLmNvbS9oYXNoaWNvcnAvZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGdpdGh1YiBzc2hcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdEBnaXRodWIuY29tOmhhc2hpY29ycC9leGFtcGxlLmdpdFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaGFzaGljb3JwL2V4YW1wbGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycFwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdEBnaXRodWIuY29tOmhhc2hpY29ycC9leGFtcGxlLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGJpdGJ1Y2tldFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiYml0YnVja2V0Lm9yZy9oYXNoaWNvcnAvdGVycmFmb3JtLWNvbnN1bC1hd3NcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC90ZXJyYWZvcm0tY29uc3VsLWF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ0ZXJyYWZvcm0tY29uc3VsLWF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycFwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImJpdGJ1Y2tldC5vcmcvaGFzaGljb3JwL3RlcnJhZm9ybS1jb25zdWwtYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgZ2VuZXJpYyBnaXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS92cGMuZ2l0XCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGdpdCBzc2hcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdDo6c3NoOi8vdXNlcm5hbWVAZXhhbXBsZS5jb20vc3RvcmFnZS5naXRcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInN0b3JhZ2VcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwic3RvcmFnZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2l0Ojpzc2g6Ly91c2VybmFtZUBleGFtcGxlLmNvbS9zdG9yYWdlLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJldmlzaW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vaW5mcmEvbWFpbi12cGMuZ2l0P3JlZj12MS4yLjBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaW5mcmEvbWFpbi12cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwibWFpbi12cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJpbmZyYVwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9pbmZyYS9tYWluLXZwYy5naXQ/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHNjcFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiZ2l0Ojp1c2VybmFtZUBleGFtcGxlLmNvbTpzdG9yYWdlLmdpdFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwic3RvcmFnZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJzdG9yYWdlXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6OnVzZXJuYW1lQGV4YW1wbGUuY29tOnN0b3JhZ2UuZ2l0XCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgbWVyY3VyaWFsXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJoZzo6aHR0cDovL2V4YW1wbGUuY29tL3ZwYy5oZ1wiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGdcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBoZyByZXZpc2lvblwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGc/cmVmPXYxLjIuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGc/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGh0dHBcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLW1vZHVsZS56aXBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInZwYy1tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjLW1vZHVsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS92cGMtbW9kdWxlLnppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGFyY2hpdmUgdHlwZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaHR0cHM6Ly9leGFtcGxlLmNvbS92cGMtbW9kdWxlP2FyY2hpdmU9emlwXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJ2cGMtbW9kdWxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwYy1tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLW1vZHVsZT9hcmNoaXZlPXppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHMzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJzMzo6aHR0cHM6Ly9zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9leGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy92cGMuemlwXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImV4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJleGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL3ZwYy56aXBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBnY3NcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdjczo6aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vc3RvcmFnZS92MS9tb2R1bGVzL2Zvb21vZHVsZS56aXBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwic3RvcmFnZS92MS9tb2R1bGVzL2Zvb21vZHVsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJmb29tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2NzOjpodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9zdG9yYWdlL3YxL21vZHVsZXMvZm9vbW9kdWxlLnppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1Ym1vZHVsZSByZWdpc3RyeVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaGFzaGljb3JwL2NvbnN1bC9hd3MvL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC9jb25zdWwvYXdzL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJoYXNoaWNvcnAvYXdzL2NvbnN1bC9tb2R1bGVzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGFzaGljb3JwL2NvbnN1bC9hd3MvL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgZ2l0XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vbmV0d29yay5naXQvL21vZHVsZXMvdnBjXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJuZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgaHR0cFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLW1vZHVsZS56aXAvL21vZHVsZXMvdnBjXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcIm5ldHdvcmstbW9kdWxlL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmstbW9kdWxlL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJodHRwczovL2V4YW1wbGUuY29tL25ldHdvcmstbW9kdWxlLnppcC8vbW9kdWxlcy92cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgczNcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsuemlwLy9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJleGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy9uZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImV4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsuemlwLy9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1Ym1vZHVsZSByZWZcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGM/cmVmPXYxLjIuMFwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJuZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGM/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJlZiB3aXRoIC9cIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdpdDo6aHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkcG9zc2UvdGVycmFmb3JtLW51bGwtbGFiZWwuZ2l0P3JlZj10YWdzLzAuMTQuMVwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJjbG91ZHBvc3NlL3RlcnJhZm9ybS1udWxsLWxhYmVsXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInRlcnJhZm9ybS1udWxsLWxhYmVsXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiY2xvdWRwb3NzZVwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkcG9zc2UvdGVycmFmb3JtLW51bGwtbGFiZWwuZ2l0P3JlZj10YWdzLzAuMTQuMVwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJjb25zZW50IGZsYWdzXCIsICgpID0+IHtcbiAgICBpdC5lYWNoKFtcbiAgICAgIFt0cnVlLCB0cnVlXSxcbiAgICAgIFtmYWxzZSwgZmFsc2VdLFxuICAgICAgLy8gdGhlIGluaXQgdGVtcGxhdGVzIHJlbmRlciB0aGUgZmxhZ3MgYXMgc3RyaW5nc1xuICAgICAgW1widHJ1ZVwiLCB0cnVlXSxcbiAgICAgIFtcImZhbHNlXCIsIGZhbHNlXSxcbiAgICAgIFtcInllc1wiLCB1bmRlZmluZWRdLFxuICAgICAgWzEsIHVuZGVmaW5lZF0sXG4gICAgICBbbnVsbCwgdW5kZWZpbmVkXSxcbiAgICBdKShcIm5vcm1hbGlzZXMgJXAgdG8gJXBcIiwgKHZhbHVlLCBleHBlY3RlZCkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gcGFyc2VDb25maWcoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHsgc2VuZENyYXNoUmVwb3J0czogdmFsdWUsIHNlbmRVc2FnZVRlbGVtZXRyeTogdmFsdWUgfSksXG4gICAgICApO1xuICAgICAgZXhwZWN0KGNvbmZpZy5zZW5kQ3Jhc2hSZXBvcnRzKS50b0JlKGV4cGVjdGVkKTtcbiAgICAgIGV4cGVjdChjb25maWcuc2VuZFVzYWdlVGVsZW1ldHJ5KS50b0JlKGV4cGVjdGVkKTtcbiAgICAgIGV4cGVjdChcInNlbmRVc2FnZVRlbGVtZXRyeVwiIGluIGNvbmZpZykudG9CZShleHBlY3RlZCAhPT0gdW5kZWZpbmVkKTtcbiAgICB9KTtcblxuICAgIGl0KFwibGVhdmVzIGFuIGFic2VudCBmbGFnIGFic2VudFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeSh7IHNlbmRDcmFzaFJlcG9ydHM6IHRydWUgfSkpO1xuICAgICAgZXhwZWN0KGNvbmZpZy5zZW5kQ3Jhc2hSZXBvcnRzKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KFwic2VuZFVzYWdlVGVsZW1ldHJ5XCIgaW4gY29uZmlnKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJ0YXJnZXRWZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgRU5WX0tFWSA9IFwiQ0RLVEZfQ09OVEVYVF9KU09OXCI7XG4gICAgbGV0IGVudkJlZm9yZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgZW52QmVmb3JlID0gcHJvY2Vzcy5lbnZbRU5WX0tFWV07XG4gICAgICBkZWxldGUgcHJvY2Vzcy5lbnZbRU5WX0tFWV07XG4gICAgfSk7XG4gICAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICAgIGlmIChlbnZCZWZvcmUgPT09IHVuZGVmaW5lZCkgZGVsZXRlIHByb2Nlc3MuZW52W0VOVl9LRVldO1xuICAgICAgZWxzZSBwcm9jZXNzLmVudltFTlZfS0VZXSA9IGVudkJlZm9yZTtcbiAgICB9KTtcblxuICAgIGl0KFwiYWNjZXB0cyBjb25zdHJhaW50LXNoYXBlZCB0YXJnZXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHBhcnNlQ29uZmlnKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIj49MS41LjdcIiwgb3BlbnRvZnU6IFwiPj0xLjYuMFwiIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChjb25maWcudGFyZ2V0VmVyc2lvbnMpLnRvRXF1YWwoe1xuICAgICAgICB0ZXJyYWZvcm06IFwiPj0xLjUuN1wiLFxuICAgICAgICBvcGVudG9mdTogXCI+PTEuNi4wXCIsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwiYWNjZXB0cyBhIHNpbmdsZSBwcm9kdWN0XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgcGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoeyB0YXJnZXRWZXJzaW9uczogeyBvcGVudG9mdTogXCJ+MS45XCIgfSB9KSlcbiAgICAgICAgICAudGFyZ2V0VmVyc2lvbnMsXG4gICAgICApLnRvRXF1YWwoeyBvcGVudG9mdTogXCJ+MS45XCIgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhc3NlcyB0YXJnZXRWZXJzaW9ucyB0byB0aGUgYXBwIHZpYSB0aGUgY29udGV4dCBlbnZpcm9ubWVudFwiLCAoKSA9PiB7XG4gICAgICBwYXJzZUNvbmZpZyhcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNvbnRleHQ6IHsgc29tZUZsYWc6IFwidHJ1ZVwiIH0sXG4gICAgICAgICAgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIj49MS44LjBcIiB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICBleHBlY3QoSlNPTi5wYXJzZShwcm9jZXNzLmVudltFTlZfS0VZXSEpKS50b0VxdWFsKHtcbiAgICAgICAgc29tZUZsYWc6IFwidHJ1ZVwiLFxuICAgICAgICB0YXJnZXRWZXJzaW9uczogeyB0ZXJyYWZvcm06IFwiPj0xLjguMFwiIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyB1bmtub3duIHByb2R1Y3QgbmFtZXNcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+XG4gICAgICAgIHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHsgdG9mdTogXCI+PTEuNi4wXCIgfSB9KSksXG4gICAgICApLnRvVGhyb3coXG4gICAgICAgIGB0YXJnZXRWZXJzaW9ucyBoYXMgdW5rbm93biBwcm9kdWN0IFwidG9mdVwiIChleHBlY3RlZCBcInRlcnJhZm9ybVwiIG9yIFwib3BlbnRvZnVcIilgLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyBtYWxmb3JtZWQgc2VtdmVyIHJhbmdlc1wiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT5cbiAgICAgICAgcGFyc2VDb25maWcoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyB0YXJnZXRWZXJzaW9uczogeyB0ZXJyYWZvcm06IFwibGF0ZXN0XCIgfSB9KSxcbiAgICAgICAgKSxcbiAgICAgICkudG9UaHJvdyhgXCJsYXRlc3RcIiBpcyBub3QgYSB2YWxpZCBzZW12ZXIgcmFuZ2VgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyBUZXJyYWZvcm0gcHJvdmlkZXIgY29uc3RyYWludCBzeW50YXggd2l0aCBhIGhpbnRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+XG4gICAgICAgIHBhcnNlQ29uZmlnKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIn4+IDEuNVwiIH0gfSksXG4gICAgICAgICksXG4gICAgICApLnRvVGhyb3coYHVzZXMgVGVycmFmb3JtIHByb3ZpZGVyIGNvbnN0cmFpbnQgc3ludGF4YCk7XG4gICAgfSk7XG5cbiAgICBpdChcInJlamVjdHMgYW4gZW1wdHkgZGVjbGFyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHt9IH0pKSkudG9UaHJvdyhcbiAgICAgICAgYG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgcHJvZHVjdGAsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJyZWplY3RzIG5vbi1zdHJpbmcgcmFuZ2VzXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PlxuICAgICAgICBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeSh7IHRhcmdldFZlcnNpb25zOiB7IHRlcnJhZm9ybTogMS41IH0gfSkpLFxuICAgICAgKS50b1Rocm93KGB0YXJnZXRWZXJzaW9ucy50ZXJyYWZvcm0gbXVzdCBiZSBhIHNlbXZlciByYW5nZSBzdHJpbmdgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -32,6 +32,7 @@ export declare class ConstructsMakerModuleTarget extends ConstructsMakerTarget {
|
|
|
32
32
|
get trackingPayload(): {
|
|
33
33
|
name: string;
|
|
34
34
|
fullName: string;
|
|
35
|
+
source: string;
|
|
35
36
|
version: string | undefined;
|
|
36
37
|
type: string;
|
|
37
38
|
};
|
|
@@ -47,6 +48,7 @@ export declare class ConstructsMakerProviderTarget extends ConstructsMakerTarget
|
|
|
47
48
|
get trackingPayload(): {
|
|
48
49
|
name: string;
|
|
49
50
|
fullName: string;
|
|
51
|
+
source: string;
|
|
50
52
|
version: string | undefined;
|
|
51
53
|
type: string;
|
|
52
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"construct-maker-target.d.ts","sourceRoot":"","sources":["../src/construct-maker-target.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,QAAQ,EACR,6BAA6B,EAE9B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,8BAAsB,qBAAqB;aAIvB,UAAU,EAAE,6BAA6B;aACzC,cAAc,EAAE,QAAQ;IAJ1C,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAGf,UAAU,EAAE,6BAA6B,EACzC,cAAc,EAAE,QAAQ;WAS5B,IAAI,CAChB,UAAU,EAAE,6BAA6B,EACzC,cAAc,EAAE,QAAQ;IAS1B,IAAW,OAAO,uBAEjB;IAED,IAAW,MAAM,WAEhB;IAED,IAAW,IAAI,WAEd;IAED,IAAW,GAAG,WAEb;IAED,IAAW,SAAS,uBAEnB;IAED,IAAW,SAAS,WAEnB;IAED,aAAoB,UAAU,IAAI,MAAM,CAAC;IACzC,aAAoB,QAAQ,IAAI,OAAO,CAAC;IACxC,aAAoB,UAAU,IAAI,OAAO,CAAC;IAC1C,aAAoB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,SAAS,CAAC,QAAQ,KAAK,cAAc,IAAI,MAAM,CAAC;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CACnD;AAED,qBAAa,2BAA4B,SAAQ,qBAAqB;IAC7D,IAAI,CAAC,EAAE,YAAY,CAAC;IAE3B,IAAW,QAAQ,YAElB;IAED,IAAW,UAAU,YAEpB;IAED,IAAW,UAAU,IAAI,MAAM,CAW9B;IAED,IAAW,eAAe
|
|
1
|
+
{"version":3,"file":"construct-maker-target.d.ts","sourceRoot":"","sources":["../src/construct-maker-target.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,QAAQ,EACR,6BAA6B,EAE9B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,8BAAsB,qBAAqB;aAIvB,UAAU,EAAE,6BAA6B;aACzC,cAAc,EAAE,QAAQ;IAJ1C,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAGf,UAAU,EAAE,6BAA6B,EACzC,cAAc,EAAE,QAAQ;WAS5B,IAAI,CAChB,UAAU,EAAE,6BAA6B,EACzC,cAAc,EAAE,QAAQ;IAS1B,IAAW,OAAO,uBAEjB;IAED,IAAW,MAAM,WAEhB;IAED,IAAW,IAAI,WAEd;IAED,IAAW,GAAG,WAEb;IAED,IAAW,SAAS,uBAEnB;IAED,IAAW,SAAS,WAEnB;IAED,aAAoB,UAAU,IAAI,MAAM,CAAC;IACzC,aAAoB,QAAQ,IAAI,OAAO,CAAC;IACxC,aAAoB,UAAU,IAAI,OAAO,CAAC;IAC1C,aAAoB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,SAAS,CAAC,QAAQ,KAAK,cAAc,IAAI,MAAM,CAAC;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CACnD;AAED,qBAAa,2BAA4B,SAAQ,qBAAqB;IAC7D,IAAI,CAAC,EAAE,YAAY,CAAC;IAE3B,IAAW,QAAQ,YAElB;IAED,IAAW,UAAU,YAEpB;IAED,IAAW,UAAU,IAAI,MAAM,CAW9B;IAED,IAAW,eAAe;;;;;;MAQzB;IAED,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIzC,SAAS,KAAK,cAAc,IAAI,MAAM,CAIrC;IAED,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;CACF;AAED,qBAAa,6BAA8B,SAAQ,qBAAqB;IAC/D,IAAI,CAAC,EAAE,cAAc,CAAC;IAE7B,IAAW,QAAQ,YAElB;IAED,IAAW,UAAU,YAEpB;IAED,IAAW,UAAU,IAAI,MAAM,CAe9B;IAED,IAAW,eAAe;;;;;;MAQzB;IAED,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIzC,OAAO,KAAK,cAAc,GAEzB;IAED,SAAS,KAAK,cAAc,IAAI,MAAM,CAErC;CACF"}
|
|
@@ -68,6 +68,7 @@ class ConstructsMakerModuleTarget extends ConstructsMakerTarget {
|
|
|
68
68
|
return {
|
|
69
69
|
name: this.name,
|
|
70
70
|
fullName: this.fqn,
|
|
71
|
+
source: this.source,
|
|
71
72
|
version: this.version,
|
|
72
73
|
type: "module",
|
|
73
74
|
};
|
|
@@ -111,6 +112,7 @@ class ConstructsMakerProviderTarget extends ConstructsMakerTarget {
|
|
|
111
112
|
return {
|
|
112
113
|
name: this.name,
|
|
113
114
|
fullName: this.source,
|
|
115
|
+
source: this.source,
|
|
114
116
|
version: this.version,
|
|
115
117
|
type: "provider",
|
|
116
118
|
};
|
|
@@ -126,4 +128,4 @@ class ConstructsMakerProviderTarget extends ConstructsMakerTarget {
|
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
exports.ConstructsMakerProviderTarget = ConstructsMakerProviderTarget;
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LW1ha2VyLXRhcmdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3QtbWFrZXItdGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVILHFDQUlrQjtBQUlsQixNQUFzQixxQkFBcUI7SUFHekMsWUFDa0IsVUFBeUMsRUFDekMsY0FBd0I7UUFEeEIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQVU7UUFFeEMsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLGtDQUF5QixFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ25FLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FDaEIsVUFBeUMsRUFDekMsY0FBd0I7UUFFeEIsSUFBSSxVQUFVLFlBQVksa0NBQXlCLEVBQUUsQ0FBQztZQUNwRCxPQUFPLElBQUksMkJBQTJCLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLDZCQUE2QixDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFF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LElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2QztnQkFDRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUM7SUFDSixDQUFDO0lBRVMsU0FBUyxDQUFDLElBQVk7UUFDOUIsT0FBTyxhQUFhLElBQUksUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFZLGNBQWM7UUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVELElBQWMsY0FBYztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQWhERCxzRUFnREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7XG4gIExhbmd1YWdlLFxuICBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCxcbiAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCxcbn0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBNb2R1bGVTY2hlbWEgfSBmcm9tIFwiLi9tb2R1bGUtc2NoZW1hXCI7XG5pbXBvcnQgeyBQcm92aWRlclNjaGVtYSB9IGZyb20gXCIuL3Byb3ZpZGVyLXNjaGVtYVwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29uc3RydWN0c01ha2VyVGFyZ2V0IHtcbiAgcHVibGljIHJlYWRvbmx5IGZpbGVOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbnN0cmFpbnQ6IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LFxuICAgIHB1YmxpYyByZWFkb25seSB0YXJnZXRMYW5ndWFnZTogTGFuZ3VhZ2UsXG4gICkge1xuICAgIGlmICh0aGlzLmNvbnN0cmFpbnQgaW5zdGFuY2VvZiBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KSB7XG4gICAgICB0aGlzLmZpbGVOYW1lID0gYCR7dGhpcy50eXBlc1BhdGgodGhpcy5jb25zdHJhaW50LmZpbGVOYW1lKX0udHNgO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbGVOYW1lID0gYCR7dGhpcy50eXBlc1BhdGgodGhpcy5jb25zdHJhaW50Lm5hbWUpfS50c2A7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tKFxuICAgIGNvbnN0cmFpbnQ6IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LFxuICAgIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZSxcbiAgKSB7XG4gICAgaWYgKGNvbnN0cmFpbnQgaW5zdGFuY2VvZiBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KSB7XG4gICAgICByZXR1cm4gbmV3IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldChjb25zdHJhaW50LCB0YXJnZXRMYW5ndWFnZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQoY29uc3RyYWludCwgdGFyZ2V0TGFuZ3VhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50LnZlcnNpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50LnNvdXJjZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50Lm5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZxbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50LmZxbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZXNwYWNlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnQubmFtZXNwYWNlO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2R1bGVLZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnFuLnJlcGxhY2UoL1xcLy9naSwgXCJfXCIpO1xuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IGdldCBzcmNNYWtOYW1lKCk6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IGdldCBpc01vZHVsZSgpOiBib29sZWFuO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGlzUHJvdmlkZXIoKTogYm9vbGVhbjtcbiAgcHVibGljIGFic3RyYWN0IGdldCB0cmFja2luZ1BheWxvYWQoKTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCBzaW1wbGlmaWVkTmFtZSgpOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHR5cGVzUGF0aChuYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDb25zdHJ1Y3RzTWFrZXJNb2R1bGVUYXJnZXQgZXh0ZW5kcyBDb25zdHJ1Y3RzTWFrZXJUYXJnZXQge1xuICBwdWJsaWMgc3BlYz86IE1vZHVsZVNjaGVtYTtcblxuICBwdWJsaWMgZ2V0IGlzTW9kdWxlKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1Byb3ZpZGVyKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3JjTWFrTmFtZSgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50YXJnZXRMYW5ndWFnZSkge1xuICAgICAgY2FzZSBMYW5ndWFnZS5HTzpcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG4gICAgICBjYXNlIExhbmd1YWdlLkpBVkE6XG4gICAgICBjYXNlIExhbmd1YWdlLkNTSEFSUDpcbiAgICAgIGNhc2UgTGFuZ3VhZ2UuUFlUSE9OOlxuICAgICAgICByZXR1cm4gdGhpcy5zaW1wbGlmaWVkRnFuO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMuc2ltcGxpZmllZE5hbWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB0cmFja2luZ1BheWxvYWQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGZ1bGxOYW1lOiB0aGlzLmZxbixcbiAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgIHR5cGU6IFwibW9kdWxlXCIsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0eXBlc1BhdGgobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG1vZHVsZXMvJHtuYW1lfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHNpbXBsaWZpZWROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubmFtZXNwYWNlPy5yZXBsYWNlKC9cXC8vZ2ksIFwiLlwiKS5yZXBsYWNlKC8tL2dpLCBcIl9cIikgPz8gdGhpcy5uYW1lXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc2ltcGxpZmllZEZxbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZxbi5yZXBsYWNlKC9cXC8vZ2ksIFwiLlwiKS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0IGV4dGVuZHMgQ29uc3RydWN0c01ha2VyVGFyZ2V0IHtcbiAgcHVibGljIHNwZWM/OiBQcm92aWRlclNjaGVtYTtcblxuICBwdWJsaWMgZ2V0IGlzTW9kdWxlKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3JjTWFrTmFtZSgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50YXJnZXRMYW5ndWFnZSkge1xuICAgICAgY2FzZSBMYW5ndWFnZS5KQVZBOlxuICAgICAgICAvLyBcIm51bGxcIiBpcyBhIHJlc2VydmVkIGtleXdvcmQgYW5kIGNhbid0IGJlIHVzZWQgYXMgYSBwYWNrYWdlIG5hbWVcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNOdWxsUHJvdmlkZXIgPyBcIm51bGxwcm92aWRlclwiIDogdGhpcy5zaW1wbGlmaWVkTmFtZTtcbiAgICAgIGNhc2UgTGFuZ3VhZ2UuQ1NIQVJQOlxuICAgICAgICAvLyBcIm51bGxcIiBpcyBhIHJlc2VydmVkIGtleXdvcmQgYW5kIGNhbid0IGJlIHVzZWQgYXMgYSBuYW1lc3BhY2VcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNOdWxsUHJvdmlkZXIgPyBcIlByb3ZpZGVycy5OdWxsXCIgOiB0aGlzLnNpbXBsaWZpZWROYW1lO1xuICAgICAgY2FzZSBMYW5ndWFnZS5QWVRIT046XG4gICAgICAgIHJldHVybiB0aGlzLnNpbXBsaWZpZWROYW1lO1xuICAgICAgY2FzZSBMYW5ndWFnZS5HTzpcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50LmZxbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyYWNraW5nUGF5bG9hZCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZnVsbE5hbWU6IHRoaXMuc291cmNlLFxuICAgICAgdmVyc2lvbjogdGhpcy52ZXJzaW9uLFxuICAgICAgdHlwZTogXCJwcm92aWRlclwiLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgdHlwZXNQYXRoKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBwcm92aWRlcnMvJHtuYW1lfS9pbmRleGA7XG4gIH1cblxuICBwcml2YXRlIGdldCBpc051bGxQcm92aWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50Lm5hbWUgPT09IFwibnVsbFwiO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzaW1wbGlmaWVkTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUucmVwbGFjZSgvXFwvL2dpLCBcIi5cIikucmVwbGFjZSgvLS9naSwgXCJfXCIpO1xuICB9XG59XG4iXX0=
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0LW1ha2VyLXRhcmdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3QtbWFrZXItdGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7OztBQUVILHFDQUlrQjtBQUlsQixNQUFzQixxQkFBcUI7SUFHekMsWUFDa0IsVUFBeUMsRUFDekMsY0FBd0I7UUFEeEIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQVU7UUFFeEMsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLGtDQUF5QixFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ25FLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FDaEIsVUFBeUMsRUFDekMsY0FBd0I7UUFFeEIsSUFBSSxVQUFVLFlBQVksa0NBQXlCLEVBQUUsQ0FBQztZQUNwRCxPQUFPLElBQUksMkJBQTJCLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLDZCQUE2QixDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFF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S0FBSyxpQkFBUSxDQUFDLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkM7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFFUyxTQUFTLENBQUMsSUFBWTtRQUM5QixPQUFPLGFBQWEsSUFBSSxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVksY0FBYztRQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBYyxjQUFjO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBakRELHNFQWlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtcbiAgTGFuZ3VhZ2UsXG4gIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LFxuICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50LFxufSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IE1vZHVsZVNjaGVtYSB9IGZyb20gXCIuL21vZHVsZS1zY2hlbWFcIjtcbmltcG9ydCB7IFByb3ZpZGVyU2NoZW1hIH0gZnJvbSBcIi4vcHJvdmlkZXItc2NoZW1hXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb25zdHJ1Y3RzTWFrZXJUYXJnZXQge1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29uc3RyYWludDogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQsXG4gICAgcHVibGljIHJlYWRvbmx5IHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZSxcbiAgKSB7XG4gICAgaWYgKHRoaXMuY29uc3RyYWludCBpbnN0YW5jZW9mIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQpIHtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSBgJHt0aGlzLnR5cGVzUGF0aCh0aGlzLmNvbnN0cmFpbnQuZmlsZU5hbWUpfS50c2A7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsZU5hbWUgPSBgJHt0aGlzLnR5cGVzUGF0aCh0aGlzLmNvbnN0cmFpbnQubmFtZSl9LnRzYDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGZyb20oXG4gICAgY29uc3RyYWludDogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQsXG4gICAgdGFyZ2V0TGFuZ3VhZ2U6IExhbmd1YWdlLFxuICApIHtcbiAgICBpZiAoY29uc3RyYWludCBpbnN0YW5jZW9mIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KGNvbnN0cmFpbnQsIHRhcmdldExhbmd1YWdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBDb25zdHJ1Y3RzTWFrZXJQcm92aWRlclRhcmdldChjb25zdHJhaW50LCB0YXJnZXRMYW5ndWFnZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB2ZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnQudmVyc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnQuc291cmNlO1xuICB9XG5cbiAgcHVibGljIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnQubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZnFuKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnQuZnFuO1xuICB9XG5cbiAgcHVibGljIGdldCBuYW1lc3BhY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RyYWludC5uYW1lc3BhY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZHVsZUtleSgpIHtcbiAgICByZXR1cm4gdGhpcy5mcW4ucmVwbGFjZSgvXFwvL2dpLCBcIl9cIik7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHNyY01ha05hbWUoKTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGlzTW9kdWxlKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgaXNQcm92aWRlcigpOiBib29sZWFuO1xuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHRyYWNraW5nUGF5bG9hZCgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHNpbXBsaWZpZWROYW1lKCk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdHlwZXNQYXRoKG5hbWU6IHN0cmluZyk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCBleHRlbmRzIENvbnN0cnVjdHNNYWtlclRhcmdldCB7XG4gIHB1YmxpYyBzcGVjPzogTW9kdWxlU2NoZW1hO1xuXG4gIHB1YmxpYyBnZXQgaXNNb2R1bGUoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBzcmNNYWtOYW1lKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLnRhcmdldExhbmd1YWdlKSB7XG4gICAgICBjYXNlIExhbmd1YWdlLkdPOlxuICAgICAgICByZXR1cm4gdGhpcy5uYW1lLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKTtcbiAgICAgIGNhc2UgTGFuZ3VhZ2UuSkFWQTpcbiAgICAgIGNhc2UgTGFuZ3VhZ2UuQ1NIQVJQOlxuICAgICAgY2FzZSBMYW5ndWFnZS5QWVRIT046XG4gICAgICAgIHJldHVybiB0aGlzLnNpbXBsaWZpZWRGcW47XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5zaW1wbGlmaWVkTmFtZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyYWNraW5nUGF5bG9hZCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZnVsbE5hbWU6IHRoaXMuZnFuLFxuICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSxcbiAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgIHR5cGU6IFwibW9kdWxlXCIsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0eXBlc1BhdGgobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYG1vZHVsZXMvJHtuYW1lfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHNpbXBsaWZpZWROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubmFtZXNwYWNlPy5yZXBsYWNlKC9cXC8vZ2ksIFwiLlwiKS5yZXBsYWNlKC8tL2dpLCBcIl9cIikgPz8gdGhpcy5uYW1lXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc2ltcGxpZmllZEZxbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZxbi5yZXBsYWNlKC9cXC8vZ2ksIFwiLlwiKS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0IGV4dGVuZHMgQ29uc3RydWN0c01ha2VyVGFyZ2V0IHtcbiAgcHVibGljIHNwZWM/OiBQcm92aWRlclNjaGVtYTtcblxuICBwdWJsaWMgZ2V0IGlzTW9kdWxlKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3JjTWFrTmFtZSgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodGhpcy50YXJnZXRMYW5ndWFnZSkge1xuICAgICAgY2FzZSBMYW5ndWFnZS5KQVZBOlxuICAgICAgICAvLyBcIm51bGxcIiBpcyBhIHJlc2VydmVkIGtleXdvcmQgYW5kIGNhbid0IGJlIHVzZWQgYXMgYSBwYWNrYWdlIG5hbWVcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNOdWxsUHJvdmlkZXIgPyBcIm51bGxwcm92aWRlclwiIDogdGhpcy5zaW1wbGlmaWVkTmFtZTtcbiAgICAgIGNhc2UgTGFuZ3VhZ2UuQ1NIQVJQOlxuICAgICAgICAvLyBcIm51bGxcIiBpcyBhIHJlc2VydmVkIGtleXdvcmQgYW5kIGNhbid0IGJlIHVzZWQgYXMgYSBuYW1lc3BhY2VcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNOdWxsUHJvdmlkZXIgPyBcIlByb3ZpZGVycy5OdWxsXCIgOiB0aGlzLnNpbXBsaWZpZWROYW1lO1xuICAgICAgY2FzZSBMYW5ndWFnZS5QWVRIT046XG4gICAgICAgIHJldHVybiB0aGlzLnNpbXBsaWZpZWROYW1lO1xuICAgICAgY2FzZSBMYW5ndWFnZS5HTzpcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZS5yZXBsYWNlKC8tL2dpLCBcIl9cIik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50LmZxbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyYWNraW5nUGF5bG9hZCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZnVsbE5hbWU6IHRoaXMuc291cmNlLFxuICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSxcbiAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbixcbiAgICAgIHR5cGU6IFwicHJvdmlkZXJcIixcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHR5cGVzUGF0aChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgcHJvdmlkZXJzLyR7bmFtZX0vaW5kZXhgO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaXNOdWxsUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RyYWludC5uYW1lID09PSBcIm51bGxcIjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgc2ltcGxpZmllZE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLnJlcGxhY2UoL1xcLy9naSwgXCIuXCIpLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKTtcbiAgfVxufVxuIl19
|