@cdktn/commons 0.23.2 → 0.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/debug.js CHANGED
@@ -15,15 +15,36 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.collectDebugInformation = exports.getPackageVersion = exports.getNodeVersion = exports.getGoVersion = exports.getPipenvVersion = exports.getPipVersion = exports.getPythonVersion = exports.getGradleVersion = exports.getMavenVersion = exports.getJavaVersion = exports.getDotnetVersion = exports.getLanguage = void 0;
36
+ exports.getLanguage = getLanguage;
37
+ exports.getDotnetVersion = getDotnetVersion;
38
+ exports.getJavaVersion = getJavaVersion;
39
+ exports.getMavenVersion = getMavenVersion;
40
+ exports.getGradleVersion = getGradleVersion;
41
+ exports.getPythonVersion = getPythonVersion;
42
+ exports.getPipVersion = getPipVersion;
43
+ exports.getPipenvVersion = getPipenvVersion;
44
+ exports.getGoVersion = getGoVersion;
45
+ exports.getNodeVersion = getNodeVersion;
46
+ exports.getPackageVersion = getPackageVersion;
47
+ exports.collectDebugInformation = collectDebugInformation;
27
48
  // Copyright (c) HashiCorp, Inc
28
49
  // SPDX-License-Identifier: MPL-2.0
29
50
  const path = __importStar(require("path"));
@@ -45,7 +66,6 @@ function getLanguage(projectPath = process.cwd()) {
45
66
  return undefined;
46
67
  }
47
68
  }
