gitlab-ci-local 4.48.2 → 4.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/index.js CHANGED
@@ -40,6 +40,7 @@ const executor_1 = require("./executor");
40
40
  const argv_1 = require("./argv");
41
41
  const assert_1 = require("assert");
42
42
  const job_1 = require("./job");
43
+ const gitlab_preset_1 = require("./gitlab-preset");
43
44
  const jobs = [];
44
45
  process.on("SIGINT", async (_, code) => {
45
46
  await (0, job_1.cleanupJobResources)(jobs);
@@ -186,8 +187,6 @@ process.on("SIGUSR2", async () => await (0, job_1.cleanupJobResources)(jobs));
186
187
  type: "boolean",
187
188
  description: "Whether to use shell executor when no image is specified.",
188
189
  requiresArg: false,
189
- // TODO: default to false in 5.x.x
190
- default: true,
191
190
  })
192
191
  .option("mount-cache", {
193
192
  type: "boolean",
@@ -198,8 +197,6 @@ process.on("SIGUSR2", async () => await (0, job_1.cleanupJobResources)(jobs));
198
197
  type: "boolean",
199
198
  description: "Sets docker user to 0:0",
200
199
  requiresArg: false,
201
- // TODO: default to false in 5.x.x
202
- default: true,
203
200
  })
204
201
  .option("privileged", {
205
202
  type: "boolean",
@@ -225,6 +222,11 @@ process.on("SIGUSR2", async () => await (0, job_1.cleanupJobResources)(jobs));
225
222
  type: "array",
226
223
  description: "Add extra docker host entries",
227
224
  requiresArg: false,
225
+ })
226
+ .option("pull-policy", {
227
+ type: "string",
228
+ description: "Set image pull-policy (always or if-not-present)",
229
+ requiresArg: false,
228
230
  })
229
231
  .option("fetch-includes", {
230
232
  type: "boolean",
@@ -235,13 +237,11 @@ process.on("SIGUSR2", async () => await (0, job_1.cleanupJobResources)(jobs));
235
237
  type: "boolean",
236
238
  description: "Copy the generated artifacts into cwd",
237
239
  requiresArg: false,
238
- default: true,
239
240
  })
240
241
  .option("cleanup", {
241
242
  type: "boolean",
242
243
  description: "Remove docker resources after they've been used",
243
244
  requiresArg: false,
244
- default: true,
245
245
  })
246
246
  .option("quiet", {
247
247
  type: "boolean",
@@ -258,11 +258,10 @@ process.on("SIGUSR2", async () => await (0, job_1.cleanupJobResources)(jobs));
258
258
  description: "Maximum padding for job name (use <= 0 for no padding)",
259
259
  requiresArg: false,
260
260
  })
