@churchillliving/se-ui-toolkit 6.54.276 → 6.54.278

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.
@@ -9,7 +9,8 @@ export class GenerateReportBtnComponent {
9
9
  ngOnInit() {
10
10
  }
11
11
  reportClickEvent() {
12
- this.repInfo = this.repInfo?.reportName ? this.repInfo.reportName : this.repInfo;
12
+ this.repInfo = this.repInfo?.uniqueKey ? this.repInfo.uniqueKey : this.repInfo;
13
+ console.log('this.repInfo: ', this.repInfo);
13
14
  this.reportService.downloadReport(this.repInfo, this.params, this.showDialog, this.reportType, this.reportHeader, this.reportFooter, this.form);
14
15
  }
15
16
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: GenerateReportBtnComponent, deps: [{ token: i1.ReportService }], target: i0.ɵɵFactoryTarget.Component }); }
@@ -41,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
41
42
  }], form: [{
42
43
  type: Input
43
44
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVwb3J0LWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3JlcG9ydC9yZXBvcnRHZW5lcmF0ZUJ0bi9nZW5lcmF0ZS1yZXBvcnQtYnRuL2dlbmVyYXRlLXJlcG9ydC1idG4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2UtdWktdG9vbGtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0R2VuZXJhdGVCdG4vZ2VuZXJhdGUtcmVwb3J0LWJ0bi9nZW5lcmF0ZS1yZXBvcnQtYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBV3pELE1BQU0sT0FBTywwQkFBMEI7SUFZckMsWUFDVSxhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNsQyxDQUFDO0lBRUwsUUFBUTtJQUNSLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqRixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEosQ0FBQztpSUF0QlUsMEJBQTBCO3FIQUExQiwwQkFBMEIsMFRDWHZDLCtSQVNBOzsyRkRFYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCO29HQUt6QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElGb3JtRmllbGQsIEVGb3JtQ29udHJvbCwgSUR5bmFtaWNGb3JtLCBJUmVwb3J0VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcbmltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZS1nZW5lcmF0ZS1yZXBvcnQtYnRuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyYXRlLXJlcG9ydC1idG4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmF0ZS1yZXBvcnQtYnRuLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVSZXBvcnRCdG5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZXBJbmZvOiBhbnk7XG4gIEBJbnB1dCgpIG1hcHBlZEZpZWxkczogYW55O1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhcmFtczogYW55O1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nO1xuICBASW5wdXQoKSByZXBvcnRIZWFkZXI6IHN0cmluZztcbiAgQElucHV0KCkgcmVwb3J0Rm9vdGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlcG9ydFR5cGU6IElSZXBvcnRUeXBlO1xuICBASW5wdXQoKSBzaG93RGlhbG9nOiBib29sZWFuO1xuICBASW5wdXQoKSBmb3JtOiBJRHluYW1pY0Zvcm07XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3J0U2VydmljZTogUmVwb3J0U2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcmVwb3J0Q2xpY2tFdmVudCgpIHtcbiAgICB0aGlzLnJlcEluZm8gPSB0aGlzLnJlcEluZm8/LnJlcG9ydE5hbWUgPyB0aGlzLnJlcEluZm8ucmVwb3J0TmFtZSA6IHRoaXMucmVwSW5mbztcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZG93bmxvYWRSZXBvcnQodGhpcy5yZXBJbmZvLCB0aGlzLnBhcmFtcywgdGhpcy5zaG93RGlhbG9nLCB0aGlzLnJlcG9ydFR5cGUsIHRoaXMucmVwb3J0SGVhZGVyLCB0aGlzLnJlcG9ydEZvb3RlciwgdGhpcy5mb3JtKTtcbiAgfVxufSIsIjxidXR0b25cbiAgcEJ1dHRvblxuICBbY2xhc3NdPVwiY2xhc3MgPyBjbGFzcysgJyByZXBvcnQtYnRuIGdlbmVyYXRlLXJlcG9ydC1idG4nIDogJ3JlcG9ydC1idG4gZ2VuZXJhdGUtcmVwb3J0LWJ0bidcIlxuICBbaWNvbl09XCJpY29uXCIgXG4gIHR5cGU9XCJidXR0b25cIlxuICBpZD1cInJlcG9ydGJ0blwiXG4gIFtsYWJlbF09XCJsYWJlbCA/IGxhYmVsIDogaWNvbiA/ICcnIDogJ0dlbmVyYXRlIFJlcG9ydCdcIlxuICAoY2xpY2spPVwicmVwb3J0Q2xpY2tFdmVudCgpXCJcbj48L2J1dHRvbj5cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVwb3J0LWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlL3JlcG9ydC9yZXBvcnRHZW5lcmF0ZUJ0bi9nZW5lcmF0ZS1yZXBvcnQtYnRuL2dlbmVyYXRlLXJlcG9ydC1idG4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2UtdWktdG9vbGtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0R2VuZXJhdGVCdG4vZ2VuZXJhdGUtcmVwb3J0LWJ0bi9nZW5lcmF0ZS1yZXBvcnQtYnRuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBV3pELE1BQU0sT0FBTywwQkFBMEI7SUFZckMsWUFDVSxhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNsQyxDQUFDO0lBRUwsUUFBUTtJQUNSLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUMvRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEosQ0FBQztpSUF2QlUsMEJBQTBCO3FIQUExQiwwQkFBMEIsMFRDWHZDLCtSQVNBOzsyRkRFYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0Usd0JBQXdCO29HQUt6QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElGb3JtRmllbGQsIEVGb3JtQ29udHJvbCwgSUR5bmFtaWNGb3JtLCBJUmVwb3J0VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcbmltcG9ydCB7IFJlcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZS1nZW5lcmF0ZS1yZXBvcnQtYnRuJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyYXRlLXJlcG9ydC1idG4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmF0ZS1yZXBvcnQtYnRuLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVSZXBvcnRCdG5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZXBJbmZvOiBhbnk7XG4gIEBJbnB1dCgpIG1hcHBlZEZpZWxkczogYW55O1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhcmFtczogYW55O1xuICBASW5wdXQoKSBjbGFzczogc3RyaW5nO1xuICBASW5wdXQoKSByZXBvcnRIZWFkZXI6IHN0cmluZztcbiAgQElucHV0KCkgcmVwb3J0Rm9vdGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlcG9ydFR5cGU6IElSZXBvcnRUeXBlO1xuICBASW5wdXQoKSBzaG93RGlhbG9nOiBib29sZWFuO1xuICBASW5wdXQoKSBmb3JtOiBJRHluYW1pY0Zvcm07XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3J0U2VydmljZTogUmVwb3J0U2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcmVwb3J0Q2xpY2tFdmVudCgpIHtcbiAgICB0aGlzLnJlcEluZm8gPSB0aGlzLnJlcEluZm8/LnVuaXF1ZUtleSA/IHRoaXMucmVwSW5mby51bmlxdWVLZXkgOiB0aGlzLnJlcEluZm87XG4gICAgY29uc29sZS5sb2coJ3RoaXMucmVwSW5mbzogJywgdGhpcy5yZXBJbmZvKTtcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZG93bmxvYWRSZXBvcnQodGhpcy5yZXBJbmZvLCB0aGlzLnBhcmFtcywgdGhpcy5zaG93RGlhbG9nLCB0aGlzLnJlcG9ydFR5cGUsIHRoaXMucmVwb3J0SGVhZGVyLCB0aGlzLnJlcG9ydEZvb3RlciwgdGhpcy5mb3JtKTtcbiAgfVxufSIsIjxidXR0b25cbiAgcEJ1dHRvblxuICBbY2xhc3NdPVwiY2xhc3MgPyBjbGFzcysgJyByZXBvcnQtYnRuIGdlbmVyYXRlLXJlcG9ydC1idG4nIDogJ3JlcG9ydC1idG4gZ2VuZXJhdGUtcmVwb3J0LWJ0bidcIlxuICBbaWNvbl09XCJpY29uXCIgXG4gIHR5cGU9XCJidXR0b25cIlxuICBpZD1cInJlcG9ydGJ0blwiXG4gIFtsYWJlbF09XCJsYWJlbCA/IGxhYmVsIDogaWNvbiA/ICcnIDogJ0dlbmVyYXRlIFJlcG9ydCdcIlxuICAoY2xpY2spPVwicmVwb3J0Q2xpY2tFdmVudCgpXCJcbj48L2J1dHRvbj5cbiJdfQ==
@@ -104,4 +104,4 @@ export var IReportType;
104
104
  IReportType["TEXT"] = "txt";
105
105
  IReportType["CSV"] = "csv";
106
106
  })(IReportType || (IReportType = {}));
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlLXVpLXRvb2xraXQvc3JjL2xpYi9tb2RlbHMvZm9ybS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpTkEsTUFBTSxDQUFOLElBQVksZUFNWDtBQU5ELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBQ2YsNERBQXlDLENBQUE7SUFDekMseUNBQXNCLENBQUE7SUFDdEIsK0JBQVksQ0FBQTtJQUNaLCtCQUFZLENBQUE7QUFDZCxDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQVlYO0FBWkQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLHFDQUF1QixDQUFBO0lBQ3ZCLHFDQUF1QixDQUFBO0lBQ3ZCLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLDZCQUFlLENBQUE7SUFDZiw2QkFBZSxDQUFBO0lBQ2YsdUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVpXLFVBQVUsS0FBVixVQUFVLFFBWXJCO0FBRUQsTUFBTSxDQUFOLElBQVksWUEyQlg7QUEzQkQsV0FBWSxZQUFZO0lBQ3RCLGlDQUFpQixDQUFBO0lBQ2pCLCtCQUFlLENBQUE7SUFDZiwrQkFBZSxDQUFBO0lBQ2YscUNBQXFCLENBQUE7SUFDckIscUNBQXFCLENBQUE7SUFDckIscUNBQXFCLENBQUE7SUFDckIsa0NBQWtCLENBQUE7SUFDbEIsNENBQTRCLENBQUE7SUFDNUIsc0NBQXNCLENBQUE7SUFDdEIsdUNBQXVCLENBQUE7SUFDdkIsNkNBQTZCLENBQUE7SUFDN0IseUNBQXlCLENBQUE7SUFDekIsdUNBQXVCLENBQUE7SUFDdkIscUNBQXFCLENBQUE7SUFDckIsNkNBQTZCLENBQUE7SUFDN0IsaUNBQWlCLENBQUE7SUFDakIsaURBQWlDLENBQUE7SUFDakMsMkNBQTJCLENBQUE7SUFDM0IsNkJBQWEsQ0FBQTtJQUNiLDZDQUE2QixDQUFBO0lBQzdCLHlDQUF5QixDQUFBO0lBQ3pCLHlDQUF5QixDQUFBO0lBQ3pCLGlDQUFpQixDQUFBO0lBQ2pCLGlDQUFpQixDQUFBO0lBQ2pCLDhDQUE0QixDQUFBO0lBQzVCLHVDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUEzQlcsWUFBWSxLQUFaLFlBQVksUUEyQnZCO0FBRUQsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQix3QkFBVyxDQUFBO0lBQ1gsc0JBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBa0JYO0FBbEJELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6QixtQ0FBb0IsQ0FBQTtJQUNwQix1QkFBUyxDQUFBO0lBQ1QsbUNBQXFCLENBQUE7SUFDckIscUNBQXVCLENBQUE7SUFDdkIsNkJBQWUsQ0FBQTtJQUNmLHFDQUF1QixDQUFBO0lBQ3ZCLHlDQUEwQixDQUFBO0lBQzFCLHVCQUFTLENBQUE7SUFDVCwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6Qix5QkFBVyxDQUFBO0lBQ1gsdUJBQVMsQ0FBQTtJQUNULDZCQUFlLENBQUE7SUFDZixxQ0FBdUIsQ0FBQTtJQUN2Qix5QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQWxCVyxVQUFVLEtBQVYsVUFBVSxRQWtCckI7QUFpQ0QsTUFBTSxDQUFOLElBQVksV0FZWDtBQVpELFdBQVksV0FBVztJQUNyQixtQ0FBb0IsQ0FBQTtJQUNwQixxQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBc0IsQ0FBQTtJQUN0QixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBZSxDQUFBO0lBQ2Ysd0NBQXlCLENBQUE7SUFDekIsZ0NBQWlCLENBQUE7SUFDakIsb0NBQXFCLENBQUE7SUFDckIsa0NBQW1CLENBQUE7SUFDbkIsa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVpXLFdBQVcsS0FBWCxXQUFXLFFBWXRCO0FBYUQsTUFBTSxDQUFOLElBQVksVUFPWDtBQVBELFdBQVksVUFBVTtJQUNwQiw4QkFBZ0IsQ0FBQTtJQUNoQiw0QkFBYyxDQUFBO0lBQ2QsZ0NBQWtCLENBQUE7SUFDbEIsMEJBQVksQ0FBQTtJQUNaLGdDQUFrQixDQUFBO0lBQ2xCLGdDQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFQVyxVQUFVLEtBQVYsVUFBVSxRQU9yQjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsMEJBQVcsQ0FBQTtJQUNYLDhCQUFlLENBQUE7SUFDZiwyQkFBWSxDQUFBO0lBQ1osMEJBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElHcmlkU29ydCwgSU92ZXJsYXlQYW5lbERhdGEsIElTZWxlY3RJdGVtIH0gZnJvbSAnLi9ncmlkLm1vZGVsJztcbmltcG9ydCB7IElQZXJtaXNzaW9uIH0gZnJvbSAnLi91c2VyLWluZm8ubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRm9ybSB7XG4gIGZvcm1TZWN0aW9ucz86IElGb3JtU2VjdGlvbltdO1xuICBjb2x1bW4/OiBudW1iZXI7XG4gIHBlcm1pc3Npb25zPzogSVBlcm1pc3Npb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFiZWwge1xuICBuYW1lOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbGFiZWxDb250cm9sPzogSUZvcm1GaWVsZDtcbiAgb25SZXR1cm4/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyb3BEb3duUmVxdWVzdCB7XG4gIHVuaXF1ZUtleTogc3RyaW5nLFxuICB2YWx1ZVByb3A6IHN0cmluZyxcbiAgbGFiZWxQcm9wOiBzdHJpbmcsXG4gIGZpbHRlcnM/OiBJU2V0RmlsdGVyW11cbiAgc29ydHM/OklHcmlkU29ydFtdIFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBdXRvQ29tcGxldGVTYXZlIHtcbiAgbmFtZTpzdHJpbmcsXG4gIHZhbHVlczpJQXV0b0NvbXBsZXRlVmFsdWVTYXZlW10sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dG9Db21wbGV0ZVZhbHVlU2F2ZXtcbiAgbmFtZTpzdHJpbmcsXG4gIHZhbHVlPzphbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2V0RmlsdGVyIHtcbiAgZmllbGQ/OiBzdHJpbmcsXG4gIHZhbHVlPzogYW55LFxuICBtYXRjaE1vZGU/OiBzdHJpbmcsXG4gIG9wZXJhdG9yPzogc3RyaW5nLFxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2VjdGlvbiB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZpZWxkcz86IElGb3JtRmllbGRbXTtcbiAgaWNvbj86IHN0cmluZztcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGxpbmtzPzogSUxhYmVsW107XG4gIGhlYWRlckZpZWxkcz86IElGb3JtRmllbGRbXTtcbiAgcGVybWlzc2lvbnM/OiBJUGVybWlzc2lvbltdO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBhY2NvcmRpb25EaXNhYmxlZD86IGJvb2xlYW47XG4gIHNob3dBY2NvcmRpb24/OiBib29sZWFuO1xuICBleHBhbmRlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRUZXh0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUZpZWxkIHtcbiAgbGFiZWw/OiBzdHJpbmcgfCBJTGFiZWw7XG4gIGNsYXNzPzogc3RyaW5nO1xuICBjYXJkPzogSUR5bmFtaWNDYXJkO1xuICBjb250cm9sPzogRUZvcm1Db250cm9sO1xuICBmaWVsZD86IHN0cmluZztcbiAgZGlzcGxheUZpZWxkPzogc3RyaW5nO1xuICBzaG93T3B0aW9uPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBhbnkgfCBJTG9va3VwSW5wdXRWYWx1ZTtcbiAgZGF0YT86IGFueVtdO1xuICB2YWxpZGF0aW9ucz86IElWYWxpZGF0aW9uW107XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgbWludXRlc0ludGVydmFsPzogbnVtYmVyO1xuICBpZD86IHN0cmluZztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkVGV4dD86IGJvb2xlYW47XG4gIGxvb2t1cENvbnRyb2w/OiBJTG9va3VwQ29udHJvbEZpZWxkO1xuICB0YWJsZXM/OiBzdHJpbmdbXTtcbiAgY29tcG9uZW50Q29udHJvbD86IElGb3JtQ29tcG9uZW50RmllbGQ7XG4gIGNvbHVtbj86IG51bWJlcjtcbiAgcm93PzogbnVtYmVyO1xuICBoeXBlcmxpbms/OiBJSHlwZXJsaW5rO1xuICBmb3JtYXQ/OiBJRm9ybWF0O1xuICBwZXJtaXNzaW9ucz86IElQZXJtaXNzaW9uW107XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIG9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBvcHRpb25WYWx1ZT86IHN0cmluZztcbiAgc2F2ZUFzU3RyaW5nPzogYm9vbGVhbjtcbiAgc2hvd0FsbFZhbHVlPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICh2YWx1ZT86IGFueSkgPT4gYW55O1xuICBvblJldHVybj86ICh2YWx1ZT86IGFueSwgc2VsZWN0ZWRSb3c/OiBhbnkpID0+IHZvaWQ7XG4gIG9uRm9jdXNPdXQ/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25DaGFuZ2U/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBpc3ZhbGlkPzogYm9vbGVhbjtcbiAgdGltZU9ubHk/OiBib29sZWFuXG4gIG1vbnRoT25seT86IGJvb2xlYW47XG4gIHNob3dUaW1lPzogYm9vbGVhbjsgLy8gdG8gc2hvdyB0aW1lIGFzIHdlbGwgaW4gY2FsZW5kYXIgZm9ybSBmaWVsZFxuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG4gIHJlcXVpcmVkRmllbGQ/OiBib29sZWFuO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG4gIHNob3dCb3R0b21Cb3JkZXI/OiBib29sZWFuO1xuICBhbGxvd1NlYXJjaD86IGJvb2xlYW47XG4gIGlzUGFzc3dvcmQ/OmJvb2xlYW5cbiAgdGV4dFR5cGU/OnN0cmluZztcbiAgc2VsZWN0TXVsdGlwbGVGaWxlcz86IGJvb2xlYW47XG4gIFNldGZpbGVUeXBlcz86IEVTZWxlY3RGaWxlVHlwZTtcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHVuaXF1ZUtleT86IHN0cmluZztcbiAgYXp1cmVDb250YWluZXI/OiBzdHJpbmc7XG4gIHBhdGhTeXN0ZW1Db25maWc/OiBzdHJpbmc7XG4gIGRpc3BsYXlTdHlsZT86Ym9vbGVhbjtcbiAgaG92ZXJEYXRhPzogSU92ZXJsYXlQYW5lbERhdGE7XG4gIG9wZW5Jbk5ld1RhYj86IGJvb2xlYW47XG4gIGlzQXp1cmVVcGxvYWQ/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUJ1dHRvbntcbiAgaWNvbj86c3RyaW5nO1xuICBsYWJlbDpzdHJpbmc7XG4gIGhpZGRlbj86Ym9vbGVhbjtcbiAgZnVuYzpGdW5jdGlvbjtcbiAgZGlzYWJsZWQ/OmJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljQ2FyZCB7XG4gIGlkPzogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogYW55W107XG4gIG9yZGVyQnlGaWVsZD86IHN0cmluZztcbiAgZm9ybVNlY3Rpb25zPzogSUZvcm1TZWN0aW9uW107XG4gIG9uU29ydD86ICh2YWx1ZTogYW55KSA9PiBhbnk7XG4gIGNvbnRhaW5lck5hbWU/OiBzdHJpbmc7XG4gIGFsbG93RGVsZXRlPzogYm9vbGVhbjtcbiAgYWxsb3dEb3dubG9hZD86IGJvb2xlYW47XG4gIHVybD86IHN0cmluZztcbiAgY2FwdGlvbj86IHN0cmluZztcbiAgd2lkdGg/OiBzdHJpbmc7XG4gIGhlaWdodD86IHN0cmluZztcbiAgYWxsb3dFZGl0YWJsZUNhcHRpb24/OiBib29sZWFuO1xuICBvbkNhcHRpb25TYXZlPzogKHZhbHVlOiBhbnkpID0+IGFueTtcbiAgb25EZWxldGU/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBjbGFzcz86IHN0cmluZztcbiAgY2FyZEluZm8/OiBJVmlld0NhcmRQcm9wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWaWV3Q2FyZFByb3Age1xuICB1cmw/OiBzdHJpbmc7XG4gIGNhcHRpb24/OiBzdHJpbmc7XG4gIGV4dGVuc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVwb3J0QnRue1xuICByZXBvcnRJZD86IG51bWJlcjtcbiAgcmVwb3J0TmFtZT86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGNvbnRyb2w/OiBFRm9ybUNvbnRyb2wuUkVQT1JUO1xuICBwYXJhbXM/OiBhbnlbXTtcbiAgc2hvd0RpYWxvZz86IGJvb2xlYW47XG4gIHJlcG9ydEhlYWRlcj86IHN0cmluZztcbiAgcmVwb3J0Rm9vdGVyPzogc3RyaW5nO1xuICByZXBvcnRUeXBlPzogSVJlcG9ydFR5cGU7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNsYXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMaXN0RmlsdGVyIHtcbiAgdW5pcXVlS2V5OiBzdHJpbmc7XG4gIGZpbHRlcnM/OiBJU2V0RmlsdGVyW107XG4gIHNvcnRzPzogSUdyaWRTb3J0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1Db21wb25lbnRGaWVsZCB7XG4gIGNvbXBvbmVudDogVHlwZTxhbnk+O1xuICBpZD86c3RyaW5nO1xuICBkYXRhPzoge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcbiAgaGFuZGxlcnM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogRnVuY3Rpb247XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvb2t1cElucHV0VmFsdWUge1xuICB0ZXh0OiBhbnk7XG4gIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvb2t1cENvbnRyb2xGaWVsZCB7XG4gIGNvbXBvbmVudDogYW55O1xuICBkYXRhOiBJTG9va3VwRmllbGREYXRhO1xuICBpZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBJTG9va3VwRmllbGREYXRhID0ge1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIGhlaWdodD86IHN0cmluZztcbiAgd2lkdGg/OiBzdHJpbmc7XG4gIGRhdGE/OiB7W2tleTogc3RyaW5nXTogYW55fTtcbiAgbGFiZWxQcm9wPzogc3RyaW5nO1xuICB2YWx1ZVByb3A/OiBzdHJpbmc7XG59IFxuXG5leHBvcnQgaW50ZXJmYWNlIElWYWxpZGF0aW9uIHtcbiAgdHlwZTogRVZhbGlkYXRvcjtcbiAgZXhwcmVzc2lvbj86IGFueTtcbn1cblxuZXhwb3J0IGVudW0gRVNlbGVjdEZpbGVUeXBlIHtcbiAgRVhDRUwgPSAnLnhsc3gnLFxuICBJTUFHRSA9ICcuaW1hZ2UsIC5qcGcsIC5wbmcsIC5qcGVnLCAuZ2lmJyxcbiAgRE9DVU1FTlQgPSAnLmRvY3VtZW50JyxcbiAgUERGID0gJy5wZGYnLFxuICBNUlQgPSAnLm1ydCcsXG59XG5cbmV4cG9ydCBlbnVtIEVWYWxpZGF0b3Ige1xuICBSRVFVSVJFRCA9ICdyZXF1aXJlZCcsXG4gIE1JTkxFTkdUSCA9ICdtaW5sZW5ndGgnLFxuICBNQVhMRU5HVEggPSAnbWF4bGVuZ3RoJyxcbiAgUEFUVEVSTiA9ICdwYXR0ZXJuJyxcbiAgTUlOSU1VTSA9ICdtaW5pbXVtJyxcbiAgTUFYSU1VTSA9ICdtYXhpbXVtJyxcbiAgTlVNRVJJQyA9ICdudW1lcmljJyxcbiAgREVDSU1BTCA9ICdkZWNpbWFsJyxcbiAgRU1BSUwgPSAnZW1haWwnLFxuICBQSE9ORSA9ICdwaG9uZScsXG4gIE1BWE9QVElPTlM9J21heE9wdGlvbnMnXG59XG5cbmV4cG9ydCBlbnVtIEVGb3JtQ29udHJvbCB7XG4gIEJVVFRPTiA9ICdidXR0b24nLFxuICBMQUJFTCA9ICdsYWJlbCcsXG4gIElOUFVUID0gJ2lucHV0JyxcbiAgQ0hFQ0tCT1ggPSAnY2hlY2tib3gnLFxuICBEUk9QRE9XTiA9ICdkcm9wZG93bicsXG4gIENBTEVOREFSID0gJ2NhbGVuZGFyJyxcbiAgTlVNRVJJQyA9ICdudW1iZXInLFxuICBNVUxUSVNFTEVDVCA9ICdtdWx0aS1zZWxlY3QnLFxuICBURVhUQVJFQSA9ICd0ZXh0LWFyZWEnLFxuICBIWVBFUkxJTksgPSAnaHlwZXJsaW5rJyxcbiAgTE9PS1VQX0lOUFVUID0gJ2xvb2t1cF9pbnB1dCcsXG4gIE5PVEVfRklFTEQgPSAnbm90ZV9maWVsZCcsXG4gIENPTVBPTkVOVCA9ICdjb21wb25lbnQnLFxuICBQQVNTV09SRCA9ICdwYXNzd29yZCcsXG4gIEFVVE9DT01QTEVURSA9ICdBdXRvQ29tcGxldGUnLFxuICBTUEFDRVIgPSAnc3BhY2VyJyxcbiAgU0VDVElPTl9IRUFERVIgPSAnc2VjdGlvbl9oZWFkZXInLFxuICBGSUxFX1VQTE9BRCA9ICdmaWxlX3VwbG9hZCcsXG4gIENBUkQgPSAnY2FyZCcsXG4gIERJU1BMQVlfRklMRSA9ICdkaXNwbGF5X2ZpbGUnLFxuICBBRERfQlVUVE9OID0gJ2FkZF9idXR0b24nLFxuICBCUkVBS19MSU5FID0gJ2JyZWFrX2xpbmUnLFxuICBTV0lUQ0ggPSAnc3dpdGNoJyxcbiAgUkVQT1JUID0gJ3JlcG9ydCcsXG4gIFNFTEVDVEJVVFRPTj0nc2VsZWN0X2J1dHRvbicsIFxuICBIT1ZFUkRBVEEgPSAnaG92ZXJEYXRhJ1xufVxuXG5leHBvcnQgZW51bSBFT3BlcmF0b3Ige1xuICBBTkQgPSAnYW5kJyxcbiAgT1IgPSAnb3InLFxufVxuXG5leHBvcnQgZW51bSBFTWF0Y2hNb2RlIHtcbiAgRVFVQUxTID0gJ2VxdWFscycsXG4gIFNUQVJUU1dJVEggPSAnc3RhcnRzV2l0aCcsXG4gIENPTlRBSU5TID0nY29udGFpbnMnLFxuICBJTiA9ICdpbicsXG4gIEVORFNXSVRIID0gJ2VuZHNXaXRoJyxcbiAgTk9URVFVQUxTID0gJ25vdEVxdWFscycsXG4gIElTTk9UID0gJ2lzTm90JyxcbiAgREFURUlTTk9UID0gJ2RhdGVJc05vdCcsXG4gIE5PVENPTlRBSU5TID0nbm90Q29udGFpbnMnLFxuICBMVCA9ICdsdCcsXG4gIEJFRk9SRSA9ICdiZWZvcmUnLFxuICBEQVRFQkVGT1JFID0gJ2RhdGVCZWZvcmUnLFxuICBMVEUgPSAnbHRlJyxcbiAgR1QgPSAnZ3QnLFxuICBBRlRFUiA9ICdhZnRlcicsXG4gIERBVEVBRlRFUiA9ICdkYXRlQWZ0ZXInLFxuICBHVEUgPSAnZ3RlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybWF0IHtcbiAgdHlwZTogRUZvcm1hdFR5cGU7XG4gIGZvcm1hdFBhcmFtcz86XG4gICAgfCBJRm9ybWF0UGFyYW1cbiAgICB8IElEYXRlRm9ybWF0UGFyYW1cbiAgICB8IElOdW1iZXJGb3JtYXRQYXJhbVxuICAgIHwgSWFsbG93Q2FsY3VsYXRlRm9ybWF0UGFyYW1cbiAgICB8IElDdXJyZW5jeUZvcm1hdFBhcmFtO1xuICBmb3JtYXR0ZXI/OiAodmFsdWU6IGFueSkgPT4gYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtYXRQYXJhbSB7XG4gIGxvY2FsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUZvcm1hdFBhcmFtIGV4dGVuZHMgSUZvcm1hdFBhcmFtIHtcbiAgZm9ybWF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElhbGxvd0NhbGN1bGF0ZUZvcm1hdFBhcmFtIGV4dGVuZHMgSUZvcm1hdFBhcmFtIHtcbiAgYWxsb3dDYWxjdWxhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElOdW1iZXJGb3JtYXRQYXJhbSBleHRlbmRzIElGb3JtYXRQYXJhbSB7XG4gIGRpZ2l0c0luZm8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUN1cnJlbmN5Rm9ybWF0UGFyYW0gZXh0ZW5kcyBJTnVtYmVyRm9ybWF0UGFyYW0ge1xuICBjdXJyZW5jeTogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBFRm9ybWF0VHlwZSB7XG4gIFNNQUxMREFURSA9ICdtbS9kL3knLFxuICBTSE9SVERBVEUgPSAnbW0vZGQveXknLFxuICBNRURJVU1EQVRFID0gJ00gZCwgeXknLFxuICBMT05HREFURSA9ICdNTSBkLCB5eScsXG4gIE1PTlRIT05MWSA9ICdtbS95eScsXG4gIFBFUklPRCA9ICdtbS95JyxcbiAgQk9PTEVBTl9ZTiA9ICdCT09MRUFOX1lOJyxcbiAgQ1VTVE9NID0gJ2N1c3RvbScsXG4gIENVUlJFTkNZID0gJ2N1cnJlbmN5JyxcbiAgUEVSQ0VOVCA9ICdwZXJjZW50JyxcbiAgREVDSU1BTCA9ICdkZWNpbWFsJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSHlwZXJsaW5rIHtcbiAgdGFyZ2V0PzogRUh5cGVybGluaztcbiAgbGluaz86IHN0cmluZztcbiAgbGlua0lkPzogc3RyaW5nO1xuICBwYXJhbXM/OiBhbnk7XG4gIHdpZHRoPzpzdHJpbmc7XG4gIGhlaWdodD86c3RyaW5nO1xuICBjb21wb25lbnQ/OiBhbnk7XG4gIGRhdGE/OiBJTG9va3VwRmllbGREYXRhO1xufVxuXG5leHBvcnQgZW51bSBFSHlwZXJsaW5rIHtcbiAgQkxBTksgPSAnX2JsYW5rJyxcbiAgU0VMRiA9ICdfc2VsZicsXG4gIFBBUkVOVCA9ICdfcGFyZW50JyxcbiAgVE9QID0gJ190b3AnLFxuICBJRlJBTUUgPSAnX2lmcmFtZScsXG4gIERJQUxPRyA9ICdfZGlhbG9nJ1xufVxuXG5leHBvcnQgZW51bSBJUmVwb3J0VHlwZSB7XG4gIFBERiA9ICdwZGYnLFxuICBFWENFTCA9ICdleGNlbCcsXG4gIFRFWFQgPSAndHh0JyxcbiAgQ1NWID0gJ2Nzdidcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRGb3JtRmllbGQge1xuICBjb250cm9sPzogRUZvcm1Db250cm9sO1xuICBmaWVsZD86IHN0cmluZztcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGRpc3BsYXlGaWVsZD86IHN0cmluZztcbiAgc2hvd09wdGlvbj86IGJvb2xlYW47XG4gIGxhYmVsPzogc3RyaW5nIHwgSUxhYmVsO1xuICB2YWx1ZT86IHN0cmluZyB8IGFueTtcbiAgZm9ybWF0PzogSUZvcm1hdDtcbiAgcGVybWlzc2lvbnM/OiBJUGVybWlzc2lvbltdO1xuICBpZD86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgdmFsaWRhdGlvbnM/OiBJVmFsaWRhdGlvbltdIHwgYW55O1xuICBoeXBlcmxpbms/OiBJSHlwZXJsaW5rO1xuICBsb29rdXBDb250cm9sPzogSUxvb2t1cENvbnRyb2xGaWVsZDtcbiAgdGFibGVzPzogc3RyaW5nW107XG4gIG1pbnV0ZXNJbnRlcnZhbD86IG51bWJlcjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuIHwgYW55O1xuICBkaXNhYmxlZFRleHQ/OiBib29sZWFuO1xuICBjb2x1bW4/OiBudW1iZXI7XG4gIHJvdz86IG51bWJlcjtcbiAgY29tcG9uZW50Q29udHJvbD86IElGb3JtQ29tcG9uZW50RmllbGQ7XG4gIGRhdGE/OiBJU2VsZWN0SXRlbVtdO1xuICBvcHRpb25MYWJlbD86IHN0cmluZztcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmc7XG4gIHRpbWVPbmx5PzogYm9vbGVhbjtcbiAgbW9udGhPbmx5PzogYm9vbGVhbjtcbiAgbWluRGF0ZT86IERhdGU7XG4gIG1heERhdGU/OiBEYXRlO1xuICBzaG93VGltZT86IGJvb2xlYW47IC8vIHRvIHNob3cgdGltZSBhcyB3ZWxsIGluIGNhbGVuZGFyIGZvcm0gZmllbGRcbiAgc2F2ZUFzU3RyaW5nPzogYm9vbGVhbjtcbiAgc2hvd0FsbFZhbHVlPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICh2YWx1ZT86IGFueSkgPT4gYW55O1xuICBvblJldHVybj86ICh2YWx1ZT86IGFueSwgc2VsZWN0ZWRSb3c/OmFueSkgPT4gdm9pZDtcbiAgb25Gb2N1c091dD86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICBvbkNoYW5nZT86ICh2YWx1ZTogYW55KSA9PiBhbnk7XG4gIGhlaWdodD86IHN0cmluZztcbiAgc2hvd0JvdHRvbUJvcmRlcj86IGJvb2xlYW47XG4gIGFsbG93U2VhcmNoPzogYm9vbGVhbjtcbiAgaXNQYXNzd29yZD86Ym9vbGVhbjtcbiAgdGV4dFR5cGU/OnN0cmluZztcbiAgc2VsZWN0TXVsdGlwbGVGaWxlcz86IGJvb2xlYW47XG4gIFNldGZpbGVUeXBlcz86IEVTZWxlY3RGaWxlVHlwZTtcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGNhcmQ/OiBJRHluYW1pY0NhcmQ7XG4gIGRpc3BsYXlTdHlsZT86Ym9vbGVhbjtcbiAgaG92ZXJEYXRhPzogSU92ZXJsYXlQYW5lbERhdGE7XG4gIG9wZW5Jbk5ld1RhYj86IGJvb2xlYW47XG59XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlLXVpLXRvb2xraXQvc3JjL2xpYi9tb2RlbHMvZm9ybS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrTkEsTUFBTSxDQUFOLElBQVksZUFNWDtBQU5ELFdBQVksZUFBZTtJQUN6QixrQ0FBZSxDQUFBO0lBQ2YsNERBQXlDLENBQUE7SUFDekMseUNBQXNCLENBQUE7SUFDdEIsK0JBQVksQ0FBQTtJQUNaLCtCQUFZLENBQUE7QUFDZCxDQUFDLEVBTlcsZUFBZSxLQUFmLGVBQWUsUUFNMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQVlYO0FBWkQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLHFDQUF1QixDQUFBO0lBQ3ZCLHFDQUF1QixDQUFBO0lBQ3ZCLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLGlDQUFtQixDQUFBO0lBQ25CLDZCQUFlLENBQUE7SUFDZiw2QkFBZSxDQUFBO0lBQ2YsdUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQVpXLFVBQVUsS0FBVixVQUFVLFFBWXJCO0FBRUQsTUFBTSxDQUFOLElBQVksWUEyQlg7QUEzQkQsV0FBWSxZQUFZO0lBQ3RCLGlDQUFpQixDQUFBO0lBQ2pCLCtCQUFlLENBQUE7SUFDZiwrQkFBZSxDQUFBO0lBQ2YscUNBQXFCLENBQUE7SUFDckIscUNBQXFCLENBQUE7SUFDckIscUNBQXFCLENBQUE7SUFDckIsa0NBQWtCLENBQUE7SUFDbEIsNENBQTRCLENBQUE7SUFDNUIsc0NBQXNCLENBQUE7SUFDdEIsdUNBQXVCLENBQUE7SUFDdkIsNkNBQTZCLENBQUE7SUFDN0IseUNBQXlCLENBQUE7SUFDekIsdUNBQXVCLENBQUE7SUFDdkIscUNBQXFCLENBQUE7SUFDckIsNkNBQTZCLENBQUE7SUFDN0IsaUNBQWlCLENBQUE7SUFDakIsaURBQWlDLENBQUE7SUFDakMsMkNBQTJCLENBQUE7SUFDM0IsNkJBQWEsQ0FBQTtJQUNiLDZDQUE2QixDQUFBO0lBQzdCLHlDQUF5QixDQUFBO0lBQ3pCLHlDQUF5QixDQUFBO0lBQ3pCLGlDQUFpQixDQUFBO0lBQ2pCLGlDQUFpQixDQUFBO0lBQ2pCLDhDQUE0QixDQUFBO0lBQzVCLHVDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUEzQlcsWUFBWSxLQUFaLFlBQVksUUEyQnZCO0FBRUQsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQix3QkFBVyxDQUFBO0lBQ1gsc0JBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQUVELE1BQU0sQ0FBTixJQUFZLFVBa0JYO0FBbEJELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6QixtQ0FBb0IsQ0FBQTtJQUNwQix1QkFBUyxDQUFBO0lBQ1QsbUNBQXFCLENBQUE7SUFDckIscUNBQXVCLENBQUE7SUFDdkIsNkJBQWUsQ0FBQTtJQUNmLHFDQUF1QixDQUFBO0lBQ3ZCLHlDQUEwQixDQUFBO0lBQzFCLHVCQUFTLENBQUE7SUFDVCwrQkFBaUIsQ0FBQTtJQUNqQix1Q0FBeUIsQ0FBQTtJQUN6Qix5QkFBVyxDQUFBO0lBQ1gsdUJBQVMsQ0FBQTtJQUNULDZCQUFlLENBQUE7SUFDZixxQ0FBdUIsQ0FBQTtJQUN2Qix5QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQWxCVyxVQUFVLEtBQVYsVUFBVSxRQWtCckI7QUFpQ0QsTUFBTSxDQUFOLElBQVksV0FZWDtBQVpELFdBQVksV0FBVztJQUNyQixtQ0FBb0IsQ0FBQTtJQUNwQixxQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBc0IsQ0FBQTtJQUN0QixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBZSxDQUFBO0lBQ2Ysd0NBQXlCLENBQUE7SUFDekIsZ0NBQWlCLENBQUE7SUFDakIsb0NBQXFCLENBQUE7SUFDckIsa0NBQW1CLENBQUE7SUFDbkIsa0NBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVpXLFdBQVcsS0FBWCxXQUFXLFFBWXRCO0FBYUQsTUFBTSxDQUFOLElBQVksVUFPWDtBQVBELFdBQVksVUFBVTtJQUNwQiw4QkFBZ0IsQ0FBQTtJQUNoQiw0QkFBYyxDQUFBO0lBQ2QsZ0NBQWtCLENBQUE7SUFDbEIsMEJBQVksQ0FBQTtJQUNaLGdDQUFrQixDQUFBO0lBQ2xCLGdDQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFQVyxVQUFVLEtBQVYsVUFBVSxRQU9yQjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsMEJBQVcsQ0FBQTtJQUNYLDhCQUFlLENBQUE7SUFDZiwyQkFBWSxDQUFBO0lBQ1osMEJBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElHcmlkU29ydCwgSU92ZXJsYXlQYW5lbERhdGEsIElTZWxlY3RJdGVtIH0gZnJvbSAnLi9ncmlkLm1vZGVsJztcbmltcG9ydCB7IElQZXJtaXNzaW9uIH0gZnJvbSAnLi91c2VyLWluZm8ubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRm9ybSB7XG4gIGZvcm1TZWN0aW9ucz86IElGb3JtU2VjdGlvbltdO1xuICBjb2x1bW4/OiBudW1iZXI7XG4gIHBlcm1pc3Npb25zPzogSVBlcm1pc3Npb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFiZWwge1xuICBuYW1lOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbGFiZWxDb250cm9sPzogSUZvcm1GaWVsZDtcbiAgb25SZXR1cm4/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURyb3BEb3duUmVxdWVzdCB7XG4gIHVuaXF1ZUtleTogc3RyaW5nLFxuICB2YWx1ZVByb3A6IHN0cmluZyxcbiAgbGFiZWxQcm9wOiBzdHJpbmcsXG4gIGZpbHRlcnM/OiBJU2V0RmlsdGVyW11cbiAgc29ydHM/OklHcmlkU29ydFtdIFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBdXRvQ29tcGxldGVTYXZlIHtcbiAgbmFtZTpzdHJpbmcsXG4gIHZhbHVlczpJQXV0b0NvbXBsZXRlVmFsdWVTYXZlW10sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dG9Db21wbGV0ZVZhbHVlU2F2ZXtcbiAgbmFtZTpzdHJpbmcsXG4gIHZhbHVlPzphbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2V0RmlsdGVyIHtcbiAgZmllbGQ/OiBzdHJpbmcsXG4gIHZhbHVlPzogYW55LFxuICBtYXRjaE1vZGU/OiBzdHJpbmcsXG4gIG9wZXJhdG9yPzogc3RyaW5nLFxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2VjdGlvbiB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZpZWxkcz86IElGb3JtRmllbGRbXTtcbiAgaWNvbj86IHN0cmluZztcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGxpbmtzPzogSUxhYmVsW107XG4gIGhlYWRlckZpZWxkcz86IElGb3JtRmllbGRbXTtcbiAgcGVybWlzc2lvbnM/OiBJUGVybWlzc2lvbltdO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBhY2NvcmRpb25EaXNhYmxlZD86IGJvb2xlYW47XG4gIHNob3dBY2NvcmRpb24/OiBib29sZWFuO1xuICBleHBhbmRlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRUZXh0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUZpZWxkIHtcbiAgbGFiZWw/OiBzdHJpbmcgfCBJTGFiZWw7XG4gIGNsYXNzPzogc3RyaW5nO1xuICBjYXJkPzogSUR5bmFtaWNDYXJkO1xuICBjb250cm9sPzogRUZvcm1Db250cm9sO1xuICBmaWVsZD86IHN0cmluZztcbiAgZGlzcGxheUZpZWxkPzogc3RyaW5nO1xuICBzaG93T3B0aW9uPzogYm9vbGVhbjtcbiAgdmFsdWU/OiBhbnkgfCBJTG9va3VwSW5wdXRWYWx1ZTtcbiAgZGF0YT86IGFueVtdO1xuICB2YWxpZGF0aW9ucz86IElWYWxpZGF0aW9uW107XG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgbWludXRlc0ludGVydmFsPzogbnVtYmVyO1xuICBpZD86IHN0cmluZztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGRpc2FibGVkVGV4dD86IGJvb2xlYW47XG4gIGxvb2t1cENvbnRyb2w/OiBJTG9va3VwQ29udHJvbEZpZWxkO1xuICB0YWJsZXM/OiBzdHJpbmdbXTtcbiAgY29tcG9uZW50Q29udHJvbD86IElGb3JtQ29tcG9uZW50RmllbGQ7XG4gIGNvbHVtbj86IG51bWJlcjtcbiAgcm93PzogbnVtYmVyO1xuICBoeXBlcmxpbms/OiBJSHlwZXJsaW5rO1xuICBmb3JtYXQ/OiBJRm9ybWF0O1xuICBwZXJtaXNzaW9ucz86IElQZXJtaXNzaW9uW107XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIG9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBvcHRpb25WYWx1ZT86IHN0cmluZztcbiAgc2F2ZUFzU3RyaW5nPzogYm9vbGVhbjtcbiAgc2hvd0FsbFZhbHVlPzogYm9vbGVhbjtcbiAgb25DbGljaz86ICh2YWx1ZT86IGFueSkgPT4gYW55O1xuICBvblJldHVybj86ICh2YWx1ZT86IGFueSwgc2VsZWN0ZWRSb3c/OiBhbnkpID0+IHZvaWQ7XG4gIG9uRm9jdXNPdXQ/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgb25DaGFuZ2U/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBpc3ZhbGlkPzogYm9vbGVhbjtcbiAgdGltZU9ubHk/OiBib29sZWFuXG4gIG1vbnRoT25seT86IGJvb2xlYW47XG4gIHNob3dUaW1lPzogYm9vbGVhbjsgLy8gdG8gc2hvdyB0aW1lIGFzIHdlbGwgaW4gY2FsZW5kYXIgZm9ybSBmaWVsZFxuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG4gIHJlcXVpcmVkRmllbGQ/OiBib29sZWFuO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG4gIHNob3dCb3R0b21Cb3JkZXI/OiBib29sZWFuO1xuICBhbGxvd1NlYXJjaD86IGJvb2xlYW47XG4gIGlzUGFzc3dvcmQ/OmJvb2xlYW5cbiAgdGV4dFR5cGU/OnN0cmluZztcbiAgc2VsZWN0TXVsdGlwbGVGaWxlcz86IGJvb2xlYW47XG4gIFNldGZpbGVUeXBlcz86IEVTZWxlY3RGaWxlVHlwZTtcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHVuaXF1ZUtleT86IHN0cmluZztcbiAgYXp1cmVDb250YWluZXI/OiBzdHJpbmc7XG4gIHBhdGhTeXN0ZW1Db25maWc/OiBzdHJpbmc7XG4gIGRpc3BsYXlTdHlsZT86Ym9vbGVhbjtcbiAgaG92ZXJEYXRhPzogSU92ZXJsYXlQYW5lbERhdGE7XG4gIG9wZW5Jbk5ld1RhYj86IGJvb2xlYW47XG4gIGlzQXp1cmVVcGxvYWQ/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUJ1dHRvbntcbiAgaWNvbj86c3RyaW5nO1xuICBsYWJlbDpzdHJpbmc7XG4gIGhpZGRlbj86Ym9vbGVhbjtcbiAgZnVuYzpGdW5jdGlvbjtcbiAgZGlzYWJsZWQ/OmJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIElEeW5hbWljQ2FyZCB7XG4gIGlkPzogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBkYXRhPzogYW55W107XG4gIG9yZGVyQnlGaWVsZD86IHN0cmluZztcbiAgZm9ybVNlY3Rpb25zPzogSUZvcm1TZWN0aW9uW107XG4gIG9uU29ydD86ICh2YWx1ZTogYW55KSA9PiBhbnk7XG4gIGNvbnRhaW5lck5hbWU/OiBzdHJpbmc7XG4gIGFsbG93RGVsZXRlPzogYm9vbGVhbjtcbiAgYWxsb3dEb3dubG9hZD86IGJvb2xlYW47XG4gIHVybD86IHN0cmluZztcbiAgY2FwdGlvbj86IHN0cmluZztcbiAgd2lkdGg/OiBzdHJpbmc7XG4gIGhlaWdodD86IHN0cmluZztcbiAgYWxsb3dFZGl0YWJsZUNhcHRpb24/OiBib29sZWFuO1xuICBvbkNhcHRpb25TYXZlPzogKHZhbHVlOiBhbnkpID0+IGFueTtcbiAgb25EZWxldGU/OiAodmFsdWU6IGFueSkgPT4gYW55O1xuICBjbGFzcz86IHN0cmluZztcbiAgY2FyZEluZm8/OiBJVmlld0NhcmRQcm9wO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElWaWV3Q2FyZFByb3Age1xuICB1cmw/OiBzdHJpbmc7XG4gIGNhcHRpb24/OiBzdHJpbmc7XG4gIGV4dGVuc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVwb3J0QnRue1xuICByZXBvcnRJZD86IG51bWJlcjtcbiAgdW5pcXVlS2V5Pzogc3RyaW5nO1xuICByZXBvcnROYW1lPzogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgY29udHJvbD86IEVGb3JtQ29udHJvbC5SRVBPUlQ7XG4gIHBhcmFtcz86IGFueVtdO1xuICBzaG93RGlhbG9nPzogYm9vbGVhbjtcbiAgcmVwb3J0SGVhZGVyPzogc3RyaW5nO1xuICByZXBvcnRGb290ZXI/OiBzdHJpbmc7XG4gIHJlcG9ydFR5cGU/OiBJUmVwb3J0VHlwZTtcbiAgaWNvbj86IHN0cmluZztcbiAgY2xhc3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpc3RGaWx0ZXIge1xuICB1bmlxdWVLZXk6IHN0cmluZztcbiAgZmlsdGVycz86IElTZXRGaWx0ZXJbXTtcbiAgc29ydHM/OiBJR3JpZFNvcnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUNvbXBvbmVudEZpZWxkIHtcbiAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gIGlkPzpzdHJpbmc7XG4gIGRhdGE/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuICBoYW5kbGVycz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBGdW5jdGlvbjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTG9va3VwSW5wdXRWYWx1ZSB7XG4gIHRleHQ6IGFueTtcbiAgdmFsdWU6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTG9va3VwQ29udHJvbEZpZWxkIHtcbiAgY29tcG9uZW50OiBhbnk7XG4gIGRhdGE6IElMb29rdXBGaWVsZERhdGE7XG4gIGlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIElMb29rdXBGaWVsZERhdGEgPSB7XG4gIGhlYWRlcj86IHN0cmluZztcbiAgaGVpZ2h0Pzogc3RyaW5nO1xuICB3aWR0aD86IHN0cmluZztcbiAgZGF0YT86IHtba2V5OiBzdHJpbmddOiBhbnl9O1xuICBsYWJlbFByb3A/OiBzdHJpbmc7XG4gIHZhbHVlUHJvcD86IHN0cmluZztcbn0gXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZhbGlkYXRpb24ge1xuICB0eXBlOiBFVmFsaWRhdG9yO1xuICBleHByZXNzaW9uPzogYW55O1xufVxuXG5leHBvcnQgZW51bSBFU2VsZWN0RmlsZVR5cGUge1xuICBFWENFTCA9ICcueGxzeCcsXG4gIElNQUdFID0gJy5pbWFnZSwgLmpwZywgLnBuZywgLmpwZWcsIC5naWYnLFxuICBET0NVTUVOVCA9ICcuZG9jdW1lbnQnLFxuICBQREYgPSAnLnBkZicsXG4gIE1SVCA9ICcubXJ0Jyxcbn1cblxuZXhwb3J0IGVudW0gRVZhbGlkYXRvciB7XG4gIFJFUVVJUkVEID0gJ3JlcXVpcmVkJyxcbiAgTUlOTEVOR1RIID0gJ21pbmxlbmd0aCcsXG4gIE1BWExFTkdUSCA9ICdtYXhsZW5ndGgnLFxuICBQQVRURVJOID0gJ3BhdHRlcm4nLFxuICBNSU5JTVVNID0gJ21pbmltdW0nLFxuICBNQVhJTVVNID0gJ21heGltdW0nLFxuICBOVU1FUklDID0gJ251bWVyaWMnLFxuICBERUNJTUFMID0gJ2RlY2ltYWwnLFxuICBFTUFJTCA9ICdlbWFpbCcsXG4gIFBIT05FID0gJ3Bob25lJyxcbiAgTUFYT1BUSU9OUz0nbWF4T3B0aW9ucydcbn1cblxuZXhwb3J0IGVudW0gRUZvcm1Db250cm9sIHtcbiAgQlVUVE9OID0gJ2J1dHRvbicsXG4gIExBQkVMID0gJ2xhYmVsJyxcbiAgSU5QVVQgPSAnaW5wdXQnLFxuICBDSEVDS0JPWCA9ICdjaGVja2JveCcsXG4gIERST1BET1dOID0gJ2Ryb3Bkb3duJyxcbiAgQ0FMRU5EQVIgPSAnY2FsZW5kYXInLFxuICBOVU1FUklDID0gJ251bWJlcicsXG4gIE1VTFRJU0VMRUNUID0gJ211bHRpLXNlbGVjdCcsXG4gIFRFWFRBUkVBID0gJ3RleHQtYXJlYScsXG4gIEhZUEVSTElOSyA9ICdoeXBlcmxpbmsnLFxuICBMT09LVVBfSU5QVVQgPSAnbG9va3VwX2lucHV0JyxcbiAgTk9URV9GSUVMRCA9ICdub3RlX2ZpZWxkJyxcbiAgQ09NUE9ORU5UID0gJ2NvbXBvbmVudCcsXG4gIFBBU1NXT1JEID0gJ3Bhc3N3b3JkJyxcbiAgQVVUT0NPTVBMRVRFID0gJ0F1dG9Db21wbGV0ZScsXG4gIFNQQUNFUiA9ICdzcGFjZXInLFxuICBTRUNUSU9OX0hFQURFUiA9ICdzZWN0aW9uX2hlYWRlcicsXG4gIEZJTEVfVVBMT0FEID0gJ2ZpbGVfdXBsb2FkJyxcbiAgQ0FSRCA9ICdjYXJkJyxcbiAgRElTUExBWV9GSUxFID0gJ2Rpc3BsYXlfZmlsZScsXG4gIEFERF9CVVRUT04gPSAnYWRkX2J1dHRvbicsXG4gIEJSRUFLX0xJTkUgPSAnYnJlYWtfbGluZScsXG4gIFNXSVRDSCA9ICdzd2l0Y2gnLFxuICBSRVBPUlQgPSAncmVwb3J0JyxcbiAgU0VMRUNUQlVUVE9OPSdzZWxlY3RfYnV0dG9uJywgXG4gIEhPVkVSREFUQSA9ICdob3ZlckRhdGEnXG59XG5cbmV4cG9ydCBlbnVtIEVPcGVyYXRvciB7XG4gIEFORCA9ICdhbmQnLFxuICBPUiA9ICdvcicsXG59XG5cbmV4cG9ydCBlbnVtIEVNYXRjaE1vZGUge1xuICBFUVVBTFMgPSAnZXF1YWxzJyxcbiAgU1RBUlRTV0lUSCA9ICdzdGFydHNXaXRoJyxcbiAgQ09OVEFJTlMgPSdjb250YWlucycsXG4gIElOID0gJ2luJyxcbiAgRU5EU1dJVEggPSAnZW5kc1dpdGgnLFxuICBOT1RFUVVBTFMgPSAnbm90RXF1YWxzJyxcbiAgSVNOT1QgPSAnaXNOb3QnLFxuICBEQVRFSVNOT1QgPSAnZGF0ZUlzTm90JyxcbiAgTk9UQ09OVEFJTlMgPSdub3RDb250YWlucycsXG4gIExUID0gJ2x0JyxcbiAgQkVGT1JFID0gJ2JlZm9yZScsXG4gIERBVEVCRUZPUkUgPSAnZGF0ZUJlZm9yZScsXG4gIExURSA9ICdsdGUnLFxuICBHVCA9ICdndCcsXG4gIEFGVEVSID0gJ2FmdGVyJyxcbiAgREFURUFGVEVSID0gJ2RhdGVBZnRlcicsXG4gIEdURSA9ICdndGUnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtYXQge1xuICB0eXBlOiBFRm9ybWF0VHlwZTtcbiAgZm9ybWF0UGFyYW1zPzpcbiAgICB8IElGb3JtYXRQYXJhbVxuICAgIHwgSURhdGVGb3JtYXRQYXJhbVxuICAgIHwgSU51bWJlckZvcm1hdFBhcmFtXG4gICAgfCBJYWxsb3dDYWxjdWxhdGVGb3JtYXRQYXJhbVxuICAgIHwgSUN1cnJlbmN5Rm9ybWF0UGFyYW07XG4gIGZvcm1hdHRlcj86ICh2YWx1ZTogYW55KSA9PiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdFBhcmFtIHtcbiAgbG9jYWxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlRm9ybWF0UGFyYW0gZXh0ZW5kcyBJRm9ybWF0UGFyYW0ge1xuICBmb3JtYXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWFsbG93Q2FsY3VsYXRlRm9ybWF0UGFyYW0gZXh0ZW5kcyBJRm9ybWF0UGFyYW0ge1xuICBhbGxvd0NhbGN1bGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU51bWJlckZvcm1hdFBhcmFtIGV4dGVuZHMgSUZvcm1hdFBhcmFtIHtcbiAgZGlnaXRzSW5mbz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ3VycmVuY3lGb3JtYXRQYXJhbSBleHRlbmRzIElOdW1iZXJGb3JtYXRQYXJhbSB7XG4gIGN1cnJlbmN5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEVGb3JtYXRUeXBlIHtcbiAgU01BTExEQVRFID0gJ21tL2QveScsXG4gIFNIT1JUREFURSA9ICdtbS9kZC95eScsXG4gIE1FRElVTURBVEUgPSAnTSBkLCB5eScsXG4gIExPTkdEQVRFID0gJ01NIGQsIHl5JyxcbiAgTU9OVEhPTkxZID0gJ21tL3l5JyxcbiAgUEVSSU9EID0gJ21tL3knLFxuICBCT09MRUFOX1lOID0gJ0JPT0xFQU5fWU4nLFxuICBDVVNUT00gPSAnY3VzdG9tJyxcbiAgQ1VSUkVOQ1kgPSAnY3VycmVuY3knLFxuICBQRVJDRU5UID0gJ3BlcmNlbnQnLFxuICBERUNJTUFMID0gJ2RlY2ltYWwnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIeXBlcmxpbmsge1xuICB0YXJnZXQ/OiBFSHlwZXJsaW5rO1xuICBsaW5rPzogc3RyaW5nO1xuICBsaW5rSWQ/OiBzdHJpbmc7XG4gIHBhcmFtcz86IGFueTtcbiAgd2lkdGg/OnN0cmluZztcbiAgaGVpZ2h0PzpzdHJpbmc7XG4gIGNvbXBvbmVudD86IGFueTtcbiAgZGF0YT86IElMb29rdXBGaWVsZERhdGE7XG59XG5cbmV4cG9ydCBlbnVtIEVIeXBlcmxpbmsge1xuICBCTEFOSyA9ICdfYmxhbmsnLFxuICBTRUxGID0gJ19zZWxmJyxcbiAgUEFSRU5UID0gJ19wYXJlbnQnLFxuICBUT1AgPSAnX3RvcCcsXG4gIElGUkFNRSA9ICdfaWZyYW1lJyxcbiAgRElBTE9HID0gJ19kaWFsb2cnXG59XG5cbmV4cG9ydCBlbnVtIElSZXBvcnRUeXBlIHtcbiAgUERGID0gJ3BkZicsXG4gIEVYQ0VMID0gJ2V4Y2VsJyxcbiAgVEVYVCA9ICd0eHQnLFxuICBDU1YgPSAnY3N2J1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZEZvcm1GaWVsZCB7XG4gIGNvbnRyb2w/OiBFRm9ybUNvbnRyb2w7XG4gIGZpZWxkPzogc3RyaW5nO1xuICBjbGFzcz86IHN0cmluZztcbiAgZGlzcGxheUZpZWxkPzogc3RyaW5nO1xuICBzaG93T3B0aW9uPzogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmcgfCBJTGFiZWw7XG4gIHZhbHVlPzogc3RyaW5nIHwgYW55O1xuICBmb3JtYXQ/OiBJRm9ybWF0O1xuICBwZXJtaXNzaW9ucz86IElQZXJtaXNzaW9uW107XG4gIGlkPzogc3RyaW5nO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICB2YWxpZGF0aW9ucz86IElWYWxpZGF0aW9uW10gfCBhbnk7XG4gIGh5cGVybGluaz86IElIeXBlcmxpbms7XG4gIGxvb2t1cENvbnRyb2w/OiBJTG9va3VwQ29udHJvbEZpZWxkO1xuICB0YWJsZXM/OiBzdHJpbmdbXTtcbiAgbWludXRlc0ludGVydmFsPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW4gfCBhbnk7XG4gIGRpc2FibGVkVGV4dD86IGJvb2xlYW47XG4gIGNvbHVtbj86IG51bWJlcjtcbiAgcm93PzogbnVtYmVyO1xuICBjb21wb25lbnRDb250cm9sPzogSUZvcm1Db21wb25lbnRGaWVsZDtcbiAgZGF0YT86IElTZWxlY3RJdGVtW107XG4gIG9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBvcHRpb25WYWx1ZT86IHN0cmluZztcbiAgdGltZU9ubHk/OiBib29sZWFuO1xuICBtb250aE9ubHk/OiBib29sZWFuO1xuICBtaW5EYXRlPzogRGF0ZTtcbiAgbWF4RGF0ZT86IERhdGU7XG4gIHNob3dUaW1lPzogYm9vbGVhbjsgLy8gdG8gc2hvdyB0aW1lIGFzIHdlbGwgaW4gY2FsZW5kYXIgZm9ybSBmaWVsZFxuICBzYXZlQXNTdHJpbmc/OiBib29sZWFuO1xuICBzaG93QWxsVmFsdWU/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKHZhbHVlPzogYW55KSA9PiBhbnk7XG4gIG9uUmV0dXJuPzogKHZhbHVlPzogYW55LCBzZWxlY3RlZFJvdz86YW55KSA9PiB2b2lkO1xuICBvbkZvY3VzT3V0PzogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gIG9uQ2hhbmdlPzogKHZhbHVlOiBhbnkpID0+IGFueTtcbiAgaGVpZ2h0Pzogc3RyaW5nO1xuICBzaG93Qm90dG9tQm9yZGVyPzogYm9vbGVhbjtcbiAgYWxsb3dTZWFyY2g/OiBib29sZWFuO1xuICBpc1Bhc3N3b3JkPzpib29sZWFuO1xuICB0ZXh0VHlwZT86c3RyaW5nO1xuICBzZWxlY3RNdWx0aXBsZUZpbGVzPzogYm9vbGVhbjtcbiAgU2V0ZmlsZVR5cGVzPzogRVNlbGVjdEZpbGVUeXBlO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgY2FyZD86IElEeW5hbWljQ2FyZDtcbiAgZGlzcGxheVN0eWxlPzpib29sZWFuO1xuICBob3ZlckRhdGE/OiBJT3ZlcmxheVBhbmVsRGF0YTtcbiAgb3BlbkluTmV3VGFiPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -18,40 +18,37 @@ export class ReportService {
18
18
  this.formFields = [];
19
19
  this.paramsCopy = [];
20
20
  }