48
- exports.getLanguage = getLanguage;
49
69
  async function getBinaryVersion(binary, versionCommand) {
50
70
  const noOp = () => { };
51
71
  try {
@@ -60,40 +80,31 @@ async function getBinaryVersion(binary, versionCommand) {
60
80
  function getDotnetVersion() {
61
81
  return getBinaryVersion("dotnet", "--version");
62
82
  }
63
- exports.getDotnetVersion = getDotnetVersion;
64
83
  function getJavaVersion() {
65
84
  return getBinaryVersion("java", "-version");
66
85
  }
67
- exports.getJavaVersion = getJavaVersion;
68
86
  function getMavenVersion() {
69
87
  return getBinaryVersion("mvn", "--version");
70
88
  }
71
- exports.getMavenVersion = getMavenVersion;
72
89
  function getGradleVersion() {
73
90
  return getBinaryVersion("gradle", "--version");
74
91
  }
75
- exports.getGradleVersion = getGradleVersion;
76
92
  async function getPythonVersion() {
77
93
  return ((await getBinaryVersion("python3", "--version")) ||
78
94
  (await getBinaryVersion("python", "--version")));
79
95
  }
80
- exports.getPythonVersion = getPythonVersion;
81
96
  function getPipVersion() {
82
97
  return getBinaryVersion("pip", "--version");
83
98
  }
84
- exports.getPipVersion = getPipVersion;
85
99
  function getPipenvVersion() {
86
100
  return getBinaryVersion("pipenv", "--version");
87
101
  }
88
- exports.getPipenvVersion = getPipenvVersion;
89
102
  function getGoVersion() {
90
103
  return getBinaryVersion("go", "version");
91
104
  }
92
- exports.getGoVersion = getGoVersion;
93
105
  function getNodeVersion() {
94
106
  return getBinaryVersion("node", "--version");
95
107
  }
96
- exports.getNodeVersion = getNodeVersion;
97
108
  async function getNodeModuleVersion(packageName) {
98
109
  // Use the presence of the pnpm lock file as a signal that
99
110
  // we should interrogate packages via pnpm instead of npm.
@@ -323,7 +334,6 @@ async function getPackageVersion(language, packageName) {
323
334
  const libVersion = await (getLibraryVersionMap[language] || noOp)(packageName);
324
335
  return libVersion !== null && libVersion !== void 0 ? libVersion : undefined;
325
336
  }
326
- exports.getPackageVersion = getPackageVersion;
327
337
  async function collectDebugInformation() {
328
338
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
329
339
  const debugOutput = {};
@@ -375,5 +385,4 @@ async function collectDebugInformation() {
375
385
  }
376
386
  return debugOutput;
377
387
  }
378
- exports.collectDebugInformation = collectDebugInformation;
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDJDQUE2QjtBQUM3Qix1Q0FBeUI7QUFDekIsdUNBQW1DO0FBQ25DLGlDQUE4QjtBQUM5QiwyQ0FBK0M7QUFDL0MsdUNBQTRDO0FBQzVDLHVDQUFvRDtBQUNwRCxxQ0FBb0U7QUFFcEUsU0FBZ0IsV0FBVyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzFCLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FDL0QsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsaUNBQWlDO1FBQ2pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBWEQsa0NBV0M7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLE1BQWMsRUFDZCxjQUFzQjtJQUV0QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFDdkIsTUFBTSxFQUNOLENBQUMsY0FBYyxDQUFDLEVBQ2hCLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUM3RCxJQUFJLEVBQ0os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Q0FBQztnQkFDOUIsTUFBTSxLQUFLLEdBQUcsZUFBZSxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixFQUFFLENBQUM7Z0JBQ2xDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxJQUFJLENBQUMsbUNBQUksSUFBSSxDQUFDO2dCQUMzQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sS0FBSyxDQUFDLG1DQUFJLElBQUksQ0FBQztnQkFDN0MsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxtQ0FBSSxJQUFJLENBQUM7WUFDakQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFFBQVE7WUFDWCxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQyxtQ0FBSSxJQUFJLENBQUM7WUFDM0QsTUFBTTtRQUNSLEtBQUssSUFBSTtZQUNQLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxZQUFZLEVBQUUsQ0FBQyxtQ0FBSSxJQUFJLENBQUM7WUFDbkQsTUFBTTtJQUNWLENBQUM7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBdERELDBEQXNEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyB0ZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5pbXBvcnQgeyBESVNQTEFZX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uXCI7XG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uLCBpc0dyYWRsZVByb2plY3QgfSBmcm9tIFwiLi9ncmFkbGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlKHByb2plY3RQYXRoID0gcHJvY2Vzcy5jd2QoKSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgY29uc3QgY2RrdGZKc29uID0gSlNPTi5wYXJzZShcbiAgICAgIHJlYWRGaWxlU3luYyhwYXRoLnJlc29sdmUocHJvamVjdFBhdGgsIFwiY2RrdGYuanNvblwiKSwgXCJ1dGYtOFwiKSxcbiAgICApO1xuICAgIHJldHVybiBjZGt0Zkpzb24ubGFuZ3VhZ2U7XG4gIH0gY2F0Y2gge1xuICAgIC8vIFdlIGNhbiBub3QgZGV0ZWN0IHRoZSBsYW5ndWFnZVxuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIGRldGVjdCBsYW5ndWFnZSBpbiAke3Byb2plY3RQYXRofWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QmluYXJ5VmVyc2lvbihcbiAgYmluYXJ5OiBzdHJpbmcsXG4gIHZlcnNpb25Db21tYW5kOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBub09wID0gKCkgPT4ge307XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyhcbiAgICAgIGJpbmFyeSxcbiAgICAgIFt2ZXJzaW9uQ29tbWFuZF0sXG4gICAgICB7IGVudjogcHJvY2Vzcy5lbnYsIHN0ZGlvOiBbdW5kZWZpbmVkLCB1bmRlZmluZWQsIFwiaWdub3JlXCJdIH0sXG4gICAgICBub09wLFxuICAgICAgbm9PcCxcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQudHJpbSgpLnJlcGxhY2UoL1xccj9cXG58XFxyL2csIFwiXCIpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gcnVuICR7YmluYXJ5fSAke3ZlcnNpb25Db21tYW5kfTogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERvdG5ldFZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwiZG90bmV0XCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SmF2YVZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwiamF2YVwiLCBcIi12ZXJzaW9uXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1hdmVuVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJtdm5cIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHcmFkbGVWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImdyYWRsZVwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFB5dGhvblZlcnNpb24oKSB7XG4gIHJldHVybiAoXG4gICAgKGF3YWl0IGdldEJpbmFyeVZlcnNpb24oXCJweXRob24zXCIsIFwiLS12ZXJzaW9uXCIpKSB8fFxuICAgIChhd2FpdCBnZXRCaW5hcnlWZXJzaW9uKFwicHl0aG9uXCIsIFwiLS12ZXJzaW9uXCIpKVxuICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBpcFZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwicGlwXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBpcGVudlZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwicGlwZW52XCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R29WZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImdvXCIsIFwidmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcIm5vZGVcIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgLy8gVXNlIHRoZSBwcmVzZW5jZSBvZiB0aGUgcG5wbSBsb2NrIGZpbGUgYXMgYSBzaWduYWwgdGhhdFxuICAvLyB3ZSBzaG91bGQgaW50ZXJyb2dhdGUgcGFja2FnZXMgdmlhIHBucG0gaW5zdGVhZCBvZiBucG0uXG4gIGNvbnN0IHVzaW5nUG5wbSA9IGF3YWl0IHBhdGhFeGlzdHMoXCJwbnBtLWxvY2sueWFtbFwiKTtcblxuICByZXR1cm4gdXNpbmdQbnBtXG4gICAgPyBnZXRQbnBtTm9kZU1vZHVsZVZlcnNpb24ocGFja2FnZU5hbWUpXG4gICAgOiBnZXROcG1Ob2RlTW9kdWxlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFBucG1Ob2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG5cbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicG5wbVwiLCBbXCJsaXN0XCIsIHBhY2thZ2VOYW1lLCBcIi0tanNvblwiXSwge1xuICAgICAgZW52OiB7IC4uLnByb2Nlc3MuZW52IH0sXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ3BucG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxldCBqc29uO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHBhcnNlIG91dHB1dCBvZiAncG5wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbiB8fFxuICAgICFBcnJheS5pc0FycmF5KGpzb24pIHx8XG4gICAganNvbi5sZW5ndGggPT09IDAgfHxcbiAgICAhanNvblswXT8uZGVwZW5kZW5jaWVzPy5bcGFja2FnZU5hbWVdPy52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICdwbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ganNvblswXS5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdLnZlcnNpb247XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5wbU5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IG91dHB1dDtcblxuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJucG1cIiwgW1wibGlzdFwiLCBwYWNrYWdlTmFtZSwgXCItLWpzb25cIl0sIHtcbiAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiB9LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICducG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxldCBqc29uO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHBhcnNlIG91dHB1dCBvZiAnbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKFxuICAgICFqc29uLmRlcGVuZGVuY2llcyB8fFxuICAgICFqc29uLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gfHxcbiAgICAhanNvbi5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdLnZlcnNpb25cbiAgKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kICcke3BhY2thZ2VOYW1lfScgaW4gJ25wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGpzb24uZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXS52ZXJzaW9uO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRQeXRob25QYWNrYWdlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcGVudlwiLCBbXCJydW5cIiwgXCJwaXBcIiwgXCJzaG93XCIsIFwiLXFxXCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcblxuICAgIC8vIFJ1bm5pbmcgd2l0aCBgLXFxYCBzdXBwcmVzc2VzIGJvdGggbWlzc2luZyBwYWNrYWdlcyBhbmQgYWN0dWFsIHBhY2thZ2VcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicGlwZW52XCIsIFtcInJ1blwiLCBcInBpcFwiLCBcInNob3dcIiwgcGFja2FnZU5hbWVdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdwaXBlbnYgcnVuIHBpcCBzaG93ICR7cGFja2FnZU5hbWV9JzogJHtlfWApO1xuICB9XG5cbiAgLy8gSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBvdXRwdXQgdXNpbmcgcGlwZW52LCB0cnkgdG8gZ2V0IGl0IHVzaW5nIHBpcCBkaXJlY3RseVxuICBpZiAoIW91dHB1dCkge1xuICAgIHRyeSB7XG4gICAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicGlwXCIsIFtcInNob3dcIiwgXCItcXFcIiwgcGFja2FnZU5hbWVdLCB7XG4gICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICB9KTtcblxuICAgICAgLy8gUnVubmluZyB3aXRoIGAtcXFgIHN1cHByZXNzZXMgYm90aCBtaXNzaW5nIHBhY2thZ2VzIGFuZCBhY3R1YWwgcGFja2FnZVxuICAgICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcFwiLCBbXCJzaG93XCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdwaXAgc2hvdyAke3BhY2thZ2VOYW1lfSc6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIW91dHB1dCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uSW5mbyA9IG91dHB1dFxuICAgIC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKVxuICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLnN0YXJ0c1dpdGgoXCJWZXJzaW9uOlwiKSk7XG5cbiAgaWYgKCF2ZXJzaW9uSW5mbykge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGluIG91dHB1dCBvZiAncGlwZW52IHJ1biBwaXAgc2hvdyAke3BhY2thZ2VOYW1lfScgLyAncGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uSW5mby5zcGxpdChcIjpcIilbMV0udHJpbSgpO1xuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuLy8gT25jZSBodHRwczovL2dpdGh1Yi5jb20vTnVHZXQvSG9tZS9pc3N1ZXMvNzc1MiBnZXRzIHJlc29sdmVkIHdlIGNhbiBhbHNvIHRyeSB3aXRoIC0tanNvblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q1NoYXJwUGFja2FnZVZlcnNpb24ocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBjb25zdCB0cmFuc2xhdGlvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBqc2lpOiBcIkFtYXpvbi5KU0lJLlJ1bnRpbWVcIixcbiAgICBjb25zdHJ1Y3RzOiBcIkNvbnN0cnVjdHNcIixcbiAgICBjZGt0ZjogXCJIYXNoaUNvcnAuQ2RrdGZcIixcbiAgICBjZGt0bjogXCJJby5DZGt0blwiLFxuICB9O1xuICBjb25zdCBjU2hhcnBQYWNrYWdlTmFtZSA9IHRyYW5zbGF0aW9uTWFwW3BhY2thZ2VOYW1lXSB8fCBwYWNrYWdlTmFtZTtcblxuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJkb3RuZXRcIiwgW1wibGlzdFwiLCBcInBhY2thZ2VcIiwgXCItLWluY2x1ZGUtdHJhbnNpdGl2ZVwiXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gcnVuICdkb3RuZXQgbGlzdCBwYWNrYWdlIC0taW5jbHVkZS10cmFuc2l0aXZlJzogJHtlfWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbkxpbmUgPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhgPiAke2NTaGFycFBhY2thZ2VOYW1lfWApKTtcblxuICBpZiAoIXZlcnNpb25MaW5lKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHZlcnNpb24gZm9yICcke2NTaGFycFBhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdkb3RuZXQgbGlzdCBwYWNrYWdlIC0taW5jbHVkZS10cmFuc2l0aXZlJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBBIGxpbmUgbWlnaHQgbG9vayBsaWtlIHRoaXM6XG4gIC8vICAgVHJhbnNpdGl2ZSBQYWNrYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc29sdmVkXG4gIC8vICAgPiBBbWF6b24uSlNJSS5SdW50aW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTcuMVxuICAvLyBUaGVyZWZvcmUgd2UgcmV2ZXJzZSBzcGxpdCBieSB3aGl0ZXNwYWNlIGFuZCByZXZlcnNlXG4gIC8vIHNvIHRoYXQgdGhlIGZpcnN0IHRoaW5nIHdlIGZpbmQgaXMgdGhlIHZlcnNpb24gbnVtYmVyXG4gIHJldHVybiB2ZXJzaW9uTGluZVxuICAgIC5zcGxpdChcIiBcIilcbiAgICAucmV2ZXJzZSgpXG4gICAgLmZpbmQoKHBhcnQpID0+IHBhcnQgIT09IFwiXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRHb1BhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJqc2lpLXJ1bnRpbWUtZ29cIixcbiAgICBjZGt0ZjogXCJnaXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrLWdvXCIsXG4gICAgY2RrdG46IFwiZ2l0aHViLmNvbS9vcGVuLWNvbnN0cnVjdHMvY2RrLXRlcnJhaW4tZ29cIixcbiAgfTtcbiAgY29uc3QgZ29QYWNrYWdlTmFtZSA9IHRyYW5zbGF0aW9uTWFwW3BhY2thZ2VOYW1lXSB8fCBwYWNrYWdlTmFtZTtcblxuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJnb1wiLCBbXCJsaXN0XCIsIFwiLW1cIiwgXCJhbGxcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ2dvIGxpc3QgLW0gYWxsJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsZXQgdmVyc2lvbkxpbmUgPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhnb1BhY2thZ2VOYW1lKSk7XG5cbiAgaWYgKCF2ZXJzaW9uTGluZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGZvciAnJHtnb1BhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdnbyBsaXN0IC1tIGFsbCc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gV2UgYXJlIGRlYWxpbmcgd2l0aCBhIGxvY2FsIHZlcnNpb25cbiAgaWYgKHZlcnNpb25MaW5lLmluY2x1ZGVzKFwiPT5cIikpIHtcbiAgICBsb2dnZXIuZGVidWcoYEZvdW5kIGxvY2FsIHZlcnNpb24gZm9yICcke2dvUGFja2FnZU5hbWV9JzogJHt2ZXJzaW9uTGluZX1gKTtcbiAgICB2ZXJzaW9uTGluZSA9IHZlcnNpb25MaW5lLnNwbGl0KFwiPT5cIilbMF0udHJpbSgpO1xuICB9XG5cbiAgcmV0dXJuIHZlcnNpb25MaW5lLnNwbGl0KFwiIFwiKS5wb3AoKT8ucmVwbGFjZShcInZcIiwgXCJcIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1hdmVuUGFja2FnZVZlcnNpb24ocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBjb25zdCB0cmFuc2xhdGlvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBqc2lpOiBcImpzaWktcnVudGltZVwiLFxuICB9O1xuICBjb25zdCBqYXZhUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwibXZuXCIsIFtcImRlcGVuZGVuY3k6bGlzdFwiXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAnbXZuIGRlcGVuZGVuY3k6bGlzdCc6ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmVzb2x1dGlvblBhcnQgPSBvdXRwdXQuc3BsaXQoXG4gICAgXCJUaGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgYmVlbiByZXNvbHZlZFwiLFxuICApWzFdO1xuICBpZiAoIXJlc29sdXRpb25QYXJ0KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHJlc29sdXRpb24gcGFzc2FnZSBpbiBvdXRwdXQgb2YgJ212biBkZXBlbmRlbmN5Omxpc3QnOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gc2VhcmNoIGZvciB0aGUgcGFja2FnZSBuYW1lIEFORCBhIGNvbG9uIHRvIG5vdCBtYXRjaCBhIGxpbmUgbGlrZVxuICAvLyBbSU5GT10gICAgY29tLmhhc2hpY29ycDpjZGt0Zi1wcm92aWRlci1hd3M6amFyOjkuMC45OmNvbXBpbGVcbiAgLy8gd2hlbiBsb29raW5nIGZvciB0aGUgY2RrdGYgcGFja2FnZSAoc2VlIEdpdGh1YiBpc3N1ZSAjMTk5NClcbiAgY29uc3QgdmVyc2lvbkxpbmUgPSByZXNvbHV0aW9uUGFydFxuICAgIC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKVxuICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKGAke2phdmFQYWNrYWdlTmFtZX06YCkpO1xuXG4gIGlmICghdmVyc2lvbkxpbmUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBmb3IgJyR7amF2YVBhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdtdm4gZGVwZW5kZW5jeTpsaXN0JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBFeGFtcGxlIGxpbmU6IFtJTkZPXSAgICBjb20uaGFzaGljb3JwOmNka3RmOmphcjowLjAuMDpjb21waWxlXG4gIGNvbnN0IHZlcnNpb25TdGFydERlbGltaXRlciA9IGAke2phdmFQYWNrYWdlTmFtZX06amFyOmA7XG4gIGNvbnN0IHZlcnNpb25TdGFydCA9XG4gICAgdmVyc2lvbkxpbmUuaW5kZXhPZih2ZXJzaW9uU3RhcnREZWxpbWl0ZXIpICsgdmVyc2lvblN0YXJ0RGVsaW1pdGVyLmxlbmd0aDtcbiAgY29uc3QgdmVyc2lvbkVuZERlbGVtaXRlciA9IFwiOmNvbXBpbGVcIjtcbiAgY29uc3QgdmVyc2lvbkVuZCA9IHZlcnNpb25MaW5lLmluZGV4T2YodmVyc2lvbkVuZERlbGVtaXRlcik7XG4gIHJldHVybiB2ZXJzaW9uTGluZS5zdWJzdHJpbmcodmVyc2lvblN0YXJ0LCB2ZXJzaW9uRW5kKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0SmF2YVBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgaWYgKGlzR3JhZGxlUHJvamVjdChcIi4vXCIpKSB7XG4gICAgcmV0dXJuIGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lKTtcbiAgfVxuXG4gIHJldHVybiBnZXRNYXZlblBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFBhY2thZ2VWZXJzaW9uKFxuICBsYW5ndWFnZTogc3RyaW5nLFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgbm9PcCA9IGFzeW5jICgpID0+IHVuZGVmaW5lZDtcbiAgY29uc3QgZ2V0TGlicmFyeVZlcnNpb25NYXA6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgKG5hbWU6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+XG4gID4gPSB7XG4gICAgdHlwZXNjcmlwdDogZ2V0Tm9kZU1vZHVsZVZlcnNpb24sXG4gICAgcHl0aG9uOiBnZXRQeXRob25QYWNrYWdlVmVyc2lvbixcbiAgICBnbzogZ2V0R29QYWNrYWdlVmVyc2lvbixcbiAgICBjc2hhcnA6IGdldENTaGFycFBhY2thZ2VWZXJzaW9uLFxuICAgIGphdmE6IGdldEphdmFQYWNrYWdlVmVyc2lvbixcbiAgfTtcblxuICBjb25zdCBsaWJWZXJzaW9uID0gYXdhaXQgKGdldExpYnJhcnlWZXJzaW9uTWFwW2xhbmd1YWdlXSB8fCBub09wKShcbiAgICBwYWNrYWdlTmFtZSxcbiAgKTtcbiAgcmV0dXJuIGxpYlZlcnNpb24gPz8gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdERlYnVnSW5mb3JtYXRpb24oKSB7XG4gIGNvbnN0IGRlYnVnT3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPiA9IHt9O1xuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKCk7XG4gIGRlYnVnT3V0cHV0W1wibGFuZ3VhZ2VcIl0gPSBsYW5ndWFnZSA/PyBudWxsO1xuICBkZWJ1Z091dHB1dFtcImNka3RuLWNsaVwiXSA9IERJU1BMQVlfVkVSU0lPTjtcblxuICBjb25zdCBub2RlID0gZ2V0Tm9kZVZlcnNpb24oKTtcblxuICBkZWJ1Z091dHB1dFtcIm5vZGVcIl0gPSAoYXdhaXQgbm9kZSkgPz8gbnVsbDtcbiAgaWYgKGxhbmd1YWdlKSB7XG4gICAgY29uc3QgY2RrdG4gPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjZGt0blwiKTtcbiAgICBjb25zdCBjZGt0ZiA9IGdldFBhY2thZ2VWZXJzaW9uKGxhbmd1YWdlLCBcImNka3RmXCIpO1xuICAgIGNvbnN0IGNvbnN0cnVjdHMgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjb25zdHJ1Y3RzXCIpO1xuICAgIGNvbnN0IGpzaWkgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJqc2lpXCIpO1xuXG4gICAgZGVidWdPdXRwdXRbXCJjZGt0blwiXSA9IChhd2FpdCBjZGt0bikgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImNka3RmXCJdID0gKGF3YWl0IGNka3RmKSA/PyBudWxsO1xuICAgIGRlYnVnT3V0cHV0W1wiY29uc3RydWN0c1wiXSA9IChhd2FpdCBjb25zdHJ1Y3RzKSA/PyBudWxsO1xuICAgIGRlYnVnT3V0cHV0W1wianNpaVwiXSA9IChhd2FpdCBqc2lpKSA/PyBudWxsO1xuICB9XG4gIGRlYnVnT3V0cHV0W1widGVycmFmb3JtXCJdID0gYXdhaXQgdGVycmFmb3JtVmVyc2lvbjtcbiAgZGVidWdPdXRwdXRbXCJhcmNoXCJdID0gb3MuYXJjaCgpO1xuICBkZWJ1Z091dHB1dFtcIm9zXCJdID0gYCR7b3MucGxhdGZvcm0oKX0gJHtvcy5yZWxlYXNlKCl9YDtcblxuICBzd2l0Y2ggKGxhbmd1YWdlKSB7XG4gICAgY2FzZSBcInB5dGhvblwiOlxuICAgICAge1xuICAgICAgICBjb25zdCBweXRob24gPSBnZXRQeXRob25WZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IHBpcCA9IGdldFBpcFZlcnNpb24oKTtcbiAgICAgICAgY29uc3QgcGlwZW52ID0gZ2V0UGlwZW52VmVyc2lvbigpO1xuICAgICAgICBkZWJ1Z091dHB1dFtcInB5dGhvblwiXSA9IChhd2FpdCBweXRob24pID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wicGlwXCJdID0gKGF3YWl0IHBpcCkgPz8gbnVsbDtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJwaXBlbnZcIl0gPSAoYXdhaXQgcGlwZW52KSA/PyBudWxsO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImphdmFcIjpcbiAgICAgIHtcbiAgICAgICAgY29uc3QgamF2YSA9IGdldEphdmFWZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IG1hdmVuID0gZ2V0TWF2ZW5WZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IGdyYWRsZSA9IGdldEdyYWRsZVZlcnNpb24oKTtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJqYXZhXCJdID0gKGF3YWl0IGphdmEpID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wibWF2ZW5cIl0gPSAoYXdhaXQgbWF2ZW4pID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wiZ3JhZGxlXCJdID0gKGF3YWl0IGdyYWRsZSkgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjc2hhcnBcIjpcbiAgICAgIGRlYnVnT3V0cHV0W1wiZG90bmV0XCJdID0gKGF3YWl0IGdldERvdG5ldFZlcnNpb24oKSkgPz8gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJnb1wiOlxuICAgICAgZGVidWdPdXRwdXRbXCJnb1wiXSA9IChhd2FpdCBnZXRHb1ZlcnNpb24oKSkgPz8gbnVsbDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGRlYnVnT3V0cHV0O1xufVxuIl19
388
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxrQ0FXQztBQXNCRCw0Q0FFQztBQUVELHdDQUVDO0FBQ0QsMENBRUM7QUFFRCw0Q0FFQztBQUVELDRDQUtDO0FBQ0Qsc0NBRUM7QUFDRCw0Q0FFQztBQUVELG9DQUVDO0FBRUQsd0NBRUM7QUEwUkQsOENBb0JDO0FBRUQsMERBc0RDO0FBcGJELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6Qix1Q0FBbUM7QUFDbkMsaUNBQThCO0FBQzlCLDJDQUErQztBQUMvQyx1Q0FBNEM7QUFDNUMsdUNBQW9EO0FBQ3BELHFDQUFvRTtBQUVwRSxTQUFnQixXQUFXLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFDckQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDMUIsSUFBQSx1QkFBWSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUMvRCxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFBQyxXQUFNLENBQUM7UUFDUCxpQ0FBaUM7UUFDakMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLE1BQWMsRUFDZCxjQUFzQjtJQUV0QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFDdkIsTUFBTSxFQUNOLENBQUMsY0FBYyxDQUFDLEVBQ2hCLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUM3RCxJQUFJLEVBQ0osSUFBSSxDQUNMLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLE1BQU0sSUFBSSxjQUFjLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGdCQUFnQjtJQUM5QixPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBZ0IsY0FBYztJQUM1QixPQUFPLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBQ0QsU0FBZ0IsZUFBZTtJQUM3QixPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCO0lBQzlCLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCO0lBQ3BDLE9BQU8sQ0FDTCxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2hELENBQUMsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FDaEQsQ0FBQztBQUNKLENBQUM7QUFDRCxTQUFnQixhQUFhO0lBQzNCLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFDRCxTQUFnQixnQkFBZ0I7SUFDOUIsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQWdCLFlBQVk7SUFDMUIsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVELFNBQWdCLGNBQWM7SUFDNUIsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELEtBQUssVUFBVSxvQkFBb0IsQ0FDakMsV0FBbUI7SUFFbkIsMERBQTBEO0lBQzFELDBEQUEwRDtJQUMxRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEscUJBQVUsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXJELE9BQU8sU0FBUztRQUNkLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUM7UUFDdkMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxLQUFLLFVBQVUsd0JBQXdCLENBQ3JDLFdBQW1COztJQUVuQixJQUFJLE1BQU0sQ0FBQztJQUVYLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDM0QsR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLFdBQVcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQztJQUNULElBQUksQ0FBQztRQUNILElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQ1Ysd0NBQXdDLFdBQVcsYUFBYSxDQUFDLEVBQUUsQ0FDcEUsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUNFLENBQUMsSUFBSTtRQUNMLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQSxNQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFlBQVksMENBQUcsV0FBVyxDQUFDLDBDQUFFLE9BQU8sQ0FBQSxFQUM5QyxDQUFDO1FBQ0QsZ0JBQU0sQ0FBQyxLQUFLLENBQ1YsbUJBQW1CLFdBQVcsbUJBQW1CLFdBQVcsYUFBYSxNQUFNLEVBQUUsQ0FDbEYsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ25ELENBQUM7QUFFRCxLQUFLLFVBQVUsdUJBQXVCLENBQ3BDLFdBQW1CO0lBRW5CLElBQUksTUFBTSxDQUFDO0lBRVgsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLE1BQU0sSUFBQSxXQUFJLEVBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUMxRCxHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxnQkFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsV0FBVyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckUsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDO0lBQ1QsSUFBSSxDQUFDO1FBQ0gsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxnQkFBTSxDQUFDLEtBQUssQ0FDVix1Q0FBdUMsV0FBVyxhQUFhLENBQUMsRUFBRSxDQUNuRSxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQ0UsQ0FBQyxJQUFJLENBQUMsWUFBWTtRQUNsQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1FBQy9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQ3ZDLENBQUM7UUFDRCxnQkFBTSxDQUFDLEtBQUssQ0FDVixtQkFBbUIsV0FBVyxrQkFBa0IsV0FBVyxhQUFhLE1BQU0sRUFBRSxDQUNqRixDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFDaEQsQ0FBQztBQUVELEtBQUssVUFBVSx1QkFBdUIsQ0FDcEMsV0FBbUI7SUFFbkIsSUFBSSxNQUFNLENBQUM7SUFDWCxJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDeEUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1NBQ2pCLENBQUMsQ0FBQztRQUVILHlFQUF5RTtRQUN6RSxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRTtZQUNqRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsV0FBVyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFO2dCQUN2RCxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7YUFDakIsQ0FBQyxDQUFDO1lBRUgseUVBQXlFO1lBQ3pFLE1BQU0sR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRTtnQkFDaEQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLFdBQVcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLE1BQU07U0FDdkIsS0FBSyxDQUFDLFlBQVksQ0FBQztTQUNuQixJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsZ0JBQU0sQ0FBQyxLQUFLLENBQ1YsNERBQTRELFdBQVcsaUJBQWlCLFdBQVcsTUFBTSxNQUFNLEVBQUUsQ0FDbEgsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCwyRkFBMkY7QUFDM0YsS0FBSyxVQUFVLHVCQUF1QixDQUFDLFdBQW1CO0lBQ3hELE1BQU0sY0FBYyxHQUEyQjtRQUM3QyxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLFVBQVUsRUFBRSxZQUFZO1FBQ3hCLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsS0FBSyxFQUFFLFVBQVU7S0FDbEIsQ0FBQztJQUNGLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQztJQUVyRSxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLENBQUMsRUFBRTtZQUN6RSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxnQkFBTSxDQUFDLEtBQUssQ0FDViw2REFBNkQsQ0FBQyxFQUFFLENBQ2pFLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTTtTQUN2QixLQUFLLENBQUMsWUFBWSxDQUFDO1NBQ25CLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixnQkFBTSxDQUFDLEtBQUssQ0FDViwrQkFBK0IsaUJBQWlCLDhEQUE4RCxNQUFNLEVBQUUsQ0FDdkgsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsMEVBQTBFO0lBQzFFLHdFQUF3RTtJQUN4RSx1REFBdUQ7SUFDdkQsd0RBQXdEO0lBQ3hELE9BQU8sV0FBVztTQUNmLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDVixPQUFPLEVBQUU7U0FDVCxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFdBQW1COztJQUNwRCxNQUFNLGNBQWMsR0FBMkI7UUFDN0MsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixLQUFLLEVBQUUsdUNBQXVDO1FBQzlDLEtBQUssRUFBRSwyQ0FBMkM7S0FDbkQsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUM7SUFFakUsSUFBSSxNQUFNLENBQUM7SUFDWCxJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQy9DLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLGdCQUFNLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLFdBQVcsR0FBRyxNQUFNO1NBQ3JCLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDbkIsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLGdCQUFNLENBQUMsS0FBSyxDQUNWLCtCQUErQixhQUFhLG9DQUFvQyxNQUFNLEVBQUUsQ0FDekYsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDL0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLGFBQWEsTUFBTSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxPQUFPLE1BQUEsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsMENBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsS0FBSyxVQUFVLHNCQUFzQixDQUFDLFdBQW1CO0lBQ3ZELE1BQU0sY0FBYyxHQUEyQjtRQUM3QyxJQUFJLEVBQUUsY0FBYztLQUNyQixDQUFDO0lBQ0YsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQztJQUVuRSxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLEtBQUssRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDOUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsd0NBQXdDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQ2pDLHdDQUF3QyxDQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLGdCQUFNLENBQUMsS0FBSyxDQUNWLHlFQUF5RSxNQUFNLEVBQUUsQ0FDbEYsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCw4RUFBOEU7SUFDOUUsK0RBQStEO0lBQy9ELDhEQUE4RDtJQUM5RCxNQUFNLFdBQVcsR0FBRyxjQUFjO1NBQy9CLEtBQUssQ0FBQyxZQUFZLENBQUM7U0FDbkIsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXhELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixnQkFBTSxDQUFDLEtBQUssQ0FDViwrQkFBK0IsZUFBZSx5Q0FBeUMsTUFBTSxFQUFFLENBQ2hHLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxlQUFlLE9BQU8sQ0FBQztJQUN4RCxNQUFNLFlBQVksR0FDaEIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztJQUM1RSxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztJQUN2QyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDNUQsT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsS0FBSyxVQUFVLHFCQUFxQixDQUFDLFdBQW1CO0lBQ3RELElBQUksSUFBQSx3QkFBZSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFBLGdDQUF1QixFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFFBQWdCLEVBQ2hCLFdBQW1CO0lBRW5CLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQ25DLE1BQU0sb0JBQW9CLEdBR3RCO1FBQ0YsVUFBVSxFQUFFLG9CQUFvQjtRQUNoQyxNQUFNLEVBQUUsdUJBQXVCO1FBQy9CLEVBQUUsRUFBRSxtQkFBbUI7UUFDdkIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixJQUFJLEVBQUUscUJBQXFCO0tBQzVCLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLENBQy9ELFdBQVcsQ0FDWixDQUFDO0lBQ0YsT0FBTyxVQUFVLGFBQVYsVUFBVSxjQUFWLFVBQVUsR0FBSSxTQUFTLENBQUM7QUFDakMsQ0FBQztBQUVNLEtBQUssVUFBVSx1QkFBdUI7O0lBQzNDLE1BQU0sV0FBVyxHQUFrQyxFQUFFLENBQUM7SUFDdEQsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDL0IsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsYUFBUixRQUFRLGNBQVIsUUFBUSxHQUFJLElBQUksQ0FBQztJQUMzQyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcseUJBQWUsQ0FBQztJQUUzQyxNQUFNLElBQUksR0FBRyxjQUFjLEVBQUUsQ0FBQztJQUU5QixXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sSUFBSSxDQUFDLG1DQUFJLElBQUksQ0FBQztJQUMzQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDN0QsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWpELFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxLQUFLLENBQUMsbUNBQUksSUFBSSxDQUFDO1FBQzdDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxLQUFLLENBQUMsbUNBQUksSUFBSSxDQUFDO1FBQzdDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxVQUFVLENBQUMsbUNBQUksSUFBSSxDQUFDO1FBQ3ZELFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxJQUFJLENBQUMsbUNBQUksSUFBSSxDQUFDO0lBQzdDLENBQUM7SUFDRCxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsTUFBTSw0QkFBZ0IsQ0FBQztJQUNsRCxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztJQUV2RCxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssUUFBUTtZQUNYLENBQUM7Z0JBQ0MsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxHQUFHLEdBQUcsYUFBYSxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixFQUFFLENBQUM7Z0JBQ2xDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxNQUFNLENBQUMsbUNBQUksSUFBSSxDQUFDO2dCQUMvQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sR0FBRyxDQUFDLG1DQUFJLElBQUksQ0FBQztnQkFDekMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxtQ0FBSSxJQUFJLENBQUM7WUFDakQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLE1BQU07WUFDVCxDQUFDO2dCQUNDLE1BQU0sSUFBSSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLEtBQUssR0FBRyxlQUFlLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQ0FBSSxJQUFJLENBQUM7Z0JBQzNDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxLQUFLLENBQUMsbUNBQUksSUFBSSxDQUFDO2dCQUM3QyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sTUFBTSxDQUFDLG1DQUFJLElBQUksQ0FBQztZQUNqRCxDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssUUFBUTtZQUNYLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDLG1DQUFJLElBQUksQ0FBQztZQUMzRCxNQUFNO1FBQ1IsS0FBSyxJQUFJO1lBQ1AsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLFlBQVksRUFBRSxDQUFDLG1DQUFJLElBQUksQ0FBQztZQUNuRCxNQUFNO0lBQ1YsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIi4vdXRpbFwiO1xuaW1wb3J0IHsgdGVycmFmb3JtVmVyc2lvbiB9IGZyb20gXCIuL3RlcnJhZm9ybVwiO1xuaW1wb3J0IHsgRElTUExBWV9WRVJTSU9OIH0gZnJvbSBcIi4vdmVyc2lvblwiO1xuaW1wb3J0IHsgcGF0aEV4aXN0cywgcmVhZEZpbGVTeW5jIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbiwgaXNHcmFkbGVQcm9qZWN0IH0gZnJvbSBcIi4vZ3JhZGxlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZShwcm9qZWN0UGF0aCA9IHByb2Nlc3MuY3dkKCkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IGNka3RmSnNvbiA9IEpTT04ucGFyc2UoXG4gICAgICByZWFkRmlsZVN5bmMocGF0aC5yZXNvbHZlKHByb2plY3RQYXRoLCBcImNka3RmLmpzb25cIiksIFwidXRmLThcIiksXG4gICAgKTtcbiAgICByZXR1cm4gY2RrdGZKc29uLmxhbmd1YWdlO1xuICB9IGNhdGNoIHtcbiAgICAvLyBXZSBjYW4gbm90IGRldGVjdCB0aGUgbGFuZ3VhZ2VcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBkZXRlY3QgbGFuZ3VhZ2UgaW4gJHtwcm9qZWN0UGF0aH1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEJpbmFyeVZlcnNpb24oXG4gIGJpbmFyeTogc3RyaW5nLFxuICB2ZXJzaW9uQ29tbWFuZDogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgbm9PcCA9ICgpID0+IHt9O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV4ZWMoXG4gICAgICBiaW5hcnksXG4gICAgICBbdmVyc2lvbkNvbW1hbmRdLFxuICAgICAgeyBlbnY6IHByb2Nlc3MuZW52LCBzdGRpbzogW3VuZGVmaW5lZCwgdW5kZWZpbmVkLCBcImlnbm9yZVwiXSB9LFxuICAgICAgbm9PcCxcbiAgICAgIG5vT3AsXG4gICAgKTtcbiAgICByZXR1cm4gcmVzdWx0LnRyaW0oKS5yZXBsYWNlKC9cXHI/XFxufFxcci9nLCBcIlwiKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgRmFpbGVkIHRvIHJ1biAke2JpbmFyeX0gJHt2ZXJzaW9uQ29tbWFuZH06ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREb3RuZXRWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImRvdG5ldFwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEphdmFWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImphdmFcIiwgXCItdmVyc2lvblwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXZlblZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwibXZuXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R3JhZGxlVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJncmFkbGVcIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQeXRob25WZXJzaW9uKCkge1xuICByZXR1cm4gKFxuICAgIChhd2FpdCBnZXRCaW5hcnlWZXJzaW9uKFwicHl0aG9uM1wiLCBcIi0tdmVyc2lvblwiKSkgfHxcbiAgICAoYXdhaXQgZ2V0QmluYXJ5VmVyc2lvbihcInB5dGhvblwiLCBcIi0tdmVyc2lvblwiKSlcbiAgKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaXBWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcInBpcFwiLCBcIi0tdmVyc2lvblwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRQaXBlbnZWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcInBpcGVudlwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdvVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJnb1wiLCBcInZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROb2RlVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJub2RlXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXROb2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIC8vIFVzZSB0aGUgcHJlc2VuY2Ugb2YgdGhlIHBucG0gbG9jayBmaWxlIGFzIGEgc2lnbmFsIHRoYXRcbiAgLy8gd2Ugc2hvdWxkIGludGVycm9nYXRlIHBhY2thZ2VzIHZpYSBwbnBtIGluc3RlYWQgb2YgbnBtLlxuICBjb25zdCB1c2luZ1BucG0gPSBhd2FpdCBwYXRoRXhpc3RzKFwicG5wbS1sb2NrLnlhbWxcIik7XG5cbiAgcmV0dXJuIHVzaW5nUG5wbVxuICAgID8gZ2V0UG5wbU5vZGVNb2R1bGVWZXJzaW9uKHBhY2thZ2VOYW1lKVxuICAgIDogZ2V0TnBtTm9kZU1vZHVsZVZlcnNpb24ocGFja2FnZU5hbWUpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRQbnBtTm9kZU1vZHVsZVZlcnNpb24oXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBsZXQgb3V0cHV0O1xuXG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBucG1cIiwgW1wibGlzdFwiLCBwYWNrYWdlTmFtZSwgXCItLWpzb25cIl0sIHtcbiAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiB9LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdwbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsZXQganNvbjtcbiAgdHJ5IHtcbiAgICBqc29uID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBwYXJzZSBvdXRwdXQgb2YgJ3BucG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpZiAoXG4gICAgIWpzb24gfHxcbiAgICAhQXJyYXkuaXNBcnJheShqc29uKSB8fFxuICAgIGpzb24ubGVuZ3RoID09PSAwIHx8XG4gICAgIWpzb25bMF0/LmRlcGVuZGVuY2llcz8uW3BhY2thZ2VOYW1lXT8udmVyc2lvblxuICApIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgJyR7cGFja2FnZU5hbWV9JyBpbiAncG5wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGpzb25bMF0uZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXS52ZXJzaW9uO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXROcG1Ob2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG5cbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwibnBtXCIsIFtcImxpc3RcIiwgcGFja2FnZU5hbWUsIFwiLS1qc29uXCJdLCB7XG4gICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYgfSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAnbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsZXQganNvbjtcbiAgdHJ5IHtcbiAgICBqc29uID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBwYXJzZSBvdXRwdXQgb2YgJ25wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbi5kZXBlbmRlbmNpZXMgfHxcbiAgICAhanNvbi5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdIHx8XG4gICAgIWpzb24uZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXS52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICducG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBqc29uLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0udmVyc2lvbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UHl0aG9uUGFja2FnZVZlcnNpb24oXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwaXBlbnZcIiwgW1wicnVuXCIsIFwicGlwXCIsIFwic2hvd1wiLCBcIi1xcVwiLCBwYWNrYWdlTmFtZV0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG5cbiAgICAvLyBSdW5uaW5nIHdpdGggYC1xcWAgc3VwcHJlc3NlcyBib3RoIG1pc3NpbmcgcGFja2FnZXMgYW5kIGFjdHVhbCBwYWNrYWdlXG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcGVudlwiLCBbXCJydW5cIiwgXCJwaXBcIiwgXCJzaG93XCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncGlwZW52IHJ1biBwaXAgc2hvdyAke3BhY2thZ2VOYW1lfSc6ICR7ZX1gKTtcbiAgfVxuXG4gIC8vIElmIHdlIGNvdWxkbid0IGdldCB0aGUgb3V0cHV0IHVzaW5nIHBpcGVudiwgdHJ5IHRvIGdldCBpdCB1c2luZyBwaXAgZGlyZWN0bHlcbiAgaWYgKCFvdXRwdXQpIHtcbiAgICB0cnkge1xuICAgICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcFwiLCBbXCJzaG93XCIsIFwiLXFxXCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFJ1bm5pbmcgd2l0aCBgLXFxYCBzdXBwcmVzc2VzIGJvdGggbWlzc2luZyBwYWNrYWdlcyBhbmQgYWN0dWFsIHBhY2thZ2VcbiAgICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwaXBcIiwgW1wic2hvd1wiLCBwYWNrYWdlTmFtZV0sIHtcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nOiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFvdXRwdXQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbkluZm8gPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5zdGFydHNXaXRoKFwiVmVyc2lvbjpcIikpO1xuXG4gIGlmICghdmVyc2lvbkluZm8pIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBpbiBvdXRwdXQgb2YgJ3BpcGVudiBydW4gcGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nIC8gJ3BpcCBzaG93ICR7cGFja2FnZU5hbWV9JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uID0gdmVyc2lvbkluZm8uc3BsaXQoXCI6XCIpWzFdLnRyaW0oKTtcbiAgcmV0dXJuIHZlcnNpb247XG59XG5cbi8vIE9uY2UgaHR0cHM6Ly9naXRodWIuY29tL051R2V0L0hvbWUvaXNzdWVzLzc3NTIgZ2V0cyByZXNvbHZlZCB3ZSBjYW4gYWxzbyB0cnkgd2l0aCAtLWpzb25cbmFzeW5jIGZ1bmN0aW9uIGdldENTaGFycFBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJBbWF6b24uSlNJSS5SdW50aW1lXCIsXG4gICAgY29uc3RydWN0czogXCJDb25zdHJ1Y3RzXCIsXG4gICAgY2RrdGY6IFwiSGFzaGlDb3JwLkNka3RmXCIsXG4gICAgY2RrdG46IFwiSW8uQ2RrdG5cIixcbiAgfTtcbiAgY29uc3QgY1NoYXJwUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwiZG90bmV0XCIsIFtcImxpc3RcIiwgXCJwYWNrYWdlXCIsIFwiLS1pbmNsdWRlLXRyYW5zaXRpdmVcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHJ1biAnZG90bmV0IGxpc3QgcGFja2FnZSAtLWluY2x1ZGUtdHJhbnNpdGl2ZSc6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb25MaW5lID0gb3V0cHV0XG4gICAgLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pXG4gICAgLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoYD4gJHtjU2hhcnBQYWNrYWdlTmFtZX1gKSk7XG5cbiAgaWYgKCF2ZXJzaW9uTGluZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGZvciAnJHtjU2hhcnBQYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnZG90bmV0IGxpc3QgcGFja2FnZSAtLWluY2x1ZGUtdHJhbnNpdGl2ZSc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gQSBsaW5lIG1pZ2h0IGxvb2sgbGlrZSB0aGlzOlxuICAvLyAgIFRyYW5zaXRpdmUgUGFja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvbHZlZFxuICAvLyAgID4gQW1hem9uLkpTSUkuUnVudGltZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjE3LjFcbiAgLy8gVGhlcmVmb3JlIHdlIHJldmVyc2Ugc3BsaXQgYnkgd2hpdGVzcGFjZSBhbmQgcmV2ZXJzZVxuICAvLyBzbyB0aGF0IHRoZSBmaXJzdCB0aGluZyB3ZSBmaW5kIGlzIHRoZSB2ZXJzaW9uIG51bWJlclxuICByZXR1cm4gdmVyc2lvbkxpbmVcbiAgICAuc3BsaXQoXCIgXCIpXG4gICAgLnJldmVyc2UoKVxuICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0ICE9PSBcIlwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0R29QYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGpzaWk6IFwianNpaS1ydW50aW1lLWdvXCIsXG4gICAgY2RrdGY6IFwiZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay1nb1wiLFxuICAgIGNka3RuOiBcImdpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluLWdvXCIsXG4gIH07XG4gIGNvbnN0IGdvUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwiZ29cIiwgW1wibGlzdFwiLCBcIi1tXCIsIFwiYWxsXCJdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdnbyBsaXN0IC1tIGFsbCc6ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgbGV0IHZlcnNpb25MaW5lID0gb3V0cHV0XG4gICAgLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pXG4gICAgLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoZ29QYWNrYWdlTmFtZSkpO1xuXG4gIGlmICghdmVyc2lvbkxpbmUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBmb3IgJyR7Z29QYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnZ28gbGlzdCAtbSBhbGwnOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFdlIGFyZSBkZWFsaW5nIHdpdGggYSBsb2NhbCB2ZXJzaW9uXG4gIGlmICh2ZXJzaW9uTGluZS5pbmNsdWRlcyhcIj0+XCIpKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGb3VuZCBsb2NhbCB2ZXJzaW9uIGZvciAnJHtnb1BhY2thZ2VOYW1lfSc6ICR7dmVyc2lvbkxpbmV9YCk7XG4gICAgdmVyc2lvbkxpbmUgPSB2ZXJzaW9uTGluZS5zcGxpdChcIj0+XCIpWzBdLnRyaW0oKTtcbiAgfVxuXG4gIHJldHVybiB2ZXJzaW9uTGluZS5zcGxpdChcIiBcIikucG9wKCk/LnJlcGxhY2UoXCJ2XCIsIFwiXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRNYXZlblBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJqc2lpLXJ1bnRpbWVcIixcbiAgfTtcbiAgY29uc3QgamF2YVBhY2thZ2VOYW1lID0gdHJhbnNsYXRpb25NYXBbcGFja2FnZU5hbWVdIHx8IHBhY2thZ2VOYW1lO1xuXG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcIm12blwiLCBbXCJkZXBlbmRlbmN5Omxpc3RcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ212biBkZXBlbmRlbmN5Omxpc3QnOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHJlc29sdXRpb25QYXJ0ID0gb3V0cHV0LnNwbGl0KFxuICAgIFwiVGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGJlZW4gcmVzb2x2ZWRcIixcbiAgKVsxXTtcbiAgaWYgKCFyZXNvbHV0aW9uUGFydCkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCByZXNvbHV0aW9uIHBhc3NhZ2UgaW4gb3V0cHV0IG9mICdtdm4gZGVwZW5kZW5jeTpsaXN0JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIHNlYXJjaCBmb3IgdGhlIHBhY2thZ2UgbmFtZSBBTkQgYSBjb2xvbiB0byBub3QgbWF0Y2ggYSBsaW5lIGxpa2VcbiAgLy8gW0lORk9dICAgIGNvbS5oYXNoaWNvcnA6Y2RrdGYtcHJvdmlkZXItYXdzOmphcjo5LjAuOTpjb21waWxlXG4gIC8vIHdoZW4gbG9va2luZyBmb3IgdGhlIGNka3RmIHBhY2thZ2UgKHNlZSBHaXRodWIgaXNzdWUgIzE5OTQpXG4gIGNvbnN0IHZlcnNpb25MaW5lID0gcmVzb2x1dGlvblBhcnRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhgJHtqYXZhUGFja2FnZU5hbWV9OmApKTtcblxuICBpZiAoIXZlcnNpb25MaW5lKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHZlcnNpb24gZm9yICcke2phdmFQYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnbXZuIGRlcGVuZGVuY3k6bGlzdCc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gRXhhbXBsZSBsaW5lOiBbSU5GT10gICAgY29tLmhhc2hpY29ycDpjZGt0ZjpqYXI6MC4wLjA6Y29tcGlsZVxuICBjb25zdCB2ZXJzaW9uU3RhcnREZWxpbWl0ZXIgPSBgJHtqYXZhUGFja2FnZU5hbWV9OmphcjpgO1xuICBjb25zdCB2ZXJzaW9uU3RhcnQgPVxuICAgIHZlcnNpb25MaW5lLmluZGV4T2YodmVyc2lvblN0YXJ0RGVsaW1pdGVyKSArIHZlcnNpb25TdGFydERlbGltaXRlci5sZW5ndGg7XG4gIGNvbnN0IHZlcnNpb25FbmREZWxlbWl0ZXIgPSBcIjpjb21waWxlXCI7XG4gIGNvbnN0IHZlcnNpb25FbmQgPSB2ZXJzaW9uTGluZS5pbmRleE9mKHZlcnNpb25FbmREZWxlbWl0ZXIpO1xuICByZXR1cm4gdmVyc2lvbkxpbmUuc3Vic3RyaW5nKHZlcnNpb25TdGFydCwgdmVyc2lvbkVuZCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEphdmFQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGlmIChpc0dyYWRsZVByb2plY3QoXCIuL1wiKSkge1xuICAgIHJldHVybiBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG4gIH1cblxuICByZXR1cm4gZ2V0TWF2ZW5QYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYWNrYWdlVmVyc2lvbihcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IG5vT3AgPSBhc3luYyAoKSA9PiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdldExpYnJhcnlWZXJzaW9uTWFwOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChuYW1lOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPlxuICA+ID0ge1xuICAgIHR5cGVzY3JpcHQ6IGdldE5vZGVNb2R1bGVWZXJzaW9uLFxuICAgIHB5dGhvbjogZ2V0UHl0aG9uUGFja2FnZVZlcnNpb24sXG4gICAgZ286IGdldEdvUGFja2FnZVZlcnNpb24sXG4gICAgY3NoYXJwOiBnZXRDU2hhcnBQYWNrYWdlVmVyc2lvbixcbiAgICBqYXZhOiBnZXRKYXZhUGFja2FnZVZlcnNpb24sXG4gIH07XG5cbiAgY29uc3QgbGliVmVyc2lvbiA9IGF3YWl0IChnZXRMaWJyYXJ5VmVyc2lvbk1hcFtsYW5ndWFnZV0gfHwgbm9PcCkoXG4gICAgcGFja2FnZU5hbWUsXG4gICk7XG4gIHJldHVybiBsaWJWZXJzaW9uID8/IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKCkge1xuICBjb25zdCBkZWJ1Z091dHB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4gPSB7fTtcbiAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZSgpO1xuICBkZWJ1Z091dHB1dFtcImxhbmd1YWdlXCJdID0gbGFuZ3VhZ2UgPz8gbnVsbDtcbiAgZGVidWdPdXRwdXRbXCJjZGt0bi1jbGlcIl0gPSBESVNQTEFZX1ZFUlNJT047XG5cbiAgY29uc3Qgbm9kZSA9IGdldE5vZGVWZXJzaW9uKCk7XG5cbiAgZGVidWdPdXRwdXRbXCJub2RlXCJdID0gKGF3YWl0IG5vZGUpID8/IG51bGw7XG4gIGlmIChsYW5ndWFnZSkge1xuICAgIGNvbnN0IGNka3RuID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwiY2RrdG5cIik7XG4gICAgY29uc3QgY2RrdGYgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjZGt0ZlwiKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RzID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwiY29uc3RydWN0c1wiKTtcbiAgICBjb25zdCBqc2lpID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwianNpaVwiKTtcblxuICAgIGRlYnVnT3V0cHV0W1wiY2RrdG5cIl0gPSAoYXdhaXQgY2RrdG4pID8/IG51bGw7XG4gICAgZGVidWdPdXRwdXRbXCJjZGt0ZlwiXSA9IChhd2FpdCBjZGt0ZikgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImNvbnN0cnVjdHNcIl0gPSAoYXdhaXQgY29uc3RydWN0cykgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImpzaWlcIl0gPSAoYXdhaXQganNpaSkgPz8gbnVsbDtcbiAgfVxuICBkZWJ1Z091dHB1dFtcInRlcnJhZm9ybVwiXSA9IGF3YWl0IHRlcnJhZm9ybVZlcnNpb247XG4gIGRlYnVnT3V0cHV0W1wiYXJjaFwiXSA9IG9zLmFyY2goKTtcbiAgZGVidWdPdXRwdXRbXCJvc1wiXSA9IGAke29zLnBsYXRmb3JtKCl9ICR7b3MucmVsZWFzZSgpfWA7XG5cbiAgc3dpdGNoIChsYW5ndWFnZSkge1xuICAgIGNhc2UgXCJweXRob25cIjpcbiAgICAgIHtcbiAgICAgICAgY29uc3QgcHl0aG9uID0gZ2V0UHl0aG9uVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBwaXAgPSBnZXRQaXBWZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IHBpcGVudiA9IGdldFBpcGVudlZlcnNpb24oKTtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJweXRob25cIl0gPSAoYXdhaXQgcHl0aG9uKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcInBpcFwiXSA9IChhd2FpdCBwaXApID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wicGlwZW52XCJdID0gKGF3YWl0IHBpcGVudikgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJqYXZhXCI6XG4gICAgICB7XG4gICAgICAgIGNvbnN0IGphdmEgPSBnZXRKYXZhVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBtYXZlbiA9IGdldE1hdmVuVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBncmFkbGUgPSBnZXRHcmFkbGVWZXJzaW9uKCk7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wiamF2YVwiXSA9IChhd2FpdCBqYXZhKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcIm1hdmVuXCJdID0gKGF3YWl0IG1hdmVuKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcImdyYWRsZVwiXSA9IChhd2FpdCBncmFkbGUpID8/IG51bGw7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiY3NoYXJwXCI6XG4gICAgICBkZWJ1Z091dHB1dFtcImRvdG5ldFwiXSA9IChhd2FpdCBnZXREb3RuZXRWZXJzaW9uKCkpID8/IG51bGw7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZ29cIjpcbiAgICAgIGRlYnVnT3V0cHV0W1wiZ29cIl0gPSAoYXdhaXQgZ2V0R29WZXJzaW9uKCkpID8/IG51bGw7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBkZWJ1Z091dHB1dDtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAmBA,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAEhE;AAsBD,eAAO,MAAM,MAAM;wBAlBN,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;qBAFpB,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;wBAFpB,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;oBAyBf,MAAM;CAIvB,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAmBA,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAEhE;AAsBD,eAAO,MAAM,MAAM;wBAlBN,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;qBAFpB,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;wBAFpB,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;oBAyBf,MAAM;CAIvB,CAAC"}
package/build/errors.js CHANGED
@@ -15,15 +15,26 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Errors = exports.IsErrorType = void 0;
36
+ exports.Errors = void 0;
37
+ exports.IsErrorType = IsErrorType;
27
38
  // Copyright (c) HashiCorp, Inc
28
39
  // SPDX-License-Identifier: MPL-2.0
29
40
  const checkpoint_1 = require("./checkpoint");
@@ -43,7 +54,6 @@ async function report(command, payload) {
43
54
  function IsErrorType(error, type) {
44
55
  return error && error.__type === type;
45
56
  }
46
- exports.IsErrorType = IsErrorType;
47
57
  function reportPrefixedError(type, command) {
48
58
  return (message, originalError = new Error(), context) => {
49
59
  report(command, { ...context, message, type });
@@ -72,4 +82,4 @@ exports.Errors = {
72
82
  Sentry.configureScope((s) => s.setTransactionName(scope));
73
83
  },
74
84
  };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsNkNBQTJEO0FBQzNELHVDQUE0QztBQUM1QyxxREFBdUM7QUFFdkMseUNBQXlDO0FBQ3pDLEtBQUssVUFBVSxNQUFNLENBQUMsT0FBZSxFQUFFLE9BQTRCO0lBQ2pFLE1BQU0sWUFBWSxHQUFpQjtRQUNqQyxPQUFPO1FBQ1AsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTyxFQUFFLEdBQUcseUJBQWUsRUFBRTtRQUM3QixRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUU7UUFDcEIsT0FBTztLQUNSLENBQUM7SUFFRixNQUFNLElBQUEsMEJBQWEsRUFBQyxZQUFZLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBR0QsU0FBZ0IsV0FBVyxDQUFDLEtBQVUsRUFBRSxJQUFlO0lBQ3JELE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFGRCxrQ0FFQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBZSxFQUFFLE9BQWU7SUFDM0QsT0FBTyxDQUNMLE9BQWUsRUFDZixnQkFBdUIsSUFBSSxLQUFLLEVBQUUsRUFDbEMsT0FBNkIsRUFDN0IsRUFBRTtRQUNGLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksV0FBVyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDckQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNoQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsOERBQThEO0FBQzlELElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQztBQUNkLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLDJCQUEyQjtJQUMzQixRQUFRLEVBQUUsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUNyRCxxQkFBcUI7SUFDckIsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFDL0MsdURBQXVEO0lBQ3ZELFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBRXJELCtCQUErQjtJQUMvQixRQUFRLENBQUMsS0FBYTtRQUNwQixVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFJlcG9ydFBhcmFtcywgUmVwb3J0UmVxdWVzdCB9IGZyb20gXCIuL2NoZWNrcG9pbnRcIjtcbmltcG9ydCB7IERJU1BMQVlfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tIFwiQHNlbnRyeS9ub2RlXCI7XG5cbi8vIEVycm9ycyB0aGF0IHdpbGwgZW1pdCB0ZWxlbWV0cnkgZXZlbnRzXG5hc3luYyBmdW5jdGlvbiByZXBvcnQoY29tbWFuZDogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIGNvbnN0IHJlcG9ydFBhcmFtczogUmVwb3J0UGFyYW1zID0ge1xuICAgIGNvbW1hbmQsXG4gICAgcHJvZHVjdDogXCJjZGt0blwiLFxuICAgIHZlcnNpb246IGAke0RJU1BMQVlfVkVSU0lPTn1gLFxuICAgIGRhdGVUaW1lOiBuZXcgRGF0ZSgpLFxuICAgIHBheWxvYWQsXG4gIH07XG5cbiAgYXdhaXQgUmVwb3J0UmVxdWVzdChyZXBvcnRQYXJhbXMpO1xufVxuXG50eXBlIEVycm9yVHlwZSA9IFwiSW50ZXJuYWxcIiB8IFwiRXh0ZXJuYWxcIiB8IFwiVXNhZ2VcIjtcbmV4cG9ydCBmdW5jdGlvbiBJc0Vycm9yVHlwZShlcnJvcjogYW55LCB0eXBlOiBFcnJvclR5cGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVycm9yICYmIGVycm9yLl9fdHlwZSA9PT0gdHlwZTtcbn1cblxuZnVuY3Rpb24gcmVwb3J0UHJlZml4ZWRFcnJvcih0eXBlOiBFcnJvclR5cGUsIGNvbW1hbmQ6IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBvcmlnaW5hbEVycm9yOiBFcnJvciA9IG5ldyBFcnJvcigpLFxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICApID0+IHtcbiAgICByZXBvcnQoY29tbWFuZCwgeyAuLi5jb250ZXh0LCBtZXNzYWdlLCB0eXBlIH0pO1xuICAgIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKGAke3R5cGV9IEVycm9yOiAke21lc3NhZ2V9YCk7XG4gICAgT2JqZWN0LmVudHJpZXMoY29udGV4dCB8fCB7fSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBlcnJba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIGVyci5fX3R5cGUgPSB0eXBlO1xuICAgIGVyci5zdGFjayA9IG9yaWdpbmFsRXJyb3Iuc3RhY2s7XG4gICAgcmV0dXJuIGVycjtcbiAgfTtcbn1cblxuLy8gVGhlIENMSSBvbmx5IGRlYWxzIHdpdGggb25lIGNvbW1hbmQgYXQgYSB0aW1lLCBzbyB3ZSBjYW4ganVzdCB1c2UgdGhlIHNhbWVcbi8vIHNjb3BlIGZvciBhbGwgZXJyb3JzIGFuZCBzZXQgaXQgb25jZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uXG5sZXQgZXJyb3JTY29wZSA9IFwidW5rbm93blwiO1xuZXhwb3J0IGNvbnN0IEVycm9ycyA9IHtcbiAgLy8gRXJyb3Igd2l0aGluIG91ciBjb250cm9sXG4gIEludGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiSW50ZXJuYWxcIiwgZXJyb3JTY29wZSksXG4gIC8vIEVycm9yIGluIHRoZSB1c2FnZVxuICBVc2FnZTogcmVwb3J0UHJlZml4ZWRFcnJvcihcIlVzYWdlXCIsIGVycm9yU2NvcGUpLFxuICAvLyBFcnJvciBvdXRzaWRlIG9mIG91ciBjb250cm9sIChlLmcuIHRlcnJhZm9ybSBmYWlsZWQpXG4gIEV4dGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiRXh0ZXJuYWxcIiwgZXJyb3JTY29wZSksXG5cbiAgLy8gU2V0IHRoZSBzY29wZSBmb3IgYWxsIGVycm9yc1xuICBzZXRTY29wZShzY29wZTogc3RyaW5nKSB7XG4gICAgZXJyb3JTY29wZSA9IHNjb3BlO1xuICAgIFNlbnRyeS5jb25maWd1cmVTY29wZSgocykgPT4gcy5zZXRUcmFuc2FjdGlvbk5hbWUoc2NvcGUpKTtcbiAgfSxcbn07XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsa0NBRUM7QUF0QkQsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyw2Q0FBMkQ7QUFDM0QsdUNBQTRDO0FBQzVDLHFEQUF1QztBQUV2Qyx5Q0FBeUM7QUFDekMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxPQUFlLEVBQUUsT0FBNEI7SUFDakUsTUFBTSxZQUFZLEdBQWlCO1FBQ2pDLE9BQU87UUFDUCxPQUFPLEVBQUUsT0FBTztRQUNoQixPQUFPLEVBQUUsR0FBRyx5QkFBZSxFQUFFO1FBQzdCLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRTtRQUNwQixPQUFPO0tBQ1IsQ0FBQztJQUVGLE1BQU0sSUFBQSwwQkFBYSxFQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFHRCxTQUFnQixXQUFXLENBQUMsS0FBVSxFQUFFLElBQWU7SUFDckQsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBZSxFQUFFLE9BQWU7SUFDM0QsT0FBTyxDQUNMLE9BQWUsRUFDZixnQkFBdUIsSUFBSSxLQUFLLEVBQUUsRUFDbEMsT0FBNkIsRUFDN0IsRUFBRTtRQUNGLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksV0FBVyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDckQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNoQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCw2RUFBNkU7QUFDN0UsOERBQThEO0FBQzlELElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQztBQUNkLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLDJCQUEyQjtJQUMzQixRQUFRLEVBQUUsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUNyRCxxQkFBcUI7SUFDckIsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUM7SUFDL0MsdURBQXVEO0lBQ3ZELFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBRXJELCtCQUErQjtJQUMvQixRQUFRLENBQUMsS0FBYTtRQUNwQixVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFJlcG9ydFBhcmFtcywgUmVwb3J0UmVxdWVzdCB9IGZyb20gXCIuL2NoZWNrcG9pbnRcIjtcbmltcG9ydCB7IERJU1BMQVlfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tIFwiQHNlbnRyeS9ub2RlXCI7XG5cbi8vIEVycm9ycyB0aGF0IHdpbGwgZW1pdCB0ZWxlbWV0cnkgZXZlbnRzXG5hc3luYyBmdW5jdGlvbiByZXBvcnQoY29tbWFuZDogc3RyaW5nLCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIGNvbnN0IHJlcG9ydFBhcmFtczogUmVwb3J0UGFyYW1zID0ge1xuICAgIGNvbW1hbmQsXG4gICAgcHJvZHVjdDogXCJjZGt0blwiLFxuICAgIHZlcnNpb246IGAke0RJU1BMQVlfVkVSU0lPTn1gLFxuICAgIGRhdGVUaW1lOiBuZXcgRGF0ZSgpLFxuICAgIHBheWxvYWQsXG4gIH07XG5cbiAgYXdhaXQgUmVwb3J0UmVxdWVzdChyZXBvcnRQYXJhbXMpO1xufVxuXG50eXBlIEVycm9yVHlwZSA9IFwiSW50ZXJuYWxcIiB8IFwiRXh0ZXJuYWxcIiB8IFwiVXNhZ2VcIjtcbmV4cG9ydCBmdW5jdGlvbiBJc0Vycm9yVHlwZShlcnJvcjogYW55LCB0eXBlOiBFcnJvclR5cGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGVycm9yICYmIGVycm9yLl9fdHlwZSA9PT0gdHlwZTtcbn1cblxuZnVuY3Rpb24gcmVwb3J0UHJlZml4ZWRFcnJvcih0eXBlOiBFcnJvclR5cGUsIGNvbW1hbmQ6IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBvcmlnaW5hbEVycm9yOiBFcnJvciA9IG5ldyBFcnJvcigpLFxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICApID0+IHtcbiAgICByZXBvcnQoY29tbWFuZCwgeyAuLi5jb250ZXh0LCBtZXNzYWdlLCB0eXBlIH0pO1xuICAgIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKGAke3R5cGV9IEVycm9yOiAke21lc3NhZ2V9YCk7XG4gICAgT2JqZWN0LmVudHJpZXMoY29udGV4dCB8fCB7fSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBlcnJba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIGVyci5fX3R5cGUgPSB0eXBlO1xuICAgIGVyci5zdGFjayA9IG9yaWdpbmFsRXJyb3Iuc3RhY2s7XG4gICAgcmV0dXJuIGVycjtcbiAgfTtcbn1cblxuLy8gVGhlIENMSSBvbmx5IGRlYWxzIHdpdGggb25lIGNvbW1hbmQgYXQgYSB0aW1lLCBzbyB3ZSBjYW4ganVzdCB1c2UgdGhlIHNhbWVcbi8vIHNjb3BlIGZvciBhbGwgZXJyb3JzIGFuZCBzZXQgaXQgb25jZSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uXG5sZXQgZXJyb3JTY29wZSA9IFwidW5rbm93blwiO1xuZXhwb3J0IGNvbnN0IEVycm9ycyA9IHtcbiAgLy8gRXJyb3Igd2l0aGluIG91ciBjb250cm9sXG4gIEludGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiSW50ZXJuYWxcIiwgZXJyb3JTY29wZSksXG4gIC8vIEVycm9yIGluIHRoZSB1c2FnZVxuICBVc2FnZTogcmVwb3J0UHJlZml4ZWRFcnJvcihcIlVzYWdlXCIsIGVycm9yU2NvcGUpLFxuICAvLyBFcnJvciBvdXRzaWRlIG9mIG91ciBjb250cm9sIChlLmcuIHRlcnJhZm9ybSBmYWlsZWQpXG4gIEV4dGVybmFsOiByZXBvcnRQcmVmaXhlZEVycm9yKFwiRXh0ZXJuYWxcIiwgZXJyb3JTY29wZSksXG5cbiAgLy8gU2V0IHRoZSBzY29wZSBmb3IgYWxsIGVycm9yc1xuICBzZXRTY29wZShzY29wZTogc3RyaW5nKSB7XG4gICAgZXJyb3JTY29wZSA9IHNjb3BlO1xuICAgIFNlbnRyeS5jb25maWd1cmVTY29wZSgocykgPT4gcy5zZXRUcmFuc2FjdGlvbk5hbWUoc2NvcGUpKTtcbiAgfSxcbn07XG4iXX0=
package/build/gradle.js CHANGED
@@ -7,7 +7,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getGradlePackageVersionFromBuild = exports.getGradlePackageVersion = exports.getDependencyInformationFromLine = exports.getGradleDependencies = exports.isGradleProject = void 0;
10
+ exports.isGradleProject = isGradleProject;
11
+ exports.getGradleDependencies = getGradleDependencies;
12
+ exports.getDependencyInformationFromLine = getDependencyInformationFromLine;
13
+ exports.getGradlePackageVersion = getGradlePackageVersion;
14
+ exports.getGradlePackageVersionFromBuild = getGradlePackageVersionFromBuild;
11
15
  const path_1 = __importDefault(require("path"));
12
16
  const fs_extra_1 = __importDefault(require("fs-extra"));
13
17
  const logging_1 = require("./logging");
@@ -23,7 +27,6 @@ function isGradleProject(workingDirectory) {
23
27
  return false;
24
28
  }
25
29
  }
26
- exports.isGradleProject = isGradleProject;
27
30
  async function getGradleDependencies() {
28
31
  let output;
29
32
  try {
@@ -61,12 +64,11 @@ async function getGradleDependencies() {
61
64
  .filter((line) => line !== "No dependencies")
62
65
  .map((line) => line.replace(prefixRegex, "").replace(suffixRegex, ""));
63
66
  }
64
- exports.getGradleDependencies = getGradleDependencies;
65
67
  function getDependencyInformationFromLine(line) {
66
68
  const packageNameRegex = /^\s*([^:]+):([^:]+)(?::([^\s]+))?/;
67
69
  const matches = line.match(packageNameRegex);
68
70
  if (!matches) {
69
- logging_1.logger.debug("Unexpected format for gradle build. Please file an issue at https://cdk.tf/bug");
71
+ logging_1.logger.debug("Unexpected format for gradle build. Please file an issue at https://github.com/open-constructs/cdk-terrain/issues/new?assignees=&labels=bug%2Cnew&template=bug-report.yml&title=");
70
72
  return undefined;
71
73
  }
72
74
  if (matches[3] === undefined) {
@@ -82,7 +84,6 @@ function getDependencyInformationFromLine(line) {
82
84
  version: matches[3],
83
85
  };
84
86
  }
85
- exports.getDependencyInformationFromLine = getDependencyInformationFromLine;
86
87
  /*
87
88
  * Example output:
88
89
  implementation - Implementation dependencies for the 'main' feature. (n)
@@ -119,7 +120,6 @@ async function getGradlePackageVersion(packageName) {
119
120
  }
120
121
  return undefined;
121
122
  }
122
- exports.getGradlePackageVersion = getGradlePackageVersion;
123
123
  async function getGradlePackageVersionFromBuild(packageName) {
124
124
  const buildGradlePath = path_1.default.join(process.cwd(), "build.gradle");
125
125
  const buildGradleContents = await fs_extra_1.default.readFile(buildGradlePath, "utf-8");
@@ -156,5 +156,4 @@ async function getGradlePackageVersionFromBuild(packageName) {
156
156
  }
157
157
  return undefined;
158
158
  }
159
- exports.getGradlePackageVersionFromBuild = getGradlePackageVersionFromBuild;
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dyYWRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7QUFFSCxnREFBd0I7QUFDeEIsd0RBQTBCO0FBQzFCLHVDQUFtQztBQUNuQyxpQ0FBOEI7QUFFOUIsU0FBZ0IsZUFBZSxDQUFDLGdCQUF3QjtJQUN0RCxNQUFNLGVBQWUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRXBFLElBQUksQ0FBQztRQUNILGtCQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxrQkFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsa0JBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQztBQVZELDBDQVVDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQjtJQUN6QyxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLGdCQUFNLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXpDLGtDQUFrQztJQUNsQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQ25DLENBQUM7SUFDRixJQUFJLHFCQUFxQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakMsZ0JBQU0sQ0FBQyxLQUFLLENBQ1YsNkVBQTZFLE1BQU0sRUFBRSxDQUN0RixDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUMvQixNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUUsTUFBTSxVQUFVLEdBQUcsMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDL0QsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDMUIsQ0FBQztJQUNGLE1BQU0sbUJBQW1CLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUU1RSx1QkFBdUI7SUFDdkIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEIsZ0JBQU0sQ0FBQyxLQUFLLENBQ1Ysa0VBQWtFLE1BQU0sRUFBRSxDQUMzRSxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN2RCxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMxQixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFekQsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7SUFDckMsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUM7SUFFdkMsT0FBTyxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxRQUFRLENBQUM7U0FDekMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLENBQUM7U0FDNUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQXJERCxzREFxREM7QUFPRCxTQUFnQixnQ0FBZ0MsQ0FDOUMsSUFBWTtJQUVaLE1BQU0sZ0JBQWdCLEdBQUcsbUNBQW1DLENBQUM7SUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLGdCQUFNLENBQUMsS0FBSyxDQUNWLGdGQUFnRixDQUNqRixDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE9BQU87WUFDTCxLQUFLLEVBQUUsRUFBRTtZQUNULElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3BCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBekJELDRFQXlCQztBQUVEOzs7Ozs7OztFQVFFO0FBQ0ssS0FBSyxVQUFVLHVCQUF1QixDQUFDLFdBQW1CO0lBQy9ELE1BQU0sY0FBYyxHQUEyQjtRQUM3QyxJQUFJLEVBQUUsY0FBYztLQUNyQixDQUFDO0lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxDQUFDO0lBQ3JFLGdCQUFNLENBQUMsS0FBSyxDQUNWLHVEQUF1RCxFQUN2RCxpQkFBaUIsQ0FDbEIsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFHLE1BQU0scUJBQXFCLEVBQUUsQ0FBQztJQUM1QyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sR0FBRyxHQUFHLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3JCLENBQUM7WUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELHFFQUFxRTtJQUNyRSxNQUFNLFlBQVksR0FBRyxNQUFNLGdDQUFnQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pFLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBakNELDBEQWlDQztBQUVNLEtBQUssVUFBVSxnQ0FBZ0MsQ0FBQyxXQUFtQjtJQUN4RSxNQUFNLGVBQWUsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNqRSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUzRCxNQUFNLGlCQUFpQixHQUFHLHdCQUF3QixDQUFDO0lBQ25ELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3RELGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FBQztJQUVGLElBQUksaUJBQWlCLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QixnQkFBTSxDQUFDLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0QixnQkFBTSxDQUFDLEtBQUssQ0FDViwwQkFBMEIsV0FBVyx5QkFBeUIsQ0FDL0QsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFcEMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLE1BQU0sQ0FDL0MsV0FBVyxXQUFXLGlCQUFpQixFQUN2QyxHQUFHLENBQ0osQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFHLDhCQUE4QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsT0FBTztZQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtTQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxNQUFNLENBQzlDLGFBQWEsV0FBVyxtQkFBbUIsRUFDM0MsR0FBRyxDQUNKLENBQUM7SUFFRixNQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE9BQU87WUFDTCxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQXJERCw0RUFxREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBleGVjIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcmFkbGVQcm9qZWN0KHdvcmtpbmdEaXJlY3Rvcnk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBidWlsZEdyYWRsZVBhdGggPSBwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgXCJidWlsZC5ncmFkbGVcIik7XG5cbiAgdHJ5IHtcbiAgICBmcy5hY2Nlc3NTeW5jKGJ1aWxkR3JhZGxlUGF0aCwgZnMuY29uc3RhbnRzLlJfT0sgfCBmcy5jb25zdGFudHMuV19PSyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIGxvZ2dlci5kZWJ1ZyhgTm8gYnVpbGQuZ3JhZGxlIGZvdW5kIGF0ICR7YnVpbGRHcmFkbGVQYXRofWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0R3JhZGxlRGVwZW5kZW5jaWVzKCkge1xuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJncmFkbGVcIiwgW1wiZGVwZW5kZW5jaWVzXCIsIFwiLS1jb25zb2xlPXBsYWluXCJdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdncmFkbGUgZGVwZW5kZW5jaWVzJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBsaW5lcyA9IG91dHB1dC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKTtcblxuICAvLyBmaW5kIHRoZSBpbXBsZW1lbnRhdGlvbiBzZWN0aW9uXG4gIGNvbnN0IGltcGxlbWVudGF0aW9uU2VjdGlvbiA9IGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBsaW5lLmluY2x1ZGVzKFwiaW1wbGVtZW50YXRpb24gLSBcIiksXG4gICk7XG4gIGlmIChpbXBsZW1lbnRhdGlvblNlY3Rpb24gPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIGltcGxlbWVudGF0aW9uIHNlY3Rpb24gaW4gb3V0cHV0IG9mICdncmFkbGUgZGVwZW5kZW5jaWVzJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBlbXB0eUxpbmVSZWdleCA9IC9eXFxzKiQvO1xuICBjb25zdCBpbXBsZW1lbnRhdGlvblNlY3Rpb25MaW5lcyA9IGxpbmVzLnNsaWNlKGltcGxlbWVudGF0aW9uU2VjdGlvbiArIDEpO1xuICBjb25zdCBzZWN0aW9uRW5kID0gaW1wbGVtZW50YXRpb25TZWN0aW9uTGluZXMuZmluZEluZGV4KChsaW5lKSA9PlxuICAgIGVtcHR5TGluZVJlZ2V4LnRlc3QobGluZSksXG4gICk7XG4gIGNvbnN0IGltcGxlbWVudGF0aW9uTGluZXMgPSBpbXBsZW1lbnRhdGlvblNlY3Rpb25MaW5lcy5zbGljZSgwLCBzZWN0aW9uRW5kKTtcblxuICAvLyBmaW5kIHRoZSBhcGkgc2VjdGlvblxuICBjb25zdCBhcGlTZWN0aW9uID0gbGluZXMuZmluZEluZGV4KChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKFwiYXBpIC0gXCIpKTtcbiAgaWYgKGFwaVNlY3Rpb24gPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIGFwaSBzZWN0aW9uIGluIG91dHB1dCBvZiAnZ3JhZGxlIGRlcGVuZGVuY2llcyc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgYXBpU2VjdGlvbkxpbmVzID0gbGluZXMuc2xpY2UoYXBpU2VjdGlvbiArIDEpO1xuICBjb25zdCBhcGlTZWN0aW9uRW5kID0gYXBpU2VjdGlvbkxpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBlbXB0eUxpbmVSZWdleC50ZXN0KGxpbmUpLFxuICApO1xuXG4gIGNvbnN0IGFwaUxpbmVzID0gYXBpU2VjdGlvbkxpbmVzLnNsaWNlKDAsIGFwaVNlY3Rpb25FbmQpO1xuXG4gIGNvbnN0IHByZWZpeFJlZ2V4ID0gL15cXHMqWytcXFxcLV0rXFxzKi87XG4gIGNvbnN0IHN1ZmZpeFJlZ2V4ID0gL1xccytcXChbbmMqXVxcKVxccyokLztcblxuICByZXR1cm4gWy4uLmltcGxlbWVudGF0aW9uTGluZXMsIC4uLmFwaUxpbmVzXVxuICAgIC5maWx0ZXIoKGxpbmUpID0+IGxpbmUgIT09IFwiTm8gZGVwZW5kZW5jaWVzXCIpXG4gICAgLm1hcCgobGluZSkgPT4gbGluZS5yZXBsYWNlKHByZWZpeFJlZ2V4LCBcIlwiKS5yZXBsYWNlKHN1ZmZpeFJlZ2V4LCBcIlwiKSk7XG59XG5cbmV4cG9ydCB0eXBlIERlcGVuZGVuY3lJbmZvcm1hdGlvbiA9IHtcbiAgZ3JvdXA6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG59O1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlcGVuZGVuY3lJbmZvcm1hdGlvbkZyb21MaW5lKFxuICBsaW5lOiBzdHJpbmcsXG4pOiBEZXBlbmRlbmN5SW5mb3JtYXRpb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBwYWNrYWdlTmFtZVJlZ2V4ID0gL15cXHMqKFteOl0rKTooW146XSspKD86OihbXlxcc10rKSk/LztcbiAgY29uc3QgbWF0Y2hlcyA9IGxpbmUubWF0Y2gocGFja2FnZU5hbWVSZWdleCk7XG4gIGlmICghbWF0Y2hlcykge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIFwiVW5leHBlY3RlZCBmb3JtYXQgZm9yIGdyYWRsZSBidWlsZC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9jZGsudGYvYnVnXCIsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKG1hdGNoZXNbM10gPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cDogXCJcIixcbiAgICAgIG5hbWU6IG1hdGNoZXNbMV0sXG4gICAgICB2ZXJzaW9uOiBtYXRjaGVzWzJdLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGdyb3VwOiBtYXRjaGVzWzFdLFxuICAgIG5hbWU6IG1hdGNoZXNbMl0sXG4gICAgdmVyc2lvbjogbWF0Y2hlc1szXSxcbiAgfTtcbn1cblxuLypcbiAqIEV4YW1wbGUgb3V0cHV0OlxuICBpbXBsZW1lbnRhdGlvbiAtIEltcGxlbWVudGF0aW9uIGRlcGVuZGVuY2llcyBmb3IgdGhlICdtYWluJyBmZWF0dXJlLiAobilcbiAgKy0tLSBjb20uaGFzaGljb3JwOmNka3RmOjAuMTguMCAobilcbiAgKy0tLSBpby5jZGt0bjpjZGt0bjowLjE4LjAgKG4pXG4gICstLS0gc29mdHdhcmUuY29uc3RydWN0czpjb25zdHJ1Y3RzOjEwLjAuMjUgKG4pXG4gICstLS0ganVuaXQ6anVuaXQ6NC4xMy4yIChuKVxuICBcXC0tLSBvcmcuanVuaXQuanVwaXRlcjpqdW5pdC1qdXBpdGVyOjUuOC4wIChuKVxuKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGpzaWk6IFwianNpaS1ydW50aW1lXCIsXG4gIH07XG4gIGNvbnN0IGdyYWRsZVBhY2thZ2VOYW1lID0gdHJhbnNsYXRpb25NYXBbcGFja2FnZU5hbWVdIHx8IHBhY2thZ2VOYW1lO1xuICBsb2dnZXIuZGVidWcoXG4gICAgXCJSdW5uaW5nICdncmFkbGUgZGVwZW5kZW5jaWVzJyB0byBmaW5kIHBhY2thZ2UgdmVyc2lvblwiLFxuICAgIGdyYWRsZVBhY2thZ2VOYW1lLFxuICApO1xuXG4gIGNvbnN0IGxpbmVzID0gYXdhaXQgZ2V0R3JhZGxlRGVwZW5kZW5jaWVzKCk7XG4gIGlmICghbGluZXMgfHwgbGluZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIGxvb3AgdGhyb3VnaCB0aGUgc3Vic2VxdWVudCBsaW5lcyB0byBmaW5kIHRoZSBvbmUgc3RhcnRpbmcgd2l0aCBwYWNrYWdlIG5hbWVcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgaWYgKGxpbmUuaW5jbHVkZXMoYDoke2dyYWRsZVBhY2thZ2VOYW1lfTpgKSkge1xuICAgICAgY29uc3QgZGVwID0gZ2V0RGVwZW5kZW5jeUluZm9ybWF0aW9uRnJvbUxpbmUobGluZSk7XG4gICAgICBpZiAoZGVwKSB7XG4gICAgICAgIHJldHVybiBkZXAudmVyc2lvbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRGlkbid0IGZpbmQgdGhlIHJpZ2h0IGZpbGUsIHJlYWQgdGhlIGJ1aWxkLmdyYWRsZSBmaWxlIGFzIGEgYmFja3VwXG4gIGNvbnN0IGJ1aWxkVmVyc2lvbiA9IGF3YWl0IGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uRnJvbUJ1aWxkKHBhY2thZ2VOYW1lKTtcbiAgaWYgKGJ1aWxkVmVyc2lvbikge1xuICAgIHJldHVybiBidWlsZFZlcnNpb24udmVyc2lvbjtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbkZyb21CdWlsZChwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGJ1aWxkR3JhZGxlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcImJ1aWxkLmdyYWRsZVwiKTtcbiAgY29uc3QgYnVpbGRHcmFkbGVDb250ZW50cyA9IGF3YWl0IGZzLnJlYWRGaWxlKGJ1aWxkR3JhZGxlUGF0aCwgXCJ1dGYtOFwiKTtcbiAgY29uc3QgYnVpbGRMaW5lcyA9IGJ1aWxkR3JhZGxlQ29udGVudHMuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLyk7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzUmVnZXggPSAvXlxccypkZXBlbmRlbmNpZXNcXHMqXFx7L2k7XG4gIGNvbnN0IGRlcGVuZGVuY2llc1N0YXJ0ID0gYnVpbGRMaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+XG4gICAgZGVwZW5kZW5jaWVzUmVnZXgudGVzdChsaW5lKSxcbiAgKTtcblxuICBpZiAoZGVwZW5kZW5jaWVzU3RhcnQgPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gZmluZCBkZXBlbmRlbmNpZXMgc2VjdGlvbiBpbiBvdXRwdXQgYnVpbGQuZ3JhZGxlYCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGZvdW5kSW5kZXggPSBidWlsZExpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhwYWNrYWdlTmFtZSkpO1xuICBpZiAoZm91bmRJbmRleCA9PT0gLTEpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgcGFja2FnZSAke3BhY2thZ2VOYW1lfSBpbiBvdXRwdXQgYnVpbGQuZ3JhZGxlYCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbGluZSA9IGJ1aWxkTGluZXNbZm91bmRJbmRleF07XG5cbiAgY29uc3QgY29sb25TZXBhcmF0ZWRQYWNrYWdlTmFtZVJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICBgKFteOl0rKToke3BhY2thZ2VOYW1lfSg/OjooW15cXFxcc10rKSk/YCxcbiAgICBcImlcIixcbiAgKTtcblxuICBjb25zdCBjb2xvbk1hdGNoID0gY29sb25TZXBhcmF0ZWRQYWNrYWdlTmFtZVJlZ2V4LmV4ZWMobGluZSk7XG4gIGlmIChjb2xvbk1hdGNoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdyb3VwOiBjb2xvbk1hdGNoWzFdLFxuICAgICAgbmFtZTogcGFja2FnZU5hbWUsXG4gICAgICB2ZXJzaW9uOiBjb2xvbk1hdGNoWzJdIHx8IFwiXCIsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGZpbGVTZXBhcmF0ZWRQYWNrYWdlTmFtZVJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICBgamF2YS8oLiopLyR7cGFja2FnZU5hbWV9LyhbXi9dKykvLipcXFxcLmphcmAsXG4gICAgXCJpXCIsXG4gICk7XG5cbiAgY29uc3QgZmlsZU1hdGNoID0gZmlsZVNlcGFyYXRlZFBhY2thZ2VOYW1lUmVnZXguZXhlYyhsaW5lKTtcbiAgaWYgKGZpbGVNYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cDogZmlsZU1hdGNoWzFdLnJlcGxhY2UoL1xcLy9nLCBcIi5cIiksXG4gICAgICBuYW1lOiBwYWNrYWdlTmFtZSxcbiAgICAgIHZlcnNpb246IGZpbGVNYXRjaFsyXSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhZGxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dyYWRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7OztBQU9ILDBDQVVDO0FBRUQsc0RBcURDO0FBT0QsNEVBeUJDO0FBV0QsMERBaUNDO0FBRUQsNEVBcURDO0FBek1ELGdEQUF3QjtBQUN4Qix3REFBMEI7QUFDMUIsdUNBQW1DO0FBQ25DLGlDQUE4QjtBQUU5QixTQUFnQixlQUFlLENBQUMsZ0JBQXdCO0lBQ3RELE1BQU0sZUFBZSxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFcEUsSUFBSSxDQUFDO1FBQ0gsa0JBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLGtCQUFFLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxrQkFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxXQUFNLENBQUM7UUFDUCxnQkFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUM1RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQjtJQUN6QyxJQUFJLE1BQU0sQ0FBQztJQUNYLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLElBQUEsV0FBSSxFQUFDLFFBQVEsRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pFLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLGdCQUFNLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLEtB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LElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsT0FBTztZQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtTQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxNQUFNLENBQzlDLGFBQWEsV0FBVyxtQkFBbUIsRUFDM0MsR0FBRyxDQUNKLENBQUM7SUFFRixNQUFNLFNBQVMsR0FBRyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLE9BQU87WUFDTCxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0dyYWRsZVByb2plY3Qod29ya2luZ0RpcmVjdG9yeTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGJ1aWxkR3JhZGxlUGF0aCA9IHBhdGguam9pbih3b3JraW5nRGlyZWN0b3J5LCBcImJ1aWxkLmdyYWRsZVwiKTtcblxuICB0cnkge1xuICAgIGZzLmFjY2Vzc1N5bmMoYnVpbGRHcmFkbGVQYXRoLCBmcy5jb25zdGFudHMuUl9PSyB8IGZzLmNvbnN0YW50cy5XX09LKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgbG9nZ2VyLmRlYnVnKGBObyBidWlsZC5ncmFkbGUgZm91bmQgYXQgJHtidWlsZEdyYWRsZVBhdGh9YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRHcmFkbGVEZXBlbmRlbmNpZXMoKSB7XG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcImdyYWRsZVwiLCBbXCJkZXBlbmRlbmNpZXNcIiwgXCItLWNvbnNvbGU9cGxhaW5cIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ2dyYWRsZSBkZXBlbmRlbmNpZXMnOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGxpbmVzID0gb3V0cHV0LnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pO1xuXG4gIC8vIGZpbmQgdGhlIGltcGxlbWVudGF0aW9uIHNlY3Rpb25cbiAgY29uc3QgaW1wbGVtZW50YXRpb25TZWN0aW9uID0gbGluZXMuZmluZEluZGV4KChsaW5lKSA9PlxuICAgIGxpbmUuaW5jbHVkZXMoXCJpbXBsZW1lbnRhdGlvbiAtIFwiKSxcbiAgKTtcbiAgaWYgKGltcGxlbWVudGF0aW9uU2VjdGlvbiA9PT0gLTEpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgaW1wbGVtZW50YXRpb24gc2VjdGlvbiBpbiBvdXRwdXQgb2YgJ2dyYWRsZSBkZXBlbmRlbmNpZXMnOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGVtcHR5TGluZVJlZ2V4ID0gL15cXHMqJC87XG4gIGNvbnN0IGltcGxlbWVudGF0aW9uU2VjdGlvbkxpbmVzID0gbGluZXMuc2xpY2UoaW1wbGVtZW50YXRpb25TZWN0aW9uICsgMSk7XG4gIGNvbnN0IHNlY3Rpb25FbmQgPSBpbXBsZW1lbnRhdGlvblNlY3Rpb25MaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+XG4gICAgZW1wdHlMaW5lUmVnZXgudGVzdChsaW5lKSxcbiAgKTtcbiAgY29uc3QgaW1wbGVtZW50YXRpb25MaW5lcyA9IGltcGxlbWVudGF0aW9uU2VjdGlvbkxpbmVzLnNsaWNlKDAsIHNlY3Rpb25FbmQpO1xuXG4gIC8vIGZpbmQgdGhlIGFwaSBzZWN0aW9uXG4gIGNvbnN0IGFwaVNlY3Rpb24gPSBsaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoXCJhcGkgLSBcIikpO1xuICBpZiAoYXBpU2VjdGlvbiA9PT0gLTEpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgYXBpIHNlY3Rpb24gaW4gb3V0cHV0IG9mICdncmFkbGUgZGVwZW5kZW5jaWVzJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBhcGlTZWN0aW9uTGluZXMgPSBsaW5lcy5zbGljZShhcGlTZWN0aW9uICsgMSk7XG4gIGNvbnN0IGFwaVNlY3Rpb25FbmQgPSBhcGlTZWN0aW9uTGluZXMuZmluZEluZGV4KChsaW5lKSA9PlxuICAgIGVtcHR5TGluZVJlZ2V4LnRlc3QobGluZSksXG4gICk7XG5cbiAgY29uc3QgYXBpTGluZXMgPSBhcGlTZWN0aW9uTGluZXMuc2xpY2UoMCwgYXBpU2VjdGlvbkVuZCk7XG5cbiAgY29uc3QgcHJlZml4UmVnZXggPSAvXlxccypbK1xcXFwtXStcXHMqLztcbiAgY29uc3Qgc3VmZml4UmVnZXggPSAvXFxzK1xcKFtuYypdXFwpXFxzKiQvO1xuXG4gIHJldHVybiBbLi4uaW1wbGVtZW50YXRpb25MaW5lcywgLi4uYXBpTGluZXNdXG4gICAgLmZpbHRlcigobGluZSkgPT4gbGluZSAhPT0gXCJObyBkZXBlbmRlbmNpZXNcIilcbiAgICAubWFwKChsaW5lKSA9PiBsaW5lLnJlcGxhY2UocHJlZml4UmVnZXgsIFwiXCIpLnJlcGxhY2Uoc3VmZml4UmVnZXgsIFwiXCIpKTtcbn1cblxuZXhwb3J0IHR5cGUgRGVwZW5kZW5jeUluZm9ybWF0aW9uID0ge1xuICBncm91cDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbn07XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVwZW5kZW5jeUluZm9ybWF0aW9uRnJvbUxpbmUoXG4gIGxpbmU6IHN0cmluZyxcbik6IERlcGVuZGVuY3lJbmZvcm1hdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHBhY2thZ2VOYW1lUmVnZXggPSAvXlxccyooW146XSspOihbXjpdKykoPzo6KFteXFxzXSspKT8vO1xuICBjb25zdCBtYXRjaGVzID0gbGluZS5tYXRjaChwYWNrYWdlTmFtZVJlZ2V4KTtcbiAgaWYgKCFtYXRjaGVzKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgXCJVbmV4cGVjdGVkIGZvcm1hdCBmb3IgZ3JhZGxlIGJ1aWxkLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZSBhdCBodHRwczovL2dpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluL2lzc3Vlcy9uZXc/YXNzaWduZWVzPSZsYWJlbHM9YnVnJTJDbmV3JnRlbXBsYXRlPWJ1Zy1yZXBvcnQueW1sJnRpdGxlPVwiLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChtYXRjaGVzWzNdID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ3JvdXA6IFwiXCIsXG4gICAgICBuYW1lOiBtYXRjaGVzWzFdLFxuICAgICAgdmVyc2lvbjogbWF0Y2hlc1syXSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBncm91cDogbWF0Y2hlc1sxXSxcbiAgICBuYW1lOiBtYXRjaGVzWzJdLFxuICAgIHZlcnNpb246IG1hdGNoZXNbM10sXG4gIH07XG59XG5cbi8qXG4gKiBFeGFtcGxlIG91dHB1dDpcbiAgaW1wbGVtZW50YXRpb24gLSBJbXBsZW1lbnRhdGlvbiBkZXBlbmRlbmNpZXMgZm9yIHRoZSAnbWFpbicgZmVhdHVyZS4gKG4pXG4gICstLS0gY29tLmhhc2hpY29ycDpjZGt0ZjowLjE4LjAgKG4pXG4gICstLS0gaW8uY2RrdG46Y2RrdG46MC4xOC4wIChuKVxuICArLS0tIHNvZnR3YXJlLmNvbnN0cnVjdHM6Y29uc3RydWN0czoxMC4wLjI1IChuKVxuICArLS0tIGp1bml0Omp1bml0OjQuMTMuMiAobilcbiAgXFwtLS0gb3JnLmp1bml0Lmp1cGl0ZXI6anVuaXQtanVwaXRlcjo1LjguMCAobilcbiovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0R3JhZGxlUGFja2FnZVZlcnNpb24ocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBjb25zdCB0cmFuc2xhdGlvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBqc2lpOiBcImpzaWktcnVudGltZVwiLFxuICB9O1xuICBjb25zdCBncmFkbGVQYWNrYWdlTmFtZSA9IHRyYW5zbGF0aW9uTWFwW3BhY2thZ2VOYW1lXSB8fCBwYWNrYWdlTmFtZTtcbiAgbG9nZ2VyLmRlYnVnKFxuICAgIFwiUnVubmluZyAnZ3JhZGxlIGRlcGVuZGVuY2llcycgdG8gZmluZCBwYWNrYWdlIHZlcnNpb25cIixcbiAgICBncmFkbGVQYWNrYWdlTmFtZSxcbiAgKTtcblxuICBjb25zdCBsaW5lcyA9IGF3YWl0IGdldEdyYWRsZURlcGVuZGVuY2llcygpO1xuICBpZiAoIWxpbmVzIHx8IGxpbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBsb29wIHRocm91Z2ggdGhlIHN1YnNlcXVlbnQgbGluZXMgdG8gZmluZCB0aGUgb25lIHN0YXJ0aW5nIHdpdGggcGFja2FnZSBuYW1lXG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGlmIChsaW5lLmluY2x1ZGVzKGA6JHtncmFkbGVQYWNrYWdlTmFtZX06YCkpIHtcbiAgICAgIGNvbnN0IGRlcCA9IGdldERlcGVuZGVuY3lJbmZvcm1hdGlvbkZyb21MaW5lKGxpbmUpO1xuICAgICAgaWYgKGRlcCkge1xuICAgICAgICByZXR1cm4gZGVwLnZlcnNpb247XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpZG4ndCBmaW5kIHRoZSByaWdodCBmaWxlLCByZWFkIHRoZSBidWlsZC5ncmFkbGUgZmlsZSBhcyBhIGJhY2t1cFxuICBjb25zdCBidWlsZFZlcnNpb24gPSBhd2FpdCBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbkZyb21CdWlsZChwYWNrYWdlTmFtZSk7XG4gIGlmIChidWlsZFZlcnNpb24pIHtcbiAgICByZXR1cm4gYnVpbGRWZXJzaW9uLnZlcnNpb247XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0R3JhZGxlUGFja2FnZVZlcnNpb25Gcm9tQnVpbGQocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBjb25zdCBidWlsZEdyYWRsZVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJidWlsZC5ncmFkbGVcIik7XG4gIGNvbnN0IGJ1aWxkR3JhZGxlQ29udGVudHMgPSBhd2FpdCBmcy5yZWFkRmlsZShidWlsZEdyYWRsZVBhdGgsIFwidXRmLThcIik7XG4gIGNvbnN0IGJ1aWxkTGluZXMgPSBidWlsZEdyYWRsZUNvbnRlbnRzLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llc1JlZ2V4ID0gL15cXHMqZGVwZW5kZW5jaWVzXFxzKlxcey9pO1xuICBjb25zdCBkZXBlbmRlbmNpZXNTdGFydCA9IGJ1aWxkTGluZXMuZmluZEluZGV4KChsaW5lKSA9PlxuICAgIGRlcGVuZGVuY2llc1JlZ2V4LnRlc3QobGluZSksXG4gICk7XG5cbiAgaWYgKGRlcGVuZGVuY2llc1N0YXJ0ID09PSAtMSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIGZpbmQgZGVwZW5kZW5jaWVzIHNlY3Rpb24gaW4gb3V0cHV0IGJ1aWxkLmdyYWRsZWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBmb3VuZEluZGV4ID0gYnVpbGRMaW5lcy5maW5kSW5kZXgoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMocGFja2FnZU5hbWUpKTtcbiAgaWYgKGZvdW5kSW5kZXggPT09IC0xKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHBhY2thZ2UgJHtwYWNrYWdlTmFtZX0gaW4gb3V0cHV0IGJ1aWxkLmdyYWRsZWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IGxpbmUgPSBidWlsZExpbmVzW2ZvdW5kSW5kZXhdO1xuXG4gIGNvbnN0IGNvbG9uU2VwYXJhdGVkUGFja2FnZU5hbWVSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgYChbXjpdKyk6JHtwYWNrYWdlTmFtZX0oPzo6KFteXFxcXHNdKykpP2AsXG4gICAgXCJpXCIsXG4gICk7XG5cbiAgY29uc3QgY29sb25NYXRjaCA9IGNvbG9uU2VwYXJhdGVkUGFja2FnZU5hbWVSZWdleC5leGVjKGxpbmUpO1xuICBpZiAoY29sb25NYXRjaCkge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cDogY29sb25NYXRjaFsxXSxcbiAgICAgIG5hbWU6IHBhY2thZ2VOYW1lLFxuICAgICAgdmVyc2lvbjogY29sb25NYXRjaFsyXSB8fCBcIlwiLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBmaWxlU2VwYXJhdGVkUGFja2FnZU5hbWVSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgYGphdmEvKC4qKS8ke3BhY2thZ2VOYW1lfS8oW14vXSspLy4qXFxcXC5qYXJgLFxuICAgIFwiaVwiLFxuICApO1xuXG4gIGNvbnN0IGZpbGVNYXRjaCA9IGZpbGVTZXBhcmF0ZWRQYWNrYWdlTmFtZVJlZ2V4LmV4ZWMobGluZSk7XG4gIGlmIChmaWxlTWF0Y2gpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ3JvdXA6IGZpbGVNYXRjaFsxXS5yZXBsYWNlKC9cXC8vZywgXCIuXCIpLFxuICAgICAgbmFtZTogcGFja2FnZU5hbWUsXG4gICAgICB2ZXJzaW9uOiBmaWxlTWF0Y2hbMl0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  declare const logger: {
4
2
  trace(message: any, ...args: any[]): void;
5
3
  debug(message: any, ...args: any[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":";;AASA,QAAA,MAAM,MAAM;mBACK,GAAG,WAAW,GAAG,EAAE;mBAQnB,GAAG,WAAW,GAAG,EAAE;kBAQpB,GAAG,WAAW,GAAG,EAAE;kBAQnB,GAAG,WAAW,GAAG,EAAE;mBAQlB,GAAG,WAAW,GAAG,EAAE;mBAQnB,GAAG,WAAW,GAAG,EAAE;oBAQlB,MAAM;;CAOvB,CAAC;AAGF,QAAA,MAAM,WAAW,cAAc,CAAC;AAyBhC,QAAA,MAAM,kBAAkB,UAAW,MAAM,GAAG,MAAM,GAAG,UAAU,SAE9D,CAAC;AACF,QAAA,MAAM,kBAAkB,UAAW,MAAM,GAAG,MAAM,GAAG,UAAU,SAE9D,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,MAAM;mBACK,GAAG,WAAW,GAAG,EAAE;mBAQnB,GAAG,WAAW,GAAG,EAAE;kBAQpB,GAAG,WAAW,GAAG,EAAE;kBAQnB,GAAG,WAAW,GAAG,EAAE;mBAQlB,GAAG,WAAW,GAAG,EAAE;mBAQnB,GAAG,WAAW,GAAG,EAAE;oBAQlB,MAAM;;CAOvB,CAAC;AAGF,QAAA,MAAM,WAAW,cAAc,CAAC;AAyBhC,QAAA,MAAM,kBAAkB,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,UAAU,SAE9D,CAAC;AACF,QAAA,MAAM,kBAAkB,GAAI,OAAO,MAAM,GAAG,MAAM,GAAG,UAAU,SAE9D,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC"}
package/build/logging.js CHANGED
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.logFileName = exports.processLoggerError = exports.processLoggerDebug = exports.logger = void 0;
27
37
  // Copyright (c) HashiCorp, Inc
@@ -114,4 +124,4 @@ const processLoggerError = (chunk) => {
114
124
  logger.error(chunk.toString());
115
125
  };
116
126
  exports.processLoggerError = processLoggerError;
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2dnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxtQ0FBOEM7QUFDOUMsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3QixxREFBdUM7QUFDdkMsaUNBQTZDO0FBRTdDLE1BQU0sU0FBUyxHQUFHLElBQUEsa0JBQVMsR0FBRSxDQUFDO0FBQzlCLE1BQU0sTUFBTSxHQUFHO0lBQ2IsS0FBSyxDQUFDLE9BQVksRUFBRSxHQUFHLElBQVc7UUFDaEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ25CLE9BQU87WUFDUCxLQUFLLEVBQUUsT0FBTztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBWSxFQUFFLEdBQUcsSUFBVztRQUNoQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDbkIsT0FBTztZQUNQLEtBQUssRUFBRSxPQUFPO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFZLEVBQUUsR0FBRyxJQUFXO1FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUNuQixPQUFPO1lBQ1AsS0FBSyxFQUFFLE1BQU07U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVksRUFBRSxHQUFHLElBQVc7UUFDL0IsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqQyxN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SW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgY29uZmlndXJlLCBnZXRMb2dnZXIgfSBmcm9tIFwibG9nNGpzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tIFwiQHNlbnRyeS9ub2RlXCI7XG5pbXBvcnQgeyBoYXNOb0NvbG9yRmxhZ09yRW52IH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5jb25zdCBjbGlMb2dnZXIgPSBnZXRMb2dnZXIoKTtcbmNvbnN0IGxvZ2dlciA9IHtcbiAgdHJhY2UobWVzc2FnZTogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNsaUxvZ2dlci50cmFjZShtZXNzYWdlLCAuLi5hcmdzKTtcbiAgICBTZW50cnkuYWRkQnJlYWRjcnVtYih7XG4gICAgICBtZXNzYWdlLFxuICAgICAgbGV2ZWw6IFwiZGVidWdcIixcbiAgICB9KTtcbiAgfSxcblxuICBkZWJ1ZyhtZXNzYWdlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY2xpTG9nZ2VyLmRlYnVnKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICAgIFNlbnRyeS5hZGRCcmVhZGNydW1iKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBsZXZlbDogXCJkZWJ1Z1wiLFxuICAgIH0pO1xuICB9LFxuXG4gIGluZm8obWVzc2FnZTogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNsaUxvZ2dlci5pbmZvKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICAgIFNlbnRyeS5hZGRCcmVhZGNydW1iKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBsZXZlbDogXCJpbmZvXCIsXG4gICAgfSk7XG4gIH0sXG5cbiAgd2FybihtZXNzYWdlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY2xpTG9nZ2VyLndhcm4obWVzc2FnZSwgLi4uYXJncyk7XG4gICAgU2VudHJ5LmFkZEJyZWFkY3J1bWIoe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGxldmVsOiBcIndhcm5pbmdcIixcbiAgICB9KTtcbiAgfSxcblxuICBlcnJvcihtZXNzYWdlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY2xpTG9nZ2VyLmVycm9yKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICAgIFNlbnRyeS5hZGRCcmVhZGNydW1iKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBsZXZlbDogXCJlcnJvclwiLFxuICAgIH0pO1xuICB9LFxuXG4gIGZhdGFsKG1lc3NhZ2U6IGFueSwgLi4uYXJnczogYW55W10pIHtcbiAgICBjbGlMb2dnZXIuZmF0YWwobWVzc2FnZSwgLi4uYXJncyk7XG4gICAgU2VudHJ5LmFkZEJyZWFkY3J1bWIoe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGxldmVsOiBcImZhdGFsXCIsXG4gICAgfSk7XG4gIH0sXG5cbiAgc2V0TGV2ZWwobGV2ZWw6IHN0cmluZykge1xuICAgIGNsaUxvZ2dlci5sZXZlbCA9IGxldmVsO1xuICB9LFxuXG4gIHVzZURlZmF1bHRMZXZlbCgpIHtcbiAgICBjbGlMb2dnZXIubGV2ZWwgPSBwcm9jZXNzLmVudi5DREtURl9MT0dfTEVWRUwgfHwgXCJJTkZPXCI7XG4gIH0sXG59O1xuXG5jbGlMb2dnZXIubGV2ZWwgPSBwcm9jZXNzLmVudi5DREtURl9MT0dfTEVWRUwgfHwgXCJJTkZPXCI7XG5jb25zdCBsb2dGaWxlTmFtZSA9IFwiY2RrdGYubG9nXCI7XG5cbmlmIChcbiAgcHJvY2Vzcy5lbnYuQ0RLVEZfTE9HX0ZJTEVfRElSRUNUT1JZICYmXG4gIGZzLmV4aXN0c1N5bmMocHJvY2Vzcy5lbnYuQ0RLVEZfTE9HX0ZJTEVfRElSRUNUT1JZKSAmJlxuICBmcy5zdGF0U3luYyhwcm9jZXNzLmVudi5DREtURl9MT0dfRklMRV9ESVJFQ1RPUlkpLmlzRGlyZWN0b3J5KClcbikge1xuICBjb25maWd1cmUoe1xuICAgIGFwcGVuZGVyczoge1xuICAgICAgY2RrdGY6IHtcbiAgICAgICAgdHlwZTogXCJmaWxlXCIsXG4gICAgICAgIGZpbGVuYW1lOiBwYXRoLmpvaW4ocHJvY2Vzcy5lbnYuQ0RLVEZfTE9HX0ZJTEVfRElSRUNUT1JZLCBsb2dGaWxlTmFtZSksXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2F0ZWdvcmllczogeyBkZWZhdWx0OiB7IGFwcGVuZGVyczogW1wiY2RrdGZcIl0sIGxldmVsOiBcImRlYnVnXCIgfSB9LFxuICB9KTtcbn0gZWxzZSB7XG4gIGNvbnN0IGxheW91dFR5cGUgPSBoYXNOb0NvbG9yRmxhZ09yRW52KCkgPyBcImJhc2ljXCIgOiBcImNvbG9yZWRcIjtcblxuICBjb25maWd1cmUoe1xuICAgIGFwcGVuZGVyczogeyBvdXQ6IHsgdHlwZTogXCJzdGRvdXRcIiwgbGF5b3V0OiB7IHR5cGU6IGxheW91dFR5cGUgfSB9IH0sXG4gICAgY2F0ZWdvcmllczogeyBkZWZhdWx0OiB7IGFwcGVuZGVyczogW1wib3V0XCJdLCBsZXZlbDogXCJpbmZvXCIgfSB9LFxuICB9KTtcbn1cblxuY29uc3QgcHJvY2Vzc0xvZ2dlckRlYnVnID0gKGNodW5rOiBCdWZmZXIgfCBzdHJpbmcgfCBVaW50OEFycmF5KSA9PiB7XG4gIGxvZ2dlci5kZWJ1ZyhjaHVuay50b1N0cmluZygpKTtcbn07XG5jb25zdCBwcm9jZXNzTG9nZ2VyRXJyb3IgPSAoY2h1bms6IEJ1ZmZlciB8IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+IHtcbiAgbG9nZ2VyLmVycm9yKGNodW5rLnRvU3RyaW5nKCkpO1xufTtcblxuZXhwb3J0IHsgbG9nZ2VyLCBwcm9jZXNzTG9nZ2VyRGVidWcsIHByb2Nlc3NMb2dnZXJFcnJvciwgbG9nRmlsZU5hbWUgfTtcbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2dnaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsbUNBQThDO0FBQzlDLDZDQUErQjtBQUMvQiwyQ0FBNkI7QUFDN0IscURBQXVDO0FBQ3ZDLGlDQUE2QztBQUU3QyxNQUFNLFNBQVMsR0FBRyxJQUFBLGtCQUFTLEdBQUUsQ0FBQztBQUM5QixNQUFNLE1BQU0sR0FBRztJQUNiLEtBQUssQ0FBQyxPQUFZLEVBQUUsR0FBRyxJQUFXO1FBQ2hDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUNuQixPQUFPO1lBQ1AsS0FBSyxFQUFFLE9BQU87U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQVksRUFBRSxHQUFHLElBQVc7UUFDaEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ25CLE9BQU87WUFDUCxLQUFLLEVBQUUsT0FBTztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBWSxFQUFFLEdBQUcsSUFBVztRQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDbkIsT0FBTztZQUNQLEtBQUssRUFBRSxNQUFNO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFZLEVBQUUsR0FBRyxJQUFXO1FBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENB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YXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IGNvbmZpZ3VyZSwgZ2V0TG9nZ2VyIH0gZnJvbSBcImxvZzRqc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSBcIkBzZW50cnkvbm9kZVwiO1xuaW1wb3J0IHsgaGFzTm9Db2xvckZsYWdPckVudiB9IGZyb20gXCIuL3V0aWxcIjtcblxuY29uc3QgY2xpTG9nZ2VyID0gZ2V0TG9nZ2VyKCk7XG5jb25zdCBsb2dnZXIgPSB7XG4gIHRyYWNlKG1lc3NhZ2U6IGFueSwgLi4uYXJnczogYW55W10pIHtcbiAgICBjbGlMb2dnZXIudHJhY2UobWVzc2FnZSwgLi4uYXJncyk7XG4gICAgU2VudHJ5LmFkZEJyZWFkY3J1bWIoe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGxldmVsOiBcImRlYnVnXCIsXG4gICAgfSk7XG4gIH0sXG5cbiAgZGVidWcobWVzc2FnZTogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNsaUxvZ2dlci5kZWJ1ZyhtZXNzYWdlLCAuLi5hcmdzKTtcbiAgICBTZW50cnkuYWRkQnJlYWRjcnVtYih7XG4gICAgICBtZXNzYWdlLFxuICAgICAgbGV2ZWw6IFwiZGVidWdcIixcbiAgICB9KTtcbiAgfSxcblxuICBpbmZvKG1lc3NhZ2U6IGFueSwgLi4uYXJnczogYW55W10pIHtcbiAgICBjbGlMb2dnZXIuaW5mbyhtZXNzYWdlLCAuLi5hcmdzKTtcbiAgICBTZW50cnkuYWRkQnJlYWRjcnVtYih7XG4gICAgICBtZXNzYWdlLFxuICAgICAgbGV2ZWw6IFwiaW5mb1wiLFxuICAgIH0pO1xuICB9LFxuXG4gIHdhcm4obWVzc2FnZTogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNsaUxvZ2dlci53YXJuKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICAgIFNlbnRyeS5hZGRCcmVhZGNydW1iKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBsZXZlbDogXCJ3YXJuaW5nXCIsXG4gICAgfSk7XG4gIH0sXG5cbiAgZXJyb3IobWVzc2FnZTogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNsaUxvZ2dlci5lcnJvcihtZXNzYWdlLCAuLi5hcmdzKTtcbiAgICBTZW50cnkuYWRkQnJlYWRjcnVtYih7XG4gICAgICBtZXNzYWdlLFxuICAgICAgbGV2ZWw6IFwiZXJyb3JcIixcbiAgICB9KTtcbiAgfSxcblxuICBmYXRhbChtZXNzYWdlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY2xpTG9nZ2VyLmZhdGFsKG1lc3NhZ2UsIC4uLmFyZ3MpO1xuICAgIFNlbnRyeS5hZGRCcmVhZGNydW1iKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBsZXZlbDogXCJmYXRhbFwiLFxuICAgIH0pO1xuICB9LFxuXG4gIHNldExldmVsKGxldmVsOiBzdHJpbmcpIHtcbiAgICBjbGlMb2dnZXIubGV2ZWwgPSBsZXZlbDtcbiAgfSxcblxuICB1c2VEZWZhdWx0TGV2ZWwoKSB7XG4gICAgY2xpTG9nZ2VyLmxldmVsID0gcHJvY2Vzcy5lbnYuQ0RLVEZfTE9HX0xFVkVMIHx8IFwiSU5GT1wiO1xuICB9LFxufTtcblxuY2xpTG9nZ2VyLmxldmVsID0gcHJvY2Vzcy5lbnYuQ0RLVEZfTE9HX0xFVkVMIHx8IFwiSU5GT1wiO1xuY29uc3QgbG9nRmlsZU5hbWUgPSBcImNka3RmLmxvZ1wiO1xuXG5pZiAoXG4gIHByb2Nlc3MuZW52LkNES1RGX0xPR19GSUxFX0RJUkVDVE9SWSAmJlxuICBmcy5leGlzdHNTeW5jKHByb2Nlc3MuZW52LkNES1RGX0xPR19GSUxFX0RJUkVDVE9SWSkgJiZcbiAgZnMuc3RhdFN5bmMocHJvY2Vzcy5lbnYuQ0RLVEZfTE9HX0ZJTEVfRElSRUNUT1JZKS5pc0RpcmVjdG9yeSgpXG4pIHtcbiAgY29uZmlndXJlKHtcbiAgICBhcHBlbmRlcnM6IHtcbiAgICAgIGNka3RmOiB7XG4gICAgICAgIHR5cGU6IFwiZmlsZVwiLFxuICAgICAgICBmaWxlbmFtZTogcGF0aC5qb2luKHByb2Nlc3MuZW52LkNES1RGX0xPR19GSUxFX0RJUkVDVE9SWSwgbG9nRmlsZU5hbWUpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNhdGVnb3JpZXM6IHsgZGVmYXVsdDogeyBhcHBlbmRlcnM6IFtcImNka3RmXCJdLCBsZXZlbDogXCJkZWJ1Z1wiIH0gfSxcbiAgfSk7XG59IGVsc2Uge1xuICBjb25zdCBsYXlvdXRUeXBlID0gaGFzTm9Db2xvckZsYWdPckVudigpID8gXCJiYXNpY1wiIDogXCJjb2xvcmVkXCI7XG5cbiAgY29uZmlndXJlKHtcbiAgICBhcHBlbmRlcnM6IHsgb3V0OiB7IHR5cGU6IFwic3Rkb3V0XCIsIGxheW91dDogeyB0eXBlOiBsYXlvdXRUeXBlIH0gfSB9LFxuICAgIGNhdGVnb3JpZXM6IHsgZGVmYXVsdDogeyBhcHBlbmRlcnM6IFtcIm91dFwiXSwgbGV2ZWw6IFwiaW5mb1wiIH0gfSxcbiAgfSk7XG59XG5cbmNvbnN0IHByb2Nlc3NMb2dnZXJEZWJ1ZyA9IChjaHVuazogQnVmZmVyIHwgc3RyaW5nIHwgVWludDhBcnJheSkgPT4ge1xuICBsb2dnZXIuZGVidWcoY2h1bmsudG9TdHJpbmcoKSk7XG59O1xuY29uc3QgcHJvY2Vzc0xvZ2dlckVycm9yID0gKGNodW5rOiBCdWZmZXIgfCBzdHJpbmcgfCBVaW50OEFycmF5KSA9PiB7XG4gIGxvZ2dlci5lcnJvcihjaHVuay50b1N0cmluZygpKTtcbn07XG5cbmV4cG9ydCB7IGxvZ2dlciwgcHJvY2Vzc0xvZ2dlckRlYnVnLCBwcm9jZXNzTG9nZ2VyRXJyb3IsIGxvZ0ZpbGVOYW1lIH07XG4iXX0=
@@ -4,7 +4,8 @@
4
4
  * SPDX-License-Identifier: MPL-2.0
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.isNestedTypeAttribute = exports.isAttributeNestedType = void 0;
7
+ exports.isAttributeNestedType = isAttributeNestedType;
8
+ exports.isNestedTypeAttribute = isNestedTypeAttribute;
8
9
  function isAttributeNestedType(type) {
9
10
  return (typeof type === "object" &&
10
11
  !Array.isArray(type) &&
@@ -12,10 +13,8 @@ function isAttributeNestedType(type) {
12
13
  (typeof type.attributes === "object" ||
13
14
  typeof type.attributes === "undefined"));
14
15
  }
15
- exports.isAttributeNestedType = isAttributeNestedType;
16
16
  function isNestedTypeAttribute(att) {
17
17
  return (typeof att.nested_type !== "undefined" &&
18
18
  isAttributeNestedType(att.nested_type));
19
19
  }
20
- exports.isNestedTypeAttribute = isNestedTypeAttribute;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3ZpZGVyLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUFxQ0gsU0FBZ0IscUJBQXFCLENBQ25DLElBQXlDO0lBRXpDLE9BQU8sQ0FDTCxPQUFPLElBQUksS0FBSyxRQUFRO1FBQ3hCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFFBQVE7UUFDckMsQ0FBQyxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUTtZQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDLENBQzFDLENBQUM7QUFDSixDQUFDO0FBVkQsc0RBVUM7QUF3QkQsU0FBZ0IscUJBQXFCLENBQ25DLEdBQWM7SUFFZCxPQUFPLENBQ0wsT0FBTyxHQUFHLENBQUMsV0FBVyxLQUFLLFdBQVc7UUFDdEMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUN2QyxDQUFDO0FBQ0osQ0FBQztBQVBELHNEQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jLlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbiAqL1xuXG5pbXBvcnQgeyBNb2R1bGVTY2hlbWEgfSBmcm9tIFwiLi9tb2R1bGUtc2NoZW1hXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJTY2hlbWEge1xuICAvKlxuICAgIDAuMSBpcyBlLmcuIHJldHVybmVkIGJ5IFRlcnJhZm9ybSAwLjE0XG4gICAgMC4yIGlzIGUuZy4gcmV0dXJuZWQgYnkgVGVycmFmb3JtIDEuMCAoMC4yIGFkZGVkIHN1cHBvcnQgZm9yIG5lc3RlZF90eXBlIC8gcGx1Z2luIHByb3RvY29sIHY2KVxuICAgICovXG4gIGZvcm1hdF92ZXJzaW9uPzogXCIwLjFcIiB8IFwiMC4yXCI7XG4gIHByb3ZpZGVyX3NjaGVtYXM/OiB7IFtmcXBuOiBzdHJpbmddOiBQcm92aWRlciB9O1xuICBwcm92aWRlcl92ZXJzaW9ucz86IHsgW2ZxcG46IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyIHtcbiAgcHJvdmlkZXI6IFNjaGVtYTtcbiAgcmVzb3VyY2Vfc2NoZW1hczogeyBbdHlwZTogc3RyaW5nXTogU2NoZW1hIH07XG4gIGRhdGFfc291cmNlX3NjaGVtYXM6IHsgW3R5cGU6IHN0cmluZ106IFNjaGVtYSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYSB7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgYmxvY2s6IEJsb2NrO1xufVxuXG50eXBlIEF0dHJpYnV0ZU5lc3RlZFR5cGVOZXN0aW5nID0gXCJpbnZhbGlkXCIgfCBcInNpbmdsZVwiIHwgXCJsaXN0XCIgfCBcInNldFwiIHwgXCJtYXBcIjtcblxuLyoqXG4gKiBJbiB0ZnBsdWdpbjYuMC5wcm90byB0aGlzIGFzIGNhbGxlZCBPYmplY3QgdG8gYXZvaWRcbiAqIGNvbGxpc2lvbnMgd2l0aCB0aGUgbmF0aXZlIEphdmFTY3JpcHQgT2JqZWN0IHdlIGNhbGwgaXRcbiAqIEF0dHJpYnV0ZU5lc3RlZFR5cGUgaGVyZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZU5lc3RlZFR5cGUge1xuICBhdHRyaWJ1dGVzOiB7IFtuYW1lOiBzdHJpbmddOiBBdHRyaWJ1dGUgfSB8IHVuZGVmaW5lZDtcbiAgbmVzdGluZ19tb2RlOiBBdHRyaWJ1dGVOZXN0ZWRUeXBlTmVzdGluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXR0cmlidXRlTmVzdGVkVHlwZShcbiAgdHlwZTogQXR0cmlidXRlVHlwZSB8IEF0dHJpYnV0ZU5lc3RlZFR5cGUsXG4pOiB0eXBlIGlzIEF0dHJpYnV0ZU5lc3RlZFR5cGUge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB0eXBlID09PSBcIm9iamVjdFwiICYmXG4gICAgIUFycmF5LmlzQXJyYXkodHlwZSkgJiZcbiAgICB0eXBlb2YgdHlwZS5uZXN0aW5nX21vZGUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAodHlwZW9mIHR5cGUuYXR0cmlidXRlcyA9PT0gXCJvYmplY3RcIiB8fFxuICAgICAgdHlwZW9mIHR5cGUuYXR0cmlidXRlcyA9PT0gXCJ1bmRlZmluZWRcIilcbiAgKTtcbn1cblxuaW50ZXJmYWNlIEJhc2VBdHRyaWJ1dGUge1xuICB0eXBlPzogQXR0cmlidXRlVHlwZTtcbiAgbmVzdGVkX3R5cGU/OiBBdHRyaWJ1dGVOZXN0ZWRUeXBlO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBvcHRpb25hbD86IGJvb2xlYW47XG4gIGNvbXB1dGVkPzogYm9vbGVhbjtcbiAgc2Vuc2l0aXZlPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIE5lc3RlZFR5cGVBdHRyaWJ1dGUgZXh0ZW5kcyBCYXNlQXR0cmlidXRlIHtcbiAgdHlwZT86IG5ldmVyO1xuICBuZXN0ZWRfdHlwZTogQXR0cmlidXRlTmVzdGVkVHlwZTtcbn1cbmludGVyZmFjZSBUeXBlZEF0dHJpYnV0ZSBleHRlbmRzIEJhc2VBdHRyaWJ1dGUge1xuICB0eXBlOiBBdHRyaWJ1dGVUeXBlO1xuICBuZXN0ZWRfdHlwZT86IG5ldmVyO1xufVxuXG4vLyB0byBzdXBwb3J0IGVpdGhlciB0eXBlIG9yIG5lc3RlZF90eXBlIGJlaW5nIHNldFxuZXhwb3J0IHR5cGUgQXR0cmlidXRlID0gTmVzdGVkVHlwZUF0dHJpYnV0ZSB8IFR5cGVkQXR0cmlidXRlO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNOZXN0ZWRUeXBlQXR0cmlidXRlKFxuICBhdHQ6IEF0dHJpYnV0ZSxcbik6IGF0dCBpcyBOZXN0ZWRUeXBlQXR0cmlidXRlIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgYXR0Lm5lc3RlZF90eXBlICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgaXNBdHRyaWJ1dGVOZXN0ZWRUeXBlKGF0dC5uZXN0ZWRfdHlwZSlcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgQXR0cmlidXRlVHlwZSA9XG4gIHwgXCJzdHJpbmdcIlxuICB8IFwiYm9vbFwiXG4gIHwgXCJudW1iZXJcIlxuICB8IFwiZHluYW1pY1wiXG4gIHwgW1wic2V0XCIsIEF0dHJpYnV0ZVR5cGVdXG4gIHwgW1wibWFwXCIsIEF0dHJpYnV0ZVR5cGVdXG4gIHwgW1wibGlzdFwiLCBBdHRyaWJ1dGVUeXBlXVxuICB8IFtcIm9iamVjdFwiLCB7IFthdHRyaWJ1dGU6IHN0cmluZ106IEF0dHJpYnV0ZVR5cGUgfV07XG5cbmV4cG9ydCB0eXBlIEJsb2NrVHlwZSA9XG4gIHwge1xuICAgICAgbmVzdGluZ19tb2RlOiBcInNpbmdsZVwiIHwgXCJtYXBcIjtcbiAgICAgIGJsb2NrOiBCbG9jaztcbiAgICB9XG4gIHwge1xuICAgICAgbmVzdGluZ19tb2RlOiBcImxpc3RcIiB8IFwic2V0XCI7XG4gICAgICBibG9jazogQmxvY2s7XG4gICAgICBtaW5faXRlbXM/OiBudW1iZXI7XG4gICAgICBtYXhfaXRlbXM/OiBudW1iZXI7XG4gICAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBCbG9jayB7XG4gIGF0dHJpYnV0ZXM6IHsgW25hbWU6IHN0cmluZ106IEF0dHJpYnV0ZSB9O1xuICBibG9ja190eXBlczogeyBbbmFtZTogc3RyaW5nXTogQmxvY2tUeXBlIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtU2NoZW1hIHtcbiAgcHJvdmlkZXJzOiBQcm92aWRlclNjaGVtYTtcbiAgbW9kdWxlczogTW9kdWxlU2NoZW1hO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25TY2hlbWEge1xuICBwcm92aWRlcl9zZWxlY3Rpb25zOiB7IFtmcW46IHN0cmluZ106IHN0cmluZyB9O1xuICAvLyBvdGhlciBwcm9wZXJ0aWVzIGFyZW4ndCB1c2VkXG59XG5cbmludGVyZmFjZSBNb2R1bGVJbmRleEl0ZW0ge1xuICBLZXk6IHN0cmluZztcbiAgU291cmNlOiBzdHJpbmc7XG4gIERpcjogc3RyaW5nO1xuICBWZXJzaW9uPzogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVJbmRleCB7XG4gIE1vZHVsZXM6IE1vZHVsZUluZGV4SXRlbVtdO1xufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3ZpZGVyLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOztBQXFDSCxzREFVQztBQXdCRCxzREFPQztBQXpDRCxTQUFnQixxQkFBcUIsQ0FDbkMsSUFBeUM7SUFFekMsT0FBTyxDQUNMLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssUUFBUTtRQUNyQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsQ0FDMUMsQ0FBQztBQUNKLENBQUM7QUF3QkQsU0FBZ0IscUJBQXFCLENBQ25DLEdBQWM7SUFFZCxPQUFPLENBQ0wsT0FBTyxHQUFHLENBQUMsV0FBVyxLQUFLLFdBQVc7UUFDdEMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUN2QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHsgTW9kdWxlU2NoZW1hIH0gZnJvbSBcIi4vbW9kdWxlLXNjaGVtYVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyU2NoZW1hIHtcbiAgLypcbiAgICAwLjEgaXMgZS5nLiByZXR1cm5lZCBieSBUZXJyYWZvcm0gMC4xNFxuICAgIDAuMiBpcyBlLmcuIHJldHVybmVkIGJ5IFRlcnJhZm9ybSAxLjAgKDAuMiBhZGRlZCBzdXBwb3J0IGZvciBuZXN0ZWRfdHlwZSAvIHBsdWdpbiBwcm90b2NvbCB2NilcbiAgICAqL1xuICBmb3JtYXRfdmVyc2lvbj86IFwiMC4xXCIgfCBcIjAuMlwiO1xuICBwcm92aWRlcl9zY2hlbWFzPzogeyBbZnFwbjogc3RyaW5nXTogUHJvdmlkZXIgfTtcbiAgcHJvdmlkZXJfdmVyc2lvbnM/OiB7IFtmcXBuOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlciB7XG4gIHByb3ZpZGVyOiBTY2hlbWE7XG4gIHJlc291cmNlX3NjaGVtYXM6IHsgW3R5cGU6IHN0cmluZ106IFNjaGVtYSB9O1xuICBkYXRhX3NvdXJjZV9zY2hlbWFzOiB7IFt0eXBlOiBzdHJpbmddOiBTY2hlbWEgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2hlbWEge1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGJsb2NrOiBCbG9jaztcbn1cblxudHlwZSBBdHRyaWJ1dGVOZXN0ZWRUeXBlTmVzdGluZyA9IFwiaW52YWxpZFwiIHwgXCJzaW5nbGVcIiB8IFwibGlzdFwiIHwgXCJzZXRcIiB8IFwibWFwXCI7XG5cbi8qKlxuICogSW4gdGZwbHVnaW42LjAucHJvdG8gdGhpcyBhcyBjYWxsZWQgT2JqZWN0IHRvIGF2b2lkXG4gKiBjb2xsaXNpb25zIHdpdGggdGhlIG5hdGl2ZSBKYXZhU2NyaXB0IE9iamVjdCB3ZSBjYWxsIGl0XG4gKiBBdHRyaWJ1dGVOZXN0ZWRUeXBlIGhlcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVOZXN0ZWRUeXBlIHtcbiAgYXR0cmlidXRlczogeyBbbmFtZTogc3RyaW5nXTogQXR0cmlidXRlIH0gfCB1bmRlZmluZWQ7XG4gIG5lc3RpbmdfbW9kZTogQXR0cmlidXRlTmVzdGVkVHlwZU5lc3Rpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0F0dHJpYnV0ZU5lc3RlZFR5cGUoXG4gIHR5cGU6IEF0dHJpYnV0ZVR5cGUgfCBBdHRyaWJ1dGVOZXN0ZWRUeXBlLFxuKTogdHlwZSBpcyBBdHRyaWJ1dGVOZXN0ZWRUeXBlIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdHlwZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICFBcnJheS5pc0FycmF5KHR5cGUpICYmXG4gICAgdHlwZW9mIHR5cGUubmVzdGluZ19tb2RlID09PSBcInN0cmluZ1wiICYmXG4gICAgKHR5cGVvZiB0eXBlLmF0dHJpYnV0ZXMgPT09IFwib2JqZWN0XCIgfHxcbiAgICAgIHR5cGVvZiB0eXBlLmF0dHJpYnV0ZXMgPT09IFwidW5kZWZpbmVkXCIpXG4gICk7XG59XG5cbmludGVyZmFjZSBCYXNlQXR0cmlidXRlIHtcbiAgdHlwZT86IEF0dHJpYnV0ZVR5cGU7XG4gIG5lc3RlZF90eXBlPzogQXR0cmlidXRlTmVzdGVkVHlwZTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICBjb21wdXRlZD86IGJvb2xlYW47XG4gIHNlbnNpdGl2ZT86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBOZXN0ZWRUeXBlQXR0cmlidXRlIGV4dGVuZHMgQmFzZUF0dHJpYnV0ZSB7XG4gIHR5cGU/OiBuZXZlcjtcbiAgbmVzdGVkX3R5cGU6IEF0dHJpYnV0ZU5lc3RlZFR5cGU7XG59XG5pbnRlcmZhY2UgVHlwZWRBdHRyaWJ1dGUgZXh0ZW5kcyBCYXNlQXR0cmlidXRlIHtcbiAgdHlwZTogQXR0cmlidXRlVHlwZTtcbiAgbmVzdGVkX3R5cGU/OiBuZXZlcjtcbn1cblxuLy8gdG8gc3VwcG9ydCBlaXRoZXIgdHlwZSBvciBuZXN0ZWRfdHlwZSBiZWluZyBzZXRcbmV4cG9ydCB0eXBlIEF0dHJpYnV0ZSA9IE5lc3RlZFR5cGVBdHRyaWJ1dGUgfCBUeXBlZEF0dHJpYnV0ZTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTmVzdGVkVHlwZUF0dHJpYnV0ZShcbiAgYXR0OiBBdHRyaWJ1dGUsXG4pOiBhdHQgaXMgTmVzdGVkVHlwZUF0dHJpYnV0ZSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGF0dC5uZXN0ZWRfdHlwZSAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgIGlzQXR0cmlidXRlTmVzdGVkVHlwZShhdHQubmVzdGVkX3R5cGUpXG4gICk7XG59XG5cbmV4cG9ydCB0eXBlIEF0dHJpYnV0ZVR5cGUgPVxuICB8IFwic3RyaW5nXCJcbiAgfCBcImJvb2xcIlxuICB8IFwibnVtYmVyXCJcbiAgfCBcImR5bmFtaWNcIlxuICB8IFtcInNldFwiLCBBdHRyaWJ1dGVUeXBlXVxuICB8IFtcIm1hcFwiLCBBdHRyaWJ1dGVUeXBlXVxuICB8IFtcImxpc3RcIiwgQXR0cmlidXRlVHlwZV1cbiAgfCBbXCJvYmplY3RcIiwgeyBbYXR0cmlidXRlOiBzdHJpbmddOiBBdHRyaWJ1dGVUeXBlIH1dO1xuXG5leHBvcnQgdHlwZSBCbG9ja1R5cGUgPVxuICB8IHtcbiAgICAgIG5lc3RpbmdfbW9kZTogXCJzaW5nbGVcIiB8IFwibWFwXCI7XG4gICAgICBibG9jazogQmxvY2s7XG4gICAgfVxuICB8IHtcbiAgICAgIG5lc3RpbmdfbW9kZTogXCJsaXN0XCIgfCBcInNldFwiO1xuICAgICAgYmxvY2s6IEJsb2NrO1xuICAgICAgbWluX2l0ZW1zPzogbnVtYmVyO1xuICAgICAgbWF4X2l0ZW1zPzogbnVtYmVyO1xuICAgIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmxvY2sge1xuICBhdHRyaWJ1dGVzOiB7IFtuYW1lOiBzdHJpbmddOiBBdHRyaWJ1dGUgfTtcbiAgYmxvY2tfdHlwZXM6IHsgW25hbWU6IHN0cmluZ106IEJsb2NrVHlwZSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybVNjaGVtYSB7XG4gIHByb3ZpZGVyczogUHJvdmlkZXJTY2hlbWE7XG4gIG1vZHVsZXM6IE1vZHVsZVNjaGVtYTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uU2NoZW1hIHtcbiAgcHJvdmlkZXJfc2VsZWN0aW9uczogeyBbZnFuOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLy8gb3RoZXIgcHJvcGVydGllcyBhcmVuJ3QgdXNlZFxufVxuXG5pbnRlcmZhY2UgTW9kdWxlSW5kZXhJdGVtIHtcbiAgS2V5OiBzdHJpbmc7XG4gIFNvdXJjZTogc3RyaW5nO1xuICBEaXI6IHN0cmluZztcbiAgVmVyc2lvbj86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlSW5kZXgge1xuICBNb2R1bGVzOiBNb2R1bGVJbmRleEl0ZW1bXTtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isRegistryModule = void 0;
3
+ exports.isRegistryModule = isRegistryModule;
4
4
  // Copyright (c) HashiCorp, Inc
5
5
  // SPDX-License-Identifier: MPL-2.0
6
6
  const validator_1 = require("validator");
@@ -19,5 +19,4 @@ function isRegistryModule(source) {
19
19
  }
20
20
  return true;
21
21
  }
22
- exports.isRegistryModule = isRegistryModule;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMseUNBQW1DO0FBRW5DLHVJQUF1STtBQUN2SSxTQUFnQixnQkFBZ0IsQ0FBQyxNQUFjO0lBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsSUFDRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUN0QixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDaEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQ2hDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBQSxrQkFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBakJELDRDQWlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBpc0ZRRE4gfSBmcm9tIFwidmFsaWRhdG9yXCI7XG5cbi8vIExvZ2ljIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0vYmxvYi9lMDliODMxZjZlZTM1ZDM3YjExYjhkY2NjZDNhNmQ2ZjZkYjVlNWZmL2ludGVybmFsL2FkZHJzL21vZHVsZV9zb3VyY2UuZ28jTDE5OFxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVnaXN0cnlNb2R1bGUoc291cmNlOiBzdHJpbmcpIHtcbiAgY29uc3QgcGFydHMgPSBzb3VyY2Uuc3BsaXQoXCIvXCIpO1xuICBpZiAoXG4gICAgc291cmNlLnN0YXJ0c1dpdGgoXCIuXCIpIHx8XG4gICAgcGFydHMubGVuZ3RoIDwgMyB8fFxuICAgIHBhcnRzLmxlbmd0aCA+IDQgfHxcbiAgICBzb3VyY2UuaW5jbHVkZXMoXCJnaXRodWIuY29tXCIpIHx8XG4gICAgc291cmNlLmluY2x1ZGVzKFwiYml0YnVja2V0Lm9yZ1wiKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAocGFydHMubGVuZ3RoID09PSA0ICYmICFpc0ZRRE4ocGFydHNbMF0pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJyYWZvcm0tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsNENBaUJDO0FBdEJELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMseUNBQW1DO0FBRW5DLHVJQUF1STtBQUN2SSxTQUFnQixnQkFBZ0IsQ0FBQyxNQUFjO0lBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsSUFDRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUN0QixLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDaEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBQ2hCLE1BQU0sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQ2hDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBQSxrQkFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IGlzRlFETiB9IGZyb20gXCJ2YWxpZGF0b3JcIjtcblxuLy8gTG9naWMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS9ibG9iL2UwOWI4MzFmNmVlMzVkMzdiMTFiOGRjY2NkM2E2ZDZmNmRiNWU1ZmYvaW50ZXJuYWwvYWRkcnMvbW9kdWxlX3NvdXJjZS5nbyNMMTk4XG5leHBvcnQgZnVuY3Rpb24gaXNSZWdpc3RyeU1vZHVsZShzb3VyY2U6IHN0cmluZykge1xuICBjb25zdCBwYXJ0cyA9IHNvdXJjZS5zcGxpdChcIi9cIik7XG4gIGlmIChcbiAgICBzb3VyY2Uuc3RhcnRzV2l0aChcIi5cIikgfHxcbiAgICBwYXJ0cy5sZW5ndGggPCAzIHx8XG4gICAgcGFydHMubGVuZ3RoID4gNCB8fFxuICAgIHNvdXJjZS5pbmNsdWRlcyhcImdpdGh1Yi5jb21cIikgfHxcbiAgICBzb3VyY2UuaW5jbHVkZXMoXCJiaXRidWNrZXQub3JnXCIpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPT09IDQgJiYgIWlzRlFETihwYXJ0c1swXSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdfQ==