gamma-app-controller 1.2.24 → 1.2.26

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.
@@ -235,7 +235,9 @@ export class AppAdvanceHeaderComponent {
235
235
  else if (displayEndDate) {
236
236
  selectedText = displayEndDate;
237
237
  }
238
- const element = document.getElementById(this.filterObjects.widgetId);
238
+ const element = this.filterObjects?.widgetId
239
+ ? document.getElementById(this.filterObjects.widgetId)
240
+ : null;
239
241
  if (element) {
240
242
  element.innerText = selectedText;
241
243
  }
@@ -324,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
324
326
  type: Input,
325
327
  args: ['contextFilterItems']
326
328
  }] } });
327
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYXBwLWFkdmFuY2UtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2FwcC1hZHZhbmNlLWhlYWRlci9hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sTUFBTSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBT25FLE1BQU0sT0FBTyx5QkFBeUI7SUE0RGxDLFlBQ1ksY0FBOEIsRUFDOUIsS0FBYSxFQUNiLGFBQTRCLEVBQzVCLE9BQXdCO1FBSHhCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUF6RDFCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFTekUsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFDOUIsNEJBQXVCLEdBQUcsT0FBTyxDQUFDO1FBTWxDLGlCQUFZLEdBQUc7WUFDWCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUNqQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUNs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bEJDVHRDLCs5SUF1Rlc7MkZEOUVFLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDSSxvQkFBb0I7b0xBSXJCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBaURVLDJCQUEyQjtzQkFBM0MsTUFBTTtnQkFDVSxtQkFBbUI7c0JBQW5DLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTTtnQkFDVSxvQkFBb0I7c0JBQXBDLE1BQU07Z0JBV0UsYUFBYTtzQkFBckIsS0FBSztnQkFNRixXQUFXO3NCQURkLEtBQUs7dUJBQUMsYUFBYTtnQkFxRWhCLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnLi4vLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci9tb21lbnQtaGVscGVyJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2NvbW1vbic7XG5pbXBvcnQgeyBBcHBMb2NhbFN0b3JhZ2UgfSBmcm9tICcuLi8uLi8uLi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL3Rva2VuU3RvcmFnZS5zZXJ2Y2UnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtYWR2YW5jZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgcGFnZVRpdGxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYnJlYWRfY3J1bWJzX2NvbnRhaW5lcjogYW55O1xuICAgIEBJbnB1dCgpIGlzRWRpdEJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc0FkdmFuY2VCdXR0b246IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2VsZWN0ZWREYXRlczogYW55O1xuXG4gICAgQE91dHB1dCgpIHRvZ2dsZUV2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIGlzQWR2YW5jZUZpbHRlcjogYm9vbGVhbjtcbiAgICBicm93c2VyX2NvbmZpZzogYW55O1xuICAgIGtwaV9pZDogYW55O1xuXG4gICAgZmlsdGVyU3RhcnREYXRlO1xuICAgIGZpbHRlckVuZERhdGU7XG4gICAgZmlsdGVyT3B0aW9ucztcblxuICAgIGF1dG9sb2FkX2J1dHRvbiA9IHRydWU7XG4gICAgcHJpdmF0ZSB0aW1lX291dF9pZDtcbiAgICB0b29sVGlwVGV4dCA9ICdCeSBEYXRlIFJhbmdlJztcbiAgICBkZWZhdWx0U2VsZWN0ZWRPcGVyYXRvciA9ICdBRkdBVCc7XG5cbiAgICBpc29wZXJhdG9yS2V5OiBib29sZWFuO1xuXG4gICAgZGVmYXVsdEZpbHRlclZhbHVlOiBhbnk7XG5cbiAgICBvcGVyYVRvckxpc3QgPSBbXG4gICAgICAgIHsgbmFtZTogXCJBRlRFTFwiLCB2YWx1ZTogXCJBRkdBVFwiIH0sXG4gICAgICAgIHsgbmFtZTogXCJST1NIQU5cIiwgdmFsdWU6IFwiQUZHVERcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiTVROQUZcIiwgdmFsdWU6IFwiQUZHQVJcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiRVRJU0FMQVRcIiwgdmFsdWU6IFwiQUZHRUFcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiQVdDQ1wiLCB2YWx1ZTogXCJBRkdBV1wiIH0sXG4gICAgXVxuXG4gICAgcHVibGljIGRhdGVyYW5nZTogYW55ID0ge307XG4gICAgcHVibGljIGRhdGVyYW5nZV9vcHRpb25zOiBhbnkgPSB7XG4gICAgICAgIGxvY2FsZTogeyBmb3JtYXQ6ICdZWVlZLU1NLUREJyB9LFxuICAgICAgICBhbHdheXNTaG93Q2FsZW5kYXJzOiB0cnVlLFxuICAgICAgICBzaG93Q3VzdG9tUmFuZ2VMYWJlbDogdHJ1ZSxcbiAgICAgICAgcmFuZ2VzOiB7XG4gICAgICAgICAgICBUb2RheTogW21vbWVudCgpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAvLyBZZXN0ZXJkYXk6IFttb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpLCBtb21lbnQoKS5zdWJ0cmFjdCgxLCAnZGF5cycpXSxcbiAgICAgICAgICAgICdMYXN0IDEgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoMzAsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDMgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoOTEsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDYgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoMTgyLCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCAxMiBNb250aCc6IFttb21lbnQoKS5zdWJ0cmFjdCgzNjUsICdkYXlzJyksIG1vbWVudCgpXSxcbiAgICAgICAgICAgICdMYXN0IDEzIE1vbnRocyc6IFtcbiAgICAgICAgICAgICAgICBtb21lbnQoKS5zdWJ0cmFjdCgxMiwgJ21vbnRoJykuc3RhcnRPZignbW9udGgnKSxcbiAgICAgICAgICAgICAgICBtb21lbnQoKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAnVGhpcyBNb250aCc6IFttb21lbnQoKS5zdGFydE9mKCdtb250aCcpLCBtb21lbnQoKS5lbmRPZignbW9udGgnKV0sXG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHNydlR5cGVEYXRhU291cmNlOiBhbnkgPSBbXTtcbiAgICBzcnZUeXBlRGlzcGxheVZhbHVlOiBhbnkgPSBbXTtcbiAgICBzZWxlY3RlZERldGVzZm9yVmlldzogc3RyaW5nID0gJyc7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBzZWxlY3RlZERhdGVSYW5nZU9yU2VydnR5cGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ2V0RmlsdGVyUGFnZUNvbmZpZzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBnZXRPcGVyYXRvck5hbWU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ2V0Q29udGV4dEZpbHRlckRhdGE6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc3RvcmFnZTogQXBwTG9jYWxTdG9yYWdlXG4gICAgKSB7XG5cbiAgICB9XG5cbiAgICBzZWxlY3RlZERhdGVzTWFwOiB7IFt3aWRnZXRJZDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBASW5wdXQoKSBmaWx0ZXJPYmplY3RzOiBhbnk7XG5cblxuICAgIGZpbHRlckl0ZW1zRm9yRmlsdGVyOiBhbnk7XG4gICAgb3BlcmF0b3JMb2dvOiBzdHJpbmc7XG4gICAgQElucHV0KCdmaWx0ZXJJdGVtcycpXG4gICAgc2V0IGZpbHRlckl0ZW1zKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBsZXQgZGlzcGxheVN0YXJ0RGF0ZSA9ICcnO1xuICAgICAgICAgICAgbGV0IGRpc3BsYXlFbmREYXRlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckl0ZW1zRm9yRmlsdGVyID0gdmFsdWU7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGVmYXVsdEZpbHRlclR5cGUgPT09IFwiZHluYW1pY1wiICYmIGVsZW1lbnQubW9tZW50RnVuY3Rpb24gIT09IFwiXCIgJiYgZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUgIT09IFwiXCIgJiYgZWxlbWVudC5tb21lbnRGb3JtYXQgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbGV0IFtjb3VudCwgdW5pdF0gPSBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICAgICAgICAvLyBsZXQgZm9ybWF0dGVkRGF0ZSA9IG1vbWVudCgpW2VsZW1lbnQubW9tZW50RnVuY3Rpb25dKHBhcnNlSW50KGNvdW50KSwgdW5pdCkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQubW9tZW50RnVuY3Rpb24gPT0gXCJtb250aFBpY2tlclwiIHx8IGVsZW1lbnQubW9tZW50RnVuY3Rpb24gPT0gXCJ3ZWVrUGlja2VyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwic3RhcnREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGFydERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdCgnTU1NLVlZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdCgnTU1NLVlZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcInN0YXJ0RGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhcnREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwiZW5kRGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RW5kRGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZGVmYXVsdEZpbHRlclR5cGUgPT09IFwic3RhdGljXCIgJiYgZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUgIT09IFwiXCIpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcInN0YXJ0RGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFbmREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChkaXNwbGF5U3RhcnREYXRlICYmIGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGAke2Rpc3BsYXlTdGFydERhdGV9IC0gJHtkaXNwbGF5RW5kRGF0ZX1gO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5U3RhcnREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGRpc3BsYXlTdGFydERhdGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGRpc3BsYXlFbmREYXRlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbiAgICBjb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXI6IGFueTtcbiAgICBASW5wdXQoJ2NvbnRleHRGaWx0ZXJJdGVtcycpXG4gICAgc2V0IGNvbnRleHRGaWx0ZXJJdGVtcyh2YWx1ZSkge1xuXG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlciA9IFtdO1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5maWx0ZXJUeXBlID09IFwiY29udGV4dFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyLnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclZhbHVlID0gdGhpcy5nZXREZWZhdWx0RmlsdGVyVmFsdWUocGFyYW1zKTtcbiAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snZmlsdGVyT2JqZWN0cyddICYmIHRoaXMuZmlsdGVyT2JqZWN0cz8ud2lkZ2V0SWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpZGdldElkID0gdGhpcy5maWx0ZXJPYmplY3RzLndpZGdldElkO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVzTWFwW3dpZGdldElkXSA9IHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXc7IC8vIGRlZmF1bHRcbiAgICAgICAgfVxuICAgIH1cblxuXG5cblxuICAgIGdldENvbnRleHRNZW51Q2hhbmdlKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5ldmVudCkge1xuICAgICAgICAgICAgY29uc3QgZm91bmRPYmplY3QgPSB0aGlzLmNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlci5maW5kKGl0ZW0gPT4gaXRlbS5kZWZhdWx0RmlsdGVyVmFsdWUgPT09IGV2ZW50LnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29udGV4dEZpbHRlckRhdGEuZW1pdChmb3VuZE9iamVjdCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXNlckRhdGEgPSB0aGlzLnN0b3JhZ2UuZ2V0KCd1c2VyX25hbWUnKTtcbiAgICAgICAgaWYgKHVzZXJEYXRhID09ICdhZG1pbicpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFZGl0QnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICBwYWdlQXV0b2xvYWRTdG9wUnVuKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvbG9hZF9idXR0b24gPT0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5hdXRvbG9hZF9idXR0b24gPSBmYWxzZTtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lX291dF9pZCk7XG4gICAgICAgICAgICB0aGlzLnRpbWVfb3V0X2lkID0gMDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF1dG9sb2FkX2J1dHRvbiA9PSBmYWxzZSkge1xuICAgICAgICAgICAgdGhpcy5hdXRvbG9hZF9idXR0b24gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50aW1lX291dF9pZCA9IDE7XG4gICAgICAgICAgICAvLyB0aGlzLmRhdGVzVXBkYXRlZCh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbGxQYWdlRG9jdW1lbnRhdGlvbigpIHtcblxuICAgIH1cblxuXG4gICAgZ2V0RGF0ZU9yU2VydmVUeXBlVmFsdWVDaGFuZ2Uobm9kZTogYW55KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2VPclNlcnZ0eXBlLmVtaXQobm9kZSlcbiAgICB9XG5cblxuICAgIGVkaXRLcGkoKSB7XG4gICAgICAgIGNvbnN0IHBhZ2VJZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3BhZ2VJZCddO1xuICAgICAgICBsZXQgbmF2aWdhdGlvbkV4dHJhczogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgcGFnZUlkOiBwYWdlSWQsXG4gICAgICAgICAgICAgICAgY29udGVudFR5cGU6IFwiZWRpdFwiXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL2FwcHMvY29udHJvbFBhbmVsL3BhZ2VDb25maWdDb250cm9sbGVyJ10sIG5hdmlnYXRpb25FeHRyYXMpO1xuICAgIH1cblxuXG4gICAgYWR2YW5jZUZpbHRlcktwaSgpIHtcbiAgICAgICAgLy8gdGhpcy51cGRhdGVTZWxlY3RlZERhdGVzKHdpZGdldElkLCBkaXNwbGF5U3RhcnREYXRlLCBkaXNwbGF5RW5kRGF0ZSk7XG4gICAgICAgIHRoaXMuaXNBZHZhbmNlRmlsdGVyID0gdHJ1ZTtcbiAgICB9XG5cblxuXG5cblxuICAgIGdldFNlcmNoRmlsdGVyKGZpbHRlcikge1xuICAgICAgICB0aGlzLmlzQWR2YW5jZUZpbHRlciA9IGZhbHNlO1xuICAgICAgICBsZXQgZGlzcGxheVN0YXJ0RGF0ZSA9ICcnO1xuICAgICAgICBsZXQgZGlzcGxheUVuZERhdGUgPSAnJztcblxuICAgICAgICB0aGlzLmZpbHRlckl0ZW1zRm9yRmlsdGVyLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5maWx0ZXJUeXBlID09PSAnZGF0ZScgfHwgZWxlbWVudC5maWx0ZXJUeXBlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGVmYXVsdEZpbHRlclR5cGUgPT09IFwiZHluYW1pY1wiICYmIGVsZW1lbnQubW9tZW50RnVuY3Rpb24gIT09IFwiXCIgJiYgZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUgIT09IFwiXCIgJiYgZWxlbWVudC5tb21lbnRGb3JtYXQgIT09IFwiXCIpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5tb21lbnRGdW5jdGlvbiA9PSBcIm1vbnRoUGlja2VyXCIgfHwgZWxlbWVudC5tb21lbnRGdW5jdGlvbiA9PSBcIndlZWtQaWNrZXJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IG1vbWVudChmaWx0ZXIuc3RhcnREYXRlKS5mb3JtYXQoJ01NTS1ZWVlZJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSBtb21lbnQoZmlsdGVyLmVuZERhdGUpLmZvcm1hdCgnTU1NLVlZWVknKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwiZW5kRGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmVuZERhdGUgPSBtb21lbnQoZmlsdGVyLmVuZERhdGUpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RW5kRGF0ZSA9IG1vbWVudChmaWx0ZXIuZW5kRGF0ZSkuZm9ybWF0KCdNTU0tWVlZWScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFtjb3VudCwgdW5pdF0gPSBlbGVtZW50LmRlZmF1bHRGaWx0ZXJWYWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLnN0YXJ0RGF0ZSA9IG1vbWVudChmaWx0ZXIuc3RhcnREYXRlKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhcnREYXRlID0gZmlsdGVyLnN0YXJ0RGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuc3RhcnREYXRlID0gbW9tZW50KGZpbHRlci5lbmREYXRlKVtlbGVtZW50Lm1vbWVudEZ1bmN0aW9uXShwYXJzZUludChjb3VudCksIHVuaXQpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJlbmREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIuZW5kRGF0ZSA9IG1vbWVudChmaWx0ZXIuZW5kRGF0ZSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFbmREYXRlID0gZmlsdGVyLmVuZERhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cblxuXG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgc2VsZWN0ZWRUZXh0ID0gJyc7XG4gICAgICAgIGlmIChkaXNwbGF5U3RhcnREYXRlICYmIGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZFRleHQgPSBgJHtkaXNwbGF5U3RhcnREYXRlfSAtICR7ZGlzcGxheUVuZERhdGV9YDtcbiAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5U3RhcnREYXRlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZFRleHQgPSBkaXNwbGF5U3RhcnREYXRlO1xuICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgICAgICBzZWxlY3RlZFRleHQgPSBkaXNwbGF5RW5kRGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIChkaXNwbGF5U3RhcnREYXRlICYmIGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gYCR7ZGlzcGxheVN0YXJ0RGF0ZX0gLSAke2Rpc3BsYXlFbmREYXRlfWA7XG4gICAgICAgIC8vIH0gZWxzZSBpZiAoZGlzcGxheVN0YXJ0RGF0ZSkge1xuICAgICAgICAvLyAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGRpc3BsYXlTdGFydERhdGU7XG4gICAgICAgIC8vIH0gZWxzZSBpZiAoZGlzcGxheUVuZERhdGUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBkaXNwbGF5RW5kRGF0ZTtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSAnJztcbiAgICAgICAgLy8gfVxuICAgICAgICBcblxuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5maWx0ZXJPYmplY3RzLndpZGdldElkKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJUZXh0ID0gc2VsZWN0ZWRUZXh0O1xuICAgICAgICB9XG5cblxuICAgICAgICBmaWx0ZXJbJ2ZpbHRlck9iamVjdHMnXSA9ICh0aGlzLmZpbHRlck9iamVjdHMpID8gdGhpcy5maWx0ZXJPYmplY3RzIDogbnVsbDtcbiAgICAgICAgdGhpcy5nZXRGaWx0ZXJQYWdlQ29uZmlnLmVtaXQoZmlsdGVyKVxuICAgIH1cblxuXG5cblxuXG5cbiAgICBnZXRPcGVyYXRvckRhdGFTb3VyY2UoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRPcGVyYXRvciA9IGV2ZW50LnZhbHVlO1xuICAgICAgICBsZXQgb3BlcmF0b3JfbG9nb19tYXAgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0T3BlcmF0b3JCeWxvZ28oKTtcbiAgICAgICAgdGhpcy5vcGVyYXRvckxvZ28gPSBvcGVyYXRvcl9sb2dvX21hcFtldmVudC52YWx1ZV1cbiAgICAgICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRPcGVyYXRvciA9IGV2ZW50LnZhbHVlO1xuICAgICAgICBpZiAoZXZlbnQuZXZlbnQpIHtcbiAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IGV2ZW50LnZhbHVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtdLCBuYXZpZ2F0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IG9wTmFtZSA9IHRoaXMuc3RvcmFnZS5nZXQoJ29wZXJhdG9yX2tleScpXG4gICAgICAgICAgICBpZiAob3BOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLmRlbGV0ZSgnb3BlcmF0b3Jfa2V5Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNhdmUoJ29wZXJhdG9yX2tleScsIGV2ZW50LnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNhdmUoJ29wZXJhdG9yX2tleScsIGV2ZW50LnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ2V0T3BlcmF0b3JOYW1lLmVtaXQoZXZlbnQudmFsdWUpXG4gICAgICAgIH1cblxuXG4gICAgfVxuXG5cbiAgICBnZXREZWZhdWx0RmlsdGVyVmFsdWUocGFyYW1zOiBhbnkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyKSB7XG4gICAgICAgICAgICBpZiAocGFyYW1zW2l0ZW0ub3BlcmF0b3JOYW1lXSA9PT0gaXRlbS5kZWZhdWx0RmlsdGVyVmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5kZWZhdWx0RmlsdGVyVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0T3BlcmF0aW9uRmlsdGVyKHBhcmFtczogYW55KTogYW55IHtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uRmlsdGVyOiBhbnkgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5jb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwYXJhbWV0ZXIgbWF0Y2hlcyB0aGUgb3BlcmF0b3JOYW1lIGFuZCBpdHMgdmFsdWVcbiAgICAgICAgICAgIGlmIChwYXJhbXNbaXRlbS5vcGVyYXRvck5hbWVdID09PSBpdGVtLmRlZmF1bHRGaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZpbHRlcltpdGVtLm9wZXJhdG9yTmFtZV0gPSBpdGVtLmRlZmF1bHRGaWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcGVyYXRpb25GaWx0ZXI7XG4gICAgfVxuXG5cbiAgICBnZXRQYWdlVGl0bGUocGFnZVRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgeyBwYWdlSWQsIC4uLnBhcmFtcyB9ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcblxuICAgICAgICByZXR1cm4gcGFnZVRpdGxlLnJlcGxhY2UoL1xcJFBcXHsoLio/KVxcfS9nLCAobWF0Y2gsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtc1trZXldICE9PSB1bmRlZmluZWQgPyBwYXJhbXNba2V5XSA6IG1hdGNoO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtYi0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGJvcmRlci1iIGRhcms6YmctdHJhbnNwYXJlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGZsb2F0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtMlwiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfc29saWQ6dGVtcGxhdGUnXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aDJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LTJ4bCBtZDp0ZXh0LTJ4bCBweS0zIGZvbnQtZXh0cmFib2xkIGl0ZW1zLWNlbnRlciBtbC0yIHRyYWNraW5nLXRpZ2h0IGxlYWRpbmctNSB0cnVuY2F0ZSBjYXBpdGFsaXplXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFBhZ2VUaXRsZShwYWdlVGl0bGUpIH19XG4gICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgIDwhLS0gSU5DT01JTkcgLS0+XG4gICAgICAgICAgICAgICAgPGdhbW1hLWJyZWFkLWNydW1icyBba3BpX2RhdGFfY29udGFpbmVyXT1cImJyZWFkX2NydW1ic19jb250YWluZXJcIj48L2dhbW1hLWJyZWFkLWNydW1icz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBib3JkZXItbC0yIHAtMCBtLTBcIj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdJZj1cImlzRWRpdEJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImVkaXRLcGkoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctYmx1ZS03MDAgY3Vyc29yLXBvaW50ZXIgZGFyazpiZy1ibHVlLTYwMCBkYXJrOmZvY3VzOnJpbmctYmx1ZS04MDAgZGFyazpob3ZlcjpiZy1ibHVlLTcwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctYmx1ZS0zMDAgZm9udC1tZWRpdW0gaG92ZXI6YmctYmx1ZS04MDAgbXItMiBweC0yLjUgcHktMiByb3VuZGVkIHRleHQtc20gdGV4dC13aGl0ZSBuZy1zdGFyLWluc2VydGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIEVkaXRcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlciAmJiBjb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIubGVuZ3RoICE9PSAwIFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEgaC1mdWxsIGJvcmRlci1sLTJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImdldENvbnRleHRNZW51Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJsYWJlbFwiIHZhbHVlRXhwcj1cImRlZmF1bHRGaWx0ZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRlZmF1bHRGaWx0ZXJWYWx1ZVwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xIGgtZnVsbCBib3JkZXItbC0yXCIgKm5nSWY9XCJpc0VkaXRCdXR0b25cIj48L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZHZhbmNlRmlsdGVyS3BpKClcIiBpZD1cInt7ZmlsdGVyT2JqZWN0cy53aWRnZXRJZH19XCI+IHt7c2VsZWN0ZWREZXRlc2ZvclZpZXd9fTwvZGl2PiAtLT5cbjwhLS0gW2lkXT1cImZpbHRlck9iamVjdHMud2lkZ2V0SWRcIiAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWR2YW5jZUZpbHRlcktwaSgpXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkRGV0ZXNmb3JWaWV3fX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMSBoLWZ1bGwgYm9yZGVyLWwtMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdJZj1cImlzQWR2YW5jZUJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYXQtZm9jdXMtaW5kaWNhdG9yIG1hdC1tZW51LXRyaWdnZXIgbWF0LWljb24tYnV0dG9uIG1hdC1idXR0b24tYmFzZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtZW51XCIgKGNsaWNrKT1cImFkdmFuY2VGaWx0ZXJLcGkoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1idXR0b24td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiB0aXRsZT1cIkZpbHRlcnNcIiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX291dGxpbmU6YWRqdXN0bWVudHMnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMSBoLWZ1bGwgYm9yZGVyLWwtMlwiPjwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYXQtZm9jdXMtaW5kaWNhdG9yIG1hdC1tZW51LXRyaWdnZXIgbWF0LWljb24tYnV0dG9uIG1hdC1idXR0b24tYmFzZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWJ1dHRvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJjYWxsUGFnZURvY3VtZW50YXRpb24oKVwiIHRpdGxlPVwiQWRkIEZpbHRlcnNcIiBbc3ZnSWNvbl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZXJvaWNvbnNfb3V0bGluZTpxdWVzdGlvbi1tYXJrLWNpcmNsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZHgtcG9wdXAgWyh2aXNpYmxlKV09XCJpc0FkdmFuY2VGaWx0ZXJcIiBbY2xvc2VPbk91dHNpZGVDbGlja109XCJmYWxzZVwiIFtkcmFnRW5hYmxlZF09XCJmYWxzZVwiIFt3aWR0aF09XCI2MDBcIlxuICAgIFtoZWlnaHRdPVwiJ2F1dG8nXCIgW3Nob3dUaXRsZV09XCJ0cnVlXCIgY2xhc3M9XCJwb3B1cFwiIHRpdGxlPVwiRmlsdGVyXCI+XG4gICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjb250ZW50J1wiPlxuICAgICAgICA8YXBwLWdhbW1hLWFkdmFuY2UtZmlsdGVyIFtrcGlJZF09XCInMjMxMjEyJ1wiIFtmaWx0ZXJPcGVyYXRvckRhdGFdPVwiZmlsdGVySXRlbXNGb3JGaWx0ZXJcIlxuICAgICAgICAgICAgW2lzQnV0dG9uRGVzaWFibGVdPVwiaXNBZHZhbmNlRmlsdGVyXCIgW2ZpbHRlclN0YXJ0RGF0ZV09XCJmaWx0ZXJTdGFydERhdGVcIiBbZmlsdGVyRW5kRGF0ZV09XCJmaWx0ZXJFbmREYXRlXCJcbiAgICAgICAgICAgIChmaWx0ZXJEYXRhT2JqZWN0KT1cImdldFNlcmNoRmlsdGVyKCRldmVudClcIj48L2FwcC1nYW1tYS1hZHZhbmNlLWZpbHRlcj5cbiAgICA8L2Rpdj5cbjwvZHgtcG9wdXA+Il19
329
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYXBwLWFkdmFuY2UtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2FwcC1hZHZhbmNlLWhlYWRlci9hcHAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sTUFBTSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBT25FLE1BQU0sT0FBTyx5QkFBeUI7SUE0RGxDLFlBQ1ksY0FBOEIsRUFDOUIsS0FBYSxFQUNiLGFBQTRCLEVBQzVCLE9BQXdCO1FBSHhCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUF6RDFCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFTekUsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxlQUFlLENBQUM7UUFDOUIsNEJBQXVCLEdBQUcsT0FBTyxDQUFDO1FBTWxDLGlCQUFZLEdBQUc7WUFDWCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUNqQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUNs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UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztzSEE5WFEseUJBQXlCOzBHQUF6Qix5QkFBeUIsZ2xCQ1R0QywrOUlBdUZXOzJGRDlFRSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0ksb0JBQW9CO29MQUlyQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQWlEVSwyQkFBMkI7c0JBQTNDLE1BQU07Z0JBQ1UsbUJBQW1CO3NCQUFuQyxNQUFNO2dCQUNVLGVBQWU7c0JBQS9CLE1BQU07Z0JBQ1Usb0JBQW9CO3NCQUFwQyxNQUFNO2dCQVdFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUYsV0FBVztzQkFEZCxLQUFLO3VCQUFDLGFBQWE7Z0JBcUVoQixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJy4uLy4uLy4uL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvbW9tZW50LWhlbHBlcic7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci9jb21tb24nO1xuaW1wb3J0IHsgQXBwTG9jYWxTdG9yYWdlIH0gZnJvbSAnLi4vLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci90b2tlblN0b3JhZ2Uuc2VydmNlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2UtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBwLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEFkdmFuY2VIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHBhZ2VUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGJyZWFkX2NydW1ic19jb250YWluZXI6IGFueTtcbiAgICBASW5wdXQoKSBpc0VkaXRCdXR0b246IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNBZHZhbmNlQnV0dG9uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZXM6IGFueTtcblxuICAgIEBPdXRwdXQoKSB0b2dnbGVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBpc0FkdmFuY2VGaWx0ZXI6IGJvb2xlYW47XG4gICAgYnJvd3Nlcl9jb25maWc6IGFueTtcbiAgICBrcGlfaWQ6IGFueTtcblxuICAgIGZpbHRlclN0YXJ0RGF0ZTtcbiAgICBmaWx0ZXJFbmREYXRlO1xuICAgIGZpbHRlck9wdGlvbnM7XG5cbiAgICBhdXRvbG9hZF9idXR0b24gPSB0cnVlO1xuICAgIHByaXZhdGUgdGltZV9vdXRfaWQ7XG4gICAgdG9vbFRpcFRleHQgPSAnQnkgRGF0ZSBSYW5nZSc7XG4gICAgZGVmYXVsdFNlbGVjdGVkT3BlcmF0b3IgPSAnQUZHQVQnO1xuXG4gICAgaXNvcGVyYXRvcktleTogYm9vbGVhbjtcblxuICAgIGRlZmF1bHRGaWx0ZXJWYWx1ZTogYW55O1xuXG4gICAgb3BlcmFUb3JMaXN0ID0gW1xuICAgICAgICB7IG5hbWU6IFwiQUZURUxcIiwgdmFsdWU6IFwiQUZHQVRcIiB9LFxuICAgICAgICB7IG5hbWU6IFwiUk9TSEFOXCIsIHZhbHVlOiBcIkFGR1REXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIk1UTkFGXCIsIHZhbHVlOiBcIkFGR0FSXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIkVUSVNBTEFUXCIsIHZhbHVlOiBcIkFGR0VBXCIgfSxcbiAgICAgICAgeyBuYW1lOiBcIkFXQ0NcIiwgdmFsdWU6IFwiQUZHQVdcIiB9LFxuICAgIF1cblxuICAgIHB1YmxpYyBkYXRlcmFuZ2U6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBkYXRlcmFuZ2Vfb3B0aW9uczogYW55ID0ge1xuICAgICAgICBsb2NhbGU6IHsgZm9ybWF0OiAnWVlZWS1NTS1ERCcgfSxcbiAgICAgICAgYWx3YXlzU2hvd0NhbGVuZGFyczogdHJ1ZSxcbiAgICAgICAgc2hvd0N1c3RvbVJhbmdlTGFiZWw6IHRydWUsXG4gICAgICAgIHJhbmdlczoge1xuICAgICAgICAgICAgVG9kYXk6IFttb21lbnQoKSwgbW9tZW50KCldLFxuICAgICAgICAgICAgLy8gWWVzdGVyZGF5OiBbbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheXMnKSwgbW9tZW50KCkuc3VidHJhY3QoMSwgJ2RheXMnKV0sXG4gICAgICAgICAgICAnTGFzdCAxIE1vbnRoJzogW21vbWVudCgpLnN1YnRyYWN0KDMwLCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCAzIE1vbnRoJzogW21vbWVudCgpLnN1YnRyYWN0KDkxLCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCA2IE1vbnRoJzogW21vbWVudCgpLnN1YnRyYWN0KDE4MiwgJ2RheXMnKSwgbW9tZW50KCldLFxuICAgICAgICAgICAgJ0xhc3QgMTIgTW9udGgnOiBbbW9tZW50KCkuc3VidHJhY3QoMzY1LCAnZGF5cycpLCBtb21lbnQoKV0sXG4gICAgICAgICAgICAnTGFzdCAxMyBNb250aHMnOiBbXG4gICAgICAgICAgICAgICAgbW9tZW50KCkuc3VidHJhY3QoMTIsICdtb250aCcpLnN0YXJ0T2YoJ21vbnRoJyksXG4gICAgICAgICAgICAgICAgbW9tZW50KCksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgJ1RoaXMgTW9udGgnOiBbbW9tZW50KCkuc3RhcnRPZignbW9udGgnKSwgbW9tZW50KCkuZW5kT2YoJ21vbnRoJyldLFxuICAgICAgICB9LFxuICAgIH07XG5cbiAgICBzcnZUeXBlRGF0YVNvdXJjZTogYW55ID0gW107XG4gICAgc3J2VHlwZURpc3BsYXlWYWx1ZTogYW55ID0gW107XG4gICAgc2VsZWN0ZWREZXRlc2ZvclZpZXc6IHN0cmluZyA9ICcnO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgc2VsZWN0ZWREYXRlUmFuZ2VPclNlcnZ0eXBlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGdldEZpbHRlclBhZ2VDb25maWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgZ2V0T3BlcmF0b3JOYW1lOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgcHVibGljIGdldENvbnRleHRGaWx0ZXJEYXRhOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHN0b3JhZ2U6IEFwcExvY2FsU3RvcmFnZVxuICAgICkge1xuXG4gICAgfVxuXG4gICAgc2VsZWN0ZWREYXRlc01hcDogeyBbd2lkZ2V0SWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgQElucHV0KCkgZmlsdGVyT2JqZWN0czogYW55O1xuXG5cbiAgICBmaWx0ZXJJdGVtc0ZvckZpbHRlcjogYW55O1xuICAgIG9wZXJhdG9yTG9nbzogc3RyaW5nO1xuICAgIEBJbnB1dCgnZmlsdGVySXRlbXMnKVxuICAgIHNldCBmaWx0ZXJJdGVtcyh2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgbGV0IGRpc3BsYXlTdGFydERhdGUgPSAnJztcbiAgICAgICAgICAgIGxldCBkaXNwbGF5RW5kRGF0ZSA9ICcnO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJJdGVtc0ZvckZpbHRlciA9IHZhbHVlO1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChlbGVtZW50ID0+IHtcblxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRlZmF1bHRGaWx0ZXJUeXBlID09PSBcImR5bmFtaWNcIiAmJiBlbGVtZW50Lm1vbWVudEZ1bmN0aW9uICE9PSBcIlwiICYmIGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlICE9PSBcIlwiICYmIGVsZW1lbnQubW9tZW50Rm9ybWF0ICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGxldCBbY291bnQsIHVuaXRdID0gZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gbGV0IGZvcm1hdHRlZERhdGUgPSBtb21lbnQoKVtlbGVtZW50Lm1vbWVudEZ1bmN0aW9uXShwYXJzZUludChjb3VudCksIHVuaXQpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50Lm1vbWVudEZ1bmN0aW9uID09IFwibW9udGhQaWNrZXJcIiB8fCBlbGVtZW50Lm1vbWVudEZ1bmN0aW9uID09IFwid2Vla1BpY2tlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcInN0YXJ0RGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5U3RhcnREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoJ01NTS1ZWVlZJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJlbmREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFbmREYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlc1tlbGVtZW50LmFwaU5hbWVdKS5mb3JtYXQoJ01NTS1ZWVlZJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50LmRlZmF1bHRGaWx0ZXJUeXBlID09PSBcInN0YXRpY1wiICYmIGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlICE9PSBcIlwiKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJzdGFydERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGFydERhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZERhdGVzW2VsZW1lbnQuYXBpTmFtZV0pLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuYXBpTmFtZSA9PT0gXCJlbmREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RW5kRGF0ZSA9IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZXNbZWxlbWVudC5hcGlOYW1lXSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoZGlzcGxheVN0YXJ0RGF0ZSAmJiBkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBgJHtkaXNwbGF5U3RhcnREYXRlfSAtICR7ZGlzcGxheUVuZERhdGV9YDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheVN0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBkaXNwbGF5U3RhcnREYXRlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBkaXNwbGF5RW5kRGF0ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyOiBhbnk7XG4gICAgQElucHV0KCdjb250ZXh0RmlsdGVySXRlbXMnKVxuICAgIHNldCBjb250ZXh0RmlsdGVySXRlbXModmFsdWUpIHtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlciA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIgPSBbXTtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZmlsdGVyVHlwZSA9PSBcImNvbnRleHRcIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlci5wdXNoKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdEZpbHRlclZhbHVlKHBhcmFtcyk7XG4gICAgICAgICAgICB9KTtcblxuXG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2ZpbHRlck9iamVjdHMnXSAmJiB0aGlzLmZpbHRlck9iamVjdHM/LndpZGdldElkKSB7XG4gICAgICAgICAgICBjb25zdCB3aWRnZXRJZCA9IHRoaXMuZmlsdGVyT2JqZWN0cy53aWRnZXRJZDtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlc01hcFt3aWRnZXRJZF0gPSB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3OyAvLyBkZWZhdWx0XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG5cbiAgICBnZXRDb250ZXh0TWVudUNoYW5nZShldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuZXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kT2JqZWN0ID0gdGhpcy5jb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIuZmluZChpdGVtID0+IGl0ZW0uZGVmYXVsdEZpbHRlclZhbHVlID09PSBldmVudC52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmdldENvbnRleHRGaWx0ZXJEYXRhLmVtaXQoZm91bmRPYmplY3QpO1xuICAgICAgICB9XG5cbiAgICB9XG5cblxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHVzZXJEYXRhID0gdGhpcy5zdG9yYWdlLmdldCgndXNlcl9uYW1lJyk7XG4gICAgICAgIGlmICh1c2VyRGF0YSA9PSAnYWRtaW4nKSB7XG4gICAgICAgICAgICB0aGlzLmlzRWRpdEJ1dHRvbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgcGFnZUF1dG9sb2FkU3RvcFJ1bigpIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2xvYWRfYnV0dG9uID09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b2xvYWRfYnV0dG9uID0gZmFsc2U7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZV9vdXRfaWQpO1xuICAgICAgICAgICAgdGhpcy50aW1lX291dF9pZCA9IDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hdXRvbG9hZF9idXR0b24gPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b2xvYWRfYnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudGltZV9vdXRfaWQgPSAxO1xuICAgICAgICAgICAgLy8gdGhpcy5kYXRlc1VwZGF0ZWQodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjYWxsUGFnZURvY3VtZW50YXRpb24oKSB7XG5cbiAgICB9XG5cblxuICAgIGdldERhdGVPclNlcnZlVHlwZVZhbHVlQ2hhbmdlKG5vZGU6IGFueSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlT3JTZXJ2dHlwZS5lbWl0KG5vZGUpXG4gICAgfVxuXG5cbiAgICBlZGl0S3BpKCkge1xuICAgICAgICBjb25zdCBwYWdlSWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydwYWdlSWQnXTtcbiAgICAgICAgbGV0IG5hdmlnYXRpb25FeHRyYXM6IE5hdmlnYXRpb25FeHRyYXMgPSB7XG4gICAgICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICAgICAgIHBhZ2VJZDogcGFnZUlkLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBcImVkaXRcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9wYWdlQ29uZmlnQ29udHJvbGxlciddLCBuYXZpZ2F0aW9uRXh0cmFzKTtcbiAgICB9XG5cblxuICAgIGFkdmFuY2VGaWx0ZXJLcGkoKSB7XG4gICAgICAgIC8vIHRoaXMudXBkYXRlU2VsZWN0ZWREYXRlcyh3aWRnZXRJZCwgZGlzcGxheVN0YXJ0RGF0ZSwgZGlzcGxheUVuZERhdGUpO1xuICAgICAgICB0aGlzLmlzQWR2YW5jZUZpbHRlciA9IHRydWU7XG4gICAgfVxuXG5cblxuXG5cbiAgICBnZXRTZXJjaEZpbHRlcihmaWx0ZXIpIHtcbiAgICAgICAgdGhpcy5pc0FkdmFuY2VGaWx0ZXIgPSBmYWxzZTtcbiAgICAgICAgbGV0IGRpc3BsYXlTdGFydERhdGUgPSAnJztcbiAgICAgICAgbGV0IGRpc3BsYXlFbmREYXRlID0gJyc7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJJdGVtc0ZvckZpbHRlci5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQuZmlsdGVyVHlwZSA9PT0gJ2RhdGUnIHx8IGVsZW1lbnQuZmlsdGVyVHlwZSA9PT0gJ2RhdGV0aW1lJykge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRlZmF1bHRGaWx0ZXJUeXBlID09PSBcImR5bmFtaWNcIiAmJiBlbGVtZW50Lm1vbWVudEZ1bmN0aW9uICE9PSBcIlwiICYmIGVsZW1lbnQuZGVmYXVsdEZpbHRlclZhbHVlICE9PSBcIlwiICYmIGVsZW1lbnQubW9tZW50Rm9ybWF0ICE9PSBcIlwiKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQubW9tZW50RnVuY3Rpb24gPT0gXCJtb250aFBpY2tlclwiIHx8IGVsZW1lbnQubW9tZW50RnVuY3Rpb24gPT0gXCJ3ZWVrUGlja2VyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwic3RhcnREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlTdGFydERhdGUgPSBtb21lbnQoZmlsdGVyLnN0YXJ0RGF0ZSkuZm9ybWF0KCdNTU0tWVlZWScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlFbmREYXRlID0gbW9tZW50KGZpbHRlci5lbmREYXRlKS5mb3JtYXQoJ01NTS1ZWVlZJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5hcGlOYW1lID09PSBcImVuZERhdGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5lbmREYXRlID0gbW9tZW50KGZpbHRlci5lbmREYXRlKS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUVuZERhdGUgPSBtb21lbnQoZmlsdGVyLmVuZERhdGUpLmZvcm1hdCgnTU1NLVlZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBbY291bnQsIHVuaXRdID0gZWxlbWVudC5kZWZhdWx0RmlsdGVyVmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwic3RhcnREYXRlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5kaXNwbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlci5zdGFydERhdGUgPSBtb21lbnQoZmlsdGVyLnN0YXJ0RGF0ZSkuZm9ybWF0KGVsZW1lbnQubW9tZW50Rm9ybWF0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheVN0YXJ0RGF0ZSA9IGZpbHRlci5zdGFydERhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLnN0YXJ0RGF0ZSA9IG1vbWVudChmaWx0ZXIuZW5kRGF0ZSlbZWxlbWVudC5tb21lbnRGdW5jdGlvbl0ocGFyc2VJbnQoY291bnQpLCB1bml0KS5mb3JtYXQoZWxlbWVudC5tb21lbnRGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmFwaU5hbWUgPT09IFwiZW5kRGF0ZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmVuZERhdGUgPSBtb21lbnQoZmlsdGVyLmVuZERhdGUpLmZvcm1hdChlbGVtZW50Lm1vbWVudEZvcm1hdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZGlzcGxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RW5kRGF0ZSA9IGZpbHRlci5lbmREYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cblxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHNlbGVjdGVkVGV4dCA9ICcnO1xuICAgICAgICBpZiAoZGlzcGxheVN0YXJ0RGF0ZSAmJiBkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRUZXh0ID0gYCR7ZGlzcGxheVN0YXJ0RGF0ZX0gLSAke2Rpc3BsYXlFbmREYXRlfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheVN0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRUZXh0ID0gZGlzcGxheVN0YXJ0RGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRUZXh0ID0gZGlzcGxheUVuZERhdGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiAoZGlzcGxheVN0YXJ0RGF0ZSAmJiBkaXNwbGF5RW5kRGF0ZSkge1xuICAgICAgICAvLyAgICAgdGhpcy5zZWxlY3RlZERldGVzZm9yVmlldyA9IGAke2Rpc3BsYXlTdGFydERhdGV9IC0gJHtkaXNwbGF5RW5kRGF0ZX1gO1xuICAgICAgICAvLyB9IGVsc2UgaWYgKGRpc3BsYXlTdGFydERhdGUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuc2VsZWN0ZWREZXRlc2ZvclZpZXcgPSBkaXNwbGF5U3RhcnREYXRlO1xuICAgICAgICAvLyB9IGVsc2UgaWYgKGRpc3BsYXlFbmREYXRlKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gZGlzcGxheUVuZERhdGU7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLnNlbGVjdGVkRGV0ZXNmb3JWaWV3ID0gJyc7XG4gICAgICAgIC8vIH1cblxuXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmZpbHRlck9iamVjdHM/LndpZGdldElkXG4gICAgICAgICAgICA/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZmlsdGVyT2JqZWN0cy53aWRnZXRJZClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaW5uZXJUZXh0ID0gc2VsZWN0ZWRUZXh0O1xuICAgICAgICB9XG5cblxuICAgICAgICBmaWx0ZXJbJ2ZpbHRlck9iamVjdHMnXSA9ICh0aGlzLmZpbHRlck9iamVjdHMpID8gdGhpcy5maWx0ZXJPYmplY3RzIDogbnVsbDtcbiAgICAgICAgdGhpcy5nZXRGaWx0ZXJQYWdlQ29uZmlnLmVtaXQoZmlsdGVyKVxuICAgIH1cblxuXG5cblxuXG5cbiAgICBnZXRPcGVyYXRvckRhdGFTb3VyY2UoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRPcGVyYXRvciA9IGV2ZW50LnZhbHVlO1xuICAgICAgICBsZXQgb3BlcmF0b3JfbG9nb19tYXAgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0T3BlcmF0b3JCeWxvZ28oKTtcbiAgICAgICAgdGhpcy5vcGVyYXRvckxvZ28gPSBvcGVyYXRvcl9sb2dvX21hcFtldmVudC52YWx1ZV1cbiAgICAgICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWRPcGVyYXRvciA9IGV2ZW50LnZhbHVlO1xuICAgICAgICBpZiAoZXZlbnQuZXZlbnQpIHtcbiAgICAgICAgICAgIGxldCBuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIFwib3BlcmF0b3JOYW1lXCI6IGV2ZW50LnZhbHVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFtdLCBuYXZpZ2F0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IG9wTmFtZSA9IHRoaXMuc3RvcmFnZS5nZXQoJ29wZXJhdG9yX2tleScpXG4gICAgICAgICAgICBpZiAob3BOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLmRlbGV0ZSgnb3BlcmF0b3Jfa2V5Jyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNhdmUoJ29wZXJhdG9yX2tleScsIGV2ZW50LnZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yYWdlLnNhdmUoJ29wZXJhdG9yX2tleScsIGV2ZW50LnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ2V0T3BlcmF0b3JOYW1lLmVtaXQoZXZlbnQudmFsdWUpXG4gICAgICAgIH1cblxuXG4gICAgfVxuXG5cbiAgICBnZXREZWZhdWx0RmlsdGVyVmFsdWUocGFyYW1zOiBhbnkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyKSB7XG4gICAgICAgICAgICBpZiAocGFyYW1zW2l0ZW0ub3BlcmF0b3JOYW1lXSA9PT0gaXRlbS5kZWZhdWx0RmlsdGVyVmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5kZWZhdWx0RmlsdGVyVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0T3BlcmF0aW9uRmlsdGVyKHBhcmFtczogYW55KTogYW55IHtcbiAgICAgICAgY29uc3Qgb3BlcmF0aW9uRmlsdGVyOiBhbnkgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5jb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwYXJhbWV0ZXIgbWF0Y2hlcyB0aGUgb3BlcmF0b3JOYW1lIGFuZCBpdHMgdmFsdWVcbiAgICAgICAgICAgIGlmIChwYXJhbXNbaXRlbS5vcGVyYXRvck5hbWVdID09PSBpdGVtLmRlZmF1bHRGaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgICAgIG9wZXJhdGlvbkZpbHRlcltpdGVtLm9wZXJhdG9yTmFtZV0gPSBpdGVtLmRlZmF1bHRGaWx0ZXJWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcGVyYXRpb25GaWx0ZXI7XG4gICAgfVxuXG5cbiAgICBnZXRQYWdlVGl0bGUocGFnZVRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgeyBwYWdlSWQsIC4uLnBhcmFtcyB9ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcblxuICAgICAgICByZXR1cm4gcGFnZVRpdGxlLnJlcGxhY2UoL1xcJFBcXHsoLio/KVxcfS9nLCAobWF0Y2gsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtc1trZXldICE9PSB1bmRlZmluZWQgPyBwYXJhbXNba2V5XSA6IG1hdGNoO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtYi0yXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGJvcmRlci1iIGRhcms6YmctdHJhbnNwYXJlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbWwtMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGZsb2F0LXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLXNpemUtMlwiIFtzdmdJY29uXT1cIidoZXJvaWNvbnNfc29saWQ6dGVtcGxhdGUnXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aDJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LTJ4bCBtZDp0ZXh0LTJ4bCBweS0zIGZvbnQtZXh0cmFib2xkIGl0ZW1zLWNlbnRlciBtbC0yIHRyYWNraW5nLXRpZ2h0IGxlYWRpbmctNSB0cnVuY2F0ZSBjYXBpdGFsaXplXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFBhZ2VUaXRsZShwYWdlVGl0bGUpIH19XG4gICAgICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICAgICAgICAgIDwhLS0gSU5DT01JTkcgLS0+XG4gICAgICAgICAgICAgICAgPGdhbW1hLWJyZWFkLWNydW1icyBba3BpX2RhdGFfY29udGFpbmVyXT1cImJyZWFkX2NydW1ic19jb250YWluZXJcIj48L2dhbW1hLWJyZWFkLWNydW1icz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBib3JkZXItbC0yIHAtMCBtLTBcIj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdJZj1cImlzRWRpdEJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImVkaXRLcGkoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctYmx1ZS03MDAgY3Vyc29yLXBvaW50ZXIgZGFyazpiZy1ibHVlLTYwMCBkYXJrOmZvY3VzOnJpbmctYmx1ZS04MDAgZGFyazpob3ZlcjpiZy1ibHVlLTcwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy00IGZvY3VzOnJpbmctYmx1ZS0zMDAgZm9udC1tZWRpdW0gaG92ZXI6YmctYmx1ZS04MDAgbXItMiBweC0yLjUgcHktMiByb3VuZGVkIHRleHQtc20gdGV4dC13aGl0ZSBuZy1zdGFyLWluc2VydGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIEVkaXRcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHRGaWx0ZXJJdGVtc0ZvckZpbHRlciAmJiBjb250ZXh0RmlsdGVySXRlbXNGb3JGaWx0ZXIubGVuZ3RoICE9PSAwIFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEgaC1mdWxsIGJvcmRlci1sLTJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZHgtc2VsZWN0LWJveCBbaXRlbXNdPVwiY29udGV4dEZpbHRlckl0ZW1zRm9yRmlsdGVyXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImdldENvbnRleHRNZW51Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUV4cHI9XCJsYWJlbFwiIHZhbHVlRXhwcj1cImRlZmF1bHRGaWx0ZXJWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRlZmF1bHRGaWx0ZXJWYWx1ZVwiPjwvZHgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xIGgtZnVsbCBib3JkZXItbC0yXCIgKm5nSWY9XCJpc0VkaXRCdXR0b25cIj48L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIj5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhZHZhbmNlRmlsdGVyS3BpKClcIiBpZD1cInt7ZmlsdGVyT2JqZWN0cy53aWRnZXRJZH19XCI+IHt7c2VsZWN0ZWREZXRlc2ZvclZpZXd9fTwvZGl2PiAtLT5cbjwhLS0gW2lkXT1cImZpbHRlck9iamVjdHMud2lkZ2V0SWRcIiAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYWR2YW5jZUZpbHRlcktwaSgpXCIgPlxuICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkRGV0ZXNmb3JWaWV3fX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMSBoLWZ1bGwgYm9yZGVyLWwtMlwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdJZj1cImlzQWR2YW5jZUJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYXQtZm9jdXMtaW5kaWNhdG9yIG1hdC1tZW51LXRyaWdnZXIgbWF0LWljb24tYnV0dG9uIG1hdC1idXR0b24tYmFzZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtZW51XCIgKGNsaWNrKT1cImFkdmFuY2VGaWx0ZXJLcGkoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1idXR0b24td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiB0aXRsZT1cIkZpbHRlcnNcIiBbc3ZnSWNvbl09XCInaGVyb2ljb25zX291dGxpbmU6YWRqdXN0bWVudHMnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMSBoLWZ1bGwgYm9yZGVyLWwtMlwiPjwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXgtMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYXQtZm9jdXMtaW5kaWNhdG9yIG1hdC1tZW51LXRyaWdnZXIgbWF0LWljb24tYnV0dG9uIG1hdC1idXR0b24tYmFzZVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWJ1dHRvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJjYWxsUGFnZURvY3VtZW50YXRpb24oKVwiIHRpdGxlPVwiQWRkIEZpbHRlcnNcIiBbc3ZnSWNvbl09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZXJvaWNvbnNfb3V0bGluZTpxdWVzdGlvbi1tYXJrLWNpcmNsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZHgtcG9wdXAgWyh2aXNpYmxlKV09XCJpc0FkdmFuY2VGaWx0ZXJcIiBbY2xvc2VPbk91dHNpZGVDbGlja109XCJmYWxzZVwiIFtkcmFnRW5hYmxlZF09XCJmYWxzZVwiIFt3aWR0aF09XCI2MDBcIlxuICAgIFtoZWlnaHRdPVwiJ2F1dG8nXCIgW3Nob3dUaXRsZV09XCJ0cnVlXCIgY2xhc3M9XCJwb3B1cFwiIHRpdGxlPVwiRmlsdGVyXCI+XG4gICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjb250ZW50J1wiPlxuICAgICAgICA8YXBwLWdhbW1hLWFkdmFuY2UtZmlsdGVyIFtrcGlJZF09XCInMjMxMjEyJ1wiIFtmaWx0ZXJPcGVyYXRvckRhdGFdPVwiZmlsdGVySXRlbXNGb3JGaWx0ZXJcIlxuICAgICAgICAgICAgW2lzQnV0dG9uRGVzaWFibGVdPVwiaXNBZHZhbmNlRmlsdGVyXCIgW2ZpbHRlclN0YXJ0RGF0ZV09XCJmaWx0ZXJTdGFydERhdGVcIiBbZmlsdGVyRW5kRGF0ZV09XCJmaWx0ZXJFbmREYXRlXCJcbiAgICAgICAgICAgIChmaWx0ZXJEYXRhT2JqZWN0KT1cImdldFNlcmNoRmlsdGVyKCRldmVudClcIj48L2FwcC1nYW1tYS1hZHZhbmNlLWZpbHRlcj5cbiAgICA8L2Rpdj5cbjwvZHgtcG9wdXA+Il19
@@ -22,6 +22,7 @@ export class BreadCrumbsComponent {
22
22
  return;
23
23
  }