21
- downloadReport(repId = '', params, showDialog = false, reportType, reportHeader = '', reportFooter = '', form = {}) {
21
+ downloadReport(uniqueKey = '', params, showDialog = false, reportType, reportHeader = '', reportFooter = '', form = {}) {
22
22
  params?.forEach((p) => {
23
23
  this.paramsCopy.push(Object.assign({}, p));
24
24
  });
25
- this.createDynamicFields(repId, params, showDialog, reportType, reportHeader, reportFooter, form);
25
+ this.createDynamicFields(uniqueKey, params, showDialog, reportType, reportHeader, reportFooter, form);
26
26
  }
27
- createDynamicFields(repId, params, showDialog, reportType, reportHeader, reportFooter, form) {
27
+ createDynamicFields(uniqueKey, params, showDialog, reportType, reportHeader, reportFooter, form) {
28
28
  let reportJson;
29
29
  let reportName;
30
30
  let reportUniqueKey = '';
31
- const getReportByReport = '/ReportConfig/Report';
32
- const getReportById = '/ReportConfig/ById';
33
- const getReportByIdOrName = typeof (repId) === 'number' ? getReportById : getReportByReport;
34
31
  this.requestService
35
- .getOne(getReportByIdOrName, repId)
32
+ .getOne('/ReportConfig/Report', uniqueKey)
36
33
  .subscribe((data) => {
37
34
  if (data) {
38
35
  reportJson = JSON.parse(data?.report);
39
36
  reportType = reportType ? reportType : reportJson?.reportType ? reportJson?.reportType : IReportType.PDF;
40
- reportName = data.name ? data.name : EGridExcel.EXPORT;
37
+ reportName = data.uniqueKey ? data.uniqueKey : EGridExcel.EXPORT;
41
38
  reportUniqueKey = data?.uniqueKey;
42
39
  this.formFields = reportJson?.FormFields;
43
- this.generateReport(repId, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
40
+ this.generateReport(uniqueKey, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
44
41
  }
45
42
  }, (error) => {
46
43
  this.alertService.error(error);
47
44
  });
48
45
  }
49
- downloadCustomReport(dataSource, reportType, reportName = '', params, reportUniqueKey = '') {
46
+ downloadCustomReport(dataSource, reportType, selectedUniqueKey = '', params, reportUniqueKey = '') {
50
47
  dataSource.forEach((uniqueKey) => {
51
- this.getReportData(uniqueKey.datasource, reportType, reportName, params, reportUniqueKey);
48
+ this.getReportData(uniqueKey.datasource, reportType, selectedUniqueKey, params, reportUniqueKey);
52
49
  });
53
50
  }
54
- generateReport(repId, params, showDialog = false, reportType, reportName, reportHeader, reportFooter, form = {}, reportJsonData, reportUniqueKey = '') {
51
+ generateReport(uniqueKey, params, showDialog = false, reportType, selectedUniqueKey, reportHeader, reportFooter, form = {}, reportJsonData, reportUniqueKey = '') {
55
52
  this.getFormFieldValues(form, params);
56
53
  if ((this.formFields.some((field) => !field.hidden) &&
57
54
  showDialog === undefined) ||
@@ -62,7 +59,7 @@ export class ReportService {
62
59
  header: 'Generate Report',
63
60
  style: { background: '#fff' },
64
61
  styleClass: 'report-dialog',
65
- data: { getReport: repId, param: params, showDialog, reportJsonData, reportType, reportHeader, reportFooter, reportName, uniqueKey: reportUniqueKey },
62
+ data: { getReport: uniqueKey, param: params, showDialog, reportJsonData, reportType, reportHeader, reportFooter, reportName: selectedUniqueKey, uniqueKey: reportUniqueKey },
66
63
  });
67
64
  const dialogRef = this.dialogService.dialogComponentRefMap.get(ref);
68
65
  const component = dialogRef?.instance;
@@ -71,14 +68,14 @@ export class ReportService {
71
68
  }
72
69
  else {
73
70
  if (reportType === IReportType.EXCEL || reportType === IReportType.TEXT || reportType === IReportType.CSV) {
74
- this.downloadCustomReport(reportJsonData, reportType, reportName, params, reportUniqueKey);
71
+ this.downloadCustomReport(reportJsonData, reportType, selectedUniqueKey, params, reportUniqueKey);
75
72
  }
76
73
  else {
77
- this.downloadQuickReport(params, repId, reportHeader, reportFooter);
74
+ this.downloadQuickReport(params, uniqueKey, reportHeader, reportFooter);
78
75
  }
79
76
  }
80
77
  }
81
- getReportData(uniqueKeyValue, reportType, reportName, params, reportUniqueKey = '') {
78
+ getReportData(uniqueKeyValue, reportType, uniqueKey, params, reportUniqueKey = '') {
82
79
  let filters = [];
83
80
  if (params && params.length > 0) {
84
81
  params.forEach((param) => {
@@ -102,13 +99,13 @@ export class ReportService {
102
99
  if (reportType === IReportType.EXCEL) {
103
100
  const isGridExcelData = false;
104
101
  const columns = rowsInfo.length > 0 ? Object?.keys(response?.tables[0]?.records[0]) : [];
105
- this.gridService.exportExcel(rowsInfo, columns, reportName, isGridExcelData);
102
+ this.gridService.exportExcel(rowsInfo, columns, uniqueKey, isGridExcelData);
106
103
  }
107
104
  else if (reportType === IReportType.TEXT) {
108
- this.saveAsTextFile(rowsInfo, reportName);
105
+ this.saveAsTextFile(rowsInfo, uniqueKey);
109
106
  }
110
107
  else {
111
- this.saveAsCsvFile(rowsInfo, reportName);
108
+ this.saveAsCsvFile(rowsInfo, uniqueKey);
112
109
  }
113
110
  });
114
111
  }
@@ -126,14 +123,14 @@ export class ReportService {
126
123
  /**
127
124
  * Export to text (sub-method)
128
125
  */
129
- saveAsTextFile(rowsInfo, reportName) {
130
- this.gridService.saveAsTextFile(rowsInfo, reportName);
126
+ saveAsTextFile(rowsInfo, uniqueKey) {
127
+ this.gridService.saveAsTextFile(rowsInfo, uniqueKey);
131
128
  }
132
129
  /**
133
130
  * Export to CSV (sub-method)
134
131
  */
135
- saveAsCsvFile(rowsInfo, reportName) {
136
- this.gridService.saveDataAsCsv(rowsInfo, reportName);
132
+ saveAsCsvFile(rowsInfo, uniqueKey) {
133
+ this.gridService.saveDataAsCsv(rowsInfo, uniqueKey);
137
134
  }
138
135
  getFormFieldValues(form, params) {
139
136
  if (this.paramsCopy?.length > 0) {
@@ -183,7 +180,7 @@ export class ReportService {
183
180
  });
184
181
  }
185
182
  }
186
- downloadQuickReport(params, repId, reportHeader, reportFooter) {
183
+ downloadQuickReport(params, uniqueKey, reportHeader, reportFooter) {
187
184
  let filters = [];
188
185
  let repIdObj;
189
186
  if (params && params.length > 0) {
@@ -199,12 +196,12 @@ export class ReportService {
199
196
  else {
200
197
  filters = this.getFilters();
201
198
  }
202
- if (typeof (repId) === 'number') {
203
- repIdObj = { Id: repId, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter };
204
- }
205
- else {
206
- repIdObj = { reportName: repId, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter };
207
- }
199
+ // if (typeof (repId) === 'number') {
200
+ // repIdObj = { Id: repId, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter}
201
+ // }
202
+ // else {
203
+ repIdObj = { uniqueKey: uniqueKey, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter };
204
+ //}
208
205
  this.requestService
209
206
  .download('/Report/Generate', repIdObj)
210
207
  .subscribe((response) => {
@@ -248,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
248
245
  providedIn: 'root'
249
246
  }]
250
247
  }], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.RequestService }, { type: i3.GridService }, { type: i4.AuthenticationService }, { type: i5.AlertService }]; } });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUE0QixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUl0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFNbEQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBbUIsYUFBNEIsRUFDckMsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLFlBQTBCO1FBSmpCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTnBDLGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFLb0IsQ0FBQztJQUUxQyxjQUFjLENBQUMsUUFBYSxFQUFFLEVBQUUsTUFBVyxFQUFFLGFBQXNCLEtBQUssRUFBRSxVQUFtQixFQUFFLGVBQXVCLEVBQUUsRUFBRSxlQUF1QixFQUFFLEVBQUUsT0FBcUIsRUFBRTtRQUUxSyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFD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O0lBQ04sQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNsQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2lCQUNuQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztpSUEzUFUsYUFBYTtxSUFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRm9ybUNvbnRyb2wsIElEeW5hbWljRm9ybSwgSUZvcm1GaWVsZCwgSVJlcG9ydFR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0LUZpbHRlci9yZXBvcnQtZmlsdGVyL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUdyaWRFeGNlbCB9IGZyb20gJy4uL21vZGVscy9ncmlkLm1vZGVsJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xuICBmb3JtRmllbGRzOiBJRm9ybUZpZWxkW10gPSBbXTtcbiAgcGFyYW1zQ29weTogYW55ID0gW107XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVxdWVzdFNlcnZpY2U6IFJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSwpIHsgfVxuXG4gIGRvd25sb2FkUmVwb3J0KHJlcElkOiBhbnkgPSAnJywgcGFyYW1zOiBhbnksIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZSwgcmVwb3J0VHlwZT86IHN0cmluZywgcmVwb3J0SGVhZGVyOiBzdHJpbmcgPSAnJywgcmVwb3J0Rm9vdGVyOiBzdHJpbmcgPSAnJywgZm9ybTogSUR5bmFtaWNGb3JtID0ge30pIFxuICB7XG4gICAgcGFyYW1zPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtc0NvcHkucHVzaChPYmplY3QuYXNzaWduKHt9LCBwKSk7XG4gICAgfSk7XG4gICAgdGhpcy5jcmVhdGVEeW5hbWljRmllbGRzKHJlcElkLCBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydFR5cGUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCBmb3JtKTtcbiAgfVxuXG4gIGNyZWF0ZUR5bmFtaWNGaWVsZHMocmVwSWQsIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0pIHtcbiAgICBsZXQgcmVwb3J0SnNvbjtcbiAgICBsZXQgcmVwb3J0TmFtZTtcbiAgICBsZXQgcmVwb3J0VW5pcXVlS2V5OiBzdHJpbmcgPSAnJztcblxuICAgIGNvbnN0IGdldFJlcG9ydEJ5UmVwb3J0ID0gJy9SZXBvcnRDb25maWcvUmVwb3J0JztcbiAgICBjb25zdCBnZXRSZXBvcnRCeUlkID0gJy9SZXBvcnRDb25maWcvQnlJZCc7XG4gICAgY29uc3QgZ2V0UmVwb3J0QnlJZE9yTmFtZSA9IHR5cGVvZiAocmVwSWQpID09PSAnbnVtYmVyJyA/IGdldFJlcG9ydEJ5SWQgOiBnZXRSZXBvcnRCeVJlcG9ydDtcbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlXG4gICAgICAuZ2V0T25lPFJlc3BvbnNlLCBhbnk+KGdldFJlcG9ydEJ5SWRPck5hbWUsIHJlcElkKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgIHJlcG9ydEpzb24gPSBKU09OLnBhcnNlKGRhdGE/LnJlcG9ydCk7XG4gICAgICAgICAgICAgIHJlcG9ydFR5cGUgPSByZXBvcnRUeXBlID8gcmVwb3J0VHlwZSA6IHJlcG9ydEpzb24/LnJlcG9ydFR5cGUgPyByZXBvcnRKc29uPy5yZXBvcnRUeXBlIDogSVJlcG9ydFR5cGUuUERGO1xuICAgICAgICAgICAgICByZXBvcnROYW1lID0gZGF0YS5uYW1lID8gZGF0YS5uYW1lIDogRUdyaWRFeGNlbC5FWFBPUlQ7XG4gICAgICAgICAgICAgIHJlcG9ydFVuaXF1ZUtleSA9IGRhdGE/LnVuaXF1ZUtleTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gcmVwb3J0SnNvbj8uRm9ybUZpZWxkcztcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcG9ydChyZXBJZCwgcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRUeXBlLCByZXBvcnROYW1lLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgZm9ybSwgcmVwb3J0SnNvbj8uUmVwb3J0RGF0YVNvdXJjZXMsIHJlcG9ydFVuaXF1ZUtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBkb3dubG9hZEN1c3RvbVJlcG9ydChkYXRhU291cmNlOiBhbnksIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWU6IHN0cmluZyA9ICcnLCBwYXJhbXM6IGFueSwgcmVwb3J0VW5pcXVlS2V5OiBzdHJpbmcgPSAnJykge1xuICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgodW5pcXVlS2V5KSA9PiB7XG4gICAgICB0aGlzLmdldFJlcG9ydERhdGEodW5pcXVlS2V5LmRhdGFzb3VyY2UsIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWUsIHBhcmFtcywgcmVwb3J0VW5pcXVlS2V5KTtcbiAgICB9KVxuICB9XG5cbiAgZ2VuZXJhdGVSZXBvcnQocmVwSWQ6IGFueSwgcGFyYW1zOiBhbnksIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZSwgcmVwb3J0VHlwZTogSVJlcG9ydFR5cGUsIHJlcG9ydE5hbWU6IHN0cmluZywgcmVwb3J0SGVhZGVyOiBzdHJpbmcsIHJlcG9ydEZvb3Rlcjogc3RyaW5nLCBmb3JtOiBJRHluYW1pY0Zvcm0gPSB7fSwgcmVwb3J0SnNvbkRhdGEsIHJlcG9ydFVuaXF1ZUtleSA9ICcnKSB7XG4gICAgdGhpcy5nZXRGb3JtRmllbGRWYWx1ZXMoZm9ybSwgcGFyYW1zKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5mb3JtRmllbGRzLnNvbWUoKGZpZWxkKSA9PiAhZmllbGQuaGlkZGVuKSAmJlxuICAgICAgICBzaG93RGlhbG9nID09PSB1bmRlZmluZWQpIHx8XG4gICAgICBzaG93RGlhbG9nID09PSB0cnVlXG4gICAgKSB7XG4gICAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRGaWx0ZXJDb21wb25lbnQsIHtcbiAgICAgICAgd2lkdGg6ICc1MCUnLFxuICAgICAgICBoZWlnaHQ6ICc1MCUnLFxuICAgICAgICBoZWFkZXI6ICdHZW5lcmF0ZSBSZXBvcnQnLFxuICAgICAgICBzdHlsZTogeyBiYWNrZ3JvdW5kOiAnI2ZmZicgfSxcbiAgICAgICAgc3R5bGVDbGFzczogJ3JlcG9ydC1kaWFsb2cnLFxuICAgICAgICBkYXRhOiB7IGdldFJlcG9ydDogcmVwSWQsIHBhcmFtOiBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydEpzb25EYXRhLCByZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgcmVwb3J0TmFtZSwgdW5pcXVlS2V5OiByZXBvcnRVbmlxdWVLZXl9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmdldChyZWYpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gZGlhbG9nUmVmPy5pbnN0YW5jZSBhcyBEeW5hbWljRGlhbG9nQ29tcG9uZW50O1xuICAgICAgY29uc3QgYXJpYUxhYmVsbGVkQnkgPSBjb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkoKTtcbiAgICAgIGNvbXBvbmVudC5nZXRBcmlhTGFiZWxsZWRCeSA9ICgpID0+IGFyaWFMYWJlbGxlZEJ5O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuRVhDRUwgfHwgcmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuVEVYVCB8fCByZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5DU1YpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZEN1c3RvbVJlcG9ydChyZXBvcnRKc29uRGF0YSwgcmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgcGFyYW1zLCByZXBvcnRVbmlxdWVLZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZFF1aWNrUmVwb3J0KHBhcmFtcywgcmVwSWQsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSZXBvcnREYXRhKHVuaXF1ZUtleVZhbHVlOiBhbnksIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWUsIHBhcmFtczogYW55LCByZXBvcnRVbmlxdWVLZXk6IHN0cmluZyA9ICcnKSB7XG4gICAgbGV0IGZpbHRlcnM6IGFueVtdID0gW107XG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgcGFyYW1zLmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtKS5tYXAoKGtleSkgPT5cbiAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgZmllbGQ6IGtleSxcbiAgICAgICAgICAgIG1hdGNoTW9kZTogJ2VxdWFsJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiAnYW5kJyxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJhbVtrZXldLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICAgIH1cbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldDxhbnlbXSwgYW55PignL0RhdGEvTXVsdGlGZXRjaCcsIHtcbiAgICAgIHVuaXF1ZUtleTogdW5pcXVlS2V5VmFsdWUsXG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVSZXBvcnQocmVwb3J0VW5pcXVlS2V5KVxuICAgICAgY29uc3Qgcm93c0luZm8gPSByZXNwb25zZT8udGFibGVzWzBdPy5yZWNvcmRzO1xuICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMKSB7XG4gICAgICAgIGNvbnN0IGlzR3JpZEV4Y2VsRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gcm93c0luZm8ubGVuZ3RoID4gMCA/IE9iamVjdD8ua2V5cyhyZXNwb25zZT8udGFibGVzWzBdPy5yZWNvcmRzWzBdKSA6IFtdO1xuICAgICAgICB0aGlzLmdyaWRTZXJ2aWNlLmV4cG9ydEV4Y2VsKHJvd3NJbmZvLCBjb2x1bW5zLCByZXBvcnROYW1lLCBpc0dyaWRFeGNlbERhdGEpO1xuICAgICAgfSBlbHNlIGlmIChyZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5URVhUKSB7XG4gICAgICAgIHRoaXMuc2F2ZUFzVGV4dEZpbGUocm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zYXZlQXNDc3ZGaWxlKHJvd3NJbmZvLCByZXBvcnROYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vdXBkYXRlIHJlcG9ydCBsb2dnaW5nXG4gIHVwZGF0ZVJlcG9ydCh1bmlxdWVLZXlWYWx1ZSl7XG4gICAgbGV0IGN1cnJlbnRVc2VyOiBhbnkgPSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRVc2VySW5mbygpO1xuICAgIHRoaXMucmVxdWVzdFNlcnZpY2UuZ2V0PGFueVtdLCBhbnk+KCcvUmVwb3J0Q29uZmlnL1JlcG9ydFVzZXJTZXR0aW5nJywge1xuICAgICAgaXNSdW5SZXBvcnQ6IHRydWUsXG4gICAgICBpc0Zhdm9yaXRlOiBmYWxzZSxcbiAgICAgIHJlcG9ydFVuaXF1ZUtleTogdW5pcXVlS2V5VmFsdWUsXG4gICAgICB1c2VySWQ6IGN1cnJlbnRVc2VyPy5pZCxcbiAgICAgIHJlcG9ydElkOiAwXG4gICAgfSkuc3Vic2NyaWJlKChyZXMpID0+IHt9LFxuICAgICAoeyBlcnJvciB9KSA9PiB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IHRvIHRleHQgKHN1Yi1tZXRob2QpXG4gICAqL1xuICBzYXZlQXNUZXh0RmlsZShyb3dzSW5mbzogYW55LCByZXBvcnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVBc1RleHRGaWxlKHJvd3NJbmZvLCByZXBvcnROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgdG8gQ1NWIChzdWItbWV0aG9kKVxuICAgKi9cbiAgc2F2ZUFzQ3N2RmlsZShyb3dzSW5mbzogYW55LCByZXBvcnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVEYXRhQXNDc3Yocm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICB9XG5cbiAgZ2V0Rm9ybUZpZWxkVmFsdWVzKGZvcm06IElEeW5hbWljRm9ybSwgcGFyYW1zOiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXNDb3B5Py5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnBhcmFtc0NvcHkuZm9yRWFjaCgocGFyYW1Db3B5KSA9PiB7XG4gICAgICAgIHZhciBrZXkgPSBPYmplY3Qua2V5cyhwYXJhbUNvcHkpWzBdO1xuICAgICAgICBpZiAocGFyYW1Db3B5W2tleV0gPT09ICcnIHx8ICFwYXJhbUNvcHlba2V5XSkge1xuICAgICAgICAgIGZvcm0/LmZvcm1TZWN0aW9ucz8uZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGtleS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IGZpZWxkLmZpZWxkPy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLmZvckVhY2goKG9yaWdQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdmFyIG9yaWdLZXkgPSBPYmplY3Qua2V5cyhvcmlnUGFyYW0pWzBdO1xuICAgICAgICAgICAgICAgICAgaWYgKG9yaWdLZXkgPT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jb250cm9sID09IEVGb3JtQ29udHJvbC5DQUxFTkRBUikge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlID8gZmllbGQudmFsdWUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIHBhcmFtQ29weVtrZXldLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ3snKSAmJlxuICAgICAgICAgIHBhcmFtQ29weVtrZXldLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ30nKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBwYXJhbUNvcHlba2V5XS5yZXBsYWNlKCd7JywgJycpLnJlcGxhY2UoJ30nLCAnJyk7XG4gICAgICAgICAgZm9ybT8uZm9ybVNlY3Rpb25zPy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbmV3VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZC5maWVsZD8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZm9yRWFjaCgob3JpZ1BhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICB2YXIgb3JpZ0tleSA9IE9iamVjdC5rZXlzKG9yaWdQYXJhbSlbMF07XG4gICAgICAgICAgICAgICAgICBpZiAob3JpZ0tleSA9PSBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmNvbnRyb2wgPT0gRUZvcm1Db250cm9sLkNBTEVOREFSKSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWUgPyBmaWVsZC52YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGRvd25sb2FkUXVpY2tSZXBvcnQocGFyYW1zLCByZXBJZCwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICBsZXQgcmVwSWRPYmo6IGFueTtcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbXMuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW0pLm1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgICAgdmFsdWU6IHBhcmFtW2tleV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgfVxuICAgIFxuICAgIGlmICh0eXBlb2YgKHJlcElkKSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJlcElkT2JqID0geyBJZDogcmVwSWQsIGZpbHRlcnM6IGZpbHRlcnMsIFJlcG9ydEhlYWRlcjogcmVwb3J0SGVhZGVyLCBSZXBvcnRGb290ZXI6IHJlcG9ydEZvb3Rlcn1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXBJZE9iaiA9IHsgcmVwb3J0TmFtZTogcmVwSWQsIGZpbHRlcnM6IGZpbHRlcnMsIFJlcG9ydEhlYWRlcjogcmVwb3J0SGVhZGVyLCBSZXBvcnRGb290ZXI6IHJlcG9ydEZvb3RlciB9XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZVxuICAgICAgLmRvd25sb2FkKCcvUmVwb3J0L0dlbmVyYXRlJywgcmVwSWRPYmopXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB2YXIgbmV3QmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZS5ib2R5XSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcbiAgICAgICAgICBjb25zdCBkYXRhID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3QmxvYik7XG4gICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICBhLmhyZWYgPSBkYXRhO1xuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKTtcbiAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGhlYWRlclxuICAgICAgICAgICAgPy5zcGxpdCgnZmlsZW5hbWU9Jyk/LlsxXVxuICAgICAgICAgICAgPy5zcGxpdCgnOycpWzBdXG4gICAgICAgICAgICA/LnJlcGxhY2VBbGwoL1xcXCIvZywgJycpO1xuICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hcGlFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRGaWx0ZXJzKCkge1xuICAgIGxldCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICAgIHRoaXMuZm9ybUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgaWYgKGZpZWxkICYmIGZpZWxkLnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IGZpZWxkLmZpZWxkLFxuICAgICAgICAgIG1hdGNoTW9kZTogJ2VxdWFsJyxcbiAgICAgICAgICBvcGVyYXRvcjogJ2FuZCcsXG4gICAgICAgICAgdmFsdWU6IGZpZWxkLnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmlsdGVycztcbiAgfVxufVxuIl19
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUE0QixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUl0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFNbEQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBbUIsYUFBNEIsRUFDckMsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLFlBQTBCO1FBSmpCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTnBDLGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFLb0IsQ0FBQztJQUUxQyxjQUFjLENBQUMsWUFBb0IsRUFBRSxFQUFFLE1BQVcsRUFBRSxhQUFzQixLQUFLLEVBQUUsVUFBbUIsRUFBRSxlQUF1QixFQUFFLEVBQUUsZUFBdUIsRUFBRSxFQUFFLE9BQXFCLEVBQUU7UUFFakwsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELG1CQUFtQixDQUFDLFNBQWlCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxJQUFJO1FBQ3JHLElBQUksVUFBVSxDQUFDO1FBQ2YsSUFBSSxVQUFVLENBQUM7UUFDZixJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUM7UUFFakMsSUFBSSxDQUFDLGNBQWM7YUFDaEIsTUFBTSxDQUFnQixzQkFBc0IsRUFBRSxTQUFTLENBQUM7YUFDeEQsU0FBUyxDQUNSLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDWixJQUFJLElBQUksRUFBRTtnQkFDTixVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztnQkFDekcsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7Z0JBQ2pFLGVBQWUsR0FBRyxJQUFJLEVBQUUsU0FBUyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsRUFBRSxVQUFVLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUM7YUFDaEs7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQWUsRUFBRSxVQUFVLEVBQUUsb0JBQTRCLEVBQUUsRUFBRSxNQUFXLEVBQUUsa0JBQTBCLEVBQUU7UUFDekgsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFpQixFQUFFLE1BQVcsRUFBRSxhQUFzQixLQUFLLEVBQUUsVUFBdUIsRUFBRSxpQkFBeUIsRUFBRSxZQUFvQixFQUFFLFlBQW9CLEVBQUUsT0FBcUIsRUFBRSxFQUFFLGNBQWMsRUFBRSxlQUFlLEdBQUcsRUFBRTtRQUN2TyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLElBQ0UsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzdDLFVBQVUsS0FBSyxTQUFTLENBQUM7WUFDM0IsVUFBVSxLQUFLLElBQUksRUFDbkI7WUFDQSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDekQsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtnQkFDN0IsVUFBVSxFQUFFLGVBQWU7Z0JBQzNCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFDO2FBQzVLLENBQUMsQ0FBQztZQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sU0FBUyxHQUFHLFNBQVMsRUFBRSxRQUFrQyxDQUFDO1lBQ2hFLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JELFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7U0FDcEQ7YUFBTTtZQUNMLElBQUksVUFBVSxLQUFLLFdBQVcsQ0FBQyxLQUFLLElBQUksVUFBVSxLQUFLLFdBQVcsQ0FBQyxJQUFJLElBQUksVUFBVSxLQUFLLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQzthQUNuRztpQkFBTTtnQkFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDekU7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsY0FBbUIsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQVcsRUFBRSxrQkFBMEIsRUFBRTtRQUNqRyxJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFDeEIsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsS0FBSyxFQUFFLEdBQUc7b0JBQ1YsU0FBUyxFQUFFLE9BQU87b0JBQ2xCLFFBQVEsRUFBRSxLQUFLO29CQUNmLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUNsQixDQUFDLENBQ0gsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDN0I7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBYSxrQkFBa0IsRUFBRTtZQUN0RCxTQUFTLEVBQUUsY0FBYztZQUN6QixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQTtZQUNsQyxNQUFNLFFBQVEsR0FBRyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztZQUM5QyxJQUFJLFVBQVUsS0FBSyxXQUFXLENBQUMsS0FBSyxFQUFFO2dCQUNwQyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDekYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7YUFDN0U7aUJBQU0sSUFBSSxVQUFVLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRTtnQkFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDMUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDekM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsWUFBWSxDQUFDLGNBQWM7UUFDekIsSUFBSSxXQUFXLEdBQVEsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFhLGlDQUFpQyxFQUFFO1lBQ3JFLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLGVBQWUsRUFBRSxjQUFjO1lBQy9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUN2QixRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFFLENBQUMsRUFDdkIsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsUUFBYSxFQUFFLFNBQWlCO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsUUFBYSxFQUFFLFNBQWlCO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBa0IsRUFBRSxNQUFXO1FBQ2hELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDNUMsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTt3QkFDdEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTs0QkFDL0IsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtnQ0FDL0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO29DQUMzQixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29DQUN4QyxJQUFJLE9BQU8sSUFBSSxHQUFHLEVBQUU7d0NBQ2xCLG1DQUFtQzt3Q0FDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUU7NENBQzFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt5Q0FDNUU7NkNBQU07NENBQ0wsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7eUNBQ2xDO3FDQUNGO2dDQUNILENBQUMsQ0FBQyxDQUFDOzZCQUNKO3dCQUNILENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNLElBQ0wsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQ3ZDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ3ZDO29CQUNBLElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2hFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7d0JBQ3RDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQy9CLElBQ0UsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQ2hFO2dDQUNBLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQ0FDM0IsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQ0FDeEMsSUFBSSxPQUFPLElBQUksR0FBRyxFQUFFO3dDQUNsQixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTs0Q0FDMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO3lDQUM1RTs2Q0FBTTs0Q0FDTCxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQzt5Q0FDbEM7cUNBQ0Y7Z0NBQ0gsQ0FBQyxDQUFDLENBQUM7NkJBQ0o7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVk7UUFDL0QsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksUUFBYSxDQUFDO1FBQ2xCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNYLEtBQUssRUFBRSxHQUFHO29CQUNWLFNBQVMsRUFBRSxPQUFPO29CQUNsQixRQUFRLEVBQUUsS0FBSztvQkFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDbEIsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzdCO1FBRUQscUNBQXFDO1FBQ3JDLHNHQUFzRztRQUN0RyxJQUFJO1FBQ0osU0FBUztRQUNQLFFBQVEsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQTtRQUMvRyxHQUFHO1FBRUgsSUFBSSxDQUFDLGNBQWM7YUFDaEIsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQzthQUN0QyxTQUFTLENBQ1IsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNYLElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztZQUNyRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2QsTUFBTSxNQUFNLEdBQUcsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUM3RCxNQUFNLFFBQVEsR0FBRyxNQUFNO2dCQUNyQixFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDekIsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNmLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNsQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2lCQUNuQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztpSUF4UFUsYUFBYTtxSUFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRm9ybUNvbnRyb2wsIElEeW5hbWljRm9ybSwgSUZvcm1GaWVsZCwgSVJlcG9ydFR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0LUZpbHRlci9yZXBvcnQtZmlsdGVyL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUdyaWRFeGNlbCB9IGZyb20gJy4uL21vZGVscy9ncmlkLm1vZGVsJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xuICBmb3JtRmllbGRzOiBJRm9ybUZpZWxkW10gPSBbXTtcbiAgcGFyYW1zQ29weTogYW55ID0gW107XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVxdWVzdFNlcnZpY2U6IFJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSwpIHsgfVxuXG4gIGRvd25sb2FkUmVwb3J0KHVuaXF1ZUtleTogc3RyaW5nID0gJycsIHBhcmFtczogYW55LCBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2UsIHJlcG9ydFR5cGU/OiBzdHJpbmcsIHJlcG9ydEhlYWRlcjogc3RyaW5nID0gJycsIHJlcG9ydEZvb3Rlcjogc3RyaW5nID0gJycsIGZvcm06IElEeW5hbWljRm9ybSA9IHt9KSBcbiAge1xuICAgIHBhcmFtcz8uZm9yRWFjaCgocCkgPT4ge1xuICAgICAgdGhpcy5wYXJhbXNDb3B5LnB1c2goT2JqZWN0LmFzc2lnbih7fSwgcCkpO1xuICAgIH0pO1xuICAgIHRoaXMuY3JlYXRlRHluYW1pY0ZpZWxkcyh1bmlxdWVLZXksIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0pO1xuICB9XG5cbiAgY3JlYXRlRHluYW1pY0ZpZWxkcyh1bmlxdWVLZXk6IHN0cmluZywgcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgZm9ybSkge1xuICAgIGxldCByZXBvcnRKc29uO1xuICAgIGxldCByZXBvcnROYW1lO1xuICAgIGxldCByZXBvcnRVbmlxdWVLZXk6IHN0cmluZyA9ICcnO1xuXG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZVxuICAgICAgLmdldE9uZTxSZXNwb25zZSwgYW55PignL1JlcG9ydENvbmZpZy9SZXBvcnQnLCB1bmlxdWVLZXkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgcmVwb3J0SnNvbiA9IEpTT04ucGFyc2UoZGF0YT8ucmVwb3J0KTtcbiAgICAgICAgICAgICAgcmVwb3J0VHlwZSA9IHJlcG9ydFR5cGUgPyByZXBvcnRUeXBlIDogcmVwb3J0SnNvbj8ucmVwb3J0VHlwZSA/IHJlcG9ydEpzb24/LnJlcG9ydFR5cGUgOiBJUmVwb3J0VHlwZS5QREY7XG4gICAgICAgICAgICAgIHJlcG9ydE5hbWUgPSBkYXRhLnVuaXF1ZUtleSA/IGRhdGEudW5pcXVlS2V5IDogRUdyaWRFeGNlbC5FWFBPUlQ7XG4gICAgICAgICAgICAgIHJlcG9ydFVuaXF1ZUtleSA9IGRhdGE/LnVuaXF1ZUtleTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gcmVwb3J0SnNvbj8uRm9ybUZpZWxkcztcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcG9ydCh1bmlxdWVLZXksIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0sIHJlcG9ydEpzb24/LlJlcG9ydERhdGFTb3VyY2VzLCByZXBvcnRVbmlxdWVLZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZG93bmxvYWRDdXN0b21SZXBvcnQoZGF0YVNvdXJjZTogYW55LCByZXBvcnRUeXBlLCBzZWxlY3RlZFVuaXF1ZUtleTogc3RyaW5nID0gJycsIHBhcmFtczogYW55LCByZXBvcnRVbmlxdWVLZXk6IHN0cmluZyA9ICcnKSB7XG4gICAgZGF0YVNvdXJjZS5mb3JFYWNoKCh1bmlxdWVLZXkpID0+IHtcbiAgICAgIHRoaXMuZ2V0UmVwb3J0RGF0YSh1bmlxdWVLZXkuZGF0YXNvdXJjZSwgcmVwb3J0VHlwZSwgc2VsZWN0ZWRVbmlxdWVLZXksIHBhcmFtcywgcmVwb3J0VW5pcXVlS2V5KTtcbiAgICB9KVxuICB9XG5cbiAgZ2VuZXJhdGVSZXBvcnQodW5pcXVlS2V5OiBzdHJpbmcsIHBhcmFtczogYW55LCBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2UsIHJlcG9ydFR5cGU6IElSZXBvcnRUeXBlLCBzZWxlY3RlZFVuaXF1ZUtleTogc3RyaW5nLCByZXBvcnRIZWFkZXI6IHN0cmluZywgcmVwb3J0Rm9vdGVyOiBzdHJpbmcsIGZvcm06IElEeW5hbWljRm9ybSA9IHt9LCByZXBvcnRKc29uRGF0YSwgcmVwb3J0VW5pcXVlS2V5ID0gJycpIHtcbiAgICB0aGlzLmdldEZvcm1GaWVsZFZhbHVlcyhmb3JtLCBwYXJhbXMpO1xuICAgIGlmIChcbiAgICAgICh0aGlzLmZvcm1GaWVsZHMuc29tZSgoZmllbGQpID0+ICFmaWVsZC5oaWRkZW4pICYmXG4gICAgICAgIHNob3dEaWFsb2cgPT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIHNob3dEaWFsb2cgPT09IHRydWVcbiAgICApIHtcbiAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydEZpbHRlckNvbXBvbmVudCwge1xuICAgICAgICB3aWR0aDogJzUwJScsXG4gICAgICAgIGhlaWdodDogJzUwJScsXG4gICAgICAgIGhlYWRlcjogJ0dlbmVyYXRlIFJlcG9ydCcsXG4gICAgICAgIHN0eWxlOiB7IGJhY2tncm91bmQ6ICcjZmZmJyB9LFxuICAgICAgICBzdHlsZUNsYXNzOiAncmVwb3J0LWRpYWxvZycsXG4gICAgICAgIGRhdGE6IHsgZ2V0UmVwb3J0OiB1bmlxdWVLZXksIHBhcmFtOiBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydEpzb25EYXRhLCByZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgcmVwb3J0TmFtZTogc2VsZWN0ZWRVbmlxdWVLZXksIHVuaXF1ZUtleTogcmVwb3J0VW5pcXVlS2V5fSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5nZXQocmVmKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGRpYWxvZ1JlZj8uaW5zdGFuY2UgYXMgRHluYW1pY0RpYWxvZ0NvbXBvbmVudDtcbiAgICAgIGNvbnN0IGFyaWFMYWJlbGxlZEJ5ID0gY29tcG9uZW50LmdldEFyaWFMYWJlbGxlZEJ5KCk7XG4gICAgICBjb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkgPSAoKSA9PiBhcmlhTGFiZWxsZWRCeTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMIHx8IHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLlRFWFQgfHwgcmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuQ1NWKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRDdXN0b21SZXBvcnQocmVwb3J0SnNvbkRhdGEsIHJlcG9ydFR5cGUsIHNlbGVjdGVkVW5pcXVlS2V5LCBwYXJhbXMsIHJlcG9ydFVuaXF1ZUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRvd25sb2FkUXVpY2tSZXBvcnQocGFyYW1zLCB1bmlxdWVLZXksIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSZXBvcnREYXRhKHVuaXF1ZUtleVZhbHVlOiBhbnksIHJlcG9ydFR5cGUsIHVuaXF1ZUtleSwgcGFyYW1zOiBhbnksIHJlcG9ydFVuaXF1ZUtleTogc3RyaW5nID0gJycpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbXMuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW0pLm1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgICAgdmFsdWU6IHBhcmFtW2tleV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgfVxuICAgIHRoaXMucmVxdWVzdFNlcnZpY2UuZ2V0PGFueVtdLCBhbnk+KCcvRGF0YS9NdWx0aUZldGNoJywge1xuICAgICAgdW5pcXVlS2V5OiB1bmlxdWVLZXlWYWx1ZSxcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVJlcG9ydChyZXBvcnRVbmlxdWVLZXkpXG4gICAgICBjb25zdCByb3dzSW5mbyA9IHJlc3BvbnNlPy50YWJsZXNbMF0/LnJlY29yZHM7XG4gICAgICBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuRVhDRUwpIHtcbiAgICAgICAgY29uc3QgaXNHcmlkRXhjZWxEYXRhID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSByb3dzSW5mby5sZW5ndGggPiAwID8gT2JqZWN0Py5rZXlzKHJlc3BvbnNlPy50YWJsZXNbMF0/LnJlY29yZHNbMF0pIDogW107XG4gICAgICAgIHRoaXMuZ3JpZFNlcnZpY2UuZXhwb3J0RXhjZWwocm93c0luZm8sIGNvbHVtbnMsIHVuaXF1ZUtleSwgaXNHcmlkRXhjZWxEYXRhKTtcbiAgICAgIH0gZWxzZSBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuVEVYVCkge1xuICAgICAgICB0aGlzLnNhdmVBc1RleHRGaWxlKHJvd3NJbmZvLCB1bmlxdWVLZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zYXZlQXNDc3ZGaWxlKHJvd3NJbmZvLCB1bmlxdWVLZXkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy91cGRhdGUgcmVwb3J0IGxvZ2dpbmdcbiAgdXBkYXRlUmVwb3J0KHVuaXF1ZUtleVZhbHVlKXtcbiAgICBsZXQgY3VycmVudFVzZXI6IGFueSA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFVzZXJJbmZvKCk7XG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXQ8YW55W10sIGFueT4oJy9SZXBvcnRDb25maWcvUmVwb3J0VXNlclNldHRpbmcnLCB7XG4gICAgICBpc1J1blJlcG9ydDogdHJ1ZSxcbiAgICAgIGlzRmF2b3JpdGU6IGZhbHNlLFxuICAgICAgcmVwb3J0VW5pcXVlS2V5OiB1bmlxdWVLZXlWYWx1ZSxcbiAgICAgIHVzZXJJZDogY3VycmVudFVzZXI/LmlkLFxuICAgICAgcmVwb3J0SWQ6IDBcbiAgICB9KS5zdWJzY3JpYmUoKHJlcykgPT4ge30sXG4gICAgICh7IGVycm9yIH0pID0+IHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgdG8gdGV4dCAoc3ViLW1ldGhvZClcbiAgICovXG4gIHNhdmVBc1RleHRGaWxlKHJvd3NJbmZvOiBhbnksIHVuaXF1ZUtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zYXZlQXNUZXh0RmlsZShyb3dzSW5mbywgdW5pcXVlS2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgdG8gQ1NWIChzdWItbWV0aG9kKVxuICAgKi9cbiAgc2F2ZUFzQ3N2RmlsZShyb3dzSW5mbzogYW55LCB1bmlxdWVLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2F2ZURhdGFBc0Nzdihyb3dzSW5mbywgdW5pcXVlS2V5KTtcbiAgfVxuXG4gIGdldEZvcm1GaWVsZFZhbHVlcyhmb3JtOiBJRHluYW1pY0Zvcm0sIHBhcmFtczogYW55KSB7XG4gICAgaWYgKHRoaXMucGFyYW1zQ29weT8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5wYXJhbXNDb3B5LmZvckVhY2goKHBhcmFtQ29weSkgPT4ge1xuICAgICAgICB2YXIga2V5ID0gT2JqZWN0LmtleXMocGFyYW1Db3B5KVswXTtcbiAgICAgICAgaWYgKHBhcmFtQ29weVtrZXldID09PSAnJyB8fCAhcGFyYW1Db3B5W2tleV0pIHtcbiAgICAgICAgICBmb3JtPy5mb3JtU2VjdGlvbnM/LmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChrZXkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZC5maWVsZD8udG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcy5mb3JFYWNoKChvcmlnUGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICAgIHZhciBvcmlnS2V5ID0gT2JqZWN0LmtleXMob3JpZ1BhcmFtKVswXTtcbiAgICAgICAgICAgICAgICAgIGlmIChvcmlnS2V5ID09IGtleSkge1xuICAgICAgICAgICAgICAgICAgICAvL29yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQuY29udHJvbCA9PSBFRm9ybUNvbnRyb2wuQ0FMRU5EQVIpIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZSA/IGZpZWxkLnZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBwYXJhbUNvcHlba2V5XS50b1N0cmluZygpLmluY2x1ZGVzKCd7JykgJiZcbiAgICAgICAgICBwYXJhbUNvcHlba2V5XS50b1N0cmluZygpLmluY2x1ZGVzKCd9JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIG5ld1ZhbHVlID0gcGFyYW1Db3B5W2tleV0ucmVwbGFjZSgneycsICcnKS5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgIGZvcm0/LmZvcm1TZWN0aW9ucz8uZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gZmllbGQuZmllbGQ/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLmZvckVhY2goKG9yaWdQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdmFyIG9yaWdLZXkgPSBPYmplY3Qua2V5cyhvcmlnUGFyYW0pWzBdO1xuICAgICAgICAgICAgICAgICAgaWYgKG9yaWdLZXkgPT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jb250cm9sID09IEVGb3JtQ29udHJvbC5DQUxFTkRBUikge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlID8gZmllbGQudmFsdWUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZFF1aWNrUmVwb3J0KHBhcmFtcywgdW5pcXVlS2V5LCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3Rlcikge1xuICAgIGxldCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICAgIGxldCByZXBJZE9iajogYW55O1xuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHBhcmFtcy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbSkubWFwKChrZXkpID0+XG4gICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiBrZXksXG4gICAgICAgICAgICBtYXRjaE1vZGU6ICdlcXVhbCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogJ2FuZCcsXG4gICAgICAgICAgICB2YWx1ZTogcGFyYW1ba2V5XSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgICB9XG4gICAgXG4gICAgLy8gaWYgKHR5cGVvZiAocmVwSWQpID09PSAnbnVtYmVyJykge1xuICAgIC8vICAgcmVwSWRPYmogPSB7IElkOiByZXBJZCwgZmlsdGVyczogZmlsdGVycywgUmVwb3J0SGVhZGVyOiByZXBvcnRIZWFkZXIsIFJlcG9ydEZvb3RlcjogcmVwb3J0Rm9vdGVyfVxuICAgIC8vIH1cbiAgICAvLyBlbHNlIHtcbiAgICAgIHJlcElkT2JqID0geyB1bmlxdWVLZXk6IHVuaXF1ZUtleSwgZmlsdGVyczogZmlsdGVycywgUmVwb3J0SGVhZGVyOiByZXBvcnRIZWFkZXIsIFJlcG9ydEZvb3RlcjogcmVwb3J0Rm9vdGVyIH1cbiAgICAvL31cblxuICAgIHRoaXMucmVxdWVzdFNlcnZpY2VcbiAgICAgIC5kb3dubG9hZCgnL1JlcG9ydC9HZW5lcmF0ZScsIHJlcElkT2JqKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdmFyIG5ld0Jsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2UuYm9keV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ld0Jsb2IpO1xuICAgICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgICAgYS5ocmVmID0gZGF0YTtcbiAgICAgICAgICBjb25zdCBoZWFkZXIgPSByZXNwb25zZT8uaGVhZGVycz8uZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJyk7XG4gICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBoZWFkZXJcbiAgICAgICAgICAgID8uc3BsaXQoJ2ZpbGVuYW1lPScpPy5bMV1cbiAgICAgICAgICAgID8uc3BsaXQoJzsnKVswXVxuICAgICAgICAgICAgPy5yZXBsYWNlQWxsKC9cXFwiL2csICcnKTtcbiAgICAgICAgICBhLmRvd25sb2FkID0gZmlsZU5hbWU7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYXBpRXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0RmlsdGVycygpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICB0aGlzLmZvcm1GaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBmaWVsZC5maWVsZCxcbiAgICAgICAgICBtYXRjaE1vZGU6ICdlcXVhbCcsXG4gICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgIHZhbHVlOiBmaWVsZC52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cbn1cbiJdfQ==
@@ -5871,40 +5871,37 @@ class ReportService {
5871
5871
  this.formFields = [];
5872
5872
  this.paramsCopy = [];
5873
5873
  }
5874
- downloadReport(repId = '', params, showDialog = false, reportType, reportHeader = '', reportFooter = '', form = {}) {
5874
+ downloadReport(uniqueKey = '', params, showDialog = false, reportType, reportHeader = '', reportFooter = '', form = {}) {
5875
5875
  params?.forEach((p) => {
5876
5876
  this.paramsCopy.push(Object.assign({}, p));
5877
5877
  });
5878
- this.createDynamicFields(repId, params, showDialog, reportType, reportHeader, reportFooter, form);
5878
+ this.createDynamicFields(uniqueKey, params, showDialog, reportType, reportHeader, reportFooter, form);
5879
5879
  }
5880
- createDynamicFields(repId, params, showDialog, reportType, reportHeader, reportFooter, form) {
5880
+ createDynamicFields(uniqueKey, params, showDialog, reportType, reportHeader, reportFooter, form) {
5881
5881
  let reportJson;
5882
5882
  let reportName;
5883
5883
  let reportUniqueKey = '';
5884
- const getReportByReport = '/ReportConfig/Report';
5885
- const getReportById = '/ReportConfig/ById';
5886
- const getReportByIdOrName = typeof (repId) === 'number' ? getReportById : getReportByReport;
5887
5884
  this.requestService
5888
- .getOne(getReportByIdOrName, repId)
5885
+ .getOne('/ReportConfig/Report', uniqueKey)
5889
5886
  .subscribe((data) => {
5890
5887
  if (data) {
5891
5888
  reportJson = JSON.parse(data?.report);
5892
5889
  reportType = reportType ? reportType : reportJson?.reportType ? reportJson?.reportType : IReportType.PDF;
5893
- reportName = data.name ? data.name : EGridExcel.EXPORT;
5890
+ reportName = data.uniqueKey ? data.uniqueKey : EGridExcel.EXPORT;
5894
5891
  reportUniqueKey = data?.uniqueKey;
5895
5892
  this.formFields = reportJson?.FormFields;
5896
- this.generateReport(repId, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
5893
+ this.generateReport(uniqueKey, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
5897
5894
  }
5898
5895
  }, (error) => {
5899
5896
  this.alertService.error(error);
5900
5897
  });
5901
5898
  }
5902
- downloadCustomReport(dataSource, reportType, reportName = '', params, reportUniqueKey = '') {
5899
+ downloadCustomReport(dataSource, reportType, selectedUniqueKey = '', params, reportUniqueKey = '') {
5903
5900
  dataSource.forEach((uniqueKey) => {
5904
- this.getReportData(uniqueKey.datasource, reportType, reportName, params, reportUniqueKey);
5901
+ this.getReportData(uniqueKey.datasource, reportType, selectedUniqueKey, params, reportUniqueKey);
5905
5902
  });
5906
5903
  }
5907
- generateReport(repId, params, showDialog = false, reportType, reportName, reportHeader, reportFooter, form = {}, reportJsonData, reportUniqueKey = '') {
5904
+ generateReport(uniqueKey, params, showDialog = false, reportType, selectedUniqueKey, reportHeader, reportFooter, form = {}, reportJsonData, reportUniqueKey = '') {
5908
5905
  this.getFormFieldValues(form, params);
5909
5906
  if ((this.formFields.some((field) => !field.hidden) &&
5910
5907
  showDialog === undefined) ||
@@ -5915,7 +5912,7 @@ class ReportService {
5915
5912
  header: 'Generate Report',
5916
5913
  style: { background: '#fff' },
5917
5914
  styleClass: 'report-dialog',
5918
- data: { getReport: repId, param: params, showDialog, reportJsonData, reportType, reportHeader, reportFooter, reportName, uniqueKey: reportUniqueKey },
5915
+ data: { getReport: uniqueKey, param: params, showDialog, reportJsonData, reportType, reportHeader, reportFooter, reportName: selectedUniqueKey, uniqueKey: reportUniqueKey },
5919
5916
  });
5920
5917
  const dialogRef = this.dialogService.dialogComponentRefMap.get(ref);
5921
5918
  const component = dialogRef?.instance;
@@ -5924,14 +5921,14 @@ class ReportService {
5924
5921
  }
5925
5922
  else {
5926
5923
  if (reportType === IReportType.EXCEL || reportType === IReportType.TEXT || reportType === IReportType.CSV) {
5927
- this.downloadCustomReport(reportJsonData, reportType, reportName, params, reportUniqueKey);
5924
+ this.downloadCustomReport(reportJsonData, reportType, selectedUniqueKey, params, reportUniqueKey);
5928
5925
  }
5929
5926
  else {
5930
- this.downloadQuickReport(params, repId, reportHeader, reportFooter);
5927
+ this.downloadQuickReport(params, uniqueKey, reportHeader, reportFooter);
5931
5928
  }
5932
5929
  }
5933
5930
  }
5934
- getReportData(uniqueKeyValue, reportType, reportName, params, reportUniqueKey = '') {
5931
+ getReportData(uniqueKeyValue, reportType, uniqueKey, params, reportUniqueKey = '') {
5935
5932
  let filters = [];
5936
5933
  if (params && params.length > 0) {
5937
5934
  params.forEach((param) => {
@@ -5955,13 +5952,13 @@ class ReportService {
5955
5952
  if (reportType === IReportType.EXCEL) {
5956
5953
  const isGridExcelData = false;
5957
5954
  const columns = rowsInfo.length > 0 ? Object?.keys(response?.tables[0]?.records[0]) : [];
5958
- this.gridService.exportExcel(rowsInfo, columns, reportName, isGridExcelData);
5955
+ this.gridService.exportExcel(rowsInfo, columns, uniqueKey, isGridExcelData);
5959
5956
  }
5960
5957
  else if (reportType === IReportType.TEXT) {
5961
- this.saveAsTextFile(rowsInfo, reportName);
5958
+ this.saveAsTextFile(rowsInfo, uniqueKey);
5962
5959
  }
5963
5960
  else {
5964
- this.saveAsCsvFile(rowsInfo, reportName);
5961
+ this.saveAsCsvFile(rowsInfo, uniqueKey);
5965
5962
  }
5966
5963
  });
5967
5964
  }
@@ -5979,14 +5976,14 @@ class ReportService {
5979
5976
  /**
5980
5977
  * Export to text (sub-method)
5981
5978
  */
5982
- saveAsTextFile(rowsInfo, reportName) {
5983
- this.gridService.saveAsTextFile(rowsInfo, reportName);
5979
+ saveAsTextFile(rowsInfo, uniqueKey) {
5980
+ this.gridService.saveAsTextFile(rowsInfo, uniqueKey);
5984
5981
  }
5985
5982
  /**
5986
5983
  * Export to CSV (sub-method)
5987
5984
  */
5988
- saveAsCsvFile(rowsInfo, reportName) {
5989
- this.gridService.saveDataAsCsv(rowsInfo, reportName);
5985
+ saveAsCsvFile(rowsInfo, uniqueKey) {
5986
+ this.gridService.saveDataAsCsv(rowsInfo, uniqueKey);
5990
5987
  }
5991
5988
  getFormFieldValues(form, params) {
5992
5989
  if (this.paramsCopy?.length > 0) {
@@ -6036,7 +6033,7 @@ class ReportService {
6036
6033
  });
6037
6034
  }
6038
6035
  }
6039
- downloadQuickReport(params, repId, reportHeader, reportFooter) {
6036
+ downloadQuickReport(params, uniqueKey, reportHeader, reportFooter) {
6040
6037
  let filters = [];
6041
6038
  let repIdObj;
6042
6039
  if (params && params.length > 0) {
@@ -6052,12 +6049,12 @@ class ReportService {
6052
6049
  else {
6053
6050
  filters = this.getFilters();
6054
6051
  }
6055
- if (typeof (repId) === 'number') {
6056
- repIdObj = { Id: repId, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter };
6057
- }
6058
- else {
6059
- repIdObj = { reportName: repId, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter };
6060
- }
6052
+ // if (typeof (repId) === 'number') {
6053
+ // repIdObj = { Id: repId, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter}
6054
+ // }
6055
+ // else {
6056
+ repIdObj = { uniqueKey: uniqueKey, filters: filters, ReportHeader: reportHeader, ReportFooter: reportFooter };
6057
+ //}
6061
6058
  this.requestService
6062
6059
  .download('/Report/Generate', repIdObj)
6063
6060
  .subscribe((response) => {
@@ -6109,7 +6106,8 @@ class GenerateReportBtnComponent {
6109
6106
  ngOnInit() {
6110
6107
  }
6111
6108
  reportClickEvent() {
6112
- this.repInfo = this.repInfo?.reportName ? this.repInfo.reportName : this.repInfo;
6109
+ this.repInfo = this.repInfo?.uniqueKey ? this.repInfo.uniqueKey : this.repInfo;
6110
+ console.log('this.repInfo: ', this.repInfo);
6113
6111
  this.reportService.downloadReport(this.repInfo, this.params, this.showDialog, this.reportType, this.reportHeader, this.reportFooter, this.form);
6114
6112
  }
6115
6113
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: GenerateReportBtnComponent, deps: [{ token: ReportService }], target: i0.ɵɵFactoryTarget.Component }); }