@aws-cdk/cloudformation-diff 2.187.0 → 2.187.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.ForEachDiffFormatter = void 0;
4
7
  exports.isForEachKey = isForEachKey;
5
- const chalk = require("chalk");
8
+ const chalk_1 = __importDefault(require("chalk"));
6
9
  const util_1 = require("./diff/util");
7
- const ADDITION = chalk.green('[+]');
8
- const UPDATE = chalk.yellow('[~]');
9
- const REMOVAL = chalk.red('[-]');
10
+ const ADDITION = chalk_1.default.green('[+]');
11
+ const UPDATE = chalk_1.default.yellow('[~]');
12
+ const REMOVAL = chalk_1.default.red('[-]');
10
13
  /**
11
14
  * Formatter for Fn::ForEach diff output.
12
15
  *
@@ -23,24 +26,24 @@ class ForEachDiffFormatter {
23
26
  const changeType = this.getChangeType(oldValue, newValue);
24
27
  const value = newValue ?? oldValue;
25
28
  if (!Array.isArray(value) || value.length < 2) {
26
- lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (unrecognized ForEach structure)`);
29
+ lines.push(`${this.changeSymbol(changeType)} ${chalk_1.default.cyan(key)} (unrecognized ForEach structure)`);
27
30
  return lines;
28
31
  }
29
32
  const loopName = key.replace('Fn::ForEach::', '');
30
33
  const [collection, templateObj] = value;
31
34
  const entries = Object.entries(templateObj);
32
35
  if (entries.length === 0) {
33
- lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (empty ForEach template)`);
36
+ lines.push(`${this.changeSymbol(changeType)} ${chalk_1.default.cyan(key)} (empty ForEach template)`);
34
37
  return lines;
35
38
  }
36
39
  const [[templateKey, templateValue]] = entries;
37
40
  const count = Array.isArray(collection)
38
41
  ? `${collection.length} resources`
39
42
  : 'dynamic count';
40
- lines.push(`${this.changeSymbol(changeType)} ${chalk.cyan(key)} (expands to ${count} at deploy time)`);
41
- lines.push(` Loop variable: ${chalk.blue(loopName)}`);
43
+ lines.push(`${this.changeSymbol(changeType)} ${chalk_1.default.cyan(key)} (expands to ${count} at deploy time)`);
44
+ lines.push(` Loop variable: ${chalk_1.default.blue(loopName)}`);
42
45
  lines.push(` Collection: ${this.formatCollection(collection)}`);
43
- lines.push(` └── ${templateKey} ${chalk.cyan(templateValue?.Type ?? 'Unknown')}`);
46
+ lines.push(` └── ${templateKey} ${chalk_1.default.cyan(templateValue?.Type ?? 'Unknown')}`);
44
47
  if (changeType === 'update' && oldValue && newValue) {
45
48
  const oldProps = oldValue[1]?.[Object.keys(oldValue[1])[0]]?.Properties ?? {};
46
49
  const newProps = newValue[1]?.[Object.keys(newValue[1])[0]]?.Properties ?? {};
@@ -107,4 +110,4 @@ exports.ForEachDiffFormatter = ForEachDiffFormatter;
107
110
  function isForEachKey(logicalId) {
108
111
  return logicalId.startsWith('Fn::ForEach::');
109
112
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZvcmVhY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmb3JtYXQtZm9yZWFjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1SEEsb0NBRUM7QUF6SEQsK0JBQStCO0FBQy9CLHNDQUF3QztBQUV4QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVqQzs7Ozs7O0dBTUc7QUFDSCxNQUFhLG9CQUFvQjtJQUMvQjs7T0FFRztJQUNJLGFBQWEsQ0FDbEIsR0FBVyxFQUNYLFFBQXlCLEVBQ3pCLFFBQXlCO1FBRXpCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDO1FBRW5DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUNuRyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QyxN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QUMsQ0FBQztZQUU3QixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztpQkFBTSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxJQUFJLENBQUMsSUFBQSxnQkFBUyxFQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFwR0Qsb0RBb0dDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixZQUFZLENBQUMsU0FBaUI7SUFDNUMsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tICcuL2RpZmYvdXRpbCc7XG5cbmNvbnN0IEFERElUSU9OID0gY2hhbGsuZ3JlZW4oJ1srXScpO1xuY29uc3QgVVBEQVRFID0gY2hhbGsueWVsbG93KCdbfl0nKTtcbmNvbnN0IFJFTU9WQUwgPSBjaGFsay5yZWQoJ1stXScpO1xuXG4vKipcbiAqIEZvcm1hdHRlciBmb3IgRm46OkZvckVhY2ggZGlmZiBvdXRwdXQuXG4gKlxuICogRm46OkZvckVhY2ggaXMgYSBDbG91ZEZvcm1hdGlvbiBpbnRyaW5zaWMgdGhhdCBleHBhbmRzIGEgdGVtcGxhdGUgZnJhZ21lbnRcbiAqIG92ZXIgYSBjb2xsZWN0aW9uIGF0IGRlcGxveSB0aW1lLiBJdHMgdmFsdWUgaXMgYW4gYXJyYXk6XG4gKiAgIFtjb2xsZWN0aW9uLCB7IFwiTG9naWNhbElkJHtWYXJ9XCI6IHsgVHlwZSwgUHJvcGVydGllcyB9IH1dXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3JFYWNoRGlmZkZvcm1hdHRlciB7XG4gIC8qKlxuICAgKiBGb3JtYXQgYSBGb3JFYWNoIHJlc291cmNlIGRpZmZlcmVuY2VcbiAgICovXG4gIHB1YmxpYyBmb3JtYXRGb3JFYWNoKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9sZFZhbHVlOiBhbnkgfCB1bmRlZmluZWQsXG4gICAgbmV3VmFsdWU6IGFueSB8IHVuZGVmaW5lZCxcbiAgKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGNoYW5nZVR5cGUgPSB0aGlzLmdldENoYW5nZVR5cGUob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICBjb25zdCB2YWx1ZSA9IG5ld1ZhbHVlID8/IG9sZFZhbHVlO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5sZW5ndGggPCAyKSB7XG4gICAgICBsaW5lcy5wdXNoKGAke3RoaXMuY2hhbmdlU3ltYm9sKGNoYW5nZVR5cGUpfSAke2NoYWxrLmN5YW4oa2V5KX0gKHVucmVjb2duaXplZCBGb3JFYWNoIHN0cnVjdHVyZSlgKTtcbiAgICAgIHJldHVybiBsaW5lcztcbiAgICB9XG5cbiAgICBjb25zdCBsb29wTmFtZSA9IGtleS5yZXBsYWNlKCdGbjo6Rm9yRWFjaDo6JywgJycpO1xuICAgIGNvbnN0IFtjb2xsZWN0aW9uLCB0ZW1wbGF0ZU9ial0gPSB2YWx1ZTtcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModGVtcGxhdGVPYmogYXMgUmVjb3JkPHN0cmluZywgYW55Pik7XG5cbiAgICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGxpbmVzLnB1c2goYCR7dGhpcy5jaGFuZ2VTeW1ib2woY2hhbmdlVHlwZSl9ICR7Y2hhbGsuY3lhbihrZXkpfSAoZW1wdHkgRm9yRWFjaCB0ZW1wbGF0ZSlgKTtcbiAgICAgIHJldHVybiBsaW5lcztcbiAgICB9XG5cbiAgICBjb25zdCBbW3RlbXBsYXRlS2V5LCB0ZW1wbGF0ZVZhbHVlXV0gPSBlbnRyaWVzO1xuXG4gICAgY29uc3QgY291bnQgPSBBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pXG4gICAgICA/IGAke2NvbGxlY3Rpb24ubGVuZ3RofSByZXNvdXJjZXNgXG4gICAgICA6ICdkeW5hbWljIGNvdW50JztcblxuICAgIGxpbmVzLnB1c2goXG4gICAgICBgJHt0aGlzLmNoYW5nZVN5bWJvbChjaGFuZ2VUeXBlKX0gJHtjaGFsay5jeWFuKGtleSl9IChleHBhbmRzIHRvICR7Y291bnR9IGF0IGRlcGxveSB0aW1lKWAsXG4gICAgKTtcbiAgICBsaW5lcy5wdXNoKGAgICAgTG9vcCB2YXJpYWJsZTogJHtjaGFsay5ibHVlKGxvb3BOYW1lKX1gKTtcbiAgICBsaW5lcy5wdXNoKGAgICAgQ29sbGVjdGlvbjogJHt0aGlzLmZvcm1hdENvbGxlY3Rpb24oY29sbGVjdGlvbil9YCk7XG4gICAgbGluZXMucHVzaChgICAgIOKUlOKUgOKUgCAke3RlbXBsYXRlS2V5fSAke2NoYWxrLmN5YW4odGVtcGxhdGVWYWx1ZT8uVHlwZSA/PyAnVW5rbm93bicpfWApO1xuXG4gICAgaWYgKGNoYW5nZVR5cGUgPT09ICd1cGRhdGUnICYmIG9sZFZhbHVlICYmIG5ld1ZhbHVlKSB7XG4gICAgICBjb25zdCBvbGRQcm9wcyA9IG9sZFZhbHVlWzFdPy5bT2JqZWN0LmtleXMob2xkVmFsdWVbMV0pWzBdXT8uUHJvcGVydGllcyA/PyB7fTtcbiAgICAgIGNvbnN0IG5ld1Byb3BzID0gbmV3VmFsdWVbMV0/LltPYmplY3Qua2V5cyhuZXdWYWx1ZVsxXSlbMF1dPy5Qcm9wZXJ0aWVzID8/IHt9O1xuICAgICAgY29uc3QgcHJvcERpZmYgPSB0aGlzLmRpZmZQcm9wZXJ0aWVzKG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgICBsaW5lcy5wdXNoKC4uLnByb3BEaWZmLm1hcChsID0+IGAgICAgICAgICR7bH1gKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgW3Byb3BLZXksIHByb3BWYWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGVtcGxhdGVWYWx1ZT8uUHJvcGVydGllcyA/PyB7fSkpIHtcbiAgICAgICAgbGluZXMucHVzaChgICAgICAgICAke3Byb3BLZXl9OiAke3RoaXMuZm9ybWF0VmFsdWUocHJvcFZhbHVlKX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGluZXM7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZVN5bWJvbCh0eXBlOiAnYWRkJyB8ICdyZW1vdmUnIHwgJ3VwZGF0ZScpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnYWRkJzogcmV0dXJuIEFERElUSU9OO1xuICAgICAgY2FzZSAncmVtb3ZlJzogcmV0dXJuIFJFTU9WQUw7XG4gICAgICBjYXNlICd1cGRhdGUnOiByZXR1cm4gVVBEQVRFO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0Q29sbGVjdGlvbihjb2xsZWN0aW9uOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgICBpZiAoY29sbGVjdGlvbi5sZW5ndGggPD0gNSkgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGNvbGxlY3Rpb24pO1xuICAgICAgcmV0dXJuIGBbJHtjb2xsZWN0aW9uLnNsaWNlKDAsIDMpLmpvaW4oJywgJyl9LCAuLi4gKyR7Y29sbGVjdGlvbi5sZW5ndGggLSAzfSBtb3JlXWA7XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjb2xsZWN0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2hhbmdlVHlwZShvbGRWYWw6IGFueSwgbmV3VmFsOiBhbnkpOiAnYWRkJyB8ICdyZW1vdmUnIHwgJ3VwZGF0ZScge1xuICAgIGlmICghb2xkVmFsKSByZXR1cm4gJ2FkZCc7XG4gICAgaWYgKCFuZXdWYWwpIHJldHVybiAncmVtb3ZlJztcbiAgICByZXR1cm4gJ3VwZGF0ZSc7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlmZlByb3BlcnRpZXMob2xkUHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4sIG5ld1Byb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGFsbEtleXMgPSBuZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhvbGRQcm9wcyksIC4uLk9iamVjdC5rZXlzKG5ld1Byb3BzKV0pO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgYWxsS2V5cykge1xuICAgICAgY29uc3Qgb2xkVmFsID0gb2xkUHJvcHNba2V5XTtcbiAgICAgIGNvbnN0IG5ld1ZhbCA9IG5ld1Byb3BzW2tleV07XG5cbiAgICAgIGlmIChvbGRWYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke0FERElUSU9OfSAke2tleX06ICR7dGhpcy5mb3JtYXRWYWx1ZShuZXdWYWwpfWApO1xuICAgICAgfSBlbHNlIGlmIChuZXdWYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke1JFTU9WQUx9ICR7a2V5fTogJHt0aGlzLmZvcm1hdFZhbHVlKG9sZFZhbCl9YCk7XG4gICAgICB9IGVsc2UgaWYgKCFkZWVwRXF1YWwob2xkVmFsLCBuZXdWYWwpKSB7XG4gICAgICAgIGxpbmVzLnB1c2goYCR7VVBEQVRFfSAke2tleX06ICR7dGhpcy5mb3JtYXRWYWx1ZShvbGRWYWwpfSDihpIgJHt0aGlzLmZvcm1hdFZhbHVlKG5ld1ZhbCl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmVzO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBsb2dpY2FsIElEIHJlcHJlc2VudHMgYSBGb3JFYWNoIGNvbnN0cnVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGb3JFYWNoS2V5KGxvZ2ljYWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBsb2dpY2FsSWQuc3RhcnRzV2l0aCgnRm46OkZvckVhY2g6OicpO1xufVxuIl19
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZvcmVhY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmb3JtYXQtZm9yZWFjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUF1SEEsb0NBRUM7QUF6SEQsa0RBQTBCO0FBQzFCLHNDQUF3QztBQUV4QyxNQUFNLFFBQVEsR0FBRyxlQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sTUFBTSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsTUFBTSxPQUFPLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVqQzs7Ozs7O0dBTUc7QUFDSCxNQUFhLG9CQUFvQjtJQUMvQjs7T0FFRztJQUNJLGFBQWEsQ0FDbEIsR0FBVyxFQUNYLFFBQXlCLEVBQ3pCLFFBQXlCO1FBRXpCLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDO1FBRW5DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUNuRyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQWtDLENBQUMsQ0FBQztRQUVuRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUMzRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7UUFFL0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDckMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sWUFBWTtZQUNsQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBRXBCLEtBQUssQ0FBQyxJQUFJLENBQ1IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLGVBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixLQUFLLGtCQUFrQixDQUMzRixDQUFDO1FBQ0YsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsZUFBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekQsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRSxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsV0FBVyxJQUFJLGVBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFckYsSUFBSSxVQUFVLEtBQUssUUFBUSxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUM5RSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUM5RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN6RCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNuRixLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsT0FBTyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sWUFBWSxDQUFDLElBQWlDO1FBQ3BELFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLEtBQUssQ0FBQyxDQUFDLE9BQU8sUUFBUSxDQUFDO1lBQzVCLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUM7WUFDOUIsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFVBQWU7UUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlELE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUN0RixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBVyxFQUFFLE1BQVc7UUFDNUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sUUFBUSxDQUFDO1FBQzdCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVTtRQUM1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUE2QixFQUFFLFFBQTZCO1FBQ2pGLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlFLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUU3QixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEUsQ0FBQztpQkFBTSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxJQUFJLENBQUMsSUFBQSxnQkFBUyxFQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFwR0Qsb0RBb0dDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixZQUFZLENBQUMsU0FBaUI7SUFDNUMsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHsgZGVlcEVxdWFsIH0gZnJvbSAnLi9kaWZmL3V0aWwnO1xuXG5jb25zdCBBRERJVElPTiA9IGNoYWxrLmdyZWVuKCdbK10nKTtcbmNvbnN0IFVQREFURSA9IGNoYWxrLnllbGxvdygnW35dJyk7XG5jb25zdCBSRU1PVkFMID0gY2hhbGsucmVkKCdbLV0nKTtcblxuLyoqXG4gKiBGb3JtYXR0ZXIgZm9yIEZuOjpGb3JFYWNoIGRpZmYgb3V0cHV0LlxuICpcbiAqIEZuOjpGb3JFYWNoIGlzIGEgQ2xvdWRGb3JtYXRpb24gaW50cmluc2ljIHRoYXQgZXhwYW5kcyBhIHRlbXBsYXRlIGZyYWdtZW50XG4gKiBvdmVyIGEgY29sbGVjdGlvbiBhdCBkZXBsb3kgdGltZS4gSXRzIHZhbHVlIGlzIGFuIGFycmF5OlxuICogICBbY29sbGVjdGlvbiwgeyBcIkxvZ2ljYWxJZCR7VmFyfVwiOiB7IFR5cGUsIFByb3BlcnRpZXMgfSB9XVxuICovXG5leHBvcnQgY2xhc3MgRm9yRWFjaERpZmZGb3JtYXR0ZXIge1xuICAvKipcbiAgICogRm9ybWF0IGEgRm9yRWFjaCByZXNvdXJjZSBkaWZmZXJlbmNlXG4gICAqL1xuICBwdWJsaWMgZm9ybWF0Rm9yRWFjaChcbiAgICBrZXk6IHN0cmluZyxcbiAgICBvbGRWYWx1ZTogYW55IHwgdW5kZWZpbmVkLFxuICAgIG5ld1ZhbHVlOiBhbnkgfCB1bmRlZmluZWQsXG4gICk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBjaGFuZ2VUeXBlID0gdGhpcy5nZXRDaGFuZ2VUeXBlKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgY29uc3QgdmFsdWUgPSBuZXdWYWx1ZSA/PyBvbGRWYWx1ZTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoIDwgMikge1xuICAgICAgbGluZXMucHVzaChgJHt0aGlzLmNoYW5nZVN5bWJvbChjaGFuZ2VUeXBlKX0gJHtjaGFsay5jeWFuKGtleSl9ICh1bnJlY29nbml6ZWQgRm9yRWFjaCBzdHJ1Y3R1cmUpYCk7XG4gICAgICByZXR1cm4gbGluZXM7XG4gICAgfVxuXG4gICAgY29uc3QgbG9vcE5hbWUgPSBrZXkucmVwbGFjZSgnRm46OkZvckVhY2g6OicsICcnKTtcbiAgICBjb25zdCBbY29sbGVjdGlvbiwgdGVtcGxhdGVPYmpdID0gdmFsdWU7XG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHRlbXBsYXRlT2JqIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pO1xuXG4gICAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBsaW5lcy5wdXNoKGAke3RoaXMuY2hhbmdlU3ltYm9sKGNoYW5nZVR5cGUpfSAke2NoYWxrLmN5YW4oa2V5KX0gKGVtcHR5IEZvckVhY2ggdGVtcGxhdGUpYCk7XG4gICAgICByZXR1cm4gbGluZXM7XG4gICAgfVxuXG4gICAgY29uc3QgW1t0ZW1wbGF0ZUtleSwgdGVtcGxhdGVWYWx1ZV1dID0gZW50cmllcztcblxuICAgIGNvbnN0IGNvdW50ID0gQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKVxuICAgICAgPyBgJHtjb2xsZWN0aW9uLmxlbmd0aH0gcmVzb3VyY2VzYFxuICAgICAgOiAnZHluYW1pYyBjb3VudCc7XG5cbiAgICBsaW5lcy5wdXNoKFxuICAgICAgYCR7dGhpcy5jaGFuZ2VTeW1ib2woY2hhbmdlVHlwZSl9ICR7Y2hhbGsuY3lhbihrZXkpfSAoZXhwYW5kcyB0byAke2NvdW50fSBhdCBkZXBsb3kgdGltZSlgLFxuICAgICk7XG4gICAgbGluZXMucHVzaChgICAgIExvb3AgdmFyaWFibGU6ICR7Y2hhbGsuYmx1ZShsb29wTmFtZSl9YCk7XG4gICAgbGluZXMucHVzaChgICAgIENvbGxlY3Rpb246ICR7dGhpcy5mb3JtYXRDb2xsZWN0aW9uKGNvbGxlY3Rpb24pfWApO1xuICAgIGxpbmVzLnB1c2goYCAgICDilJTilIDilIAgJHt0ZW1wbGF0ZUtleX0gJHtjaGFsay5jeWFuKHRlbXBsYXRlVmFsdWU/LlR5cGUgPz8gJ1Vua25vd24nKX1gKTtcblxuICAgIGlmIChjaGFuZ2VUeXBlID09PSAndXBkYXRlJyAmJiBvbGRWYWx1ZSAmJiBuZXdWYWx1ZSkge1xuICAgICAgY29uc3Qgb2xkUHJvcHMgPSBvbGRWYWx1ZVsxXT8uW09iamVjdC5rZXlzKG9sZFZhbHVlWzFdKVswXV0/LlByb3BlcnRpZXMgPz8ge307XG4gICAgICBjb25zdCBuZXdQcm9wcyA9IG5ld1ZhbHVlWzFdPy5bT2JqZWN0LmtleXMobmV3VmFsdWVbMV0pWzBdXT8uUHJvcGVydGllcyA/PyB7fTtcbiAgICAgIGNvbnN0IHByb3BEaWZmID0gdGhpcy5kaWZmUHJvcGVydGllcyhvbGRQcm9wcywgbmV3UHJvcHMpO1xuICAgICAgbGluZXMucHVzaCguLi5wcm9wRGlmZi5tYXAobCA9PiBgICAgICAgICAke2x9YCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IFtwcm9wS2V5LCBwcm9wVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRlbXBsYXRlVmFsdWU/LlByb3BlcnRpZXMgPz8ge30pKSB7XG4gICAgICAgIGxpbmVzLnB1c2goYCAgICAgICAgJHtwcm9wS2V5fTogJHt0aGlzLmZvcm1hdFZhbHVlKHByb3BWYWx1ZSl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpbmVzO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VTeW1ib2wodHlwZTogJ2FkZCcgfCAncmVtb3ZlJyB8ICd1cGRhdGUnKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2FkZCc6IHJldHVybiBBRERJVElPTjtcbiAgICAgIGNhc2UgJ3JlbW92ZSc6IHJldHVybiBSRU1PVkFMO1xuICAgICAgY2FzZSAndXBkYXRlJzogcmV0dXJuIFVQREFURTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdENvbGxlY3Rpb24oY29sbGVjdGlvbjogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSkge1xuICAgICAgaWYgKGNvbGxlY3Rpb24ubGVuZ3RoIDw9IDUpIHJldHVybiBKU09OLnN0cmluZ2lmeShjb2xsZWN0aW9uKTtcbiAgICAgIHJldHVybiBgWyR7Y29sbGVjdGlvbi5zbGljZSgwLCAzKS5qb2luKCcsICcpfSwgLi4uICske2NvbGxlY3Rpb24ubGVuZ3RoIC0gM30gbW9yZV1gO1xuICAgIH1cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoY29sbGVjdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGdldENoYW5nZVR5cGUob2xkVmFsOiBhbnksIG5ld1ZhbDogYW55KTogJ2FkZCcgfCAncmVtb3ZlJyB8ICd1cGRhdGUnIHtcbiAgICBpZiAoIW9sZFZhbCkgcmV0dXJuICdhZGQnO1xuICAgIGlmICghbmV3VmFsKSByZXR1cm4gJ3JlbW92ZSc7XG4gICAgcmV0dXJuICd1cGRhdGUnO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIHZhbHVlO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGRpZmZQcm9wZXJ0aWVzKG9sZFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBuZXdQcm9wczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBhbGxLZXlzID0gbmV3IFNldChbLi4uT2JqZWN0LmtleXMob2xkUHJvcHMpLCAuLi5PYmplY3Qua2V5cyhuZXdQcm9wcyldKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIGFsbEtleXMpIHtcbiAgICAgIGNvbnN0IG9sZFZhbCA9IG9sZFByb3BzW2tleV07XG4gICAgICBjb25zdCBuZXdWYWwgPSBuZXdQcm9wc1trZXldO1xuXG4gICAgICBpZiAob2xkVmFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGluZXMucHVzaChgJHtBRERJVElPTn0gJHtrZXl9OiAke3RoaXMuZm9ybWF0VmFsdWUobmV3VmFsKX1gKTtcbiAgICAgIH0gZWxzZSBpZiAobmV3VmFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgbGluZXMucHVzaChgJHtSRU1PVkFMfSAke2tleX06ICR7dGhpcy5mb3JtYXRWYWx1ZShvbGRWYWwpfWApO1xuICAgICAgfSBlbHNlIGlmICghZGVlcEVxdWFsKG9sZFZhbCwgbmV3VmFsKSkge1xuICAgICAgICBsaW5lcy5wdXNoKGAke1VQREFURX0gJHtrZXl9OiAke3RoaXMuZm9ybWF0VmFsdWUob2xkVmFsKX0g4oaSICR7dGhpcy5mb3JtYXRWYWx1ZShuZXdWYWwpfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsaW5lcztcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgbG9naWNhbCBJRCByZXByZXNlbnRzIGEgRm9yRWFjaCBjb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRm9yRWFjaEtleShsb2dpY2FsSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gbG9naWNhbElkLnN0YXJ0c1dpdGgoJ0ZuOjpGb3JFYWNoOjonKTtcbn1cbiJdfQ==
@@ -1,9 +1,45 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
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
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.formatTable = formatTable;
4
- const chalk = require("chalk");
5
- const string_width_1 = require("string-width");
6
- const table = require("table");
40
+ const chalk_1 = __importDefault(require("chalk"));
41
+ const string_width_1 = __importDefault(require("string-width"));
42
+ const table = __importStar(require("table"));
7
43
  /**
8
44
  * Render a two-dimensional array to a visually attractive table
9
45
  *
@@ -89,7 +125,7 @@ function sum(xs) {
89
125
  return total;
90
126
  }
91
127
  // What color the table is going to be
92
- const tableColor = chalk.gray;
128
+ const tableColor = chalk_1.default.gray;
93
129
  // Unicode table characters with a color
94
130
  const TABLE_BORDER_CHARACTERS = {
95
131
  topBody: tableColor('─'),
@@ -108,4 +144,4 @@ const TABLE_BORDER_CHARACTERS = {
108
144
  joinRight: tableColor('┤'),
109
145
  joinJoin: tableColor('┼'),
110
146
  };
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0Esa0NBWUM7QUFyQkQsK0JBQStCO0FBQy9CLCtDQUF1QztBQUN2QywrQkFBK0I7QUFFL0I7Ozs7R0FJRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFpQixFQUFFLE9BQTJCLEVBQUUsaUJBQTJCO0lBQ3JHLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDeEIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixPQUFPLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDckcsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQixpR0FBaUc7WUFDakcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDM0MsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQztLQUNGLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsV0FBVyxDQUFDLElBQWMsRUFBRSxJQUFjO0lBQ2pELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxNQUE0QjtJ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QUFzQztBQUN0QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0FBRTlCLHdDQUF3QztBQUN4QyxNQUFNLHVCQUF1QixHQUFHO0lBQzlCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzVCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgc3RyaW5nV2lkdGggZnJvbSAnc3RyaW5nLXdpZHRoJztcbmltcG9ydCAqIGFzIHRhYmxlIGZyb20gJ3RhYmxlJztcblxuLyoqXG4gKiBSZW5kZXIgYSB0d28tZGltZW5zaW9uYWwgYXJyYXkgdG8gYSB2aXN1YWxseSBhdHRyYWN0aXZlIHRhYmxlXG4gKlxuICogRmlyc3Qgcm93IGlzIGNvbnNpZGVyZWQgdGhlIHRhYmxlIGhlYWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRhYmxlKGNlbGxzOiBzdHJpbmdbXVtdLCBjb2x1bW5zOiBudW1iZXIgfCB1bmRlZmluZWQsIG5vSG9yaXpvbnRhbExpbmVzPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiB0YWJsZS50YWJsZShjZWxscywge1xuICAgIGJvcmRlcjogVEFCTEVfQk9SREVSX0NIQVJBQ1RFUlMsXG4gICAgY29sdW1uczogYnVpbGRDb2x1bW5Db25maWcoY29sdW1ucyAhPT0gdW5kZWZpbmVkID8gY2FsY3VsYXRlQ29sdW1uV2lkdGhzKGNlbGxzLCBjb2x1bW5zKSA6IHVuZGVmaW5lZCksXG4gICAgZHJhd0hvcml6b250YWxMaW5lOiAobGluZSkgPT4ge1xuICAgICAgLy8gTnVtYmVyaW5nIGxpa2UgdGhpczogW2xpbmUgMF0gW2hlYWRlciA9IHJvd1swXV0gW2xpbmUgMV0gW3JvdyAxXSBbbGluZSAyXSBbY29udGVudCAyXSBbbGluZSAzXVxuICAgICAgaWYgKG5vSG9yaXpvbnRhbExpbmVzKSB7XG4gICAgICAgIHJldHVybiBsaW5lIDwgMiB8fCBsaW5lID09PSBjZWxscy5sZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gKGxpbmUgPCAyIHx8IGxpbmUgPT09IGNlbGxzLmxlbmd0aCkgfHwgbGluZUJldHdlZW4oY2VsbHNbbGluZSAtIDFdLCBjZWxsc1tsaW5lXSk7XG4gICAgfSxcbiAgfSkudHJpbVJpZ2h0KCk7XG59XG5cbi8qKlxuICogV2hldGhlciB3ZSBzaG91bGQgZHJhdyBhIGxpbmUgYmV0d2VlbiB0d28gcm93c1xuICpcbiAqIERyYXcgaG9yaXpvbnRhbCBsaW5lIGlmIDJuZCBjb2x1bW4gdmFsdWVzIGFyZSBkaWZmZXJlbnQuXG4gKi9cbmZ1bmN0aW9uIGxpbmVCZXR3ZWVuKHJvd0E6IHN0cmluZ1tdLCByb3dCOiBzdHJpbmdbXSkge1xuICByZXR1cm4gcm93QVsxXSAhPT0gcm93QlsxXTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb2x1bW5Db25maWcod2lkdGhzOiBudW1iZXJbXSB8IHVuZGVmaW5lZCk6IHsgW2luZGV4OiBudW1iZXJdOiB0YWJsZS5Db2x1bW5Vc2VyQ29uZmlnIH0gfCB1bmRlZmluZWQge1xuICBpZiAod2lkdGhzID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmV0OiB7IFtpbmRleDogbnVtYmVyXTogdGFibGUuQ29sdW1uVXNlckNvbmZpZyB9ID0ge307XG4gIHdpZHRocy5mb3JFYWNoKCh3aWR0aCwgaSkgPT4ge1xuICAgIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldFtpXSA9IHsgd2lkdGggfTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgY29sdW1uIHdpZHRocyBnaXZlbiBhIHRlcm1pbmFsIHdpZHRoXG4gKlxuICogV2UgZG8gdGhpcyBieSBjYWxjdWxhdGluZyBhIGZhaXIgc2hhcmUgZm9yIGV2ZXJ5IGNvbHVtbi4gRXh0cmEgd2lkdGggc21hbGxlclxuICogdGhhbiB0aGUgZmFpciBzaGFyZSBpcyBldmVubHkgZGlzdHJpYnV0ZWQgb3ZlciBhbGwgY29sdW1ucyB0aGF0IGV4Y2VlZCB0aGVpclxuICogZmFpciBzaGFyZS5cbiAqL1xuZnVuY3Rpb24gY2FsY3VsYXRlQ29sdW1uV2lkdGhzKHJvd3M6IHN0cmluZ1tdW10sIHRlcm1pbmFsV2lkdGg6IG51bWJlcik6IG51bWJlcltdIHtcbiAgLy8gVGhlIHRlcm1pbmFsIGlzIHNvbWV0aW1lcyByZXBvcnRlZCB0byBiZSAwLiBBbHNvIGlmIHRoZSB0ZXJtaW5hbCBpcyBWRVJZIG5hcnJvdyxcbiAgLy8ganVzdCBhc3N1bWUgYSByZWFzb25hYmxlIG1pbmltdW0gc2l6ZS5cbiAgdGVybWluYWxXaWR0aCA9IE1hdGgubWF4KHRlcm1pbmFsV2lkdGgsIDQwKTtcblxuICAvLyB1c2UgJ3N0cmluZy13aWR0aCcgdG8gbm90IGNvdW50IEFOU0kgY2hhcnMgYXMgYWN0dWFsIGNoYXJhY3RlciB3aWR0aFxuICBjb25zdCBjb2x1bW5zID0gcm93c1swXS5tYXAoKF8sIGkpID0+IE1hdGgubWF4KC4uLnJvd3MubWFwKHJvdyA9PiBzdHJpbmdXaWR0aChTdHJpbmcocm93W2ldKSkpKSk7XG5cbiAgLy8gSWYgd2UgaGF2ZSBubyB0ZXJtaW5hbCB3aWR0aCwgZG8gbm90aGluZ1xuICBjb25zdCBjb250ZW50V2lkdGggPSB0ZXJtaW5hbFdpZHRoIC0gMiAtIGNvbHVtbnMubGVuZ3RoICogMztcblxuICAvLyBJZiB3ZSBkb24ndCBleGNlZWQgdGhlIHRlcm1pbmFsIHdpZHRoLCBkbyBub3RoaW5nXG4gIGlmIChzdW0oY29sdW1ucykgPD0gY29udGVudFdpZHRoKSB7XG4gICAgcmV0dXJuIGNvbHVtbnM7XG4gIH1cblxuICBjb25zdCBmYWlyU2hhcmUgPSBNYXRoLm1pbihjb250ZW50V2lkdGggLyBjb2x1bW5zLmxlbmd0aCk7XG4gIGNvbnN0IHNtYWxsQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKHcgPT4gdyA8IGZhaXJTaGFyZSk7XG5cbiAgbGV0IGRpc3RyaWJ1dGFibGVXaWR0aCA9IGNvbnRlbnRXaWR0aCAtIHN1bShzbWFsbENvbHVtbnMpO1xuICBjb25zdCBmYWlyRGlzdHJpYnV0YWJsZSA9IE1hdGguZmxvb3IoZGlzdHJpYnV0YWJsZVdpZHRoIC8gKGNvbHVtbnMubGVuZ3RoIC0gc21hbGxDb2x1bW5zLmxlbmd0aCkpO1xuXG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG4gIGZvciAoY29uc3QgcmVxdWVzdGVkV2lkdGggb2YgY29sdW1ucykge1xuICAgIGlmIChyZXF1ZXN0ZWRXaWR0aCA8IGZhaXJTaGFyZSkge1xuICAgICAgLy8gU21hbGwgY29sdW1uIGdldHMgd2hhdCB0aGV5IHdhbnRcbiAgICAgIHJldC5wdXNoKHJlcXVlc3RlZFdpZHRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTGFzdCBjb2x1bW4gZ2V0cyBhbGwgcmVtYWluaW5nLCBvdGhlcndpc2UgZ2V0IGZhaXIgcmVkaXN0IHNoYXJlXG4gICAgICBjb25zdCB3aWR0aCA9IGRpc3RyaWJ1dGFibGVXaWR0aCA8IDIgKiBmYWlyRGlzdHJpYnV0YWJsZSA/IGRpc3RyaWJ1dGFibGVXaWR0aCA6IGZhaXJEaXN0cmlidXRhYmxlO1xuICAgICAgcmV0LnB1c2god2lkdGgpO1xuICAgICAgZGlzdHJpYnV0YWJsZVdpZHRoIC09IHdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIHN1bSh4czogbnVtYmVyW10pOiBudW1iZXIge1xuICBsZXQgdG90YWwgPSAwO1xuICBmb3IgKGNvbnN0IHggb2YgeHMpIHtcbiAgICB0b3RhbCArPSB4O1xuICB9XG4gIHJldHVybiB0b3RhbDtcbn1cblxuLy8gV2hhdCBjb2xvciB0aGUgdGFibGUgaXMgZ29pbmcgdG8gYmVcbmNvbnN0IHRhYmxlQ29sb3IgPSBjaGFsay5ncmF5O1xuXG4vLyBVbmljb2RlIHRhYmxlIGNoYXJhY3RlcnMgd2l0aCBhIGNvbG9yXG5jb25zdCBUQUJMRV9CT1JERVJfQ0hBUkFDVEVSUyA9IHtcbiAgdG9wQm9keTogdGFibGVDb2xvcign4pSAJyksXG4gIHRvcEpvaW46IHRhYmxlQ29sb3IoJ+KUrCcpLFxuICB0b3BMZWZ0OiB0YWJsZUNvbG9yKCfilIwnKSxcbiAgdG9wUmlnaHQ6IHRhYmxlQ29sb3IoJ+KUkCcpLFxuICBib3R0b21Cb2R5OiB0YWJsZUNvbG9yKCfilIAnKSxcbiAgYm90dG9tSm9pbjogdGFibGVDb2xvcign4pS0JyksXG4gIGJvdHRvbUxlZnQ6IHRhYmxlQ29sb3IoJ+KUlCcpLFxuICBib3R0b21SaWdodDogdGFibGVDb2xvcign4pSYJyksXG4gIGJvZHlMZWZ0OiB0YWJsZUNvbG9yKCfilIInKSxcbiAgYm9keVJpZ2h0OiB0YWJsZUNvbG9yKCfilIInKSxcbiAgYm9keUpvaW46IHRhYmxlQ29sb3IoJ+KUgicpLFxuICBqb2luQm9keTogdGFibGVDb2xvcign4pSAJyksXG4gIGpvaW5MZWZ0OiB0YWJsZUNvbG9yKCfilJwnKSxcbiAgam9pblJpZ2h0OiB0YWJsZUNvbG9yKCfilKQnKSxcbiAgam9pbkpvaW46IHRhYmxlQ29sb3IoJ+KUvCcpLFxufTtcbiJdfQ==
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybWF0LXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0Esa0NBWUM7QUFyQkQsa0RBQTBCO0FBQzFCLGdFQUF1QztBQUN2Qyw2Q0FBK0I7QUFFL0I7Ozs7R0FJRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFpQixFQUFFLE9BQTJCLEVBQUUsaUJBQTJCO0lBQ3JHLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDeEIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixPQUFPLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDckcsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQixpR0FBaUc7WUFDakcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDM0MsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQztLQUNGLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsV0FBVyxDQUFDLElBQWMsRUFBRSxJQUFjO0lBQ2pELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3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QUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELHNDQUFzQztBQUN0QyxNQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsSUFBSSxDQUFDO0FBRTlCLHdDQUF3QztBQUN4QyxNQUFNLHVCQUF1QixHQUFHO0lBQzlCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3hCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzVCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ3pCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHN0cmluZ1dpZHRoIGZyb20gJ3N0cmluZy13aWR0aCc7XG5pbXBvcnQgKiBhcyB0YWJsZSBmcm9tICd0YWJsZSc7XG5cbi8qKlxuICogUmVuZGVyIGEgdHdvLWRpbWVuc2lvbmFsIGFycmF5IHRvIGEgdmlzdWFsbHkgYXR0cmFjdGl2ZSB0YWJsZVxuICpcbiAqIEZpcnN0IHJvdyBpcyBjb25zaWRlcmVkIHRoZSB0YWJsZSBoZWFkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUYWJsZShjZWxsczogc3RyaW5nW11bXSwgY29sdW1uczogbnVtYmVyIHwgdW5kZWZpbmVkLCBub0hvcml6b250YWxMaW5lcz86IGJvb2xlYW4pOiBzdHJpbmcge1xuICByZXR1cm4gdGFibGUudGFibGUoY2VsbHMsIHtcbiAgICBib3JkZXI6IFRBQkxFX0JPUkRFUl9DSEFSQUNURVJTLFxuICAgIGNvbHVtbnM6IGJ1aWxkQ29sdW1uQ29uZmlnKGNvbHVtbnMgIT09IHVuZGVmaW5lZCA/IGNhbGN1bGF0ZUNvbHVtbldpZHRocyhjZWxscywgY29sdW1ucykgOiB1bmRlZmluZWQpLFxuICAgIGRyYXdIb3Jpem9udGFsTGluZTogKGxpbmUpID0+IHtcbiAgICAgIC8vIE51bWJlcmluZyBsaWtlIHRoaXM6IFtsaW5lIDBdIFtoZWFkZXIgPSByb3dbMF1dIFtsaW5lIDFdIFtyb3cgMV0gW2xpbmUgMl0gW2NvbnRlbnQgMl0gW2xpbmUgM11cbiAgICAgIGlmIChub0hvcml6b250YWxMaW5lcykge1xuICAgICAgICByZXR1cm4gbGluZSA8IDIgfHwgbGluZSA9PT0gY2VsbHMubGVuZ3RoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChsaW5lIDwgMiB8fCBsaW5lID09PSBjZWxscy5sZW5ndGgpIHx8IGxpbmVCZXR3ZWVuKGNlbGxzW2xpbmUgLSAxXSwgY2VsbHNbbGluZV0pO1xuICAgIH0sXG4gIH0pLnRyaW1SaWdodCgpO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgd2Ugc2hvdWxkIGRyYXcgYSBsaW5lIGJldHdlZW4gdHdvIHJvd3NcbiAqXG4gKiBEcmF3IGhvcml6b250YWwgbGluZSBpZiAybmQgY29sdW1uIHZhbHVlcyBhcmUgZGlmZmVyZW50LlxuICovXG5mdW5jdGlvbiBsaW5lQmV0d2Vlbihyb3dBOiBzdHJpbmdbXSwgcm93Qjogc3RyaW5nW10pIHtcbiAgcmV0dXJuIHJvd0FbMV0gIT09IHJvd0JbMV07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ29sdW1uQ29uZmlnKHdpZHRoczogbnVtYmVyW10gfCB1bmRlZmluZWQpOiB7IFtpbmRleDogbnVtYmVyXTogdGFibGUuQ29sdW1uVXNlckNvbmZpZyB9IHwgdW5kZWZpbmVkIHtcbiAgaWYgKHdpZHRocyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHJldDogeyBbaW5kZXg6IG51bWJlcl06IHRhYmxlLkNvbHVtblVzZXJDb25maWcgfSA9IHt9O1xuICB3aWR0aHMuZm9yRWFjaCgod2lkdGgsIGkpID0+IHtcbiAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXRbaV0gPSB7IHdpZHRoIH07XG4gIH0pO1xuXG4gIHJldHVybiByZXQ7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIGNvbHVtbiB3aWR0aHMgZ2l2ZW4gYSB0ZXJtaW5hbCB3aWR0aFxuICpcbiAqIFdlIGRvIHRoaXMgYnkgY2FsY3VsYXRpbmcgYSBmYWlyIHNoYXJlIGZvciBldmVyeSBjb2x1bW4uIEV4dHJhIHdpZHRoIHNtYWxsZXJcbiAqIHRoYW4gdGhlIGZhaXIgc2hhcmUgaXMgZXZlbmx5IGRpc3RyaWJ1dGVkIG92ZXIgYWxsIGNvbHVtbnMgdGhhdCBleGNlZWQgdGhlaXJcbiAqIGZhaXIgc2hhcmUuXG4gKi9cbmZ1bmN0aW9uIGNhbGN1bGF0ZUNvbHVtbldpZHRocyhyb3dzOiBzdHJpbmdbXVtdLCB0ZXJtaW5hbFdpZHRoOiBudW1iZXIpOiBudW1iZXJbXSB7XG4gIC8vIFRoZSB0ZXJtaW5hbCBpcyBzb21ldGltZXMgcmVwb3J0ZWQgdG8gYmUgMC4gQWxzbyBpZiB0aGUgdGVybWluYWwgaXMgVkVSWSBuYXJyb3csXG4gIC8vIGp1c3QgYXNzdW1lIGEgcmVhc29uYWJsZSBtaW5pbXVtIHNpemUuXG4gIHRlcm1pbmFsV2lkdGggPSBNYXRoLm1heCh0ZXJtaW5hbFdpZHRoLCA0MCk7XG5cbiAgLy8gdXNlICdzdHJpbmctd2lkdGgnIHRvIG5vdCBjb3VudCBBTlNJIGNoYXJzIGFzIGFjdHVhbCBjaGFyYWN0ZXIgd2lkdGhcbiAgY29uc3QgY29sdW1ucyA9IHJvd3NbMF0ubWFwKChfLCBpKSA9PiBNYXRoLm1heCguLi5yb3dzLm1hcChyb3cgPT4gc3RyaW5nV2lkdGgoU3RyaW5nKHJvd1tpXSkpKSkpO1xuXG4gIC8vIElmIHdlIGhhdmUgbm8gdGVybWluYWwgd2lkdGgsIGRvIG5vdGhpbmdcbiAgY29uc3QgY29udGVudFdpZHRoID0gdGVybWluYWxXaWR0aCAtIDIgLSBjb2x1bW5zLmxlbmd0aCAqIDM7XG5cbiAgLy8gSWYgd2UgZG9uJ3QgZXhjZWVkIHRoZSB0ZXJtaW5hbCB3aWR0aCwgZG8gbm90aGluZ1xuICBpZiAoc3VtKGNvbHVtbnMpIDw9IGNvbnRlbnRXaWR0aCkge1xuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cbiAgY29uc3QgZmFpclNoYXJlID0gTWF0aC5taW4oY29udGVudFdpZHRoIC8gY29sdW1ucy5sZW5ndGgpO1xuICBjb25zdCBzbWFsbENvbHVtbnMgPSBjb2x1bW5zLmZpbHRlcih3ID0+IHcgPCBmYWlyU2hhcmUpO1xuXG4gIGxldCBkaXN0cmlidXRhYmxlV2lkdGggPSBjb250ZW50V2lkdGggLSBzdW0oc21hbGxDb2x1bW5zKTtcbiAgY29uc3QgZmFpckRpc3RyaWJ1dGFibGUgPSBNYXRoLmZsb29yKGRpc3RyaWJ1dGFibGVXaWR0aCAvIChjb2x1bW5zLmxlbmd0aCAtIHNtYWxsQ29sdW1ucy5sZW5ndGgpKTtcblxuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuICBmb3IgKGNvbnN0IHJlcXVlc3RlZFdpZHRoIG9mIGNvbHVtbnMpIHtcbiAgICBpZiAocmVxdWVzdGVkV2lkdGggPCBmYWlyU2hhcmUpIHtcbiAgICAgIC8vIFNtYWxsIGNvbHVtbiBnZXRzIHdoYXQgdGhleSB3YW50XG4gICAgICByZXQucHVzaChyZXF1ZXN0ZWRXaWR0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIExhc3QgY29sdW1uIGdldHMgYWxsIHJlbWFpbmluZywgb3RoZXJ3aXNlIGdldCBmYWlyIHJlZGlzdCBzaGFyZVxuICAgICAgY29uc3Qgd2lkdGggPSBkaXN0cmlidXRhYmxlV2lkdGggPCAyICogZmFpckRpc3RyaWJ1dGFibGUgPyBkaXN0cmlidXRhYmxlV2lkdGggOiBmYWlyRGlzdHJpYnV0YWJsZTtcbiAgICAgIHJldC5wdXNoKHdpZHRoKTtcbiAgICAgIGRpc3RyaWJ1dGFibGVXaWR0aCAtPSB3aWR0aDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBzdW0oeHM6IG51bWJlcltdKTogbnVtYmVyIHtcbiAgbGV0IHRvdGFsID0gMDtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgdG90YWwgKz0geDtcbiAgfVxuICByZXR1cm4gdG90YWw7XG59XG5cbi8vIFdoYXQgY29sb3IgdGhlIHRhYmxlIGlzIGdvaW5nIHRvIGJlXG5jb25zdCB0YWJsZUNvbG9yID0gY2hhbGsuZ3JheTtcblxuLy8gVW5pY29kZSB0YWJsZSBjaGFyYWN0ZXJzIHdpdGggYSBjb2xvclxuY29uc3QgVEFCTEVfQk9SREVSX0NIQVJBQ1RFUlMgPSB7XG4gIHRvcEJvZHk6IHRhYmxlQ29sb3IoJ+KUgCcpLFxuICB0b3BKb2luOiB0YWJsZUNvbG9yKCfilKwnKSxcbiAgdG9wTGVmdDogdGFibGVDb2xvcign4pSMJyksXG4gIHRvcFJpZ2h0OiB0YWJsZUNvbG9yKCfilJAnKSxcbiAgYm90dG9tQm9keTogdGFibGVDb2xvcign4pSAJyksXG4gIGJvdHRvbUpvaW46IHRhYmxlQ29sb3IoJ+KUtCcpLFxuICBib3R0b21MZWZ0OiB0YWJsZUNvbG9yKCfilJQnKSxcbiAgYm90dG9tUmlnaHQ6IHRhYmxlQ29sb3IoJ+KUmCcpLFxuICBib2R5TGVmdDogdGFibGVDb2xvcign4pSCJyksXG4gIGJvZHlSaWdodDogdGFibGVDb2xvcign4pSCJyksXG4gIGJvZHlKb2luOiB0YWJsZUNvbG9yKCfilIInKSxcbiAgam9pbkJvZHk6IHRhYmxlQ29sb3IoJ+KUgCcpLFxuICBqb2luTGVmdDogdGFibGVDb2xvcign4pScJyksXG4gIGpvaW5SaWdodDogdGFibGVDb2xvcign4pSkJyksXG4gIGpvaW5Kb2luOiB0YWJsZUNvbG9yKCfilLwnKSxcbn07XG4iXX0=