ngx-techlify-core 18.67.0 → 18.69.0

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.
@@ -122,7 +122,7 @@ let AuditLogListComponent = class AuditLogListComponent extends TechlifyListComp
122
122
  super.loadData(filters);
123
123
  }
124
124
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AuditLogListComponent, deps: [{ token: i1.Router }, { token: i2.DomSanitizer }, { token: i3.FormBuilder }, { token: i4.AuditLogService }, { token: i5.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
125
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl", scrollContainer: "scrollContainer" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-2\">\n <mat-card>\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\" style=\"min-width: 200px\">\n <h5 class=\"mb-0\"> Audit Logs </h5>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\"\n class=\"mt-1\" name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\" [objectType]=\"objectType\"\n [objectId]=\"objectId\"></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"px-3\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"text-secondary\">\n <app-techlify-icon role=\"button\" name=\"view\" class=\"clickable\"\n (click)=\"logClicked(auditLog);$event.stopPropagation();\" matTooltip=\"View\"></app-techlify-icon>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: ["isCSV", "fileName", "data", "tableId"], outputs: ["isExportingToExcel"] }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i12.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i13.AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: ["filterForm", "objectId", "objectType"], outputs: ["valueChange"] }, { kind: "component", type: i14.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl", scrollContainer: "scrollContainer" }, usesInheritance: true, ngImport: i0, template: "<div class=\"m-2\">\n <mat-card>\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-center gap-2\" style=\"min-width: 200px\">\n <h5 class=\"mb-0\"> Audit Logs </h5>\n <app-export-excel-button *ngIf=\"showExportButtons\" matTooltip=\"Export\" elementId=\"audit-logs-table\"\n class=\"mt-1\" name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter class=\"w-100\" *ngIf=\"showFilter\" [filterForm]=\"filterForm\" [objectType]=\"objectType\"\n [objectId]=\"objectId\"></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n </mat-card>\n\n <mat-card class=\"mt-2\">\n <mat-card-content>\n <table mat-table [dataSource]=\"models\" matSort class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" [infiniteScrollContainer]=\"scrollContainer\" (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"px-3\" [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div class=\"text-secondary\">\n <app-techlify-icon role=\"button\" name=\"view\" class=\"clickable\"\n (click)=\"logClicked(auditLog);$event.stopPropagation();\" matTooltip=\"View\"></app-techlify-icon>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n</div>", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: ["isCSV", "iconName", "fileName", "data", "tableId"], outputs: ["isExportingToExcel"] }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i9.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i12.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i13.AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: ["filterForm", "objectId", "objectType"], outputs: ["valueChange"] }, { kind: "component", type: i14.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] }); }
126
126
  };