24
24
  else {
25
+ debugger;
25
26
  let relativePath = 'rakpiBrowser';
26
27
  this.getKpiName(value, relativePath);
27
28
  setTimeout(() => {
@@ -47,12 +48,14 @@ export class BreadCrumbsComponent {
47
48
  'desc': result['desc'],
48
49
  'relativePath': result['relativePath'],
49
50
  'kpiId': result['id'],
51
+ 'pageId': result['pageId'],
50
52
  'isBookmarked': result['isBookmarked'],
51
53
  };
52
54
  }
53
55
  item['externalLink'] = relativePath + '/' + result['name'];
54
56
  item['tid'] = result['tid'];
55
57
  item['id'] = result['id'];
58
+ item['pageId'] = result['pageId'];
56
59
  item['name'] = result['name'];
57
60
  this.kpiListData.push(item);
58
61
  });
@@ -63,11 +66,13 @@ export class BreadCrumbsComponent {
63
66
  const item = {};
64
67
  item["relativePath"] = result.relativePath;
65
68
  item["name"] = result["name"];
69
+ item["pageId"] = result["pageId"];
66
70
  item["tid"] = result["tid"].trim();
67
71
  if (result["nodes"] !== undefined) {
68
72
  item["nodes"] = this.getBreadCrumbsData(result["nodes"]);
69
73
  }
70
- this.kpi_names[result["id"]] = item["tid"];
74
+ debugger;
75
+ this.kpi_names[result["pageId"]] = item["tid"];
71
76
  structures[result["tid"]] = item;
72
77
  this.kpi_structures[result["tid"]] = item;
73
78
  });
