ngx-render-material-forms 1.8.7 → 1.8.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.
@@ -205,7 +205,8 @@ export class MaterialDataGridComponent extends MaterialNestedComponent {
205
205
  if (!this.showSubcategory) {
206
206
  this.removeColumn('subCategory');
207
207
  }
208
- localStorage.setItem(`selectedProducts-${this.dealId}`, JSON.stringify(response.data.items.selectedProducts));
208
+ const selectedProductsCopy = JSON.parse(JSON.stringify(response.data.items.selectedProducts));
209
+ localStorage.setItem(`selectedProducts-${this.dealId}`, JSON.stringify(this.addPriceProperty(selectedProductsCopy)));
209
210
  this.dataSourceNew = response.data.items.selectedProducts;
210
211
  this.showDataGrid = true;
211
212
  this.instance.component.defaultValue = response.data.items.selectedProducts;
@@ -221,6 +222,14 @@ export class MaterialDataGridComponent extends MaterialNestedComponent {
221
222
  this.dataSource.data = [...this.dataSource.data];
222
223
  }
223
224
  }
225
+ addPriceProperty(selectedProducts) {
226
+ return selectedProducts.map(products => {
227
+ return {
228
+ ...products,
229
+ priceDisable: true
230
+ };
231
+ });
232
+ }
224
233
  checkRowsNumber() {
225
234
  while (this.instance.rows.length < this.dataSource.data.length) {
226
235
  this.instance.addRow();
@@ -559,4 +568,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
559
568
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.CommonService }]; } });
560
569
  DataGridComponent.MaterialComponent = MaterialDataGridComponent;
561
570
  export { DataGridComponent };