127
127
  AuditLogListComponent = __decorate([
128
128
  UntilDestroy()
@@ -38,7 +38,7 @@ let TechlifyListComponent = class TechlifyListComponent {
38
38
  this.selectedModelIds = [];
39
39
  this.isAllSelected = false;
40
40
  this.page = 1;
41
- this.perPage = 25;
41
+ this.perPage = 50;
42
42
  this.lastPage = 0;
43
43
  this.isWorking = false;
44
44
  this.isViewLoaded = false;
@@ -67,7 +67,7 @@ let TechlifyListComponent = class TechlifyListComponent {
67
67
  .subscribe(_ => {
68
68
  if (this.isFilterPatchFromRoute) {
69
69
  const unformatedFilters = JSON.parse(JSON.stringify(this.filterForm.value));
70
- this.filters = this.requestHelperService.convertToFormData(unformatedFilters);
70
+ this.filters = this.requestHelperService.convertToFormData(unformatedFilters, this.filterFormConfiguration);
71
71
  this.requestHelperService.updateQueryParams(this.filters);
72
72
  }
73
73
  this.reload();
@@ -93,7 +93,7 @@ let TechlifyListComponent = class TechlifyListComponent {
93
93
  * Convert to form data gives flexibility to convert the form array values to string
94
94
  * No need to override the loadData method in child class to convert array values to string.
95
95
  * */
96
- filters = this.requestHelperService.convertToFormData(JSON.parse(JSON.stringify(this.filterForm.value)));
96
+ filters = this.requestHelperService.convertToFormData(JSON.parse(JSON.stringify(this.filterForm.value)), this.filterFormConfiguration);
97
97
  filters.perPage = this.perPage;
98
98
  filters.page = this.page;
99
99
  }
@@ -253,7 +253,7 @@ let TechlifyListComponent = class TechlifyListComponent {
253
253
  if (view) {
254
254
  //If there is a view, then set it.
255
255
  //Setup view filters
256
- this.filterForm.setValue(this.requestHelperService.convertToFormData(view?.filters));
256
+ this.filterForm.setValue(this.requestHelperService.convertToFormData(view?.filters, this.filterFormConfiguration));
257
257
  //Setup view columns
258
258
  this.columnConfigs.forEach(column => {
259
259
  column.isSelected = (view?.columns).some(col => col === column.def);
@@ -274,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
274
274
  }], ctorParameters: () => [{ type: i1.TechlifyService, decorators: [{
275
275
  type: Optional
276
276
  }] }] });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbGlzdC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2Jhc2UtbW9kZWwvdGVjaGxpZnktbGlzdC1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFJaEY7Ozs7Ozs7Ozs7R0FVRztBQUdJLElBQWUscUJBQXFCLEdBQXBDLE1BQWUscUJBQXFCO0lBcUJ6QyxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxzQkFBc0IsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQXFCRDs7O1FBR0k7SUFDSixJQUFjLFNBQVM7UUFDckIsT0FBTyxTQUFTLENBQUMsQ0FBQyxVQUFVO0lBQzlCLENBQUM7SUFTRCxZQUFrQyxPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQTVEM0QsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsU0FBSSxHQUFHLENB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QUFpQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNyRixvQkFBb0I7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNsQyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQW9CLENBQUEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQWpTbUIscUJBQXFCO21HQUFyQixxQkFBcUI7O0FBQXJCLHFCQUFxQjtJQUYxQyxZQUFZLEVBQUU7R0FFTyxxQkFBcUIsQ0FrUzFDOzs0RkFsU3FCLHFCQUFxQjtrQkFEMUMsU0FBUzs7MEJBK0RLLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9yZXF1ZXN0LWhlbHBlci9yZXF1ZXN0LWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRlY2hsaWZ5U2VydmljZSB9IGZyb20gJy4vdGVjaGxpZnktc2VydmljZSc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi9jb2x1bW4tc2VsZWN0b3InO1xuXG4vKipcbiAqIEludGVyZmFjZSB1c2VkIHRvIGVuc3VyZSB3ZSBoYXZlIGEgY29uc2lzdGVudCBzdHJ1Y3R1cmUgYWNyb3NzIG91ciBsaXN0aW5nIHBhZ2VzXG4gKlxuICogQHRvZG8gVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gbmd4LXRlY2hsaWZ5LWNvcmVcbiAqXG4gKiBBZHZhbnRhZ2VzIG9mIHRoaXMgYWJzdHJhY3QgY2xhc3NcbiAqIC0gTGVzcyBjb2RlLCBsZXNzIG1haW50ZW5hbmNlLCBsZXNzIGJ1Z3NcbiAqIC0gbW9yZSBjb25zaXN0ZW50IGNvZGVcbiAqIC0gY29tbWVudHMgb24gbW9yZSBjb2RlXG4gKiAtIHNhdmUgdGltZSwgc2F2ZSBlbmVyZ3lcbiAqL1xuQFVudGlsRGVzdHJveSgpXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZWNobGlmeUxpc3RDb21wb25lbnQge1xuXG4gIG1vZGVsczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RlbElkczogYW55W10gPSBbXTtcbiAgaXNBbGxTZWxlY3RlZCA9IGZhbHNlO1xuICBwYWdlID0gMTtcbiAgcGVyUGFnZSA9IDI1O1xuICBsYXN0UGFnZSA9IDA7XG4gIGlzV29ya2luZyA9IGZhbHNlO1xuICBmaWx0ZXJGb3JtOiBhbnk7XG4gIGlzVmlld0xvYWRlZCA9IGZhbHNlO1xuICBjb2x1bW5Db25maWdzOiBDb2x1bW5Db25maWdbXSA9IFtdO1xuXG4gIC8vRmlsdGVycyB0byBiZSBleHBvcnRlZCBmb3IgdmlldyBpbnRlZ3JhdGlvblxuICBmaWx0ZXJzOiBhbnk7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gdG8gdHVybiBvZmYsIGlmIHdlIGRvbid0IHdhbnQgdG8gcGF0Y2ggZmlsdGVycyBmcm9tIHJvdXRlLlxuICAgKiBUaGlzIGNhbiBiZSBvdmVycmlkZW4gaW4gY2hpbGQgY2xhc3NlcyBpZiBuZWVkIFxuICAgKi9cbiAgcHJvdGVjdGVkIF9pc0ZpbHRlclBhdGNoRnJvbVJvdXRlID0gdHJ1ZTtcbiAgZ2V0IGlzRmlsdGVyUGF0Y2hGcm9tUm91dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRmlsdGVyUGF0Y2hGcm9tUm91dGU7XG4gIH1cbiAgc2V0IGlzRmlsdGVyUGF0Y2hGcm9tUm91dGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0ZpbHRlclBhdGNoRnJvbVJvdXRlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGZvcm0gY29uZmlndXJhdGlvbiB1c2VkIHRvIGRlY29kZSB0aGUgcm91dGUgcGFyYW1zLlxuICAgKiBFZzogT3ZlcnJpZGUgaW4gY2hpbGQgY2xhc3NcbiAgICogIGBgYCBcbiAgICogZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb246IGFueSA9IHtcbiAgICBzdGF0dXNfaWQ6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBicmFuY2hfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgZGVwYXJ0bWVudF9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBlbXBsb3llZV9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBjb3Vyc2VfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgZGF0ZV9mcm9tOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkYXRlX3RvOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkdWVfZGF0ZV9mcm9tOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkdWVfZGF0ZV90bzogeyBkYXRlOiB0cnVlIH0sXG4gICB9IFxuICAgKmBgYFxuICAgKi9cbiAgZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb246IGFueTtcblxuICAvKipcbiAgICAqIENoaWxkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMuXG4gICAgKiBJZiBsZWZ0IHVuZGVmaW5lZC9lbXB0eSwgZmFsbHMgYmFjayB0byBlbnZpcm9ubWVudC5hcHBUaXRsZVxuICAgICovXG4gIHByb3RlY3RlZCBnZXQgcGFnZVRpdGxlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZGVmYXVsdFxuICB9XG5cblxuICBwcml2YXRlIHRpdGxlU2VydmljZSA9IGluamVjdChUaXRsZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3QoRW52aXJvbm1lbnRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8vUmVxdWVzdCBoZWxwZXIgc2VydmljZSB0byBpbmhlcml0ZWQgYW5kIG92ZXJyaWRlbiBpZiBuZWVkZWRcbiAgcHJvdGVjdGVkIHJlcXVlc3RIZWxwZXJTZXJ2aWNlID0gaW5qZWN0KFJlcXVlc3RIZWxwZXJTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgc2VydmljZT86IFRlY2hsaWZ5U2VydmljZSkge1xuICAgIGNvbnN0IHJlc29sdmVkVGl0bGUgPVxuICAgICAgdGhpcy5wYWdlVGl0bGUgJiYgdGhpcy5wYWdlVGl0bGUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgICAgPyB0aGlzLnBhZ2VUaXRsZVxuICAgICAgICA6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldCgpLmFwcFRpdGxlO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHJlc29sdmVkVGl0bGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgbGlzdGVucyBmb3IgYW55IGNoYW5nZXMgaW4gdGhlIGZpbHRlciBmb3JtIGdyb3VwXG4gICAqIEl0IHVwZGF0ZXMgdGhlIHJvdXRlIGF1dG9tYXRpY2FsbHlcbiAgICogQWxzbyByZWxvYWQgdGhlIHBhZ2Ugb24gY2hhbmdlXG4gICAqL1xuICBsaXN0ZW5GaWx0ZXJDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0ZpbHRlclBhdGNoRnJvbVJvdXRlKSB7XG4gICAgICAgICAgY29uc3QgdW5mb3JtYXRlZEZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyRm9ybS52YWx1ZSkpO1xuICAgICAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEodW5mb3JtYXRlZEZpbHRlcnMpO1xuICAgICAgICAgIHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UudXBkYXRlUXVlcnlQYXJhbXModGhpcy5maWx0ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gZGVjb2RlcyB0aGUgcm91dGUgcGFyYW1zIGFuZCBwYXRjaGVzIHRoZSBmaWx0ZXJcbiAgICogU2V0dXAgdGhlIGZpbHRlckZvcm1Db25maWd1cnRpb24gdG8gb3ZlcnJpZGUgZm9yIG11bHRpcGxlIGFuZCBkYXRlIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBwYXRjaEZpbHRlcnNGcm9tUm91dGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS51cGRhdGVGb3JtV2l0aFF1ZXJ5UGFyYW1zKHRoaXMuZmlsdGVyRm9ybSwgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBsb2FkcyB0aGUgbWFpbiBtb2RlbHMgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAqL1xuICBsb2FkRGF0YShmaWx0ZXJzPzogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogU2VydmljZSBpcyByZXF1aXJlZCB0byBsb2FkIHRoZSBkYXRhYFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGlmICghZmlsdGVycykge1xuICAgICAgLyoqXG4gICAgICAgKiBDb252ZXJ0IHRvIGZvcm0gZGF0YSBnaXZlcyBmbGV4aWJpbGl0eSB0byBjb252ZXJ0IHRoZSBmb3JtIGFycmF5IHZhbHVlcyB0byBzdHJpbmdcbiAgICAgICAqIE5vIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIGxvYWREYXRhIG1ldGhvZCBpbiBjaGlsZCBjbGFzcyB0byBjb252ZXJ0IGFycmF5IHZhbHVlcyB0byBzdHJpbmcuXG4gICAgICAgKiAqL1xuICAgICAgZmlsdGVycyA9IHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlckZvcm0udmFsdWUpKSk7XG4gICAgICBmaWx0ZXJzLnBlclBhZ2UgPSB0aGlzLnBlclBhZ2U7XG4gICAgICBmaWx0ZXJzLnBhZ2UgPSB0aGlzLnBhZ2U7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZS5pbmRleChmaWx0ZXJzKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Py5sYXN0X3BhZ2UgfHwgdGhpcy5wYWdlO1xuICAgICAgICBpZiAocmVzdWx0Py5kYXRhPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzdWx0LmRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUmVsb2FkIGFsbCBkYXRhIGZyb20gcGFnZSAxXG4gICAqL1xuICByZWxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbHMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWxJZHMgPSBbXTtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FuIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGlzIHNjcm9sbGluZyxcbiAgICogdG8gdHJpZ2dlciBsb2FkaW5nIGEgbmV3IHBhZ2Ugb2YgZGF0YVxuICAgKi9cbiAgb25TY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZyAmJiB0aGlzLnBhZ2UgPCB0aGlzLmxhc3RQYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIEZpbHRlci5cbiAgICpcbiAgICogQHBhcmFtIGZpZWxkIEZpZWxkIG5hbWUuXG4gICAqL1xuICByZXNldEZpbHRlcihmaWVsZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldChmaWVsZCkucmVzZXQoJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgb25lIG9yIG1vcmUgbW9kZWxzIGluIHRoZSBsaXN0IGJ5IG1hdGNoaW5nIG9uIHRoZWlyIGBpZGAuXG4gICAqIEFjY2VwdHMgYSBzaW5nbGUgbW9kZWwgb3IgYW4gYXJyYXkgb2YgbW9kZWxzLlxuICAgKiBAcGFyYW0gbW9kZWxzIFRoZSB1cGRhdGVkIG1vZGVsIG9yIGFycmF5IG9mIG1vZGVscy5cbiAgICovXG4gIG1vZGVsc1VwZGF0ZWRCeUlkKG1vZGVsczogYW55IHwgYW55W10pOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZWxzKSkge1xuICAgICAgbW9kZWxzID0gW21vZGVsc107XG4gICAgfVxuICAgIG1vZGVscy5mb3JFYWNoKCh1cGRhdGVkTW9kZWw6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVscy5maW5kSW5kZXgoKG06IGFueSkgPT4gbS5pZCA9PT0gdXBkYXRlZE1vZGVsLmlkKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5tb2RlbHNbaW5kZXhdID0gdXBkYXRlZE1vZGVsO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubW9kZWxzID0gWy4uLnRoaXMubW9kZWxzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIG9uZSBvciBtb3JlIG1vZGVscyBpbiB0aGUgbGlzdCBieSBtYXRjaGluZyBvbiB0aGVpciBgaWRgLlxuICAgKiBBY2NlcHRzIGEgc2luZ2xlIG1vZGVsIG9yIGFuIGFycmF5IG9mIG1vZGVscy5cbiAgICogQHBhcmFtIG1vZGVscyBUaGUgdXBkYXRlZCBtb2RlbCBvciBhcnJheSBvZiBtb2RlbHMuXG4gICAqL1xuICBtb2RlbHNEZWxldGVkQnlJZChtb2RlbHM6IGFueSB8IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1vZGVscykpIHtcbiAgICAgIG1vZGVscyA9IFttb2RlbHNdO1xuICAgIH1cbiAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmZpbHRlcigobTogYW55KSA9PiAhKG1vZGVscy5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQgPT09IG0uaWQpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBsaXN0IG9mIHNlbGVjdGVkIG1vZGVscywgdGhpcyB3aWxsIGFsc29cbiAgICogY2xvc2UgdGhlIGJ1bGsgdXBkYXRlIGZvcm0gdGhhdCBjaGVja3MgXG4gICAqIGZvciBzZWxlY3RlZCBtb2RlbHMgbGVuZ3RoXG4gICAqL1xuICBjbGVhclNlbGVjdGVkTW9kZWxzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgbW9kZWwgYXQgdGhlIGZpcnN0IHBvc2l0aW9uIGluIHRoZSB0YWJsZS5cbiAgICogQHBhcmFtIG1vZGVsIFRoZSBuZXcgbW9kZWwgdG8gYmUgYWRkZWQuXG4gICAqL1xuICBtb2RlbENyZWF0ZWQobW9kZWw6IGFueSk6IHZvaWQge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkge1xuICAgICAgLy9XaGVuIGNyZWF0ZSBhbm90aGVyIGZlYXR1cmUgaXMgdXNlZCwgd2UgZ2V0IGFycmF5IG9mIG1vZGVsc1xuICAgICAgdGhpcy5tb2RlbHMudW5zaGlmdCguLi5tb2RlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxzLnVuc2hpZnQobW9kZWwpO1xuICAgIH1cbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBmb3IgbXVsdGkgc2VsZWN0XG4gICAqIFRyaWdlcnJlZCB3aGVuIHNlbGVjdCBhbGwgaXMgdG9nZ2xlZFxuICAgKi9cbiAgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IFtdO1xuICAgIHRoaXMubW9kZWxzLm1hcCgobW9kZWw6IGFueSkgPT4ge1xuICAgICAgbW9kZWwuaXNfc2VsZWN0ZWQgPSB0aGlzLmlzQWxsU2VsZWN0ZWQ7XG4gICAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5wdXNoKG1vZGVsLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBmb3IgbXVsdGkgc2VsZWN0XG4gICAqIFRyaWdlcnJlZCBpZiBhbnkgZW50cnkgc2VjdGlvbiBpcyBtb2RpZmllZFxuICAgKi9cbiAgaXNTZWxlY3Rpb25Nb2RpZmllZChldmVudDogYW55LCBtb2RlbDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5wdXNoKG1vZGVsPy5pZCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsSWRzID0gdGhpcy5zZWxlY3RlZE1vZGVsSWRzLmZpbHRlcigobW9kZWxJZDogYW55KSA9PiBtb2RlbElkICE9IG1vZGVsPy5pZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZnVhbHQgbWV0aG9kIHRvIGxpc3RlbiB0byBzb3J0IGNvbHVtbiB1cGRhdGVzXG4gICAqIEBwYXJhbSBldmVudCBcbiAgICovXG4gIHNvcnRDb2x1bW4oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmRpcmVjdGlvbi50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5tb2RlbHMgPSBbXTtcbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdzb3J0X2J5Jykuc2V0VmFsdWUoYCR7ZXZlbnQ/LmFjdGl2ZX18JHtkaXJlY3Rpb259YCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIG92ZXJyaWRlZCBpbiBjaGlsZCBjbGFzcyB0byByZXNldCBhIGZpbHRlciBmb3JtIGluc3RhbmNlLlxuICAgKiBVc2VkIGJ5IHNldFZpZXcgbWV0aG9kLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0RmlsdGVyRm9ybSgpOiB2b2lkIHtcbiAgICAvL0lmIGZpbHRlckZvcm0gZXhpc3RzLCB0aGVuIHJlc2V0XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybSkge1xuICAgICAgdGhpcy5maWx0ZXJGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBvdmVycmlkZWQgaW4gY2hpbGQgY2xhc3MgdG8gcmVzZXQgY29sdW1uIGNvbmZpZ3MuXG4gICAqIFVzZWQgYnkgc2V0VmlldyBtZXRob2QuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzZXRDb2x1bW5Db25maWdzKCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uQ29uZmlncyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvb2sgbWV0aG9kIHVzZWQgdG8gc2V0IHRoZSBzZWxlY3RlZCB2aWV3XG4gICAqIEBwYXJhbSB2aWV3IG9wdGlvbmFsIHVzZWQgYnkgbXktdmlldy1saXN0XG4gICAqL1xuICBzZXRWaWV3KHZpZXc/OiBhbnkpIHtcbiAgICAvL1Jlc2V0IHRoZSBxdWVyeSBwYXJhbXNcbiAgICB0aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLnVwZGF0ZVF1ZXJ5UGFyYW1zKHt9KTtcbiAgICB0aGlzLmlzVmlld0xvYWRlZCA9IGZhbHNlO1xuICAgIHRoaXMucmVzZXRDb2x1bW5Db25maWdzKCk7XG4gICAgdGhpcy5yZXNldEZpbHRlckZvcm0oKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgIC8vSWYgdGhlcmUgaXMgYSB2aWV3LCB0aGVuIHNldCBpdC5cbiAgICAgICAgLy9TZXR1cCB2aWV3IGZpbHRlcnNcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtLnNldFZhbHVlKHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEodmlldz8uZmlsdGVycykpO1xuICAgICAgICAvL1NldHVwIHZpZXcgY29sdW1uc1xuICAgICAgICB0aGlzLmNvbHVtbkNvbmZpZ3MuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgIGNvbHVtbi5pc1NlbGVjdGVkID0gKHZpZXc/LmNvbHVtbnMgYXMgc3RyaW5nW10pLnNvbWUoY29sID0+IGNvbCA9PT0gY29sdW1uLmRlZik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5pc1ZpZXdMb2FkZWQgPSB0cnVlO1xuICAgIH0sIDUwMCk7XG4gIH1cbn1cbiJdfQ==
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktbGlzdC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2Jhc2UtbW9kZWwvdGVjaGxpZnktbGlzdC1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFJaEY7Ozs7Ozs7Ozs7R0FVRztBQUdJLElBQWUscUJBQXFCLEdBQXBDLE1BQWUscUJBQXFCO0lBcUJ6QyxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxzQkFBc0IsQ0FBQyxLQUFjO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQXFCRDs7O1FBR0k7SUFDSixJQUFjLFNBQVM7UUFDckIsT0FBTyxTQUFTLENBQUMsQ0FBQyxVQUFVO0lBQzlCLENBQUM7SUFTRCxZQUFrQyxPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQTVEM0QsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNuQixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsU0FBSSxHQUFHLENB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VUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO2dCQUNuSCxvQkFBb0I7Z0JBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNsQyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQW9CLENBQUEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQWpTbUIscUJBQXFCO21HQUFyQixxQkFBcUI7O0FBQXJCLHFCQUFxQjtJQUYxQyxZQUFZLEVBQUU7R0FFTyxxQkFBcUIsQ0FrUzFDOzs0RkFsU3FCLHFCQUFxQjtrQkFEMUMsU0FBUzs7MEJBK0RLLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi9yZXF1ZXN0LWhlbHBlci9yZXF1ZXN0LWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRlY2hsaWZ5U2VydmljZSB9IGZyb20gJy4vdGVjaGxpZnktc2VydmljZSc7XG5pbXBvcnQgeyBDb2x1bW5Db25maWcgfSBmcm9tICcuLi9jb2x1bW4tc2VsZWN0b3InO1xuXG4vKipcbiAqIEludGVyZmFjZSB1c2VkIHRvIGVuc3VyZSB3ZSBoYXZlIGEgY29uc2lzdGVudCBzdHJ1Y3R1cmUgYWNyb3NzIG91ciBsaXN0aW5nIHBhZ2VzXG4gKlxuICogQHRvZG8gVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gbmd4LXRlY2hsaWZ5LWNvcmVcbiAqXG4gKiBBZHZhbnRhZ2VzIG9mIHRoaXMgYWJzdHJhY3QgY2xhc3NcbiAqIC0gTGVzcyBjb2RlLCBsZXNzIG1haW50ZW5hbmNlLCBsZXNzIGJ1Z3NcbiAqIC0gbW9yZSBjb25zaXN0ZW50IGNvZGVcbiAqIC0gY29tbWVudHMgb24gbW9yZSBjb2RlXG4gKiAtIHNhdmUgdGltZSwgc2F2ZSBlbmVyZ3lcbiAqL1xuQFVudGlsRGVzdHJveSgpXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUZWNobGlmeUxpc3RDb21wb25lbnQge1xuXG4gIG1vZGVsczogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RlbElkczogYW55W10gPSBbXTtcbiAgaXNBbGxTZWxlY3RlZCA9IGZhbHNlO1xuICBwYWdlID0gMTtcbiAgcGVyUGFnZSA9IDUwO1xuICBsYXN0UGFnZSA9IDA7XG4gIGlzV29ya2luZyA9IGZhbHNlO1xuICBmaWx0ZXJGb3JtOiBhbnk7XG4gIGlzVmlld0xvYWRlZCA9IGZhbHNlO1xuICBjb2x1bW5Db25maWdzOiBDb2x1bW5Db25maWdbXSA9IFtdO1xuXG4gIC8vRmlsdGVycyB0byBiZSBleHBvcnRlZCBmb3IgdmlldyBpbnRlZ3JhdGlvblxuICBmaWx0ZXJzOiBhbnk7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gdG8gdHVybiBvZmYsIGlmIHdlIGRvbid0IHdhbnQgdG8gcGF0Y2ggZmlsdGVycyBmcm9tIHJvdXRlLlxuICAgKiBUaGlzIGNhbiBiZSBvdmVycmlkZW4gaW4gY2hpbGQgY2xhc3NlcyBpZiBuZWVkIFxuICAgKi9cbiAgcHJvdGVjdGVkIF9pc0ZpbHRlclBhdGNoRnJvbVJvdXRlID0gdHJ1ZTtcbiAgZ2V0IGlzRmlsdGVyUGF0Y2hGcm9tUm91dGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRmlsdGVyUGF0Y2hGcm9tUm91dGU7XG4gIH1cbiAgc2V0IGlzRmlsdGVyUGF0Y2hGcm9tUm91dGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0ZpbHRlclBhdGNoRnJvbVJvdXRlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGZvcm0gY29uZmlndXJhdGlvbiB1c2VkIHRvIGRlY29kZSB0aGUgcm91dGUgcGFyYW1zLlxuICAgKiBFZzogT3ZlcnJpZGUgaW4gY2hpbGQgY2xhc3NcbiAgICogIGBgYCBcbiAgICogZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb246IGFueSA9IHtcbiAgICBzdGF0dXNfaWQ6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBicmFuY2hfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgZGVwYXJ0bWVudF9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBlbXBsb3llZV9pZHM6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICBjb3Vyc2VfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgZGF0ZV9mcm9tOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkYXRlX3RvOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkdWVfZGF0ZV9mcm9tOiB7IGRhdGU6IHRydWUgfSxcbiAgICBkdWVfZGF0ZV90bzogeyBkYXRlOiB0cnVlIH0sXG4gICB9IFxuICAgKmBgYFxuICAgKi9cbiAgZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb246IGFueTtcblxuICAvKipcbiAgICAqIENoaWxkIGNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMuXG4gICAgKiBJZiBsZWZ0IHVuZGVmaW5lZC9lbXB0eSwgZmFsbHMgYmFjayB0byBlbnZpcm9ubWVudC5hcHBUaXRsZVxuICAgICovXG4gIHByb3RlY3RlZCBnZXQgcGFnZVRpdGxlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDsgLy8gZGVmYXVsdFxuICB9XG5cblxuICBwcml2YXRlIHRpdGxlU2VydmljZSA9IGluamVjdChUaXRsZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3QoRW52aXJvbm1lbnRTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8vUmVxdWVzdCBoZWxwZXIgc2VydmljZSB0byBpbmhlcml0ZWQgYW5kIG92ZXJyaWRlbiBpZiBuZWVkZWRcbiAgcHJvdGVjdGVkIHJlcXVlc3RIZWxwZXJTZXJ2aWNlID0gaW5qZWN0KFJlcXVlc3RIZWxwZXJTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgc2VydmljZT86IFRlY2hsaWZ5U2VydmljZSkge1xuICAgIGNvbnN0IHJlc29sdmVkVGl0bGUgPVxuICAgICAgdGhpcy5wYWdlVGl0bGUgJiYgdGhpcy5wYWdlVGl0bGUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgICAgPyB0aGlzLnBhZ2VUaXRsZVxuICAgICAgICA6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldCgpLmFwcFRpdGxlO1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHJlc29sdmVkVGl0bGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRoYXQgbGlzdGVucyBmb3IgYW55IGNoYW5nZXMgaW4gdGhlIGZpbHRlciBmb3JtIGdyb3VwXG4gICAqIEl0IHVwZGF0ZXMgdGhlIHJvdXRlIGF1dG9tYXRpY2FsbHlcbiAgICogQWxzbyByZWxvYWQgdGhlIHBhZ2Ugb24gY2hhbmdlXG4gICAqL1xuICBsaXN0ZW5GaWx0ZXJDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyRm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNTAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0ZpbHRlclBhdGNoRnJvbVJvdXRlKSB7XG4gICAgICAgICAgY29uc3QgdW5mb3JtYXRlZEZpbHRlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmlsdGVyRm9ybS52YWx1ZSkpO1xuICAgICAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEodW5mb3JtYXRlZEZpbHRlcnMsIHRoaXMuZmlsdGVyRm9ybUNvbmZpZ3VyYXRpb24pO1xuICAgICAgICAgIHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UudXBkYXRlUXVlcnlQYXJhbXModGhpcy5maWx0ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gZGVjb2RlcyB0aGUgcm91dGUgcGFyYW1zIGFuZCBwYXRjaGVzIHRoZSBmaWx0ZXJcbiAgICogU2V0dXAgdGhlIGZpbHRlckZvcm1Db25maWd1cnRpb24gdG8gb3ZlcnJpZGUgZm9yIG11bHRpcGxlIGFuZCBkYXRlIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBwYXRjaEZpbHRlcnNGcm9tUm91dGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS51cGRhdGVGb3JtV2l0aFF1ZXJ5UGFyYW1zKHRoaXMuZmlsdGVyRm9ybSwgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gdGhhdCBsb2FkcyB0aGUgbWFpbiBtb2RlbHMgb2YgdGhlIGFwcGxpY2F0aW9uXG4gICAqL1xuICBsb2FkRGF0YShmaWx0ZXJzPzogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogU2VydmljZSBpcyByZXF1aXJlZCB0byBsb2FkIHRoZSBkYXRhYFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGlmICghZmlsdGVycykge1xuICAgICAgLyoqXG4gICAgICAgKiBDb252ZXJ0IHRvIGZvcm0gZGF0YSBnaXZlcyBmbGV4aWJpbGl0eSB0byBjb252ZXJ0IHRoZSBmb3JtIGFycmF5IHZhbHVlcyB0byBzdHJpbmdcbiAgICAgICAqIE5vIG5lZWQgdG8gb3ZlcnJpZGUgdGhlIGxvYWREYXRhIG1ldGhvZCBpbiBjaGlsZCBjbGFzcyB0byBjb252ZXJ0IGFycmF5IHZhbHVlcyB0byBzdHJpbmcuXG4gICAgICAgKiAqL1xuICAgICAgZmlsdGVycyA9IHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlckZvcm0udmFsdWUpKSwgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbik7XG4gICAgICBmaWx0ZXJzLnBlclBhZ2UgPSB0aGlzLnBlclBhZ2U7XG4gICAgICBmaWx0ZXJzLnBhZ2UgPSB0aGlzLnBhZ2U7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZS5pbmRleChmaWx0ZXJzKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Py5sYXN0X3BhZ2UgfHwgdGhpcy5wYWdlO1xuICAgICAgICBpZiAocmVzdWx0Py5kYXRhPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzdWx0LmRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogUmVsb2FkIGFsbCBkYXRhIGZyb20gcGFnZSAxXG4gICAqL1xuICByZWxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlbHMgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkTW9kZWxJZHMgPSBbXTtcbiAgICB0aGlzLnBhZ2UgPSAxO1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FuIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGlzIHNjcm9sbGluZyxcbiAgICogdG8gdHJpZ2dlciBsb2FkaW5nIGEgbmV3IHBhZ2Ugb2YgZGF0YVxuICAgKi9cbiAgb25TY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZyAmJiB0aGlzLnBhZ2UgPCB0aGlzLmxhc3RQYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIEZpbHRlci5cbiAgICpcbiAgICogQHBhcmFtIGZpZWxkIEZpZWxkIG5hbWUuXG4gICAqL1xuICByZXNldEZpbHRlcihmaWVsZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldChmaWVsZCkucmVzZXQoJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgb25lIG9yIG1vcmUgbW9kZWxzIGluIHRoZSBsaXN0IGJ5IG1hdGNoaW5nIG9uIHRoZWlyIGBpZGAuXG4gICAqIEFjY2VwdHMgYSBzaW5nbGUgbW9kZWwgb3IgYW4gYXJyYXkgb2YgbW9kZWxzLlxuICAgKiBAcGFyYW0gbW9kZWxzIFRoZSB1cGRhdGVkIG1vZGVsIG9yIGFycmF5IG9mIG1vZGVscy5cbiAgICovXG4gIG1vZGVsc1VwZGF0ZWRCeUlkKG1vZGVsczogYW55IHwgYW55W10pOiB2b2lkIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkobW9kZWxzKSkge1xuICAgICAgbW9kZWxzID0gW21vZGVsc107XG4gICAgfVxuICAgIG1vZGVscy5mb3JFYWNoKCh1cGRhdGVkTW9kZWw6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVscy5maW5kSW5kZXgoKG06IGFueSkgPT4gbS5pZCA9PT0gdXBkYXRlZE1vZGVsLmlkKTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5tb2RlbHNbaW5kZXhdID0gdXBkYXRlZE1vZGVsO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubW9kZWxzID0gWy4uLnRoaXMubW9kZWxzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIG9uZSBvciBtb3JlIG1vZGVscyBpbiB0aGUgbGlzdCBieSBtYXRjaGluZyBvbiB0aGVpciBgaWRgLlxuICAgKiBBY2NlcHRzIGEgc2luZ2xlIG1vZGVsIG9yIGFuIGFycmF5IG9mIG1vZGVscy5cbiAgICogQHBhcmFtIG1vZGVscyBUaGUgdXBkYXRlZCBtb2RlbCBvciBhcnJheSBvZiBtb2RlbHMuXG4gICAqL1xuICBtb2RlbHNEZWxldGVkQnlJZChtb2RlbHM6IGFueSB8IGFueVtdKTogdm9pZCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1vZGVscykpIHtcbiAgICAgIG1vZGVscyA9IFttb2RlbHNdO1xuICAgIH1cbiAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmZpbHRlcigobTogYW55KSA9PiAhKG1vZGVscy5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQgPT09IG0uaWQpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBsaXN0IG9mIHNlbGVjdGVkIG1vZGVscywgdGhpcyB3aWxsIGFsc29cbiAgICogY2xvc2UgdGhlIGJ1bGsgdXBkYXRlIGZvcm0gdGhhdCBjaGVja3MgXG4gICAqIGZvciBzZWxlY3RlZCBtb2RlbHMgbGVuZ3RoXG4gICAqL1xuICBjbGVhclNlbGVjdGVkTW9kZWxzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgbW9kZWwgYXQgdGhlIGZpcnN0IHBvc2l0aW9uIGluIHRoZSB0YWJsZS5cbiAgICogQHBhcmFtIG1vZGVsIFRoZSBuZXcgbW9kZWwgdG8gYmUgYWRkZWQuXG4gICAqL1xuICBtb2RlbENyZWF0ZWQobW9kZWw6IGFueSk6IHZvaWQge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkge1xuICAgICAgLy9XaGVuIGNyZWF0ZSBhbm90aGVyIGZlYXR1cmUgaXMgdXNlZCwgd2UgZ2V0IGFycmF5IG9mIG1vZGVsc1xuICAgICAgdGhpcy5tb2RlbHMudW5zaGlmdCguLi5tb2RlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZWxzLnVuc2hpZnQobW9kZWwpO1xuICAgIH1cbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBmb3IgbXVsdGkgc2VsZWN0XG4gICAqIFRyaWdlcnJlZCB3aGVuIHNlbGVjdCBhbGwgaXMgdG9nZ2xlZFxuICAgKi9cbiAgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcyA9IFtdO1xuICAgIHRoaXMubW9kZWxzLm1hcCgobW9kZWw6IGFueSkgPT4ge1xuICAgICAgbW9kZWwuaXNfc2VsZWN0ZWQgPSB0aGlzLmlzQWxsU2VsZWN0ZWQ7XG4gICAgICBpZiAodGhpcy5pc0FsbFNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5wdXNoKG1vZGVsLmlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVsc107XG4gIH1cblxuICAvKipcbiAgICogVXNlZCBmb3IgbXVsdGkgc2VsZWN0XG4gICAqIFRyaWdlcnJlZCBpZiBhbnkgZW50cnkgc2VjdGlvbiBpcyBtb2RpZmllZFxuICAgKi9cbiAgaXNTZWxlY3Rpb25Nb2RpZmllZChldmVudDogYW55LCBtb2RlbDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkID0gZmFsc2U7XG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNb2RlbElkcy5wdXNoKG1vZGVsPy5pZCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE1vZGVsSWRzID0gdGhpcy5zZWxlY3RlZE1vZGVsSWRzLmZpbHRlcigobW9kZWxJZDogYW55KSA9PiBtb2RlbElkICE9IG1vZGVsPy5pZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZnVhbHQgbWV0aG9kIHRvIGxpc3RlbiB0byBzb3J0IGNvbHVtbiB1cGRhdGVzXG4gICAqIEBwYXJhbSBldmVudCBcbiAgICovXG4gIHNvcnRDb2x1bW4oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IGV2ZW50LmRpcmVjdGlvbi50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7XG4gICAgdGhpcy5tb2RlbHMgPSBbXTtcbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdzb3J0X2J5Jykuc2V0VmFsdWUoYCR7ZXZlbnQ/LmFjdGl2ZX18JHtkaXJlY3Rpb259YCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgc2hvdWxkIGJlIG92ZXJyaWRlZCBpbiBjaGlsZCBjbGFzcyB0byByZXNldCBhIGZpbHRlciBmb3JtIGluc3RhbmNlLlxuICAgKiBVc2VkIGJ5IHNldFZpZXcgbWV0aG9kLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc2V0RmlsdGVyRm9ybSgpOiB2b2lkIHtcbiAgICAvL0lmIGZpbHRlckZvcm0gZXhpc3RzLCB0aGVuIHJlc2V0XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybSkge1xuICAgICAgdGhpcy5maWx0ZXJGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEl0IHNob3VsZCBiZSBvdmVycmlkZWQgaW4gY2hpbGQgY2xhc3MgdG8gcmVzZXQgY29sdW1uIGNvbmZpZ3MuXG4gICAqIFVzZWQgYnkgc2V0VmlldyBtZXRob2QuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzZXRDb2x1bW5Db25maWdzKCk6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uQ29uZmlncyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvb2sgbWV0aG9kIHVzZWQgdG8gc2V0IHRoZSBzZWxlY3RlZCB2aWV3XG4gICAqIEBwYXJhbSB2aWV3IG9wdGlvbmFsIHVzZWQgYnkgbXktdmlldy1saXN0XG4gICAqL1xuICBzZXRWaWV3KHZpZXc/OiBhbnkpIHtcbiAgICAvL1Jlc2V0IHRoZSBxdWVyeSBwYXJhbXNcbiAgICB0aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLnVwZGF0ZVF1ZXJ5UGFyYW1zKHt9KTtcbiAgICB0aGlzLmlzVmlld0xvYWRlZCA9IGZhbHNlO1xuICAgIHRoaXMucmVzZXRDb2x1bW5Db25maWdzKCk7XG4gICAgdGhpcy5yZXNldEZpbHRlckZvcm0oKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgIC8vSWYgdGhlcmUgaXMgYSB2aWV3LCB0aGVuIHNldCBpdC5cbiAgICAgICAgLy9TZXR1cCB2aWV3IGZpbHRlcnNcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtLnNldFZhbHVlKHRoaXMucmVxdWVzdEhlbHBlclNlcnZpY2UuY29udmVydFRvRm9ybURhdGEodmlldz8uZmlsdGVycywgdGhpcy5maWx0ZXJGb3JtQ29uZmlndXJhdGlvbikpO1xuICAgICAgICAvL1NldHVwIHZpZXcgY29sdW1uc1xuICAgICAgICB0aGlzLmNvbHVtbkNvbmZpZ3MuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgIGNvbHVtbi5pc1NlbGVjdGVkID0gKHZpZXc/LmNvbHVtbnMgYXMgc3RyaW5nW10pLnNvbWUoY29sID0+IGNvbCA9PT0gY29sdW1uLmRlZik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5pc1ZpZXdMb2FkZWQgPSB0cnVlO1xuICAgIH0sIDUwMCk7XG4gIH1cbn1cbiJdfQ==
@@ -26,6 +26,17 @@ export const CUSTOM_ICONS = {
26
26
  transform="translate(0,960)"
27
27
  />
28
28
  </g>
29
- </svg>`
29
+ </svg>`,
30
+ 'gra': `
31
+ <svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
32
+ <rect width="30" height="30" fill="url(#pattern0_1076_92)"/>
33
+ <defs>
34
+ <pattern id="pattern0_1076_92" patternContentUnits="objectBoundingBox" width="1" height="1">
35
+ <use xlink:href="#image0_1076_92" transform="scale(0.00666667)"/>
36
+ </pattern>
37
+ <image id="image0_1076_92" width="150" height="150" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
38
+ </defs>
39
+ </svg>
40
+ `
30
41
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWljb25zLnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jdXN0b20taWNvbi9jdXN0b20taWNvbnMucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTJCO0lBQ2xELFdBQVcsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjWjtJQUNELFdBQVcsRUFBRTs7Ozs7Ozs7O09BU1I7Q0FDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZWdpc3RyeSBmaWxlIHRvIG1haW50YWluIHRoZSBjdXN0b20gaWNvbnMgU1ZHc1xuICovXG5cbmV4cG9ydCBjb25zdCBDVVNUT01fSUNPTlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdiYXRjaC1hZGQnOiBgXG48c3ZnIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF84NjQ1XzM1MTk0KVwiPlxuICAgIDxwYXRoIGQ9XCJNMjIuNDk4IDE1LjI0M0gxNy42NzY2VjIwLjA2NDVIMTYuMDY5NVYxNS4yNDNIMTEuMjQ4VjEzLjYzNTlIMTYuMDY5NVY4LjgxNDQ1SDE3LjY3NjZWMTMuNjM1OUgyMi40OThWMTUuMjQzWlwiXG4gICAgICAgICAgZmlsbD1cImJsYWNrXCIgc3Ryb2tlPVwiYmxhY2tcIiBzdHJva2Utd2lkdGg9XCIwLjc1XCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgPHBhdGggZD1cIk0xMy43NDggMTEuNDkzSDguOTI2NjJWMTYuMzE0NUg3LjMxOTQ4VjExLjQ5M0gyLjQ5ODA1VjkuODg1ODhINy4zMTk0OFY1LjA2NDQ1SDguOTI2NjJWOS44ODU4OEgxMy43NDhWMTEuNDkzWlwiXG4gICAgICAgICAgZmlsbD1cImJsYWNrXCIgc3Ryb2tlPVwiYmxhY2tcIiBzdHJva2Utd2lkdGg9XCIwLjc1XCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gIDwvZz5cbiAgPGRlZnM+XG4gICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfODY0NV8zNTE5NFwiPlxuICAgICAgPHJlY3Qgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNDk4MDQ3IDAuMDY0NDUzMSlcIi8+XG4gICAgPC9jbGlwUGF0aD5cbiAgPC9kZWZzPlxuPC9zdmc+XG4gIGAsXG4gICd1bmFwcHJvdmUnOiBgXG48c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxnIHRyYW5zZm9ybT1cInNjYWxlKDAuMDI1KVwiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTg3My04OCA2MDktMzUyIDQ5NS0yMzggMjY5LTQ2NGw1Ni01OCAxNzAgMTcwIDU2LTU2LTQxNC00MTQgNTYtNTggNzM2IDczNi01NiA1NlpNMjY5LTIzOCA0My00NjRsNTYtNTYgMTcwIDE3MCA1NiA1Ni01NiA1NlptNDUyLTIyNi01Ni01NiAxOTYtMTk2IDU4IDU0LTE5OCAxOThaTTYwNy01NzhsLTU2LTU2IDg2LTg2IDU2IDU2LTg2IDg2WlwiXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLDk2MClcIlxuICAgIC8+XG4gIDwvZz5cbjwvc3ZnPmBcbn07XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWljb25zLnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9jdXN0b20taWNvbi9jdXN0b20taWNvbnMucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTJCO0lBQ2xELFdBQVcsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjWjtJQUNELFdBQVcsRUFBRTs7Ozs7Ozs7O09BU1I7SUFDTCxLQUFLLEVBQUU7Ozs7Ozs7Ozs7Q0FVUjtDQUNBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlZ2lzdHJ5IGZpbGUgdG8gbWFpbnRhaW4gdGhlIGN1c3RvbSBpY29ucyBTVkdzXG4gKi9cblxuZXhwb3J0IGNvbnN0IENVU1RPTV9JQ09OUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ2JhdGNoLWFkZCc6IGBcbjxzdmcgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI1XCIgdmlld0JveD1cIjAgMCAyNSAyNVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzg2NDVfMzUxOTQpXCI+XG4gICAgPHBhdGggZD1cIk0yMi40OTggMTUuMjQzSDE3LjY3NjZWMjAuMDY0NUgxNi4wNjk1VjE1LjI0M0gxMS4yNDhWMTMuNjM1OUgxNi4wNjk1VjguODE0NDVIMTcuNjc2NlYxMy42MzU5SDIyLjQ5OFYxNS4yNDNaXCJcbiAgICAgICAgICBmaWxsPVwiYmxhY2tcIiBzdHJva2U9XCJibGFja1wiIHN0cm9rZS13aWR0aD1cIjAuNzVcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICA8cGF0aCBkPVwiTTEzLjc0OCAxMS40OTNIOC45MjY2MlYxNi4zMTQ1SDcuMzE5NDhWMTEuNDkzSDIuNDk4MDVWOS44ODU4OEg3LjMxOTQ4VjUuMDY0NDVIOC45MjY2MlY5Ljg4NTg4SDEzLjc0OFYxMS40OTNaXCJcbiAgICAgICAgICBmaWxsPVwiYmxhY2tcIiBzdHJva2U9XCJibGFja1wiIHN0cm9rZS13aWR0aD1cIjAuNzVcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgPC9nPlxuICA8ZGVmcz5cbiAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF84NjQ1XzM1MTk0XCI+XG4gICAgICA8cmVjdCB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC40OTgwNDcgMC4wNjQ0NTMxKVwiLz5cbiAgICA8L2NsaXBQYXRoPlxuICA8L2RlZnM+XG48L3N2Zz5cbiAgYCxcbiAgJ3VuYXBwcm92ZSc6IGBcbjxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPGcgdHJhbnNmb3JtPVwic2NhbGUoMC4wMjUpXCI+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJNODczLTg4IDYwOS0zNTIgNDk1LTIzOCAyNjktNDY0bDU2LTU4IDE3MCAxNzAgNTYtNTYtNDE0LTQxNCA1Ni01OCA3MzYgNzM2LTU2IDU2Wk0yNjktMjM4IDQzLTQ2NGw1Ni01NiAxNzAgMTcwIDU2IDU2LTU2IDU2Wm00NTItMjI2LTU2LTU2IDE5Ni0xOTYgNTggNTQtMTk4IDE5OFpNNjA3LTU3OGwtNTYtNTYgODYtODYgNTYgNTYtODYgODZaXCJcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAsOTYwKVwiXG4gICAgLz5cbiAgPC9nPlxuPC9zdmc+YCxcbiAgJ2dyYSc6IGBcbjxzdmcgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgdmlld0JveD1cIjAgMCAzMCAzMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxuPHJlY3Qgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgZmlsbD1cInVybCgjcGF0dGVybjBfMTA3Nl85MilcIi8+XG48ZGVmcz5cbjxwYXR0ZXJuIGlkPVwicGF0dGVybjBfMTA3Nl85MlwiIHBhdHRlcm5Db250ZW50VW5pdHM9XCJvYmplY3RCb3VuZGluZ0JveFwiIHdpZHRoPVwiMVwiIGhlaWdodD1cIjFcIj5cbjx1c2UgeGxpbms6aHJlZj1cIiNpbWFnZTBfMTA3Nl85MlwiIHRyYW5zZm9ybT1cInNjYWxlKDAuMDA2NjY2NjcpXCIvPlxuPC9wYXR0ZXJuPlxuPGltYWdlIGlkPVwiaW1hZ2UwXzEwNzZfOTJcIiB3aWR0aD1cIjE1MFwiIGhlaWdodD1cIjE1MFwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCIgeGxpbms6aHJlZj1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBSllBQUFDV0NBWUFBQUE4QVhIaUFBQW1zVWxFUVZSNEFlMTlDWndkVlpYM3ViVyt0WmZYKzc2a3MwQ0FnRUZSRUJNbGdxQ09Bd2dvS0RvNE91SUNNZ3JqZkk2YXp4MStHb1JSK1NFR1JWeFFRVlNZUVNGb1FBZ0taaVlrQkpKT2Q3clQrNzY5dGVwVjFaMXphM212M3V0T1NEb0phdWYrNGVVdFZYV3I2dDV6ei9JLzUxWURjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0N3TzVDaTNjM0RrSVBtL1hIWVppTzdIWUVkSGh4cUx4VXJZbC9iMjlsTGZiZ3B3dkN4RU9MRmhuYlZ5NVdseXFQVHpTa0QraTVDb09iZTZyRUxPRW5xeHB1bDkxYldWMTlTVmhWYVlSQTRnMUdnMCtzRjRQUDRFT05yTDAyQ3NEeWx3RkVDQUV4UGVmU3RKWGY5NE1oTy9xYnlrNU0xalNTUDB2NzI5TmRYUnlGQ0ZJTFJOOWcwOXBZRnlWVmRYMTlheTh2Q1hTOHFDZGV5ZzVjdVdQVnhmWDM4NnZsWkI0ZVE4VWZ0ekhrNGtqY1UwaktkZGFQbmF4bE5MTGx6VkdubDZNcXFXUkFhakNueDlabmJ1RzdXVnNYZFdsb1diKytlU3Y2MnZyQlJLRk9FcElSaDhFelVOeGNoWUhVUVV0MVhWVnY4akpjYVVHb3ljTWpreDhYUnpjL01HMUdpSlpES1pBSTRUQ29MN2dvc2JHOWZWTkpXZndyNUhOcjM5NTlVM3JmdElYYlRzNHVWMWRTZXg3YVdscGVYdDVlV2x2dU1BVFdBbGU2OXVxbDdXZmtyN3RTMHRMWFdyVHU0WXJLcXFxbTF2YWJueXROV3JYa0xCZW1QUk9VOTBOMlBKd3g1Z1ZGTmt4N0syMjNyS1N1aTVyYlZwbEI1YmVBSzNuSGZucVYrOC9DSjNYOVYzSEZtb0hRLzE5Uldyemx4M3pwdFBYcjM2em82T1pUOURnV3hudjBjaWtTbzBrV2U3dTBuQXNlVEFCTVBXT0Z1YWEwL2V2NkoxNHBrWTBLMVZjdmE1Q3BXZTJsaTlMN2ZuUTJ2LzBQYkZpejdxZmpzY1liRDNXYjkrdmYxKzVvb1ZINHZWMXpleHorME45WSt1YUd2N1pFTkR3eHZoQk1aU1ZkZWVFMDI3VzF0dlZzWGtUNGFuUmtJcE5XSlJRUldqSkduVVFhRHkrY3B5WVc0bXZoVitPbnpQekx0Ym55Zy9wMzVuWmt2ZkhuQUV4enBFKy9hMjN0NWU5aTRPVFU3K09SMlB6N1V0YS91TUlpblRsbWsySjFMeDJiZTk3ZTB2dlBqaWk4eW5PK0VpeDZVb1dPeWVySTJvVFRZSEF0c0daM3V1bURKTlN4UWlWQUJURUlnQmNSSVN6alptckwwayt2b1h5c3UvQmJPekdZWElEeVhYbHp4WldsNzVJMjM3OENRY09TRXFxWXI2RjBrUTBxSkVNL0ZFNWtGcUdMK3NxYXFDMGJHeDUrRUVJMWlYbW1BeFRVVTN3a2JodmNMalhXT1QrMC9ScEtnaEVpSUNzUWkxTnhNUUNBR05HbEJ1V09LeklaWEVwK2UybUhzblI0VjFqWmRsV2t0dmdGZDFmeDIyd3BHQ1lsU29ZOVNJMFdLWVJBT2hXK2JpMHovQ1V5Y3FxNnBRcVUzcWNBSUoxMUxpWGJ4Qm8xY3YvK0hlb2JuKzF0bEFtUUhFbE5nbXh3NVJaemRxUWx5SWtOZFpDYnJTb084QnR4L0NYZG9tbU8ycmdObnpMNGNqTjExc2YyRnFhbXF1dTd1N1V4Zk1iY0dLMGgxN3U3cCtRd2o1RURMNVVUaUJ6T0ZTRWl4Mkw5YUxIYTMzRFUzdjc5Q2tzQ0dibWl0VXpuZ3l5YVAyZnc1eExnaEFtckptYlhsNWVTUGJuaG5Vbm9kWURLck42VDVZSEN6M09zYTFsUGF6cUJLZGFHMXRYWWVhYkhKbVppYUM5RVFFVGhBc0ZjRmlrbUwrc0gzRjY0WGt5QlZwcGNRa2hFcEFoSnhRRmUvTS9rMmkyTFVZSU9nQjJlYXc2TDdSUUZpdStNSFk3Yzl0ZzhYbkJHMkhmbmg0K01EMjdkdG5LMktsZDhXaTBRcWtJNjRjSHg5UGdDOWFYY3BZU29JRjY0VGtmVVBaRElxU0pRSVZjeUtWczVHUUZ5b0JzbUNoQ01nS2hZeVdLbU8vaHZUTWFGSk12ci91Mzk3MEJ2ektmS0xGK3FDbWV5cHpiSHhxL2ZNdnZ2aU5lSHpxMFpOV2RkeURXaXNNSjRCSlhBcUN4UWJRK24xZDNTVWo4WWtHUTRwWW9zWDBsSlhiNkI5Rm12dU9xZ28vQ0piSnhNRGVlVzc5eW5Mb21vWGhXT29KOFNldlpuNFdFeEFCRnVkMDI2ZnE3KzhmYWxuWjhxVVFDVy9VTGZwVUtCUjZIM0RCK3Z0QmVWRDVYQW8wcG1LRVlrMVZERS9ZTURnRWxFRXdzMEtTL1Y0TjlDVG0yRU1pWlptZDJaOEZiNy9nVm5CTW04ZEZIU25zUzBFYW9zOW9sVGVHQStFdEJ3NGMrRGI0VWt4TEZVdmg1dWlITUhjWGc3azFGTUswV0R0NUlGQlk2NExjQTFEOGtrQ0xWMTBWQ0xMZnhwcXo3ME5GaGh0RUFYVERTbytQZlFKKy9kcm5Xejl4T2pPVlRIdUpjT1RhUzVBdCtTZVJsQnBHb1lvdGEyM2F1Z0lCaHlaZy8rNXhQQVZybmdsWml5N055cFVybzZ4d0RzUHZFc3lwaFlxT0liQUlzM05oMExwZ2ZHSWFCU2xBbUFsY3FBSEhCRHBiTEthcFdFaUlvakkxck1BWGJ4MzdycjBoVWFzN2UxdG9KeVVCblRBVG5wbzdyYmVwYkVxNitidzNROTUzT2hMdFJYZnYzcDNvRzU3TmxsZUhYZytxOU1mT3pzNXVPTHo3UEJhODExK0ZPenNlSjdWSlN2WmF1M2F0akdtUE0wUmlYaDVRbExNdHd6cFprcVVnRzFwS21jNGdobUdhSTBRZ085SzYvaXRaRHZ4MlpHUmszTmZPWWMzcTdvYUsrN3VNK0tVQ0tockJGRzFOVkh4empsQ1orQytHZ2t5dkVRdUNrSUsvakRYUXB6NDhSbjYwS2Z1NEVvQU5jUE5yZDBFOGVRb1M2YWk3cUdUdlNMS1lyY2JycVYzMVNPdTlFNWYwYnQyYU9aTHI4L1p0YjJyc0Z5S0JUZW01OU03QndjSEhEK000SnNCbVIwTkRZNFlRV3dFVDk1MWlCM3FmYmFUeEpHR0JXaGJyVytxOU1rTkRReE5lTy9BSzRsZ0tsaGRHbThqZEJMUjArcE1CUmJ4Qnkrb1ZZRnIyWUFxb0pTeDdVQW5yR0VjOUNZNWlFUEZkbEJWVGxPVEhrMm50VTZPam83djhiUjdxeExzNmFycEc0cWxsQXJwS2xESWxtT2V0bkg4MWg3MmlBUlNtREZTaFl6V2NsR0U4cFVJRnlzWVhTc0xHNXE0UnFUUURWOGFhNGFkd3o3bjkwRG1OM0phS2tvaVN5cHd4cGdxcEprQkhiVHd3UUM3SmZQYnhMWWQ3ZlF3MU5SQ1c1Y1o2WGRkRCtHcERKLzVSSFBRVUhMby9hVTFEdzl0VUFnOVIwekNJTGNmRW5TUzBJREFoakZwaGZjdjZGYThJSTE2aUtnckd2a0pWWDEvZkRMekNBY094RWl6UHBGcE5UVTN2a3FpMU9aMUpodkJtbWZJZ2pxUDhzcWZDZmtHeHN5d0JCUXhLWk9XUmtFbmZ1ZDNwZkJsZjJZVU8ra2NvSzd1bFNoenNrK0loaXNwRnNBSmVjMkRnT2ZGYXdCQUlsTkVreEZKaGVIQldoY2ZWQUZTZW5vRDZVd3hvYjhyQytDNFpwTFVwNjhZYlFaalpCL1ZWbDYyZWhFL1ZURVBuUUFpa3NJV3pRWEI2Q2s5ZzZBUmlRU0pGSzUrbzJEYjAxdEY3ZHliQnA2VVBjbSsyRExTYzFQR1IrUFJVV2dGbE4ycm1aK0hRV3M5dXM2bXVadFRNNmxXWWh5cnVMTHRaNGsxUzRpaGlSN0NjZlZFV0lSeUsvbkwvd09DbDhBcHJyV01oV1BZRmI5eTRVZmpCNXMyUFpEUEo4MDBVRUVFUTdSUkg0YTVPWnpnZFVYeHFQOHNFVnRZeUJWVUphRUZSUHJlenYvODVjQ29Pak9LVDM5WmV0ZnlDNUV4bnY2Q2lCR2ZSRE1yNDd2aFpsS29va2JQUWdsbWRYMDJVd3VZSWhaUGVyOEYxSDQvRHE5b2RhZlZnWmNCS3pJQlFXZ2NEa2dSTmdYZWQzcHE1UU8yQlBVa0tzb3dYYlRsaHBIT3BxTWtNRVZwaWVtU1VYcG40ano4KzRPOExPQWhPV3JQNnMzRXQrVWNyWlowNk56WDFlQ0tSZVBFZ3U5b0N0Nnk1K2VQcGRQeDJ4eHdUdXkvemZVZkJWZjZ3RUZObi8wcFkxbDBVTFVGZWlhYTNFMTVCSEszejdwa0I0ZDRmM0wxUHp5VE9SOHR2b01sajgyZUJ0bDNCd2MyRWRaQkY1MjFqd0M1RDExbXdqS3l1cEUzdDJaVnRiZjhBamxETnE1VWFwbktiTFZBb1JJS2xnNGc2a21MTzJiSmthSVpweUU0RjREMlRWZkRneFNiODRxVUorUEd0Y1hoMVBWNDBHZ2VEdmVMT08zUFhnMEV3c2tsb25KdUZlekwzN2VpdDZnbGNEcUVRTm1paUlJbWVTbUNueFMrU0JUMFRVaUtRdkovY2Z2NjJqcXZPS29GRFI0N2twZVR1V3dKVXJVelMyZjlHb1hvSkR0SC9IYllkdHI1RXdZNUdoSng1ZDRVN0wxUkYvWnUvUnZaUnpPb2FkaHE5MjkzaEZTczZPQnJCeWtYdTdhME5QYW40WERzNlVlN2crNE83blBEWWQyeXhNV0luUnArSzJVblROSnhOMUc5SkhPK0wvV3RrRFN1Wml2LzY1UGJtODJBQjRacVkwNnBGSW9GSUp0SGtoWEZrMGNTWkthaFB6OEwvSDYyQmp5d0x3Y2NmSFlRdFA1K0MxbEpzWUFyUGtuRWF3VXRndXNCK0YvQmRSTXRwSnNFTWh1RHFzU0Y0eS9nWG52Z0ZuQ3ZkaTF0RVIwdTU5K1VXU1lBUUVHRGFOT25veU91NnpnMU5CYi95bGtzZ0h6a1c5eTFkSGw1NVpWeVl1YUJaYXZ0YS9acDZGbVV1WkFadGJaVnRyUDFpSnBVb0lZNS9WOWlYT2EzbHZXaitSUW9EYTZhd1RFTTdwNzY2K2h6ZnRSMTNISTFnMlIyd3NtMzVJK2w0cWxsZ1FrWHRrS3RvTi9zK0RIVFFDZE5rNFpMU3A3TW0zYWhualgrbGt2alYwdExZRGh3aDlPL3RlemFvajRsQ3dVUHB3djlOaThZVHFTMHRsWlZzbFl3QnZzNjVTcEphSi9IVUZlaGpMek1Tb01ZcjRiYXhHRndXcW9QeVc2WmgrL01UY0RFbWFES1RlQkNTQ1lTSnZlQzhxTTl5ZUtjVlZSQzFjYURsVmZEUXorK0VVbmpUdHZkQlkyd1lIWGNXYnVhTEpPd0RiUE1vNHVoWjBEZEIwblR3QWZqaHBiK0J5eTRqenNiQ1NXQVFXcWRyK3ErbE51WEpNbEpXQlF1RHNycDdiUGFUYnRRbkZBdUxvNWdLdFQwOXFHdE9oS3hoUWpBU3ZEdC85UEhIWWs5aVQ1UDI5c1pMMDNOb0NnaGhha2ljMzV4OXQ4Z29tRkk0R040M1phYmVQRE04YzZDNHNSYTJrRUVVdG1ET3JsNGtqdFp6YWhCeTdWbUdZUWl4OHJLdVBkMEhsb1BQNmYzVFNlMmJ4d2FIcnRtTFN1VjVFb0RSRlRxOC91bzRYSHNWc3ZFc1FNdzY3THA5ZGRoeUZ0UEFvdVJlbXVCajRmMVhqZTQ2am9VUXJJSWQyT3dabFI5Y3MyTGlGR2t2ak9tV3pXOGRiQlFwOW9PVUVhRytlUXJHNkpudzJVZDd3T2Nib3NDMG9jczNFemd0SUp1enBqaHhZR0s0cUFYYlIydXNyZGxzR3ZvMU9CT2RhZ25iN3VXNlBaODI4RjM1d3I1WDdoZ0x3eUpCVkpTM0R3Nk9QZ3hIUnBVc0Nvc1ZMRHRpYVd0dW1FaW5rakZtMXZ3M2FEZE03Qm9vcHFta1NMVGs4ZTZldmczK1l5SGZLOTdzaHVWMTFUdG1kSDJOekdZa3kvY0pYaGh0MmVxTENZaXNLQjhaSEJtN3c3dVEwMXNxcnhyT2h0YUJZUHg1dzl1bWhFOThJQk9Pb0E1QlV5Wm9wbUN4c2NFK3BaWnVxWFcxMEhyU1dtZzJOT2lRd3JEY21MT2JZQldBeEE2dzNEYnRpOVBSc2taQXloTDRmNUVJZkJYdTNIQUxEQTNlQ0diQVd0Qi96STJ4YUlLWkVLRTVCdUpBNEYvTUwvL2h1KzRlUWFSaEtQSjZHZDlSZm1mZmxvQzJ0cm9XUFdQMFVzT3dHQmRURVBFQjVJVEhQU2YrVEZHbEN5YTEyOHI1VmptblBxL1pLRlhVNFBpQmdhRjZ0NEcvT2NHeTd5d1dpLzFUU0NSM215Z0NoSGh6dndDTU9pQ0JVR0IvVDkvd01pZ1NvaUxZd3JZZU82ZS9vLzE1SzUwcGtXUXhqcXBPdHJCNVdaUjFOSld5WVJxQmFHbTA5OFdYdXM5MWoyT3JhalQyb1hYOTZXVzljVEVKMFNpRmVMendZcXBuQlVnM0VnZ08wUFZuTlpwYk4yNDFQdlZlQ0gvdW0vRDVZQVJ1ekV5QmhaUlBUbGc4R1VHdFpTbmxJTHp3RjJnNzQzWFFCM2RkT0FsOXZXVkFaV3A3Wk1WbTN4NVJPNTdSUWRVVWFPcDRFdDcvWCt1OHplMXJsbjh0bFk0UGpIU09mQXZtUjVEMjkvYVdwc2RTaWZnRzVoczVBbHlzVTEyYWdVMElOTUdLSWsrbDQ0bHFJb211eXZMMm5hZk5rRHZGK0ZBTmZhUi9jUEFPT001YWE5R0N0YXlsWVMrYXdSVlVFbndoci8rbWtMWVcwYTBXMVJYN0J3YllpcGlYdXhHL0p2UHY2NXVpdWUvTXZCVHdXdTBQdlhQai9sRDY4OUNadFVETzZwanZJNndjMlVrSzRqRW1LM2szV1UweSt5MEZQY0Y3NGJZdDEvN1BuK0NhVTgrQXpWYkNOOVB6RnNmSzZDQ0VLcUFQQmE4RnZuYnFHMEF2ZVFLMHBHdjZGNEJGa1R5U0pMR2k4Z2ZtaDMvM1Q1QmZTR0cxdExSY0dRNEd2cGlTdEoyOUwvUmVYTnludGJXMXEyVml2b0RwQ05zRUhveVNZWUxDdERnUnBXZlZZT1FDTFRVNzdkeW9QMlNFNHVadGc2Z0VRbW5VV2l6MzZVWk54d2VMY2Q2WnRtckVhMStCWTBmQnA2WUxLQVBHMDRuaWs0Y3BWRkMwM2YrNStPYlo5Mkt5Vk5qLzl2czN4dTZLTjBNVXplU2NrWVdoTVJXNlJ4WFlQeU5EejVRTWZiTWlEQ1VFRENNSlRNNkVJVGp4WWJqeHpCdkcveGNldGlXSWV0Nkk4ektkS3hCa0VjVXhEYzNKQkh3RlByM3JTV1M0dGdJcjlpS1dOZStxV0dtRW9rc1FLWHV5U0tob1kyTmpVRGN5N1hPSjVFMnpZN09mTDdwK3UrTWlxdnhqUFd2ZldvNno4cC9BK2Vwb0g5dEZzTWpYMGJUT0VGVjZtcEVTMUl1c0MveXJYUERPM0FxcWFabFFXMVBUUnNoUDRPT0NSVFVjRGdUV3BsSXA1MXBkOWhmbUVjK3NnTTc4ejl5WCtWaElXeTUyQnRremZPcStKd2ZnUFRzKzF2R2Q0YXA2VXZsQk9LWHNBRVFZYThFc0RncUNUWEt5ZkllQ3VUOGN3Q2x5OHU1T2lMUGhGNlBZUUNsWVlobnFOR1JPcVdHTGlTVXh6YVRoRVNyOGUvOWVhSUF2SDNnSExJOVlrS1drNkc2b1RacVcxazdCOUxsdmhMelp0enNtVUNaZkdZaEU5d1FDQXc5UGowM3ZoRHluWk8rM3ZLN3VEZWxNWm8yRS9oTHJUMUxnOGJrN2tsejBSeFJKd2F6cStQM3NTMGdydlpFNnkzSnA3bUo4RklXajRXeUZ4cnhoZEYrek4zVjAyRS9TK1p2U1dIaDk5R1RuM1crbDhyT0QzWU1vSU9lZFNEenJibHpvQnNTaUF4Zno4c01iUk5MVjFaVWQrdHp2dndkWFBkMGFlNEcrRHBycTlrQkl3U2x1T1Bzd3E0RnN2TmhxYnZ2WFd3SHozL0NxWng2Q0ZkZThGVW8rK3RINjJFd0szcXBVd3F5QjZVMExVNWxJNW9PTy9GZE5HendOWFYxenNJMThGVUtzUmtMd2FTMzBuK1ZLZ0tyTWV0aTQwUUlmd2RTeXF2M1NORkhONU5oa0p5azU3V2IyaUNRb2ROb2hLZEROU05xeEkwU3Z5OGc4YzJZYk84WUZvcmdMbTl6MmhhNnhybWVDd2NoZU4vMmF5OFBtL0RIaWkweHc4TFNNSm1Vem9XKzVPeHdYMG5SUlVXRkZlZWwzZ29wOHJUV3Yrc205ZVdCWkVDVWxxS0g2L2Z2M3p4NnNuWTYyNXZjZ2ozQWJoalhUcUV6c3hteGhkYnFIcVhhM1pOMmUxSlRaMW9BaUtDa2pjMlpQejlnb0hONjkyUzBvWDFoM2t4Nk4zd3lqYU9SUUxhQ0JRMjZuNUFGcFJQcWY1RXVHYm9Xc0dEUlprcHFZdkZPN3A2dDc0MFlRUHZOcCtDVnFyWGRvQ1pzaTFjVUFLTWtrWEJ1cmdUdmgyK3ZpTURRWHR1V0RNRWM3aXducTBzM3cvcWYvR2ZJVWcrMEMxTmZYVjVaV2xXNmFISnQ1Y0d4NCtFRjN1eWRZR0YwM1g2N3I2Wjhod1c4ejk5UVZ5VUxmMWZuTTlDMVNIZ1pxdnlxY1FIR3ZqY2JHMktWWmpkd3ZPY0d6TU45NUJ6OU5ZUVZrV2REUzJhYkJxYWtCT0E1WWxHREZTa3Z2REFYa0Qxa0w4amxzOVI0QldWWG1xS2pXRklYWEJXaHRhcmdobFl4dndueVdjekZ1WEUyTFB2dmJWbVFab3dMYTBOOC9NUVNIQjNhUGRxaW1mbWJkZFZwdzdqWklzMUlMOU5OTUUvUEJYdkRsQmxTeE1sREw2SC9CRTlZbnRidWYzanZVQld1cld1QXhJd1BsMlZtZ3dScXdIdnhQaUY3Ky9Cc3ZndVdUOTBOR1FIckJJTkJTbllSZnExWHd5Q002K0RSMDQ4bXRaeVdtWjBZWWYxZS92T2JkaWRIMGMzTnpjMTN1WnFlY3BybCtOSjFPVnpNejdXa2F4M0w1ZlZiYnQ3SWpiVWtOZnFkL2NPaWprUGRkN2ZlMlJtd25rNnAyK3JPWVFNM1RRSGI3R1BKSzRjaVcvdjVCbGdFNDVnbnFSWmxDTlNDTldZZW8xV1RLQnhNZGdmVEVSTW1oMmtHV1JtTStHa3N0aXFMZ3FHejBBaGd2VnZ6WnJyVmk2MDRKT2RJUW1WMmNuYy9VdnZ6RTdkQlVQbUNUWWtqck9Kd0M5cW1GTDBPd3JSbU1UMW5haTFOdjFVNG5lK0RXYzU2b3YzRDVOTXB5VEUvQkYxQ29pRFlONGtYWHdHL2duajg4QUtHU1lmVHlCWWdFQkRHaC93c0tsUWI1eVdxejdsb3FlU0FXamQxYTN0VDBMbEllN1hXRnlpdE50aG9iYTY1SGY3VWF1U2lMK09pOXdvalFNVzFJRjRBWVVDR1p6bnpWM1dENTdwRlZjOXppSHVjT0R5bmd2NXhOYnZ1U1pHYXoyb2EyNnVvMWNCeFNQWXNTckVBZzBtdllXdHZ2WHdIazhuM01oVEd5Q21hald3N1ZEblhkZnlkVlNCME50WUFXOUxTWGw4cGdmQXdjT1p5Rzlja2RPZlBLRXNzZXIyai94bVJCRnBDRkJSaExXREErOHdiNFZMUWJQcjN1c2RKL09Pc2JELzhJeXRVeTZGVERzT0d4SDBNNzdESXVoaEFLYVVtMDAvelVVeitGUWcxaTFEVFdmMEJJQzVYN08vZGYwbGhhY3Qxcy84aU1leTIyUUxCSVVSWGxyNGpNNmg5MExGeVR4dm9BQ1FoRk43Wk1PZVpMS040SkovTWRzcXFtc0pPOEFmRUprMytzN004aXdRaFVDS3MvZERjYzB3aHhVWTBsNSthZVUxVzF5Q1duK2JRRHE5ZkEzRjhrR243WG9jNkRRYk9LcXQyZVhzeTlNRm5nNWdqUUFtclo2U3ZVWUZUSlNsbFlMQVFyV2pnM0xjanpQdDdFc0Yrb0lwRUk3V2RxWW1JRHZGdWN2ZmlGMTMwSlpXNWxjZ1p1V244NTdJRHYvK25QME5oOEFFYkllL09kNEx5M3JXaFlNem93ZEU5MVhkWHZWNjFhZGY3MHpPeDVpZUZjUllQOWZJbEFRUDk4SXA0TU1ZTGR1MGQvTkpmL3pXRjFtR3VveWVUR29oMXlIY1FLQjBVaTNvSDk2Q1krbk9NTDIvVWRJRXBXT3BrOHJiR3U3aTF3akxYV29ocXlvNXBzYWl5VlNKZFl4Rk96aGFxYktaOXdNSlEwQktrSy9Td05Gb2dNMjlyYUxnTXorMDA4bEpVak0vNU94eHlabE0xbVgrWDVYZjZVQmp1SExJa215ZExHM3ZIeEViY1p6ejk0T1QrQmRGellvWFJkMkRvRTQrT3hmRkJBNFBDaWJpWmdMRm9QV2VJZTg1TE4zL2x6VjhuUGdWenl2YlY3WWZ2MkxPVExaWXlHaG9hS1NDUndtbWxZMzhYaytUbFpKWHZHVlAvVVkxNURiRC9VVnVYRXpJNGJobTZ6QVBOcjFLZ3ZSY2hDUVF2VVVPZ1B2WDJEYnpyVVZiS3h5YWFUVTdxZUNUa2xYSGtuM3QrZnRyQXhHaEw1NUdBNDNOL2RQOWdNeDVDTlh6VHozbGhUZVplVk5mNFpXQ3JCTG9DWjF4UXJCeFVVSmJEcHdPRHdKMkYrb2Q2Q2hYdkxtcHUvbVV6RnIzZnlqdzc4blNHSkJHa1lhT3FmY0p6M1lERFlXRjlmZFY1M2Q5ODlCMnZUZzN6ZGE5K1hYVzM5QUpQSlRuL3J1cmZGU2RFUUNvY29FMkFjbUlVMkhxTks1Q3JVeWtScGZLcDU5bXU3cHNFbm5jdVd0VjFkRWd5L1l6QTEvR05JaUYzUnF2QlozYnQ3N29MOG9Oa1RvTFcxNlo1MEluNjFLSWkrM0dOaEgvcnZtL2xYVkZaK1ZES1grTzlTV2E1RnJXU3lSK0kwWXJQN2NHdllibDhnNkNiMlpNUFNWOEF3VnVlZCtHSk96QTBSaUwxV3prNVFxMEhsL2IxOUkvZkFNUkt1UmFzK0RLR2JGTUhxMHpTZDZkMmlETHdERnNKZ3h3bWgwdkJGblowSEhvSDVDV2p2M2ZaTlY3WTBmbUEyay9rZXkyb1J0Mkt5R0xJaW1ZSk9HM3JHY25SREdJVThvU2pTYS9iM2o3QkswNE5wTGhKdGFJakYzM2xxZXdXWlhEMHQwRE90azJOcklaNDVHU3l0QkNhUThGWHdNQXVGaktXRHFFdUw1WWxLdE5uSUgwWHhoOHJvZnRnZnVSNGVuZnlkcTYyZ3VycTZoa1Z0cFZIMVc1MWRmWmV2WHJIaSs5TlRpYThOVFF6dDlWMlRmYytzNzBTYTdVUHo3ejlCQWZ6VkNzN1ZFeDJuRlBMNm9qUHFLQlVZSHlOM1N5Q0N1MlV0TCtLeldCRWJPSlVSUkNqV1dBWHRPKzNpYlZrMEVsVm0xWEJsemU3ZHV3MzRLd3FXRTk0Mk45eW5wVkpYVUlFNHVhMGl6b1dCWlQ1bFNSQWtKWEIxVDkvZ3ZiNk5mdUhDbWQ1Nms1YWN1OWt3VWMwVm1BYmZidmkvTE10b0NpMi9LVlFiS21LalNqZ1lUZXRtcmJ2S1p5SGhXbmdtdnJjbUxOUDZqdXpaMm50UVBLNkFSS29KNXBMTW82R3V2OGdjRkFQRXRBU1ZOUW54UVBLOTVqZTIvOHAvSHlnb0swa0pvVUlhM281S3I2K2tNcmcra3pUNlNpTVZtN1p2Mys3UHlia2x4L1cvVFNaVEZ5QXRSOTNWTmpsQldyaHNHMkQrWElSRDdBTXZzOSs4WXl6VE1JVklhZWwvZFBjYytESWNBNjExTk00YTh4TUN4RFRHcld3bWpKNGdpMFZ5MFlpdmFjdUorQUQ1VW5XSGJwai9aaGp3L05qWVdDSVNpWVNqSWZVY05hQitKWlBLckdLVGh4Qi9WZHY4cUJPeitaYXBtVGxUaUFqVVZwYjM0emtxZzZGUUNwVk9TNmV6NU9tUVpoRVdFRzZHaHN2V256NTRqdlpaVU1TTFlXeUdRRVkwUWRWRWFHaDlkdjFRNWh4V0dRSHU0ZzZXTTYxcHExbGo2RVlWVFdmck1BZDB4blE2OVRrcGJjblhYbi85N2p2dXVDTTRPanFhQnRldll1ZnA2S2hkblUzU0YzUXp5ekxrZ3QrL0srU3VpZ1ZqSVVFcDZwOURvcGd3TFZRQ09QOXBLQmpVazdwWmdkZWNnc056UEErS295cE5IaGdZU0VzQjZXeFpVc0ZlWWVPRVUrQy9BWEN5OUl6NU16T3A5T21DYWY1T0ZlaEFTMDNWVUVVNE9JZzI5SmVaVkdxVjRBaVZXOWhWeUlzVm5SWU5WU0dYeFdJSENXZC9PcGtLNlFJWmJHbHBhUU5IcUE2VnJxQkY3L2ExRHY1aTZ3NzR4RE9YVmo4d1U2Y0dhNzRMeXhRUldsdDN3b2QrZTFiOG9WdzVqdFR5bXJhUHNiQS9PWlc2WXQrdWZUODB3SHlOSlluYlZTQ2gwZW5wRis2KzYzdDlRVVg1RHVTRnl1NXJkSUorbk5HWUFTTSt2OHA1RldxcXZJQjVGRXd1eWV6UC96RmhwTTdEbVNpMUNyZERmdjk1TEh6QnVXMkJwc2xVVWxVRTRSdnVBVWVWNmprYWpjVmdhNFdPdHFienRYVG1kMGd4MkxjSnVUb2lnQVZubGV1UE1WRVV5T0hJdHRzeGxLV0tKTXZTclFLTlZWOVpQb2dOeFJqRnhaYVBTY0VnNitRTmc0T2piRkZvYm1rYUhENXl2bURwSldlMkJ4TDY2T2lqTzVQTlp5eS9iblpTZTNpMnIyOS9WWHZOdnd0SnVFK25lalJTVm5wZWNtTHUva0FnTUpsTUp0WEtpcExPeEZTOE1oSU9UM1FQRHJMQ090c2N0clkycnRmVDJoOVFzeDNFLy9IbVpWN2JvNDh1aERDNlp1YkFZdGtjejVHMW4zcGlpdzRyOUxPUGNzeXE0NHc3a1FpSVdpWVZZUDRXTGZKWjgweTgyNXdqdEphcUJnVDBtcXZjaGE2THh0R1NZbllaY1ZkUC82TktPSFNPSk1ub0NOcEM1Zk52ZkpiTi94TTd1YmZJY3I3V3BlRE9RRy85WEc0RGt4NjFpQ0IxVm5LeVdXZXZkakl6bWlXWTFoYk1SYkxxVFF2eTBkamhUaVJ2Nmd1enYvekxmaVpVN0VkOWVHWTRKbUJVaWI4YmMvck9XRjMxcnlyYUtucXJveFhmUXUzVlR3WGpnckpvY0NvNUc2OFVNTExKV25xc3JLeXNBVHhHMHJLK2I1bk0xM2VESFNEemF0ZnpWcDhDSzhjT2hjS1BYZjJCRDVVa05MMDJwUm0xQ1MzTFhqVXB3NnhONkVaZFVqZHE0NXBlaHkvMlhwdk1tclg0VzAyV0NGVzRUeVVLeWdRVHRGeTNnaWRReEZjdDRaaEdwa1ZaMVVwQWtlNTJMMmpSOG5HMEdzdURyYm5ZQS9WamtlRFcyZG5abGNSTzBRZ3Y0MEhPMjJ6cmNCUFRKSUdBb3FFL3hucFl6Uzk1b29ESlU1TVdPdStCT3FheENJbjVrN1kyUVk5eFFDQVlHTWJZNFozZEI0YTJGZDN6a2ZvUXBQMms5ay9NVHM4K0ZZcUU2bFBUMDUyWUZScGtqNFpzYXFxc0YwRjVJSlBPdkZhd3kyZnMvTG1BMmhXUWNEa05YWVpkZFhYVmw0S2gzMCtJRjYwdDFBZjV6N2JtWVNWdHNyQm1ZR0JzSnl3U3k1b3Jyb3NuNlcyTXBnRmZjbnArY0pRRDg0a0ZVUlZYREF5TTc0TWlIL1J3Y2F4b2ZGdHpqZU5nNyszcFd5VXI0V3ZRa1I3RGtjMFhFTTA3cFBCM0oxVmpzbVhoVmppcS9wUW9vVEwwN2RPTzAwVnRzRUZEamxLVWtGc29iaTF2UFZ5L0EwY1E5N1hRUk5kcG1lelR6VTAxenphVWxhMkJRcWZqU0NhV09LMU4zejA1TXZsY2YxZi9yeWNuRXk5SmtoUnNxcS8rdmtDbFFmUVRYNHM1VDlOVkErejV1ZFJFbWorVFlldURrRzlUcEcrN3NZM2phemszN2QyOGovaDNmQ0RUb0VJd0pPMXloV3F4Q29Cb1Z2Q3VVRkJKc3I3MXh5cUMyMkdreUJTenRDd2JDMVZRZitxMUFZdkFzZEpZL3ZaY01vVkZqYlVYR29aNXJRemtiR1NHWWdaVDcyd2VtcXlzbHRpbWtPMk16bmpXRkVpUFJNbTlhVXJ1ZENrRGdrNzRLdmE4UnN3NVl2cURXT2p6b2cweTVLNitQcmFxMTR2NEF2WFY1UU1vUnhYRjNLWXZkRWYzeEJKa1VRSVNrUGRZVk5pVXllaS9HUnQ3MmRLYmVXRFBwVWdtWjk4WWpaYmVZS2FTYjhJc0FaTjFUR0RadElFckg1VGxwMFFsR0hybXdNRFEyVTBOTlp0d3RHNGdrSCsrUW02US9ZNDA5Zm1qN1BFQUliaW91M3ZrRVZpazF2Q09XOTdTOGlWTlQzL0dxZEttcmhkTVhJRW1lZjZSZ3Z2TU1HZCtHSUo0MmVEZ3lQMndDQnhyd2ZLMzZ3a1lwaGxBeldRYW0vV1ptVk9qSVhtWkVRd3BobTVaYVUwYndWbS9GN21wdllPRGc1TkZ4d0ljMnVIMk9oc0ZLNGFDUlNvOGY2Rndzek5lanVaRHZnYk5JMnRVa1RBSUVJUmQ2QmMraXVadEc1cllmV2gvUjBPaGtLNnFzNVpoeEVnNm5jYWQwaFh4ZUtxdHJLVHMxU2dVRzdDMXN3eGRDNW1zckl2bCtGejd5eW82bkdsQ0RVMnpwR2hKYUNoYVhybGk1ODZkS1V6eG5DYUtKbk9aN0RXUlRvV0d4Z29zMENuTTJ2ZUliSjlnZjlac2psWlExU2owOVBRd2N2Vm9PU1ZiUXlJMWRBcWxtUXpTckhoYU8rdU41eWFXODFRYWhmaWVZb1BLakpIZWdRQkdEam82OFh0Z0VUaGVnclhRZVE1bnhpMW1adG8rRm5aTURPYlhMeFhzbUYrcjZBUlJyR2ljQ1lpaUt2YStyQ3lZalM0clNXYTFveXpQZzRLSXhKbUYyWitzVThKajA4RGVrNWlKejdoUTUxR0NwZ0RSYXZqQ25qMFRHOTBUSGZTQkpvZUp4V3FyWTNYOG9nVDdsZm9qUW9kN1k0dnJBQUswMkFWZDBERjE1Y245WWxOSm9zU0tTUzFiSnJOV2xpMFBjYXNPM1g5YzRSUWxwNnRvTG5YbE5VTnpGczB1VnBFbFUxRkdib0g4dlhoQzVVOW5IUW1PUmlpT3hmR0wwcGF2bE1ZNm5yQk5JYjVYT0Y4WENCTjh5VnlBZkhWbVFhaGZJSFQrZGdvaU5SL1A1RE81L2p3cFU0UVpzazlRR1BNa1pKQlRlMGJMR3JjTkR3LzdId0p5WEJlTC9pMWdxUWlXYlFvcG5mOW9uNE9Xb3hBbmpjRnlqeGlLMjhXalpBRW13alp2QW1GNUJXSmtEY21pOWhPRjNLZjlMWEFlNnF6aEpvNFhEQWJhVlZrTlFFUUovSHh2Yjk4VnNIak45WGVGSlNSWVFzeTNuQndXRnF5OFIyVC9Md2htUUZSV283ODhxU2paQmQwQzV0d2lIMlVrRXN4RHQxNHZLZkx0UmliWkNMbUhvT1MxWDE2ZTNYUG5mRG9uSTFBU0xYbDhiODhCOXFpQlkxYjM5TGVLSlNOWWVDc3h2M255cHl6OGRkOEZYSTZrR0xQeFpGMDhIaitpOUVWN2E5T2p5Ym01TjR1UzZENjB3enV0MzlRNjF3SDVOSTJKZ1FEajRMd0hjeXhwSE5NNjU3OFNtSjBpQlJ5UTk4bHpmd2p4K1ZTKzdhaU5WRlU5a2o5dFlyTVcrM3Y3THd4RklsUHN3WVhVODdsOFF1dFBsWGlSSTdBVlpJVGxsWVFyNEFUQVVoQXNTb1Q1L0Q3Sk1jdjJMcjdmZk80Tk9XSmZ4NnRVUUJwYnVKUFY2UHZUVGY1NmRlSmJKT0lVb051MEtUZ00rTkxIVWhBc3lGTTFkUDd2L2xSUGJsL0lGZmdzQXJadmxEV3ovV3pKV3U1TTg4N2pDeURkSGV4bGJBV3JwNWN1bG9RcGRPSTVQMkcvZ0lEbDRNdnVINFdQU1F6N1dVYUZ2K1dseVBmZDcyZUJ2YUFiVGdBc0NWTm94L1UrWGlxZjIvVkZnVkE0NkFzUVYwY0dBZWFWb25qblhyZ1V5QzNNRXdqWFdIOC9jTksvM3NKV1QzRVVWa3A2OEx5eEhGZStPQTBpZTJMcE9lcDVMVFd2WnIwZ2ZXa3RYcGovanJBMFRLRzM4amVYWHZFeDQ3VG8zVDNrYUNGb3ViUE84NjhLK1RTSHovSytzc2VWZTAzQUVzYVN1RGxSRk1Pc3ZvZ2xpVmtwanYwc0NQWW5WTmhuKzVrUFlQOW12N3ZiMldlUmxac3VicmsrV3k1VXh0ck9zaXBYMC9Sc1lFNkkyRHBBKzJVYTlqdDdraHNyRnhKRnVMU3lzdEw3KzlCTDF0OTZwWkxReHhQWnRKYTkzcUEwZ015NGwvQjFCNHpSVEV4d1dFR0w1VDdleDh2dVVWSFNMVVZXbEdsWUJLYmo4WWRVc0lLVmVQeGNLS0pJWUFSRUltTVNtNHBFeEg0VkJFV2dnbVN5NjZKVXNvakZudHRORE10cXI2Nk9mbnBpWXVJendQRTNDeVpBUjZ0MUY5UEdzWmlRaS8yYjB4d2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQnlIZ2Y4RGZqL1VBMnNyU0pzQUFBQUFTVVZPUks1Q1lJST1cIi8+XG48L2RlZnM+XG48L3N2Zz5cbmBcbn07XG4iXX0=
@@ -7,6 +7,7 @@ import * as i3 from "../../techlify-icon/techlify-icon.component";
7
7
  export class ExportExcelButtonComponent {
8
8
  constructor() {
9
9
  this.isCSV = false;
10
+ this.iconName = 'export';
10
11
  this.fileName = 'Export_Data';
11
12
  this.data = [];
12
13
  this.isExportingToExcel = new EventEmitter();
@@ -57,13 +58,15 @@ export class ExportExcelButtonComponent {
57
58
  }
58
59
  }
59
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExportExcelButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: { isCSV: "isCSV", fileName: "fileName", data: "data", tableId: "tableId" }, outputs: { isExportingToExcel: "isExportingToExcel" }, ngImport: i0, template: "<app-techlify-icon name=\"export\" class=\"clickable d-print-none\" *ngIf=\"!isWorking\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}:host{display:flex;align-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: { isCSV: "isCSV", iconName: "iconName", fileName: "fileName", data: "data", tableId: "tableId" }, outputs: { isExportingToExcel: "isExportingToExcel" }, ngImport: i0, template: "<app-techlify-icon class=\"clickable d-print-none\" *ngIf=\"!isWorking\" [name]=\"iconName\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}:host{display:flex;align-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3.TechlifyIconComponent, selector: "app-techlify-icon", inputs: ["name", "size"] }] }); }
61
62
  }
62
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExportExcelButtonComponent, decorators: [{
63
64
  type: Component,
64
- args: [{ selector: 'app-export-excel-button', template: "<app-techlify-icon name=\"export\" class=\"clickable d-print-none\" *ngIf=\"!isWorking\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}:host{display:flex;align-content:center}\n"] }]
65
+ args: [{ selector: 'app-export-excel-button', template: "<app-techlify-icon class=\"clickable d-print-none\" *ngIf=\"!isWorking\" [name]=\"iconName\" (click)=\"exportToExcel()\"\n matTooltip=\"Excel Export\">\n</app-techlify-icon>", styles: [".icon-md{height:24px!important;width:24px!important;font-size:24px!important;margin:0 1px}.icon-sm{height:20px!important;width:20px!important;font-size:20px!important}.icon-xs{height:16px!important;width:16px!important;font-size:16px!important}.fl-md{width:200px!important}.fl-md .mat-mdc-form-field{width:100%!important}.fl-sm{width:150px!important}.fl-sm .mat-mdc-form-field{width:100%!important}.mat-btn-md{height:25px!important;padding:0 8px!important}.fs-12{font-size:12px!important}.fs-16{font-size:16px!important}.fs-13{font-size:13px!important}.fs-18{font-size:18px!important}.clickable:hover{cursor:pointer}.mat-mdc-form-field-hint-wrapper{padding:0 4px!important}.nil-subscript-wrapper .mat-mdc-form-field-subscript-wrapper{height:0!important}.create-another .mat-mdc-checkbox label{margin:0!important}.create-another .mdc-checkbox{padding:0!important}.create-another .mdc-checkbox__background{position:relative;top:0;left:0}:host{display:flex;align-content:center}\n"] }]
65
66
  }], ctorParameters: () => [], propDecorators: { isCSV: [{
66
67
  type: Input
68
+ }], iconName: [{
69
+ type: Input
67
70
  }], fileName: [{
68
71
  type: Input
69
72
  }], data: [{
@@ -73,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
73
76
  }], isExportingToExcel: [{
74
77
  type: Output
75
78
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWV4Y2VsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2V4cG9ydC1leGNlbC9leHBvcnQtZXhjZWwtYnV0dG9uL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9leHBvcnQtZXhjZWwvZXhwb3J0LWV4Y2VsLWJ1dHRvbi9leHBvcnQtZXhjZWwtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTywwQkFBMEI7SUFVckM7UUFUUyxVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQVEsR0FBVyxhQUFhLENBQUM7UUFDakMsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUdoQix1QkFBa0IsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUVsRixjQUFTLEdBQVksS0FBSyxDQUFDO0lBRVgsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxpREFBaUQ7WUFDakQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsNERBQTREO2dCQUM1RCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN6QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFHWCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLGtCQUFrQjtRQUNoQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsNkNBQTZDO1FBQzdDLE1BQU0sRUFBRSxHQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELG1CQUFtQjtRQUNqQixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxNQUFNLEVBQUUsR0FBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxFQUFFLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7K0dBekRVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDBNQ1J2Qyw4S0FFb0I7OzRGRE1QLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx5QkFBeUI7d0RBSzFCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWV4cG9ydC1leGNlbC1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZXhwb3J0LWV4Y2VsLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFeHBvcnRFeGNlbEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlzQ1NWOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZpbGVOYW1lOiBzdHJpbmcgPSAnRXhwb3J0X0RhdGEnO1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSB0YWJsZUlkOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGlzRXhwb3J0aW5nVG9FeGNlbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGlzV29ya2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBleHBvcnRUb0V4Y2VsKCkge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLmlzRXhwb3J0aW5nVG9FeGNlbC5lbWl0KHRydWUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy9JZiB0aGVyZSBpcyBKU09OIGRhdGEsIHRoZW4gZXhwb3J0IGl0IGZyb20gZGF0YVxuICAgICAgaWYgKHRoaXMuZGF0YT8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNvbnZlcnRKU09OVG9FeGNlbCgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRhYmxlSWQpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgdmFsaWQgdGFibGUgaWQsIHRyeSBleHBvcnRpbmcgZnJvbSBIVE1MIHRhYmxlXG4gICAgICAgIHRoaXMuY29udmVydFRhYmxlVG9FeGNlbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0V4cG9ydGluZ1RvRXhjZWwuZW1pdChmYWxzZSk7XG4gICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgIH0sIDEwMDApO1xuXG5cbiAgfVxuXG4gIC8vR2VuZXJhdGUgRXhjZWwgd2l0aCBKU09OIGRhdGEuXG4gIGNvbnZlcnRKU09OVG9FeGNlbCgpIHtcbiAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldCh0aGlzLmRhdGEpO1xuICAgIC8qIGdlbmVyYXRlIHdvcmtib29rIGFuZCBhZGQgdGhlIHdvcmtzaGVldCAqL1xuICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC51dGlscy5ib29rX25ldygpO1xuICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod2IsIHdzLCAnU2hlZXQxJyk7XG4gICAgaWYgKHRoaXMuaXNDU1YpIHtcbiAgICAgIFhMU1gud3JpdGVGaWxlKHdiLCBgJHt0aGlzLmZpbGVOYW1lfS5jc3ZgLCB7IGJvb2tUeXBlOiAnY3N2JyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RoaXMuZmlsZU5hbWV9Lnhsc3hgKTtcbiAgICB9XG4gIH1cblxuICAvL0ZldGNoZXMgdGhlIGRhdGEgZnJvbSB0YWJsZSBJRCBhbmQgZ2VyZXJhdGUgRVhDRUwuXG4gIGNvbnZlcnRUYWJsZVRvRXhjZWwoKSB7XG4gICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnRhYmxlSWQpO1xuICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMudGFibGVfdG9fc2hlZXQoZWxlbWVudCwgeyByYXc6IHRydWUgfSk7XG4gICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3Yiwgd3MsICdTaGVldDEnKTtcbiAgICBpZiAodGhpcy5pc0NTVikge1xuICAgICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RoaXMuZmlsZU5hbWV9LmNzdmAsIHsgYm9va1R5cGU6ICdjc3YnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBYTFNYLndyaXRlRmlsZSh3YiwgYCR7dGhpcy5maWxlTmFtZX0ueGxzeGApO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8YXBwLXRlY2hsaWZ5LWljb24gbmFtZT1cImV4cG9ydFwiIGNsYXNzPVwiY2xpY2thYmxlIGQtcHJpbnQtbm9uZVwiICpuZ0lmPVwiIWlzV29ya2luZ1wiIChjbGljayk9XCJleHBvcnRUb0V4Y2VsKClcIlxuICAgIG1hdFRvb2x0aXA9XCJFeGNlbCBFeHBvcnRcIj5cbjwvYXBwLXRlY2hsaWZ5LWljb24+Il19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWV4Y2VsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2V4cG9ydC1leGNlbC9leHBvcnQtZXhjZWwtYnV0dG9uL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9leHBvcnQtZXhjZWwvZXhwb3J0LWV4Y2VsLWJ1dHRvbi9leHBvcnQtZXhjZWwtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7O0FBTzdCLE1BQU0sT0FBTywwQkFBMEI7SUFXckM7UUFWUyxVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLGFBQVEsR0FBVyxRQUFRLENBQUM7UUFDNUIsYUFBUSxHQUFXLGFBQWEsQ0FBQztRQUNqQyxTQUFJLEdBQVUsRUFBRSxDQUFDO1FBR2hCLHVCQUFrQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWxGLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFFWCxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLGlEQUFpRDtZQUNqRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN4Qiw0REFBNEQ7Z0JBQzVELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUdYLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsa0JBQWtCO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyw2Q0FBNkM7UUFDN0MsTUFBTSxFQUFFLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsbUJBQW1CO1FBQ2pCLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELE1BQU0sRUFBRSxHQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RSxNQUFNLEVBQUUsR0FBa0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQzsrR0ExRFUsMEJBQTBCO21HQUExQiwwQkFBMEIsZ09DUnZDLGtMQUVvQjs7NEZETVAsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5Qjt3REFLMUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1leHBvcnQtZXhjZWwtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cG9ydC1leGNlbC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9leHBvcnQtZXhjZWwtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0RXhjZWxCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpc0NTVjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpY29uTmFtZTogc3RyaW5nID0gJ2V4cG9ydCc7XG4gIEBJbnB1dCgpIGZpbGVOYW1lOiBzdHJpbmcgPSAnRXhwb3J0X0RhdGEnO1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSB0YWJsZUlkOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGlzRXhwb3J0aW5nVG9FeGNlbDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIGlzV29ya2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBleHBvcnRUb0V4Y2VsKCkge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLmlzRXhwb3J0aW5nVG9FeGNlbC5lbWl0KHRydWUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy9JZiB0aGVyZSBpcyBKU09OIGRhdGEsIHRoZW4gZXhwb3J0IGl0IGZyb20gZGF0YVxuICAgICAgaWYgKHRoaXMuZGF0YT8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmNvbnZlcnRKU09OVG9FeGNlbCgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRhYmxlSWQpIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgdmFsaWQgdGFibGUgaWQsIHRyeSBleHBvcnRpbmcgZnJvbSBIVE1MIHRhYmxlXG4gICAgICAgIHRoaXMuY29udmVydFRhYmxlVG9FeGNlbCgpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0V4cG9ydGluZ1RvRXhjZWwuZW1pdChmYWxzZSk7XG4gICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgIH0sIDEwMDApO1xuXG5cbiAgfVxuXG4gIC8vR2VuZXJhdGUgRXhjZWwgd2l0aCBKU09OIGRhdGEuXG4gIGNvbnZlcnRKU09OVG9FeGNlbCgpIHtcbiAgICBjb25zdCB3cyA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldCh0aGlzLmRhdGEpO1xuICAgIC8qIGdlbmVyYXRlIHdvcmtib29rIGFuZCBhZGQgdGhlIHdvcmtzaGVldCAqL1xuICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC51dGlscy5ib29rX25ldygpO1xuICAgIFhMU1gudXRpbHMuYm9va19hcHBlbmRfc2hlZXQod2IsIHdzLCAnU2hlZXQxJyk7XG4gICAgaWYgKHRoaXMuaXNDU1YpIHtcbiAgICAgIFhMU1gud3JpdGVGaWxlKHdiLCBgJHt0aGlzLmZpbGVOYW1lfS5jc3ZgLCB7IGJvb2tUeXBlOiAnY3N2JyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RoaXMuZmlsZU5hbWV9Lnhsc3hgKTtcbiAgICB9XG4gIH1cblxuICAvL0ZldGNoZXMgdGhlIGRhdGEgZnJvbSB0YWJsZSBJRCBhbmQgZ2VyZXJhdGUgRVhDRUwuXG4gIGNvbnZlcnRUYWJsZVRvRXhjZWwoKSB7XG4gICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLnRhYmxlSWQpO1xuICAgIGNvbnN0IHdzOiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMudGFibGVfdG9fc2hlZXQoZWxlbWVudCwgeyByYXc6IHRydWUgfSk7XG4gICAgY29uc3Qgd2I6IFhMU1guV29ya0Jvb2sgPSBYTFNYLnV0aWxzLmJvb2tfbmV3KCk7XG4gICAgWExTWC51dGlscy5ib29rX2FwcGVuZF9zaGVldCh3Yiwgd3MsICdTaGVldDEnKTtcbiAgICBpZiAodGhpcy5pc0NTVikge1xuICAgICAgWExTWC53cml0ZUZpbGUod2IsIGAke3RoaXMuZmlsZU5hbWV9LmNzdmAsIHsgYm9va1R5cGU6ICdjc3YnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBYTFNYLndyaXRlRmlsZSh3YiwgYCR7dGhpcy5maWxlTmFtZX0ueGxzeGApO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8YXBwLXRlY2hsaWZ5LWljb24gY2xhc3M9XCJjbGlja2FibGUgZC1wcmludC1ub25lXCIgKm5nSWY9XCIhaXNXb3JraW5nXCIgW25hbWVdPVwiaWNvbk5hbWVcIiAoY2xpY2spPVwiZXhwb3J0VG9FeGNlbCgpXCJcbiAgICBtYXRUb29sdGlwPVwiRXhjZWwgRXhwb3J0XCI+XG48L2FwcC10ZWNobGlmeS1pY29uPiJdfQ==
@@ -26,9 +26,10 @@ export class RequestHelperService {
26
26
  /**
27
27
  * Convert the object to form data for the request.
28
28
  * @param data Data Object
29
+ * @param config Optional
29
30
  * @return Object
30
31
  */
31
- convertToFormData(data) {
32
+ convertToFormData(data, config) {
32
33
  const newData = {};
33
34
  for (const prop in data) {
34
35
  if (Object.prototype.hasOwnProperty.call(data, prop)) {
@@ -36,7 +37,7 @@ export class RequestHelperService {
36
37
  // convert array to comma separated string
37
38
  newData[prop] = data[prop].join(',');
38
39
  }
39
- else if (!Number.isInteger(Number.parseInt(data[prop])) && !isNaN(Date.parse(data[prop]))) {
40
+ else if (!config?.[prop]?.text && !Number.isInteger(Number.parseInt(data[prop])) && !isNaN(Date.parse(data[prop]))) {
40
41
  // check if value is date and not a number
41
42
  const date = moment(data[prop]).toISOString();
42
43
  newData[prop] = moment(date).format('Y-MM-DD');
@@ -106,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
106
107
  providedIn: 'root'
107
108
  }]
108
109
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }] });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVxdWVzdC1oZWxwZXIvcmVxdWVzdC1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFNdEQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3BDLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gseUJBQXlCLENBQUMsU0FBMkIsRUFBRSxVQUFlO1FBQ3BFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUM3RCxLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDL0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVB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UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FqR1Usb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOnJhZGl4ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBwYXJzZUxvY2FsRGF0ZSB9IGZyb20gJy4uL2xvY2FsLWRhdGUtcGFyc2VyJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0SGVscGVyU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHsgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGZvcm0gdmFsdWVzIGZyb20gdGhlIFVSTCBxdWVyeSBwYXJhbXMuXG4gICAqIEBwYXJhbSBmb3JtR3JvdXAgRm9ybUdyb3VwXG4gICAqIEBwYXJhbSBmb3JtQ29uZmlnIEZvcm1Db25maWdcbiAgICovXG4gIHVwZGF0ZUZvcm1XaXRoUXVlcnlQYXJhbXMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwLCBmb3JtQ29uZmlnOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybUdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm1Hcm91cC5jb250cm9scywga2V5KSAmJlxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocXVlcnlQYXJhbXMsIGtleSkpIHtcbiAgICAgICAgZm9ybUdyb3VwLmdldChrZXkpLnBhdGNoVmFsdWUodGhpcy5mb3JtYXRWYWx1ZShxdWVyeVBhcmFtc1trZXldLCBmb3JtQ29uZmlnW2tleV0pLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgdGhlIG9iamVjdCB0byBmb3JtIGRhdGEgZm9yIHRoZSByZXF1ZXN0LlxuICAgKiBAcGFyYW0gZGF0YSBEYXRhIE9iamVjdFxuICAgKiBAcmV0dXJuIE9iamVjdFxuICAgKi9cbiAgY29udmVydFRvRm9ybURhdGEoZGF0YTogYW55KTogYW55IHtcbiAgICBjb25zdCBuZXdEYXRhID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wIGluIGRhdGEpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwgcHJvcCkpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtwcm9wXSkpIHtcbiAgICAgICAgICAvLyBjb252ZXJ0IGFycmF5IHRvIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdcbiAgICAgICAgICBuZXdEYXRhW3Byb3BdID0gKGRhdGFbcHJvcF0gYXMgW10pLmpvaW4oJywnKTtcbiAgICAgICAgfSBlbHNlIGlmICghTnVtYmVyLmlzSW50ZWdlcihOdW1iZXIucGFyc2VJbnQoZGF0YVtwcm9wXSkpICYmICFpc05hTihEYXRlLnBhcnNlKGRhdGFbcHJvcF0pKSkge1xuICAgICAgICAgIC8vIGNoZWNrIGlmIHZhbHVlIGlzIGRhdGUgYW5kIG5vdCBhIG51bWJlclxuICAgICAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoZGF0YVtwcm9wXSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICBuZXdEYXRhW3Byb3BdID0gbW9tZW50KGRhdGUpLmZvcm1hdCgnWS1NTS1ERCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5ld0RhdGFbcHJvcF0gPSBkYXRhW3Byb3BdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdEYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBVUkwgd2l0aCB0aGUgZmlsdGVycy5cbiAgICogQHBhcmFtIHF1ZXJ5UGFyYW1zIFF1ZXJ5IFBhcmFtc1xuICAgKiBAcmV0dXJuIFByb21pc2VcbiAgICovXG4gIHVwZGF0ZVF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoXG4gICAgICBbXSxcbiAgICAgIHtcbiAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZSdcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB2YWx1ZS5cbiAgICogQGRlc2NyaXB0aW9uIENvbnZlcnQgdGhlIGNvbW1hIHNlcGFyYXRlZCB2YWx1ZXMgdG8gYXJyYXkgaWYgaXQgaXMgbXVsdGlwbGUgc2VsZWN0YWJsZS5cbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGJlIGNvbnZlcnRlZFxuICAgKiBAcGFyYW0gZm9ybUdyb3VwRWxlbWVudCBGb3JtIGdyb3VwIGVsZW1lbnRcbiAgICovXG4gIGZvcm1hdFZhbHVlKHZhbHVlOiBzdHJpbmcsIGZvcm1Hcm91cEVsZW1lbnQ6IGFueSk6IHN0cmluZyB8IG51bWJlcltdIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGUge1xuICAgIGlmICh2YWx1ZSAmJiBmb3JtR3JvdXBFbGVtZW50Py5tdWx0aXBsZSAmJiBmb3JtR3JvdXBFbGVtZW50Py5tdWx0aXBsZSA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgYXJyYXkgPSB2YWx1ZT8uc3BsaXQoJywnKTtcbiAgICAgIHJldHVybiBhcnJheS5tYXAoKHZhbDogYW55KSA9PiB0aGlzLmlzTnVtZXJpYyh2YWwpID8gTnVtYmVyLnBhcnNlSW50KHZhbCkgOiB2YWwpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgZm9ybUdyb3VwRWxlbWVudD8uZGF0ZSAmJiBmb3JtR3JvdXBFbGVtZW50Py5kYXRlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gcGFyc2VMb2NhbERhdGUodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgZm9ybUdyb3VwRWxlbWVudD8ubnVtYmVyICYmIGZvcm1Hcm91cEVsZW1lbnQ/Lm51bWJlciA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIE51bWJlci5wYXJzZUludCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiBmb3JtR3JvdXBFbGVtZW50Py5ib29sZWFuKSB7XG4gICAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2hlY2tzIHZhbHVlIHRvIGRlcnRtaW5lIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIG51bWJlclxuICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdG8gYmUgQ2hlY2tlZFxuICAgKi9cbiAgaXNOdW1lcmljKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBzdHIgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHN0ci50cmltKCkgPT09ICcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuICFOdW1iZXIuaXNOYU4oTnVtYmVyKHN0cikpO1xuICB9XG59XG5cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcmVxdWVzdC1oZWxwZXIvcmVxdWVzdC1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFNdEQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3BDLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gseUJBQXlCLENBQUMsU0FBMkIsRUFBRSxVQUFlO1FBQ3BFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUM3RCxLQUFLLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDL0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzNHLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUMsSUFBUyxFQUFFLE1BQVk7UUFDdkMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM5QiwwQ0FBMEM7b0JBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBSSxJQUFJLENBQUMsSUFBSSxDQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDO3FCQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDckgsMENBQTBDO29CQUMxQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQzlDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUIsQ0FBQyxXQUFnQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUN6QixFQUFFLEVBQ0Y7WUFDRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDL0IsV0FBVztZQUNYLG1CQUFtQixFQUFFLE9BQU87U0FDN0IsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEtBQWEsRUFBRSxnQkFBcUI7UUFDOUMsSUFBSSxLQUFLLElBQUksZ0JBQWdCLEVBQUUsUUFBUSxJQUFJLGdCQUFnQixFQUFFLFFBQVEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMvRSxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkYsQ0FBQzthQUFNLElBQUksS0FBSyxJQUFJLGdCQUFnQixFQUFFLElBQUksSUFBSSxnQkFBZ0IsRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDOUUsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUFNLElBQUksS0FBSyxJQUFJLGdCQUFnQixFQUFFLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbEYsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxJQUFJLEtBQUssSUFBSSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUM5QyxPQUFPLEtBQUssS0FBSyxNQUFNLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQWxHVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6cmFkaXggKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHBhcnNlTG9jYWxEYXRlIH0gZnJvbSAnLi4vbG9jYWwtZGF0ZS1wYXJzZXInO1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlcXVlc3RIZWxwZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkgeyB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgZm9ybSB2YWx1ZXMgZnJvbSB0aGUgVVJMIHF1ZXJ5IHBhcmFtcy5cbiAgICogQHBhcmFtIGZvcm1Hcm91cCBGb3JtR3JvdXBcbiAgICogQHBhcmFtIGZvcm1Db25maWcgRm9ybUNvbmZpZ1xuICAgKi9cbiAgdXBkYXRlRm9ybVdpdGhRdWVyeVBhcmFtcyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIGZvcm1Db25maWc6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZm9ybUdyb3VwLmNvbnRyb2xzLCBrZXkpICYmXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChxdWVyeVBhcmFtcywga2V5KSkge1xuICAgICAgICBmb3JtR3JvdXAuZ2V0KGtleSkucGF0Y2hWYWx1ZSh0aGlzLmZvcm1hdFZhbHVlKHF1ZXJ5UGFyYW1zW2tleV0sIGZvcm1Db25maWdba2V5XSksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCB0aGUgb2JqZWN0IHRvIGZvcm0gZGF0YSBmb3IgdGhlIHJlcXVlc3QuXG4gICAqIEBwYXJhbSBkYXRhIERhdGEgT2JqZWN0XG4gICAqIEBwYXJhbSBjb25maWcgT3B0aW9uYWxcbiAgICogQHJldHVybiBPYmplY3RcbiAgICovXG4gIGNvbnZlcnRUb0Zvcm1EYXRhKGRhdGE6IGFueSwgY29uZmlnPzogYW55KTogYW55IHtcbiAgICBjb25zdCBuZXdEYXRhID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wIGluIGRhdGEpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwgcHJvcCkpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtwcm9wXSkpIHtcbiAgICAgICAgICAvLyBjb252ZXJ0IGFycmF5IHRvIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmdcbiAgICAgICAgICBuZXdEYXRhW3Byb3BdID0gKGRhdGFbcHJvcF0gYXMgW10pLmpvaW4oJywnKTtcbiAgICAgICAgfSBlbHNlIGlmICghY29uZmlnPy5bcHJvcF0/LnRleHQgJiYgIU51bWJlci5pc0ludGVnZXIoTnVtYmVyLnBhcnNlSW50KGRhdGFbcHJvcF0pKSAmJiAhaXNOYU4oRGF0ZS5wYXJzZShkYXRhW3Byb3BdKSkpIHtcbiAgICAgICAgICAvLyBjaGVjayBpZiB2YWx1ZSBpcyBkYXRlIGFuZCBub3QgYSBudW1iZXJcbiAgICAgICAgICBjb25zdCBkYXRlID0gbW9tZW50KGRhdGFbcHJvcF0pLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgbmV3RGF0YVtwcm9wXSA9IG1vbWVudChkYXRlKS5mb3JtYXQoJ1ktTU0tREQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdEYXRhW3Byb3BdID0gZGF0YVtwcm9wXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3RGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgVVJMIHdpdGggdGhlIGZpbHRlcnMuXG4gICAqIEBwYXJhbSBxdWVyeVBhcmFtcyBRdWVyeSBQYXJhbXNcbiAgICogQHJldHVybiBQcm9taXNlXG4gICAqL1xuICB1cGRhdGVRdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFxuICAgICAgW10sXG4gICAgICB7XG4gICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgdmFsdWUuXG4gICAqIEBkZXNjcmlwdGlvbiBDb252ZXJ0IHRoZSBjb21tYSBzZXBhcmF0ZWQgdmFsdWVzIHRvIGFycmF5IGlmIGl0IGlzIG11bHRpcGxlIHNlbGVjdGFibGUuXG4gICAqIEBwYXJhbSB2YWx1ZSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWRcbiAgICogQHBhcmFtIGZvcm1Hcm91cEVsZW1lbnQgRm9ybSBncm91cCBlbGVtZW50XG4gICAqL1xuICBmb3JtYXRWYWx1ZSh2YWx1ZTogc3RyaW5nLCBmb3JtR3JvdXBFbGVtZW50OiBhbnkpOiBzdHJpbmcgfCBudW1iZXJbXSB8IG51bWJlciB8IGJvb2xlYW4gfCBEYXRlIHtcbiAgICBpZiAodmFsdWUgJiYgZm9ybUdyb3VwRWxlbWVudD8ubXVsdGlwbGUgJiYgZm9ybUdyb3VwRWxlbWVudD8ubXVsdGlwbGUgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IGFycmF5ID0gdmFsdWU/LnNwbGl0KCcsJyk7XG4gICAgICByZXR1cm4gYXJyYXkubWFwKCh2YWw6IGFueSkgPT4gdGhpcy5pc051bWVyaWModmFsKSA/IE51bWJlci5wYXJzZUludCh2YWwpIDogdmFsKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmIGZvcm1Hcm91cEVsZW1lbnQ/LmRhdGUgJiYgZm9ybUdyb3VwRWxlbWVudD8uZGF0ZSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIHBhcnNlTG9jYWxEYXRlKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICYmIGZvcm1Hcm91cEVsZW1lbnQ/Lm51bWJlciAmJiBmb3JtR3JvdXBFbGVtZW50Py5udW1iZXIgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBOdW1iZXIucGFyc2VJbnQodmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgZm9ybUdyb3VwRWxlbWVudD8uYm9vbGVhbikge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENoZWNrcyB2YWx1ZSB0byBkZXJ0bWluZSBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBudW1iZXJcbiAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGJlIENoZWNrZWRcbiAgICovXG4gIGlzTnVtZXJpYyhzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChzdHIudHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAhTnVtYmVyLmlzTmFOKE51bWJlcihzdHIpKTtcbiAgfVxufVxuXG4iXX0=