vcomply-workflow-engine 3.9.6 → 3.9.8

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.
@@ -71,6 +71,7 @@ export class SelectTemplateListComponent {
71
71
  this.loader = true;
72
72
  const payload = {
73
73
  type: 'custom',
74
+ categoryId: this.selectedCategoryId.map((category) => category.item_id),
74
75
  };
75
76
  this.templateService.fetchTemplates(payload).subscribe((res) => {
76
77
  this.customTemplates = res?.templates ?? [];
@@ -78,6 +79,7 @@ export class SelectTemplateListComponent {
78
79
  });
79
80
  }
80
81
  mapCustomTemplate() {
82
+ console.log('userCreatedCategoryList', this.userCreatedCategoryList, this.selectedCategoryId);
81
83
  this.policyService.getCategoriesList().subscribe((res) => {
82
84
  this.userCreatedCategoryList = [...res];
83
85
  this.userCreatedCategoryList = this.userCreatedCategoryList.map((res) => {
@@ -100,7 +102,11 @@ export class SelectTemplateListComponent {
100
102
  console.log('userCreatedCategoryList dxwde', this.userCreatedCategoryList, this.customTemplates, this.customTemplates);
101
103
  }
102
104
  this.templateList = [...new Set(this.customTemplates ?? [])];
105
+ const categoryIds = this.selectedCategoryId.map((category) => category.item_id);
106
+ console.log('categoryIds', categoryIds);
107
+ this.userCreatedCategoryList = this.userCreatedCategoryList.filter((category) => categoryIds?.includes(category.item_id));
103
108
  this.loader = false;
109
+ console.log('userCreatedCategoryList', this.userCreatedCategoryList, this.selectedCategoryId);
104
110
  this.categoryList = this.userCreatedCategoryList;
105
111
  });
106
112
  }
@@ -204,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
204
210
  }], onTemplateSelect: [{
205
211
  type: Output
206
212
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVF4QyxNQUFNLE9BQU8sMkJBQTJCO0lBd0J0QyxZQUNVLGVBQWdDLEVBQ2hDLGFBQTRCO1FBRDVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXpCdEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Isb0JBQWUsR0FBaUIsSUFBSSxDQUFDO1FBQ3JDLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUN6Qix3QkFBbUIsR0FB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LEdBQUcsQ0FBQztnQkFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO2dCQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F4TlUsMkJBQTJCO21HQUEzQiwyQkFBMkIseUtDZHhDLHk4SkFtSUE7OzRGRHJIYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCO2tJQXlCM0Isa0JBQWtCO3NCQUExQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RlbXBsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIE5PX0RBVEFfRk9VTkRfSU1BR0UsXHJcbiAgTk9fREFUQV9GT1VORF9NRVNTQUdFLFxyXG59IGZyb20gJy4uL2NvbnN0YW50cy90ZW1wbGF0ZS5jb25zdGFudCc7XHJcbmltcG9ydCB7IFBvbGljeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9wb2xpY3kuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zZWxlY3QtdGVtcGxhdGUtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC10ZW1wbGF0ZS1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtdGVtcGxhdGUtbGlzdC5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0VGVtcGxhdGVMaXN0Q29tcG9uZW50IHtcclxuICBhbmltYXRpb24gPSBmYWxzZTtcclxuICBkZWZhdWx0VGVtcGxhdGVzOiBhbnlbXSA9IFtdO1xyXG4gIGN1c3RvbVRlbXBsYXRlczogYW55W10gfCBudWxsID0gbnVsbDtcclxuICB0ZW1wbGF0ZUxpc3Q6IGFueVtdID0gW107XHJcbiAgY3VycmVudFRhYiA9ICdWQ09NUExZJztcclxuICBsb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeUxpc3Q6IGFueVtdID0gW107XHJcbiAgZGVmYXVsdENhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcclxuICB1c2VyQ3JlYXRlZENhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcclxuICBzb3J0U3RhdHVzID0gLTE7XHJcbiAgc2VhcmNoQ2F0ZWdvcnk6IHN0cmluZyA9ICcnO1xyXG4gIHNlYXJjaFRlbXBsYXRlOiBzdHJpbmcgPSAnJztcclxuICBzZWxlY3RlZENhdGVnb3J5OiBhbnlbXSA9IFtdO1xyXG4gIE5PX0RBVEFfRk9VTkRfSU1BR0UgPSBOT19EQVRBX0ZPVU5EX0lNQUdFO1xyXG4gIE5PX0RBVEFfRk9VTkRfTUVTU0FHRSA9IE5PX0RBVEFfRk9VTkRfTUVTU0FHRTtcclxuICBzZWxlY3RlZFRlbXBsYXRlOiBhbnlbXSA9IFtdO1xyXG4gIGlzUHJldmlldyA9IGZhbHNlO1xyXG4gIGRvY0RhdGE6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gIHByZXZpZXdUZW1wbGF0ZTogYW55O1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3J5SWQ6IG51bWJlcltdID0gW107XHJcbiAgQE91dHB1dCgpIG9uVGVtcGxhdGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlU2VydmljZTogVGVtcGxhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwb2xpY3lTZXJ2aWNlOiBQb2xpY3lTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0QW5pbWF0aW9uKCk7XHJcbiAgICB0aGlzLmdldFRlbXBsYXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRBbmltYXRpb24oKSB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBzd2l0Y2hUYWIodGFiOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY3VycmVudFRhYiA9IHRhYjtcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IFtdO1xyXG4gICAgaWYgKHRhYiA9PT0gJ1ZDT01QTFknKSB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gWy4uLnRoaXMuZGVmYXVsdFRlbXBsYXRlc107XHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gdGhpcy5kZWZhdWx0Q2F0ZWdvcnlMaXN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuY3VzdG9tVGVtcGxhdGVzID09PSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5nZXRDdXN0b21UZW1wbGF0ZXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IFsuLi50aGlzLmN1c3RvbVRlbXBsYXRlc107XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDdXN0b21UZW1wbGF0ZXMoKSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICB0eXBlOiAnY3VzdG9tJyxcclxuICAgIH07XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZS5mZXRjaFRlbXBsYXRlcyhwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzID0gcmVzPy50ZW1wbGF0ZXMgPz8gW107XHJcbiAgICAgIHRoaXMubWFwQ3VzdG9tVGVtcGxhdGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbWFwQ3VzdG9tVGVtcGxhdGUoKSB7XHJcbiAgICB0aGlzLnBvbGljeVNlcnZpY2UuZ2V0Q2F0ZWdvcmllc0xpc3QoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QgPSBbLi4ucmVzXTtcclxuICAgICAgdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QubWFwKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ3JlcycsIHJlcyk7XHJcbiAgICAgICAgICBjb25zdCBwYXJlbnRJdGVtcyA9IFsuLi5uZXcgU2V0KHJlcz8ucGFyZW50X2l0ZW1zID8/IFtdKV07XHJcbiAgICAgICAgICBwYXJlbnRJdGVtcy51bnNoaWZ0KHJlcy5pdGVtX25hbWUpO1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgICBuYW1lOiBwYXJlbnRJdGVtcz8uam9pbignIDwgJyksXHJcbiAgICAgICAgICAgIHBhcmVudF9pdGVtczogcmVzPy5wYXJlbnRfaXRlbXMucmV2ZXJzZSgpLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0aGlzLmN1c3RvbVRlbXBsYXRlcykge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzID0gdGhpcy5jdXN0b21UZW1wbGF0ZXMubWFwKCh0ZW1wbGF0ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi50ZW1wbGF0ZSxcclxuICAgICAgICAgICAgY2F0ZWdvcnlEZXRhaWxzOiB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT5cclxuICAgICAgICAgICAgICAgIHRlbXBsYXRlPy5jYXRlZ29yeUlkPy5pbmNsdWRlcyhjYXRlZ29yeS5pdGVtX2lkKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICd1c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCBkeHdkZScsXHJcbiAgICAgICAgICB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0LFxyXG4gICAgICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXMsXHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlc1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmN1c3RvbVRlbXBsYXRlcyA/PyBbXSldO1xyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3Q7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgfTtcclxuICAgIGZvcmtKb2luKFtcclxuICAgICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZmV0Y2hUZW1wbGF0ZXMocGF5bG9hZCksXHJcbiAgICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmZldGNoRGVmYXVsdENhdGVnb3JpZXMoKSxcclxuICAgIF0pLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5kZWZhdWx0VGVtcGxhdGVzID0gcmVzWzBdPy50ZW1wbGF0ZXM7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENhdGVnb3J5TGlzdCA9IHJlc1sxXTtcclxuICAgICAgdGhpcy5tYXBEZWZhdWx0VGVtcGxhdGUoKTtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3QpXTtcclxuXHJcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gdGhpcy5kZWZhdWx0VGVtcGxhdGVzO1xyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtYXBEZWZhdWx0VGVtcGxhdGUoKSB7XHJcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMgPSB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMubWFwKCh0ZW1wbGF0ZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5kZWZhdWx0Q2F0ZWdvcnlMaXN0LmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cclxuICAgICAgICB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uaW5jbHVkZXMoY2F0ZWdvcnkuaXRlbV9pZClcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi50ZW1wbGF0ZSxcclxuICAgICAgICBjYXRlZ29yeURldGFpbHM6IGNhdGVnb3J5LFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzb3J0Qnkoa2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc29ydFN0YXR1cyA9IHRoaXMuc29ydFN0YXR1cyAqIC0xO1xyXG4gICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSB0aGlzLnRlbXBsYXRlU2VydmljZS5zb3J0QnlLZXkoXHJcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0LFxyXG4gICAgICBrZXksXHJcbiAgICAgIHRoaXMuc29ydFN0YXR1c1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0Q2F0ZWdvcnkoY2F0ZWdvcnk6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5wdXNoKGNhdGVnb3J5Py5pdGVtX2lkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5maWx0ZXIoXHJcbiAgICAgICAgKGlkOiBhbnkpID0+IGlkICE9PSBjYXRlZ29yeT8uaXRlbV9pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZENhdGVnb3J5KV07XHJcbiAgfVxyXG5cclxuICBvbkFwcGx5RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gW107XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBzZWxlY3RlZFRlbXBsYXRlID1cclxuICAgICAgdGhpcy5jdXJyZW50VGFiID09PSAnVkNPTVBMWSdcclxuICAgICAgICA/IHRoaXMuZGVmYXVsdFRlbXBsYXRlc1xyXG4gICAgICAgIDogdGhpcy5jdXN0b21UZW1wbGF0ZXMgPz8gW107XHJcbiAgICBzZWxlY3RlZFRlbXBsYXRlID0gWy4uLm5ldyBTZXQoc2VsZWN0ZWRUZW1wbGF0ZSldO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBzZWxlY3RlZFRlbXBsYXRlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IHNlbGVjdGVkVGVtcGxhdGUuZmlsdGVyKCh0ZW1wbGF0ZTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uc29tZSgoaWQ6IGFueSkgPT5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuaW5jbHVkZXMoaWQpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0VGVtcGxhdGUodGVtcGxhdGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlID0gW3RlbXBsYXRlXTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLm9uVGVtcGxhdGVTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkVGVtcGxhdGUpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLm9uVGVtcGxhdGVTZWxlY3QuZW1pdChbXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVFdmVudCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IFtdO1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aWV3KGRldGFpbHM6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5nZXRQcmV2aWV3RGF0YShkZXRhaWxzPy5faWQpO1xyXG4gICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUgPSBkZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZVByZXZpZXcoKSB7XHJcbiAgICB0aGlzLmlzUHJldmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kb2NEYXRhID0gbnVsbDtcclxuICAgIHRoaXMucHJldmlld1RlbXBsYXRlID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpZXdEYXRhKHRlbXBsYXRlSWQ6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSByZXM7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRvY0RhdGEgPSByZXNwb25zZTtcclxuICAgICAgICB0aGlzLmlzUHJldmlldyA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3RcIlxyXG4gIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiXHJcbiAgW2NsYXNzLndpdGhQcmV2aWV3XT1cImlzUHJldmlld1wiXHJcbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUHJldmlld1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgYSBUZW1wbGF0ZTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3QtYm9keVwiPlxyXG4gICAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LW1iLTJcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoVGFiKCdWQ09NUExZJylcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBiLTIgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdWQ09NUExZJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgVkNPTVBMWSBURU1QTEFURVNcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoVGFiKCdVU0VSX0NSRUFURUQnKVwiXHJcbiAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFRhYiA9PT0gJ1VTRVJfQ1JFQVRFRCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFVTRVItQ1JFQVRFRCBURU1QTEFURVNcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2sgdngtbWItMlwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlbXBsYXRlXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJvZHktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1lbmQgdngtbWItMlwiPlxyXG4gICAgICAgIDxjcy1tdWx0aS1zZWxlY3RcclxuICAgICAgICAgIChzZWFyY2hUZXh0KT1cInNlYXJjaENhdGVnb3J5ID0gJGV2ZW50XCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENhdGVnb3J5J1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgICAgICAgICAoYXBwbHlGaWx0ZXIpPVwib25BcHBseUZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgIGxldCBlYWNoQ2F0ZWdvcnkgb2YgY2F0ZWdvcnlMaXN0XHJcbiAgICAgICAgICAgICAgICB8IFNlYXJjaEJ5S2V5cyA6IFsnbmFtZSddIDogc2VhcmNoQ2F0ZWdvcnlcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGNzLW11bHRpLXNlbGVjdC1vcHRpb25cclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJlYWNoQ2F0ZWdvcnk/Lm5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJlYWNoQ2F0ZWdvcnk/Lml0ZW1faWRcIlxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3RDYXRlZ29yeShlYWNoQ2F0ZWdvcnksICRldmVudClcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgZWFjaENhdGVnb3J5Py5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvY3MtbXVsdGktc2VsZWN0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvY3MtbXVsdGktc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJvZHktaW5uZXIgdngtbWItMVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgdGVtcGxhdGVMaXN0XHJcbiAgICAgICAgICAgICAgICB8IFNlYXJjaEJ5S2V5c1xyXG4gICAgICAgICAgICAgICAgICA6IFsnbmFtZScsICdjYXRlZ29yeURldGFpbHMnXVxyXG4gICAgICAgICAgICAgICAgICA6IHNlYXJjaFRlbXBsYXRlIGFzIGFsbFRlbXBsYXRlXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxhcHAtdGVtcGxhdGUtbGlzdC10YWJsZVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWxsVGVtcGxhdGUubGVuZ3RoXCJcclxuICAgICAgICAgICAgICBbdGVtcGxhdGVMaXN0XT1cImFsbFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICBbbG9hZGVyXT1cImxvYWRlclwiXHJcbiAgICAgICAgICAgICAgW2NhdGVnb3J5TGlzdF09XCJjYXRlZ29yeUxpc3RcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3RlZFRlbXBsYXRlXT1cInNlbGVjdGVkVGVtcGxhdGVbMF1cIlxyXG4gICAgICAgICAgICAgIChvblNvcnQpPVwic29ydEJ5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvblNlbGVjdFRlbXBsYXRlKT1cIm9uU2VsZWN0VGVtcGxhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uUHJldmlldyk9XCJvblByZXZpZXcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2FwcC10ZW1wbGF0ZS1saXN0LXRhYmxlPlxyXG4gICAgICAgICAgICA8YXBwLW5vLWRhdGFcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFhbGxUZW1wbGF0ZT8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiTk9fREFUQV9GT1VORF9JTUFHRVwiXHJcbiAgICAgICAgICAgICAgW25vRGF0YVRleHRdPVwiTk9fREFUQV9GT1VORF9NRVNTQUdFXCJcclxuICAgICAgICAgICAgPjwvYXBwLW5vLWRhdGE+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8YXBwLWZsb2F0aW5nLWJhclxyXG4gICAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXHJcbiAgICAgICAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCJcclxuICAgICAgICBbaXNEaXNhYmxlZF09XCJzZWxlY3RlZFRlbXBsYXRlPy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRUZW1wbGF0ZVwiXHJcbiAgICAgICAgW2Rpc3BsYXlFbGVtZW50S2V5XT1cIiduYW1lJ1wiXHJcbiAgICAgICAgW3Npbmd1bGFyVGV4dF09XCInVGVtcGxhdGUgU2VsZWN0ZWQnXCJcclxuICAgICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9hcHAtZmxvYXRpbmctYmFyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJldmlld1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC00IHZ4LXByLTRcIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VQcmV2aWV3KClcIlxyXG4gICAgICAgIGNsYXNzPVwicHJldmlld0J0biB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIj4mI3hlOTFkOzwvaT5QcmV2aWV3XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ0ZW1wbGF0ZS1uYW1lIHZ4LWZzLTE0IHZ4LW1sLTFcIlxyXG4gICAgICAgIFthcHBUb29sdGlwXT1cInByZXZpZXdUZW1wbGF0ZT8ubmFtZVwiXHJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBwcmV2aWV3VGVtcGxhdGU/Lm5hbWUgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXRlbXBsYXRlLWJvZHkgdngtZC1mbGV4IHZ4LWp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRlclwiIGNsYXNzPVwicHJldmlldy10ZW1wbGF0ZS1ib2R5LWlubmVyXCI+XHJcbiAgICAgICAgPGFwcC12aWV3LXBvbGljeSAjdmlld19wb2xpY3kgW2NvbnRlbnRzXT1cImRvY0RhdGFcIj4gPC9hcHAtdmlldy1wb2xpY3k+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wb2xpY3ktdGVtcGxhdGUvc2VsZWN0LXRlbXBsYXRlLWxpc3Qvc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVF4QyxNQUFNLE9BQU8sMkJBQTJCO0lBd0J0QyxZQUNVLGVBQWdDLEVBQ2hDLGFBQTRCO1FBRDVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXpCdEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Isb0JBQWUsR0FBaUIsSUFBSSxDQUFDO1FBQ3JDLGlCQUFZLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFDdkIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUN6Qix3QkFBbUIsR0FB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dEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdGVtcGxhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgTk9fREFUQV9GT1VORF9JTUFHRSxcclxuICBOT19EQVRBX0ZPVU5EX01FU1NBR0UsXHJcbn0gZnJvbSAnLi4vY29uc3RhbnRzL3RlbXBsYXRlLmNvbnN0YW50JztcclxuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNlbGVjdC10ZW1wbGF0ZS1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LXRlbXBsYXRlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC10ZW1wbGF0ZS1saXN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RUZW1wbGF0ZUxpc3RDb21wb25lbnQge1xyXG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gIGRlZmF1bHRUZW1wbGF0ZXM6IGFueVtdID0gW107XHJcbiAgY3VzdG9tVGVtcGxhdGVzOiBhbnlbXSB8IG51bGwgPSBudWxsO1xyXG4gIHRlbXBsYXRlTGlzdDogYW55W10gPSBbXTtcclxuICBjdXJyZW50VGFiID0gJ1ZDT01QTFknO1xyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNhdGVnb3J5TGlzdDogYW55W10gPSBbXTtcclxuICBkZWZhdWx0Q2F0ZWdvcnlMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIHVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIHNvcnRTdGF0dXMgPSAtMTtcclxuICBzZWFyY2hDYXRlZ29yeTogc3RyaW5nID0gJyc7XHJcbiAgc2VhcmNoVGVtcGxhdGU6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkQ2F0ZWdvcnk6IGFueVtdID0gW107XHJcbiAgTk9fREFUQV9GT1VORF9JTUFHRSA9IE5PX0RBVEFfRk9VTkRfSU1BR0U7XHJcbiAgTk9fREFUQV9GT1VORF9NRVNTQUdFID0gTk9fREFUQV9GT1VORF9NRVNTQUdFO1xyXG4gIHNlbGVjdGVkVGVtcGxhdGU6IGFueVtdID0gW107XHJcbiAgaXNQcmV2aWV3ID0gZmFsc2U7XHJcbiAgZG9jRGF0YTogYW55IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJldmlld1RlbXBsYXRlOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcnlJZDogbnVtYmVyW10gPSBbXTtcclxuICBAT3V0cHV0KCkgb25UZW1wbGF0ZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGVtcGxhdGVTZXJ2aWNlOiBUZW1wbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBvbGljeVNlcnZpY2U6IFBvbGljeVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRBbmltYXRpb24oKTtcclxuICAgIHRoaXMuZ2V0VGVtcGxhdGUoKTtcclxuICB9XHJcblxyXG4gIHNldEFuaW1hdGlvbigpIHtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIHN3aXRjaFRhYih0YWI6IHN0cmluZykge1xyXG4gICAgdGhpcy5jdXJyZW50VGFiID0gdGFiO1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gW107XHJcbiAgICBpZiAodGFiID09PSAnVkNPTVBMWScpIHtcclxuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBbLi4udGhpcy5kZWZhdWx0VGVtcGxhdGVzXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSB0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5jdXN0b21UZW1wbGF0ZXMgPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmdldEN1c3RvbVRlbXBsYXRlcygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gWy4uLnRoaXMuY3VzdG9tVGVtcGxhdGVzXTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3Q7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEN1c3RvbVRlbXBsYXRlcygpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIHR5cGU6ICdjdXN0b20nLFxyXG4gICAgICBjYXRlZ29yeUlkOiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZC5tYXAoXHJcbiAgICAgICAgKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5Lml0ZW1faWRcclxuICAgICAgKSxcclxuICAgIH07XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZS5mZXRjaFRlbXBsYXRlcyhwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzID0gcmVzPy50ZW1wbGF0ZXMgPz8gW107XHJcbiAgICAgIHRoaXMubWFwQ3VzdG9tVGVtcGxhdGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbWFwQ3VzdG9tVGVtcGxhdGUoKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ3VzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0JyxcclxuICAgICAgdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCxcclxuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5SWRcclxuICAgICk7XHJcbiAgICB0aGlzLnBvbGljeVNlcnZpY2UuZ2V0Q2F0ZWdvcmllc0xpc3QoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QgPSBbLi4ucmVzXTtcclxuICAgICAgdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QubWFwKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ3JlcycsIHJlcyk7XHJcbiAgICAgICAgICBjb25zdCBwYXJlbnRJdGVtcyA9IFsuLi5uZXcgU2V0KHJlcz8ucGFyZW50X2l0ZW1zID8/IFtdKV07XHJcbiAgICAgICAgICBwYXJlbnRJdGVtcy51bnNoaWZ0KHJlcy5pdGVtX25hbWUpO1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgICBuYW1lOiBwYXJlbnRJdGVtcz8uam9pbignIDwgJyksXHJcbiAgICAgICAgICAgIHBhcmVudF9pdGVtczogcmVzPy5wYXJlbnRfaXRlbXMucmV2ZXJzZSgpLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0aGlzLmN1c3RvbVRlbXBsYXRlcykge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVzID0gdGhpcy5jdXN0b21UZW1wbGF0ZXMubWFwKCh0ZW1wbGF0ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi50ZW1wbGF0ZSxcclxuICAgICAgICAgICAgY2F0ZWdvcnlEZXRhaWxzOiB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT5cclxuICAgICAgICAgICAgICAgIHRlbXBsYXRlPy5jYXRlZ29yeUlkPy5pbmNsdWRlcyhjYXRlZ29yeS5pdGVtX2lkKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICd1c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCBkeHdkZScsXHJcbiAgICAgICAgICB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0LFxyXG4gICAgICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZXMsXHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlc1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmN1c3RvbVRlbXBsYXRlcyA/PyBbXSldO1xyXG4gICAgICBjb25zdCBjYXRlZ29yeUlkcyA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkLm1hcChcclxuICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT4gY2F0ZWdvcnkuaXRlbV9pZFxyXG4gICAgICApO1xyXG4gICAgICBjb25zb2xlLmxvZygnY2F0ZWdvcnlJZHMnLCBjYXRlZ29yeUlkcyk7XHJcbiAgICAgIHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3QgPSB0aGlzLnVzZXJDcmVhdGVkQ2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAoY2F0ZWdvcnk6IGFueSkgPT4gY2F0ZWdvcnlJZHM/LmluY2x1ZGVzKGNhdGVnb3J5Lml0ZW1faWQpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICd1c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCcsXHJcbiAgICAgICAgdGhpcy51c2VyQ3JlYXRlZENhdGVnb3J5TGlzdCxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMudXNlckNyZWF0ZWRDYXRlZ29yeUxpc3Q7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgdHlwZTogJ2RlZmF1bHQnLFxyXG4gICAgfTtcclxuICAgIGZvcmtKb2luKFtcclxuICAgICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZmV0Y2hUZW1wbGF0ZXMocGF5bG9hZCksXHJcbiAgICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmZldGNoRGVmYXVsdENhdGVnb3JpZXMoKSxcclxuICAgIF0pLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5kZWZhdWx0VGVtcGxhdGVzID0gcmVzWzBdPy50ZW1wbGF0ZXM7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENhdGVnb3J5TGlzdCA9IHJlc1sxXTtcclxuICAgICAgdGhpcy5tYXBEZWZhdWx0VGVtcGxhdGUoKTtcclxuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLmRlZmF1bHRDYXRlZ29yeUxpc3QpXTtcclxuXHJcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gdGhpcy5kZWZhdWx0VGVtcGxhdGVzO1xyXG4gICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtYXBEZWZhdWx0VGVtcGxhdGUoKSB7XHJcbiAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMgPSB0aGlzLmRlZmF1bHRUZW1wbGF0ZXMubWFwKCh0ZW1wbGF0ZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5kZWZhdWx0Q2F0ZWdvcnlMaXN0LmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cclxuICAgICAgICB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uaW5jbHVkZXMoY2F0ZWdvcnkuaXRlbV9pZClcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi50ZW1wbGF0ZSxcclxuICAgICAgICBjYXRlZ29yeURldGFpbHM6IGNhdGVnb3J5LFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzb3J0Qnkoa2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc29ydFN0YXR1cyA9IHRoaXMuc29ydFN0YXR1cyAqIC0xO1xyXG4gICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSB0aGlzLnRlbXBsYXRlU2VydmljZS5zb3J0QnlLZXkoXHJcbiAgICAgIHRoaXMudGVtcGxhdGVMaXN0LFxyXG4gICAgICBrZXksXHJcbiAgICAgIHRoaXMuc29ydFN0YXR1c1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0Q2F0ZWdvcnkoY2F0ZWdvcnk6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5wdXNoKGNhdGVnb3J5Py5pdGVtX2lkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5maWx0ZXIoXHJcbiAgICAgICAgKGlkOiBhbnkpID0+IGlkICE9PSBjYXRlZ29yeT8uaXRlbV9pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZENhdGVnb3J5KV07XHJcbiAgfVxyXG5cclxuICBvbkFwcGx5RmlsdGVyKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICghZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gW107XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBzZWxlY3RlZFRlbXBsYXRlID1cclxuICAgICAgdGhpcy5jdXJyZW50VGFiID09PSAnVkNPTVBMWSdcclxuICAgICAgICA/IHRoaXMuZGVmYXVsdFRlbXBsYXRlc1xyXG4gICAgICAgIDogdGhpcy5jdXN0b21UZW1wbGF0ZXMgPz8gW107XHJcbiAgICBzZWxlY3RlZFRlbXBsYXRlID0gWy4uLm5ldyBTZXQoc2VsZWN0ZWRUZW1wbGF0ZSldO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSBzZWxlY3RlZFRlbXBsYXRlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRlbXBsYXRlTGlzdCA9IHNlbGVjdGVkVGVtcGxhdGUuZmlsdGVyKCh0ZW1wbGF0ZTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB0ZW1wbGF0ZT8uY2F0ZWdvcnlJZD8uc29tZSgoaWQ6IGFueSkgPT5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuaW5jbHVkZXMoaWQpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0VGVtcGxhdGUodGVtcGxhdGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlID0gW3RlbXBsYXRlXTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLm9uVGVtcGxhdGVTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkVGVtcGxhdGUpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLm9uVGVtcGxhdGVTZWxlY3QuZW1pdChbXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVFdmVudCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZSA9IFtdO1xyXG4gIH1cclxuXHJcbiAgb25QcmV2aWV3KGRldGFpbHM6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5nZXRQcmV2aWV3RGF0YShkZXRhaWxzPy5faWQpO1xyXG4gICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUgPSBkZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZVByZXZpZXcoKSB7XHJcbiAgICB0aGlzLmlzUHJldmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5kb2NEYXRhID0gbnVsbDtcclxuICAgIHRoaXMucHJldmlld1RlbXBsYXRlID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpZXdEYXRhKHRlbXBsYXRlSWQ6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0VGVtcGxhdGVDb250ZW50KHRlbXBsYXRlSWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgICAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSByZXM7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmRvY0RhdGEgPSByZXNwb25zZTtcclxuICAgICAgICB0aGlzLmlzUHJldmlldyA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3RcIlxyXG4gIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiXHJcbiAgW2NsYXNzLndpdGhQcmV2aWV3XT1cImlzUHJldmlld1wiXHJcbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzUHJldmlld1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgYSBUZW1wbGF0ZTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LXRlbXBsYXRlLWxpc3QtYm9keVwiPlxyXG4gICAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LXRhYiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LW1iLTJcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoVGFiKCdWQ09NUExZJylcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0YWItYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBiLTIgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImN1cnJlbnRUYWIgPT09ICdWQ09NUExZJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgVkNPTVBMWSBURU1QTEFURVNcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoVGFiKCdVU0VSX0NSRUFURUQnKVwiXHJcbiAgICAgICAgICBjbGFzcz1cInRhYi1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGItMiB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY3VycmVudFRhYiA9PT0gJ1VTRVJfQ1JFQVRFRCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIFVTRVItQ1JFQVRFRCBURU1QTEFURVNcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2sgdngtbWItMlwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlbXBsYXRlXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJvZHktdG9wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1lbmQgdngtbWItMlwiPlxyXG4gICAgICAgIDxjcy1tdWx0aS1zZWxlY3RcclxuICAgICAgICAgIChzZWFyY2hUZXh0KT1cInNlYXJjaENhdGVnb3J5ID0gJGV2ZW50XCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IENhdGVnb3J5J1wiXHJcbiAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgICAgICAgICAoYXBwbHlGaWx0ZXIpPVwib25BcHBseUZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgIGxldCBlYWNoQ2F0ZWdvcnkgb2YgY2F0ZWdvcnlMaXN0XHJcbiAgICAgICAgICAgICAgICB8IFNlYXJjaEJ5S2V5cyA6IFsnbmFtZSddIDogc2VhcmNoQ2F0ZWdvcnlcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGNzLW11bHRpLXNlbGVjdC1vcHRpb25cclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJlYWNoQ2F0ZWdvcnk/Lm5hbWVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJlYWNoQ2F0ZWdvcnk/Lml0ZW1faWRcIlxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3RDYXRlZ29yeShlYWNoQ2F0ZWdvcnksICRldmVudClcIlxyXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgZWFjaENhdGVnb3J5Py5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvY3MtbXVsdGktc2VsZWN0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvY3MtbXVsdGktc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJvZHktaW5uZXIgdngtbWItMVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgdGVtcGxhdGVMaXN0XHJcbiAgICAgICAgICAgICAgICB8IFNlYXJjaEJ5S2V5c1xyXG4gICAgICAgICAgICAgICAgICA6IFsnbmFtZScsICdjYXRlZ29yeURldGFpbHMnXVxyXG4gICAgICAgICAgICAgICAgICA6IHNlYXJjaFRlbXBsYXRlIGFzIGFsbFRlbXBsYXRlXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxhcHAtdGVtcGxhdGUtbGlzdC10YWJsZVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWxsVGVtcGxhdGUubGVuZ3RoXCJcclxuICAgICAgICAgICAgICBbdGVtcGxhdGVMaXN0XT1cImFsbFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICBbbG9hZGVyXT1cImxvYWRlclwiXHJcbiAgICAgICAgICAgICAgW2NhdGVnb3J5TGlzdF09XCJjYXRlZ29yeUxpc3RcIlxyXG4gICAgICAgICAgICAgIFtzZWxlY3RlZFRlbXBsYXRlXT1cInNlbGVjdGVkVGVtcGxhdGVbMF1cIlxyXG4gICAgICAgICAgICAgIChvblNvcnQpPVwic29ydEJ5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvblNlbGVjdFRlbXBsYXRlKT1cIm9uU2VsZWN0VGVtcGxhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uUHJldmlldyk9XCJvblByZXZpZXcoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2FwcC10ZW1wbGF0ZS1saXN0LXRhYmxlPlxyXG4gICAgICAgICAgICA8YXBwLW5vLWRhdGFcclxuICAgICAgICAgICAgICAqbmdJZj1cIiFhbGxUZW1wbGF0ZT8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiTk9fREFUQV9GT1VORF9JTUFHRVwiXHJcbiAgICAgICAgICAgICAgW25vRGF0YVRleHRdPVwiTk9fREFUQV9GT1VORF9NRVNTQUdFXCJcclxuICAgICAgICAgICAgPjwvYXBwLW5vLWRhdGE+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8YXBwLWZsb2F0aW5nLWJhclxyXG4gICAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXHJcbiAgICAgICAgKGNsb3NlTGlzdCk9XCJjbG9zZSgpXCJcclxuICAgICAgICBbaXNEaXNhYmxlZF09XCJzZWxlY3RlZFRlbXBsYXRlPy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRUZW1wbGF0ZVwiXHJcbiAgICAgICAgW2Rpc3BsYXlFbGVtZW50S2V5XT1cIiduYW1lJ1wiXHJcbiAgICAgICAgW3Npbmd1bGFyVGV4dF09XCInVGVtcGxhdGUgU2VsZWN0ZWQnXCJcclxuICAgICAgICAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9hcHAtZmxvYXRpbmctYmFyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJldmlld1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInNlbGVjdC10ZW1wbGF0ZS1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC00IHZ4LXByLTRcIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VQcmV2aWV3KClcIlxyXG4gICAgICAgIGNsYXNzPVwicHJldmlld0J0biB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIj4mI3hlOTFkOzwvaT5QcmV2aWV3XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ0ZW1wbGF0ZS1uYW1lIHZ4LWZzLTE0IHZ4LW1sLTFcIlxyXG4gICAgICAgIFthcHBUb29sdGlwXT1cInByZXZpZXdUZW1wbGF0ZT8ubmFtZVwiXHJcbiAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBwcmV2aWV3VGVtcGxhdGU/Lm5hbWUgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXRlbXBsYXRlLWJvZHkgdngtZC1mbGV4IHZ4LWp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRlclwiIGNsYXNzPVwicHJldmlldy10ZW1wbGF0ZS1ib2R5LWlubmVyXCI+XHJcbiAgICAgICAgPGFwcC12aWV3LXBvbGljeSAjdmlld19wb2xpY3kgW2NvbnRlbnRzXT1cImRvY0RhdGFcIj4gPC9hcHAtdmlldy1wb2xpY3k+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=