562
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8saUJBQWlCLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3RGLE1BQU0sWUFBWSxHQUFjLEVBQy9CLENBQUM7QUFtSkYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUVwRSxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVUsTUFBaUIsRUFBUyxhQUE0QjtRQUNuSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBTXJJLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxZQUFZLENBQUM7UUFDN0Isd0JBQW1CLEdBQWEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUs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QUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1SCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1SCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1SCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1SCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFD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QztTQUN0RTtRQUNELEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7c0hBcFJVLHlCQUF5QjswR0FBekIseUJBQXlCLGtGQWhKMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EySVQ7MkZBS1UseUJBQXlCO2tCQWxKckMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EySVQ7O0FBMlJILGlCQUFpQixDQUFDLGlCQUFpQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQgfSBmcm9tICcuLi9NYXRlcmlhbE5lc3RlZENvbXBvbmVudCc7XHJcbmltcG9ydCBEYXRhR3JpZENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL2RhdGFncmlkL0RhdGFHcmlkLmpzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRkT25Qcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZC1vbi1wcm9kdWN0cy9hZGQtb24tcHJvZHVjdHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi5zZXJ2aWNlJztcclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0IHtcclxuICBwcm9kdWN0TmFtZTogc3RyaW5nO1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbiAgcHJpY2U6IG51bWJlcjtcclxufVxyXG5jb25zdCBFTEVNRU5UX0RBVEE6IFByb2R1Y3RbXSA9IFtcclxuXTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLWRhdGFncmlkJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxUZW1wbGF0ZV09XCJsYWJlbFRlbXBsYXRlXCJcclxuICAgID48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8bWF0LWNhcmQgZnhGaWxsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNMYWJlbFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxhYmVsVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudCAqbmdJZj1cInNob3dEYXRhR3JpZFwiPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnNcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpbnN0YW5jZS5oYXNBZGRCdXR0b24oKSAmJiAoaW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXJQb3NpdGlvbiA9PT0gJ2JvdGgnIHx8IGluc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyUG9zaXRpb24gPT09ICd0b3AnKVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGRBbm90aGVyKClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICB7e2luc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyIHx8ICdBZGQgQW5vdGhlcid9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93TmV3UHJvZHVjdFBpY2tlclwiPlxyXG48ZGl2IGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiPlxyXG4gICAgICAgICAgPHRhYmxlXHJcbiAgICAgICAgICAgICAgICAgIG1hdC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCJcclxuICAgICAgICAgICAgICAgICAgZnhGaWxsXHJcbiAgICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XHJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcFRhYmxlKCRldmVudClcIiAqbmdJZj1cIiFpc0N1c3RvbWVyQ291bnRyeUZpbHRlcmVkIHx8ICFlbXB0eUFycmF5OyBlbHNlIG5vRGF0YU1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZm9ybUNvbHVtbnNcIiBbbWF0Q29sdW1uRGVmXT1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+e3sgZ2V0Q29sdW1uTGFiZWwoY29sdW1uc1tjb2x1bW5dKSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGkgPSBpbmRleDtcIiBbYXR0ci5yb3dJbmRleF09XCJpXCIgW2F0dHIuY29tcG9uZW50XT1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRzPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiX19yZW1vdmVSb3dcIj5cclxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAqbmdJZj1cImluc3RhbmNlLmhhc1JlbW92ZUJ1dHRvbnMoKVwiIChjbGljayk9XCJyZW1vdmVSb3coaSlcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtaGlkZGVuPVwiZmFsc2VcIiBhcmlhLWxhYmVsPVwiUmVtb3ZlIHJvd1wiPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwb3NpdGlvblwiICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBOby48L3RoPlxyXG4gICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2RrRHJhZ0hhbmRsZT5yZW9yZGVyPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImluc3RhbmNlPy5jb21wb25lbnQ/LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJkYXRhZ3JpZC1yb3dcIiBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiIGNka0RyYWdcclxuICAgICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cInJvd1wiPjwvdHI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWluc3RhbmNlPy5jb21wb25lbnQ/LnJlb3JkZXJcIj5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJkYXRhZ3JpZC1yb3dcIiBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjwhLS0gRGVmYXVsdCBNZXNzYWdlIC0tPlxyXG48bmctdGVtcGxhdGUgI25vRGF0YU1lc3NhZ2U+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtbWVzc2FnZVwiICpuZ0lmPVwiaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZCAmJiBlbXB0eUFycmF5XCI+XHJcbiAgICA8c3Bhbj5cclxuICAgICAgTm8gUHJvZHVjdCBmb3VuZCB3aXRoIHNlbGVjdGVkIEN1c3RvbWVyIGNvdW50cnkuXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlTmV3XCIgY2xhc3M9XCJtYXQtdGFibGVcIiAqbmdJZj1cImRhdGFTb3VyY2VOZXcubGVuZ3RoID4gMCAmJiBzaG93TmV3UHJvZHVjdFBpY2tlcjsgZWxzZSBub0RhdGFcIiA+XHJcbiAgICA8IS0tIFByb2R1Y3QgTmFtZSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInByb2R1Y3ROYW1lXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFByb2R1Y3QgTmFtZSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQudGV4dH19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIFF1YW50aXR5IENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicXVhbnRpdHlcIiAqbmdJZj1cInNob3dRdWFudGl0eVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBRdWFudGl0eSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQucXVhbnRpdHl9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBQcmljZSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInByaWNlXCIgKm5nSWY9XCJzaG93UHJpY2VcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gUHJpY2UgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnByaWNlfX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICA8IS0tIENhdGVnb3J5IENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY2F0ZWdvcnlcIiAqbmdJZj1cInNob3dDYXRlZ29yeVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBDYXRlZ29yeSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuY2F0ZWdvcnl9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gQ2F0ZWdvcnkgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdWJDYXRlZ29yeVwiICpuZ0lmPVwic2hvd1N1YmNhdGVnb3J5XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFN1YiBDYXRlZ29yeSA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuc3ViQ2F0ZWdvcnl9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gU0tVIENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2t1TnVtYmVyXCIgKm5nSWY9XCJzaG93U2t1TnVtYmVyXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFNLVSBOdW1iZXIgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4gI1NrdU51bWJlci17e2VsZW1lbnQudmFsdWV9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zTmV3XCI+PC90cj5cclxuICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zTmV3O1wiPjwvdHI+XHJcbiAgPC90YWJsZT5cclxuICA8bmctdGVtcGxhdGUgI25vRGF0YT5cclxuICA8ZGl2IGNsYXNzPVwibm8tZGF0YS1tZXNzYWdlXCIgKm5nSWY9XCJzaG93TmV3UHJvZHVjdFBpY2tlclwiPlxyXG4gICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd05ld1Byb2R1Y3RQaWNrZXIgJiYgIWlzQ3VzdG9tZXJDb3VudHJ5RmlsdGVyZWRcIj5cclxuICAgICAgTm8gcHJvZHVjdHMgZm91bmQuIFBsZWFzZSBhZGQgc29tZSBwcm9kdWN0cy5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TmV3UHJvZHVjdFBpY2tlciAmJiBpc0N1c3RvbWVyQ291bnRyeUZpbHRlcmVkXCI+XHJcbiAgICAgIE5vIFByb2R1Y3QgZm91bmQgd2l0aCBzZWxlY3RlZCBDdXN0b21lZXIgY291bnRyeS5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgKm5nSWY9XCJpbnN0YW5jZS5oYXNBZGRCdXR0b24oKSAmJiBpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uICE9PSAndG9wJ1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYWRkQW5vdGhlcigpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICB7e2luc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyIHx8ICdBZGQgQW5vdGhlcid9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8L21hdC1jYXJkPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2xhYmVsVGVtcGxhdGU+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICAnLmRhdGFncmlkLXJvdyB7IGhlaWdodDogYXV0bzsgfSAubWF0LXRhYmxleyB3aWR0aDogMTAwJSB9IC5tYXQtaGVhZGVyLWNlbGwsIC5tYXQtY2VsbHsgcGFkZGluZzogOHB4IH0gLm5vLWRhdGEtbWVzc2FnZSB7ZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzoyMHB4OyBtYXJnaW46IDAgMjBweCAwOyBmb250LXNpemU6IDE4cHg7Y29sb3I6ICM4ODg7IGhlaWdodDogMTAwJTt9J1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsRGF0YUdyaWRDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLCBwdWJsaWMgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZywgcHVibGljIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGVsZW1lbnQsIHJlZik7XHJcbiAgfVxyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdO1xyXG4gIGZvcm1Db2x1bW5zOiBzdHJpbmdbXTtcclxuICBjb2x1bW5zOiBhbnk7XHJcbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcclxuICBkYXRhU291cmNlTmV3ID0gRUxFTUVOVF9EQVRBO1xyXG4gIGRpc3BsYXllZENvbHVtbnNOZXc6IHN0cmluZ1tdID0gWydwcm9kdWN0TmFtZScsICdjYXRlZ29yeScsICdzdWJDYXRlZ29yeScsICdxdWFudGl0eScsICdwcmljZScsICdza3VOdW1iZXInXTtcclxuICBzaG93TmV3UHJvZHVjdFBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dTdWJjYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dQcmljZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1F1YW50aXR5OiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93U2t1TnVtYmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaGFzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGVja1N1Ym1pc3Npb25TdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGF0YUdyaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGhhc1ZhbHVlQW5kRWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkwxOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25MMjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkw0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ1F1YW50aXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ1ByaWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ0NhdGVnb3J5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RpYWxvZ1NrdU51bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dTdWJDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDFMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZHJvcGRvd25MMkxhYmVsOiBzdHJpbmcgPSAnJztcclxuICBkcm9wZG93bkwzTGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIGRyb3Bkb3duTDRMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZGVhbElkOiBhbnk7XHJcbiAgaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVtcHR5QXJyYXk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBnZXRDb2x1bW5MYWJlbChjb2x1bW4pIHtcclxuICAgIHJldHVybiBjb2x1bW4ubGFiZWwgfHwgY29sdW1uLmtleTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0TGFiZWxOYW1lKG5ld1Byb2R1Y3RQaWNrZXJGbGFnLCBhdHRyaWJ1dGVOYW1lKSB7XHJcbiAgICBpZiAobmV3UHJvZHVjdFBpY2tlckZsYWcgJiYgT2JqZWN0LmtleXMobmV3UHJvZHVjdFBpY2tlckZsYWcpLnNvbWUoa2V5ID0+XHJcbiAgICAgIGtleS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgIC8vIEZpbmQgdGhlIGtleSB0aGF0IG1hdGNoZXMgYXR0cmlidXRlTmFtZSBjYXNlLWluc2Vuc2l0aXZlbHlcclxuICAgICAgY29uc3QgbWF0Y2hpbmdLZXkgPSBPYmplY3Qua2V5cyhuZXdQcm9kdWN0UGlja2VyRmxhZykuZmluZChrZXkgPT5cclxuICAgICAgICBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIG1hdGNoaW5nIGtleVxyXG4gICAgICByZXR1cm4gbmV3UHJvZHVjdFBpY2tlckZsYWdbbWF0Y2hpbmdLZXldO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG5cclxuICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgLy8gfVxyXG5cclxuICBzZXRJbnN0YW5jZShpbnN0YW5jZTogYW55KSB7XHJcbiAgICAvL2NvbnN0IG5ld1Byb2R1Y3RQaWNrZXJGbGFnID0gaW5zdGFuY2U/LmNvbXBvbmVudD8uYXR0cmlidXRlcztcclxuICAgIGNvbnN0IGNoZWNrQXR0cmlidXRlID0gaW5zdGFuY2U/LmNvbXBvbmVudD8uYXR0cmlidXRlcztcclxuICAgIHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwibmV3cHJvZHVjdHBpY2tlclwiKTtcclxuICAgIHRoaXMuc2hvd0NhdGVnb3J5ID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dDYXRlZ29yeVwiKTtcclxuICAgIHRoaXMuc2hvd1N1YmNhdGVnb3J5ID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dTdWJjYXRlZ29yeVwiKTtcclxuICAgIHRoaXMuc2hvd1ByaWNlID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dQcmljZVwiKTtcclxuICAgIHRoaXMuc2hvd1F1YW50aXR5ID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dRdWFudGl0eVwiKTtcclxuICAgIHRoaXMuc2hvd1NrdU51bWJlciA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93U2t1TnVtYmVyXCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nUXVhbnRpdHkgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1F1YW50aXR5XCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nUHJpY2UgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1ByaWNlXCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nQ2F0ZWdvcnkgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ0NhdGVnb3J5XCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nU2t1TnVtYmVyID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dTa3VOdW1iZXJcIik7XHJcbiAgICB0aGlzLnNob3dEaWFsb2dTdWJDYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nU3ViQ2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLmlzQ3VzdG9tZXJDb3VudHJ5RmlsdGVyZWQgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwiZmlsdGVyUHJvZHVjdEJhc2VkT25DdXN0b21lckNvdW50cnlcIik7XHJcbiAgICBjb25zdCBsMSA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImRyb3Bkb3duTDFcIik7XHJcbiAgICBjb25zdCBsMiA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImRyb3Bkb3duTDJcIik7XHJcbiAgICBjb25zdCBsMyA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImRyb3Bkb3duTDNcIik7XHJcbiAgICBjb25zdCBsNCA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImRyb3Bkb3duTDRcIik7XHJcbiAgICB0aGlzLmRyb3Bkb3duTDEgPSBsMSAhPT0gbnVsbCAmJiBsMSAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgbDEgPT09ICdzdHJpbmcnID8gbDEudHJpbSgpICE9PSBcIlwiIDogbDEgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5kcm9wZG93bkwyID0gbDIgIT09IG51bGwgJiYgbDIgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGwyID09PSAnc3RyaW5nJyA/IGwyLnRyaW0oKSAhPT0gXCJcIiA6IGwyICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuZHJvcGRvd25MMyA9IGwzICE9PSBudWxsICYmIGwzICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBsMyA9PT0gJ3N0cmluZycgPyBsMy50cmltKCkgIT09IFwiXCIgOiBsMyAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmRyb3Bkb3duTDQgPSBsNCAhPT0gbnVsbCAmJiBsNCAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgbDQgPT09ICdzdHJpbmcnID8gbDQudHJpbSgpICE9PSBcIlwiIDogbDQgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25MMSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duTDFMYWJlbCA9IGwxO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25MMikge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duTDJMYWJlbCA9IGwyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25MMykge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duTDNMYWJlbCA9IGwzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZHJvcGRvd25MNCkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duTDRMYWJlbCA9IGw0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsICdpc1Byb2R1Y3RPcHRpb25hbCcpO1xyXG4gICAgdGhpcy5oYXNWYWx1ZUFuZEVkaXRNb2RlID0gKGNoZWNrQXR0cmlidXRlPy5oYXNWYWx1ZSA9PT0gJ3llcycpICYmIChjaGVja0F0dHJpYnV0ZT8uZWRpdE1vZGUgPT09ICd0cnVlJyk7XHJcbiAgICBjb25zdCByZXRyaWV2ZWRPYmplY3QgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdG9yYWdlT2JqZWN0JykpO1xyXG4gICAgdGhpcy5lbXB0eUFycmF5ID0gcmV0cmlldmVkT2JqZWN0Py5kYXRhU291cmNlPy5sZW5ndGggPCAxID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaWYgKHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIgJiYgIXRoaXMuaGFzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgaWYgKCF0aGlzLnNob3dDYXRlZ29yeSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdjYXRlZ29yeScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93UXVhbnRpdHkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbigncXVhbnRpdHknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuc2hvd1ByaWNlKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3ByaWNlJyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNob3dTdWJjYXRlZ29yeSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdzdWJDYXRlZ29yeScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93U2t1TnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3NrdU51bWJlcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGVhbElkID0gdGhpcy5nZXRMYWJlbE5hbWUoY2hlY2tBdHRyaWJ1dGUsIFwiZGVhbElkXCIpO1xyXG4gICAgICBjb25zdCBzdG9yZWREYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oYHNob3dHcmlkUGlja2VyUHJvZHVjdHMtJHt0aGlzLmRlYWxJZH1gKSB8fCAnJztcclxuICAgICAgY29uc3QgcGFyc2VkRGF0YSA9IEpTT04ucGFyc2Uoc3RvcmVkRGF0YSB8fCAnbnVsbCcpO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2VOZXcgPSBBcnJheS5pc0FycmF5KHBhcnNlZERhdGEpID8gcGFyc2VkRGF0YSA6IFtdO1xyXG5cclxuICAgICAgLy8gU2V0IGZsYWcgdG8gdHJ1ZSB0byBwcmV2ZW50IGZ1cnRoZXIgZXhlY3V0aW9uXHJcbiAgICAgIHRoaXMuaGFzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBpbnN0YW5jZS5kYXRhVmFsdWU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMgJiYgIXRoaXMuaGFzVmFsdWVBbmRFZGl0TW9kZSkge1xyXG4gICAgICB0aGlzLnNob3dEYXRhR3JpZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFtdXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dEYXRhR3JpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gaW5zdGFuY2UuZGF0YVZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb2x1bW5zID0ge307XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXTtcclxuICAgIHRoaXMuZm9ybUNvbHVtbnMgPSBbXTtcclxuICAgIGluc3RhbmNlLmdldENvbHVtbnMoKS5tYXAoKGNvbHVtbikgPT4ge1xyXG4gICAgICB0aGlzLmZvcm1Db2x1bW5zLnB1c2goY29sdW1uLmtleSk7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKGNvbHVtbi5rZXkpO1xyXG4gICAgICB0aGlzLmNvbHVtbnNbY29sdW1uLmtleV0gPSBjb2x1bW47XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdfX3JlbW92ZVJvdycpO1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LnJlb3JkZXIpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ3Bvc2l0aW9uJyk7XHJcbiAgICB9XHJcbiAgICBpbnN0YW5jZS52aWV3Q29udGFpbmVyID0gKGNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBsZXQgdmlld0NvbnRhaW5lcjtcclxuICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRpc2FibGVkKSB7XHJcbiAgICAgICAgY29tcG9uZW50LmNvbXBvbmVudC5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIpID0+IHtcclxuICAgICAgICBjb25zdCB0ZCA9IGNvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBjb21wb25lbnQucm93SW5kZXggPT09IHBhcnNlSW50KHRkLmdldEF0dHJpYnV0ZSgncm93SW5kZXgnKSwgMTApICYmXHJcbiAgICAgICAgICBjb21wb25lbnQuY29tcG9uZW50LmtleSA9PT0gdGQuZ2V0QXR0cmlidXRlKCdjb21wb25lbnQnKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmlld0NvbnRhaW5lciA9IGNvbnRhaW5lcjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIHZpZXdDb250YWluZXIgPyB2aWV3Q29udGFpbmVyIDogbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb2x1bW4oY29sdW1uTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnNOZXcgPSB0aGlzLmRpc3BsYXllZENvbHVtbnNOZXcuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW4gIT09IGNvbHVtbk5hbWUpO1xyXG4gIH1cclxuXHJcbiAgYWRkQW5vdGhlck9sZCgpIHtcclxuICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hlY2tSb3dzTnVtYmVyKCk7XHJcbiAgICB0aGlzLmluc3RhbmNlLmFkZFJvdygpO1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8IHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEucHVzaCh7fSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XHJcbiAgfVxyXG5cclxuICBhZGRBbm90aGVyKCkge1xyXG4gICAgdGhpcy5zaG93RGF0YUdyaWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIpIHtcclxuICAgICAgY29uc3QgZGlvbG9nZVJlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQWRkT25Qcm9kdWN0c0NvbXBvbmVudCwge1xyXG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICB3aWR0aDogJzkwJScsXHJcbiAgICAgICAgbWF4V2lkdGg6ICc5MDBweCcsXHJcbiAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcclxuICAgICAgICBkYXRhOiB7IGRyb3Bkb3duc0ZsYWc6IHsgc2hvd05ld1Byb2R1Y3RQaWNrZXI6IHRoaXMuc2hvd05ld1Byb2R1Y3RQaWNrZXIsIHNob3dEaWFsb2dTdWJDYXRlZ29yeTogdGhpcy5zaG93RGlhbG9nU3ViQ2F0ZWdvcnksIHNob3dEaWFsb2dTa3VOdW1iZXI6IHRoaXMuc2hvd0RpYWxvZ1NrdU51bWJlciwgc2hvd0RpYWxvZ0NhdGVnb3J5OiB0aGlzLnNob3dEaWFsb2dDYXRlZ29yeSwgc2hvd0RpYWxvZ1ByaWNlOiB0aGlzLnNob3dEaWFsb2dQcmljZSwgc2hvd0RpYWxvZ1F1YW50aXR5OiB0aGlzLnNob3dEaWFsb2dRdWFudGl0eSwgZHJvcGRvd25MMTogdGhpcy5kcm9wZG93bkwxLCBkcm9wZG93bkwyOiB0aGlzLmRyb3Bkb3duTDIsIGRyb3Bkb3duTDM6IHRoaXMuZHJvcGRvd25MMywgZHJvcGRvd25MNDogdGhpcy5kcm9wZG93bkw0LCBkcm9wZG93bkwxTGFiZWw6IHRoaXMuZHJvcGRvd25MMUxhYmVsLCBkcm9wZG93bkwyTGFiZWw6IHRoaXMuZHJvcGRvd25MMkxhYmVsLCBkcm9wZG93bkwzTGFiZWw6IHRoaXMuZHJvcGRvd25MM0xhYmVsLCBkcm9wZG93bkw0TGFiZWw6IHRoaXMuZHJvcGRvd25MNExhYmVsLCBjaGVja1N1Ym1pc3Npb25TdGF0dXM6IHRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzIH0sIHNlbGVjdGVkUHJvZHVjdHM6IHRoaXMuZGF0YVNvdXJjZU5ldyB9XHJcbiAgICAgIH0pXHJcbiAgICAgICAgLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZT8uZGF0YT8uc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93Q2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignY2F0ZWdvcnknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd1F1YW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3F1YW50aXR5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dQcmljZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdwcmljZScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93U3ViY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignc3ViQ2F0ZWdvcnknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgc2VsZWN0ZWRQcm9kdWN0cy0ke3RoaXMuZGVhbElkfWAsIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEuaXRlbXMuc2VsZWN0ZWRQcm9kdWN0cykpO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VOZXcgPSByZXNwb25zZS5kYXRhLml0ZW1zLnNlbGVjdGVkUHJvZHVjdHM7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jb21wb25lbnQuZGVmYXVsdFZhbHVlID0gcmVzcG9uc2UuZGF0YS5pdGVtcy5zZWxlY3RlZFByb2R1Y3RzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja1Jvd3NOdW1iZXIoKTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8IHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5wdXNoKHt9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YV07XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgY2hlY2tSb3dzTnVtYmVyKCkge1xyXG4gICAgd2hpbGUgKHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGggPCB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVJvdyhpbmRleCkge1xyXG4gICAgbGV0IG1lc3NhZ2UgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHByb2R1Y3Q/JztcclxuICAgIGxldCBzaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMpIHtcclxuICAgICAgbWVzc2FnZSA9ICdQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwcm9kdWN0Lic7XHJcbiAgICAgIHNob3dCdXR0b24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgd2lkdGg6ICc5MCUnLFxyXG4gICAgICBtYXhXaWR0aDogJzQwMHB4JyxcclxuICAgICAgZGF0YTogeyBtZXNzYWdlOiBtZXNzYWdlLCBidXR0b25TdGF0dXM6IHNob3dCdXR0b24gfVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMSAmJiB0aGlzLmNoZWNrU3VibWlzc2lvblN0YXR1cykge1xyXG4gICAgICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gVXNlciBjb25maXJtZWQsIHByb2NlZWQgd2l0aCBkZWxldGlvblxyXG4gICAgICAgIHRoaXMuaW5zdGFuY2UucmVtb3ZlUm93KGluZGV4KTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gWy4uLnRoaXMuZGF0YVNvdXJjZS5kYXRhXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkcm9wVGFibGUoZXZlbnQ6IENka0RyYWdEcm9wPGFueT4pIHtcclxuICAgIGNvbnN0IHByZXZJbmRleCA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZpbmRJbmRleCgoZCkgPT4gZCA9PT0gZXZlbnQuaXRlbS5kYXRhKTtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbnRyb2wudmFsdWUsIHByZXZJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMucmVuZGVyQ29tcG9uZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyQ29tcG9uZW50cygpIHtcclxuICAgIHRoaXMuaW5zdGFuY2UuZ2V0Um93cygpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUgfHwgW10pO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUodmFsdWU6IFtdIHwgbnVsbCkge1xyXG4gICAgY29uc3QgZ3JpZExlbmd0aCA9IHZhbHVlID8gdmFsdWUubGVuZ3RoIDogMDtcclxuICAgIHdoaWxlICh0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoIDwgZ3JpZExlbmd0aCkge1xyXG4gICAgICB0aGlzLmFkZEFub3RoZXIoKTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5kYXRhVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF2YWx1ZSAmJiB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5jbGVhck9uSGlkZSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuaW5zdGFuY2UuZGVmYXVsdFZhbHVlKTtcclxuICAgIH1cclxuICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuRGF0YUdyaWRDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50O1xyXG5leHBvcnQgeyBEYXRhR3JpZENvbXBvbmVudCB9OyJdfQ==
571
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvZGF0YWdyaWQvZGF0YWdyaWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8saUJBQWlCLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBT3RGLE1BQU0sWUFBWSxHQUFjLEVBQy9CLENBQUM7QUFtSkYsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUVwRSxZQUFtQixPQUFtQixFQUFTLEdBQXNCLEVBQVUsTUFBaUIsRUFBUyxhQUE0QjtRQUNuSSxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBREgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBTXJJLGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxZQUFZLENBQUM7UUFDN0Isd0JBQW1CLEdBQWEsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUs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QUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1SCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1SCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1SCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1SCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxDQUFD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QUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO1FBRUQsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDdEU7UUFDRCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7O3NIQTdSVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixrRkFoSjFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMklUOzJGQUtVLHlCQUF5QjtrQkFsSnJDLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMklUOztBQW9TSCxpQkFBaUIsQ0FBQyxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQnO1xyXG5pbXBvcnQgRGF0YUdyaWRDb21wb25lbnQgZnJvbSAnZm9ybWlvanMvY29tcG9uZW50cy9kYXRhZ3JpZC9EYXRhR3JpZC5qcyc7XHJcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFkZE9uUHJvZHVjdHNDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtb24tcHJvZHVjdHMvYWRkLW9uLXByb2R1Y3RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24uc2VydmljZSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCB7XHJcbiAgcHJvZHVjdE5hbWU6IHN0cmluZztcclxuICBxdWFudGl0eTogbnVtYmVyO1xyXG4gIHByaWNlOiBudW1iZXI7XHJcbn1cclxuY29uc3QgRUxFTUVOVF9EQVRBOiBQcm9kdWN0W10gPSBbXHJcbl07XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1kYXRhZ3JpZCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsVGVtcGxhdGVdPVwibGFiZWxUZW1wbGF0ZVwiXHJcbiAgICA+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgICAgPG1hdC1jYXJkIGZ4RmlsbD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzTGFiZWxcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgKm5nSWY9XCJzaG93RGF0YUdyaWRcIj5cclxuICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5zdGFuY2UuaGFzQWRkQnV0dG9uKCkgJiYgKGluc3RhbmNlLmNvbXBvbmVudC5hZGRBbm90aGVyUG9zaXRpb24gPT09ICdib3RoJyB8fCBpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlclBvc2l0aW9uID09PSAndG9wJylcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiYWRkQW5vdGhlcigpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAge3tpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlciB8fCAnQWRkIEFub3RoZXInfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd05ld1Byb2R1Y3RQaWNrZXJcIj5cclxuPGRpdiBjbGFzcz1cIm1hdC1lbGV2YXRpb24tejhcIj5cclxuICAgICAgICAgIDx0YWJsZVxyXG4gICAgICAgICAgICAgICAgICBtYXQtdGFibGVcclxuICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiXHJcbiAgICAgICAgICAgICAgICAgIGZ4RmlsbFxyXG4gICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxyXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRhdGFTb3VyY2VcIlxyXG4gICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BUYWJsZSgkZXZlbnQpXCIgKm5nSWY9XCIhaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZCB8fCAhZW1wdHlBcnJheTsgZWxzZSBub0RhdGFNZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGZvcm1Db2x1bW5zXCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPnt7IGdldENvbHVtbkxhYmVsKGNvbHVtbnNbY29sdW1uXSkgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpID0gaW5kZXg7XCIgW2F0dHIucm93SW5kZXhdPVwiaVwiIFthdHRyLmNvbXBvbmVudF09XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIl9fcmVtb3ZlUm93XCI+XHJcbiAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxyXG4gICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKm5nSWY9XCJpbnN0YW5jZS5oYXNSZW1vdmVCdXR0b25zKClcIiAoY2xpY2spPVwicmVtb3ZlUm93KGkpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWhpZGRlbj1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIlJlbW92ZSByb3dcIj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicG9zaXRpb25cIiAqbmdJZj1cImluc3RhbmNlLmNvbXBvbmVudC5yZW9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTm8uPC90aD5cclxuICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNka0RyYWdIYW5kbGU+cmVvcmRlcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpbnN0YW5jZT8uY29tcG9uZW50Py5yZW9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiZGF0YWdyaWQtcm93XCIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIiBjZGtEcmFnXHJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJyb3dcIj48L3RyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpbnN0YW5jZT8uY29tcG9uZW50Py5yZW9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiZGF0YWdyaWQtcm93XCIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48IS0tIERlZmF1bHQgTWVzc2FnZSAtLT5cclxuPG5nLXRlbXBsYXRlICNub0RhdGFNZXNzYWdlPlxyXG4gIDxkaXYgY2xhc3M9XCJuby1kYXRhLW1lc3NhZ2VcIiAqbmdJZj1cImlzQ3VzdG9tZXJDb3VudHJ5RmlsdGVyZWQgJiYgZW1wdHlBcnJheVwiPlxyXG4gICAgPHNwYW4+XHJcbiAgICAgIE5vIFByb2R1Y3QgZm91bmQgd2l0aCBzZWxlY3RlZCBDdXN0b21lciBjb3VudHJ5LlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDx0YWJsZSBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZU5ld1wiIGNsYXNzPVwibWF0LXRhYmxlXCIgKm5nSWY9XCJkYXRhU291cmNlTmV3Lmxlbmd0aCA+IDAgJiYgc2hvd05ld1Byb2R1Y3RQaWNrZXI7IGVsc2Ugbm9EYXRhXCIgPlxyXG4gICAgPCEtLSBQcm9kdWN0IE5hbWUgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwcm9kdWN0TmFtZVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBQcm9kdWN0IE5hbWUgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnRleHR9fSA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBRdWFudGl0eSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInF1YW50aXR5XCIgKm5nSWY9XCJzaG93UXVhbnRpdHlcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gUXVhbnRpdHkgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnF1YW50aXR5fX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gUHJpY2UgQ29sdW1uIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwcmljZVwiICpuZ0lmPVwic2hvd1ByaWNlXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFByaWNlIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5wcmljZX19IDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgPCEtLSBDYXRlZ29yeSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNhdGVnb3J5XCIgKm5nSWY9XCJzaG93Q2F0ZWdvcnlcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQ2F0ZWdvcnkgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmNhdGVnb3J5fX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIENhdGVnb3J5IENvbHVtbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3ViQ2F0ZWdvcnlcIiAqbmdJZj1cInNob3dTdWJjYXRlZ29yeVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBTdWIgQ2F0ZWdvcnkgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnN1YkNhdGVnb3J5fX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFNLVSBDb2x1bW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNrdU51bWJlclwiICpuZ0lmPVwic2hvd1NrdU51bWJlclwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBTS1UgTnVtYmVyIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+ICNTa3VOdW1iZXIte3tlbGVtZW50LnZhbHVlfX0gPC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc05ld1wiPjwvdHI+XHJcbiAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc05ldztcIj48L3RyPlxyXG4gIDwvdGFibGU+XHJcbiAgPG5nLXRlbXBsYXRlICNub0RhdGE+XHJcbiAgPGRpdiBjbGFzcz1cIm5vLWRhdGEtbWVzc2FnZVwiICpuZ0lmPVwic2hvd05ld1Byb2R1Y3RQaWNrZXJcIj5cclxuICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dOZXdQcm9kdWN0UGlja2VyICYmICFpc0N1c3RvbWVyQ291bnRyeUZpbHRlcmVkXCI+XHJcbiAgICAgIE5vIHByb2R1Y3RzIGZvdW5kLiBQbGVhc2UgYWRkIHNvbWUgcHJvZHVjdHMuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd05ld1Byb2R1Y3RQaWNrZXIgJiYgaXNDdXN0b21lckNvdW50cnlGaWx0ZXJlZFwiPlxyXG4gICAgICBObyBQcm9kdWN0IGZvdW5kIHdpdGggc2VsZWN0ZWQgQ3VzdG9tZWVyIGNvdW50cnkuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zICpuZ0lmPVwiaW5zdGFuY2UuaGFzQWRkQnV0dG9uKCkgJiYgaW5zdGFuY2UuY29tcG9uZW50LmFkZEFub3RoZXJQb3NpdGlvbiAhPT0gJ3RvcCdcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZEFub3RoZXIoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAge3tpbnN0YW5jZS5jb21wb25lbnQuYWRkQW5vdGhlciB8fCAnQWRkIEFub3RoZXInfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICAgICAgPC9tYXQtY2FyZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNsYWJlbFRlbXBsYXRlPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPHNwYW4gW2luc3RhbmNlXT1cImluc3RhbmNlXCIgbWF0Rm9ybWlvTGFiZWw+PC9zcGFuPlxyXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gICAgJy5kYXRhZ3JpZC1yb3cgeyBoZWlnaHQ6IGF1dG87IH0gLm1hdC10YWJsZXsgd2lkdGg6IDEwMCUgfSAubWF0LWhlYWRlci1jZWxsLCAubWF0LWNlbGx7IHBhZGRpbmc6IDhweCB9IC5uby1kYXRhLW1lc3NhZ2Uge2Rpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6MjBweDsgbWFyZ2luOiAwIDIwcHggMDsgZm9udC1zaXplOiAxOHB4O2NvbG9yOiAjODg4OyBoZWlnaHQ6IDEwMCU7fSdcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxOZXN0ZWRDb21wb25lbnQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZiwgcHVibGljIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihlbGVtZW50LCByZWYpO1xyXG4gIH1cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICBmb3JtQ29sdW1uczogc3RyaW5nW107XHJcbiAgY29sdW1uczogYW55O1xyXG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKCk7XHJcbiAgZGF0YVNvdXJjZU5ldyA9IEVMRU1FTlRfREFUQTtcclxuICBkaXNwbGF5ZWRDb2x1bW5zTmV3OiBzdHJpbmdbXSA9IFsncHJvZHVjdE5hbWUnLCAnY2F0ZWdvcnknLCAnc3ViQ2F0ZWdvcnknLCAncXVhbnRpdHknLCAncHJpY2UnLCAnc2t1TnVtYmVyJ107XHJcbiAgc2hvd05ld1Byb2R1Y3RQaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93Q2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93U3ViY2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93UHJpY2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dRdWFudGl0eTogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd1NrdU51bWJlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhc0luaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2hlY2tTdWJtaXNzaW9uU3RhdHVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0RhdGFHcmlkOiBib29sZWFuID0gdHJ1ZTtcclxuICBoYXNWYWx1ZUFuZEVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25MMTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duTDI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkwzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHJvcGRvd25MNDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dRdWFudGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dQcmljZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dDYXRlZ29yeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dEaWFsb2dTa3VOdW1iZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93RGlhbG9nU3ViQ2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkwxTGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIGRyb3Bkb3duTDJMYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgZHJvcGRvd25MM0xhYmVsOiBzdHJpbmcgPSAnJztcclxuICBkcm9wZG93bkw0TGFiZWw6IHN0cmluZyA9ICcnO1xyXG4gIGRlYWxJZDogYW55O1xyXG4gIGlzQ3VzdG9tZXJDb3VudHJ5RmlsdGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbXB0eUFycmF5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ2V0Q29sdW1uTGFiZWwoY29sdW1uKSB7XHJcbiAgICByZXR1cm4gY29sdW1uLmxhYmVsIHx8IGNvbHVtbi5rZXk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldExhYmVsTmFtZShuZXdQcm9kdWN0UGlja2VyRmxhZywgYXR0cmlidXRlTmFtZSkge1xyXG4gICAgaWYgKG5ld1Byb2R1Y3RQaWNrZXJGbGFnICYmIE9iamVjdC5rZXlzKG5ld1Byb2R1Y3RQaWNrZXJGbGFnKS5zb21lKGtleSA9PlxyXG4gICAgICBrZXkudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gYXR0cmlidXRlTmFtZS50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAvLyBGaW5kIHRoZSBrZXkgdGhhdCBtYXRjaGVzIGF0dHJpYnV0ZU5hbWUgY2FzZS1pbnNlbnNpdGl2ZWx5XHJcbiAgICAgIGNvbnN0IG1hdGNoaW5nS2V5ID0gT2JqZWN0LmtleXMobmV3UHJvZHVjdFBpY2tlckZsYWcpLmZpbmQoa2V5ID0+XHJcbiAgICAgICAga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IGF0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKVxyXG4gICAgICApO1xyXG4gICAgICAvLyBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBtYXRjaGluZyBrZXlcclxuICAgICAgcmV0dXJuIG5ld1Byb2R1Y3RQaWNrZXJGbGFnW21hdGNoaW5nS2V5XTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIC8vIH1cclxuXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgLy9jb25zdCBuZXdQcm9kdWN0UGlja2VyRmxhZyA9IGluc3RhbmNlPy5jb21wb25lbnQ/LmF0dHJpYnV0ZXM7XHJcbiAgICBjb25zdCBjaGVja0F0dHJpYnV0ZSA9IGluc3RhbmNlPy5jb21wb25lbnQ/LmF0dHJpYnV0ZXM7XHJcbiAgICB0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcIm5ld3Byb2R1Y3RwaWNrZXJcIik7XHJcbiAgICB0aGlzLnNob3dDYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93Q2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dTdWJjYXRlZ29yeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93U3ViY2F0ZWdvcnlcIik7XHJcbiAgICB0aGlzLnNob3dQcmljZSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93UHJpY2VcIik7XHJcbiAgICB0aGlzLnNob3dRdWFudGl0eSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93UXVhbnRpdHlcIik7XHJcbiAgICB0aGlzLnNob3dTa3VOdW1iZXIgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd1NrdU51bWJlclwiKTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZ1F1YW50aXR5ID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dRdWFudGl0eVwiKTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZ1ByaWNlID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dQcmljZVwiKTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZ0NhdGVnb3J5ID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcInNob3dEaWFsb2dDYXRlZ29yeVwiKTtcclxuICAgIHRoaXMuc2hvd0RpYWxvZ1NrdU51bWJlciA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShjaGVja0F0dHJpYnV0ZSwgXCJzaG93RGlhbG9nU2t1TnVtYmVyXCIpO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nU3ViQ2F0ZWdvcnkgPSB0aGlzLmNvbW1vblNlcnZpY2UuY2hlY2tJc0F0dHJpYnV0ZVRydWUoY2hlY2tBdHRyaWJ1dGUsIFwic2hvd0RpYWxvZ1N1YkNhdGVnb3J5XCIpO1xyXG4gICAgdGhpcy5pc0N1c3RvbWVyQ291bnRyeUZpbHRlcmVkID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCBcImZpbHRlclByb2R1Y3RCYXNlZE9uQ3VzdG9tZXJDb3VudHJ5XCIpO1xyXG4gICAgY29uc3QgbDEgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwxXCIpO1xyXG4gICAgY29uc3QgbDIgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwyXCIpO1xyXG4gICAgY29uc3QgbDMgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkwzXCIpO1xyXG4gICAgY29uc3QgbDQgPSB0aGlzLmdldExhYmVsTmFtZShjaGVja0F0dHJpYnV0ZSwgXCJkcm9wZG93bkw0XCIpO1xyXG4gICAgdGhpcy5kcm9wZG93bkwxID0gbDEgIT09IG51bGwgJiYgbDEgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGwxID09PSAnc3RyaW5nJyA/IGwxLnRyaW0oKSAhPT0gXCJcIiA6IGwxICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIHRoaXMuZHJvcGRvd25MMiA9IGwyICE9PSBudWxsICYmIGwyICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBsMiA9PT0gJ3N0cmluZycgPyBsMi50cmltKCkgIT09IFwiXCIgOiBsMiAhPT0gXCJcIikgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLmRyb3Bkb3duTDMgPSBsMyAhPT0gbnVsbCAmJiBsMyAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgbDMgPT09ICdzdHJpbmcnID8gbDMudHJpbSgpICE9PSBcIlwiIDogbDMgIT09IFwiXCIpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgdGhpcy5kcm9wZG93bkw0ID0gbDQgIT09IG51bGwgJiYgbDQgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIGw0ID09PSAnc3RyaW5nJyA/IGw0LnRyaW0oKSAhPT0gXCJcIiA6IGw0ICE9PSBcIlwiKSA/IHRydWUgOiBmYWxzZTtcclxuICAgIGlmICh0aGlzLmRyb3Bkb3duTDEpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkwxTGFiZWwgPSBsMTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyb3Bkb3duTDIpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkwyTGFiZWwgPSBsMjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyb3Bkb3duTDMpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkwzTGFiZWwgPSBsMztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRyb3Bkb3duTDQpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkw0TGFiZWwgPSBsNDtcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzID0gdGhpcy5jb21tb25TZXJ2aWNlLmNoZWNrSXNBdHRyaWJ1dGVUcnVlKGNoZWNrQXR0cmlidXRlLCAnaXNQcm9kdWN0T3B0aW9uYWwnKTtcclxuICAgIHRoaXMuaGFzVmFsdWVBbmRFZGl0TW9kZSA9IChjaGVja0F0dHJpYnV0ZT8uaGFzVmFsdWUgPT09ICd5ZXMnKSAmJiAoY2hlY2tBdHRyaWJ1dGU/LmVkaXRNb2RlID09PSAndHJ1ZScpO1xyXG4gICAgY29uc3QgcmV0cmlldmVkT2JqZWN0ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3RvcmFnZU9iamVjdCcpKTtcclxuICAgIHRoaXMuZW1wdHlBcnJheSA9IHJldHJpZXZlZE9iamVjdD8uZGF0YVNvdXJjZT8ubGVuZ3RoIDwgMSA/IHRydWUgOiBmYWxzZTtcclxuICAgIHN1cGVyLnNldEluc3RhbmNlKGluc3RhbmNlKTtcclxuICAgIGlmICh0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyICYmICF0aGlzLmhhc0luaXRpYWxpemVkKSB7XHJcbiAgICAgIGlmICghdGhpcy5zaG93Q2F0ZWdvcnkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignY2F0ZWdvcnknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuc2hvd1F1YW50aXR5KSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3F1YW50aXR5Jyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNob3dQcmljZSkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdwcmljZScpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zaG93U3ViY2F0ZWdvcnkpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbignc3ViQ2F0ZWdvcnknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuc2hvd1NrdU51bWJlcikge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdza3VOdW1iZXInKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRlYWxJZCA9IHRoaXMuZ2V0TGFiZWxOYW1lKGNoZWNrQXR0cmlidXRlLCBcImRlYWxJZFwiKTtcclxuICAgICAgY29uc3Qgc3RvcmVkRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGBzaG93R3JpZFBpY2tlclByb2R1Y3RzLSR7dGhpcy5kZWFsSWR9YCkgfHwgJyc7XHJcbiAgICAgIGNvbnN0IHBhcnNlZERhdGEgPSBKU09OLnBhcnNlKHN0b3JlZERhdGEgfHwgJ251bGwnKTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlTmV3ID0gQXJyYXkuaXNBcnJheShwYXJzZWREYXRhKSA/IHBhcnNlZERhdGEgOiBbXTtcclxuXHJcbiAgICAgIC8vIFNldCBmbGFnIHRvIHRydWUgdG8gcHJldmVudCBmdXJ0aGVyIGV4ZWN1dGlvblxyXG4gICAgICB0aGlzLmhhc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gaW5zdGFuY2UuZGF0YVZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2hlY2tTdWJtaXNzaW9uU3RhdHVzICYmICF0aGlzLmhhc1ZhbHVlQW5kRWRpdE1vZGUpIHtcclxuICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbXVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGluc3RhbmNlLmRhdGFWYWx1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sdW1ucyA9IHt9O1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW107XHJcbiAgICB0aGlzLmZvcm1Db2x1bW5zID0gW107XHJcbiAgICBpbnN0YW5jZS5nZXRDb2x1bW5zKCkubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgdGhpcy5mb3JtQ29sdW1ucy5wdXNoKGNvbHVtbi5rZXkpO1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChjb2x1bW4ua2V5KTtcclxuICAgICAgdGhpcy5jb2x1bW5zW2NvbHVtbi5rZXldID0gY29sdW1uO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaCgnX19yZW1vdmVSb3cnKTtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5yZW9yZGVyKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdwb3NpdGlvbicpO1xyXG4gICAgfVxyXG4gICAgaW5zdGFuY2Uudmlld0NvbnRhaW5lciA9IChjb21wb25lbnQpID0+IHtcclxuICAgICAgbGV0IHZpZXdDb250YWluZXI7XHJcbiAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5kaXNhYmxlZCkge1xyXG4gICAgICAgIGNvbXBvbmVudC5jb21wb25lbnQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGQgPSBjb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgY29tcG9uZW50LnJvd0luZGV4ID09PSBwYXJzZUludCh0ZC5nZXRBdHRyaWJ1dGUoJ3Jvd0luZGV4JyksIDEwKSAmJlxyXG4gICAgICAgICAgY29tcG9uZW50LmNvbXBvbmVudC5rZXkgPT09IHRkLmdldEF0dHJpYnV0ZSgnY29tcG9uZW50JylcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHZpZXdDb250YWluZXIgPSBjb250YWluZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJldHVybiB2aWV3Q29udGFpbmVyID8gdmlld0NvbnRhaW5lciA6IG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ29sdW1uKGNvbHVtbk5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zTmV3ID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zTmV3LmZpbHRlcihjb2x1bW4gPT4gY29sdW1uICE9PSBjb2x1bW5OYW1lKTtcclxuICB9XHJcblxyXG4gIGFkZEFub3RoZXJPbGQoKSB7XHJcbiAgICB0aGlzLnNob3dEYXRhR3JpZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoZWNrUm93c051bWJlcigpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGggPCB0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLnB1c2goe30pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGFdO1xyXG4gIH1cclxuXHJcbiAgYWRkQW5vdGhlcigpIHtcclxuICAgIHRoaXMuc2hvd0RhdGFHcmlkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyKSB7XHJcbiAgICAgIGNvbnN0IGRpb2xvZ2VSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEFkZE9uUHJvZHVjdHNDb21wb25lbnQsIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxyXG4gICAgICAgIG1heFdpZHRoOiAnOTAwcHgnLFxyXG4gICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXHJcbiAgICAgICAgZGF0YTogeyBkcm9wZG93bnNGbGFnOiB7IHNob3dOZXdQcm9kdWN0UGlja2VyOiB0aGlzLnNob3dOZXdQcm9kdWN0UGlja2VyLCBzaG93RGlhbG9nU3ViQ2F0ZWdvcnk6IHRoaXMuc2hvd0RpYWxvZ1N1YkNhdGVnb3J5LCBzaG93RGlhbG9nU2t1TnVtYmVyOiB0aGlzLnNob3dEaWFsb2dTa3VOdW1iZXIsIHNob3dEaWFsb2dDYXRlZ29yeTogdGhpcy5zaG93RGlhbG9nQ2F0ZWdvcnksIHNob3dEaWFsb2dQcmljZTogdGhpcy5zaG93RGlhbG9nUHJpY2UsIHNob3dEaWFsb2dRdWFudGl0eTogdGhpcy5zaG93RGlhbG9nUXVhbnRpdHksIGRyb3Bkb3duTDE6IHRoaXMuZHJvcGRvd25MMSwgZHJvcGRvd25MMjogdGhpcy5kcm9wZG93bkwyLCBkcm9wZG93bkwzOiB0aGlzLmRyb3Bkb3duTDMsIGRyb3Bkb3duTDQ6IHRoaXMuZHJvcGRvd25MNCwgZHJvcGRvd25MMUxhYmVsOiB0aGlzLmRyb3Bkb3duTDFMYWJlbCwgZHJvcGRvd25MMkxhYmVsOiB0aGlzLmRyb3Bkb3duTDJMYWJlbCwgZHJvcGRvd25MM0xhYmVsOiB0aGlzLmRyb3Bkb3duTDNMYWJlbCwgZHJvcGRvd25MNExhYmVsOiB0aGlzLmRyb3Bkb3duTDRMYWJlbCwgY2hlY2tTdWJtaXNzaW9uU3RhdHVzOiB0aGlzLmNoZWNrU3VibWlzc2lvblN0YXR1cyB9LCBzZWxlY3RlZFByb2R1Y3RzOiB0aGlzLmRhdGFTb3VyY2VOZXcgfVxyXG4gICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LmRhdGE/LnN0YXR1cykge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd0NhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ2NhdGVnb3J5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dRdWFudGl0eSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ29sdW1uKCdxdWFudGl0eScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zaG93UHJpY2UpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNvbHVtbigncHJpY2UnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvd1N1YmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5yZW1vdmVDb2x1bW4oJ3N1YkNhdGVnb3J5Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQcm9kdWN0c0NvcHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEuaXRlbXMuc2VsZWN0ZWRQcm9kdWN0cykpO1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgc2VsZWN0ZWRQcm9kdWN0cy0ke3RoaXMuZGVhbElkfWAsIEpTT04uc3RyaW5naWZ5KHRoaXMuYWRkUHJpY2VQcm9wZXJ0eShzZWxlY3RlZFByb2R1Y3RzQ29weSkpKTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlTmV3ID0gcmVzcG9uc2UuZGF0YS5pdGVtcy5zZWxlY3RlZFByb2R1Y3RzO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dEYXRhR3JpZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmRlZmF1bHRWYWx1ZSA9IHJlc3BvbnNlLmRhdGEuaXRlbXMuc2VsZWN0ZWRQcm9kdWN0cztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tSb3dzTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuaW5zdGFuY2UuYWRkUm93KCk7XHJcbiAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGggPCB0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEucHVzaCh7fSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGFdO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGFkZFByaWNlUHJvcGVydHkoc2VsZWN0ZWRQcm9kdWN0cykge1xyXG4gICAgcmV0dXJuIHNlbGVjdGVkUHJvZHVjdHMubWFwKHByb2R1Y3RzID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5wcm9kdWN0cyxcclxuICAgICAgICBwcmljZURpc2FibGU6IHRydWVcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgY2hlY2tSb3dzTnVtYmVyKCkge1xyXG4gICAgd2hpbGUgKHRoaXMuaW5zdGFuY2Uucm93cy5sZW5ndGggPCB0aGlzLmRhdGFTb3VyY2UuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hZGRSb3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVJvdyhpbmRleCkge1xyXG4gICAgbGV0IG1lc3NhZ2UgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHByb2R1Y3Q/JztcclxuICAgIGxldCBzaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5jaGVja1N1Ym1pc3Npb25TdGF0dXMpIHtcclxuICAgICAgbWVzc2FnZSA9ICdQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBwcm9kdWN0Lic7XHJcbiAgICAgIHNob3dCdXR0b24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgd2lkdGg6ICc5MCUnLFxyXG4gICAgICBtYXhXaWR0aDogJzQwMHB4JyxcclxuICAgICAgZGF0YTogeyBtZXNzYWdlOiBtZXNzYWdlLCBidXR0b25TdGF0dXM6IHNob3dCdXR0b24gfVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA9PT0gMSAmJiB0aGlzLmNoZWNrU3VibWlzc2lvblN0YXR1cykge1xyXG4gICAgICAgICAgdGhpcy5zaG93RGF0YUdyaWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gVXNlciBjb25maXJtZWQsIHByb2NlZWQgd2l0aCBkZWxldGlvblxyXG4gICAgICAgIHRoaXMuaW5zdGFuY2UucmVtb3ZlUm93KGluZGV4KTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gWy4uLnRoaXMuZGF0YVNvdXJjZS5kYXRhXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkcm9wVGFibGUoZXZlbnQ6IENka0RyYWdEcm9wPGFueT4pIHtcclxuICAgIGNvbnN0IHByZXZJbmRleCA9IHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZpbmRJbmRleCgoZCkgPT4gZCA9PT0gZXZlbnQuaXRlbS5kYXRhKTtcclxuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmNvbnRyb2wudmFsdWUsIHByZXZJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMucmVuZGVyQ29tcG9uZW50cygpO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyQ29tcG9uZW50cygpIHtcclxuICAgIHRoaXMuaW5zdGFuY2UuZ2V0Um93cygpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUgfHwgW10pO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWUodmFsdWU6IFtdIHwgbnVsbCkge1xyXG4gICAgY29uc3QgZ3JpZExlbmd0aCA9IHZhbHVlID8gdmFsdWUubGVuZ3RoIDogMDtcclxuICAgIHdoaWxlICh0aGlzLmluc3RhbmNlLnJvd3MubGVuZ3RoIDwgZ3JpZExlbmd0aCkge1xyXG4gICAgICB0aGlzLmFkZEFub3RoZXIoKTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5kYXRhVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF2YWx1ZSAmJiB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5jbGVhck9uSGlkZSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuaW5zdGFuY2UuZGVmYXVsdFZhbHVlKTtcclxuICAgIH1cclxuICAgIHN1cGVyLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuRGF0YUdyaWRDb21wb25lbnQuTWF0ZXJpYWxDb21wb25lbnQgPSBNYXRlcmlhbERhdGFHcmlkQ29tcG9uZW50O1xyXG5leHBvcnQgeyBEYXRhR3JpZENvbXBvbmVudCB9OyJdfQ==
@@ -4062,7 +4062,8 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
4062
4062
  if (!this.showSubcategory) {
4063
4063
  this.removeColumn('subCategory');
4064
4064
  }
4065
- localStorage.setItem(`selectedProducts-${this.dealId}`, JSON.stringify(response.data.items.selectedProducts));
4065
+ const selectedProductsCopy = JSON.parse(JSON.stringify(response.data.items.selectedProducts));
4066
+ localStorage.setItem(`selectedProducts-${this.dealId}`, JSON.stringify(this.addPriceProperty(selectedProductsCopy)));
4066
4067
  this.dataSourceNew = response.data.items.selectedProducts;
4067
4068
  this.showDataGrid = true;
4068
4069
  this.instance.component.defaultValue = response.data.items.selectedProducts;
@@ -4078,6 +4079,11 @@ class MaterialDataGridComponent extends MaterialNestedComponent {
4078
4079
  this.dataSource.data = [...this.dataSource.data];
4079
4080
  }
4080
4081
  }
4082
+ addPriceProperty(selectedProducts) {
4083
+ return selectedProducts.map(products => {
4084
+ return Object.assign(Object.assign({}, products), { priceDisable: true });
4085
+ });
4086
+ }
4081
4087
  checkRowsNumber() {
4082
4088
  while (this.instance.rows.length < this.dataSource.data.length) {
4083
4089
  this.instance.addRow();