tuain-ng-forms-lib 14.3.0 → 14.3.20

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.
@@ -19,6 +19,11 @@ export class FormElement {
19
19
  setCustomAttribute(name, value) { if (name) {
20
20
  this.customAttributes[name] = value;
21
21
  } }
22
+ setCustomAttributes(attributes) {
23
+ Object.entries(attributes).forEach(([name, value]) => {
24
+ this.setCustomAttribute(name, value);
25
+ });
26
+ }
22
27
  matchAttribute(name, value) { return this.customAttributes?.[name] === value; }
23
28
  isField() { return this.elementType === elementTypes.field; }
24
29
  isAction() { return this.elementType === elementTypes.action; }
@@ -79,4 +84,4 @@ export class FormElement {
79
84
  get editable() { return !this.disabled; }
80
85
  set editable(editable) { this.disabled = !editable; }
81
86
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsTUFBTSxPQUFPLFdBQVc7SUFXdEIsWUFBWSxpQkFBc0IsRUFBRSxVQUFlO1FBVnpDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFLbkMsa0JBQWEsR0FBb0IsSUFBSSxDQUFDO1FBQ3RDLGtCQUFhLEdBQW9CLElBQUksQ0FBQztRQUN0QyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFJaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGlCQUFpQixFQUFFLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBWmlDLENBQUM7SUFjbkMsa0JBQWtCLENBQUMsSUFBWSxJQUFTLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RixrQkFBa0IsQ0FB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QUVELE1BQU0sS0FBVyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekMsT0FBTyxLQUFXLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUV6QyxJQUFJLE9BQU8sS0FBYyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDakQsSUFBSSxRQUFRLEtBQWMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xELElBQUksUUFBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztDQUN0RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVsZW1lbnRUeXBlcyB9IGZyb20gJy4vZm9ybS5jb25zdGFudHMnO1xuZXhwb3J0IGNsYXNzIEZvcm1FbGVtZW50IHtcbiAgcHJvdGVjdGVkIF92aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJvdGVjdGVkIF92aXNpYmxlRm9yY2VkOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgX2lzRm9yY2VkOiBib29sZWFuO1xuICBfZm9ybUNvbmZpZzogYW55O1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgdmlzaWJsZVN0YXRlczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcbiAgZW5hYmxlZFN0YXRlczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcbiAgZWxlbWVudFR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsOztcbiAgY3VzdG9tQXR0cmlidXRlczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnREZWZpbml0aW9uOiBhbnksIGZvcm1Db25maWc6IGFueSkge1xuICAgIHRoaXMuX2Zvcm1Db25maWcgPSBmb3JtQ29uZmlnO1xuICAgIHRoaXMuX2lzRm9yY2VkID0gZmFsc2U7XG4gICAgdGhpcy5zZXRWaXNpYmxlU3RhdGVzKGVsZW1lbnREZWZpbml0aW9uLnZpc2libGVTdGF0ZXMpO1xuICAgIHRoaXMuc2V0RW5hYmxlZFN0YXRlcyhlbGVtZW50RGVmaW5pdGlvbi5lbmFibGVkU3RhdGVzKTtcbiAgICB0aGlzLl92aXNpYmxlRm9yY2VkID0gZmFsc2U7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGVsZW1lbnREZWZpbml0aW9uPy5kaXNhYmxlZCA/PyBmYWxzZTtcbiAgICB0aGlzLnNldFZpc2liaWxpdHkoZWxlbWVudERlZmluaXRpb24/LnZpc2libGUgPz8gdHJ1ZSk7XG4gICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVzID0gZWxlbWVudERlZmluaXRpb24/LmN1c3RvbUF0dHJpYnV0ZXMgPz8ge307XG4gIH1cblxuICBnZXRDdXN0b21BdHRyaWJ1dGUobmFtZTogc3RyaW5nKTogYW55IHsgcmV0dXJuIHRoaXMuY3VzdG9tQXR0cmlidXRlcz8uW25hbWVdID8/IG51bGw7IH1cbiAgc2V0Q3VzdG9tQXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQgeyBpZiAobmFtZSkgeyB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTsgfSB9XG4gIG1hdGNoQXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzPy5bbmFtZV0gPT09IHZhbHVlOyB9XG5cbiAgaXNGaWVsZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUgPT09IGVsZW1lbnRUeXBlcy5maWVsZDsgfVxuICBpc0FjdGlvbigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUgPT09IGVsZW1lbnRUeXBlcy5hY3Rpb247IH1cbiAgaXNUYWJsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUgPT09IGVsZW1lbnRUeXBlcy50YWJsZTsgfVxuXG4gIHNldFZpc2libGVTdGF0ZXMobmV3U3RhdGVzOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2aXNpYmxlU3RhdGVzID0gKCFBcnJheS5pc0FycmF5KG5ld1N0YXRlcykgJiYgdHlwZW9mIG5ld1N0YXRlcyA9PT0gJ3N0cmluZycpXG4gICAgICA/IG5ld1N0YXRlcy5zcGxpdCgnLCcpLm1hcChzdGF0ZSA9PiBzdGF0ZS50cmltKCkpLmZpbHRlcihzdGF0ZSA9PiBzdGF0ZS5sZW5ndGggPiAwKVxuICAgICAgOiBuZXdTdGF0ZXM7XG4gICAgdGhpcy52aXNpYmxlU3RhdGVzID0gKEFycmF5LmlzQXJyYXkodmlzaWJsZVN0YXRlcykpID8gdmlzaWJsZVN0YXRlcyA6IFtdO1xuICB9XG5cbiAgc2V0RW5hYmxlZFN0YXRlcyhuZXdTdGF0ZXM6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRTdGF0ZXMgPSAoIUFycmF5LmlzQXJyYXkobmV3U3RhdGVzKSAmJiB0eXBlb2YgbmV3U3RhdGVzID09PSAnc3RyaW5nJylcbiAgICAgID8gbmV3U3RhdGVzLnNwbGl0KCcsJykubWFwKHN0YXRlID0+IHN0YXRlLnRyaW0oKSkuZmlsdGVyKHN0YXRlID0+IHN0YXRlLmxlbmd0aCA+IDApXG4gICAgICA6IG5ld1N0YXRlcztcbiAgICB0aGlzLmVuYWJsZWRTdGF0ZXMgPSAoQXJyYXkuaXNBcnJheShlbmFibGVkU3RhdGVzKSkgPyBlbmFibGVkU3RhdGVzIDogW107XG4gIH1cblxuICB2aWV3T25TdGF0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy52aXNpYmxlU3RhdGVzICYmIHN0YXRlKSA/IHRoaXMudmlzaWJsZVN0YXRlcy5pbmNsdWRlcyhzdGF0ZSkgOiBmYWxzZTsgfVxuICBlbmFibGVkT25TdGF0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy5lbmFibGVkU3RhdGVzICYmIHN0YXRlKSA/IHRoaXMuZW5hYmxlZFN0YXRlcy5pbmNsdWRlcyhzdGF0ZSkgOiBmYWxzZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVdGlsaXphciB2aWV3T25TdGF0ZVxuICAgKi9cbiAgc3VwcG9ydFN0YXRlKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMudmlld09uU3RhdGUoc3RhdGUpOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFV0aWxpemFyIHZpZXdPblN0YXRlXG4gICAqL1xuICBzdXBwb3J0TW9kZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnZpZXdPblN0YXRlKHN0YXRlKTsgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gKHRoaXMuX2lzRm9yY2VkKSA/IHRoaXMuX3Zpc2libGVGb3JjZWQgOiB0aGlzLl92aXNpYmxlOyB9XG4gIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHsgdGhpcy5zZXRWaXNpYmlsaXR5KHZpc2libGUpOyB9XG5cbiAgdmlzaWJsZU9uKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlICYmIHRoaXMudmlld09uU3RhdGUoc3RhdGUpO1xuICB9XG5cbiAgZW5hYmxlZE9uKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5lbmFibGVkT25TdGF0ZShzdGF0ZSk7XG4gIH1cblxuICBzZXRWaXNpYmlsaXR5KHZpc2libGU6IGJvb2xlYW4sIGZvcmNlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGUgJiYgdHJ1ZTtcbiAgICBpZiAoZm9yY2VkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2lzRm9yY2VkID0gZm9yY2VkO1xuICAgIH1cbiAgfVxuXG4gIHNob3coZm9yY2VkOiBib29sZWFuIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdHJ1ZTtcbiAgICBpZiAoZm9yY2VkICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9pc0ZvcmNlZCA9IGZvcmNlZDtcbiAgICAgIHRoaXMuX3Zpc2libGVGb3JjZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoZm9yY2VkOiBib29sZWFuIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl92aXNpYmxlID0gZmFsc2U7XG4gICAgaWYgKGZvcmNlZCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5faXNGb3JjZWQgPSBmb3JjZWQ7XG4gICAgICB0aGlzLl92aXNpYmxlRm9yY2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZW5hYmxlKCk6IHZvaWQgeyB0aGlzLmRpc2FibGVkID0gZmFsc2U7IH1cbiAgZGlzYWJsZSgpOiB2b2lkIHsgdGhpcy5kaXNhYmxlZCA9IHRydWU7IH1cblxuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLmRpc2FibGVkOyB9XG4gIGdldCBlZGl0YWJsZSgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLmRpc2FibGVkOyB9XG4gIHNldCBlZGl0YWJsZShlZGl0YWJsZSkgeyB0aGlzLmRpc2FibGVkID0gIWVkaXRhYmxlOyB9XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsTUFBTSxPQUFPLFdBQVc7SUFXdEIsWUFBWSxpQkFBc0IsRUFBRSxVQUFlO1FBVnpDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFLbkMsa0JBQWEsR0FBb0IsSUFBSSxDQUFDO1FBQ3RDLGtCQUFhLEdBQW9CLElBQUksQ0FBQztRQUN0QyxnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFJaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGlCQUFpQixFQUFFLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBWmlDLENBQUM7SUFjbkMsa0JBQWtCLENBQUMsSUFBWSxJQUFTLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RixrQkFBa0IsQ0FBQyxJQUFZLEVBQUUsS0FBVSxJQUFVLElBQUksSUFBSSxFQUFFO1FBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztLQUFFLENBQUMsQ0FBQztJQUV6RyxtQkFBbUIsQ0FBQyxVQUFlO1FBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsS0FBYSxJQUFhLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUV4RyxPQUFPLEtBQWMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLFFBQVEsS0FBYyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDeEUsT0FBTyxLQUFjLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUV0RSxnQkFBZ0IsQ0FBQyxTQUFjO1FBQzdCLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQztZQUNoRixDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNuRixDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWM7UUFDN0IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDO1lBQ2hGLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25GLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsSUFBYSxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUgsY0FBYyxDQUFDLEtBQWEsSUFBYSxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFN0g7O09BRUc7SUFDSCxZQUFZLENBQUMsS0FBYSxJQUFhLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEU7O09BRUc7SUFDSCxXQUFXLENBQUMsS0FBYSxJQUFhLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdkUsSUFBSSxPQUFPLEtBQWMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDekYsSUFBSSxPQUFPLENBQUMsT0FBZ0IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU5RCxTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCLEVBQUUsU0FBeUIsSUFBSTtRQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDaEMsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxTQUF5QixJQUFJO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsU0FBeUIsSUFBSTtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsTUFBTSxLQUFXLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6QyxPQUFPLEtBQVcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRXpDLElBQUksT0FBTyxLQUFjLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNqRCxJQUFJLFFBQVEsS0FBYyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0NBQ3REIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZWxlbWVudFR5cGVzIH0gZnJvbSAnLi9mb3JtLmNvbnN0YW50cyc7XG5leHBvcnQgY2xhc3MgRm9ybUVsZW1lbnQge1xuICBwcm90ZWN0ZWQgX3Zpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuICBwcm90ZWN0ZWQgX3Zpc2libGVGb3JjZWQ6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBfaXNGb3JjZWQ6IGJvb2xlYW47XG4gIF9mb3JtQ29uZmlnOiBhbnk7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICB2aXNpYmxlU3RhdGVzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuICBlbmFibGVkU3RhdGVzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuICBlbGVtZW50VHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7O1xuICBjdXN0b21BdHRyaWJ1dGVzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudERlZmluaXRpb246IGFueSwgZm9ybUNvbmZpZzogYW55KSB7XG4gICAgdGhpcy5fZm9ybUNvbmZpZyA9IGZvcm1Db25maWc7XG4gICAgdGhpcy5faXNGb3JjZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNldFZpc2libGVTdGF0ZXMoZWxlbWVudERlZmluaXRpb24udmlzaWJsZVN0YXRlcyk7XG4gICAgdGhpcy5zZXRFbmFibGVkU3RhdGVzKGVsZW1lbnREZWZpbml0aW9uLmVuYWJsZWRTdGF0ZXMpO1xuICAgIHRoaXMuX3Zpc2libGVGb3JjZWQgPSBmYWxzZTtcbiAgICB0aGlzLmRpc2FibGVkID0gZWxlbWVudERlZmluaXRpb24/LmRpc2FibGVkID8/IGZhbHNlO1xuICAgIHRoaXMuc2V0VmlzaWJpbGl0eShlbGVtZW50RGVmaW5pdGlvbj8udmlzaWJsZSA/PyB0cnVlKTtcbiAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMgPSBlbGVtZW50RGVmaW5pdGlvbj8uY3VzdG9tQXR0cmlidXRlcyA/PyB7fTtcbiAgfVxuXG4gIGdldEN1c3RvbUF0dHJpYnV0ZShuYW1lOiBzdHJpbmcpOiBhbnkgeyByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzPy5bbmFtZV0gPz8gbnVsbDsgfVxuICBzZXRDdXN0b21BdHRyaWJ1dGUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7IGlmIChuYW1lKSB7IHRoaXMuY3VzdG9tQXR0cmlidXRlc1tuYW1lXSA9IHZhbHVlOyB9IH1cblxuICBzZXRDdXN0b21BdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IGFueSk6IHZvaWQge1xuICAgIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpLmZvckVhY2goKFtuYW1lLCB2YWx1ZV0pID0+IHtcbiAgICAgIHRoaXMuc2V0Q3VzdG9tQXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG1hdGNoQXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzPy5bbmFtZV0gPT09IHZhbHVlOyB9XG5cbiAgaXNGaWVsZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUgPT09IGVsZW1lbnRUeXBlcy5maWVsZDsgfVxuICBpc0FjdGlvbigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUgPT09IGVsZW1lbnRUeXBlcy5hY3Rpb247IH1cbiAgaXNUYWJsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUgPT09IGVsZW1lbnRUeXBlcy50YWJsZTsgfVxuXG4gIHNldFZpc2libGVTdGF0ZXMobmV3U3RhdGVzOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2aXNpYmxlU3RhdGVzID0gKCFBcnJheS5pc0FycmF5KG5ld1N0YXRlcykgJiYgdHlwZW9mIG5ld1N0YXRlcyA9PT0gJ3N0cmluZycpXG4gICAgICA/IG5ld1N0YXRlcy5zcGxpdCgnLCcpLm1hcChzdGF0ZSA9PiBzdGF0ZS50cmltKCkpLmZpbHRlcihzdGF0ZSA9PiBzdGF0ZS5sZW5ndGggPiAwKVxuICAgICAgOiBuZXdTdGF0ZXM7XG4gICAgdGhpcy52aXNpYmxlU3RhdGVzID0gKEFycmF5LmlzQXJyYXkodmlzaWJsZVN0YXRlcykpID8gdmlzaWJsZVN0YXRlcyA6IFtdO1xuICB9XG5cbiAgc2V0RW5hYmxlZFN0YXRlcyhuZXdTdGF0ZXM6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRTdGF0ZXMgPSAoIUFycmF5LmlzQXJyYXkobmV3U3RhdGVzKSAmJiB0eXBlb2YgbmV3U3RhdGVzID09PSAnc3RyaW5nJylcbiAgICAgID8gbmV3U3RhdGVzLnNwbGl0KCcsJykubWFwKHN0YXRlID0+IHN0YXRlLnRyaW0oKSkuZmlsdGVyKHN0YXRlID0+IHN0YXRlLmxlbmd0aCA+IDApXG4gICAgICA6IG5ld1N0YXRlcztcbiAgICB0aGlzLmVuYWJsZWRTdGF0ZXMgPSAoQXJyYXkuaXNBcnJheShlbmFibGVkU3RhdGVzKSkgPyBlbmFibGVkU3RhdGVzIDogW107XG4gIH1cblxuICB2aWV3T25TdGF0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy52aXNpYmxlU3RhdGVzICYmIHN0YXRlKSA/IHRoaXMudmlzaWJsZVN0YXRlcy5pbmNsdWRlcyhzdGF0ZSkgOiBmYWxzZTsgfVxuICBlbmFibGVkT25TdGF0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy5lbmFibGVkU3RhdGVzICYmIHN0YXRlKSA/IHRoaXMuZW5hYmxlZFN0YXRlcy5pbmNsdWRlcyhzdGF0ZSkgOiBmYWxzZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVdGlsaXphciB2aWV3T25TdGF0ZVxuICAgKi9cbiAgc3VwcG9ydFN0YXRlKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMudmlld09uU3RhdGUoc3RhdGUpOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFV0aWxpemFyIHZpZXdPblN0YXRlXG4gICAqL1xuICBzdXBwb3J0TW9kZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLnZpZXdPblN0YXRlKHN0YXRlKTsgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gKHRoaXMuX2lzRm9yY2VkKSA/IHRoaXMuX3Zpc2libGVGb3JjZWQgOiB0aGlzLl92aXNpYmxlOyB9XG4gIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHsgdGhpcy5zZXRWaXNpYmlsaXR5KHZpc2libGUpOyB9XG5cbiAgdmlzaWJsZU9uKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlICYmIHRoaXMudmlld09uU3RhdGUoc3RhdGUpO1xuICB9XG5cbiAgZW5hYmxlZE9uKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5lbmFibGVkT25TdGF0ZShzdGF0ZSk7XG4gIH1cblxuICBzZXRWaXNpYmlsaXR5KHZpc2libGU6IGJvb2xlYW4sIGZvcmNlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGUgJiYgdHJ1ZTtcbiAgICBpZiAoZm9yY2VkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2lzRm9yY2VkID0gZm9yY2VkO1xuICAgIH1cbiAgfVxuXG4gIHNob3coZm9yY2VkOiBib29sZWFuIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdHJ1ZTtcbiAgICBpZiAoZm9yY2VkICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9pc0ZvcmNlZCA9IGZvcmNlZDtcbiAgICAgIHRoaXMuX3Zpc2libGVGb3JjZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGhpZGUoZm9yY2VkOiBib29sZWFuIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl92aXNpYmxlID0gZmFsc2U7XG4gICAgaWYgKGZvcmNlZCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5faXNGb3JjZWQgPSBmb3JjZWQ7XG4gICAgICB0aGlzLl92aXNpYmxlRm9yY2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZW5hYmxlKCk6IHZvaWQgeyB0aGlzLmRpc2FibGVkID0gZmFsc2U7IH1cbiAgZGlzYWJsZSgpOiB2b2lkIHsgdGhpcy5kaXNhYmxlZCA9IHRydWU7IH1cblxuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLmRpc2FibGVkOyB9XG4gIGdldCBlZGl0YWJsZSgpOiBib29sZWFuIHsgcmV0dXJuICF0aGlzLmRpc2FibGVkOyB9XG4gIHNldCBlZGl0YWJsZShlZGl0YWJsZSkgeyB0aGlzLmRpc2FibGVkID0gIWVkaXRhYmxlOyB9XG59XG4iXX0=
@@ -233,7 +233,7 @@ export class FieldDescriptor extends FormElement {
233
233
  get required() { return this._fieldRequired; }
234
234
  set required(required) { this.setAttr(attrs._fieldRequired, required ?? false); }
235
235
  get title() { return this._fieldTitle; }
236
- set title(title) { this.setAttr(attrs._fieldTitle, title.toString()); }
236
+ set title(title) { this.setAttr(attrs._fieldTitle, title?.toString() ?? ''); }
237
237
  get tooltip() { return this._tooltipText; }
238
238
  set tooltip(tooltip) { this.setAttr(attrs._tooltipText, tooltip); }
239
239
  get type() { return this._fieldType; }
@@ -448,4 +448,4 @@ export class FieldDescriptor extends FormElement {
448
448
  return true;
449
449
  }
450
450
  }
451
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFFOUIsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFFakMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUUzQixNQUFNLGFBQWEsR0FBRztJQUNwQixpQkFBaUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVc7SUFDcEcsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTTtJQUNsRyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGNBQWM7SUFDcEcsU0FBUztDQUNWLENBQUM7QUFFRixNQUFNLEtBQUssR0FBRztJQUNaLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTtJQUNoRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUs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YUFBYSxHQUFHLEVBQUUsQ0FBQzthQUNwQjtpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2xDLGFBQWEsR0FBRyxRQUFRLENBQUM7YUFDMUI7aUJBQU07Z0JBQ0wsYUFBYSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDaEQ7U0FDRjthQUFNO1lBQ0wsYUFBYSxHQUFHLFFBQVEsQ0FBQztTQUMxQjtRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLEVBQUU7WUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQzthQUMzQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQzthQUM3QjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFFZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeW4gZnJvbSAneW4nO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzLCBOT19FUlJPUiB9IGZyb20gJy4vZm9ybS5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuXG5jb25zdCBVTkRFRklORUQgPSAndW5kZWZpbmVkJztcblxuY29uc3QgREVGQVVMVF9FUlJPUl9UWVBFID0gJ2Vycm9yJztcbmNvbnN0IERFRkFVTFRfQ0FQVFVSRV9UWVBFID0gJ0lOUFVUJztcbmNvbnN0IERFRkFVTFRfQUxJR05NRU5UID0gJ2xlZnQnO1xuXG5jb25zdCBTVERfTUFYX0xFTkdUSCA9IDUwO1xuY29uc3QgQklHX01BWF9MRU5HVEggPSA1MDA7XG5cbmNvbnN0IGRpcmVjdENoYW5nZXMgPSBbXG4gICdkZWZhdWx0RWRpdGFibGUnLCAnZGVmYXVsdFZhbHVlJywgJ2FsaWdubWVudCcsICdyZXF1aXJlZCcsICdlcnJvckNvZGUnLCAnZXJyb3JNZXNzYWdlJywgJ2Vycm9yVHlwZScsXG4gICd0b29sdGlwJywgJ2luZm8nLCAnZm9ybWF0JywgJ2ludHJpbnNpY0Vycm9yTWVzc2FnZScsICdvdXRwdXRPbmx5JywgJ2NhcHR1cmVUeXBlJywgJ3RpdGxlJywgJ3R5cGUnLFxuICAnbWF4TGVuZ3RoJywgJ21heFZhbHVlJywgJ21pbkxlbmd0aCcsICdtaW5WYWx1ZScsICd2YWxpZGF0ZU9uU2VydmVyJywgJ3NlcnZlckFjdGlvbicsICd2aXNpYmxlTGFiZWwnLFxuICAnb3B0aW9ucycsXG5dO1xuXG5jb25zdCBhdHRycyA9IHtcbiAgX2NhcHR1cmVUeXBlOiB7IG5hbWU6ICdfY2FwdHVyZVR5cGUnLCBwcm9wYWdhdGU6ICdjYXB0dXJlVHlwZScgfSxcbiAgX2Vycm9yQ29kZTogeyBuYW1lOiAnX2Vycm9yQ29kZScsIHByb3BhZ2F0ZTogJ2Vycm9yQ29kZScgfSxcbiAgX2Vycm9yTWVzc2FnZTogeyBuYW1lOiAnX2Vycm9yTWVzc2FnZScsIHByb3BhZ2F0ZTogJ2Vycm9yTWVzc2FnZScgfSxcbiAgX2Vycm9yVHlwZTogeyBuYW1lOiAnX2Vycm9yVHlwZScsIHByb3BhZ2F0ZTogJ2Vycm9yVHlwZScgfSxcbiAgX2RlZmF1bHRWYWx1ZTogeyBuYW1lOiAnX2RlZmF1bHRWYWx1ZScsIHByb3BhZ2F0ZTogJ2RlZmF1bHRWYWx1ZScgfSxcbiAgX2RlZmF1bHRFZGl0YWJsZTogeyBuYW1lOiAnX2RlZmF1bHRFZGl0YWJsZScsIHByb3BhZ2F0ZTogJ2RlZmF1bHRFZGl0YWJsZScgfSxcbiAgX2ZpZWxkQWxpZ25tZW50OiB7IG5hbWU6ICdfZmllbGRBbGlnbm1lbnQnLCBwcm9wYWdhdGU6ICdhbGlnbm1lbnQnIH0sXG4gIF9maWVsZENvZGU6IHsgbmFtZTogJ19maWVsZENvZGUnLCBwcm9wYWdhdGU6ICdjb2RlJyB9LFxuICBfZmllbGRJbmZvOiB7IG5hbWU6ICdfZmllbGRJbmZvJywgcHJvcGFnYXRlOiAnaW5mbycgfSxcbiAgX2ZpZWxkUmVxdWlyZWQ6IHsgbmFtZTogJ19maWVsZFJlcXVpcmVkJywgcHJvcGFnYXRlOiAncmVxdWlyZWQnIH0sXG4gIF9maWVsZFRpdGxlOiB7IG5hbWU6ICdfZmllbGRUaXRsZScsIHByb3BhZ2F0ZTogJ3RpdGxlJyB9LFxuICBfZmllbGRUeXBlOiB7IG5hbWU6ICdfZmllbGRUeXBlJywgcHJvcGFnYXRlOiAndHlwZScgfSxcbiAgX2ZpZWxkRm9ybWF0OiB7IG5hbWU6ICdfZmllbGRGb3JtYXQnLCBwcm9wYWdhdGU6ICdmb3JtYXQnIH0sXG4gIF9maWVsZE9wdGlvbnM6IHsgbmFtZTogJ19maWVsZE9wdGlvbnMnLCBwcm9wYWdhdGU6ICdvcHRpb25zJyB9LFxuICBfZm9jdXM6IHsgbmFtZTogJ19mb2N1cycsIHByb3BhZ2F0ZTogJ2ZvY3VzJyB9LFxuICBfaGFzQ2hhbmdlZDogeyBuYW1lOiAnX2hhc0NoYW5nZWQnLCBwcm9wYWdhdGU6ICdoYXNDaGFuZ2VkJyB9LFxuICBfaW50cmluc2ljRXJyb3JNZXNzYWdlOiB7IG5hbWU6ICdfaW50cmluc2ljRXJyb3JNZXNzYWdlJywgcHJvcGFnYXRlOiBudWxsIH0sXG4gIF9tYXhMZW5ndGg6IHsgbmFtZTogJ19tYXhMZW5ndGgnLCBwcm9wYWdhdGU6ICdtYXhMZW5ndGgnIH0sXG4gIF9tYXhWYWx1ZTogeyBuYW1lOiAnX21heFZhbHVlJywgcHJvcGFnYXRlOiAnbWF4VmFsdWUnIH0sXG4gIF9taW5MZW5ndGg6IHsgbmFtZTogJ19taW5MZW5ndGgnLCBwcm9wYWdhdGU6ICdtaW5MZW5ndGgnIH0sXG4gIF9taW5WYWx1ZTogeyBuYW1lOiAnX21pblZhbHVlJywgcHJvcGFnYXRlOiAnbWluVmFsdWUnIH0sXG4gIF9vblZhbGlkYXRpb246IHsgbmFtZTogJ19vblZhbGlkYXRpb24nLCBwcm9wYWdhdGU6ICdvblZhbGlkYXRpb24nIH0sXG4gIF9vdXRwdXRPbmx5OiB7IG5hbWU6ICdfb3V0cHV0T25seScsIHByb3BhZ2F0ZTogJ291dHB1dE9ubHknIH0sXG4gIF90b29sdGlwVGV4dDogeyBuYW1lOiAnX3Rvb2x0aXBUZXh0JywgcHJvcGFnYXRlOiAndG9vbHRpcCcgfSxcbiAgX3ZhbGlkYXRlT25TZXJ2ZXI6IHsgbmFtZTogJ192YWxpZGF0ZU9uU2VydmVyJywgcHJvcGFnYXRlOiAndmFsaWRhdGVPblNlcnZlcicgfSxcbiAgX3ZhbHVlOiB7IG5hbWU6ICdfdmFsdWUnLCBwcm9wYWdhdGU6ICd2YWx1ZScgfSxcbiAgX3Zpc2libGVMYWJlbDogeyBuYW1lOiAnX3Zpc2libGVMYWJlbCcsIHByb3BhZ2F0ZTogJ3Zpc2libGVMYWJlbCcgfSxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV0YWlsRXZlbnQge1xuICBjb2RlOiBzdHJpbmc7XG4gIGRldGFpbDogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkT3B0aW9uIHtcbiAgZmllbGRPcHRpb25WYWx1ZTogc3RyaW5nO1xuICBmaWVsZE9wdGlvbklkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBGaWVsZERlc2NyaXB0b3IgZXh0ZW5kcyBGb3JtRWxlbWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRpb25GaW5pc2ggPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRpb25QYXJ0aWFsID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXRhaWxSZXF1ZXN0ID0gbmV3IFN1YmplY3Q8RGV0YWlsRXZlbnQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2F0dHJpYnV0ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBwcml2YXRlIF9lcnJvclR5cGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9lcnJvckNvZGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9lcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWVsZENvZGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9pbnRyaW5zaWNFcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9taW5WYWx1ZTogYW55O1xuICBwcml2YXRlIF9tYXhWYWx1ZTogYW55O1xuICBwcml2YXRlIF9tYXhMZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX21pbkxlbmd0aDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb25WYWxpZGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbGlkYXRlT25TZXJ2ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfdmlzaWJsZUxhYmVsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY2FwdHVyZVR5cGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9kZWZhdWx0VmFsdWU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9kZWZhdWx0RWRpdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZXh0ZXJuYWxWYWx1ZTogYW55O1xuICBwcml2YXRlIF9maWVsZEFsaWdubWVudDogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX2ZpZWxkSW5mbzogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX2ZpZWxkUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZmllbGRUaXRsZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX2ZpZWxkVHlwZTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX2ZpZWxkRm9ybWF0OiBSZWdFeHAgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZmllbGRPcHRpb25zOiBGaWVsZE9wdGlvbltdIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2hhc0NoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3V0cHV0T25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF90b29sdGlwVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoaW5wdXRGaWVsZFJlY2VpdmVkLCBmb3JtQ29uZmlnKSB7XG4gICAgc3VwZXIoaW5wdXRGaWVsZFJlY2VpdmVkLCBmb3JtQ29uZmlnKTtcbiAgICB0aGlzLmVsZW1lbnRUeXBlID0gZWxlbWVudFR5cGVzLmZpZWxkO1xuICAgIGNvbnN0IGZsZCA9IChpbnB1dEZpZWxkUmVjZWl2ZWQpID8gaW5wdXRGaWVsZFJlY2VpdmVkIDoge307XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLl9maWVsZENvZGUsIGZsZC5maWVsZENvZGUpO1xuICAgIHRoaXMudGl0bGUgPSBmbGQuZmllbGRUaXRsZSA/PyB0aGlzLl9maWVsZENvZGU7XG4gICAgdGhpcy50eXBlID0gZmxkLmZpZWxkVHlwZUNvZGU7XG4gICAgdGhpcy5jYXB0dXJlVHlwZSA9IGZsZC5jYXB0dXJlVHlwZSA/PyBERUZBVUxUX0NBUFRVUkVfVFlQRTtcblxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IGZsZC5kZWZhdWx0VmFsdWUgPz8gbnVsbDtcbiAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYm9vbGVhbikge1xuICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWUgPz8gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0VHlwZUFsaWdubWVudCA9ICh0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5fZmllbGRUeXBlXSAhPSBudWxsKVxuICAgICAgPyB0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5fZmllbGRUeXBlXVsndGV4dC1hbGlnbiddIDogREVGQVVMVF9BTElHTk1FTlQ7XG4gICAgY29uc3QgZmllbGRBbGlnbm1lbnQgPSAoZmxkLmFsaWdubWVudCAhPSBudWxsKSA/IGZsZC5hbGlnbm1lbnQudG9Mb3dlckNhc2UoKSA6IGRlZmF1bHRUeXBlQWxpZ25tZW50O1xuICAgIHRoaXMuYWxpZ25tZW50ID0gZmllbGRBbGlnbm1lbnQ7XG4gICAgdGhpcy5pbmZvID0gZmxkLmluZm8gfHwgJyc7XG4gICAgbGV0IGZpZWxkRm9ybWF0O1xuICAgIHRyeSB7XG4gICAgICBmaWVsZEZvcm1hdCA9IChmbGQuZm9ybWF0KSA/IG5ldyBSZWdFeHAoZmxkLmZvcm1hdCkgOiBudWxsO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGZpZWxkRm9ybWF0ID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5mb3JtYXQgPSBmaWVsZEZvcm1hdDtcbiAgICB0aGlzLnZhbGlkYXRlT25TZXJ2ZXIgPSBmbGQuc2VydmVyQWN0aW9uID8/IGZhbHNlO1xuICAgIHRoaXMudG9vbHRpcCA9IGZsZC50b29sdGlwIHx8ICcnO1xuICAgIHRoaXMuZGVmYXVsdEVkaXRhYmxlID0gdGhpcy5lbmFibGVkO1xuICAgIHRoaXMucmVxdWlyZWQgPSBmbGQucmVxdWlyZWQgPz8gZmFsc2U7XG4gICAgdGhpcy5vdXRwdXRPbmx5ID0gZmxkLm91dHB1dE9ubHkgPz8gZmFsc2U7XG4gICAgdGhpcy5tYXhMZW5ndGggPSBmbGQubWF4TGVuZ3RoID8/ICh0aGlzLl9jYXB0dXJlVHlwZSA9PT0gJ1RFWFRBUkVBJyA/IEJJR19NQVhfTEVOR1RIIDogU1REX01BWF9MRU5HVEgpO1xuICAgIHRoaXMuaW50cmluc2ljRXJyb3JNZXNzYWdlID0gdGhpcy5fZm9ybUNvbmZpZz8uZmllbGRWYWxpZGF0aW9ucz8uW3RoaXMuX2ZpZWxkVHlwZV0/Lm1lc3NhZ2VcbiAgICAgID8/IHRoaXMuX2Zvcm1Db25maWc/LmZpZWxkVmFsaWRhdGlvbnM/LkRFRkFVTFQ/Lm1lc3NhZ2UgPz8gJyc7XG5cbiAgICB0aGlzLnNldEVycm9yKGZsZC5lcnJvckNvZGUsIGZsZC5lcnJvck1lc3NhZ2UsIGZsZC5lcnJvclR5cGUgPz8gREVGQVVMVF9FUlJPUl9UWVBFKTtcbiAgICB0aGlzLnNldEVkaXRhYmxlKGZsZC5lZGl0YWJsZSA/PyB0cnVlKTtcbiAgICB0aGlzLnZpc2libGVMYWJlbCA9IGZsZC52aXNpYmxlTGFiZWwgPz8gdHJ1ZTtcbiAgICB0aGlzLnNldFZpc2liaWxpdHkoZmxkLnZpc2libGUpO1xuICAgIHRoaXMub3B0aW9ucyA9IGZsZC5maWVsZE9wdGlvbnM7XG4gICAgdGhpcy5fc2V0VmFsdWUoZmxkLmZpZWxkVmFsdWUgPz8gdGhpcy5fZGVmYXVsdFZhbHVlID8/ICcnKTtcbiAgfVxuXG4gIGdldCBhbGlnbm1lbnQoKSB7IHJldHVybiB0aGlzLl9maWVsZEFsaWdubWVudDsgfVxuICBzZXQgYWxpZ25tZW50KGFsaWdubWVudCkgeyB0aGlzLnNldEF0dHIoYXR0cnMuX2ZpZWxkQWxpZ25tZW50LCBhbGlnbm1lbnQpOyB9XG4gIGdldCBhdHRyaWJ1dGVDaGFuZ2UoKSB7IHJldHVybiB0aGlzLl9hdHRyaWJ1dGVDaGFuZ2U7IH1cbiAgZ2V0IGJhY2tlbmQoKSB7IHJldHVybiB0aGlzLl92YWxpZGF0ZU9uU2VydmVyOyB9XG5cbiAgZ2V0IGNhcHR1cmVUeXBlKCkgeyByZXR1cm4gdGhpcy5fY2FwdHVyZVR5cGU7IH1cbiAgc2V0IGNhcHR1cmVUeXBlKGNhcHR1cmVUeXBlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fY2FwdHVyZVR5cGUsIGNhcHR1cmVUeXBlKTsgfVxuICBnZXQgY29kZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkQ29kZTsgfVxuICBnZXQgZmllbGRDb2RlKCkgeyByZXR1cm4gdGhpcy5fZmllbGRDb2RlOyB9XG4gIGdldCBkZWZhdWx0VmFsdWUoKSB7IHJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWU7IH1cbiAgc2V0IGRlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9kZWZhdWx0VmFsdWUsIGRlZmF1bHRWYWx1ZSk7IH1cbiAgZ2V0IGRlZmF1bHRFZGl0YWJsZSgpIHsgcmV0dXJuIHRoaXMuX2RlZmF1bHRFZGl0YWJsZTsgfVxuICBzZXQgZGVmYXVsdEVkaXRhYmxlKGVkaXRhYmxlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fZGVmYXVsdEVkaXRhYmxlLCBlZGl0YWJsZSk7IH1cbiAgZ2V0IGRldGFpbFJlcXVlc3QoKSB7IHJldHVybiB0aGlzLl9kZXRhaWxSZXF1ZXN0OyB9XG4gIGdldCBlZGl0aW9uRmluaXNoKCkgeyByZXR1cm4gdGhpcy5fZWRpdGlvbkZpbmlzaDsgfVxuICBnZXQgZWRpdGlvblBhcnRpYWwoKSB7IHJldHVybiB0aGlzLl9lZGl0aW9uUGFydGlhbDsgfVxuXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBmaWVsZEN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgaWYgKGZpZWxkQ3VycmVudFZhbHVlID09PSB1bmRlZmluZWQgfHwgZmllbGRDdXJyZW50VmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYXJyYXlcbiAgICAgICYmIEFycmF5LmlzQXJyYXkoZmllbGRDdXJyZW50VmFsdWUpICYmIGZpZWxkQ3VycmVudFZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMucGhvbmUpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShmaWVsZEN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoZmllbGRDdXJyZW50VmFsdWUubGVuZ3RoICE9PSAyIHx8ICFmaWVsZEN1cnJlbnRWYWx1ZVswXSB8fCAhZmllbGRDdXJyZW50VmFsdWVbMV0pIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgICByZXR1cm4gZmllbGRDdXJyZW50VmFsdWUgPT09ICcnO1xuICB9XG5cblxuXG4gIGdldCBlcnJvcigpIHsgcmV0dXJuIHsgdHlwZTogdGhpcy5fZXJyb3JUeXBlLCBjb2RlOiB0aGlzLl9lcnJvckNvZGUsIG1lc3NhZ2U6IHRoaXMuX2Vycm9yTWVzc2FnZSB9OyB9XG4gIHNldCBlcnJvcihlcnJvck9iaikgeyB0aGlzLnNldEVycm9yKGVycm9yT2JqLmNvZGUsIGVycm9yT2JqLm1lc3NhZ2UsIGVycm9yT2JqLnR5cGUgPz8gREVGQVVMVF9FUlJPUl9UWVBFKSB9XG4gIGdldCBlcnJvckNvZGUoKSB7IHJldHVybiB0aGlzLl9lcnJvckNvZGU7IH1cbiAgc2V0IGVycm9yQ29kZShjb2RlKSB7IHRoaXMuc2V0RXJyb3IoY29kZSwgdGhpcy5fZXJyb3JNZXNzYWdlKTsgfVxuICBnZXQgZXJyb3JNZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5fZXJyb3JNZXNzYWdlOyB9XG4gIHNldCBlcnJvck1lc3NhZ2UobXNnKSB7IHRoaXMuc2V0RXJyb3IodGhpcy5fZXJyb3JDb2RlLCBtc2cpOyB9XG4gIGdldCBlcnJvclR5cGUoKSB7IHJldHVybiB0aGlzLl9lcnJvclR5cGU7IH1cbiAgZ2V0IGV4dGVybmFsVmFsdWUoKSB7IHJldHVybiB0aGlzLl9leHRlcm5hbFZhbHVlOyB9XG4gIGdldCBmb3JtYXQoKSB7IHJldHVybiB0aGlzLl9maWVsZEZvcm1hdDsgfVxuICBzZXQgZm9ybWF0KGZvcm1hdCkgeyB0aGlzLnNldEF0dHIoYXR0cnMuX2ZpZWxkRm9ybWF0LCBmb3JtYXQpOyB9XG4gIGdldCBoYXNDaGFuZ2VkKCkgeyByZXR1cm4gdGhpcy5faGFzQ2hhbmdlZDsgfVxuICBzZXQgaGFzQ2hhbmdlZChoYXNDaGFuZ2VkKSB7IHRoaXMuc2V0QXR0cihhdHRycy5faGFzQ2hhbmdlZCwgaGFzQ2hhbmdlZCk7IH1cblxuICBnZXQgaW5mbygpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mbzsgfVxuICBzZXQgaW5mbyhuZXdJbmZvOiBzdHJpbmcpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9maWVsZEluZm8sIG5ld0luZm8pOyB9XG4gIHNldCBpbnRyaW5zaWNFcnJvck1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKSB7IHRoaXMuc2V0QXR0cihhdHRycy5faW50cmluc2ljRXJyb3JNZXNzYWdlLCBtZXNzYWdlKTsgfVxuICBnZXQgbWF4TGVuZ3RoKCkgeyByZXR1cm4gKHRoaXMuX21heExlbmd0aCA+IDApID8gdGhpcy5fbWF4TGVuZ3RoLnRvU3RyaW5nKCkgOiAnJzsgfVxuICBzZXQgbWF4TGVuZ3RoKHJlcXVpcmVkTWF4TGVuZ3RoOiBhbnkpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9tYXhMZW5ndGgsICtyZXF1aXJlZE1heExlbmd0aCk7IH1cbiAgZ2V0IG1heFZhbHVlKCkgeyByZXR1cm4gdGhpcy5fbWF4VmFsdWU7IH1cblxuICBzZXQgbWF4VmFsdWUoaW5wdXRNYXhWYWx1ZSkge1xuICAgIGxldCBtYXhWYWx1ZSA9IGlucHV0TWF4VmFsdWU7XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmRhdGUpIHtcbiAgICAgIG1heFZhbHVlID0gbmV3IERhdGUobWF4VmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuX21heFZhbHVlLCBtYXhWYWx1ZSk7XG4gIH1cblxuICBnZXQgbWluTGVuZ3RoKCkgeyByZXR1cm4gdGhpcy5fbWluTGVuZ3RoOyB9XG4gIHNldCBtaW5MZW5ndGgocmVxdWlyZWRNaW5MZW5ndGg6IG51bWJlcikgeyB0aGlzLnNldEF0dHIoYXR0cnMuX21pbkxlbmd0aCwgK3JlcXVpcmVkTWluTGVuZ3RoKTsgfVxuICBnZXQgbWluVmFsdWUoKSB7IHJldHVybiB0aGlzLl9taW5WYWx1ZTsgfVxuXG4gIHNldCBtaW5WYWx1ZShpbnB1dE1pblZhbHVlKSB7XG4gICAgbGV0IG1pblZhbHVlID0gaW5wdXRNaW5WYWx1ZTtcbiAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuZGF0ZSkge1xuICAgICAgbWluVmFsdWUgPSBuZXcgRGF0ZShtaW5WYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuc2V0QXR0cihhdHRycy5fbWluVmFsdWUsIG1pblZhbHVlKTtcbiAgfVxuXG4gIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fZmllbGRDb2RlOyB9XG5cbiAgZ2V0IG9wdGlvbnMoKTogRmllbGRPcHRpb25bXSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9maWVsZE9wdGlvbnM/Lm1hcChvcHRpb24gPT4ge1xuICAgICAgY29uc3Qgb3B0aW9uQ29weTogRmllbGRPcHRpb24gPSB7IC4uLm9wdGlvbiB9O1xuICAgICAgcmV0dXJuIG9wdGlvbkNvcHk7XG4gICAgfSkgPz8gbnVsbDtcbiAgfVxuXG4gIHNldCBvcHRpb25zKG5ld09wdGlvbnMpIHtcbiAgICBpZiAoKCF0aGlzLl9mb3JtQ29uZmlnLmNhcHR1cmVUeXBlc1dpdGhPcHRpb25zLmluY2x1ZGVzKHRoaXMuX2NhcHR1cmVUeXBlKSlcbiAgICAgIHx8IHR5cGVvZiBuZXdPcHRpb25zID09PSBVTkRFRklORUQgfHwgIW5ld09wdGlvbnNcbiAgICAgIHx8ICFBcnJheS5pc0FycmF5KG5ld09wdGlvbnMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBmaWVsZE9wdGlvbnMgPSBuZXdPcHRpb25zLm1hcCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgIGlmIChvcHRpb24udGV4dCAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi50ZXh0ICE9PSBudWxsXG4gICAgICAgICYmIG9wdGlvbi52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIG9wdGlvbi52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4geyBmaWVsZE9wdGlvblZhbHVlOiBvcHRpb24udGV4dCwgZmllbGRPcHRpb25JZDogb3B0aW9uLnZhbHVlIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gb3B0aW9uO1xuICAgIH0pO1xuICAgIGZpZWxkT3B0aW9ucyA9IChmaWVsZE9wdGlvbnMgJiYgQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbnMpXG4gICAgICAmJiBmaWVsZE9wdGlvbnMubGVuZ3RoID4gMCkgPyBmaWVsZE9wdGlvbnMgOiBbXTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuX2ZpZWxkT3B0aW9ucywgZmllbGRPcHRpb25zKTtcbiAgICBpZiAodGhpcy5fdmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5hcnJheSAmJiBBcnJheS5pc0FycmF5KHRoaXMuX3ZhbHVlKSkge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5fdmFsdWU/LmZpbHRlcihpdGVtID0+XG4gICAgICAgICAgdGhpcy5fZmllbGRPcHRpb25zPy5maW5kKG9wdCA9PiBvcHQuZmllbGRPcHRpb25JZCA9PT0gaXRlbSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLl92YWx1ZSwgZmllbGRWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2YWxJbk9wdGlvbnMgPSB0aGlzLl9maWVsZE9wdGlvbnM/LmZpbmQoaXRlbSA9PiBpdGVtLmZpZWxkT3B0aW9uSWQgPT09IHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgaWYgKCF2YWxJbk9wdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLl9zZXRWYWx1ZSgnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuX2ZpZWxkUmVxdWlyZWQgJiYgdGhpcy5fZmllbGRPcHRpb25zPy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuX3NldFZhbHVlKHRoaXMuX2ZpZWxkT3B0aW9ucz8uWzBdLmZpZWxkT3B0aW9uSWQpO1xuICAgICAgdGhpcy5ub3RpZnlFZGl0aW9uRmluaXNoKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvblRleHQoKSB7IHJldHVybiB0aGlzLl9maWVsZE9wdGlvbnM/LmZpbmQoaXRlbSA9PiBpdGVtLmZpZWxkT3B0aW9uSWQgPT09IHRoaXMuX3ZhbHVlKT8uZmllbGRPcHRpb25WYWx1ZSA/PyBudWxsOyB9XG4gIGdldCBvdXRwdXRPbmx5KCkgeyByZXR1cm4gdGhpcy5fb3V0cHV0T25seTsgfVxuICBzZXQgb3V0cHV0T25seShvdXRwdXRPbmx5KSB7IHRoaXMuc2V0QXR0cihhdHRycy5fb3V0cHV0T25seSwgb3V0cHV0T25seSk7IH1cbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZmllbGRSZXF1aXJlZDsgfVxuICBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9maWVsZFJlcXVpcmVkLCByZXF1aXJlZCA/PyBmYWxzZSk7IH1cbiAgZ2V0IHRpdGxlKCkgeyByZXR1cm4gdGhpcy5fZmllbGRUaXRsZTsgfVxuICBzZXQgdGl0bGUodGl0bGUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9maWVsZFRpdGxlLCB0aXRsZS50b1N0cmluZygpKTsgfVxuICBnZXQgdG9vbHRpcCgpIHsgcmV0dXJuIHRoaXMuX3Rvb2x0aXBUZXh0OyB9XG4gIHNldCB0b29sdGlwKHRvb2x0aXApIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl90b29sdGlwVGV4dCwgdG9vbHRpcCk7IH1cbiAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl9maWVsZFR5cGU7IH1cbiAgc2V0IHR5cGUoZmllbGRUeXBlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fZmllbGRUeXBlLCBmaWVsZFR5cGUpOyB9XG4gIGdldCB2YWxpZGF0aW5nKCkgeyByZXR1cm4gdGhpcy5fb25WYWxpZGF0aW9uOyB9XG4gIHNldCB2YWxpZGF0aW5nKGlzVmFsaWRhdGluZzogYm9vbGVhbikgeyB0aGlzLnNldEF0dHIoYXR0cnMuX29uVmFsaWRhdGlvbiwgaXNWYWxpZGF0aW5nKTsgfVxuICBnZXQgdmFsdWUoKSB7XG4gICAgcmV0dXJuICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5ib29sZWFuXG4gICAgICB8fCB0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5jaGVjaykgPyB5bih0aGlzLl92YWx1ZSkgOiB0aGlzLl92YWx1ZTtcbiAgfVxuICBnZXQgdmFsaWRhdGVPblNlcnZlcigpIHsgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT25TZXJ2ZXI7IH1cbiAgc2V0IHZhbGlkYXRlT25TZXJ2ZXIodmFsaWRhdGVPblNlcnZlcikgeyB0aGlzLnNldEF0dHIoYXR0cnMuX3ZhbGlkYXRlT25TZXJ2ZXIsIHZhbGlkYXRlT25TZXJ2ZXIpOyB9XG4gIGdldCBzZXJ2ZXJBY3Rpb24oKSB7IHJldHVybiB0aGlzLl92YWxpZGF0ZU9uU2VydmVyOyB9XG4gIHNldCBzZXJ2ZXJBY3Rpb24odmFsaWRhdGVPblNlcnZlcjogYm9vbGVhbikgeyB0aGlzLnZhbGlkYXRlT25TZXJ2ZXIgPSB2YWxpZGF0ZU9uU2VydmVyOyB9XG5cbiAgc2V0IHZhbHVlKG5ld1ZhbHVlKSB7IHRoaXMuX3NldFZhbHVlKG5ld1ZhbHVlKTsgfVxuICBnZXQgdmlzaWJsZUxhYmVsKCkgeyByZXR1cm4gdGhpcy5fdmlzaWJsZUxhYmVsOyB9XG4gIHNldCB2aXNpYmxlTGFiZWwodmlzaWJsZUxhYmVsOiBib29sZWFuKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fdmlzaWJsZUxhYmVsLCB2aXNpYmxlTGFiZWwpOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBvcHRpb25zXG4gICAqL1xuICBnZXQgZmllbGRPcHRpb25zKCkgeyByZXR1cm4gdGhpcy5fZmllbGRPcHRpb25zOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBvcHRpb25zXG4gICAqL1xuICBzZXQgZmllbGRPcHRpb25zKG9wdGlvbnMpIHsgdGhpcy5vcHRpb25zID0gb3B0aW9uczsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgdmFsdWVcbiAgICovXG4gIGdldCBmaWVsZFZhbHVlKCkgeyByZXR1cm4gdGhpcy52YWx1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgaGFzQ2hhbmdlZFxuICAgKi9cbiAgY2hhbmdlZChoYXNDaGFuZ2VkID0gdHJ1ZSkgeyB0aGlzLmhhc0NoYW5nZWQgPSBoYXNDaGFuZ2VkOyB9XG5cbiAgY2xlYW4oKSB7IHRoaXMuX3NldFZhbHVlKHRoaXMuX2RlZmF1bHRWYWx1ZSB8fCAnJyk7IHRoaXMucmVzZXRFcnJvcigpOyB9XG4gIGZvY3VzKCkgeyB0aGlzLnNldEF0dHIoYXR0cnMuX2ZvY3VzLCB0cnVlKTsgfVxuICBnZXRFcnJvckNvZGUoKSB7IHJldHVybiB0aGlzLmVycm9yLmNvZGU7IH1cbiAgc2V0RXJyb3JDb2RlKGNvZGUpIHsgdGhpcy5zZXRFcnJvcihjb2RlLCB0aGlzLl9lcnJvck1lc3NhZ2UpOyB9XG4gIGdldEVycm9yTWVzc2FnZSgpIHsgcmV0dXJuIHRoaXMuZXJyb3IubWVzc2FnZTsgfVxuICBzZXRFcnJvck1lc3NhZ2UobXNnKSB7IHRoaXMuc2V0RXJyb3IodGhpcy5fZXJyb3JDb2RlLCBtc2cpOyB9XG4gIGdldFJlcXVpcmVkKCkgeyByZXR1cm4gdGhpcy5yZXF1aXJlZDsgfVxuICBoYXNFcnJvcigpIHsgcmV0dXJuIHRoaXMuX2Vycm9yQ29kZSAhPT0gTk9fRVJST1I7IH1cbiAgaGlkZUxhYmVsKCkgeyB0aGlzLnZpc2libGVMYWJlbCA9IGZhbHNlOyB9XG4gIHJlc2V0RXJyb3IoKSB7ICh0aGlzLl9lcnJvckNvZGUgIT09IE5PX0VSUk9SKSAmJiB0aGlzLnNldEVycm9yKE5PX0VSUk9SLCBudWxsKTsgfVxuXG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuID0gdHJ1ZSkgeyAoZWRpdGFibGUpID8gdGhpcy5lbmFibGUoKSA6IHRoaXMuZGlzYWJsZSgpOyB9XG4gIHNldFZhbHVlKG5ld1ZhbHVlLCB3aWRnZXRVcGRhdGUgPSB0cnVlKSB7IHRoaXMuX3NldFZhbHVlKG5ld1ZhbHVlLCB3aWRnZXRVcGRhdGUpOyB9XG4gIHNob3dMYWJlbCgpIHsgdGhpcy52aXNpYmxlTGFiZWwgPSB0cnVlOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB0aXRsZVxuICAgKi9cbiAgc2V0TGFiZWwobGFiZWwpIHsgdGhpcy50aXRsZSA9IGxhYmVsOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSByZXF1aXJlZFxuICAgKi9cbiAgc2V0UmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHsgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBjaGFuZ2VkXG4gICAqL1xuICBzZXRDaGFuZ2VkKGhhc0NoYW5nZWQ6IGJvb2xlYW4pIHsgdGhpcy5jaGFuZ2VkKGhhc0NoYW5nZWQpOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB2YWx1ZVxuICAgKi9cbiAgZ2V0VmFsdWUoKTogYW55IHsgcmV0dXJuIHRoaXMudmFsdWU7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGVtcHR5XG4gICAqL1xuICBpc0VtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbXB0eSB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBlcnJvclxuICAgKi9cbiAgZ2V0RXJyb3IoKSB7IHJldHVybiB0aGlzLmVycm9yOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBvcHRpb25UZXh0XG4gICAqL1xuICBnZXRPcHRpb25UZXh0KCkgeyByZXR1cm4gdGhpcy5vcHRpb25UZXh0OyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBvcHRpb25zXG4gICAqL1xuICBnZXRGaWVsZE9wdGlvbnMoKSB7IHJldHVybiB0aGlzLm9wdGlvbnM7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9wdGlvbnNcbiAgICovXG4gIHNldEZpZWxkT3B0aW9ucyhuZXdPcHRpb25zKSB7IHJldHVybiB0aGlzLm9wdGlvbnMgPSBuZXdPcHRpb25zOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBpbnRyaW5zaWNFcnJvck1lc3NhZ2VcbiAgICovXG4gIHNldEludHJpbnNpY0Vycm9yTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHsgdGhpcy5pbnRyaW5zaWNFcnJvck1lc3NhZ2UgPSBtZXNzYWdlOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBtYXhWYWx1ZVxuICAgKi9cbiAgc2V0TWF4VmFsdWUoaW5wdXRNYXhWYWx1ZSkgeyB0aGlzLm1heFZhbHVlID0gaW5wdXRNYXhWYWx1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgbWluVmFsdWVcbiAgICovXG4gIHNldE1pblZhbHVlKGlucHV0TWluVmFsdWUpIHsgdGhpcy5taW5WYWx1ZSA9IGlucHV0TWluVmFsdWU7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHNob3dMYWJlbFxuICAgKi9cbiAgc2V0VmlzaWJsZUxhYmVsKHZpc2libGVMYWJlbDogYm9vbGVhbikgeyB0aGlzLnZpc2libGVMYWJlbCA9IHZpc2libGVMYWJlbDsgfVxuXG5cbiAgbm90aWZ5RWRpdGlvblBhcnRpYWwoKSB7XG4gICAgdGhpcy5yZXNldEVycm9yKCk7XG4gICAgdGhpcy5fZWRpdGlvblBhcnRpYWwubmV4dCh7IGNvZGU6IHRoaXMuX2ZpZWxkQ29kZSwgaW50cmluc2ljVmFsaWRhdGlvbjogdHJ1ZSB9KTtcbiAgfVxuXG4gIG5vdGlmeUVkaXRpb25GaW5pc2goKSB7XG4gICAgY29uc3QgZmllbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5yZXNldEVycm9yKCk7XG4gICAgY29uc3QgdmFsaWRhdGlvbkNvbmZpZyA9IHRoaXMuX2Zvcm1Db25maWcuZmllbGRWYWxpZGF0aW9ucz8uW3RoaXMuX2ZpZWxkVHlwZV0gPz8ge307XG4gICAgY29uc3QgeyB0eXBlLCB2YWxpZGF0aW9uIH0gPSB2YWxpZGF0aW9uQ29uZmlnO1xuICAgIGxldCBtZXNzYWdlID0gdmFsaWRhdGlvbkNvbmZpZz8ubWVzc2FnZTtcbiAgICBsZXQgaW50cmluc2ljVmFsaWRhdGlvbiA9IHRydWU7XG4gICAgaWYgKGZpZWxkVmFsdWUgJiYgKHZhbGlkYXRpb24gfHwgdGhpcy5fZmllbGRGb3JtYXQpKSB7XG4gICAgICBpZiAodHlwZSA9PT0gJ3JlZ2V4cCcpIHtcbiAgICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9ICh2YWxpZGF0aW9uPy50ZXN0KGZpZWxkVmFsdWUpID8/IHRydWUpXG4gICAgICAgICAgJiYgKHRoaXMuX2ZpZWxkRm9ybWF0Py50ZXN0KGZpZWxkVmFsdWUpID8/IHRydWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB2YWxpZGF0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHsgdmFsaWQsIG1lc3NhZ2U6IGN1c3RvbU1lc3NhZ2UgfSA9IHZhbGlkYXRpb24oZmllbGRWYWx1ZSwgdGhpcyk7XG4gICAgICAgIGludHJpbnNpY1ZhbGlkYXRpb24gPSB2YWxpZDtcbiAgICAgICAgbWVzc2FnZSA9IGN1c3RvbU1lc3NhZ2U7XG4gICAgICB9XG4gICAgICBpZiAoIWludHJpbnNpY1ZhbGlkYXRpb24pIHtcbiAgICAgICAgdGhpcy5zZXRFcnJvcignOTknLCBtZXNzYWdlID8/IHRoaXMuX2ludHJpbnNpY0Vycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpbnRyaW5zaWNWYWxpZGF0aW9uICYmIGZpZWxkVmFsdWUgJiYgdGhpcy5fbWluVmFsdWUgJiYgZmllbGRWYWx1ZSA8IHRoaXMuX21pblZhbHVlKSB7XG4gICAgICBpbnRyaW5zaWNWYWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnNldEVycm9yKCc5OScsICdDYW1wbyBjb24gdmFsb3IgaW5mZXJpb3IgYWwgbcOtbmltbycpO1xuICAgIH1cbiAgICBpZiAoaW50cmluc2ljVmFsaWRhdGlvbiAmJiBmaWVsZFZhbHVlICYmIHRoaXMuX21heFZhbHVlICYmIGZpZWxkVmFsdWUgPiB0aGlzLl9tYXhWYWx1ZSkge1xuICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRFcnJvcignOTknLCAnQ2FtcG8gY29uIHZhbG9yIHN1cGVyaW9yIGFsIG3DoXhpbW8nKTtcbiAgICB9XG4gICAgaWYgKGludHJpbnNpY1ZhbGlkYXRpb24gJiYgZmllbGRWYWx1ZSAmJiB0eXBlb2YgZmllbGRWYWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICYmIHRoaXMuX21pbkxlbmd0aCAmJiBmaWVsZFZhbHVlPy5sZW5ndGggPCB0aGlzLl9taW5MZW5ndGgpIHtcbiAgICAgIGludHJpbnNpY1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0RXJyb3IoJzk5JywgYExvbmdpdHVkIGRlICR7dGhpcy5fZmllbGRUaXRsZX0gZGViZSBzZXIgZGUgYWwgbWVub3MgJHt0aGlzLl9taW5MZW5ndGh9YCk7XG4gICAgfVxuICAgIHRoaXMuX2VkaXRpb25GaW5pc2gubmV4dCh7IGNvZGU6IHRoaXMuX2ZpZWxkQ29kZSwgaW50cmluc2ljVmFsaWRhdGlvbiB9KTtcbiAgfVxuXG4gIG5vdGlmeUVkaXRpb25EZXRhaWxSZXF1ZXN0KGRldGFpbDogYW55KSB7XG4gICAgY29uc3QgZGV0YWlsRXZlbnQ6IERldGFpbEV2ZW50ID0geyBjb2RlOiB0aGlzLl9maWVsZENvZGUsIGRldGFpbCB9O1xuICAgIHRoaXMuX2RldGFpbFJlcXVlc3QubmV4dChkZXRhaWxFdmVudCk7XG4gIH1cblxuICBzZXRBdHRyKGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHsgbmFtZTogYXR0ck5hbWUsIHByb3BhZ2F0ZTogbmFtZSB9ID0gYXR0cjtcbiAgICB0aGlzW2F0dHJOYW1lXSA9IHZhbHVlO1xuICAgIG5hbWUgJiYgdGhpcy5fYXR0cmlidXRlQ2hhbmdlLm5leHQoeyBuYW1lLCB2YWx1ZSB9KTtcbiAgfVxuXG4gIHNldEVycm9yKGNvZGUsIG1lc3NhZ2UsIHR5cGUgPSBERUZBVUxUX0VSUk9SX1RZUEUpIHtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuX2Vycm9yQ29kZSwgY29kZSA/PyBOT19FUlJPUik7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLl9lcnJvclR5cGUsICh0aGlzLl9lcnJvckNvZGUgPT09IE5PX0VSUk9SKSA/ICcnIDogdHlwZSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLl9lcnJvck1lc3NhZ2UsIG1lc3NhZ2UgPz8gJycpO1xuICB9XG5cbiAgdXBkYXRlRnJvbVNlcnZlcihmbGQpIHtcbiAgICBjb25zdCBmaWVsZEtleXMgPSBPYmplY3Qua2V5cyhmbGQpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWVsZEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IGZpZWxkS2V5c1tpbmRleF07XG4gICAgICBjb25zdCBhdHRyVmFsdWUgPSBmbGRbYXR0ck5hbWVdO1xuICAgICAgaWYgKGRpcmVjdENoYW5nZXMuaW5jbHVkZXMoYXR0ck5hbWUpKSB7XG4gICAgICAgIHRoaXNbYXR0ck5hbWVdID0gYXR0clZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnbGFiZWwnKSAmJiAodGhpcy50aXRsZSA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2xhYmVsVmlzaWJsZScpICYmICh0aGlzLnZpc2libGVMYWJlbCA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2VkaXRhYmxlJykgJiYgdGhpcy5zZXRFZGl0YWJsZShhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICd2aXNpYmxlJykgJiYgdGhpcy5zZXRWaXNpYmlsaXR5KGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ3ZhbHVlJykgJiYgKHRoaXMuX3NldFZhbHVlKGF0dHJWYWx1ZSkgJiYgKHRoaXMuaGFzQ2hhbmdlZCA9IGZhbHNlKSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2ZpZWxkVmFsdWUnKSAmJiAodGhpcy5fc2V0VmFsdWUoYXR0clZhbHVlKSAmJiAodGhpcy5oYXNDaGFuZ2VkID0gZmFsc2UpKTtcblxuICAgICAgICAoYXR0ck5hbWUgPT09ICdmaWVsZE9wdGlvbnMnKSAmJiAodGhpcy5vcHRpb25zID0gYXR0clZhbHVlKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnZmllbGRUaXRsZScpICYmICh0aGlzLnRpdGxlID0gYXR0clZhbHVlKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnZmllbGRUeXBlQ29kZScpICYmICh0aGlzLnR5cGUgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdmaWVsZFR5cGUnKSAmJiAodGhpcy50eXBlID0gYXR0clZhbHVlKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAndG9vbHRpcFRleHQnKSAmJiAodGhpcy50b29sdGlwID0gYXR0clZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRWYWx1ZShuZXdWYWx1ZSwgd2lkZ2V0VXBkYXRlID0gdHJ1ZSkge1xuICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgPT09IFVOREVGSU5FRCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChuZXdWYWx1ZSA9PT0gbnVsbCAmJiB0aGlzLnJlcXVpcmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgbGV0IG5ld0ZpbmFsVmFsdWU7XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmJvb2xlYW5cbiAgICAgIHx8IHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmNoZWNrKSB7XG4gICAgICBuZXdGaW5hbFZhbHVlID0geW4obmV3VmFsdWUpID8/IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYXJyYXlcbiAgICAgIHx8IHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLm1hcCkge1xuICAgICAgaWYgKG5ld1ZhbHVlID09PSBudWxsIHx8IG5ld1ZhbHVlID09PSAnJykge1xuICAgICAgICBuZXdGaW5hbFZhbHVlID0gW107XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobmV3VmFsdWUpKSB7XG4gICAgICAgIG5ld0ZpbmFsVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0ZpbmFsVmFsdWUgPSBuZXdWYWx1ZS50b1N0cmluZygpLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0ZpbmFsVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3ZhbHVlICE9PSBuZXdGaW5hbFZhbHVlKSB7XG4gICAgICB0aGlzLmhhc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgaWYgKHdpZGdldFVwZGF0ZSkge1xuICAgICAgICB0aGlzLnNldEF0dHIoYXR0cnMuX3ZhbHVlLCBuZXdGaW5hbFZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbmV3RmluYWxWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG5cbiAgfVxufVxuIl19
451
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jbGFzc2VzL2Zvcm1zL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFFOUIsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUM7QUFDckMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUM7QUFFakMsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUUzQixNQUFNLGFBQWEsR0FBRztJQUNwQixpQkFBaUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVc7SUFDcEcsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTTtJQUNsRyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGNBQWM7SUFDcEcsU0FBUztDQUNWLENBQUM7QUFFRixNQUFNLEtBQUssR0FBRztJQUNaLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTtJQUNoRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUs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QUU7Z0JBQ3hDLGFBQWEsR0FBRyxFQUFFLENBQUM7YUFDcEI7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNsQyxhQUFhLEdBQUcsUUFBUSxDQUFDO2FBQzFCO2lCQUFNO2dCQUNMLGFBQWEsR0FBRyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0Y7YUFBTTtZQUNMLGFBQWEsR0FBRyxRQUFRLENBQUM7U0FDMUI7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssYUFBYSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksWUFBWSxFQUFFO2dCQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7YUFDN0I7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBRWQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHluIGZyb20gJ3luJztcbmltcG9ydCB7IGVsZW1lbnRUeXBlcywgTk9fRVJST1IgfSBmcm9tICcuL2Zvcm0uY29uc3RhbnRzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcblxuY29uc3QgVU5ERUZJTkVEID0gJ3VuZGVmaW5lZCc7XG5cbmNvbnN0IERFRkFVTFRfRVJST1JfVFlQRSA9ICdlcnJvcic7XG5jb25zdCBERUZBVUxUX0NBUFRVUkVfVFlQRSA9ICdJTlBVVCc7XG5jb25zdCBERUZBVUxUX0FMSUdOTUVOVCA9ICdsZWZ0JztcblxuY29uc3QgU1REX01BWF9MRU5HVEggPSA1MDtcbmNvbnN0IEJJR19NQVhfTEVOR1RIID0gNTAwO1xuXG5jb25zdCBkaXJlY3RDaGFuZ2VzID0gW1xuICAnZGVmYXVsdEVkaXRhYmxlJywgJ2RlZmF1bHRWYWx1ZScsICdhbGlnbm1lbnQnLCAncmVxdWlyZWQnLCAnZXJyb3JDb2RlJywgJ2Vycm9yTWVzc2FnZScsICdlcnJvclR5cGUnLFxuICAndG9vbHRpcCcsICdpbmZvJywgJ2Zvcm1hdCcsICdpbnRyaW5zaWNFcnJvck1lc3NhZ2UnLCAnb3V0cHV0T25seScsICdjYXB0dXJlVHlwZScsICd0aXRsZScsICd0eXBlJyxcbiAgJ21heExlbmd0aCcsICdtYXhWYWx1ZScsICdtaW5MZW5ndGgnLCAnbWluVmFsdWUnLCAndmFsaWRhdGVPblNlcnZlcicsICdzZXJ2ZXJBY3Rpb24nLCAndmlzaWJsZUxhYmVsJyxcbiAgJ29wdGlvbnMnLFxuXTtcblxuY29uc3QgYXR0cnMgPSB7XG4gIF9jYXB0dXJlVHlwZTogeyBuYW1lOiAnX2NhcHR1cmVUeXBlJywgcHJvcGFnYXRlOiAnY2FwdHVyZVR5cGUnIH0sXG4gIF9lcnJvckNvZGU6IHsgbmFtZTogJ19lcnJvckNvZGUnLCBwcm9wYWdhdGU6ICdlcnJvckNvZGUnIH0sXG4gIF9lcnJvck1lc3NhZ2U6IHsgbmFtZTogJ19lcnJvck1lc3NhZ2UnLCBwcm9wYWdhdGU6ICdlcnJvck1lc3NhZ2UnIH0sXG4gIF9lcnJvclR5cGU6IHsgbmFtZTogJ19lcnJvclR5cGUnLCBwcm9wYWdhdGU6ICdlcnJvclR5cGUnIH0sXG4gIF9kZWZhdWx0VmFsdWU6IHsgbmFtZTogJ19kZWZhdWx0VmFsdWUnLCBwcm9wYWdhdGU6ICdkZWZhdWx0VmFsdWUnIH0sXG4gIF9kZWZhdWx0RWRpdGFibGU6IHsgbmFtZTogJ19kZWZhdWx0RWRpdGFibGUnLCBwcm9wYWdhdGU6ICdkZWZhdWx0RWRpdGFibGUnIH0sXG4gIF9maWVsZEFsaWdubWVudDogeyBuYW1lOiAnX2ZpZWxkQWxpZ25tZW50JywgcHJvcGFnYXRlOiAnYWxpZ25tZW50JyB9LFxuICBfZmllbGRDb2RlOiB7IG5hbWU6ICdfZmllbGRDb2RlJywgcHJvcGFnYXRlOiAnY29kZScgfSxcbiAgX2ZpZWxkSW5mbzogeyBuYW1lOiAnX2ZpZWxkSW5mbycsIHByb3BhZ2F0ZTogJ2luZm8nIH0sXG4gIF9maWVsZFJlcXVpcmVkOiB7IG5hbWU6ICdfZmllbGRSZXF1aXJlZCcsIHByb3BhZ2F0ZTogJ3JlcXVpcmVkJyB9LFxuICBfZmllbGRUaXRsZTogeyBuYW1lOiAnX2ZpZWxkVGl0bGUnLCBwcm9wYWdhdGU6ICd0aXRsZScgfSxcbiAgX2ZpZWxkVHlwZTogeyBuYW1lOiAnX2ZpZWxkVHlwZScsIHByb3BhZ2F0ZTogJ3R5cGUnIH0sXG4gIF9maWVsZEZvcm1hdDogeyBuYW1lOiAnX2ZpZWxkRm9ybWF0JywgcHJvcGFnYXRlOiAnZm9ybWF0JyB9LFxuICBfZmllbGRPcHRpb25zOiB7IG5hbWU6ICdfZmllbGRPcHRpb25zJywgcHJvcGFnYXRlOiAnb3B0aW9ucycgfSxcbiAgX2ZvY3VzOiB7IG5hbWU6ICdfZm9jdXMnLCBwcm9wYWdhdGU6ICdmb2N1cycgfSxcbiAgX2hhc0NoYW5nZWQ6IHsgbmFtZTogJ19oYXNDaGFuZ2VkJywgcHJvcGFnYXRlOiAnaGFzQ2hhbmdlZCcgfSxcbiAgX2ludHJpbnNpY0Vycm9yTWVzc2FnZTogeyBuYW1lOiAnX2ludHJpbnNpY0Vycm9yTWVzc2FnZScsIHByb3BhZ2F0ZTogbnVsbCB9LFxuICBfbWF4TGVuZ3RoOiB7IG5hbWU6ICdfbWF4TGVuZ3RoJywgcHJvcGFnYXRlOiAnbWF4TGVuZ3RoJyB9LFxuICBfbWF4VmFsdWU6IHsgbmFtZTogJ19tYXhWYWx1ZScsIHByb3BhZ2F0ZTogJ21heFZhbHVlJyB9LFxuICBfbWluTGVuZ3RoOiB7IG5hbWU6ICdfbWluTGVuZ3RoJywgcHJvcGFnYXRlOiAnbWluTGVuZ3RoJyB9LFxuICBfbWluVmFsdWU6IHsgbmFtZTogJ19taW5WYWx1ZScsIHByb3BhZ2F0ZTogJ21pblZhbHVlJyB9LFxuICBfb25WYWxpZGF0aW9uOiB7IG5hbWU6ICdfb25WYWxpZGF0aW9uJywgcHJvcGFnYXRlOiAnb25WYWxpZGF0aW9uJyB9LFxuICBfb3V0cHV0T25seTogeyBuYW1lOiAnX291dHB1dE9ubHknLCBwcm9wYWdhdGU6ICdvdXRwdXRPbmx5JyB9LFxuICBfdG9vbHRpcFRleHQ6IHsgbmFtZTogJ190b29sdGlwVGV4dCcsIHByb3BhZ2F0ZTogJ3Rvb2x0aXAnIH0sXG4gIF92YWxpZGF0ZU9uU2VydmVyOiB7IG5hbWU6ICdfdmFsaWRhdGVPblNlcnZlcicsIHByb3BhZ2F0ZTogJ3ZhbGlkYXRlT25TZXJ2ZXInIH0sXG4gIF92YWx1ZTogeyBuYW1lOiAnX3ZhbHVlJywgcHJvcGFnYXRlOiAndmFsdWUnIH0sXG4gIF92aXNpYmxlTGFiZWw6IHsgbmFtZTogJ192aXNpYmxlTGFiZWwnLCBwcm9wYWdhdGU6ICd2aXNpYmxlTGFiZWwnIH0sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIERldGFpbEV2ZW50IHtcbiAgY29kZTogc3RyaW5nO1xuICBkZXRhaWw6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZE9wdGlvbiB7XG4gIGZpZWxkT3B0aW9uVmFsdWU6IHN0cmluZztcbiAgZmllbGRPcHRpb25JZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRmllbGREZXNjcmlwdG9yIGV4dGVuZHMgRm9ybUVsZW1lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9lZGl0aW9uRmluaXNoID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lZGl0aW9uUGFydGlhbCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGV0YWlsUmVxdWVzdCA9IG5ldyBTdWJqZWN0PERldGFpbEV2ZW50PigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hdHRyaWJ1dGVDaGFuZ2UgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBfZXJyb3JUeXBlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZXJyb3JDb2RlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZmllbGRDb2RlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfaW50cmluc2ljRXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfbWluVmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfbWF4VmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfbWF4TGVuZ3RoOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIF9taW5MZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX2ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX29uVmFsaWRhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF92YWxpZGF0ZU9uU2VydmVyOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG4gIHByaXZhdGUgX3Zpc2libGVMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2NhcHR1cmVUeXBlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZGVmYXVsdFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfZGVmYXVsdEVkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2V4dGVybmFsVmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBfZmllbGRBbGlnbm1lbnQ6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWVsZEluZm86IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWVsZFJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpZWxkVGl0bGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWVsZFR5cGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9maWVsZEZvcm1hdDogUmVnRXhwIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2ZpZWxkT3B0aW9uczogRmllbGRPcHRpb25bXSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9oYXNDaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX291dHB1dE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdG9vbHRpcFRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKGlucHV0RmllbGRSZWNlaXZlZCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKGlucHV0RmllbGRSZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5lbGVtZW50VHlwZSA9IGVsZW1lbnRUeXBlcy5maWVsZDtcbiAgICBjb25zdCBmbGQgPSAoaW5wdXRGaWVsZFJlY2VpdmVkKSA/IGlucHV0RmllbGRSZWNlaXZlZCA6IHt9O1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5fZmllbGRDb2RlLCBmbGQuZmllbGRDb2RlKTtcbiAgICB0aGlzLnRpdGxlID0gZmxkLmZpZWxkVGl0bGUgPz8gdGhpcy5fZmllbGRDb2RlO1xuICAgIHRoaXMudHlwZSA9IGZsZC5maWVsZFR5cGVDb2RlO1xuICAgIHRoaXMuY2FwdHVyZVR5cGUgPSBmbGQuY2FwdHVyZVR5cGUgPz8gREVGQVVMVF9DQVBUVVJFX1RZUEU7XG5cbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBmbGQuZGVmYXVsdFZhbHVlID8/IG51bGw7XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmJvb2xlYW4pIHtcbiAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlID8/IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFR5cGVBbGlnbm1lbnQgPSAodGhpcy5fZm9ybUNvbmZpZy50YWJsZUZpZWxkU3R5bGVzW3RoaXMuX2ZpZWxkVHlwZV0gIT0gbnVsbClcbiAgICAgID8gdGhpcy5fZm9ybUNvbmZpZy50YWJsZUZpZWxkU3R5bGVzW3RoaXMuX2ZpZWxkVHlwZV1bJ3RleHQtYWxpZ24nXSA6IERFRkFVTFRfQUxJR05NRU5UO1xuICAgIGNvbnN0IGZpZWxkQWxpZ25tZW50ID0gKGZsZC5hbGlnbm1lbnQgIT0gbnVsbCkgPyBmbGQuYWxpZ25tZW50LnRvTG93ZXJDYXNlKCkgOiBkZWZhdWx0VHlwZUFsaWdubWVudDtcbiAgICB0aGlzLmFsaWdubWVudCA9IGZpZWxkQWxpZ25tZW50O1xuICAgIHRoaXMuaW5mbyA9IGZsZC5pbmZvIHx8ICcnO1xuICAgIGxldCBmaWVsZEZvcm1hdDtcbiAgICB0cnkge1xuICAgICAgZmllbGRGb3JtYXQgPSAoZmxkLmZvcm1hdCkgPyBuZXcgUmVnRXhwKGZsZC5mb3JtYXQpIDogbnVsbDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBmaWVsZEZvcm1hdCA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuZm9ybWF0ID0gZmllbGRGb3JtYXQ7XG4gICAgdGhpcy52YWxpZGF0ZU9uU2VydmVyID0gZmxkLnNlcnZlckFjdGlvbiA/PyBmYWxzZTtcbiAgICB0aGlzLnRvb2x0aXAgPSBmbGQudG9vbHRpcCB8fCAnJztcbiAgICB0aGlzLmRlZmF1bHRFZGl0YWJsZSA9IHRoaXMuZW5hYmxlZDtcbiAgICB0aGlzLnJlcXVpcmVkID0gZmxkLnJlcXVpcmVkID8/IGZhbHNlO1xuICAgIHRoaXMub3V0cHV0T25seSA9IGZsZC5vdXRwdXRPbmx5ID8/IGZhbHNlO1xuICAgIHRoaXMubWF4TGVuZ3RoID0gZmxkLm1heExlbmd0aCA/PyAodGhpcy5fY2FwdHVyZVR5cGUgPT09ICdURVhUQVJFQScgPyBCSUdfTUFYX0xFTkdUSCA6IFNURF9NQVhfTEVOR1RIKTtcbiAgICB0aGlzLmludHJpbnNpY0Vycm9yTWVzc2FnZSA9IHRoaXMuX2Zvcm1Db25maWc/LmZpZWxkVmFsaWRhdGlvbnM/Llt0aGlzLl9maWVsZFR5cGVdPy5tZXNzYWdlXG4gICAgICA/PyB0aGlzLl9mb3JtQ29uZmlnPy5maWVsZFZhbGlkYXRpb25zPy5ERUZBVUxUPy5tZXNzYWdlID8/ICcnO1xuXG4gICAgdGhpcy5zZXRFcnJvcihmbGQuZXJyb3JDb2RlLCBmbGQuZXJyb3JNZXNzYWdlLCBmbGQuZXJyb3JUeXBlID8/IERFRkFVTFRfRVJST1JfVFlQRSk7XG4gICAgdGhpcy5zZXRFZGl0YWJsZShmbGQuZWRpdGFibGUgPz8gdHJ1ZSk7XG4gICAgdGhpcy52aXNpYmxlTGFiZWwgPSBmbGQudmlzaWJsZUxhYmVsID8/IHRydWU7XG4gICAgdGhpcy5zZXRWaXNpYmlsaXR5KGZsZC52aXNpYmxlKTtcbiAgICB0aGlzLm9wdGlvbnMgPSBmbGQuZmllbGRPcHRpb25zO1xuICAgIHRoaXMuX3NldFZhbHVlKGZsZC5maWVsZFZhbHVlID8/IHRoaXMuX2RlZmF1bHRWYWx1ZSA/PyAnJyk7XG4gIH1cblxuICBnZXQgYWxpZ25tZW50KCkgeyByZXR1cm4gdGhpcy5fZmllbGRBbGlnbm1lbnQ7IH1cbiAgc2V0IGFsaWdubWVudChhbGlnbm1lbnQpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9maWVsZEFsaWdubWVudCwgYWxpZ25tZW50KTsgfVxuICBnZXQgYXR0cmlidXRlQ2hhbmdlKCkgeyByZXR1cm4gdGhpcy5fYXR0cmlidXRlQ2hhbmdlOyB9XG4gIGdldCBiYWNrZW5kKCkgeyByZXR1cm4gdGhpcy5fdmFsaWRhdGVPblNlcnZlcjsgfVxuXG4gIGdldCBjYXB0dXJlVHlwZSgpIHsgcmV0dXJuIHRoaXMuX2NhcHR1cmVUeXBlOyB9XG4gIHNldCBjYXB0dXJlVHlwZShjYXB0dXJlVHlwZSkgeyB0aGlzLnNldEF0dHIoYXR0cnMuX2NhcHR1cmVUeXBlLCBjYXB0dXJlVHlwZSk7IH1cbiAgZ2V0IGNvZGUoKSB7IHJldHVybiB0aGlzLl9maWVsZENvZGU7IH1cbiAgZ2V0IGZpZWxkQ29kZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkQ29kZTsgfVxuICBnZXQgZGVmYXVsdFZhbHVlKCkgeyByZXR1cm4gdGhpcy5fZGVmYXVsdFZhbHVlOyB9XG4gIHNldCBkZWZhdWx0VmFsdWUoZGVmYXVsdFZhbHVlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fZGVmYXVsdFZhbHVlLCBkZWZhdWx0VmFsdWUpOyB9XG4gIGdldCBkZWZhdWx0RWRpdGFibGUoKSB7IHJldHVybiB0aGlzLl9kZWZhdWx0RWRpdGFibGU7IH1cbiAgc2V0IGRlZmF1bHRFZGl0YWJsZShlZGl0YWJsZSkgeyB0aGlzLnNldEF0dHIoYXR0cnMuX2RlZmF1bHRFZGl0YWJsZSwgZWRpdGFibGUpOyB9XG4gIGdldCBkZXRhaWxSZXF1ZXN0KCkgeyByZXR1cm4gdGhpcy5fZGV0YWlsUmVxdWVzdDsgfVxuICBnZXQgZWRpdGlvbkZpbmlzaCgpIHsgcmV0dXJuIHRoaXMuX2VkaXRpb25GaW5pc2g7IH1cbiAgZ2V0IGVkaXRpb25QYXJ0aWFsKCkgeyByZXR1cm4gdGhpcy5fZWRpdGlvblBhcnRpYWw7IH1cblxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmllbGRDdXJyZW50VmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGlmIChmaWVsZEN1cnJlbnRWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkQ3VycmVudFZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmFycmF5XG4gICAgICAmJiBBcnJheS5pc0FycmF5KGZpZWxkQ3VycmVudFZhbHVlKSAmJiBmaWVsZEN1cnJlbnRWYWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLnBob25lKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmllbGRDdXJyZW50VmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkQ3VycmVudFZhbHVlLmxlbmd0aCAhPT0gMiB8fCAhZmllbGRDdXJyZW50VmFsdWVbMF0gfHwgIWZpZWxkQ3VycmVudFZhbHVlWzFdKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgcmV0dXJuIGZpZWxkQ3VycmVudFZhbHVlID09PSAnJztcbiAgfVxuXG5cblxuICBnZXQgZXJyb3IoKSB7IHJldHVybiB7IHR5cGU6IHRoaXMuX2Vycm9yVHlwZSwgY29kZTogdGhpcy5fZXJyb3JDb2RlLCBtZXNzYWdlOiB0aGlzLl9lcnJvck1lc3NhZ2UgfTsgfVxuICBzZXQgZXJyb3IoZXJyb3JPYmopIHsgdGhpcy5zZXRFcnJvcihlcnJvck9iai5jb2RlLCBlcnJvck9iai5tZXNzYWdlLCBlcnJvck9iai50eXBlID8/IERFRkFVTFRfRVJST1JfVFlQRSkgfVxuICBnZXQgZXJyb3JDb2RlKCkgeyByZXR1cm4gdGhpcy5fZXJyb3JDb2RlOyB9XG4gIHNldCBlcnJvckNvZGUoY29kZSkgeyB0aGlzLnNldEVycm9yKGNvZGUsIHRoaXMuX2Vycm9yTWVzc2FnZSk7IH1cbiAgZ2V0IGVycm9yTWVzc2FnZSgpIHsgcmV0dXJuIHRoaXMuX2Vycm9yTWVzc2FnZTsgfVxuICBzZXQgZXJyb3JNZXNzYWdlKG1zZykgeyB0aGlzLnNldEVycm9yKHRoaXMuX2Vycm9yQ29kZSwgbXNnKTsgfVxuICBnZXQgZXJyb3JUeXBlKCkgeyByZXR1cm4gdGhpcy5fZXJyb3JUeXBlOyB9XG4gIGdldCBleHRlcm5hbFZhbHVlKCkgeyByZXR1cm4gdGhpcy5fZXh0ZXJuYWxWYWx1ZTsgfVxuICBnZXQgZm9ybWF0KCkgeyByZXR1cm4gdGhpcy5fZmllbGRGb3JtYXQ7IH1cbiAgc2V0IGZvcm1hdChmb3JtYXQpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9maWVsZEZvcm1hdCwgZm9ybWF0KTsgfVxuICBnZXQgaGFzQ2hhbmdlZCgpIHsgcmV0dXJuIHRoaXMuX2hhc0NoYW5nZWQ7IH1cbiAgc2V0IGhhc0NoYW5nZWQoaGFzQ2hhbmdlZCkgeyB0aGlzLnNldEF0dHIoYXR0cnMuX2hhc0NoYW5nZWQsIGhhc0NoYW5nZWQpOyB9XG5cbiAgZ2V0IGluZm8oKSB7IHJldHVybiB0aGlzLl9maWVsZEluZm87IH1cbiAgc2V0IGluZm8obmV3SW5mbzogc3RyaW5nKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fZmllbGRJbmZvLCBuZXdJbmZvKTsgfVxuICBzZXQgaW50cmluc2ljRXJyb3JNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykgeyB0aGlzLnNldEF0dHIoYXR0cnMuX2ludHJpbnNpY0Vycm9yTWVzc2FnZSwgbWVzc2FnZSk7IH1cbiAgZ2V0IG1heExlbmd0aCgpIHsgcmV0dXJuICh0aGlzLl9tYXhMZW5ndGggPiAwKSA/IHRoaXMuX21heExlbmd0aC50b1N0cmluZygpIDogJyc7IH1cbiAgc2V0IG1heExlbmd0aChyZXF1aXJlZE1heExlbmd0aDogYW55KSB7IHRoaXMuc2V0QXR0cihhdHRycy5fbWF4TGVuZ3RoLCArcmVxdWlyZWRNYXhMZW5ndGgpOyB9XG4gIGdldCBtYXhWYWx1ZSgpIHsgcmV0dXJuIHRoaXMuX21heFZhbHVlOyB9XG5cbiAgc2V0IG1heFZhbHVlKGlucHV0TWF4VmFsdWUpIHtcbiAgICBsZXQgbWF4VmFsdWUgPSBpbnB1dE1heFZhbHVlO1xuICAgIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5kYXRlKSB7XG4gICAgICBtYXhWYWx1ZSA9IG5ldyBEYXRlKG1heFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLl9tYXhWYWx1ZSwgbWF4VmFsdWUpO1xuICB9XG5cbiAgZ2V0IG1pbkxlbmd0aCgpIHsgcmV0dXJuIHRoaXMuX21pbkxlbmd0aDsgfVxuICBzZXQgbWluTGVuZ3RoKHJlcXVpcmVkTWluTGVuZ3RoOiBudW1iZXIpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9taW5MZW5ndGgsICtyZXF1aXJlZE1pbkxlbmd0aCk7IH1cbiAgZ2V0IG1pblZhbHVlKCkgeyByZXR1cm4gdGhpcy5fbWluVmFsdWU7IH1cblxuICBzZXQgbWluVmFsdWUoaW5wdXRNaW5WYWx1ZSkge1xuICAgIGxldCBtaW5WYWx1ZSA9IGlucHV0TWluVmFsdWU7XG4gICAgaWYgKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmRhdGUpIHtcbiAgICAgIG1pblZhbHVlID0gbmV3IERhdGUobWluVmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuX21pblZhbHVlLCBtaW5WYWx1ZSk7XG4gIH1cblxuICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkQ29kZTsgfVxuXG4gIGdldCBvcHRpb25zKCk6IEZpZWxkT3B0aW9uW10gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGRPcHRpb25zPy5tYXAob3B0aW9uID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbkNvcHk6IEZpZWxkT3B0aW9uID0geyAuLi5vcHRpb24gfTtcbiAgICAgIHJldHVybiBvcHRpb25Db3B5O1xuICAgIH0pID8/IG51bGw7XG4gIH1cblxuICBzZXQgb3B0aW9ucyhuZXdPcHRpb25zKSB7XG4gICAgaWYgKCghdGhpcy5fZm9ybUNvbmZpZy5jYXB0dXJlVHlwZXNXaXRoT3B0aW9ucy5pbmNsdWRlcyh0aGlzLl9jYXB0dXJlVHlwZSkpXG4gICAgICB8fCB0eXBlb2YgbmV3T3B0aW9ucyA9PT0gVU5ERUZJTkVEIHx8ICFuZXdPcHRpb25zXG4gICAgICB8fCAhQXJyYXkuaXNBcnJheShuZXdPcHRpb25zKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgZmllbGRPcHRpb25zID0gbmV3T3B0aW9ucy5tYXAoKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICBpZiAob3B0aW9uLnRleHQgIT09IHVuZGVmaW5lZCAmJiBvcHRpb24udGV4dCAhPT0gbnVsbFxuICAgICAgICAmJiBvcHRpb24udmFsdWUgIT09IHVuZGVmaW5lZCAmJiBvcHRpb24udmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHsgZmllbGRPcHRpb25WYWx1ZTogb3B0aW9uLnRleHQsIGZpZWxkT3B0aW9uSWQ6IG9wdGlvbi52YWx1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9KTtcbiAgICBmaWVsZE9wdGlvbnMgPSAoZmllbGRPcHRpb25zICYmIEFycmF5LmlzQXJyYXkoZmllbGRPcHRpb25zKVxuICAgICAgJiYgZmllbGRPcHRpb25zLmxlbmd0aCA+IDApID8gZmllbGRPcHRpb25zIDogW107XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLl9maWVsZE9wdGlvbnMsIGZpZWxkT3B0aW9ucyk7XG4gICAgaWYgKHRoaXMuX3ZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYXJyYXkgJiYgQXJyYXkuaXNBcnJheSh0aGlzLl92YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHRoaXMuX3ZhbHVlPy5maWx0ZXIoaXRlbSA9PlxuICAgICAgICAgIHRoaXMuX2ZpZWxkT3B0aW9ucz8uZmluZChvcHQgPT4gb3B0LmZpZWxkT3B0aW9uSWQgPT09IGl0ZW0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2V0QXR0cihhdHRycy5fdmFsdWUsIGZpZWxkVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdmFsSW5PcHRpb25zID0gdGhpcy5fZmllbGRPcHRpb25zPy5maW5kKGl0ZW0gPT4gaXRlbS5maWVsZE9wdGlvbklkID09PSB0aGlzLl92YWx1ZSk7XG4gICAgICAgIGlmICghdmFsSW5PcHRpb25zKSB7XG4gICAgICAgICAgdGhpcy5fc2V0VmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLl9maWVsZFJlcXVpcmVkICYmIHRoaXMuX2ZpZWxkT3B0aW9ucz8ubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLl9zZXRWYWx1ZSh0aGlzLl9maWVsZE9wdGlvbnM/LlswXS5maWVsZE9wdGlvbklkKTtcbiAgICAgIHRoaXMubm90aWZ5RWRpdGlvbkZpbmlzaCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcHRpb25UZXh0KCkgeyByZXR1cm4gdGhpcy5fZmllbGRPcHRpb25zPy5maW5kKGl0ZW0gPT4gaXRlbS5maWVsZE9wdGlvbklkID09PSB0aGlzLl92YWx1ZSk/LmZpZWxkT3B0aW9uVmFsdWUgPz8gbnVsbDsgfVxuICBnZXQgb3V0cHV0T25seSgpIHsgcmV0dXJuIHRoaXMuX291dHB1dE9ubHk7IH1cbiAgc2V0IG91dHB1dE9ubHkob3V0cHV0T25seSkgeyB0aGlzLnNldEF0dHIoYXR0cnMuX291dHB1dE9ubHksIG91dHB1dE9ubHkpOyB9XG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2ZpZWxkUmVxdWlyZWQ7IH1cbiAgc2V0IHJlcXVpcmVkKHJlcXVpcmVkOiBib29sZWFuKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fZmllbGRSZXF1aXJlZCwgcmVxdWlyZWQgPz8gZmFsc2UpOyB9XG4gIGdldCB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkVGl0bGU7IH1cbiAgc2V0IHRpdGxlKHRpdGxlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fZmllbGRUaXRsZSwgdGl0bGU/LnRvU3RyaW5nKCkgPz8gJycpOyB9XG4gIGdldCB0b29sdGlwKCkgeyByZXR1cm4gdGhpcy5fdG9vbHRpcFRleHQ7IH1cbiAgc2V0IHRvb2x0aXAodG9vbHRpcCkgeyB0aGlzLnNldEF0dHIoYXR0cnMuX3Rvb2x0aXBUZXh0LCB0b29sdGlwKTsgfVxuICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkVHlwZTsgfVxuICBzZXQgdHlwZShmaWVsZFR5cGUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl9maWVsZFR5cGUsIGZpZWxkVHlwZSk7IH1cbiAgZ2V0IHZhbGlkYXRpbmcoKSB7IHJldHVybiB0aGlzLl9vblZhbGlkYXRpb247IH1cbiAgc2V0IHZhbGlkYXRpbmcoaXNWYWxpZGF0aW5nOiBib29sZWFuKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fb25WYWxpZGF0aW9uLCBpc1ZhbGlkYXRpbmcpOyB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gKHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmJvb2xlYW5cbiAgICAgIHx8IHRoaXMuX2ZpZWxkVHlwZSA9PT0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLmNoZWNrKSA/IHluKHRoaXMuX3ZhbHVlKSA6IHRoaXMuX3ZhbHVlO1xuICB9XG4gIGdldCB2YWxpZGF0ZU9uU2VydmVyKCkgeyByZXR1cm4gdGhpcy5fdmFsaWRhdGVPblNlcnZlcjsgfVxuICBzZXQgdmFsaWRhdGVPblNlcnZlcih2YWxpZGF0ZU9uU2VydmVyKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fdmFsaWRhdGVPblNlcnZlciwgdmFsaWRhdGVPblNlcnZlcik7IH1cbiAgZ2V0IHNlcnZlckFjdGlvbigpIHsgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT25TZXJ2ZXI7IH1cbiAgc2V0IHNlcnZlckFjdGlvbih2YWxpZGF0ZU9uU2VydmVyOiBib29sZWFuKSB7IHRoaXMudmFsaWRhdGVPblNlcnZlciA9IHZhbGlkYXRlT25TZXJ2ZXI7IH1cblxuICBzZXQgdmFsdWUobmV3VmFsdWUpIHsgdGhpcy5fc2V0VmFsdWUobmV3VmFsdWUpOyB9XG4gIGdldCB2aXNpYmxlTGFiZWwoKSB7IHJldHVybiB0aGlzLl92aXNpYmxlTGFiZWw7IH1cbiAgc2V0IHZpc2libGVMYWJlbCh2aXNpYmxlTGFiZWw6IGJvb2xlYW4pIHsgdGhpcy5zZXRBdHRyKGF0dHJzLl92aXNpYmxlTGFiZWwsIHZpc2libGVMYWJlbCk7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9wdGlvbnNcbiAgICovXG4gIGdldCBmaWVsZE9wdGlvbnMoKSB7IHJldHVybiB0aGlzLl9maWVsZE9wdGlvbnM7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9wdGlvbnNcbiAgICovXG4gIHNldCBmaWVsZE9wdGlvbnMob3B0aW9ucykgeyB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB2YWx1ZVxuICAgKi9cbiAgZ2V0IGZpZWxkVmFsdWUoKSB7IHJldHVybiB0aGlzLnZhbHVlOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBoYXNDaGFuZ2VkXG4gICAqL1xuICBjaGFuZ2VkKGhhc0NoYW5nZWQgPSB0cnVlKSB7IHRoaXMuaGFzQ2hhbmdlZCA9IGhhc0NoYW5nZWQ7IH1cblxuICBjbGVhbigpIHsgdGhpcy5fc2V0VmFsdWUodGhpcy5fZGVmYXVsdFZhbHVlIHx8ICcnKTsgdGhpcy5yZXNldEVycm9yKCk7IH1cbiAgZm9jdXMoKSB7IHRoaXMuc2V0QXR0cihhdHRycy5fZm9jdXMsIHRydWUpOyB9XG4gIGdldEVycm9yQ29kZSgpIHsgcmV0dXJuIHRoaXMuZXJyb3IuY29kZTsgfVxuICBzZXRFcnJvckNvZGUoY29kZSkgeyB0aGlzLnNldEVycm9yKGNvZGUsIHRoaXMuX2Vycm9yTWVzc2FnZSk7IH1cbiAgZ2V0RXJyb3JNZXNzYWdlKCkgeyByZXR1cm4gdGhpcy5lcnJvci5tZXNzYWdlOyB9XG4gIHNldEVycm9yTWVzc2FnZShtc2cpIHsgdGhpcy5zZXRFcnJvcih0aGlzLl9lcnJvckNvZGUsIG1zZyk7IH1cbiAgZ2V0UmVxdWlyZWQoKSB7IHJldHVybiB0aGlzLnJlcXVpcmVkOyB9XG4gIGhhc0Vycm9yKCkgeyByZXR1cm4gdGhpcy5fZXJyb3JDb2RlICE9PSBOT19FUlJPUjsgfVxuICBoaWRlTGFiZWwoKSB7IHRoaXMudmlzaWJsZUxhYmVsID0gZmFsc2U7IH1cbiAgcmVzZXRFcnJvcigpIHsgKHRoaXMuX2Vycm9yQ29kZSAhPT0gTk9fRVJST1IpICYmIHRoaXMuc2V0RXJyb3IoTk9fRVJST1IsIG51bGwpOyB9XG5cbiAgc2V0RWRpdGFibGUoZWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlKSB7IChlZGl0YWJsZSkgPyB0aGlzLmVuYWJsZSgpIDogdGhpcy5kaXNhYmxlKCk7IH1cbiAgc2V0VmFsdWUobmV3VmFsdWUsIHdpZGdldFVwZGF0ZSA9IHRydWUpIHsgdGhpcy5fc2V0VmFsdWUobmV3VmFsdWUsIHdpZGdldFVwZGF0ZSk7IH1cbiAgc2hvd0xhYmVsKCkgeyB0aGlzLnZpc2libGVMYWJlbCA9IHRydWU7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRpdGxlXG4gICAqL1xuICBzZXRMYWJlbChsYWJlbCkgeyB0aGlzLnRpdGxlID0gbGFiZWw7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHJlcXVpcmVkXG4gICAqL1xuICBzZXRSZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbikgeyB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQ7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGNoYW5nZWRcbiAgICovXG4gIHNldENoYW5nZWQoaGFzQ2hhbmdlZDogYm9vbGVhbikgeyB0aGlzLmNoYW5nZWQoaGFzQ2hhbmdlZCk7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHZhbHVlXG4gICAqL1xuICBnZXRWYWx1ZSgpOiBhbnkgeyByZXR1cm4gdGhpcy52YWx1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgZW1wdHlcbiAgICovXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmVtcHR5IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGVycm9yXG4gICAqL1xuICBnZXRFcnJvcigpIHsgcmV0dXJuIHRoaXMuZXJyb3I7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9wdGlvblRleHRcbiAgICovXG4gIGdldE9wdGlvblRleHQoKSB7IHJldHVybiB0aGlzLm9wdGlvblRleHQ7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG9wdGlvbnNcbiAgICovXG4gIGdldEZpZWxkT3B0aW9ucygpIHsgcmV0dXJuIHRoaXMub3B0aW9uczsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugb3B0aW9uc1xuICAgKi9cbiAgc2V0RmllbGRPcHRpb25zKG5ld09wdGlvbnMpIHsgcmV0dXJuIHRoaXMub3B0aW9ucyA9IG5ld09wdGlvbnM7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGludHJpbnNpY0Vycm9yTWVzc2FnZVxuICAgKi9cbiAgc2V0SW50cmluc2ljRXJyb3JNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykgeyB0aGlzLmludHJpbnNpY0Vycm9yTWVzc2FnZSA9IG1lc3NhZ2U7IH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIG1heFZhbHVlXG4gICAqL1xuICBzZXRNYXhWYWx1ZShpbnB1dE1heFZhbHVlKSB7IHRoaXMubWF4VmFsdWUgPSBpbnB1dE1heFZhbHVlOyB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBtaW5WYWx1ZVxuICAgKi9cbiAgc2V0TWluVmFsdWUoaW5wdXRNaW5WYWx1ZSkgeyB0aGlzLm1pblZhbHVlID0gaW5wdXRNaW5WYWx1ZTsgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Ugc2hvd0xhYmVsXG4gICAqL1xuICBzZXRWaXNpYmxlTGFiZWwodmlzaWJsZUxhYmVsOiBib29sZWFuKSB7IHRoaXMudmlzaWJsZUxhYmVsID0gdmlzaWJsZUxhYmVsOyB9XG5cblxuICBub3RpZnlFZGl0aW9uUGFydGlhbCgpIHtcbiAgICB0aGlzLnJlc2V0RXJyb3IoKTtcbiAgICB0aGlzLl9lZGl0aW9uUGFydGlhbC5uZXh0KHsgY29kZTogdGhpcy5fZmllbGRDb2RlLCBpbnRyaW5zaWNWYWxpZGF0aW9uOiB0cnVlIH0pO1xuICB9XG5cbiAgbm90aWZ5RWRpdGlvbkZpbmlzaCgpIHtcbiAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLnJlc2V0RXJyb3IoKTtcbiAgICBjb25zdCB2YWxpZGF0aW9uQ29uZmlnID0gdGhpcy5fZm9ybUNvbmZpZy5maWVsZFZhbGlkYXRpb25zPy5bdGhpcy5fZmllbGRUeXBlXSA/PyB7fTtcbiAgICBjb25zdCB7IHR5cGUsIHZhbGlkYXRpb24gfSA9IHZhbGlkYXRpb25Db25maWc7XG4gICAgbGV0IG1lc3NhZ2UgPSB2YWxpZGF0aW9uQ29uZmlnPy5tZXNzYWdlO1xuICAgIGxldCBpbnRyaW5zaWNWYWxpZGF0aW9uID0gdHJ1ZTtcbiAgICBpZiAoZmllbGRWYWx1ZSAmJiAodmFsaWRhdGlvbiB8fCB0aGlzLl9maWVsZEZvcm1hdCkpIHtcbiAgICAgIGlmICh0eXBlID09PSAncmVnZXhwJykge1xuICAgICAgICBpbnRyaW5zaWNWYWxpZGF0aW9uID0gKHZhbGlkYXRpb24/LnRlc3QoZmllbGRWYWx1ZSkgPz8gdHJ1ZSlcbiAgICAgICAgICAmJiAodGhpcy5fZmllbGRGb3JtYXQ/LnRlc3QoZmllbGRWYWx1ZSkgPz8gdHJ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHZhbGlkYXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgeyB2YWxpZCwgbWVzc2FnZTogY3VzdG9tTWVzc2FnZSB9ID0gdmFsaWRhdGlvbihmaWVsZFZhbHVlLCB0aGlzKTtcbiAgICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9IHZhbGlkO1xuICAgICAgICBtZXNzYWdlID0gY3VzdG9tTWVzc2FnZTtcbiAgICAgIH1cbiAgICAgIGlmICghaW50cmluc2ljVmFsaWRhdGlvbikge1xuICAgICAgICB0aGlzLnNldEVycm9yKCc5OScsIG1lc3NhZ2UgPz8gdGhpcy5faW50cmluc2ljRXJyb3JNZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGludHJpbnNpY1ZhbGlkYXRpb24gJiYgZmllbGRWYWx1ZSAmJiB0aGlzLl9taW5WYWx1ZSAmJiBmaWVsZFZhbHVlIDwgdGhpcy5fbWluVmFsdWUpIHtcbiAgICAgIGludHJpbnNpY1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2V0RXJyb3IoJzk5JywgJ0NhbXBvIGNvbiB2YWxvciBpbmZlcmlvciBhbCBtw61uaW1vJyk7XG4gICAgfVxuICAgIGlmIChpbnRyaW5zaWNWYWxpZGF0aW9uICYmIGZpZWxkVmFsdWUgJiYgdGhpcy5fbWF4VmFsdWUgJiYgZmllbGRWYWx1ZSA+IHRoaXMuX21heFZhbHVlKSB7XG4gICAgICBpbnRyaW5zaWNWYWxpZGF0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnNldEVycm9yKCc5OScsICdDYW1wbyBjb24gdmFsb3Igc3VwZXJpb3IgYWwgbcOheGltbycpO1xuICAgIH1cbiAgICBpZiAoaW50cmluc2ljVmFsaWRhdGlvbiAmJiBmaWVsZFZhbHVlICYmIHR5cGVvZiBmaWVsZFZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgJiYgdGhpcy5fbWluTGVuZ3RoICYmIGZpZWxkVmFsdWU/Lmxlbmd0aCA8IHRoaXMuX21pbkxlbmd0aCkge1xuICAgICAgaW50cmluc2ljVmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRFcnJvcignOTknLCBgTG9uZ2l0dWQgZGUgJHt0aGlzLl9maWVsZFRpdGxlfSBkZWJlIHNlciBkZSBhbCBtZW5vcyAke3RoaXMuX21pbkxlbmd0aH1gKTtcbiAgICB9XG4gICAgdGhpcy5fZWRpdGlvbkZpbmlzaC5uZXh0KHsgY29kZTogdGhpcy5fZmllbGRDb2RlLCBpbnRyaW5zaWNWYWxpZGF0aW9uIH0pO1xuICB9XG5cbiAgbm90aWZ5RWRpdGlvbkRldGFpbFJlcXVlc3QoZGV0YWlsOiBhbnkpIHtcbiAgICBjb25zdCBkZXRhaWxFdmVudDogRGV0YWlsRXZlbnQgPSB7IGNvZGU6IHRoaXMuX2ZpZWxkQ29kZSwgZGV0YWlsIH07XG4gICAgdGhpcy5fZGV0YWlsUmVxdWVzdC5uZXh0KGRldGFpbEV2ZW50KTtcbiAgfVxuXG4gIHNldEF0dHIoYXR0cjogYW55LCB2YWx1ZTogYW55KSB7XG4gICAgY29uc3QgeyBuYW1lOiBhdHRyTmFtZSwgcHJvcGFnYXRlOiBuYW1lIH0gPSBhdHRyO1xuICAgIHRoaXNbYXR0ck5hbWVdID0gdmFsdWU7XG4gICAgbmFtZSAmJiB0aGlzLl9hdHRyaWJ1dGVDaGFuZ2UubmV4dCh7IG5hbWUsIHZhbHVlIH0pO1xuICB9XG5cbiAgc2V0RXJyb3IoY29kZSwgbWVzc2FnZSwgdHlwZSA9IERFRkFVTFRfRVJST1JfVFlQRSkge1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5fZXJyb3JDb2RlLCBjb2RlID8/IE5PX0VSUk9SKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuX2Vycm9yVHlwZSwgKHRoaXMuX2Vycm9yQ29kZSA9PT0gTk9fRVJST1IpID8gJycgOiB0eXBlKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuX2Vycm9yTWVzc2FnZSwgbWVzc2FnZSA/PyAnJyk7XG4gIH1cblxuICB1cGRhdGVGcm9tU2VydmVyKGZsZCkge1xuICAgIGNvbnN0IGZpZWxkS2V5cyA9IE9iamVjdC5rZXlzKGZsZCk7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZpZWxkS2V5cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGF0dHJOYW1lID0gZmllbGRLZXlzW2luZGV4XTtcbiAgICAgIGNvbnN0IGF0dHJWYWx1ZSA9IGZsZFthdHRyTmFtZV07XG4gICAgICBpZiAoZGlyZWN0Q2hhbmdlcy5pbmNsdWRlcyhhdHRyTmFtZSkpIHtcbiAgICAgICAgdGhpc1thdHRyTmFtZV0gPSBhdHRyVmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdsYWJlbCcpICYmICh0aGlzLnRpdGxlID0gYXR0clZhbHVlKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnbGFiZWxWaXNpYmxlJykgJiYgKHRoaXMudmlzaWJsZUxhYmVsID0gYXR0clZhbHVlKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnZWRpdGFibGUnKSAmJiB0aGlzLnNldEVkaXRhYmxlKGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ3Zpc2libGUnKSAmJiB0aGlzLnNldFZpc2liaWxpdHkoYXR0clZhbHVlKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAndmFsdWUnKSAmJiAodGhpcy5fc2V0VmFsdWUoYXR0clZhbHVlKSAmJiAodGhpcy5oYXNDaGFuZ2VkID0gZmFsc2UpKTtcbiAgICAgICAgKGF0dHJOYW1lID09PSAnZmllbGRWYWx1ZScpICYmICh0aGlzLl9zZXRWYWx1ZShhdHRyVmFsdWUpICYmICh0aGlzLmhhc0NoYW5nZWQgPSBmYWxzZSkpO1xuXG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2ZpZWxkT3B0aW9ucycpICYmICh0aGlzLm9wdGlvbnMgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdmaWVsZFRpdGxlJykgJiYgKHRoaXMudGl0bGUgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICdmaWVsZFR5cGVDb2RlJykgJiYgKHRoaXMudHlwZSA9IGF0dHJWYWx1ZSk7XG4gICAgICAgIChhdHRyTmFtZSA9PT0gJ2ZpZWxkVHlwZScpICYmICh0aGlzLnR5cGUgPSBhdHRyVmFsdWUpO1xuICAgICAgICAoYXR0ck5hbWUgPT09ICd0b29sdGlwVGV4dCcpICYmICh0aGlzLnRvb2x0aXAgPSBhdHRyVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldFZhbHVlKG5ld1ZhbHVlLCB3aWRnZXRVcGRhdGUgPSB0cnVlKSB7XG4gICAgaWYgKHR5cGVvZiBuZXdWYWx1ZSA9PT0gVU5ERUZJTkVEKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5ld1ZhbHVlID09PSBudWxsICYmIHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBsZXQgbmV3RmluYWxWYWx1ZTtcbiAgICBpZiAodGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuYm9vbGVhblxuICAgICAgfHwgdGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMuY2hlY2spIHtcbiAgICAgIG5ld0ZpbmFsVmFsdWUgPSB5bihuZXdWYWx1ZSkgPz8gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9maWVsZFR5cGUgPT09IHRoaXMuX2Zvcm1Db25maWcuZmllbGRUeXBlcy5hcnJheVxuICAgICAgfHwgdGhpcy5fZmllbGRUeXBlID09PSB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMubWFwKSB7XG4gICAgICBpZiAobmV3VmFsdWUgPT09IG51bGwgfHwgbmV3VmFsdWUgPT09ICcnKSB7XG4gICAgICAgIG5ld0ZpbmFsVmFsdWUgPSBbXTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkpIHtcbiAgICAgICAgbmV3RmluYWxWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3RmluYWxWYWx1ZSA9IG5ld1ZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbmV3RmluYWxWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdmFsdWUgIT09IG5ld0ZpbmFsVmFsdWUpIHtcbiAgICAgIHRoaXMuaGFzQ2hhbmdlZCA9IHRydWU7XG4gICAgICBpZiAod2lkZ2V0VXBkYXRlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cihhdHRycy5fdmFsdWUsIG5ld0ZpbmFsVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBuZXdGaW5hbFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcblxuICB9XG59XG4iXX0=
@@ -48,6 +48,11 @@ export class RecordFormSection {
48
48
  }
49
49
  getCustomAttribute(name) { return this.customAttributes?.[name] ?? null; }
50
50
  setCustomAttribute(name, value) { return name && (this.customAttributes[name] = value); }
51
+ setCustomAttributes(attributes) {
52
+ Object.entries(attributes).forEach(([name, value]) => {
53
+ this.setCustomAttribute(name, value);
54
+ });
55
+ }
51
56
  matchAttribute(name, value) { return this.customAttributes?.[name] === value; }
52
57
  get code() { return this.sectionCode; }
53
58
  get activation() { return this._activation; }
@@ -129,4 +134,4 @@ export class RecordFormSection {
129
134
  viewOnState(state) { return this.visibleStates.includes(state); }
130
135
  supportMode(state) { return this.viewOnState(state); }
131
136
  }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLFlBQVksZUFBZSxFQUFFLFVBQVU7UUFkdEIsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUl2RCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBSWYscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FBTXpCLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwRixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUN6RCxJQUFJ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Q0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25ELEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDekMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7YUFDOUQ7U0FDRjtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBSTtRQUNYLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25ELEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDekMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksS0FBSyxFQUFFO29CQUNULE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RCxXQUFXLENBQUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLFdBQVcsQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1BY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQgeyBSZWNvcmRGb3JtU3ViU2VjdGlvbiB9IGZyb20gJy4vc3Vic2VjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRGb3JtU2VjdGlvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRpb24gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luYWN0aXZhdGlvbiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgdmlzaWJsZVN0YXRlczogc3RyaW5nW107XG5cbiAgYWN0aXZlID0gZmFsc2U7XG4gIHNlY3Rpb25JZDogc3RyaW5nO1xuICBzZWN0aW9uQ29kZTogc3RyaW5nO1xuICBzZWN0aW9uVGl0bGU6IHN0cmluZztcbiAgY3VzdG9tQXR0cmlidXRlczogYW55ID0ge307XG5cbiAgc3ViU2VjdGlvbnM6IFJlY29yZEZvcm1TdWJTZWN0aW9uW107XG4gIHN1YlNlY3Rpb25zT2JqOiBhbnk7XG5cbiAgY29uc3RydWN0b3Ioc2VjdGlvblJlY2VpdmVkLCBmb3JtT2JqZWN0KSB7XG4gICAgaWYgKCFzZWN0aW9uUmVjZWl2ZWQpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnNlY3Rpb25JZCA9IChzZWN0aW9uUmVjZWl2ZWQuc2VjdGlvbklkKSA/IHNlY3Rpb25SZWNlaXZlZC5zZWN0aW9uSWQudG9TdHJpbmcoKSA6ICcnO1xuICAgIHRoaXMuc2VjdGlvbkNvZGUgPSAoc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25Db2RlKSA/IHNlY3Rpb25SZWNlaXZlZC5zZWN0aW9uQ29kZSA6ICcnO1xuICAgIHRoaXMuc2VjdGlvblRpdGxlID0gKHNlY3Rpb25SZWNlaXZlZC5zZWN0aW9uVGl0bGUpID8gc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25UaXRsZSA6ICcnO1xuICAgIHRoaXMudmlzaWJsZVN0YXRlcyA9IHNlY3Rpb25SZWNlaXZlZC52aXNpYmxlU3RhdGVzIHx8IFtdO1xuICAgIHRoaXMuc3ViU2VjdGlvbnMgPSBbXTtcbiAgICB0aGlzLnN1YlNlY3Rpb25zT2JqID0ge307XG4gICAgaWYgKHNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9ucykge1xuICAgICAgY29uc3Qgc3Vic2VjdGlvbnMgPSBzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbnMubWFwKG9iakRlZiA9PiB7XG4gICAgICAgIGxldCB2aXNpYmxlU3RhdGVzID0gb2JqRGVmLnZpc2libGVTdGF0ZXM7XG4gICAgICAgIGlmICghdmlzaWJsZVN0YXRlcykge1xuICAgICAgICAgIHZpc2libGVTdGF0ZXMgPSAob2JqRGVmLnN1YnNlY3Rpb25Nb2RlcyB8fCAnJykuc3BsaXQoJywnKVxuICAgICAgICAgICAgLm1hcChzdGF0ZSA9PiBzdGF0ZS50cmltKCkpXG4gICAgICAgICAgICAuZmlsdGVyKHN0YXRlID0+IHN0YXRlLmxlbmd0aCA+IDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmlzaWJsZVN0YXRlcyB8fCB2aXNpYmxlU3RhdGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHZpc2libGVTdGF0ZXMgPSB0aGlzLnZpc2libGVTdGF0ZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iakRlZi5lbGVtZW50cyAmJiBBcnJheS5pc0FycmF5KG9iakRlZi5lbGVtZW50cykpIHtcbiAgICAgICAgICBvYmpEZWYuZWxlbWVudHMgPSBvYmpEZWYuZWxlbWVudHMubWFwKGVsbSA9PiAoeyBjb2RlOiBlbG0uZWxlbWVudENvZGUsIHR5cGU6IGVsbS5lbGVtZW50VHlwZU5hbWUgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IC4uLm9iakRlZiwgdmlzaWJsZVN0YXRlcyB9O1xuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IHN1YnNlY3Rpb25SZWNlaXZlZCBvZiBzdWJzZWN0aW9ucykge1xuICAgICAgICBjb25zdCBzdWJTZWN0aW9uVG9BZGQgPSBuZXcgUmVjb3JkRm9ybVN1YlNlY3Rpb24oc3Vic2VjdGlvblJlY2VpdmVkLCBmb3JtT2JqZWN0KTtcbiAgICAgICAgY29uc3Qgc3Vic2VjdGlvbkNvZGUgPSBzdWJTZWN0aW9uVG9BZGQuc3Vic2VjdGlvbkNvZGU7XG4gICAgICAgIGlmIChzdWJzZWN0aW9uQ29kZSkge1xuICAgICAgICAgIHRoaXMuc3ViU2VjdGlvbnMucHVzaChzdWJTZWN0aW9uVG9BZGQpO1xuICAgICAgICAgIHRoaXMuc3ViU2VjdGlvbnNPYmpbc3Vic2VjdGlvbkNvZGVdID0gc3ViU2VjdGlvblRvQWRkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzZWN0aW9uUmVjZWl2ZWQ/LmN1c3RvbUF0dHJpYnV0ZXMpIHtcbiAgICAgIE9iamVjdC5rZXlzKHNlY3Rpb25SZWNlaXZlZD8uY3VzdG9tQXR0cmlidXRlcylcbiAgICAgICAgPy5mb3JFYWNoKGF0dHIgPT4gdGhpcy5jdXN0b21BdHRyaWJ1dGVzW2F0dHJdID0gc2VjdGlvblJlY2VpdmVkPy5jdXN0b21BdHRyaWJ1dGVzW2F0dHJdKVxuICAgIH1cbiAgfVxuXG4gIGdldEN1c3RvbUF0dHJpYnV0ZShuYW1lKSB7IHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXM/LltuYW1lXSA/PyBudWxsOyB9XG4gIHNldEN1c3RvbUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkgeyByZXR1cm4gbmFtZSAmJiAodGhpcy5jdXN0b21BdHRyaWJ1dGVzW25hbWVdID0gdmFsdWUpOyB9XG4gIG1hdGNoQXR0cmlidXRlKG5hbWUsIHZhbHVlKSB7IHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXM/LltuYW1lXSA9PT0gdmFsdWU7IH1cblxuICBnZXQgY29kZSgpIHsgcmV0dXJuIHRoaXMuc2VjdGlvbkNvZGU7IH1cbiAgZ2V0IGFjdGl2YXRpb24oKSB7IHJldHVybiB0aGlzLl9hY3RpdmF0aW9uOyB9XG4gIGdldCBpbmFjdGl2YXRpb24oKSB7IHJldHVybiB0aGlzLl9pbmFjdGl2YXRpb247IH1cblxuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlKSB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLl9hY3RpdmF0aW9uLm5leHQodGhpcy5zZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgaW5hY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICB0aGlzLl9pbmFjdGl2YXRpb24ubmV4dCh0aGlzLnNlY3Rpb25Db2RlKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkgeyB0aGlzLnZpc2libGUgPSB0cnVlOyB9XG4gIGhpZGUoKSB7IHRoaXMudmlzaWJsZSA9IGZhbHNlOyB9XG4gIGdldCB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuc2VjdGlvblRpdGxlOyB9XG4gIHNldCB0aXRsZSh0aXRsZSkgeyB0aGlzLnNlY3Rpb25UaXRsZSA9IHRpdGxlOyB9XG5cbiAgZ2V0VmlzaWJsZVN1YnNlY3Rpb25zKHN0YXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViU2VjdGlvbnMuZmlsdGVyKHN1YlNlY3Rpb24gPT4ge1xuICAgICAgcmV0dXJuIHN1YlNlY3Rpb24udmlzaWJsZSAmJiBzdWJTZWN0aW9uLnZpZXdPblN0YXRlKHN0YXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFN1YnNlY3Rpb24oc3ViU2VjdGlvbkNvZGUpIHtcbiAgICByZXR1cm4gKHRoaXMuc3ViU2VjdGlvbnNPYmogJiYgdGhpcy5zdWJTZWN0aW9uc09ialtzdWJTZWN0aW9uQ29kZV0pXG4gICAgICA/IHRoaXMuc3ViU2VjdGlvbnNPYmpbc3ViU2VjdGlvbkNvZGVdIDogbnVsbDtcbiAgfVxuXG4gIGdldEZpZWxkcygpIHtcbiAgICBsZXQgZmllbGRzQXJyYXkgPSBbXTtcbiAgICBpZiAodGhpcy5zdWJTZWN0aW9ucyAmJiB0aGlzLnN1YlNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3Qgc3ViU2VjdGlvbiBvZiB0aGlzLnN1YlNlY3Rpb25zKSB7XG4gICAgICAgIGZpZWxkc0FycmF5ID0gZmllbGRzQXJyYXkuY29uY2F0KHN1YlNlY3Rpb24uZ2V0RmllbGRzKCkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmllbGRzQXJyYXk7XG4gIH1cblxuICBnZXRBY3Rpb25zKCk6IEZvcm1BY3Rpb25bXSB7XG4gICAgbGV0IGFjdGlvbkFycmF5ID0gW107XG4gICAgaWYgKHRoaXMuc3ViU2VjdGlvbnMgJiYgdGhpcy5zdWJTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YlNlY3Rpb24gb2YgdGhpcy5zdWJTZWN0aW9ucykge1xuICAgICAgICBhY3Rpb25BcnJheSA9IGFjdGlvbkFycmF5LmNvbmNhdChzdWJTZWN0aW9uLmdldEFjdGlvbnMoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25BcnJheTtcbiAgfVxuXG4gIGdldEFjdGlvbk5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgYWN0aW9uQXJyYXkgPSBbXTtcbiAgICBpZiAodGhpcy5zdWJTZWN0aW9ucyAmJiB0aGlzLnN1YlNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3Qgc3ViU2VjdGlvbiBvZiB0aGlzLnN1YlNlY3Rpb25zKSB7XG4gICAgICAgIGFjdGlvbkFycmF5ID0gYWN0aW9uQXJyYXkuY29uY2F0KHN1YlNlY3Rpb24uZ2V0QWN0aW9uTmFtZXMoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25BcnJheTtcbiAgfVxuXG4gIGdldEZpZWxkTmFtZXMoKSB7XG4gICAgbGV0IGZpZWxkc0FycmF5ID0gW107XG4gICAgaWYgKHRoaXMuc3ViU2VjdGlvbnMgJiYgdGhpcy5zdWJTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YlNlY3Rpb24gb2YgdGhpcy5zdWJTZWN0aW9ucykge1xuICAgICAgICBmaWVsZHNBcnJheSA9IGZpZWxkc0FycmF5LmNvbmNhdChzdWJTZWN0aW9uLmdldEZpZWxkTmFtZXMoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWVsZHNBcnJheTtcbiAgfVxuXG4gIGdldEZpZWxkKG5hbWUpIHtcbiAgICBsZXQgZmllbGQgPSBudWxsO1xuICAgIGlmICh0aGlzLnN1YlNlY3Rpb25zICYmIHRoaXMuc3ViU2VjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBzdWJTZWN0aW9uIG9mIHRoaXMuc3ViU2VjdGlvbnMpIHtcbiAgICAgICAgZmllbGQgPSBzdWJTZWN0aW9uLmdldEZpZWxkKG5hbWUpO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdXBwb3J0U3RhdGUoc3RhdGUpIHsgcmV0dXJuIHRoaXMudmlld09uU3RhdGUoc3RhdGUpOyB9XG4gIHZpZXdPblN0YXRlKHN0YXRlKSB7IHJldHVybiB0aGlzLnZpc2libGVTdGF0ZXMuaW5jbHVkZXMoc3RhdGUpOyB9XG4gIHN1cHBvcnRNb2RlKHN0YXRlKSB7IHJldHVybiB0aGlzLnZpZXdPblN0YXRlKHN0YXRlKTsgfVxufVxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLFlBQVksZUFBZSxFQUFFLFVBQVU7UUFkdEIsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUl2RCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBSWYscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FBTXpCLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwRixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUN6RCxJQUFJ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SSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7IFJlY29yZEZvcm1TdWJTZWN0aW9uIH0gZnJvbSAnLi9zdWJzZWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFJlY29yZEZvcm1TZWN0aW9uIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGlvbiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5hY3RpdmF0aW9uID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICB2aXNpYmxlOiBib29sZWFuO1xuICB2aXNpYmxlU3RhdGVzOiBzdHJpbmdbXTtcblxuICBhY3RpdmUgPSBmYWxzZTtcbiAgc2VjdGlvbklkOiBzdHJpbmc7XG4gIHNlY3Rpb25Db2RlOiBzdHJpbmc7XG4gIHNlY3Rpb25UaXRsZTogc3RyaW5nO1xuICBjdXN0b21BdHRyaWJ1dGVzOiBhbnkgPSB7fTtcblxuICBzdWJTZWN0aW9uczogUmVjb3JkRm9ybVN1YlNlY3Rpb25bXTtcbiAgc3ViU2VjdGlvbnNPYmo6IGFueTtcblxuICBjb25zdHJ1Y3RvcihzZWN0aW9uUmVjZWl2ZWQsIGZvcm1PYmplY3QpIHtcbiAgICBpZiAoIXNlY3Rpb25SZWNlaXZlZCkgeyByZXR1cm47IH1cbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIHRoaXMuc2VjdGlvbklkID0gKHNlY3Rpb25SZWNlaXZlZC5zZWN0aW9uSWQpID8gc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25JZC50b1N0cmluZygpIDogJyc7XG4gICAgdGhpcy5zZWN0aW9uQ29kZSA9IChzZWN0aW9uUmVjZWl2ZWQuc2VjdGlvbkNvZGUpID8gc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25Db2RlIDogJyc7XG4gICAgdGhpcy5zZWN0aW9uVGl0bGUgPSAoc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25UaXRsZSkgPyBzZWN0aW9uUmVjZWl2ZWQuc2VjdGlvblRpdGxlIDogJyc7XG4gICAgdGhpcy52aXNpYmxlU3RhdGVzID0gc2VjdGlvblJlY2VpdmVkLnZpc2libGVTdGF0ZXMgfHwgW107XG4gICAgdGhpcy5zdWJTZWN0aW9ucyA9IFtdO1xuICAgIHRoaXMuc3ViU2VjdGlvbnNPYmogPSB7fTtcbiAgICBpZiAoc2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25zKSB7XG4gICAgICBjb25zdCBzdWJzZWN0aW9ucyA9IHNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9ucy5tYXAob2JqRGVmID0+IHtcbiAgICAgICAgbGV0IHZpc2libGVTdGF0ZXMgPSBvYmpEZWYudmlzaWJsZVN0YXRlcztcbiAgICAgICAgaWYgKCF2aXNpYmxlU3RhdGVzKSB7XG4gICAgICAgICAgdmlzaWJsZVN0YXRlcyA9IChvYmpEZWYuc3Vic2VjdGlvbk1vZGVzIHx8ICcnKS5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKHN0YXRlID0+IHN0YXRlLnRyaW0oKSlcbiAgICAgICAgICAgIC5maWx0ZXIoc3RhdGUgPT4gc3RhdGUubGVuZ3RoID4gMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2aXNpYmxlU3RhdGVzIHx8IHZpc2libGVTdGF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdmlzaWJsZVN0YXRlcyA9IHRoaXMudmlzaWJsZVN0YXRlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqRGVmLmVsZW1lbnRzICYmIEFycmF5LmlzQXJyYXkob2JqRGVmLmVsZW1lbnRzKSkge1xuICAgICAgICAgIG9iakRlZi5lbGVtZW50cyA9IG9iakRlZi5lbGVtZW50cy5tYXAoZWxtID0+ICh7IGNvZGU6IGVsbS5lbGVtZW50Q29kZSwgdHlwZTogZWxtLmVsZW1lbnRUeXBlTmFtZSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgLi4ub2JqRGVmLCB2aXNpYmxlU3RhdGVzIH07XG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3Qgc3Vic2VjdGlvblJlY2VpdmVkIG9mIHN1YnNlY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IHN1YlNlY3Rpb25Ub0FkZCA9IG5ldyBSZWNvcmRGb3JtU3ViU2VjdGlvbihzdWJzZWN0aW9uUmVjZWl2ZWQsIGZvcm1PYmplY3QpO1xuICAgICAgICBjb25zdCBzdWJzZWN0aW9uQ29kZSA9IHN1YlNlY3Rpb25Ub0FkZC5zdWJzZWN0aW9uQ29kZTtcbiAgICAgICAgaWYgKHN1YnNlY3Rpb25Db2RlKSB7XG4gICAgICAgICAgdGhpcy5zdWJTZWN0aW9ucy5wdXNoKHN1YlNlY3Rpb25Ub0FkZCk7XG4gICAgICAgICAgdGhpcy5zdWJTZWN0aW9uc09ialtzdWJzZWN0aW9uQ29kZV0gPSBzdWJTZWN0aW9uVG9BZGQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHNlY3Rpb25SZWNlaXZlZD8uY3VzdG9tQXR0cmlidXRlcykge1xuICAgICAgT2JqZWN0LmtleXMoc2VjdGlvblJlY2VpdmVkPy5jdXN0b21BdHRyaWJ1dGVzKVxuICAgICAgICA/LmZvckVhY2goYXR0ciA9PiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNbYXR0cl0gPSBzZWN0aW9uUmVjZWl2ZWQ/LmN1c3RvbUF0dHJpYnV0ZXNbYXR0cl0pXG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VzdG9tQXR0cmlidXRlKG5hbWUpIHsgcmV0dXJuIHRoaXMuY3VzdG9tQXR0cmlidXRlcz8uW25hbWVdID8/IG51bGw7IH1cbiAgc2V0Q3VzdG9tQXR0cmlidXRlKG5hbWUsIHZhbHVlKSB7IHJldHVybiBuYW1lICYmICh0aGlzLmN1c3RvbUF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZSk7IH1cblxuICBzZXRDdXN0b21BdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IGFueSk6IHZvaWQge1xuICAgIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpLmZvckVhY2goKFtuYW1lLCB2YWx1ZV0pID0+IHtcbiAgICAgIHRoaXMuc2V0Q3VzdG9tQXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG1hdGNoQXR0cmlidXRlKG5hbWUsIHZhbHVlKSB7IHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXM/LltuYW1lXSA9PT0gdmFsdWU7IH1cblxuICBnZXQgY29kZSgpIHsgcmV0dXJuIHRoaXMuc2VjdGlvbkNvZGU7IH1cbiAgZ2V0IGFjdGl2YXRpb24oKSB7IHJldHVybiB0aGlzLl9hY3RpdmF0aW9uOyB9XG4gIGdldCBpbmFjdGl2YXRpb24oKSB7IHJldHVybiB0aGlzLl9pbmFjdGl2YXRpb247IH1cblxuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlKSB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLl9hY3RpdmF0aW9uLm5leHQodGhpcy5zZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgaW5hY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICB0aGlzLl9pbmFjdGl2YXRpb24ubmV4dCh0aGlzLnNlY3Rpb25Db2RlKTtcbiAgICB9XG4gIH1cblxuICBzaG93KCkgeyB0aGlzLnZpc2libGUgPSB0cnVlOyB9XG4gIGhpZGUoKSB7IHRoaXMudmlzaWJsZSA9IGZhbHNlOyB9XG4gIGdldCB0aXRsZSgpIHsgcmV0dXJuIHRoaXMuc2VjdGlvblRpdGxlOyB9XG4gIHNldCB0aXRsZSh0aXRsZSkgeyB0aGlzLnNlY3Rpb25UaXRsZSA9IHRpdGxlOyB9XG5cbiAgZ2V0VmlzaWJsZVN1YnNlY3Rpb25zKHN0YXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViU2VjdGlvbnMuZmlsdGVyKHN1YlNlY3Rpb24gPT4ge1xuICAgICAgcmV0dXJuIHN1YlNlY3Rpb24udmlzaWJsZSAmJiBzdWJTZWN0aW9uLnZpZXdPblN0YXRlKHN0YXRlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFN1YnNlY3Rpb24oc3ViU2VjdGlvbkNvZGUpIHtcbiAgICByZXR1cm4gKHRoaXMuc3ViU2VjdGlvbnNPYmogJiYgdGhpcy5zdWJTZWN0aW9uc09ialtzdWJTZWN0aW9uQ29kZV0pXG4gICAgICA/IHRoaXMuc3ViU2VjdGlvbnNPYmpbc3ViU2VjdGlvbkNvZGVdIDogbnVsbDtcbiAgfVxuXG4gIGdldEZpZWxkcygpIHtcbiAgICBsZXQgZmllbGRzQXJyYXkgPSBbXTtcbiAgICBpZiAodGhpcy5zdWJTZWN0aW9ucyAmJiB0aGlzLnN1YlNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3Qgc3ViU2VjdGlvbiBvZiB0aGlzLnN1YlNlY3Rpb25zKSB7XG4gICAgICAgIGZpZWxkc0FycmF5ID0gZmllbGRzQXJyYXkuY29uY2F0KHN1YlNlY3Rpb24uZ2V0RmllbGRzKCkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmllbGRzQXJyYXk7XG4gIH1cblxuICBnZXRBY3Rpb25zKCk6IEZvcm1BY3Rpb25bXSB7XG4gICAgbGV0IGFjdGlvbkFycmF5ID0gW107XG4gICAgaWYgKHRoaXMuc3ViU2VjdGlvbnMgJiYgdGhpcy5zdWJTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YlNlY3Rpb24gb2YgdGhpcy5zdWJTZWN0aW9ucykge1xuICAgICAgICBhY3Rpb25BcnJheSA9IGFjdGlvbkFycmF5LmNvbmNhdChzdWJTZWN0aW9uLmdldEFjdGlvbnMoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25BcnJheTtcbiAgfVxuXG4gIGdldEFjdGlvbk5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgYWN0aW9uQXJyYXkgPSBbXTtcbiAgICBpZiAodGhpcy5zdWJTZWN0aW9ucyAmJiB0aGlzLnN1YlNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3Qgc3ViU2VjdGlvbiBvZiB0aGlzLnN1YlNlY3Rpb25zKSB7XG4gICAgICAgIGFjdGlvbkFycmF5ID0gYWN0aW9uQXJyYXkuY29uY2F0KHN1YlNlY3Rpb24uZ2V0QWN0aW9uTmFtZXMoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25BcnJheTtcbiAgfVxuXG4gIGdldEZpZWxkTmFtZXMoKSB7XG4gICAgbGV0IGZpZWxkc0FycmF5ID0gW107XG4gICAgaWYgKHRoaXMuc3ViU2VjdGlvbnMgJiYgdGhpcy5zdWJTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YlNlY3Rpb24gb2YgdGhpcy5zdWJTZWN0aW9ucykge1xuICAgICAgICBmaWVsZHNBcnJheSA9IGZpZWxkc0FycmF5LmNvbmNhdChzdWJTZWN0aW9uLmdldEZpZWxkTmFtZXMoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWVsZHNBcnJheTtcbiAgfVxuXG4gIGdldEZpZWxkKG5hbWUpIHtcbiAgICBsZXQgZmllbGQgPSBudWxsO1xuICAgIGlmICh0aGlzLnN1YlNlY3Rpb25zICYmIHRoaXMuc3ViU2VjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBzdWJTZWN0aW9uIG9mIHRoaXMuc3ViU2VjdGlvbnMpIHtcbiAgICAgICAgZmllbGQgPSBzdWJTZWN0aW9uLmdldEZpZWxkKG5hbWUpO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdXBwb3J0U3RhdGUoc3RhdGUpIHsgcmV0dXJuIHRoaXMudmlld09uU3RhdGUoc3RhdGUpOyB9XG4gIHZpZXdPblN0YXRlKHN0YXRlKSB7IHJldHVybiB0aGlzLnZpc2libGVTdGF0ZXMuaW5jbHVkZXMoc3RhdGUpOyB9XG4gIHN1cHBvcnRNb2RlKHN0YXRlKSB7IHJldHVybiB0aGlzLnZpZXdPblN0YXRlKHN0YXRlKTsgfVxufVxuIl19
@@ -15,8 +15,17 @@ export class TableAction {
15
15
  this.restrictedOnOperator = actionDefinition.operatorRestricted || '';
16
16
  this.customAttributes = actionDefinition?.customAttributes ?? {};
17
17
  }
18
+ getCustomAttribute(name) { return this.customAttributes?.[name] ?? null; }
19
+ setCustomAttribute(name, value) { if (name) {
20
+ this.customAttributes[name] = value;
21
+ } }
22
+ setCustomAttributes(attributes) {
23
+ Object.entries(attributes).forEach(([name, value]) => {
24
+ this.setCustomAttribute(name, value);
25
+ });
26
+ }
18
27
  supportMode(state) { return this.viewOnState(state); }
19
28
  viewOnState(state) { return this.visibleStates.includes(state); }
20
29
  enabledOnState(state) { return this.enabledStates.includes(state); }
21
30
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy90YWJsZS9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFrQnRCLFlBQVksZ0JBQWdCO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixFQUFFLFlBQVksSUFBSSxLQUFLLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV0RCxXQUFXLENBQUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLGNBQWMsQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDckUiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVGFibGVBY3Rpb24ge1xuICB2aXNpYmxlU3RhdGVzOiBzdHJpbmdbXTtcbiAgZW5hYmxlZFN0YXRlczogc3RyaW5nW107XG4gIG5ld1N0YXRlOiBzdHJpbmc7XG5cbiAgYWN0aW9uQ29kZTogc3RyaW5nO1xuICBhY3Rpb25UaXRsZTogc3RyaW5nO1xuICBpY29uTmFtZTogc3RyaW5nO1xuICBhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIGFjdGlvbkNsYXNzOiBzdHJpbmc7XG4gIHN0YXRlRmllbGQ6IHN0cmluZztcblxuICBiYWNrZW5kOiBib29sZWFuO1xuICByZXN0cmljdGVkT25GaWVsZDogc3RyaW5nO1xuICByZXN0cmljdGVkT25WYWx1ZTogc3RyaW5nO1xuICByZXN0cmljdGVkT25PcGVyYXRvcjogc3RyaW5nO1xuICBjdXN0b21BdHRyaWJ1dGVzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoYWN0aW9uRGVmaW5pdGlvbikge1xuICAgIHRoaXMuYWN0aW9uQ29kZSA9IGFjdGlvbkRlZmluaXRpb24uYWN0aW9uQ29kZTtcbiAgICB0aGlzLmFjdGlvblRpdGxlID0gYWN0aW9uRGVmaW5pdGlvbi5hY3Rpb25UaXRsZTtcbiAgICB0aGlzLmljb25OYW1lID0gYWN0aW9uRGVmaW5pdGlvbi5pY29uTmFtZSB8fCB0aGlzLmFjdGlvbkNvZGU7XG4gICAgdGhpcy5hY3Rpb25UeXBlID0gYWN0aW9uRGVmaW5pdGlvbi5hY3Rpb25UeXBlIHx8ICdTVEFOREFSRCc7XG4gICAgdGhpcy5hY3Rpb25DbGFzcyA9IGFjdGlvbkRlZmluaXRpb24uYWN0aW9uQ2xhc3MgfHwgJ0lOTElORSc7XG4gICAgdGhpcy5uZXdTdGF0ZSA9IGFjdGlvbkRlZmluaXRpb24ubmV3U3RhdGU7XG4gICAgdGhpcy5zdGF0ZUZpZWxkID0gYWN0aW9uRGVmaW5pdGlvbi5zdGF0ZUZpZWxkIHx8ICcnO1xuXG4gICAgdGhpcy52aXNpYmxlU3RhdGVzID0gYWN0aW9uRGVmaW5pdGlvbi52aXNpYmxlU3RhdGVzIHx8IFtdO1xuICAgIHRoaXMuZW5hYmxlZFN0YXRlcyA9IGFjdGlvbkRlZmluaXRpb24uZW5hYmxlZFN0YXRlcyB8fCBbXTtcbiAgICB0aGlzLmJhY2tlbmQgPSBhY3Rpb25EZWZpbml0aW9uPy5zZXJ2ZXJBY3Rpb24gPz8gZmFsc2U7XG4gICAgdGhpcy5yZXN0cmljdGVkT25GaWVsZCA9IGFjdGlvbkRlZmluaXRpb24uZmllbGRSZXN0cmljdGVkQ29kZSB8fCAnJztcbiAgICB0aGlzLnJlc3RyaWN0ZWRPblZhbHVlID0gYWN0aW9uRGVmaW5pdGlvbi52YWx1ZVJlc3RyaWN0ZWQgPz8gJyc7XG4gICAgdGhpcy5yZXN0cmljdGVkT25PcGVyYXRvciA9IGFjdGlvbkRlZmluaXRpb24ub3BlcmF0b3JSZXN0cmljdGVkIHx8ICcnO1xuICAgIHRoaXMuY3VzdG9tQXR0cmlidXRlcyA9IGFjdGlvbkRlZmluaXRpb24/LmN1c3RvbUF0dHJpYnV0ZXMgPz8ge307XG4gIH1cblxuICBzdXBwb3J0TW9kZShzdGF0ZSkgeyByZXR1cm4gdGhpcy52aWV3T25TdGF0ZShzdGF0ZSk7IH1cblxuICB2aWV3T25TdGF0ZShzdGF0ZSkgeyByZXR1cm4gdGhpcy52aXNpYmxlU3RhdGVzLmluY2x1ZGVzKHN0YXRlKTsgfVxuICBlbmFibGVkT25TdGF0ZShzdGF0ZSkgeyByZXR1cm4gdGhpcy5lbmFibGVkU3RhdGVzLmluY2x1ZGVzKHN0YXRlKTsgfVxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy90YWJsZS9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFrQnRCLFlBQVksZ0JBQWdCO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDN0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixFQUFFLFlBQVksSUFBSSxLQUFLLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsRUFBRSxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVksSUFBUyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkYsa0JBQWtCLENBQUMsSUFBWSxFQUFFLEtBQVUsSUFBVSxJQUFJLElBQUksRUFBRTtRQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7S0FBRSxDQUFDLENBQUM7SUFFekcsbUJBQW1CLENBQUMsVUFBZTtRQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEQsV0FBVyxDQUFDLEtBQUssSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxjQUFjLENBQUMsS0FBSyxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3JFIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFRhYmxlQWN0aW9uIHtcbiAgdmlzaWJsZVN0YXRlczogc3RyaW5nW107XG4gIGVuYWJsZWRTdGF0ZXM6IHN0cmluZ1tdO1xuICBuZXdTdGF0ZTogc3RyaW5nO1xuXG4gIGFjdGlvbkNvZGU6IHN0cmluZztcbiAgYWN0aW9uVGl0bGU6IHN0cmluZztcbiAgaWNvbk5hbWU6IHN0cmluZztcbiAgYWN0aW9uVHlwZTogc3RyaW5nO1xuICBhY3Rpb25DbGFzczogc3RyaW5nO1xuICBzdGF0ZUZpZWxkOiBzdHJpbmc7XG5cbiAgYmFja2VuZDogYm9vbGVhbjtcbiAgcmVzdHJpY3RlZE9uRmllbGQ6IHN0cmluZztcbiAgcmVzdHJpY3RlZE9uVmFsdWU6IHN0cmluZztcbiAgcmVzdHJpY3RlZE9uT3BlcmF0b3I6IHN0cmluZztcbiAgY3VzdG9tQXR0cmlidXRlczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGFjdGlvbkRlZmluaXRpb24pIHtcbiAgICB0aGlzLmFjdGlvbkNvZGUgPSBhY3Rpb25EZWZpbml0aW9uLmFjdGlvbkNvZGU7XG4gICAgdGhpcy5hY3Rpb25UaXRsZSA9IGFjdGlvbkRlZmluaXRpb24uYWN0aW9uVGl0bGU7XG4gICAgdGhpcy5pY29uTmFtZSA9IGFjdGlvbkRlZmluaXRpb24uaWNvbk5hbWUgfHwgdGhpcy5hY3Rpb25Db2RlO1xuICAgIHRoaXMuYWN0aW9uVHlwZSA9IGFjdGlvbkRlZmluaXRpb24uYWN0aW9uVHlwZSB8fCAnU1RBTkRBUkQnO1xuICAgIHRoaXMuYWN0aW9uQ2xhc3MgPSBhY3Rpb25EZWZpbml0aW9uLmFjdGlvbkNsYXNzIHx8ICdJTkxJTkUnO1xuICAgIHRoaXMubmV3U3RhdGUgPSBhY3Rpb25EZWZpbml0aW9uLm5ld1N0YXRlO1xuICAgIHRoaXMuc3RhdGVGaWVsZCA9IGFjdGlvbkRlZmluaXRpb24uc3RhdGVGaWVsZCB8fCAnJztcblxuICAgIHRoaXMudmlzaWJsZVN0YXRlcyA9IGFjdGlvbkRlZmluaXRpb24udmlzaWJsZVN0YXRlcyB8fCBbXTtcbiAgICB0aGlzLmVuYWJsZWRTdGF0ZXMgPSBhY3Rpb25EZWZpbml0aW9uLmVuYWJsZWRTdGF0ZXMgfHwgW107XG4gICAgdGhpcy5iYWNrZW5kID0gYWN0aW9uRGVmaW5pdGlvbj8uc2VydmVyQWN0aW9uID8/IGZhbHNlO1xuICAgIHRoaXMucmVzdHJpY3RlZE9uRmllbGQgPSBhY3Rpb25EZWZpbml0aW9uLmZpZWxkUmVzdHJpY3RlZENvZGUgfHwgJyc7XG4gICAgdGhpcy5yZXN0cmljdGVkT25WYWx1ZSA9IGFjdGlvbkRlZmluaXRpb24udmFsdWVSZXN0cmljdGVkID8/ICcnO1xuICAgIHRoaXMucmVzdHJpY3RlZE9uT3BlcmF0b3IgPSBhY3Rpb25EZWZpbml0aW9uLm9wZXJhdG9yUmVzdHJpY3RlZCB8fCAnJztcbiAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMgPSBhY3Rpb25EZWZpbml0aW9uPy5jdXN0b21BdHRyaWJ1dGVzID8/IHt9O1xuICB9XG5cbiAgZ2V0Q3VzdG9tQXR0cmlidXRlKG5hbWU6IHN0cmluZyk6IGFueSB7IHJldHVybiB0aGlzLmN1c3RvbUF0dHJpYnV0ZXM/LltuYW1lXSA/PyBudWxsOyB9XG4gIHNldEN1c3RvbUF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHsgaWYgKG5hbWUpIHsgdGhpcy5jdXN0b21BdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7IH0gfVxuXG4gIHNldEN1c3RvbUF0dHJpYnV0ZXMoYXR0cmlidXRlczogYW55KTogdm9pZCB7XG4gICAgT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykuZm9yRWFjaCgoW25hbWUsIHZhbHVlXSkgPT4ge1xuICAgICAgdGhpcy5zZXRDdXN0b21BdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgc3VwcG9ydE1vZGUoc3RhdGUpIHsgcmV0dXJuIHRoaXMudmlld09uU3RhdGUoc3RhdGUpOyB9XG5cbiAgdmlld09uU3RhdGUoc3RhdGUpIHsgcmV0dXJuIHRoaXMudmlzaWJsZVN0YXRlcy5pbmNsdWRlcyhzdGF0ZSk7IH1cbiAgZW5hYmxlZE9uU3RhdGUoc3RhdGUpIHsgcmV0dXJuIHRoaXMuZW5hYmxlZFN0YXRlcy5pbmNsdWRlcyhzdGF0ZSk7IH1cbn1cbiJdfQ==
@@ -1,7 +1,18 @@
1
1
  export class RecordTableColumn {
2
2
  constructor(recTableColReceived, formConfig) {
3
+ this.fieldCode = '';
4
+ this.fieldTitle = '';
5
+ this.fieldType = '';
6
+ this.fieldAlignment = '';
7
+ this.fieldFormat = '';
8
+ this.visible = true;
9
+ this.sortable = true;
10
+ this.sortDirections = [];
11
+ this.customAttributes = {};
3
12
  // Filtros
4
13
  this.filterVisible = false;
14
+ this.filterDef = null;
15
+ this.filterSetup = null;
5
16
  this._formConfig = formConfig;
6
17
  this.filterDef = null;
7
18
  if (recTableColReceived) {
@@ -12,11 +23,20 @@ export class RecordTableColumn {
12
23
  this.fieldAlignment = (recTableColReceived.alignment != null) ? recTableColReceived.alignment.toLowerCase() : defaultTypeAlignment;
13
24
  this.visible = recTableColReceived?.visible ?? true;
14
25
  this.sortable = recTableColReceived?.sortable ?? false;
15
- this.sortDirections = (this.sortable) ? ['ascend', 'descend'] : [null];
26
+ this.sortDirections = (this.sortable) ? ['ascend', 'descend'] : [];
16
27
  this.fieldFormat = recTableColReceived.format || '';
17
28
  this.customAttributes = recTableColReceived?.customAttributes ?? {};
18
29
  }
19
30
  }
31
+ getCustomAttribute(name) { return this.customAttributes?.[name] ?? null; }
32
+ setCustomAttribute(name, value) { if (name) {
33
+ this.customAttributes[name] = value;
34
+ } }
35
+ setCustomAttributes(attributes) {
36
+ Object.entries(attributes).forEach(([name, value]) => {
37
+ this.setCustomAttribute(name, value);
38
+ });
39
+ }
20
40
  hideFilter() {
21
41
  this.filterVisible = false;
22
42
  }
@@ -32,7 +52,7 @@ export class RecordTableColumn {
32
52
  addFilter(columnValues, operator) {
33
53
  this.filterSetup = {
34
54
  fieldCode: this.fieldCode,
35
- operator: operator ?? this.filterDef.operators[0],
55
+ operator: operator ?? this.filterDef?.operators[0],
36
56
  values: columnValues,
37
57
  };
38
58
  }
@@ -58,4 +78,4 @@ export class RecordTableColumn {
58
78
  }
59
79
  }
60
80
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy90YWJsZS9jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxPQUFPLGlCQUFpQjtJQWdCNUIsWUFBWSxtQkFBbUIsRUFBRSxVQUFVO1FBTDNDLFVBQVU7UUFDVixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUs3QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDO1lBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDO1lBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUN2RixNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDcEssSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuSSxJQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFtQixFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBbUIsRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsbUJBQW1CLEVBQUUsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsZ0JBQWdCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDZixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxJQUFJLElBQUk7U0FDMUMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFZLEVBQUUsUUFBUTtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixRQUFRLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNqRCxNQUFNLEVBQUUsWUFBWTtTQUNyQixDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BGLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7U0FDaEM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFlLEVBQUUsT0FBZ0I7UUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZpbHRlckRlZiB7XG4gIG9wZXJhdG9yczogc3RyaW5nW107XG4gIG9wdGlvbnM6IGFueVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclNldHVwIHtcbiAgZmllbGRDb2RlOiBzdHJpbmc7XG4gIG9wZXJhdG9yOiBzdHJpbmc7XG4gIHZhbHVlczogYW55W107XG59XG5leHBvcnQgY2xhc3MgUmVjb3JkVGFibGVDb2x1bW4ge1xuICBfZm9ybUNvbmZpZzogYW55O1xuICBmaWVsZENvZGU6IHN0cmluZztcbiAgZmllbGRUaXRsZTogc3RyaW5nO1xuICBmaWVsZFR5cGU6IHN0cmluZztcbiAgZmllbGRBbGlnbm1lbnQ6IHN0cmluZztcbiAgZmllbGRGb3JtYXQ6IHN0cmluZztcbiAgdmlzaWJsZTogYm9vbGVhbjtcbiAgc29ydGFibGU6IGJvb2xlYW47XG4gIHNvcnREaXJlY3Rpb25zOiBzdHJpbmdbXTtcbiAgY3VzdG9tQXR0cmlidXRlczogYW55O1xuICAvLyBGaWx0cm9zXG4gIGZpbHRlclZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyRGVmOiBGaWx0ZXJEZWY7XG4gIGZpbHRlclNldHVwOiBGaWx0ZXJTZXR1cDtcblxuICBjb25zdHJ1Y3RvcihyZWNUYWJsZUNvbFJlY2VpdmVkLCBmb3JtQ29uZmlnKSB7XG4gICAgdGhpcy5fZm9ybUNvbmZpZyA9IGZvcm1Db25maWc7XG4gICAgdGhpcy5maWx0ZXJEZWYgPSBudWxsO1xuICAgIGlmIChyZWNUYWJsZUNvbFJlY2VpdmVkKSB7XG4gICAgICB0aGlzLmZpZWxkQ29kZSA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQuZmllbGRDb2RlO1xuICAgICAgdGhpcy5maWVsZFRpdGxlID0gcmVjVGFibGVDb2xSZWNlaXZlZC5maWVsZFRpdGxlO1xuICAgICAgdGhpcy5maWVsZFR5cGUgPSByZWNUYWJsZUNvbFJlY2VpdmVkLmZpZWxkVHlwZUNvZGUgfHwgdGhpcy5fZm9ybUNvbmZpZy5maWVsZFR5cGVzLnRleHQ7XG4gICAgICBjb25zdCBkZWZhdWx0VHlwZUFsaWdubWVudCA9ICh0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5maWVsZFR5cGVdICE9IG51bGwpID8gdGhpcy5fZm9ybUNvbmZpZy50YWJsZUZpZWxkU3R5bGVzW3RoaXMuZmllbGRUeXBlXVsndGV4dC1hbGlnbiddIDogJ2xlZnQnO1xuICAgICAgdGhpcy5maWVsZEFsaWdubWVudCA9IChyZWNUYWJsZUNvbFJlY2VpdmVkLmFsaWdubWVudCAhPSBudWxsKSA/IHJlY1RhYmxlQ29sUmVjZWl2ZWQuYWxpZ25tZW50LnRvTG93ZXJDYXNlKCkgOiBkZWZhdWx0VHlwZUFsaWdubWVudDtcbiAgICAgIHRoaXMudmlzaWJsZSA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQ/LnZpc2libGUgPz8gdHJ1ZTtcbiAgICAgIHRoaXMuc29ydGFibGUgPSByZWNUYWJsZUNvbFJlY2VpdmVkPy5zb3J0YWJsZSA/PyBmYWxzZTtcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbnMgPSAodGhpcy5zb3J0YWJsZSkgPyBbJ2FzY2VuZCcsICdkZXNjZW5kJ10gOiBbbnVsbF07XG4gICAgICB0aGlzLmZpZWxkRm9ybWF0ID0gcmVjVGFibGVDb2xSZWNlaXZlZC5mb3JtYXQgfHwgJyc7XG4gICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMgPSByZWNUYWJsZUNvbFJlY2VpdmVkPy5jdXN0b21BdHRyaWJ1dGVzID8/IHt9O1xuICAgIH1cbiAgfVxuXG4gIGhpZGVGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXJWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBhZGRGaWx0ZXJEZWZpbml0aW9uKGZpbHRlckRlZmluaXRpb24pIHtcbiAgICB0aGlzLmZpbHRlckRlZiA9IHtcbiAgICAgIG9wZXJhdG9yczogZmlsdGVyRGVmaW5pdGlvbi5vcGVyYXRvcnMsXG4gICAgICBvcHRpb25zOiBmaWx0ZXJEZWZpbml0aW9uLm9wdGlvbnMgPz8gbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGZpbHRlckRlZmluaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyRGVmO1xuICB9XG5cbiAgYWRkRmlsdGVyKGNvbHVtblZhbHVlcywgb3BlcmF0b3IpIHtcbiAgICB0aGlzLmZpbHRlclNldHVwID0ge1xuICAgICAgZmllbGRDb2RlOiB0aGlzLmZpZWxkQ29kZSxcbiAgICAgIG9wZXJhdG9yOiBvcGVyYXRvciA/PyB0aGlzLmZpbHRlckRlZi5vcGVyYXRvcnNbMF0sXG4gICAgICB2YWx1ZXM6IGNvbHVtblZhbHVlcyxcbiAgICB9XG4gIH1cblxuICBnZXQgZmlsdGVyKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlclNldHVwO1xuICB9XG5cbiAgcmVtb3ZlRmlsdGVyKCkge1xuICAgIHRoaXMuZmlsdGVyU2V0dXAgPSBudWxsO1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgaWYgKHRoaXMuZmlsdGVyRGVmPy5vcGVyYXRvcnM/Lmxlbmd0aCA9PT0gMSAmJiB0aGlzLmZpbHRlckRlZj8ub3BlcmF0b3JzWzBdID09PSAnSU4nKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJEZWY/Lm9wdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc2VyU29ydERpcmVjdGlvbnMoYXNjZW5kOiBib29sZWFuLCBkZXNjZW5kOiBib29sZWFuKSB7XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9ucyA9IFtdO1xuICAgIGlmIChhc2NlbmQpIHtcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbnMudW5zaGlmdCgnYXNjZW5kJyk7XG4gICAgfVxuICAgIGlmIChkZXNjZW5kKSB7XG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb25zLnVuc2hpZnQoJ2Rlc2NlbmQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy90YWJsZS9jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxPQUFPLGlCQUFpQjtJQWdCNUIsWUFBWSxtQkFBbUIsRUFBRSxVQUFVO1FBZDNDLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFDM0IsVUFBVTtRQUNWLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGNBQVMsR0FBcUIsSUFBSSxDQUFDO1FBQ25DLGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUdyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDO1lBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDO1lBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUN2RixNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENB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RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFlLEVBQUUsT0FBZ0I7UUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZpbHRlckRlZiB7XG4gIG9wZXJhdG9yczogc3RyaW5nW107XG4gIG9wdGlvbnM6IGFueVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclNldHVwIHtcbiAgZmllbGRDb2RlOiBzdHJpbmc7XG4gIG9wZXJhdG9yOiBzdHJpbmc7XG4gIHZhbHVlczogYW55W107XG59XG5leHBvcnQgY2xhc3MgUmVjb3JkVGFibGVDb2x1bW4ge1xuICBfZm9ybUNvbmZpZzogYW55O1xuICBmaWVsZENvZGU6IHN0cmluZyA9ICcnO1xuICBmaWVsZFRpdGxlOiBzdHJpbmcgPSAnJztcbiAgZmllbGRUeXBlOiBzdHJpbmcgPSAnJztcbiAgZmllbGRBbGlnbm1lbnQ6IHN0cmluZyA9ICcnO1xuICBmaWVsZEZvcm1hdDogc3RyaW5nID0gJyc7XG4gIHZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuICBzb3J0YWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIHNvcnREaXJlY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuICBjdXN0b21BdHRyaWJ1dGVzOiBhbnkgPSB7fTtcbiAgLy8gRmlsdHJvc1xuICBmaWx0ZXJWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbHRlckRlZjogRmlsdGVyRGVmIHwgbnVsbCA9IG51bGw7XG4gIGZpbHRlclNldHVwOiBGaWx0ZXJTZXR1cCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHJlY1RhYmxlQ29sUmVjZWl2ZWQsIGZvcm1Db25maWcpIHtcbiAgICB0aGlzLl9mb3JtQ29uZmlnID0gZm9ybUNvbmZpZztcbiAgICB0aGlzLmZpbHRlckRlZiA9IG51bGw7XG4gICAgaWYgKHJlY1RhYmxlQ29sUmVjZWl2ZWQpIHtcbiAgICAgIHRoaXMuZmllbGRDb2RlID0gcmVjVGFibGVDb2xSZWNlaXZlZC5maWVsZENvZGU7XG4gICAgICB0aGlzLmZpZWxkVGl0bGUgPSByZWNUYWJsZUNvbFJlY2VpdmVkLmZpZWxkVGl0bGU7XG4gICAgICB0aGlzLmZpZWxkVHlwZSA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQuZmllbGRUeXBlQ29kZSB8fCB0aGlzLl9mb3JtQ29uZmlnLmZpZWxkVHlwZXMudGV4dDtcbiAgICAgIGNvbnN0IGRlZmF1bHRUeXBlQWxpZ25tZW50ID0gKHRoaXMuX2Zvcm1Db25maWcudGFibGVGaWVsZFN0eWxlc1t0aGlzLmZpZWxkVHlwZV0gIT0gbnVsbCkgPyB0aGlzLl9mb3JtQ29uZmlnLnRhYmxlRmllbGRTdHlsZXNbdGhpcy5maWVsZFR5cGVdWyd0ZXh0LWFsaWduJ10gOiAnbGVmdCc7XG4gICAgICB0aGlzLmZpZWxkQWxpZ25tZW50ID0gKHJlY1RhYmxlQ29sUmVjZWl2ZWQuYWxpZ25tZW50ICE9IG51bGwpID8gcmVjVGFibGVDb2xSZWNlaXZlZC5hbGlnbm1lbnQudG9Mb3dlckNhc2UoKSA6IGRlZmF1bHRUeXBlQWxpZ25tZW50O1xuICAgICAgdGhpcy52aXNpYmxlID0gcmVjVGFibGVDb2xSZWNlaXZlZD8udmlzaWJsZSA/PyB0cnVlO1xuICAgICAgdGhpcy5zb3J0YWJsZSA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQ/LnNvcnRhYmxlID8/IGZhbHNlO1xuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9ucyA9ICh0aGlzLnNvcnRhYmxlKSA/IFsnYXNjZW5kJywgJ2Rlc2NlbmQnXSA6IFtdO1xuICAgICAgdGhpcy5maWVsZEZvcm1hdCA9IHJlY1RhYmxlQ29sUmVjZWl2ZWQuZm9ybWF0IHx8ICcnO1xuICAgICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVzID0gcmVjVGFibGVDb2xSZWNlaXZlZD8uY3VzdG9tQXR0cmlidXRlcyA/PyB7fTtcbiAgICB9XG4gIH1cblxuICBnZXRDdXN0b21BdHRyaWJ1dGUobmFtZTogc3RyaW5nKTogYW55IHsgcmV0dXJuIHRoaXMuY3VzdG9tQXR0cmlidXRlcz8uW25hbWVdID8/IG51bGw7IH1cbiAgc2V0Q3VzdG9tQXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQgeyBpZiAobmFtZSkgeyB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTsgfSB9XG5cbiAgc2V0Q3VzdG9tQXR0cmlidXRlcyhhdHRyaWJ1dGVzOiBhbnkpOiB2b2lkIHtcbiAgICBPYmplY3QuZW50cmllcyhhdHRyaWJ1dGVzKS5mb3JFYWNoKChbbmFtZSwgdmFsdWVdKSA9PiB7XG4gICAgICB0aGlzLnNldEN1c3RvbUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBoaWRlRmlsdGVyKCkge1xuICAgIHRoaXMuZmlsdGVyVmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgYWRkRmlsdGVyRGVmaW5pdGlvbihmaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgdGhpcy5maWx0ZXJEZWYgPSB7XG4gICAgICBvcGVyYXRvcnM6IGZpbHRlckRlZmluaXRpb24ub3BlcmF0b3JzLFxuICAgICAgb3B0aW9uczogZmlsdGVyRGVmaW5pdGlvbi5vcHRpb25zID8/IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBmaWx0ZXJEZWZpbml0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckRlZjtcbiAgfVxuXG4gIGFkZEZpbHRlcihjb2x1bW5WYWx1ZXMsIG9wZXJhdG9yKSB7XG4gICAgdGhpcy5maWx0ZXJTZXR1cCA9IHtcbiAgICAgIGZpZWxkQ29kZTogdGhpcy5maWVsZENvZGUsXG4gICAgICBvcGVyYXRvcjogb3BlcmF0b3IgPz8gdGhpcy5maWx0ZXJEZWY/Lm9wZXJhdG9yc1swXSxcbiAgICAgIHZhbHVlczogY29sdW1uVmFsdWVzLFxuICAgIH1cbiAgfVxuXG4gIGdldCBmaWx0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyU2V0dXA7XG4gIH1cblxuICByZW1vdmVGaWx0ZXIoKSB7XG4gICAgdGhpcy5maWx0ZXJTZXR1cCA9IG51bGw7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJEZWY/Lm9wZXJhdG9ycz8ubGVuZ3RoID09PSAxICYmIHRoaXMuZmlsdGVyRGVmPy5vcGVyYXRvcnNbMF0gPT09ICdJTicpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlckRlZj8ub3B0aW9ucztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzZXJTb3J0RGlyZWN0aW9ucyhhc2NlbmQ6IGJvb2xlYW4sIGRlc2NlbmQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb25zID0gW107XG4gICAgaWYgKGFzY2VuZCkge1xuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9ucy51bnNoaWZ0KCdhc2NlbmQnKTtcbiAgICB9XG4gICAgaWYgKGRlc2NlbmQpIHtcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbnMudW5zaGlmdCgnZGVzY2VuZCcpO1xuICAgIH1cbiAgfVxufVxuIl19