261
- .option("enable-json-schema-validation", {
261
+ .option("json-schema-validation", {
262
262
  type: "boolean",
263
263
  description: "Whether to enable json schema validation",
264
264
  requiresArg: false,
265
- default: false,
266
265
  })
267
266
  .option("concurrency", {
268
267
  type: "number",
@@ -278,6 +277,11 @@ process.on("SIGUSR2", async () => await (0, job_1.cleanupJobResources)(jobs));
278
277
  type: "string",
279
278
  description: "Container MAC address (e.g., aa:bb:cc:dd:ee:ff)",
280
279
  requiresArg: false,
280
+ })
281
+ .option("container-emulate", {
282
+ type: "string",
283
+ description: "The name, without the architecture, of a gitlab hosted runner to emulate. See here: https://docs.gitlab.com/ee/ci/runners/hosted_runners/linux.html#machine-types-available-for-linux---x86-64",
284
+ choices: gitlab_preset_1.GitlabRunnerPresetValues,
281
285
  })
282
286
  .completion("completion", false, (current, yargsArgv, completionFilter, done) => {
283
287
  try {
@@ -300,4 +304,4 @@ process.on("SIGUSR2", async () => await (0, job_1.cleanupJobResources)(jobs));
300
304
  })
301
305
  .parse();
302
306
  })();
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHVDQUFxQztBQUNyQyxrREFBMEI7QUFDMUIsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3QixrREFBMEI7QUFDMUIscUNBQWdDO0FBQ2hDLCtDQUFpQztBQUNqQyxtREFBc0U7QUFDdEUsdUNBQWtDO0FBQ2xDLHlDQUFvQztBQUNwQyxpQ0FBNEI7QUFDNUIsbUNBQXNDO0FBQ3RDLCtCQUErQztBQUUvQyxNQUFNLElBQUksR0FBVSxFQUFFLENBQUM7QUFFdkIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQVMsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUNuRCxNQUFNLElBQUEseUJBQW1CLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQztBQUVILGdDQUFnQztBQUNoQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU0sSUFBQSx5QkFBbUIsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRW5FLENBQUMsR0FBRyxFQUFFO0lBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRyxJQUFBLGVBQUssRUFBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QixtQkFBbUIsQ0FBQyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUMsQ0FBQztTQUM3QyxjQUFjLENBQUMsS0FBSyxDQUFDO1NBQ3JC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Q0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQztxQkFDdEcsSUFBSSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLEVBQUUsRUFBRSxDQUFDLGVBQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksZ0NBQWdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7cUJBQzNGLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUNiLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvRixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUVMLENBQUMsQ0FBQztTQUNELEtBQUssRUFBRSxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgXCJzb3VyY2UtbWFwLXN1cHBvcnQvcmVnaXN0ZXJcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHlhcmdzIGZyb20gXCJ5YXJnc1wiO1xuaW1wb3J0IHtQYXJzZXJ9IGZyb20gXCIuL3BhcnNlclwiO1xuaW1wb3J0ICogYXMgc3RhdGUgZnJvbSBcIi4vc3RhdGVcIjtcbmltcG9ydCB7V3JpdGVTdHJlYW1zUHJvY2VzcywgV3JpdGVTdHJlYW1zTW9ja30gZnJvbSBcIi4vd3JpdGUtc3RyZWFtc1wiO1xuaW1wb3J0IHtoYW5kbGVyfSBmcm9tIFwiLi9oYW5kbGVyXCI7XG5pbXBvcnQge0V4ZWN1dG9yfSBmcm9tIFwiLi9leGVjdXRvclwiO1xuaW1wb3J0IHtBcmd2fSBmcm9tIFwiLi9hcmd2XCI7XG5pbXBvcnQge0Fzc2VydGlvbkVycm9yfSBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQge0pvYiwgY2xlYW51cEpvYlJlc291cmNlc30gZnJvbSBcIi4vam9iXCI7XG5cbmNvbnN0IGpvYnM6IEpvYltdID0gW107XG5cbnByb2Nlc3Mub24oXCJTSUdJTlRcIiwgYXN5bmMgKF86IHN0cmluZywgY29kZTogbnVtYmVyKSA9PiB7XG4gICAgYXdhaXQgY2xlYW51cEpvYlJlc291cmNlcyhqb2JzKTtcbiAgICBwcm9jZXNzLmV4aXQoY29kZSk7XG59KTtcblxuLy8gR3JhY2VmdWwgc2h1dGRvd24gZm9yIG5vZGVtb25cbnByb2Nlc3Mub24oXCJTSUdVU1IyXCIsIGFzeW5jICgpID0+IGF3YWl0IGNsZWFudXBKb2JSZXNvdXJjZXMoam9icykpO1xuXG4oKCkgPT4ge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi9wYWNrYWdlLmpzb25cIiksIFwidXRmOFwiKSk7XG4gICAgeWFyZ3MocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKVxuICAgICAgICAucGFyc2VyQ29uZmlndXJhdGlvbih7XCJncmVlZHktYXJyYXlzXCI6IGZhbHNlfSlcbiAgICAgICAgLnNob3dIZWxwT25GYWlsKGZhbHNlKVxuICAgICAgICAudmVyc2lvbihwYWNrYWdlSnNvbltcInZlcnNpb25cIl0pXG4gICAgICAgIC53cmFwKHlhcmdzLnRlcm1pbmFsV2lkdGgoKSlcbiAgICAgICAgLmNvbW1hbmQoe1xuICAgICAgICAgICAgaGFuZGxlcjogYXN5bmMgKGFyZ3YpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVyKGFyZ3YsIG5ldyBXcml0ZVN0cmVhbXNQcm9jZXNzKCksIGpvYnMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWRKb2JzID0gRXhlY3V0b3IuZ2V0RmFpbGVkKGpvYnMpO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoZmFpbGVkSm9icy5sZW5ndGggPiAwID8gMSA6IDApO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEFzc2VydGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7ZS5tZXNzYWdlLnRyaW0oKX19XFxuYCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIEFnZ3JlZ2F0ZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLmVycm9ycy5mb3JFYWNoKChhZ2dFKSA9PiBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7YWdnRS5zdGFjayA/PyBhZ2dFfX1cXG5gKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7ZS5zdGFjayA/PyBlfX1cXG5gKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBjbGVhbnVwSm9iUmVzb3VyY2VzKGpvYnMpO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1aWxkZXI6ICh5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geS5wb3NpdGlvbmFsKFwiam9iXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmU6IFwiSm9ibmFtZSdzIHRvIGV4ZWN1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IFwiJDAgW2pvYi4uXVwiLFxuICAgICAgICAgICAgZGVzY3JpYmU6IFwiUnVucyB0aGUgZW50aXJlIHBpcGVsaW5lIG9yIGpvYidzXCIsXG4gICAgICAgIH0pXG4gICAgICAgIC51c2FnZShcIkZpbmQgbW9yZSBpbmZvcm1hdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vZmlyZWNvdy9naXRsYWItY2ktbG9jYWwuXFxuTm90ZTogVG8gbmVnYXRlIGFuIG9wdGlvbiB1c2UgJy0tbm8tKG9wdGlvbiknLlwiKVxuICAgICAgICAuc3RyaWN0T3B0aW9ucygpXG4gICAgICAgIC5lbnYoXCJHQ0xcIilcbiAgICAgICAgLm9wdGlvbihcIm1hbnVhbFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJPbmUgb3IgbW9yZSBtYW51YWwgam9icyB0byBydW4gZHVyaW5nIGEgcGlwZWxpbmVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibGlzdFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpc3Qgam9iIGluZm9ybWF0aW9uLCB3aGVuOm5ldmVyIGV4Y2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0LWFsbFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpc3Qgam9iIGluZm9ybWF0aW9uLCB3aGVuOm5ldmVyIGluY2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0LWpzb25cIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMaXN0IGpvYiBpbmZvcm1hdGlvbiBpbiBqc29uIGZvcm1hdCwgd2hlbjpuZXZlciBpbmNsdWRlZFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibGlzdC1jc3ZcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMaXN0IGpvYiBpbmZvcm1hdGlvbiBpbiBjc3YgZm9ybWF0LCB3aGVuOm5ldmVyIGV4Y2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0LWNzdi1hbGxcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMaXN0IGpvYiBpbmZvcm1hdGlvbiBpbiBjc3YgZm9ybWF0LCB3aGVuOm5ldmVyIGluY2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJwcmV2aWV3XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUHJpbnQgWU1MIHdpdGggZGVmYXVsdHMsIGluY2x1ZGVzLCBleHRlbmRzIGFuZCByZWZlcmVuY2UncyBleHBhbmRlZFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiY3dkXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJQYXRoIHRvIGEgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJjb21wbGV0aW9uXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiR2VuZXJhdGUgdGFiIGNvbXBsZXRpb24gc2NyaXB0XCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJuZWVkc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1biBuZWVkZWQgam9icywgd2hlbiBleGVjdXRpbmcgc3BlY2lmaWMgam9ic1wiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwib25seS1uZWVkc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1biBuZWVkZWQgam9icywgZXhjZXB0IHRoZSBzcGVjaWZpZWQgam9icyB0aGVtc2VsdmVzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJzdGFnZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUnVuIGFsbCBqb2JzIGluIGEgc3BlY2lmaWMgc3RhZ2VcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInZhcmlhYmxlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkFkZCB2YXJpYWJsZSB0byBhbGwgZXhlY3V0ZWQgam9icyAoLS12YXJpYWJsZSBIRUxMTz13b3JsZClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInVuc2V0LXZhcmlhYmxlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlVuc2V0cyBhIHZhcmlhYmxlICgtLXVuc2V0LXZhcmlhYmxlIEhFTExPKVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwicmVtb3RlLXZhcmlhYmxlc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmV0Y2ggdmFyaWFibGVzIGZpbGUgZnJvbSByZW1vdGUgbG9jYXRpb25cIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInN0YXRlLWRpclwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTG9jYXRpb24gb2YgdGhlIC5naXRsYWItY2ktbG9jYWwgc3RhdGUgZGlyLCByZWxhdGl2ZSB0byBjd2QsIGVnLiAoc3ltZm9ueS8uZ2l0bGFiLWNpLWxvY2FsLylcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZpbGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxvY2F0aW9uIG9mIHRoZSAuZ2l0bGFiLWNpLnltbCwgcmVsYXRpdmUgdG8gY3dkLCBlZy4gKGdpdGxhYi8uZ2l0bGFiLWNpLnltbClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImhvbWVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxvY2F0aW9uIG9mIHRoZSBIT01FIC5naXRsYWItY2ktbG9jYWwgZm9sZGVyICgkSE9NRS8uZ2l0bGFiLWNpLWxvY2FsL3ZhcmlhYmxlcy55bWwpXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJzaGVsbC1pc29sYXRpb25cIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFbmFibGUgYXJ0aWZhY3QgaXNvbGF0aW9uIGZvciBzaGVsbC1leGVjdXRvciBqb2JzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJzaGVsbC1leGVjdXRvci1uby1pbWFnZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gdXNlIHNoZWxsIGV4ZWN1dG9yIHdoZW4gbm8gaW1hZ2UgaXMgc3BlY2lmaWVkLlwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICAgICAgLy8gVE9ETzogZGVmYXVsdCB0byBmYWxzZSBpbiA1LngueFxuICAgICAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcIm1vdW50LWNhY2hlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRW5hYmxlIGRvY2tlciBtb3VudCBiYXNlZCBjYWNoaW5nXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJ1bWFza1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNldHMgZG9ja2VyIHVzZXIgdG8gMDowXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgICAgICAvLyBUT0RPOiBkZWZhdWx0IHRvIGZhbHNlIGluIDUueC54XG4gICAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwicHJpdmlsZWdlZFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNldCBkb2NrZXIgZXhlY3V0b3IgdG8gcHJpdmlsZWdlZCBtb2RlXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJ1bGltaXRcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNldCBkb2NrZXIgZXhlY3V0b3IgdWxpbWl0XCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJuZXR3b3JrXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkFkZCBuZXR3b3JrcyB0byBkb2NrZXIgZXhlY3V0b3JcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInZvbHVtZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBZGQgdm9sdW1lcyB0byBkb2NrZXIgZXhlY3V0b3JcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImV4dHJhLWhvc3RcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkIGV4dHJhIGRvY2tlciBob3N0IGVudHJpZXNcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZldGNoLWluY2x1ZGVzXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmV0Y2ggYWxsIGV4dGVybmFsIGluY2x1ZGVzIG9uZSBtb3JlIHRpbWVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImFydGlmYWN0cy10by1zb3VyY2VcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJDb3B5IHRoZSBnZW5lcmF0ZWQgYXJ0aWZhY3RzIGludG8gY3dkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiY2xlYW51cFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlJlbW92ZSBkb2NrZXIgcmVzb3VyY2VzIGFmdGVyIHRoZXkndmUgYmVlbiB1c2VkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwicXVpZXRcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJTdXBwcmVzcyBhbGwgam9iIG91dHB1dFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwidGltZXN0YW1wc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNob3cgdGltZXN0YW1wcyBhbmQgam9iIGR1cmF0aW9uIGluIHRoZSBsb2dzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJtYXgtam9iLW5hbWUtcGFkZGluZ1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTWF4aW11bSBwYWRkaW5nIGZvciBqb2IgbmFtZSAodXNlIDw9IDAgZm9yIG5vIHBhZGRpbmcpXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJlbmFibGUtanNvbi1zY2hlbWEtdmFsaWRhdGlvblwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gZW5hYmxlIGpzb24gc2NoZW1hIHZhbGlkYXRpb25cIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiY29uY3VycmVuY3lcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJudW1iZXJcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpbWl0IHRoZSBudW1iZXIgb2Ygam9icyB0aGF0IHJ1biBzaW11bHRhbmVvdXNseVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiY29udGFpbmVyLWV4ZWN1dGFibGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbW1hbmQgdG8gc3RhcnQgdGhlIGNvbnRhaW5lciBlbmdpbmUgKGRvY2tlciBvciBwb2RtYW4pXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJjb250YWluZXItbWFjLWFkZHJlc3NcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkNvbnRhaW5lciBNQUMgYWRkcmVzcyAoZS5nLiwgYWE6YmI6Y2M6ZGQ6ZWU6ZmYpXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5jb21wbGV0aW9uKFwiY29tcGxldGlvblwiLCBmYWxzZSwgKGN1cnJlbnQ6IHN0cmluZywgeWFyZ3NBcmd2OiBhbnksIGNvbXBsZXRpb25GaWx0ZXI6IGFueSwgZG9uZTogKGNvbXBsZXRpb25zOiBzdHJpbmdbXSkgPT4gYW55KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LnN0YXJ0c1dpdGgoXCItXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25GaWx0ZXIoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBBcmd2LmJ1aWxkKHsuLi55YXJnc0FyZ3YsIGF1dG9Db21wbGV0aW5nOiB0cnVlfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGFyZ3YgPT4gc3RhdGUuZ2V0UGlwZWxpbmVJaWQoYXJndi5jd2QsIGFyZ3Yuc3RhdGVEaXIpLnRoZW4ocGlwZWxpbmVJaWQgPT4gKHthcmd2LCBwaXBlbGluZUlpZH0pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCh7YXJndiwgcGlwZWxpbmVJaWR9KSA9PiBQYXJzZXIuY3JlYXRlKGFyZ3YsIG5ldyBXcml0ZVN0cmVhbXNNb2NrKCksIHBpcGVsaW5lSWlkLCBbXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocGFyc2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgam9iTmFtZXMgPSBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldLmZpbHRlcigoaikgPT4gai53aGVuICE9IFwibmV2ZXJcIikubWFwKChqKSA9PiBqLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUoam9iTmFtZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXCJQYXJzZXItRmFpbGVkIVwiXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KVxuICAgICAgICAucGFyc2UoKTtcbn0pKCk7XG4iXX0=
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHVDQUFxQztBQUNyQyxrREFBMEI7QUFDMUIsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3QixrREFBMEI7QUFDMUIscUNBQWdDO0FBQ2hDLCtDQUFpQztBQUNqQyxtREFBc0U7QUFDdEUsdUNBQWtDO0FBQ2xDLHlDQUFvQztBQUNwQyxpQ0FBNEI7QUFDNUIsbUNBQXNDO0FBQ3RDLCtCQUErQztBQUMvQyxtREFBeUQ7QUFFekQsTUFBTSxJQUFJLEdBQVUsRUFBRSxDQUFDO0FBRXZCLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFTLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDbkQsTUFBTSxJQUFBLHlCQUFtQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFFSCxnQ0FBZ0M7QUFDaEMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUEseUJBQW1CLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUVuRSxDQUFDLEdBQUcsRUFBRTtJQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakcsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkIsbUJBQW1CLENBQUMsRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFDLENBQUM7U0FDN0MsY0FBYyxDQUFDLEtB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QUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsR0FBRyxTQUFTLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBQyxDQUFDO3FCQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN0RyxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsRUFBRSxFQUFFLENBQUMsZUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxnQ0FBZ0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztxQkFDM0YsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQy9GLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDWCxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBRUwsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxFQUFFLENBQUM7QUFDakIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCBcInNvdXJjZS1tYXAtc3VwcG9ydC9yZWdpc3RlclwiO1xuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeWFyZ3MgZnJvbSBcInlhcmdzXCI7XG5pbXBvcnQge1BhcnNlcn0gZnJvbSBcIi4vcGFyc2VyXCI7XG5pbXBvcnQgKiBhcyBzdGF0ZSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHtXcml0ZVN0cmVhbXNQcm9jZXNzLCBXcml0ZVN0cmVhbXNNb2NrfSBmcm9tIFwiLi93cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQge2hhbmRsZXJ9IGZyb20gXCIuL2hhbmRsZXJcIjtcbmltcG9ydCB7RXhlY3V0b3J9IGZyb20gXCIuL2V4ZWN1dG9yXCI7XG5pbXBvcnQge0FyZ3Z9IGZyb20gXCIuL2FyZ3ZcIjtcbmltcG9ydCB7QXNzZXJ0aW9uRXJyb3J9IGZyb20gXCJhc3NlcnRcIjtcbmltcG9ydCB7Sm9iLCBjbGVhbnVwSm9iUmVzb3VyY2VzfSBmcm9tIFwiLi9qb2JcIjtcbmltcG9ydCB7R2l0bGFiUnVubmVyUHJlc2V0VmFsdWVzfSBmcm9tIFwiLi9naXRsYWItcHJlc2V0XCI7XG5cbmNvbnN0IGpvYnM6IEpvYltdID0gW107XG5cbnByb2Nlc3Mub24oXCJTSUdJTlRcIiwgYXN5bmMgKF86IHN0cmluZywgY29kZTogbnVtYmVyKSA9PiB7XG4gICAgYXdhaXQgY2xlYW51cEpvYlJlc291cmNlcyhqb2JzKTtcbiAgICBwcm9jZXNzLmV4aXQoY29kZSk7XG59KTtcblxuLy8gR3JhY2VmdWwgc2h1dGRvd24gZm9yIG5vZGVtb25cbnByb2Nlc3Mub24oXCJTSUdVU1IyXCIsIGFzeW5jICgpID0+IGF3YWl0IGNsZWFudXBKb2JSZXNvdXJjZXMoam9icykpO1xuXG4oKCkgPT4ge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi9wYWNrYWdlLmpzb25cIiksIFwidXRmOFwiKSk7XG4gICAgeWFyZ3MocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKVxuICAgICAgICAucGFyc2VyQ29uZmlndXJhdGlvbih7XCJncmVlZHktYXJyYXlzXCI6IGZhbHNlfSlcbiAgICAgICAgLnNob3dIZWxwT25GYWlsKGZhbHNlKVxuICAgICAgICAudmVyc2lvbihwYWNrYWdlSnNvbltcInZlcnNpb25cIl0pXG4gICAgICAgIC53cmFwKHlhcmdzLnRlcm1pbmFsV2lkdGgoKSlcbiAgICAgICAgLmNvbW1hbmQoe1xuICAgICAgICAgICAgaGFuZGxlcjogYXN5bmMgKGFyZ3YpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVyKGFyZ3YsIG5ldyBXcml0ZVN0cmVhbXNQcm9jZXNzKCksIGpvYnMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWRKb2JzID0gRXhlY3V0b3IuZ2V0RmFpbGVkKGpvYnMpO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoZmFpbGVkSm9icy5sZW5ndGggPiAwID8gMSA6IDApO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEFzc2VydGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7ZS5tZXNzYWdlLnRyaW0oKX19XFxuYCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIEFnZ3JlZ2F0ZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLmVycm9ycy5mb3JFYWNoKChhZ2dFKSA9PiBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7YWdnRS5zdGFjayA/PyBhZ2dFfX1cXG5gKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7ZS5zdGFjayA/PyBlfX1cXG5gKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBjbGVhbnVwSm9iUmVzb3VyY2VzKGpvYnMpO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1aWxkZXI6ICh5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geS5wb3NpdGlvbmFsKFwiam9iXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmU6IFwiSm9ibmFtZSdzIHRvIGV4ZWN1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IFwiJDAgW2pvYi4uXVwiLFxuICAgICAgICAgICAgZGVzY3JpYmU6IFwiUnVucyB0aGUgZW50aXJlIHBpcGVsaW5lIG9yIGpvYidzXCIsXG4gICAgICAgIH0pXG4gICAgICAgIC51c2FnZShcIkZpbmQgbW9yZSBpbmZvcm1hdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vZmlyZWNvdy9naXRsYWItY2ktbG9jYWwuXFxuTm90ZTogVG8gbmVnYXRlIGFuIG9wdGlvbiB1c2UgJy0tbm8tKG9wdGlvbiknLlwiKVxuICAgICAgICAuc3RyaWN0T3B0aW9ucygpXG4gICAgICAgIC5lbnYoXCJHQ0xcIilcbiAgICAgICAgLm9wdGlvbihcIm1hbnVhbFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJPbmUgb3IgbW9yZSBtYW51YWwgam9icyB0byBydW4gZHVyaW5nIGEgcGlwZWxpbmVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibGlzdFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpc3Qgam9iIGluZm9ybWF0aW9uLCB3aGVuOm5ldmVyIGV4Y2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0LWFsbFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpc3Qgam9iIGluZm9ybWF0aW9uLCB3aGVuOm5ldmVyIGluY2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0LWpzb25cIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMaXN0IGpvYiBpbmZvcm1hdGlvbiBpbiBqc29uIGZvcm1hdCwgd2hlbjpuZXZlciBpbmNsdWRlZFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibGlzdC1jc3ZcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMaXN0IGpvYiBpbmZvcm1hdGlvbiBpbiBjc3YgZm9ybWF0LCB3aGVuOm5ldmVyIGV4Y2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0LWNzdi1hbGxcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMaXN0IGpvYiBpbmZvcm1hdGlvbiBpbiBjc3YgZm9ybWF0LCB3aGVuOm5ldmVyIGluY2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJwcmV2aWV3XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUHJpbnQgWU1MIHdpdGggZGVmYXVsdHMsIGluY2x1ZGVzLCBleHRlbmRzIGFuZCByZWZlcmVuY2UncyBleHBhbmRlZFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiY3dkXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJQYXRoIHRvIGEgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJjb21wbGV0aW9uXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiR2VuZXJhdGUgdGFiIGNvbXBsZXRpb24gc2NyaXB0XCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJuZWVkc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1biBuZWVkZWQgam9icywgd2hlbiBleGVjdXRpbmcgc3BlY2lmaWMgam9ic1wiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwib25seS1uZWVkc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1biBuZWVkZWQgam9icywgZXhjZXB0IHRoZSBzcGVjaWZpZWQgam9icyB0aGVtc2VsdmVzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJzdGFnZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUnVuIGFsbCBqb2JzIGluIGEgc3BlY2lmaWMgc3RhZ2VcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInZhcmlhYmxlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkFkZCB2YXJpYWJsZSB0byBhbGwgZXhlY3V0ZWQgam9icyAoLS12YXJpYWJsZSBIRUxMTz13b3JsZClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInVuc2V0LXZhcmlhYmxlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlVuc2V0cyBhIHZhcmlhYmxlICgtLXVuc2V0LXZhcmlhYmxlIEhFTExPKVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwicmVtb3RlLXZhcmlhYmxlc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmV0Y2ggdmFyaWFibGVzIGZpbGUgZnJvbSByZW1vdGUgbG9jYXRpb25cIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInN0YXRlLWRpclwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTG9jYXRpb24gb2YgdGhlIC5naXRsYWItY2ktbG9jYWwgc3RhdGUgZGlyLCByZWxhdGl2ZSB0byBjd2QsIGVnLiAoc3ltZm9ueS8uZ2l0bGFiLWNpLWxvY2FsLylcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZpbGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxvY2F0aW9uIG9mIHRoZSAuZ2l0bGFiLWNpLnltbCwgcmVsYXRpdmUgdG8gY3dkLCBlZy4gKGdpdGxhYi8uZ2l0bGFiLWNpLnltbClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImhvbWVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxvY2F0aW9uIG9mIHRoZSBIT01FIC5naXRsYWItY2ktbG9jYWwgZm9sZGVyICgkSE9NRS8uZ2l0bGFiLWNpLWxvY2FsL3ZhcmlhYmxlcy55bWwpXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJzaGVsbC1pc29sYXRpb25cIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFbmFibGUgYXJ0aWZhY3QgaXNvbGF0aW9uIGZvciBzaGVsbC1leGVjdXRvciBqb2JzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJzaGVsbC1leGVjdXRvci1uby1pbWFnZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gdXNlIHNoZWxsIGV4ZWN1dG9yIHdoZW4gbm8gaW1hZ2UgaXMgc3BlY2lmaWVkLlwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibW91bnQtY2FjaGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFbmFibGUgZG9ja2VyIG1vdW50IGJhc2VkIGNhY2hpbmdcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInVtYXNrXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiU2V0cyBkb2NrZXIgdXNlciB0byAwOjBcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInByaXZpbGVnZWRcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJTZXQgZG9ja2VyIGV4ZWN1dG9yIHRvIHByaXZpbGVnZWQgbW9kZVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwidWxpbWl0XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJTZXQgZG9ja2VyIGV4ZWN1dG9yIHVsaW1pdFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibmV0d29ya1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBZGQgbmV0d29ya3MgdG8gZG9ja2VyIGV4ZWN1dG9yXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJ2b2x1bWVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkIHZvbHVtZXMgdG8gZG9ja2VyIGV4ZWN1dG9yXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJleHRyYS1ob3N0XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkFkZCBleHRyYSBkb2NrZXIgaG9zdCBlbnRyaWVzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJwdWxsLXBvbGljeVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiU2V0IGltYWdlIHB1bGwtcG9saWN5IChhbHdheXMgb3IgaWYtbm90LXByZXNlbnQpXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJmZXRjaC1pbmNsdWRlc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZldGNoIGFsbCBleHRlcm5hbCBpbmNsdWRlcyBvbmUgbW9yZSB0aW1lXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJhcnRpZmFjdHMtdG8tc291cmNlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQ29weSB0aGUgZ2VuZXJhdGVkIGFydGlmYWN0cyBpbnRvIGN3ZFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiY2xlYW51cFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlJlbW92ZSBkb2NrZXIgcmVzb3VyY2VzIGFmdGVyIHRoZXkndmUgYmVlbiB1c2VkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJxdWlldFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlN1cHByZXNzIGFsbCBqb2Igb3V0cHV0XCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJ0aW1lc3RhbXBzXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiU2hvdyB0aW1lc3RhbXBzIGFuZCBqb2IgZHVyYXRpb24gaW4gdGhlIGxvZ3NcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcIm1heC1qb2ItbmFtZS1wYWRkaW5nXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJNYXhpbXVtIHBhZGRpbmcgZm9yIGpvYiBuYW1lICh1c2UgPD0gMCBmb3Igbm8gcGFkZGluZylcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImpzb24tc2NoZW1hLXZhbGlkYXRpb25cIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRvIGVuYWJsZSBqc29uIHNjaGVtYSB2YWxpZGF0aW9uXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJjb25jdXJyZW5jeVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcIm51bWJlclwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTGltaXQgdGhlIG51bWJlciBvZiBqb2JzIHRoYXQgcnVuIHNpbXVsdGFuZW91c2x5XCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJjb250YWluZXItZXhlY3V0YWJsZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQ29tbWFuZCB0byBzdGFydCB0aGUgY29udGFpbmVyIGVuZ2luZSAoZG9ja2VyIG9yIHBvZG1hbilcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImNvbnRhaW5lci1tYWMtYWRkcmVzc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQ29udGFpbmVyIE1BQyBhZGRyZXNzIChlLmcuLCBhYTpiYjpjYzpkZDplZTpmZilcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImNvbnRhaW5lci1lbXVsYXRlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSwgd2l0aG91dCB0aGUgYXJjaGl0ZWN0dXJlLCBvZiBhIGdpdGxhYiBob3N0ZWQgcnVubmVyIHRvIGVtdWxhdGUuIFNlZSBoZXJlOiBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS9ydW5uZXJzL2hvc3RlZF9ydW5uZXJzL2xpbnV4Lmh0bWwjbWFjaGluZS10eXBlcy1hdmFpbGFibGUtZm9yLWxpbnV4LS0teDg2LTY0XCIsXG4gICAgICAgICAgICBjaG9pY2VzOiBHaXRsYWJSdW5uZXJQcmVzZXRWYWx1ZXMsXG4gICAgICAgIH0pXG4gICAgICAgIC5jb21wbGV0aW9uKFwiY29tcGxldGlvblwiLCBmYWxzZSwgKGN1cnJlbnQ6IHN0cmluZywgeWFyZ3NBcmd2OiBhbnksIGNvbXBsZXRpb25GaWx0ZXI6IGFueSwgZG9uZTogKGNvbXBsZXRpb25zOiBzdHJpbmdbXSkgPT4gYW55KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LnN0YXJ0c1dpdGgoXCItXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25GaWx0ZXIoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBBcmd2LmJ1aWxkKHsuLi55YXJnc0FyZ3YsIGF1dG9Db21wbGV0aW5nOiB0cnVlfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKGFyZ3YgPT4gc3RhdGUuZ2V0UGlwZWxpbmVJaWQoYXJndi5jd2QsIGFyZ3Yuc3RhdGVEaXIpLnRoZW4ocGlwZWxpbmVJaWQgPT4gKHthcmd2LCBwaXBlbGluZUlpZH0pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCh7YXJndiwgcGlwZWxpbmVJaWR9KSA9PiBQYXJzZXIuY3JlYXRlKGFyZ3YsIG5ldyBXcml0ZVN0cmVhbXNNb2NrKCksIHBpcGVsaW5lSWlkLCBbXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocGFyc2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgam9iTmFtZXMgPSBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldLmZpbHRlcigoaikgPT4gai53aGVuICE9IFwibmV2ZXJcIikubWFwKChqKSA9PiBqLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUoam9iTmFtZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXCJQYXJzZXItRmFpbGVkIVwiXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KVxuICAgICAgICAucGFyc2UoKTtcbn0pKCk7XG4iXX0=