@yibozhang/pro-table 16.2.1 → 16.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,6 +68,9 @@ export class ColmunsSettingComponent {
68
68
  /**
69
69
  * 同步 options 数组的 checked 状态与 selectedColumns
70
70
  */
71
+ isConfigurableColumn(col) {
72
+ return !col.auxiliaryColumn && !col.hideInTable;
73
+ }
71
74
  syncOptionsWithSelectedColumns() {
72
75
  const selectedProps = this.selectedColumns.map((col) => col.prop);
73
76
  this.options.forEach((option) => {
@@ -75,13 +78,17 @@ export class ColmunsSettingComponent {
75
78
  });
76
79
  }
77
80
  handleModalVisible() {
81
+ this.selectedColumns = this.selectedColumns.filter((col) => {
82
+ const localCol = this.columns.find((c) => c.prop === col.prop);
83
+ return localCol && this.isConfigurableColumn(localCol);
84
+ });
78
85
  this.options = this.columns
79
- .filter((item) => !item.auxiliaryColumn)
86
+ .filter((item) => this.isConfigurableColumn(item))
80
87
  .map((item) => {
81
88
  return {
82
89
  label: item.title,
83
90
  value: item.prop,
84
- checked: item.hideInTable ? false : true,
91
+ checked: true,
85
92
  sortName: item.sortName || null,
86
93
  };
87
94
  });
@@ -123,7 +130,7 @@ export class ColmunsSettingComponent {
123
130
  handleConfirm() {
124
131
  if (!this.columnRemote?.setCol || !this.tableName) {
125
132
  this.modalVisible = false;
126
- this.afterConfirm.emit();
133
+ this.afterConfirm.emit([...this.selectedColumns]);
127
134
  return;
128
135
  }
129
136
  const payload = this.selectedColumns.map((column) => {
@@ -137,7 +144,7 @@ export class ColmunsSettingComponent {
137
144
  const result = this.columnRemote.setCol(this.tableName, payload);
138
145
  const done = (res) => {
139
146
  this.modalVisible = false;
140
- this.afterConfirm.emit();
147
+ this.afterConfirm.emit([...this.selectedColumns]);
141
148
  };
142
149
  if (result && isObservable(result)) {
143
150
  result.subscribe(done, () => done(null));
@@ -169,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
169
176
  type: ViewChild,
170
177
  args: ["sortableContainer", { static: false }]
171
178
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbXVucy1zZXR0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byby10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvY29sbXVucy1zZXR0aW5nL2NvbG11bnMtc2V0dGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm8tdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbG11bnMtc2V0dGluZy9jb2xtdW5zLXNldHRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRWxDLE9BQU8sRUFBRSx1QkFBdUIsRUFBK0IsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFPcEMsTUFBTSxPQUFPLHVCQUF1QjtJQW9CbEMsWUFHVSxZQUFnRDtRQUFoRCxpQkFBWSxHQUFaLFlBQVksQ0FBb0M7UUFwQmpELFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBRS9CLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUl0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBSzlELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLFlBQU8sR0FBOEQsRUFBRSxDQUFDO1FBRWhFLHFCQUFnQixHQUFvQixJQUFJLENBQUM7SUFNOUMsQ0FBQztJQUVKLFFBQVEsS0FBVSxDQUFDO0lBRW5CLGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElB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QjttR0F0QnRCLHVCQUF1QiwwVEN0QnBDLDg4RUF3RUE7OzRGRGxEYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCOzswQkF5QjVCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsdUJBQXVCOzRDQW5CeEIsT0FBTztzQkFBZixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUdQLGlCQUFpQjtzQkFEaEIsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgU29ydGFibGUgZnJvbSBcInNvcnRhYmxlanNcIjtcclxuaW1wb3J0IHsgUHJvVGFibGVDb2x1bW4gfSBmcm9tIFwiLi4vLi4vdHlwZVwiO1xyXG5pbXBvcnQgeyBQUk9fVEFCTEVfQ09MVU1OX1JFTU9URSwgUHJvVGFibGVSZW1vdGVDb2x1bW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3Rva2Vuc1wiO1xyXG5pbXBvcnQgeyBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgaXNPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1jb2xtdW5zLXNldHRpbmdcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbG11bnMtc2V0dGluZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9jb2xtdW5zLXNldHRpbmcuY29tcG9uZW50Lmxlc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2xtdW5zU2V0dGluZ0NvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IFByb1RhYmxlQ29sdW1uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDb2x1bW5zOiBQcm9UYWJsZUNvbHVtbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHRhYmxlTmFtZTogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgYWZ0ZXJDb25maXJtID0gbmV3IEV2ZW50RW1pdHRlcjxQcm9UYWJsZUNvbHVtbltdPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwic29ydGFibGVDb250YWluZXJcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgc29ydGFibGVDb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBtb2RhbFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgb3B0aW9uczogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuIH0+ID0gW107XHJcblxyXG4gIHByaXZhdGUgc29ydGFibGVJbnN0YW5jZTogU29ydGFibGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQEluamVjdChQUk9fVEFCTEVfQ09MVU1OX1JFTU9URSlcclxuICAgIHByaXZhdGUgY29sdW1uUmVtb3RlOiBQcm9UYWJsZVJlbW90ZUNvbHVtblNlcnZpY2UgfCBudWxsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFNvcnRhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNvcnRhYmxlSW5zdGFuY2UpIHtcclxuICAgICAgdGhpcy5zb3J0YWJsZUluc3RhbmNlLmRlc3Ryb3koKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRTb3J0YWJsZSgpOiB2b2lkIHtcclxuICAgIC8vIOWFiOmUgOavgeW3suWtmOWcqOeahOWunuS+i1xyXG4gICAgaWYgKHRoaXMuc29ydGFibGVJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UuZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNvcnRhYmxlQ29udGFpbmVyICYmIHRoaXMuc29ydGFibGVDb250YWluZXIubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UgPSBuZXcgU29ydGFibGUoXHJcbiAgICAgICAgdGhpcy5zb3J0YWJsZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGFuaW1hdGlvbjogMTUwLFxyXG4gICAgICAgICAgZ2hvc3RDbGFzczogXCJzb3J0YWJsZS1naG9zdFwiLFxyXG4gICAgICAgICAgY2hvc2VuQ2xhc3M6IFwic29ydGFibGUtY2hvc2VuXCIsXHJcbiAgICAgICAgICBkcmFnQ2xhc3M6IFwic29ydGFibGUtZHJhZ1wiLFxyXG4gICAgICAgICAgaGFuZGxlOiBcIi5zb3J0LWxpc3QtaXRlbVwiLCAvLyDmjIflrprmi5bmi73lj6Xmn4RcclxuICAgICAgICAgIG9uRW5kOiAoZXZ0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25Tb3J0RW5kKGV2dCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU29ydEVuZChldnQ6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBvbGRJbmRleCwgbmV3SW5kZXggfSA9IGV2dDtcclxuICAgIGlmIChvbGRJbmRleCAhPT0gbmV3SW5kZXgpIHtcclxuICAgICAgLy8g5Yib5bu65paw55qE5pWw57uE5p2l6YG/5YWN55u05o6l5L+u5pS56L6T5YWl5bGe5oCnXHJcbiAgICAgIGNvbnN0IG5ld1NlbGVjdGVkQ29sdW1ucyA9IFsuLi50aGlzLnNlbGVjdGVkQ29sdW1uc107XHJcbiAgICAgIGNvbnN0IG1vdmVkSXRlbSA9IG5ld1NlbGVjdGVkQ29sdW1ucy5zcGxpY2Uob2xkSW5kZXgsIDEpWzBdO1xyXG4gICAgICBuZXdTZWxlY3RlZENvbHVtbnMuc3BsaWNlKG5ld0luZGV4LCAwLCBtb3ZlZEl0ZW0pO1xyXG5cclxuICAgICAgLy8g5pu05pawIHNlbGVjdGVkQ29sdW1uc1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucyA9IG5ld1NlbGVjdGVkQ29sdW1ucztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgaXRlbTogUHJvVGFibGVDb2x1bW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGl0ZW0ucHJvcCB8fCBpbmRleC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5ZCM5q2lIG9wdGlvbnMg5pWw57uE55qEIGNoZWNrZWQg54q25oCB5LiOIHNlbGVjdGVkQ29sdW1uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3luY09wdGlvbnNXaXRoU2VsZWN0ZWRDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRQcm9wcyA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wucHJvcCk7XHJcbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIG9wdGlvbi5jaGVja2VkID0gc2VsZWN0ZWRQcm9wcy5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb2RhbFZpc2libGUoKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmNvbHVtbnNcclxuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uYXV4aWxpYXJ5Q29sdW1uKVxyXG4gICAgICAubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGxhYmVsOiBpdGVtLnRpdGxlLFxyXG4gICAgICAgICAgdmFsdWU6IGl0ZW0ucHJvcCxcclxuICAgICAgICAgIGNoZWNrZWQ6IGl0ZW0uaGlkZUluVGFibGUgPyBmYWxzZSA6IHRydWUsXHJcbiAgICAgICAgICBzb3J0TmFtZTogaXRlbS5zb3J0TmFtZSB8fCBudWxsLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIC8vIOWQjOatpSBvcHRpb25zIOeahCBjaGVja2VkIOeKtuaAgeS4juW9k+WJjSBzZWxlY3RlZENvbHVtbnNcclxuICAgIHRoaXMuc3luY09wdGlvbnNXaXRoU2VsZWN0ZWRDb2x1bW5zKCk7XHJcblxyXG4gICAgdGhpcy5tb2RhbFZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIC8vIOaooeaAgeahhuaJk+W8gOWQjumHjeaWsOWIneWni+WMluaOkuW6j1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdFNvcnRhYmxlKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTW9kYWxDbG9zZSgpIHtcclxuICAgIHRoaXMubW9kYWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5zb3J0YWJsZUluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZS5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWxlY3RSZW1vdmUoa2V5OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gdGhpcy5zZWxlY3RlZENvbHVtbnMuZmlsdGVyKFxyXG4gICAgICAoaXRlbSkgPT4gaXRlbS5wcm9wICE9PSBrZXlcclxuICAgICk7XHJcblxyXG4gICAgLy8g5L2/55So5ZCM5q2l5pa55rOV56Gu5L+d5omA5pyJ54q25oCB5LiA6Ie0XHJcbiAgICB0aGlzLnN5bmNPcHRpb25zV2l0aFNlbGVjdGVkQ29sdW1ucygpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hlY2tCb3hDaGFuZ2UodmFsdWUsIHJlY29yZCkge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdFJlbW92ZShyZWNvcmQudmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IHJlY29yZC5sYWJlbCxcclxuICAgICAgICBwcm9wOiByZWNvcmQudmFsdWUsXHJcbiAgICAgICAgc29ydE5hbWU6IHJlY29yZC5zb3J0TmFtZSxcclxuICAgICAgICBoaWRlSW5UYWJsZTogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyDmt7vliqDpobnnm67lkI7lkIzmraXnirbmgIFcclxuICAgICAgdGhpcy5zeW5jT3B0aW9uc1dpdGhTZWxlY3RlZENvbHVtbnMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgIGlmICghdGhpcy5jb2x1bW5SZW1vdGU/LnNldENvbCB8fCAhdGhpcy50YWJsZU5hbWUpIHtcclxuICAgICAgdGhpcy5tb2RhbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hZnRlckNvbmZpcm0uZW1pdCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5zZWxlY3RlZENvbHVtbnMubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZDogY29sdW1uLnByb3AsXHJcbiAgICAgICAgaXNTaG93OiBjb2x1bW4uaGlkZUluVGFibGUgPyBmYWxzZSA6IHRydWUsXHJcbiAgICAgICAgaGVhZGVyOiBjb2x1bW4udGl0bGUsXHJcbiAgICAgICAgc29ydE5hbWU6IGNvbHVtbi5zb3J0TmFtZSB8fCBudWxsLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmNvbHVtblJlbW90ZS5zZXRDb2wodGhpcy50YWJsZU5hbWUsIHBheWxvYWQpO1xyXG4gICAgY29uc3QgZG9uZSA9IChyZXMpID0+IHtcclxuICAgICAgdGhpcy5tb2RhbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hZnRlckNvbmZpcm0uZW1pdCgpO1xyXG4gICAgfTtcclxuICAgIGlmIChyZXN1bHQgJiYgaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuICAgICAgcmVzdWx0LnN1YnNjcmliZShkb25lLCAoKSA9PiBkb25lKG51bGwpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIFByb21pc2UucmVzb2x2ZShyZXN1bHQpLmZpbmFsbHkoKCkgPT4gZG9uZShudWxsKSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhY3Rpb24tcGljLWJ0blwiIChjbGljayk9XCJoYW5kbGVNb2RhbFZpc2libGUoKVwiIHRpdGxlPVwi5YiX6K6+572uXCI+XHJcbiAgPGkgbnotaWNvbiBuelR5cGU9XCJzZXR0aW5nXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L2k+XHJcbjwvZGl2PlxyXG5cclxuPG56LW1vZGFsXHJcbiAgWyhuelZpc2libGUpXT1cIm1vZGFsVmlzaWJsZVwiXHJcbiAgW256V2lkdGhdPVwiODIwXCJcclxuICBbbnpUaXRsZV09XCJtb2RhbFRpdGxlXCJcclxuICAobnpPbkNhbmNlbCk9XCJoYW5kbGVNb2RhbENsb3NlKClcIlxyXG4gIFtuekNvbnRlbnRdPVwibW9kYWxCb2R5XCJcclxuICBbbnpCb2R5U3R5bGVdPVwieyBwYWRkaW5nOiAnMTJweCcgfVwiXHJcbiAgKG56T25Payk9XCJoYW5kbGVDb25maXJtKClcIlxyXG4gIFtueldyYXBDbGFzc05hbWVdPVwiJ2RyYWdnYWJsZS1tb2RhbCdcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlICNtb2RhbFRpdGxlPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIm1vZGFsLWRyYWctaGFuZGxlXCJcclxuICAgICAgY2RrRHJhZ1xyXG4gICAgICBbY2RrRHJhZ1Jvb3RFbGVtZW50XT1cIicuZHJhZ2dhYmxlLW1vZGFsIC5hbnQtbW9kYWwnXCJcclxuICAgICAgY2RrRHJhZ0hhbmRsZVxyXG4gICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cIicuZHJhZ2dhYmxlLW1vZGFsJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuPuiuvue9ruaYvuekuuWtl+autTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlICNtb2RhbEJvZHk+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stYm94LWxpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMTJcIj7lj6/pgInlrZfmrrU8L2Rpdj5cclxuICAgICAgICA8bnotY2hlY2tib3gtd3JhcHBlciBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICA8ZGl2IG56LXJvdyBbbnpHdXR0ZXJdPVwiWzI0LCAyNF1cIj5cclxuICAgICAgICAgICAgPGRpdiBuei1jb2wgbnpTcGFuPVwiNlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIG56LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICBuelZhbHVlPVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpdGVtLmNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlQ2hlY2tCb3hDaGFuZ2UoJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICA+e3sgaXRlbS5sYWJlbCB9fTwvbGFiZWxcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uei1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNvcnQtbGlzdFwiPlxyXG4gICAgICAgIDxkaXYgbnotdHlwb2dyYXBoeSBjbGFzcz1cIm1iLTRcIj7lvZPliY3lt7Lnu4/pgInlrprnmoTlrZfmrrU8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBuei10eXBvZ3JhcGh5XHJcbiAgICAgICAgICBuelR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtYi00XCJcclxuICAgICAgICAgIFtzdHlsZS5mb250U2l6ZV09XCInMTJweCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIOaPkOekuu+8muWPr+aLluWKqOaOkuW6j1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgI3NvcnRhYmxlQ29udGFpbmVyIGNsYXNzPVwic29ydGFibGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic29ydC1saXN0LWl0ZW0gbWItMTJcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZENvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlDb2x1bW5cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmaWVsZGQtcmVtb3ZlXCJcclxuICAgICAgICAgICAgICB0aXRsZT1cIuWIoOmZpFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlbGVjdFJlbW92ZShpdGVtLnByb3ApXCJcclxuICAgICAgICAgICAgICA+w5c8L2FcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uei1tb2RhbD5cclxuIl19
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbXVucy1zZXR0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byby10YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvY29sbXVucy1zZXR0aW5nL2NvbG11bnMtc2V0dGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm8tdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL2NvbG11bnMtc2V0dGluZy9jb2xtdW5zLXNldHRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRWxDLE9BQU8sRUFBRSx1QkFBdUIsRUFBK0IsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7QUFPcEMsTUFBTSxPQUFPLHVCQUF1QjtJQW9CbEMsWUFHVSxZQUFnRDtRQUFoRCxpQkFBWSxHQUFaLFlBQVksQ0FBb0M7UUFwQmpELFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBRS9CLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUl0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBSzlELGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLFlBQU8sR0FBOEQsRUFBRSxDQUFDO1FBRWhFLHFCQUFnQixHQUFvQixJQUFJLENBQUM7SUFNOUMsQ0FBQztJQUVKLFFBQVEsS0FBVSxDQUFDO0lBRW5CLGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElB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Q25CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUM7UUFDRixJQUFJLE1BQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQzsrR0FoTFUsdUJBQXVCLGtCQXNCeEIsdUJBQXVCO21HQXRCdEIsdUJBQXVCLDBUQ3RCcEMsODhFQXdFQTs7NEZEbERhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7OzBCQXlCNUIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyx1QkFBdUI7NENBbkJ4QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBR1AsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCBTb3J0YWJsZSBmcm9tIFwic29ydGFibGVqc1wiO1xyXG5pbXBvcnQgeyBQcm9UYWJsZUNvbHVtbiB9IGZyb20gXCIuLi8uLi90eXBlXCI7XHJcbmltcG9ydCB7IFBST19UQUJMRV9DT0xVTU5fUkVNT1RFLCBQcm9UYWJsZVJlbW90ZUNvbHVtblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vdG9rZW5zXCI7XHJcbmltcG9ydCB7IEluamVjdCwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWNvbG11bnMtc2V0dGluZ1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vY29sbXVucy1zZXR0aW5nLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2NvbG11bnMtc2V0dGluZy5jb21wb25lbnQubGVzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbG11bnNTZXR0aW5nQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgQElucHV0KCkgY29sdW1uczogUHJvVGFibGVDb2x1bW5bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBzZWxlY3RlZENvbHVtbnM6IFByb1RhYmxlQ29sdW1uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgdGFibGVOYW1lOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKSBhZnRlckNvbmZpcm0gPSBuZXcgRXZlbnRFbWl0dGVyPFByb1RhYmxlQ29sdW1uW10+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzb3J0YWJsZUNvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBzb3J0YWJsZUNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG1vZGFsVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBvcHRpb25zOiBBcnJheTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IGNoZWNrZWQ6IGJvb2xlYW4gfT4gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBzb3J0YWJsZUluc3RhbmNlOiBTb3J0YWJsZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KFBST19UQUJMRV9DT0xVTU5fUkVNT1RFKVxyXG4gICAgcHJpdmF0ZSBjb2x1bW5SZW1vdGU6IFByb1RhYmxlUmVtb3RlQ29sdW1uU2VydmljZSB8IG51bGxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0U29ydGFibGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc29ydGFibGVJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UuZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdFNvcnRhYmxlKCk6IHZvaWQge1xyXG4gICAgLy8g5YWI6ZSA5q+B5bey5a2Y5Zyo55qE5a6e5L6LXHJcbiAgICBpZiAodGhpcy5zb3J0YWJsZUluc3RhbmNlKSB7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZS5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc29ydGFibGVDb250YWluZXIgJiYgdGhpcy5zb3J0YWJsZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuc29ydGFibGVJbnN0YW5jZSA9IG5ldyBTb3J0YWJsZShcclxuICAgICAgICB0aGlzLnNvcnRhYmxlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiAxNTAsXHJcbiAgICAgICAgICBnaG9zdENsYXNzOiBcInNvcnRhYmxlLWdob3N0XCIsXHJcbiAgICAgICAgICBjaG9zZW5DbGFzczogXCJzb3J0YWJsZS1jaG9zZW5cIixcclxuICAgICAgICAgIGRyYWdDbGFzczogXCJzb3J0YWJsZS1kcmFnXCIsXHJcbiAgICAgICAgICBoYW5kbGU6IFwiLnNvcnQtbGlzdC1pdGVtXCIsIC8vIOaMh+WumuaLluaLveWPpeafhFxyXG4gICAgICAgICAgb25FbmQ6IChldnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vblNvcnRFbmQoZXZ0KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Tb3J0RW5kKGV2dDogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCB7IG9sZEluZGV4LCBuZXdJbmRleCB9ID0gZXZ0O1xyXG4gICAgaWYgKG9sZEluZGV4ICE9PSBuZXdJbmRleCkge1xyXG4gICAgICAvLyDliJvlu7rmlrDnmoTmlbDnu4TmnaXpgb/lhY3nm7TmjqXkv67mlLnovpPlhaXlsZ7mgKdcclxuICAgICAgY29uc3QgbmV3U2VsZWN0ZWRDb2x1bW5zID0gWy4uLnRoaXMuc2VsZWN0ZWRDb2x1bW5zXTtcclxuICAgICAgY29uc3QgbW92ZWRJdGVtID0gbmV3U2VsZWN0ZWRDb2x1bW5zLnNwbGljZShvbGRJbmRleCwgMSlbMF07XHJcbiAgICAgIG5ld1NlbGVjdGVkQ29sdW1ucy5zcGxpY2UobmV3SW5kZXgsIDAsIG1vdmVkSXRlbSk7XHJcblxyXG4gICAgICAvLyDmm7TmlrAgc2VsZWN0ZWRDb2x1bW5zXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zID0gbmV3U2VsZWN0ZWRDb2x1bW5zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUNvbHVtbihpbmRleDogbnVtYmVyLCBpdGVtOiBQcm9UYWJsZUNvbHVtbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaXRlbS5wcm9wIHx8IGluZGV4LnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlkIzmraUgb3B0aW9ucyDmlbDnu4TnmoQgY2hlY2tlZCDnirbmgIHkuI4gc2VsZWN0ZWRDb2x1bW5zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc0NvbmZpZ3VyYWJsZUNvbHVtbihjb2w6IFByb1RhYmxlQ29sdW1uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIWNvbC5hdXhpbGlhcnlDb2x1bW4gJiYgIWNvbC5oaWRlSW5UYWJsZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3luY09wdGlvbnNXaXRoU2VsZWN0ZWRDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRQcm9wcyA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wucHJvcCk7XHJcbiAgICB0aGlzLm9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIG9wdGlvbi5jaGVja2VkID0gc2VsZWN0ZWRQcm9wcy5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVNb2RhbFZpc2libGUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucyA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5zLmZpbHRlcigoY29sKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxvY2FsQ29sID0gdGhpcy5jb2x1bW5zLmZpbmQoKGMpID0+IGMucHJvcCA9PT0gY29sLnByb3ApO1xyXG4gICAgICByZXR1cm4gbG9jYWxDb2wgJiYgdGhpcy5pc0NvbmZpZ3VyYWJsZUNvbHVtbihsb2NhbENvbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmNvbHVtbnNcclxuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gdGhpcy5pc0NvbmZpZ3VyYWJsZUNvbHVtbihpdGVtKSlcclxuICAgICAgLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBsYWJlbDogaXRlbS50aXRsZSxcclxuICAgICAgICAgIHZhbHVlOiBpdGVtLnByb3AsXHJcbiAgICAgICAgICBjaGVja2VkOiB0cnVlLFxyXG4gICAgICAgICAgc29ydE5hbWU6IGl0ZW0uc29ydE5hbWUgfHwgbnVsbCxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAvLyDlkIzmraUgb3B0aW9ucyDnmoQgY2hlY2tlZCDnirbmgIHkuI7lvZPliY0gc2VsZWN0ZWRDb2x1bW5zXHJcbiAgICB0aGlzLnN5bmNPcHRpb25zV2l0aFNlbGVjdGVkQ29sdW1ucygpO1xyXG5cclxuICAgIHRoaXMubW9kYWxWaXNpYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAvLyDmqKHmgIHmoYbmiZPlvIDlkI7ph43mlrDliJ3lp4vljJbmjpLluo9cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmluaXRTb3J0YWJsZSgpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU1vZGFsQ2xvc2UoKSB7XHJcbiAgICB0aGlzLm1vZGFsVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuc29ydGFibGVJbnN0YW5jZSkge1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UuZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLnNvcnRhYmxlSW5zdGFuY2UgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VsZWN0UmVtb3ZlKGtleTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ29sdW1ucyA9IHRoaXMuc2VsZWN0ZWRDb2x1bW5zLmZpbHRlcihcclxuICAgICAgKGl0ZW0pID0+IGl0ZW0ucHJvcCAhPT0ga2V5XHJcbiAgICApO1xyXG5cclxuICAgIC8vIOS9v+eUqOWQjOatpeaWueazleehruS/neaJgOacieeKtuaAgeS4gOiHtFxyXG4gICAgdGhpcy5zeW5jT3B0aW9uc1dpdGhTZWxlY3RlZENvbHVtbnMoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoZWNrQm94Q2hhbmdlKHZhbHVlLCByZWNvcmQpIHtcclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgdGhpcy5oYW5kbGVTZWxlY3RSZW1vdmUocmVjb3JkLnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bW5zLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiByZWNvcmQubGFiZWwsXHJcbiAgICAgICAgcHJvcDogcmVjb3JkLnZhbHVlLFxyXG4gICAgICAgIHNvcnROYW1lOiByZWNvcmQuc29ydE5hbWUsXHJcbiAgICAgICAgaGlkZUluVGFibGU6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgLy8g5re75Yqg6aG555uu5ZCO5ZCM5q2l54q25oCBXHJcbiAgICAgIHRoaXMuc3luY09wdGlvbnNXaXRoU2VsZWN0ZWRDb2x1bW5zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICBpZiAoIXRoaXMuY29sdW1uUmVtb3RlPy5zZXRDb2wgfHwgIXRoaXMudGFibGVOYW1lKSB7XHJcbiAgICAgIHRoaXMubW9kYWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuYWZ0ZXJDb25maXJtLmVtaXQoWy4uLnRoaXMuc2VsZWN0ZWRDb2x1bW5zXSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLnNlbGVjdGVkQ29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGZpZWxkOiBjb2x1bW4ucHJvcCxcclxuICAgICAgICBpc1Nob3c6IGNvbHVtbi5oaWRlSW5UYWJsZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgICBoZWFkZXI6IGNvbHVtbi50aXRsZSxcclxuICAgICAgICBzb3J0TmFtZTogY29sdW1uLnNvcnROYW1lIHx8IG51bGwsXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY29sdW1uUmVtb3RlLnNldENvbCh0aGlzLnRhYmxlTmFtZSwgcGF5bG9hZCk7XHJcbiAgICBjb25zdCBkb25lID0gKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLm1vZGFsVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmFmdGVyQ29uZmlybS5lbWl0KFsuLi50aGlzLnNlbGVjdGVkQ29sdW1uc10pO1xyXG4gICAgfTtcclxuICAgIGlmIChyZXN1bHQgJiYgaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuICAgICAgcmVzdWx0LnN1YnNjcmliZShkb25lLCAoKSA9PiBkb25lKG51bGwpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIFByb21pc2UucmVzb2x2ZShyZXN1bHQpLmZpbmFsbHkoKCkgPT4gZG9uZShudWxsKSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhY3Rpb24tcGljLWJ0blwiIChjbGljayk9XCJoYW5kbGVNb2RhbFZpc2libGUoKVwiIHRpdGxlPVwi5YiX6K6+572uXCI+XHJcbiAgPGkgbnotaWNvbiBuelR5cGU9XCJzZXR0aW5nXCIgbnpUaGVtZT1cIm91dGxpbmVcIj48L2k+XHJcbjwvZGl2PlxyXG5cclxuPG56LW1vZGFsXHJcbiAgWyhuelZpc2libGUpXT1cIm1vZGFsVmlzaWJsZVwiXHJcbiAgW256V2lkdGhdPVwiODIwXCJcclxuICBbbnpUaXRsZV09XCJtb2RhbFRpdGxlXCJcclxuICAobnpPbkNhbmNlbCk9XCJoYW5kbGVNb2RhbENsb3NlKClcIlxyXG4gIFtuekNvbnRlbnRdPVwibW9kYWxCb2R5XCJcclxuICBbbnpCb2R5U3R5bGVdPVwieyBwYWRkaW5nOiAnMTJweCcgfVwiXHJcbiAgKG56T25Payk9XCJoYW5kbGVDb25maXJtKClcIlxyXG4gIFtueldyYXBDbGFzc05hbWVdPVwiJ2RyYWdnYWJsZS1tb2RhbCdcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlICNtb2RhbFRpdGxlPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIm1vZGFsLWRyYWctaGFuZGxlXCJcclxuICAgICAgY2RrRHJhZ1xyXG4gICAgICBbY2RrRHJhZ1Jvb3RFbGVtZW50XT1cIicuZHJhZ2dhYmxlLW1vZGFsIC5hbnQtbW9kYWwnXCJcclxuICAgICAgY2RrRHJhZ0hhbmRsZVxyXG4gICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cIicuZHJhZ2dhYmxlLW1vZGFsJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuPuiuvue9ruaYvuekuuWtl+autTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlICNtb2RhbEJvZHk+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2hlY2stYm94LWxpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMTJcIj7lj6/pgInlrZfmrrU8L2Rpdj5cclxuICAgICAgICA8bnotY2hlY2tib3gtd3JhcHBlciBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICA8ZGl2IG56LXJvdyBbbnpHdXR0ZXJdPVwiWzI0LCAyNF1cIj5cclxuICAgICAgICAgICAgPGRpdiBuei1jb2wgbnpTcGFuPVwiNlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgIG56LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICBuelZhbHVlPVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpdGVtLmNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiaGFuZGxlQ2hlY2tCb3hDaGFuZ2UoJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICA+e3sgaXRlbS5sYWJlbCB9fTwvbGFiZWxcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uei1jaGVja2JveC13cmFwcGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNvcnQtbGlzdFwiPlxyXG4gICAgICAgIDxkaXYgbnotdHlwb2dyYXBoeSBjbGFzcz1cIm1iLTRcIj7lvZPliY3lt7Lnu4/pgInlrprnmoTlrZfmrrU8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBuei10eXBvZ3JhcGh5XHJcbiAgICAgICAgICBuelR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtYi00XCJcclxuICAgICAgICAgIFtzdHlsZS5mb250U2l6ZV09XCInMTJweCdcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIOaPkOekuu+8muWPr+aLluWKqOaOkuW6j1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgI3NvcnRhYmxlQ29udGFpbmVyIGNsYXNzPVwic29ydGFibGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic29ydC1saXN0LWl0ZW0gbWItMTJcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZENvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlDb2x1bW5cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmaWVsZGQtcmVtb3ZlXCJcclxuICAgICAgICAgICAgICB0aXRsZT1cIuWIoOmZpFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlbGVjdFJlbW92ZShpdGVtLnByb3ApXCJcclxuICAgICAgICAgICAgICA+w5c8L2FcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uei1tb2RhbD5cclxuIl19