@@ -82,7 +87,7 @@ export class BreadCrumbsComponent {
82
87
  else {
83
88
  kpiContainer = this.getBreadCrumbsData(this.commonService.allKpibrowserDetailContainer);
84
89
  }
85
- const kpiId = this.activatedRoute.snapshot.queryParams['id'];
90
+ const kpiId = this.activatedRoute.snapshot.queryParams['pageId'];
86
91
  const kpiTid = this.kpi_names[kpiId];
87
92
  const props = this.kpi_structures[kpiTid];
88
93
  const propsList = props["relativePath"] + "/" + props["name"];
@@ -139,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
139
144
  type: Input,
140
145
  args: ['kpi_data_container']
141
146
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvc2hhcmVkL2dhbW1hLWJyZWFkLWNydW1icy9icmVhZC1jcnVtYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvZ2FtbWEtYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXpELE1BQU0sT0FBTyxvQkFBb0I7SUFnQy9CLFlBQ1UsUUFBa0IsRUFDbEIsTUFBYyxFQUNkLElBQWdCLEVBQ2hCLGNBQThCLEVBQzlCLGFBQTRCO1FBSjVCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBL0J0QyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsU0FBSSxHQUFHLEVBQUUsQ0FBQztJQTRCTixDQUFDO0lBdkJMLElBQ0ksa0JBQWtCLENBQUMsS0FBSztRQUMxQixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFFM0IsT0FBTztTQUNSO2FBQU07WUFFTCxJQUFJLFlBQVksR0FBRyxjQUFjLENBQUM7WUFDbEMsSUFBSSxD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LENBQUMsQ0FBQyxDQUFDO2lCQUM3RDtnQkFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztTQUN6QztJQUNILENBQUM7O2lIQTdKVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixnSENaakMseWhDQWVNOzJGREhPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxvQkFBb0I7c01Bb0IxQixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkV4dHJhcywgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvY29tbW9uXCI7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImdhbW1hLWJyZWFkLWNydW1ic1wiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2JyZWFkLWNydW1icy5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZENydW1ic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbmJyZWFkY3J1bWJMaXN0O1xuICBicmVhZGNydW1iTGlua3NMaXN0O1xuICByb3V0ZTogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xuICBrcGlMaXN0RGF0YTogYW55ID0gW107XG4gIGtwaV9zdHJ1Y3R1cmVzID0ge307XG4gIGtwaV9uYW1lcyA9IHt9O1xuICBrcGlVcmxJRDtcbiAgZGF0YSA9IFtdO1xuXG4gIGtwaUJyb3dzZXJOYW1lOiBCb29sZWFuO1xuICBpc0JyZWFkQ3J1bWJzOiBCb29sZWFuO1xuXG4gIEBJbnB1dCgna3BpX2RhdGFfY29udGFpbmVyJylcbiAgc2V0IGtwaV9kYXRhX2NvbnRhaW5lcih2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5pc0JyZWFkQ3J1bWJzID0gZmFsc2U7XG4gICAgICAvLyB0aGlzLmFkZFJvbGVDb250YWluZXIgPSBbeyBcInR5cGVcIjogXCJ0ZXh0XCIsIFwidmFsdWVcIjogJycsIFwicm9sZWlkXCI6IFwicm93SWQwXCIgfV07XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoaXMua3BpTGlzdERhdGEgPSB2YWx1ZTtcbiAgICAgIGxldCByZWxhdGl2ZVBhdGggPSAncmFrcGlCcm93c2VyJztcbiAgICAgIHRoaXMuZ2V0S3BpTmFtZSh2YWx1ZSwgcmVsYXRpdmVQYXRoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRCcmVhZENydW1icygpO1xuICAgICAgfSwgNTAwKTtcbiAgICAgIHRoaXMuaXNCcmVhZENydW1icyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG5cbiAgfVxuXG4gIGdldEtwaU5hbWUoZGF0YSwgcmVsYXRpdmVQYXRoKSB7XG5cbiAgICBkYXRhLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB7fTtcbiAgICAgIGxldCBvYmo7XG4gICAgICBpdGVtWydyZWxhdGl2ZVBhdGgnXSA9IHJlbGF0aXZlUGF0aDtcblxuICAgICAgaWYgKHJlc3VsdFsnbm9kZXMnXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxldCBjaGlsZFJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlUGF0aCArICcvJyArIHJlc3VsdFsnbmFtZSddO1xuICAgICAgICB0aGlzLmdldEtwaU5hbWUocmVzdWx0Wydub2RlcyddLCBjaGlsZFJlbGF0aXZlUGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0WydpZCddKSB7XG4gICAgICAgIG9iaiA9IHtcbiAgICAgICAgICAnbmFtZSc6IHJlc3VsdFsnbmFtZSddLFxuICAgICAgICAgICdkZXNjJzogcmVzdWx0WydkZXNjJ10sXG4gICAgICAgICAgJ3JlbGF0aXZlUGF0aCc6IHJlc3VsdFsncmVsYXRpdmVQYXRoJ10sXG4gICAgICAgICAgJ2twaUlkJzogcmVzdWx0WydpZCddLFxuICAgICAgICAgICdpc0Jvb2ttYXJrZWQnOiByZXN1bHRbJ2lzQm9va21hcmtlZCddLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaXRlbVsnZXh0ZXJuYWxMaW5rJ10gPSByZWxhdGl2ZVBhdGggKyAnLycgKyByZXN1bHRbJ25hbWUnXVxuICAgICAgaXRlbVsndGlkJ10gPSByZXN1bHRbJ3RpZCddO1xuICAgICAgaXRlbVsnaWQnXSA9IHJlc3VsdFsnaWQnXTtcbiAgICAgIGl0ZW1bJ25hbWUnXSA9IHJlc3VsdFsnbmFtZSddO1xuXG4gICAgICB0aGlzLmtwaUxpc3REYXRhLnB1c2goaXRlbSk7XG4gICAgfSk7XG5cbiAgfVxuXG5cbiAgZ2V0QnJlYWRDcnVtYnNEYXRhKGRhdGEpIHtcbiAgICBsZXQgc3RydWN0dXJlcyA9IHt9O1xuICAgIGRhdGEuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgICAgY29uc3QgaXRlbTogb2JqZWN0ID0ge307XG4gICAgICBpdGVtW1wicmVsYXRpdmVQYXRoXCJdID0gcmVzdWx0LnJlbGF0aXZlUGF0aDtcbiAgICAgIGl0ZW1bXCJuYW1lXCJdID0gcmVzdWx0W1wibmFtZVwiXTtcbiAgICAgIGl0ZW1bXCJ0aWRcIl0gPSByZXN1bHRbXCJ0aWRcIl0udHJpbSgpO1xuICAgICAgaWYgKHJlc3VsdFtcIm5vZGVzXCJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaXRlbVtcIm5vZGVzXCJdID0gdGhpcy5nZXRCcmVhZENydW1ic0RhdGEoXG4gICAgICAgICAgcmVzdWx0W1wibm9kZXNcIl1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMua3BpX25hbWVzW3Jlc3VsdFtcImlkXCJdXSA9IGl0ZW1bXCJ0aWRcIl07XG5cbiAgICAgIHN0cnVjdHVyZXNbcmVzdWx0W1widGlkXCJdXSA9IGl0ZW07XG4gICAgICB0aGlzLmtwaV9zdHJ1Y3R1cmVzW3Jlc3VsdFtcInRpZFwiXV0gPSBpdGVtO1xuICAgIH0pO1xuICAgIHJldHVybiBzdHJ1Y3R1cmVzO1xuICB9XG5cbiAgbG9hZEJyZWFkQ3J1bWJzKCkge1xuXG4gICAgbGV0IGtwaVJvb3QgPSB0aGlzLmtwaUJyb3dzZXJOYW1lID8gXCJmbXNrcGlcIiA6IFwicmFrcGlcIjtcbiAgICBsZXQga3BpQ29udGFpbmVyO1xuICAgIC8vIGNvbnN0IG5hdnVybCA9IHRoaXMucm91dGVyLnVybC5zcGxpdChcIj9cIik7XG4gICAgLy8gbGV0IHVybCA9IG5hdnVybFswXS5zcGxpdChcIi9cIik7XG4gICAgLy8gdGhpcy5rcGlVcmxJRCA9IHVybC5zbGljZSgtMSkucG9wKCk7XG5cbiAgICBpZiAodGhpcy5rcGlMaXN0RGF0YS5sZW5ndGggPiAwIHx8IHRoaXMua3BpTGlzdERhdGEgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBrcGlDb250YWluZXIgPSB0aGlzLmdldEJyZWFkQ3J1bWJzRGF0YSh0aGlzLmtwaUxpc3REYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAga3BpQ29udGFpbmVyID0gdGhpcy5nZXRCcmVhZENydW1ic0RhdGEoXG4gICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5hbGxLcGlicm93c2VyRGV0YWlsQ29udGFpbmVyLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qga3BpSWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydpZCddO1xuICAgIGNvbnN0IGtwaVRpZCA9IHRoaXMua3BpX25hbWVzW2twaUlkXTtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMua3BpX3N0cnVjdHVyZXNba3BpVGlkXTtcbiAgICBjb25zdCBwcm9wc0xpc3QgPSBwcm9wc1tcInJlbGF0aXZlUGF0aFwiXSArIFwiL1wiICsgcHJvcHNbXCJuYW1lXCJdO1xuICAgIHRoaXMuYnJlYWRjcnVtYkxpc3QgPSBwcm9wc0xpc3Quc3BsaXQoXCIvXCIpO1xuXG4gICAgaWYgKHRoaXMubG9jYXRpb24ucGF0aCgpICE9PSBcIlwiKSB7XG4gICAgICBsZXQgbGluayA9IHt9O1xuICAgICAgdGhpcy5icmVhZGNydW1iTGlua3NMaXN0ID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5icmVhZGNydW1iTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaSA9PSAwKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmtwaUJyb3dzZXJOYW1lKSB7XG4gICAgICAgICAgICBsaW5rID0ge1xuICAgICAgICAgICAgICBuYW1lOiB0aGlzLmJyZWFkY3J1bWJMaXN0W2ldLFxuICAgICAgICAgICAgICB1cmw6IFwiL2FwcHMvcmFLcGkvcmFrcGlCcm93c2VyXCIsXG4gICAgICAgICAgICAgIGtwaU5hbWU6IFwiUkEgS1BJIEJyb3dzZXJcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxpbmsgPSB7XG4gICAgICAgICAgICAgIG5hbWU6IHRoaXMuYnJlYWRjcnVtYkxpc3RbaV0sXG4gICAgICAgICAgICAgIHVybDogXCIvYXBwcy9mbXNLcGlcIixcbiAgICAgICAgICAgICAga3BpTmFtZTogXCJGTVMgS1BJIEJyb3dzZXJcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCByZXR1cm5JZCA9IFwiXCI7XG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPD0gaTsgaisrKSB7XG4gICAgICAgICAgICBpZiAoaiAhPSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybklkICs9IFwiL1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuSWQgKz0gdGhpcy5icmVhZGNydW1iTGlzdFtqXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGluayA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYnJlYWRjcnVtYkxpc3RbaV0sXG4gICAgICAgICAgICB1cmw6IHRoaXMuYnJlYWRjcnVtYkxpbmtzTGlzdFtpIC0gMV1bXCJ1cmxcIl0sXG4gICAgICAgICAgICBpZDogdGhpcy5icmVhZGNydW1iTGlzdFtpXSxcbiAgICAgICAgICAgIGtwaU5hbWU6IHRoaXMuYnJlYWRjcnVtYkxpc3RbaV0sXG4gICAgICAgICAgICByZXR1cm5JZDogcmV0dXJuSWQsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmNvbW1vblNlcnZpY2UuZ2xvYmFsX2twaV9uYW1lID0gdGhpcy5icmVhZGNydW1iTGlzdFtpXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJyZWFkY3J1bWJMaW5rc0xpc3QucHVzaChsaW5rKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY291bnQgPSB0aGlzLmJyZWFkY3J1bWJMaXN0Lmxlbmd0aDtcbiAgICB9XG4gIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJmbGV4IG10LTFcIiBhcmlhLWxhYmVsPVwiQnJlYWRjcnVtYlwiICpuZ0lmPVwiaXNCcmVhZENydW1ic1wiPlxuICAgIDxvbCBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LTEgbWQ6c3BhY2UteC0zXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiICpuZ0Zvcj1cImxldCBicmVhZGNydW1iTGFiZWwgb2YgYnJlYWRjcnVtYkxpbmtzTGlzdDtcIj5cbiAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImJyZWFkY3J1bWJMYWJlbC51cmxcIiBbcXVlcnlQYXJhbXNdPVwie3JldHVybklkOiBicmVhZGNydW1iTGFiZWwucmV0dXJuSWQgfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktNzAwIGhvdmVyOnRleHQtZ3JheS05MDAgZGFyazp0ZXh0LWdyYXktNDAwIGRhcms6aG92ZXI6dGV4dC13aGl0ZVwiPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJ3LTYgaC02IHRleHQtZ3JheS00MDBcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuMjkzIDE0LjcwN2ExIDEgMCAwMTAtMS40MTRMMTAuNTg2IDEwIDcuMjkzIDYuNzA3YTEgMSAwIDAxMS40MTQtMS40MTRsNCA0YTEgMSAwIDAxMCAxLjQxNGwtNCA0YTEgMSAwIDAxLTEuNDE0IDB6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAge3ticmVhZGNydW1iTGFiZWwua3BpTmFtZX19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgPC9vbD5cbjwvbmF2PiJdfQ==
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dhbW1hLWFwcC1jb250cm9sbGVyL3NyYy9saWIvc2hhcmVkL2dhbW1hLWJyZWFkLWNydW1icy9icmVhZC1jcnVtYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9zaGFyZWQvZ2FtbWEtYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXpELE1BQU0sT0FBTyxvQkFBb0I7SUFpQy9CLFlBQ1UsUUFBa0IsRUFDbEIsTUFBYyxFQUNkLElBQWdCLEVBQ2hCLGNBQThCLEVBQzlCLGFBQTRCO1FBSjVCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBaEN0QyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsU0FBSSxHQUFHLEVBQUUsQ0FBQztJQTZCTixDQUFDO0lBeEJMLElBQ0ksa0JBQWtCLENBQUMsS0FBSztRQUMxQixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFFM0IsT0FBTztTQUNSO2FBQU07WUFDTCxRQUFRLENBQUE7WUFFUixJQUFJLFlBQVksR0FBRyxjQUFjLENB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M0MsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO3dCQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7d0JBQy9CLFFBQVEsRUFBRSxRQUFRO3FCQUNuQixDQUFDO29CQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdEO2dCQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckM7WUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7aUhBbEtVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGdIQ1pqQyx5aENBZU07MkZESE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG9CQUFvQjtzTUFvQjFCLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRXh0cmFzLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vYXBwbGljYXRpb24tY29udHJvbGxlci9jb21tb25cIjtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZ2FtbWEtYnJlYWQtY3J1bWJzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9icmVhZC1jcnVtYnMuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkQ3J1bWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuYnJlYWRjcnVtYkxpc3Q7XG4gIGJyZWFkY3J1bWJMaW5rc0xpc3Q7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG4gIGtwaUxpc3REYXRhOiBhbnkgPSBbXTtcbiAga3BpX3N0cnVjdHVyZXMgPSB7fTtcbiAga3BpX25hbWVzID0ge307XG4gIGtwaVVybElEO1xuICBkYXRhID0gW107XG5cbiAga3BpQnJvd3Nlck5hbWU6IEJvb2xlYW47XG4gIGlzQnJlYWRDcnVtYnM6IEJvb2xlYW47XG5cbiAgQElucHV0KCdrcGlfZGF0YV9jb250YWluZXInKVxuICBzZXQga3BpX2RhdGFfY29udGFpbmVyKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmlzQnJlYWRDcnVtYnMgPSBmYWxzZTtcbiAgICAgIC8vIHRoaXMuYWRkUm9sZUNvbnRhaW5lciA9IFt7IFwidHlwZVwiOiBcInRleHRcIiwgXCJ2YWx1ZVwiOiAnJywgXCJyb2xlaWRcIjogXCJyb3dJZDBcIiB9XTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVidWdnZXJcbiAgICAgIC8vIHRoaXMua3BpTGlzdERhdGEgPSB2YWx1ZTtcbiAgICAgIGxldCByZWxhdGl2ZVBhdGggPSAncmFrcGlCcm93c2VyJztcbiAgICAgIHRoaXMuZ2V0S3BpTmFtZSh2YWx1ZSwgcmVsYXRpdmVQYXRoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRCcmVhZENydW1icygpO1xuICAgICAgfSwgNTAwKTtcbiAgICAgIHRoaXMuaXNCcmVhZENydW1icyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG5cbiAgfVxuXG4gIGdldEtwaU5hbWUoZGF0YSwgcmVsYXRpdmVQYXRoKSB7XG5cbiAgICBkYXRhLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB7fTtcbiAgICAgIGxldCBvYmo7XG4gICAgICBpdGVtWydyZWxhdGl2ZVBhdGgnXSA9IHJlbGF0aXZlUGF0aDtcblxuICAgICAgaWYgKHJlc3VsdFsnbm9kZXMnXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGxldCBjaGlsZFJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlUGF0aCArICcvJyArIHJlc3VsdFsnbmFtZSddO1xuICAgICAgICB0aGlzLmdldEtwaU5hbWUocmVzdWx0Wydub2RlcyddLCBjaGlsZFJlbGF0aXZlUGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAocmVzdWx0WydpZCddKSB7XG4gICAgICAgIG9iaiA9IHtcbiAgICAgICAgICAnbmFtZSc6IHJlc3VsdFsnbmFtZSddLFxuICAgICAgICAgICdkZXNjJzogcmVzdWx0WydkZXNjJ10sXG4gICAgICAgICAgJ3JlbGF0aXZlUGF0aCc6IHJlc3VsdFsncmVsYXRpdmVQYXRoJ10sXG4gICAgICAgICAgJ2twaUlkJzogcmVzdWx0WydpZCddLFxuICAgICAgICAgICdwYWdlSWQnOiByZXN1bHRbJ3BhZ2VJZCddLFxuICAgICAgICAgICdpc0Jvb2ttYXJrZWQnOiByZXN1bHRbJ2lzQm9va21hcmtlZCddLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaXRlbVsnZXh0ZXJuYWxMaW5rJ10gPSByZWxhdGl2ZVBhdGggKyAnLycgKyByZXN1bHRbJ25hbWUnXVxuICAgICAgaXRlbVsndGlkJ10gPSByZXN1bHRbJ3RpZCddO1xuICAgICAgaXRlbVsnaWQnXSA9IHJlc3VsdFsnaWQnXTtcbiAgICAgIGl0ZW1bJ3BhZ2VJZCddID0gcmVzdWx0WydwYWdlSWQnXTtcbiAgICAgIGl0ZW1bJ25hbWUnXSA9IHJlc3VsdFsnbmFtZSddO1xuXG4gICAgICB0aGlzLmtwaUxpc3REYXRhLnB1c2goaXRlbSk7XG4gICAgfSk7XG5cbiAgfVxuXG5cbiAgZ2V0QnJlYWRDcnVtYnNEYXRhKGRhdGEpIHtcbiAgICBsZXQgc3RydWN0dXJlcyA9IHt9O1xuICAgIGRhdGEuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgICAgY29uc3QgaXRlbTogb2JqZWN0ID0ge307XG4gICAgICBpdGVtW1wicmVsYXRpdmVQYXRoXCJdID0gcmVzdWx0LnJlbGF0aXZlUGF0aDtcbiAgICAgIGl0ZW1bXCJuYW1lXCJdID0gcmVzdWx0W1wibmFtZVwiXTtcbiAgICAgIGl0ZW1bXCJwYWdlSWRcIl0gPSByZXN1bHRbXCJwYWdlSWRcIl07XG4gICAgICBpdGVtW1widGlkXCJdID0gcmVzdWx0W1widGlkXCJdLnRyaW0oKTtcbiAgICAgIGlmIChyZXN1bHRbXCJub2Rlc1wiXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGl0ZW1bXCJub2Rlc1wiXSA9IHRoaXMuZ2V0QnJlYWRDcnVtYnNEYXRhKFxuICAgICAgICAgIHJlc3VsdFtcIm5vZGVzXCJdXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBkZWJ1Z2dlclxuICAgICAgdGhpcy5rcGlfbmFtZXNbcmVzdWx0W1wicGFnZUlkXCJdXSA9IGl0ZW1bXCJ0aWRcIl07XG5cbiAgICAgIHN0cnVjdHVyZXNbcmVzdWx0W1widGlkXCJdXSA9IGl0ZW07XG4gICAgICB0aGlzLmtwaV9zdHJ1Y3R1cmVzW3Jlc3VsdFtcInRpZFwiXV0gPSBpdGVtO1xuICAgIH0pO1xuICAgIHJldHVybiBzdHJ1Y3R1cmVzO1xuICB9XG5cbiAgbG9hZEJyZWFkQ3J1bWJzKCkge1xuXG4gICAgbGV0IGtwaVJvb3QgPSB0aGlzLmtwaUJyb3dzZXJOYW1lID8gXCJmbXNrcGlcIiA6IFwicmFrcGlcIjtcbiAgICBsZXQga3BpQ29udGFpbmVyO1xuICAgIC8vIGNvbnN0IG5hdnVybCA9IHRoaXMucm91dGVyLnVybC5zcGxpdChcIj9cIik7XG4gICAgLy8gbGV0IHVybCA9IG5hdnVybFswXS5zcGxpdChcIi9cIik7XG4gICAgLy8gdGhpcy5rcGlVcmxJRCA9IHVybC5zbGljZSgtMSkucG9wKCk7XG5cbiAgICBpZiAodGhpcy5rcGlMaXN0RGF0YS5sZW5ndGggPiAwIHx8IHRoaXMua3BpTGlzdERhdGEgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBrcGlDb250YWluZXIgPSB0aGlzLmdldEJyZWFkQ3J1bWJzRGF0YSh0aGlzLmtwaUxpc3REYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAga3BpQ29udGFpbmVyID0gdGhpcy5nZXRCcmVhZENydW1ic0RhdGEoXG4gICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5hbGxLcGlicm93c2VyRGV0YWlsQ29udGFpbmVyLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qga3BpSWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydwYWdlSWQnXTtcbiAgICBjb25zdCBrcGlUaWQgPSB0aGlzLmtwaV9uYW1lc1trcGlJZF07XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmtwaV9zdHJ1Y3R1cmVzW2twaVRpZF07XG4gICAgY29uc3QgcHJvcHNMaXN0ID0gcHJvcHNbXCJyZWxhdGl2ZVBhdGhcIl0gKyBcIi9cIiArIHByb3BzW1wibmFtZVwiXTtcbiAgICB0aGlzLmJyZWFkY3J1bWJMaXN0ID0gcHJvcHNMaXN0LnNwbGl0KFwiL1wiKTtcblxuICAgIGlmICh0aGlzLmxvY2F0aW9uLnBhdGgoKSAhPT0gXCJcIikge1xuICAgICAgbGV0IGxpbmsgPSB7fTtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYkxpbmtzTGlzdCA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYnJlYWRjcnVtYkxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGkgPT0gMCkge1xuICAgICAgICAgIGlmICghdGhpcy5rcGlCcm93c2VyTmFtZSkge1xuICAgICAgICAgICAgbGluayA9IHtcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5icmVhZGNydW1iTGlzdFtpXSxcbiAgICAgICAgICAgICAgdXJsOiBcIi9hcHBzL3JhS3BpL3Jha3BpQnJvd3NlclwiLFxuICAgICAgICAgICAgICBrcGlOYW1lOiBcIlJBIEtQSSBCcm93c2VyXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaW5rID0ge1xuICAgICAgICAgICAgICBuYW1lOiB0aGlzLmJyZWFkY3J1bWJMaXN0W2ldLFxuICAgICAgICAgICAgICB1cmw6IFwiL2FwcHMvZm1zS3BpXCIsXG4gICAgICAgICAgICAgIGtwaU5hbWU6IFwiRk1TIEtQSSBCcm93c2VyXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgcmV0dXJuSWQgPSBcIlwiO1xuICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDw9IGk7IGorKykge1xuICAgICAgICAgICAgaWYgKGogIT0gMCkge1xuICAgICAgICAgICAgICByZXR1cm5JZCArPSBcIi9cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybklkICs9IHRoaXMuYnJlYWRjcnVtYkxpc3Rbal07XG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmsgPSB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLmJyZWFkY3J1bWJMaXN0W2ldLFxuICAgICAgICAgICAgdXJsOiB0aGlzLmJyZWFkY3J1bWJMaW5rc0xpc3RbaSAtIDFdW1widXJsXCJdLFxuICAgICAgICAgICAgaWQ6IHRoaXMuYnJlYWRjcnVtYkxpc3RbaV0sXG4gICAgICAgICAgICBrcGlOYW1lOiB0aGlzLmJyZWFkY3J1bWJMaXN0W2ldLFxuICAgICAgICAgICAgcmV0dXJuSWQ6IHJldHVybklkLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5jb21tb25TZXJ2aWNlLmdsb2JhbF9rcGlfbmFtZSA9IHRoaXMuYnJlYWRjcnVtYkxpc3RbaV07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5icmVhZGNydW1iTGlua3NMaXN0LnB1c2gobGluayk7XG4gICAgICB9XG4gICAgICB0aGlzLmNvdW50ID0gdGhpcy5icmVhZGNydW1iTGlzdC5sZW5ndGg7XG4gICAgfVxuICB9XG59XG4iLCI8bmF2IGNsYXNzPVwiZmxleCBtdC0xXCIgYXJpYS1sYWJlbD1cIkJyZWFkY3J1bWJcIiAqbmdJZj1cImlzQnJlYWRDcnVtYnNcIj5cbiAgICA8b2wgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0xIG1kOnNwYWNlLXgtM1wiPlxuICAgICAgICA8bGkgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIiAqbmdGb3I9XCJsZXQgYnJlYWRjcnVtYkxhYmVsIG9mIGJyZWFkY3J1bWJMaW5rc0xpc3Q7XCI+XG4gICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJicmVhZGNydW1iTGFiZWwudXJsXCIgW3F1ZXJ5UGFyYW1zXT1cIntyZXR1cm5JZDogYnJlYWRjcnVtYkxhYmVsLnJldHVybklkIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTcwMCBob3Zlcjp0ZXh0LWdyYXktOTAwIGRhcms6dGV4dC1ncmF5LTQwMCBkYXJrOmhvdmVyOnRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwidy02IGgtNiB0ZXh0LWdyYXktNDAwXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjI5MyAxNC43MDdhMSAxIDAgMDEwLTEuNDE0TDEwLjU4NiAxMCA3LjI5MyA2LjcwN2ExIDEgMCAwMTEuNDE0LTEuNDE0bDQgNGExIDEgMCAwMTAgMS40MTRsLTQgNGExIDEgMCAwMS0xLjQxNCAwelwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIHt7YnJlYWRjcnVtYkxhYmVsLmtwaU5hbWV9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvb2w+XG48L25hdj4iXX0=