ngx-st-sap-bp 1.0.2 → 1.0.3

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.
@@ -193,10 +193,10 @@ export class SapBpListAddressComponent {
193
193
  }
194
194
  }
195
195
  SapBpListAddressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SapBpListAddressComponent, deps: [{ token: i1.MatDialog }, { token: i2.TranslateService }, { token: i3.StDialogTranslatedService }], target: i0.ɵɵFactoryTarget.Component });
196
- SapBpListAddressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SapBpListAddressComponent, selector: "app-sap-bp-list-address", inputs: { addresses: "addresses", errorText: "errorText", addressType: "addressType", required: "required", baseIndustryCode: "baseIndustryCode", disableEdit: "disableEdit", disableAdd: "disableAdd", detailsView: "detailsView", canEditInDetails: "canEditInDetails", useTaxCode: "useTaxCode", userSettings: "userSettings" }, outputs: { addressListEmitter: "addressListEmitter", addressChangedEmitter: "addressChangedEmitter", deletedAddressEmitter: "deletedAddressEmitter" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div class=\"address-container\">\r\n <div class=\"row justify-content-between align-items-center\">\r\n <p class=\"address-title\"\r\n [ngClass]=\"{'error-text': errorText}\">\r\n {{((addressType === 'B') ? 'sapAdminBp.billToAddress' : 'sapAdminBp.shipToAddress') | translate}}\r\n {{required ? '*' : ''}}\r\n </p>\r\n\r\n <div class=\"row\" style=\"min-width: 800px;\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input matInput placeholder=\"{{'global.search' | translate}}\" [formControl]=\"searchControl\">\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i class=\"material-icons\" (click)=\"clearSearch()\" style=\"cursor: pointer\">clear</i>\r\n </div>\r\n </div>\r\n\r\n <button mat-raised-button color=\"accent\" type=\"button\" mat-button\r\n *ngIf=\"!detailsView || (detailsView && canEditInDetails)\"\r\n [disabled]=\"disableAdd\"\r\n (click)=\"addAddress()\">{{((addressType === 'B') ? 'sapAdminBp.addBillToAddress' : 'sapAdminBp.addShipToAddress') | translate}}</button>\r\n </div>\r\n </div>\r\n\r\n <table [ngClass]=\"{'no-hover': !detailsView}\" mat-table [dataSource]=\"tableSource\" matSort [matSortActive]=\"defaultSort?.active || 'address'\" [matSortDirection]=\"defaultSort?.direction || 'asc'\">\r\n <ng-container matColumnDef=\"isDefault\">\r\n <th class=\"is-default-cell\" mat-header-cell\r\n *matHeaderCellDef> {{'sapAdminBp.isDefault' | translate}}</th>\r\n <td class=\"is-default-cell\" mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox color=\"primary\" class=\"col-auto\" [(ngModel)]=\"element.isDefault\" [disabled]=\"disableEdit || (detailsView && !canEditInDetails)\" (click)=\"$event.stopImmediatePropagation()\"\r\n (ngModelChange)=\"addressIsDefaultChanged(element)\"></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"address\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.address' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.address}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"street\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.street' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.street}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"block\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.block' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.block}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"city\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.city' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.city}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"county\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.county' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.county}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.state' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.stateName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"zipCode\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.zipCode' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.zipCode}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"country\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.country' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.countryName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'global.status' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.status}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th class=\"actions-cell\" mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"actions-cell justify-content-end\" mat-cell\r\n *matCellDef=\"let element; let i = index;\">\r\n\r\n <button mat-icon-button [matTooltip]=\"'sapAdminBp.editAddress' | translate\"\r\n (click)=\"editAddress($event, element)\" [disabled]=\"disableEdit\">\r\n <span class=\"material-icons\">edit</span>\r\n </button>\r\n\r\n <button mat-icon-button [matTooltip]=\"'sapAdminBp.deleteAddress' | translate\"\r\n (click)=\"deleteAddress($event, element)\" [disabled]=\"disableEdit\">\r\n <span class=\"material-icons\">delete</span>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: tableColumns;\" (click)=\"showBpAddressDetails(row)\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}table::ng-deep .actions-cell{width:115px!important}table::ng-deep .is-default-cell{width:100px!important}.error-text{color:#ef5350}.address-container{position:relative;margin-top:2rem}.address-container .address-title{margin:0;font-weight:500}.disable-edit{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;z-index:9;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
196
+ SapBpListAddressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SapBpListAddressComponent, selector: "app-sap-bp-list-address", inputs: { addresses: "addresses", errorText: "errorText", addressType: "addressType", required: "required", baseIndustryCode: "baseIndustryCode", disableEdit: "disableEdit", disableAdd: "disableAdd", detailsView: "detailsView", canEditInDetails: "canEditInDetails", useTaxCode: "useTaxCode", userSettings: "userSettings" }, outputs: { addressListEmitter: "addressListEmitter", addressChangedEmitter: "addressChangedEmitter", deletedAddressEmitter: "deletedAddressEmitter" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div class=\"address-container\">\r\n <div class=\"row justify-content-between align-items-center\">\r\n <p class=\"address-title\" [ngClass]=\"{ 'error-text': errorText }\">\r\n {{\r\n (addressType === 'B'\r\n ? 'sapAdminBp.billToAddress'\r\n : 'sapAdminBp.shipToAddress'\r\n ) | translate\r\n }}\r\n {{ required ? '*' : '' }}\r\n </p>\r\n\r\n <div class=\"row align-items-center\" style=\"min-width: 800px\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input\r\n matInput\r\n placeholder=\"{{ 'global.search' | translate }}\"\r\n [formControl]=\"searchControl\"\r\n />\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i\r\n class=\"material-icons\"\r\n (click)=\"clearSearch()\"\r\n style=\"cursor: pointer\"\r\n >clear</i\r\n >\r\n </div>\r\n </div>\r\n\r\n <button\r\n mat-raised-button\r\n color=\"accent\"\r\n type=\"button\"\r\n mat-button\r\n *ngIf=\"!detailsView || (detailsView && canEditInDetails)\"\r\n [disabled]=\"disableAdd\"\r\n (click)=\"addAddress()\"\r\n >\r\n {{\r\n (addressType === 'B'\r\n ? 'sapAdminBp.addBillToAddress'\r\n : 'sapAdminBp.addShipToAddress'\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <table\r\n [ngClass]=\"{ 'no-hover': !detailsView }\"\r\n mat-table\r\n [dataSource]=\"tableSource\"\r\n matSort\r\n [matSortActive]=\"defaultSort?.active || 'address'\"\r\n [matSortDirection]=\"defaultSort?.direction || 'asc'\"\r\n >\r\n <ng-container matColumnDef=\"isDefault\">\r\n <th class=\"is-default-cell\" mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminBp.isDefault' | translate }}\r\n </th>\r\n <td class=\"is-default-cell\" mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox\r\n color=\"primary\"\r\n class=\"col-auto\"\r\n [(ngModel)]=\"element.isDefault\"\r\n [disabled]=\"disableEdit || (detailsView && !canEditInDetails)\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n (ngModelChange)=\"addressIsDefaultChanged(element)\"\r\n ></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"address\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.address' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.address }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"street\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.street' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.street }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"block\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.block' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.block }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"city\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.city' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.city }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"county\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.county' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.county }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.state' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.stateName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"zipCode\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.zipCode' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.zipCode }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"country\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.country' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.countryName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'global.status' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.status }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th class=\"actions-cell\" mat-header-cell *matHeaderCellDef></th>\r\n <td\r\n class=\"actions-cell justify-content-end\"\r\n mat-cell\r\n *matCellDef=\"let element; let i = index\"\r\n >\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.editAddress' | translate\"\r\n (click)=\"editAddress($event, element)\"\r\n [disabled]=\"disableEdit\"\r\n >\r\n <span class=\"material-icons\">edit</span>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.deleteAddress' | translate\"\r\n (click)=\"deleteAddress($event, element)\"\r\n [disabled]=\"disableEdit\"\r\n >\r\n <span class=\"material-icons\">delete</span>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"showBpAddressDetails(row)\"\r\n ></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}table::ng-deep .actions-cell{width:115px!important}table::ng-deep .is-default-cell{width:100px!important}.error-text{color:#ef5350}.address-container{position:relative;margin-top:2rem}.address-container .address-title{margin:0;font-weight:500}.disable-edit{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;z-index:9;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
197
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SapBpListAddressComponent, decorators: [{
198
198
  type: Component,
199
- args: [{ selector: 'app-sap-bp-list-address', template: "<div class=\"address-container\">\r\n <div class=\"row justify-content-between align-items-center\">\r\n <p class=\"address-title\"\r\n [ngClass]=\"{'error-text': errorText}\">\r\n {{((addressType === 'B') ? 'sapAdminBp.billToAddress' : 'sapAdminBp.shipToAddress') | translate}}\r\n {{required ? '*' : ''}}\r\n </p>\r\n\r\n <div class=\"row\" style=\"min-width: 800px;\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input matInput placeholder=\"{{'global.search' | translate}}\" [formControl]=\"searchControl\">\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i class=\"material-icons\" (click)=\"clearSearch()\" style=\"cursor: pointer\">clear</i>\r\n </div>\r\n </div>\r\n\r\n <button mat-raised-button color=\"accent\" type=\"button\" mat-button\r\n *ngIf=\"!detailsView || (detailsView && canEditInDetails)\"\r\n [disabled]=\"disableAdd\"\r\n (click)=\"addAddress()\">{{((addressType === 'B') ? 'sapAdminBp.addBillToAddress' : 'sapAdminBp.addShipToAddress') | translate}}</button>\r\n </div>\r\n </div>\r\n\r\n <table [ngClass]=\"{'no-hover': !detailsView}\" mat-table [dataSource]=\"tableSource\" matSort [matSortActive]=\"defaultSort?.active || 'address'\" [matSortDirection]=\"defaultSort?.direction || 'asc'\">\r\n <ng-container matColumnDef=\"isDefault\">\r\n <th class=\"is-default-cell\" mat-header-cell\r\n *matHeaderCellDef> {{'sapAdminBp.isDefault' | translate}}</th>\r\n <td class=\"is-default-cell\" mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox color=\"primary\" class=\"col-auto\" [(ngModel)]=\"element.isDefault\" [disabled]=\"disableEdit || (detailsView && !canEditInDetails)\" (click)=\"$event.stopImmediatePropagation()\"\r\n (ngModelChange)=\"addressIsDefaultChanged(element)\"></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"address\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.address' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.address}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"street\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.street' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.street}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"block\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.block' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.block}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"city\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.city' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.city}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"county\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.county' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.county}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.state' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.stateName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"zipCode\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.zipCode' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.zipCode}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"country\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.country' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.countryName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'global.status' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.status}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th class=\"actions-cell\" mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"actions-cell justify-content-end\" mat-cell\r\n *matCellDef=\"let element; let i = index;\">\r\n\r\n <button mat-icon-button [matTooltip]=\"'sapAdminBp.editAddress' | translate\"\r\n (click)=\"editAddress($event, element)\" [disabled]=\"disableEdit\">\r\n <span class=\"material-icons\">edit</span>\r\n </button>\r\n\r\n <button mat-icon-button [matTooltip]=\"'sapAdminBp.deleteAddress' | translate\"\r\n (click)=\"deleteAddress($event, element)\" [disabled]=\"disableEdit\">\r\n <span class=\"material-icons\">delete</span>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: tableColumns;\" (click)=\"showBpAddressDetails(row)\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}table::ng-deep .actions-cell{width:115px!important}table::ng-deep .is-default-cell{width:100px!important}.error-text{color:#ef5350}.address-container{position:relative;margin-top:2rem}.address-container .address-title{margin:0;font-weight:500}.disable-edit{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;z-index:9;cursor:not-allowed}\n"] }]
199
+ args: [{ selector: 'app-sap-bp-list-address', template: "<div class=\"address-container\">\r\n <div class=\"row justify-content-between align-items-center\">\r\n <p class=\"address-title\" [ngClass]=\"{ 'error-text': errorText }\">\r\n {{\r\n (addressType === 'B'\r\n ? 'sapAdminBp.billToAddress'\r\n : 'sapAdminBp.shipToAddress'\r\n ) | translate\r\n }}\r\n {{ required ? '*' : '' }}\r\n </p>\r\n\r\n <div class=\"row align-items-center\" style=\"min-width: 800px\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input\r\n matInput\r\n placeholder=\"{{ 'global.search' | translate }}\"\r\n [formControl]=\"searchControl\"\r\n />\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i\r\n class=\"material-icons\"\r\n (click)=\"clearSearch()\"\r\n style=\"cursor: pointer\"\r\n >clear</i\r\n >\r\n </div>\r\n </div>\r\n\r\n <button\r\n mat-raised-button\r\n color=\"accent\"\r\n type=\"button\"\r\n mat-button\r\n *ngIf=\"!detailsView || (detailsView && canEditInDetails)\"\r\n [disabled]=\"disableAdd\"\r\n (click)=\"addAddress()\"\r\n >\r\n {{\r\n (addressType === 'B'\r\n ? 'sapAdminBp.addBillToAddress'\r\n : 'sapAdminBp.addShipToAddress'\r\n ) | translate\r\n }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <table\r\n [ngClass]=\"{ 'no-hover': !detailsView }\"\r\n mat-table\r\n [dataSource]=\"tableSource\"\r\n matSort\r\n [matSortActive]=\"defaultSort?.active || 'address'\"\r\n [matSortDirection]=\"defaultSort?.direction || 'asc'\"\r\n >\r\n <ng-container matColumnDef=\"isDefault\">\r\n <th class=\"is-default-cell\" mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminBp.isDefault' | translate }}\r\n </th>\r\n <td class=\"is-default-cell\" mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox\r\n color=\"primary\"\r\n class=\"col-auto\"\r\n [(ngModel)]=\"element.isDefault\"\r\n [disabled]=\"disableEdit || (detailsView && !canEditInDetails)\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n (ngModelChange)=\"addressIsDefaultChanged(element)\"\r\n ></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"address\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.address' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.address }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"street\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.street' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.street }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"block\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.block' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.block }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"city\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.city' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.city }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"county\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.county' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.county }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.state' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.stateName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"zipCode\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.zipCode' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.zipCode }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"country\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.country' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.countryName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'global.status' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.status }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th class=\"actions-cell\" mat-header-cell *matHeaderCellDef></th>\r\n <td\r\n class=\"actions-cell justify-content-end\"\r\n mat-cell\r\n *matCellDef=\"let element; let i = index\"\r\n >\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.editAddress' | translate\"\r\n (click)=\"editAddress($event, element)\"\r\n [disabled]=\"disableEdit\"\r\n >\r\n <span class=\"material-icons\">edit</span>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.deleteAddress' | translate\"\r\n (click)=\"deleteAddress($event, element)\"\r\n [disabled]=\"disableEdit\"\r\n >\r\n <span class=\"material-icons\">delete</span>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"showBpAddressDetails(row)\"\r\n ></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}table::ng-deep .actions-cell{width:115px!important}table::ng-deep .is-default-cell{width:100px!important}.error-text{color:#ef5350}.address-container{position:relative;margin-top:2rem}.address-container .address-title{margin:0;font-weight:500}.disable-edit{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;z-index:9;cursor:not-allowed}\n"] }]
200
200
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.TranslateService }, { type: i3.StDialogTranslatedService }]; }, propDecorators: { paginator: [{
201
201
  type: ViewChild,
202
202
  args: [MatPaginator, { static: true }]
@@ -232,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
232
232
  }], deletedAddressEmitter: [{
233
233
  type: Output
234
234
  }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWxpc3QtYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3Qtc2FwLWJwL3NyYy9saWIvY29tcG9uZW50cy9zYXAtYnAtbGlzdC1hZGRyZXNzL3NhcC1icC1saXN0LWFkZHJlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWxpc3QtYWRkcmVzcy9zYXAtYnAtbGlzdC1hZGRyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFRLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBU3RELE1BQU0sT0FBTyx5QkFBeUI7SUFpRXBDLFlBQ1ksTUFBaUIsRUFDbkIsZ0JBQWtDLEVBQ2xDLHlCQUFvRDtRQUZsRCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFB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QURmLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixrQkFBa0I7c0JBRGpCLE1BQU07Z0JBSVAscUJBQXFCO3NCQURwQixNQUFNO2dCQUlQLHFCQUFxQjtzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBTYXBCcEFkZHJlc3NNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtYWRkcmVzcy5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU2FwQnBDcmVhdGVBZGRyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vc2FwLWJwLWNyZWF0ZS1hZGRyZXNzL3NhcC1icC1jcmVhdGUtYWRkcmVzcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhcEJwRGV0YWlsc0FkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9zYXAtYnAtZGV0YWlscy1hZGRyZXNzL3NhcC1icC1kZXRhaWxzLWFkZHJlc3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0U29ydCwgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3RCYXNlU2VydmljZSB9IGZyb20gJ25neC1zdC1iYXNlLWZ1bmN0aW9ucyc7XHJcbmltcG9ydCB7IFN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2UgfSBmcm9tICduZ3gtc3QtZGlhbG9nJztcclxuaW1wb3J0IHsgU2FwQnBVc2VyU2V0dGluZ3MgfSBmcm9tICcuLi9zYXAtYnAtYmFzZS1jcmVhdGUtZWRpdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zYXAtYnAtbGlzdC1hZGRyZXNzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2FwLWJwLWxpc3QtYWRkcmVzcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2FwLWJwLWxpc3QtYWRkcmVzcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FwQnBMaXN0QWRkcmVzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDtcclxuXHJcbiAgQElucHV0KClcclxuICBhZGRyZXNzZXM6IFNhcEJwQWRkcmVzc01vZGVsW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZXJyb3JUZXh0OiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGFkZHJlc3NUeXBlOiAnQicgfCAnUyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYmFzZUluZHVzdHJ5Q29kZTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVFZGl0ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZUFkZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRldGFpbHNWaWV3ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2FuRWRpdEluRGV0YWlscyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHVzZVRheENvZGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB1c2VyU2V0dGluZ3M6IFNhcEJwVXNlclNldHRpbmdzO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBhZGRyZXNzTGlzdEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNhcEJwQWRkcmVzc01vZGVsW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGFkZHJlc3NDaGFuZ2VkRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZGVsZXRlZEFkZHJlc3NFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYXBCcEFkZHJlc3NNb2RlbD4oKTtcclxuXHJcbiAgZGVmYXVsdFNvcnQ6IFNvcnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgdGFibGVDb2x1bW5zOiBzdHJpbmdbXSA9IFtcclxuICAgICdpc0RlZmF1bHQnLFxyXG4gICAgJ2FkZHJlc3MnLFxyXG4gICAgJ3N0cmVldCcsXHJcbiAgICAnYmxvY2snLFxyXG4gICAgJ2NpdHknLFxyXG4gICAgJ2NvdW50eScsXHJcbiAgICAnc3RhdGUnLFxyXG4gICAgJ3ppcENvZGUnLFxyXG4gICAgJ2NvdW50cnknLFxyXG4gICAgJ3N0YXR1cycsXHJcbiAgICAnYWN0aW9ucycsXHJcbiAgXTtcclxuICB0YWJsZVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFNhcEJwQWRkcmVzc01vZGVsPjtcclxuXHJcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3REaWFsb2dUcmFuc2xhdGVkU2VydmljZTogU3REaWFsb2dUcmFuc2xhdGVkU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB0bXBEZWZhdWx0U29ydCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFxyXG4gICAgICAnYXBwLXNhcC1icC1saXN0LWFkZHJlc3MtJyArIHRoaXMuYWRkcmVzc1R5cGVcclxuICAgICk7XHJcbiAgICBpZiAodG1wRGVmYXVsdFNvcnQpIHtcclxuICAgICAgdGhpcy5kZWZhdWx0U29ydCA9IDxTb3J0PkpTT04ucGFyc2UodG1wRGVmYXVsdFNvcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRldGFpbHNWaWV3ICYmICF0aGlzLmNhbkVkaXRJbkRldGFpbHMpIHtcclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMgPSBbXHJcbiAgICAgICAgJ2lzRGVmYXVsdCcsXHJcbiAgICAgICAgJ2FkZHJlc3MnLFxyXG4gICAgICAgICdzdHJlZXQnLFxyXG4gICAgICAgICdibG9jaycsXHJcbiAgICAgICAgJ2NpdHknLFxyXG4gICAgICAgICdjb3VudHknLFxyXG4gICAgICAgICdzdGF0ZScsXHJcbiAgICAgICAgJ3ppcENvZGUnLFxyXG4gICAgICAgICdjb3VudHJ5JyxcclxuICAgICAgICAnc3RhdHVzJyxcclxuICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlU291cmNlLmZpbHRlciA9IHZhbC50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRBZGRyZXNzKHRoaXMuYWRkcmVzc2VzKTtcclxuXHJcbiAgICB0aGlzLnNvcnQuc29ydENoYW5nZS5zdWJzY3JpYmUoc29ydCA9PiB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICdhcHAtc2FwLWJwLWxpc3QtYWRkcmVzcy0nICsgdGhpcy5hZGRyZXNzVHlwZSxcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShzb3J0KVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRBZGRyZXNzKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVBZGQpIHtcclxuICAgICAgdGhpcy5kaWFsb2dcclxuICAgICAgICAub3BlbihTYXBCcENyZWF0ZUFkZHJlc3NDb21wb25lbnQsIHtcclxuICAgICAgICAgIG1pbldpZHRoOiAnODAwcHgnLFxyXG4gICAgICAgICAgd2lkdGg6ICc1MCUnLFxyXG4gICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICB1c2VyU2V0dGluZ3M6IHRoaXMudXNlclNldHRpbmdzLFxyXG4gICAgICAgICAgICBiYXNlSW5kdXN0cnlDb2RlOiB0aGlzLmJhc2VJbmR1c3RyeUNvZGUsXHJcbiAgICAgICAgICAgIGFkZHJlc3NUeXBlOiB0aGlzLmFkZHJlc3NUeXBlLFxyXG4gICAgICAgICAgICB1c2VUYXhDb2RlOiB0aGlzLnVzZVRheENvZGUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAucGlwZShmaWx0ZXIoU3RCYXNlU2VydmljZS5ub3ROdWxsKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IFNhcEJwQWRkcmVzc01vZGVsKSA9PiB7XHJcbiAgICAgICAgICByZXMuYWRkcmVzc1R5cGUgPSB0aGlzLmFkZHJlc3NUeXBlO1xyXG4gICAgICAgICAgcmVzLmlzRGVmYXVsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmVzLmZyZXNoQWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hZGRyZXNzQ2hhbmdlZEVtaXR0ZXIuZW1pdCh0cnVlKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZVNvdXJjZT8uZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldEFkZHJlc3MoWy4uLnRoaXMudGFibGVTb3VyY2UuZGF0YSwgcmVzXSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNldEFkZHJlc3MoW3Jlc10pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkcmVzc0lzRGVmYXVsdENoYW5nZWQoYmlsbFRvQWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWwpIHtcclxuICAgIHRoaXMuc2V0QWRkcmVzcyhcclxuICAgICAgdGhpcy50YWJsZVNvdXJjZS5kYXRhLm1hcChzdGEgPT4ge1xyXG4gICAgICAgIGlmIChzdGEgIT09IGJpbGxUb0FkZHJlc3MpIHtcclxuICAgICAgICAgIHN0YS5pc0RlZmF1bHQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzdGE7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZWRpdEFkZHJlc3MoZXZlbnQ6IGFueSwgYWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWwpIHtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICghdGhpcy5kaXNhYmxlRWRpdCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1xyXG4gICAgICAgIC5vcGVuKFNhcEJwQ3JlYXRlQWRkcmVzc0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgbWluV2lkdGg6ICc4MDBweCcsXHJcbiAgICAgICAgICB3aWR0aDogJzUwJScsXHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHVzZXJTZXR0aW5nczogdGhpcy51c2VyU2V0dGluZ3MsXHJcbiAgICAgICAgICAgIGFkZHJlc3M6IGFkZHJlc3MsXHJcbiAgICAgICAgICAgIGJhc2VJbmR1c3RyeUNvZGU6IHRoaXMuYmFzZUluZHVzdHJ5Q29kZSxcclxuICAgICAgICAgICAgYWRkcmVzc1R5cGU6IHRoaXMuYWRkcmVzc1R5cGUsXHJcbiAgICAgICAgICAgIHVzZVRheENvZGU6IHRoaXMudXNlVGF4Q29kZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgIC5waXBlKGZpbHRlcihTdEJhc2VTZXJ2aWNlLm5vdE51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2FwQnBBZGRyZXNzTW9kZWwpID0+IHtcclxuICAgICAgICAgIGFkZHJlc3MuYWRkcmVzcyA9IHJlcy5hZGRyZXNzO1xyXG4gICAgICAgICAgYWRkcmVzcy5hZGRyZXNzMiA9IHJlcy5hZGRyZXNzMjtcclxuICAgICAgICAgIGFkZHJlc3MuYWRkcmVzczMgPSByZXMuYWRkcmVzczM7XHJcbiAgICAgICAgICBhZGRyZXNzLnN0cmVldCA9IHJlcy5zdHJlZXQ7XHJcbiAgICAgICAgICBhZGRyZXNzLmJsb2NrID0gcmVzLmJsb2NrO1xyXG4gICAgICAgICAgYWRkcmVzcy5jaXR5ID0gcmVzLmNpdHk7XHJcbiAgICAgICAgICBhZGRyZXNzLnppcENvZGUgPSByZXMuemlwQ29kZTtcclxuICAgICAgICAgIGFkZHJlc3MuY291bnR5ID0gcmVzLmNvdW50eTtcclxuICAgICAgICAgIGFkZHJlc3MudGVycml0b3J5ID0gcmVzLnRlcnJpdG9yeTtcclxuICAgICAgICAgIGFkZHJlc3Muc3RhdGVDb2RlID0gcmVzLnN0YXRlQ29kZTtcclxuICAgICAgICAgIGFkZHJlc3MuY291bnRyeUNvZGUgPSByZXMuY291bnRyeUNvZGU7XHJcbiAgICAgICAgICBhZGRyZXNzLnN0cmVldE5vID0gcmVzLnN0cmVldE5vO1xyXG4gICAgICAgICAgYWRkcmVzcy5idWlsZGluZyA9IHJlcy5idWlsZGluZztcclxuICAgICAgICAgIGFkZHJlc3MuaW5kdXN0cnlDb2RlID0gcmVzLmluZHVzdHJ5Q29kZTtcclxuICAgICAgICAgIGFkZHJlc3MuaW5kdXN0cnlOYW1lID0gcmVzLmluZHVzdHJ5TmFtZTtcclxuICAgICAgICAgIGFkZHJlc3Muc3RhdHVzID0gcmVzLnN0YXR1cztcclxuICAgICAgICAgIGFkZHJlc3Muc2FsZXNQZXJzb24xID0gcmVzLnNhbGVzUGVyc29uMTtcclxuICAgICAgICAgIGFkZHJlc3Muc2FsZXNQZXJzb24yID0gcmVzLnNhbGVzUGVyc29uMjtcclxuICAgICAgICAgIGFkZHJlc3MudGF4Q29kZSA9IHJlcy50YXhDb2RlIHx8ICcnO1xyXG5cclxuICAgICAgICAgIHRoaXMuYWRkcmVzc0NoYW5nZWRFbWl0dGVyLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLnNldEFkZHJlc3ModGhpcy50YWJsZVNvdXJjZS5kYXRhKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZUFkZHJlc3MoZXZlbnQ6IGFueSwgYWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWwpIHtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICghdGhpcy5kaXNhYmxlRWRpdCkge1xyXG4gICAgICB0aGlzLnN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2VcclxuICAgICAgICAuc2hvd0RlbGV0ZVdhcm5pbmcoKVxyXG4gICAgICAgIC5waXBlKGZpbHRlcihTdEJhc2VTZXJ2aWNlLm5vdE51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGlmICghYWRkcmVzcz8uZnJlc2hBZGRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NDaGFuZ2VkRW1pdHRlci5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZWRBZGRyZXNzRW1pdHRlci5lbWl0KGFkZHJlc3MpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuc2V0QWRkcmVzcyhcclxuICAgICAgICAgICAgdGhpcy50YWJsZVNvdXJjZS5kYXRhLmZpbHRlcigoY3AsIGkpID0+IGNwICE9PSBhZGRyZXNzKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICB9XHJcblxyXG4gIHNob3dCcEFkZHJlc3NEZXRhaWxzKGFkZHJlc3M6IFNhcEJwQWRkcmVzc01vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5kZXRhaWxzVmlldykge1xyXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFNhcEJwRGV0YWlsc0FkZHJlc3NDb21wb25lbnQsIHtcclxuICAgICAgICBtaW5XaWR0aDogJzgwMHB4JyxcclxuICAgICAgICB3aWR0aDogJzUwJScsXHJcbiAgICAgICAgZGF0YTogeyBhZGRyZXNzOiBhZGRyZXNzIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRBZGRyZXNzKGRhdGE6IFNhcEJwQWRkcmVzc01vZGVsW10pIHtcclxuICAgIHRoaXMuYWRkcmVzc0xpc3RFbWl0dGVyLmVtaXQoZGF0YSk7XHJcbiAgICB0aGlzLnRhYmxlU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxTYXBCcEFkZHJlc3NNb2RlbD4oZGF0YSk7XHJcbiAgICB0aGlzLnRhYmxlU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gICAgdGhpcy50YWJsZVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYWRkcmVzcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJhZGRyZXNzLXRpdGxlXCJcclxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Vycm9yLXRleHQnOiBlcnJvclRleHR9XCI+XHJcbiAgICAgICAgICAgIHt7KChhZGRyZXNzVHlwZSA9PT0gJ0InKSA/ICdzYXBBZG1pbkJwLmJpbGxUb0FkZHJlc3MnIDogJ3NhcEFkbWluQnAuc2hpcFRvQWRkcmVzcycpIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAge3tyZXF1aXJlZCA/ICcqJyA6ICcnfX1cclxuICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1pbi13aWR0aDogODAwcHg7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7J2dsb2JhbC5zZWFyY2gnIHwgdHJhbnNsYXRlfX1cIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhciBjb2wtYXV0b1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCI+Y2xlYXI8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkZXRhaWxzVmlldyB8fCAoZGV0YWlsc1ZpZXcgJiYgY2FuRWRpdEluRGV0YWlscylcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQWRkXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQWRkcmVzcygpXCI+e3soKGFkZHJlc3NUeXBlID09PSAnQicpID8gJ3NhcEFkbWluQnAuYWRkQmlsbFRvQWRkcmVzcycgOiAnc2FwQWRtaW5CcC5hZGRTaGlwVG9BZGRyZXNzJykgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHRhYmxlIFtuZ0NsYXNzXT1cInsnbm8taG92ZXInOiAhZGV0YWlsc1ZpZXd9XCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInRhYmxlU291cmNlXCIgbWF0U29ydCBbbWF0U29ydEFjdGl2ZV09XCJkZWZhdWx0U29ydD8uYWN0aXZlIHx8ICdhZGRyZXNzJ1wiIFttYXRTb3J0RGlyZWN0aW9uXT1cImRlZmF1bHRTb3J0Py5kaXJlY3Rpb24gfHwgJ2FzYydcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImlzRGVmYXVsdFwiPlxyXG4gICAgICAgICAgICA8dGggY2xhc3M9XCJpcy1kZWZhdWx0LWNlbGxcIiBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmPiB7eydzYXBBZG1pbkJwLmlzRGVmYXVsdCcgfCB0cmFuc2xhdGV9fTwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlzLWRlZmF1bHQtY2VsbFwiIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJjb2wtYXV0b1wiIFsobmdNb2RlbCldPVwiZWxlbWVudC5pc0RlZmF1bHRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUVkaXQgfHwgKGRldGFpbHNWaWV3ICYmICFjYW5FZGl0SW5EZXRhaWxzKVwiIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhZGRyZXNzSXNEZWZhdWx0Q2hhbmdlZChlbGVtZW50KVwiPjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFkZHJlc3NcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJvcGFjaXR5OiAwLjM7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgc3dhcF92ZXJ0XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7eydzYXBBZG1pbkJwLmFkZHJlc3MnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmFkZHJlc3N9fSA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0cmVldFwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuMztcIj5cclxuICAgICAgICAgICAgICAgICAgICBzd2FwX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7J3NhcEFkbWluQnAuc3RyZWV0JyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5zdHJlZXR9fSA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImJsb2NrXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN3YXBfdmVydFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3snc2FwQWRtaW5CcC5ibG9jaycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuYmxvY2t9fSA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNpdHlcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJvcGFjaXR5OiAwLjM7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgc3dhcF92ZXJ0XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7eydzYXBBZG1pbkJwLmNpdHknIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmNpdHl9fSA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvdW50eVwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuMztcIj5cclxuICAgICAgICAgICAgICAgICAgICBzd2FwX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7J3NhcEFkbWluQnAuY291bnR5JyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5jb3VudHl9fSA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXRlXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN3YXBfdmVydFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3snc2FwQWRtaW5CcC5zdGF0ZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuc3RhdGVOYW1lfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ6aXBDb2RlXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN3YXBfdmVydFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3snc2FwQWRtaW5CcC56aXBDb2RlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC56aXBDb2RlfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjb3VudHJ5XCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN3YXBfdmVydFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3snc2FwQWRtaW5CcC5jb3VudHJ5JyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5jb3VudHJ5TmFtZX19IDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhdHVzXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN3YXBfdmVydFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3snZ2xvYmFsLnN0YXR1cycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuc3RhdHVzfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImFjdGlvbnMtY2VsbFwiIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJhY3Rpb25zLWNlbGwganVzdGlmeS1jb250ZW50LWVuZFwiIG1hdC1jZWxsXHJcbiAgICAgICAgICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4O1wiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRUb29sdGlwXT1cIidzYXBBZG1pbkJwLmVkaXRBZGRyZXNzJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0QWRkcmVzcygkZXZlbnQsIGVsZW1lbnQpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmVkaXQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0VG9vbHRpcF09XCInc2FwQWRtaW5CcC5kZWxldGVBZGRyZXNzJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVBZGRyZXNzKCRldmVudCwgZWxlbWVudClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZGVsZXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwidGFibGVDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogdGFibGVDb2x1bW5zO1wiIChjbGljayk9XCJzaG93QnBBZGRyZXNzRGV0YWlscyhyb3cpXCI+PC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgICA8bWF0LXBhZ2luYXRvciBbcGFnZVNpemVPcHRpb25zXT1cIls1XVwiPjwvbWF0LXBhZ2luYXRvcj5cclxuPC9kaXY+XHJcbiJdfQ==
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWxpc3QtYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3Qtc2FwLWJwL3NyYy9saWIvY29tcG9uZW50cy9zYXAtYnAtbGlzdC1hZGRyZXNzL3NhcC1icC1saXN0LWFkZHJlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWxpc3QtYWRkcmVzcy9zYXAtYnAtbGlzdC1hZGRyZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFRLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBU3RELE1BQU0sT0FBTyx5QkFBeUI7SUFpRXBDLFlBQ1ksTUFBaUIsRUFDbkIsZ0JBQWtDLEVBQ2xDLHlCQUFvRDtRQUZsRCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ25CLHFCQUFnQixHQUFoQixnQkFB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QURmLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixrQkFBa0I7c0JBRGpCLE1BQU07Z0JBSVAscUJBQXFCO3NCQURwQixNQUFNO2dCQUlQLHFCQUFxQjtzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBTYXBCcEFkZHJlc3NNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtYWRkcmVzcy5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU2FwQnBDcmVhdGVBZGRyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi4vc2FwLWJwLWNyZWF0ZS1hZGRyZXNzL3NhcC1icC1jcmVhdGUtYWRkcmVzcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhcEJwRGV0YWlsc0FkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9zYXAtYnAtZGV0YWlscy1hZGRyZXNzL3NhcC1icC1kZXRhaWxzLWFkZHJlc3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0U29ydCwgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3RCYXNlU2VydmljZSB9IGZyb20gJ25neC1zdC1iYXNlLWZ1bmN0aW9ucyc7XHJcbmltcG9ydCB7IFN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2UgfSBmcm9tICduZ3gtc3QtZGlhbG9nJztcclxuaW1wb3J0IHsgU2FwQnBVc2VyU2V0dGluZ3MgfSBmcm9tICcuLi9zYXAtYnAtYmFzZS1jcmVhdGUtZWRpdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zYXAtYnAtbGlzdC1hZGRyZXNzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2FwLWJwLWxpc3QtYWRkcmVzcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2FwLWJwLWxpc3QtYWRkcmVzcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FwQnBMaXN0QWRkcmVzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDtcclxuXHJcbiAgQElucHV0KClcclxuICBhZGRyZXNzZXM6IFNhcEJwQWRkcmVzc01vZGVsW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZXJyb3JUZXh0OiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGFkZHJlc3NUeXBlOiAnQicgfCAnUyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmVxdWlyZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYmFzZUluZHVzdHJ5Q29kZTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVFZGl0ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZUFkZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRldGFpbHNWaWV3ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2FuRWRpdEluRGV0YWlscyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHVzZVRheENvZGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB1c2VyU2V0dGluZ3M6IFNhcEJwVXNlclNldHRpbmdzO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBhZGRyZXNzTGlzdEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNhcEJwQWRkcmVzc01vZGVsW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGFkZHJlc3NDaGFuZ2VkRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZGVsZXRlZEFkZHJlc3NFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYXBCcEFkZHJlc3NNb2RlbD4oKTtcclxuXHJcbiAgZGVmYXVsdFNvcnQ6IFNvcnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgdGFibGVDb2x1bW5zOiBzdHJpbmdbXSA9IFtcclxuICAgICdpc0RlZmF1bHQnLFxyXG4gICAgJ2FkZHJlc3MnLFxyXG4gICAgJ3N0cmVldCcsXHJcbiAgICAnYmxvY2snLFxyXG4gICAgJ2NpdHknLFxyXG4gICAgJ2NvdW50eScsXHJcbiAgICAnc3RhdGUnLFxyXG4gICAgJ3ppcENvZGUnLFxyXG4gICAgJ2NvdW50cnknLFxyXG4gICAgJ3N0YXR1cycsXHJcbiAgICAnYWN0aW9ucycsXHJcbiAgXTtcclxuICB0YWJsZVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFNhcEJwQWRkcmVzc01vZGVsPjtcclxuXHJcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3REaWFsb2dUcmFuc2xhdGVkU2VydmljZTogU3REaWFsb2dUcmFuc2xhdGVkU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB0bXBEZWZhdWx0U29ydCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFxyXG4gICAgICAnYXBwLXNhcC1icC1saXN0LWFkZHJlc3MtJyArIHRoaXMuYWRkcmVzc1R5cGVcclxuICAgICk7XHJcbiAgICBpZiAodG1wRGVmYXVsdFNvcnQpIHtcclxuICAgICAgdGhpcy5kZWZhdWx0U29ydCA9IDxTb3J0PkpTT04ucGFyc2UodG1wRGVmYXVsdFNvcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRldGFpbHNWaWV3ICYmICF0aGlzLmNhbkVkaXRJbkRldGFpbHMpIHtcclxuICAgICAgdGhpcy50YWJsZUNvbHVtbnMgPSBbXHJcbiAgICAgICAgJ2lzRGVmYXVsdCcsXHJcbiAgICAgICAgJ2FkZHJlc3MnLFxyXG4gICAgICAgICdzdHJlZXQnLFxyXG4gICAgICAgICdibG9jaycsXHJcbiAgICAgICAgJ2NpdHknLFxyXG4gICAgICAgICdjb3VudHknLFxyXG4gICAgICAgICdzdGF0ZScsXHJcbiAgICAgICAgJ3ppcENvZGUnLFxyXG4gICAgICAgICdjb3VudHJ5JyxcclxuICAgICAgICAnc3RhdHVzJyxcclxuICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlU291cmNlLmZpbHRlciA9IHZhbC50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRBZGRyZXNzKHRoaXMuYWRkcmVzc2VzKTtcclxuXHJcbiAgICB0aGlzLnNvcnQuc29ydENoYW5nZS5zdWJzY3JpYmUoc29ydCA9PiB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICdhcHAtc2FwLWJwLWxpc3QtYWRkcmVzcy0nICsgdGhpcy5hZGRyZXNzVHlwZSxcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShzb3J0KVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRBZGRyZXNzKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVBZGQpIHtcclxuICAgICAgdGhpcy5kaWFsb2dcclxuICAgICAgICAub3BlbihTYXBCcENyZWF0ZUFkZHJlc3NDb21wb25lbnQsIHtcclxuICAgICAgICAgIG1pbldpZHRoOiAnODAwcHgnLFxyXG4gICAgICAgICAgd2lkdGg6ICc1MCUnLFxyXG4gICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICB1c2VyU2V0dGluZ3M6IHRoaXMudXNlclNldHRpbmdzLFxyXG4gICAgICAgICAgICBiYXNlSW5kdXN0cnlDb2RlOiB0aGlzLmJhc2VJbmR1c3RyeUNvZGUsXHJcbiAgICAgICAgICAgIGFkZHJlc3NUeXBlOiB0aGlzLmFkZHJlc3NUeXBlLFxyXG4gICAgICAgICAgICB1c2VUYXhDb2RlOiB0aGlzLnVzZVRheENvZGUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAucGlwZShmaWx0ZXIoU3RCYXNlU2VydmljZS5ub3ROdWxsKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IFNhcEJwQWRkcmVzc01vZGVsKSA9PiB7XHJcbiAgICAgICAgICByZXMuYWRkcmVzc1R5cGUgPSB0aGlzLmFkZHJlc3NUeXBlO1xyXG4gICAgICAgICAgcmVzLmlzRGVmYXVsdCA9IGZhbHNlO1xyXG4gICAgICAgICAgcmVzLmZyZXNoQWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hZGRyZXNzQ2hhbmdlZEVtaXR0ZXIuZW1pdCh0cnVlKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy50YWJsZVNvdXJjZT8uZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldEFkZHJlc3MoWy4uLnRoaXMudGFibGVTb3VyY2UuZGF0YSwgcmVzXSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNldEFkZHJlc3MoW3Jlc10pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkcmVzc0lzRGVmYXVsdENoYW5nZWQoYmlsbFRvQWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWwpIHtcclxuICAgIHRoaXMuc2V0QWRkcmVzcyhcclxuICAgICAgdGhpcy50YWJsZVNvdXJjZS5kYXRhLm1hcChzdGEgPT4ge1xyXG4gICAgICAgIGlmIChzdGEgIT09IGJpbGxUb0FkZHJlc3MpIHtcclxuICAgICAgICAgIHN0YS5pc0RlZmF1bHQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzdGE7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZWRpdEFkZHJlc3MoZXZlbnQ6IGFueSwgYWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWwpIHtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICghdGhpcy5kaXNhYmxlRWRpdCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1xyXG4gICAgICAgIC5vcGVuKFNhcEJwQ3JlYXRlQWRkcmVzc0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgbWluV2lkdGg6ICc4MDBweCcsXHJcbiAgICAgICAgICB3aWR0aDogJzUwJScsXHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHVzZXJTZXR0aW5nczogdGhpcy51c2VyU2V0dGluZ3MsXHJcbiAgICAgICAgICAgIGFkZHJlc3M6IGFkZHJlc3MsXHJcbiAgICAgICAgICAgIGJhc2VJbmR1c3RyeUNvZGU6IHRoaXMuYmFzZUluZHVzdHJ5Q29kZSxcclxuICAgICAgICAgICAgYWRkcmVzc1R5cGU6IHRoaXMuYWRkcmVzc1R5cGUsXHJcbiAgICAgICAgICAgIHVzZVRheENvZGU6IHRoaXMudXNlVGF4Q29kZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgIC5waXBlKGZpbHRlcihTdEJhc2VTZXJ2aWNlLm5vdE51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2FwQnBBZGRyZXNzTW9kZWwpID0+IHtcclxuICAgICAgICAgIGFkZHJlc3MuYWRkcmVzcyA9IHJlcy5hZGRyZXNzO1xyXG4gICAgICAgICAgYWRkcmVzcy5hZGRyZXNzMiA9IHJlcy5hZGRyZXNzMjtcclxuICAgICAgICAgIGFkZHJlc3MuYWRkcmVzczMgPSByZXMuYWRkcmVzczM7XHJcbiAgICAgICAgICBhZGRyZXNzLnN0cmVldCA9IHJlcy5zdHJlZXQ7XHJcbiAgICAgICAgICBhZGRyZXNzLmJsb2NrID0gcmVzLmJsb2NrO1xyXG4gICAgICAgICAgYWRkcmVzcy5jaXR5ID0gcmVzLmNpdHk7XHJcbiAgICAgICAgICBhZGRyZXNzLnppcENvZGUgPSByZXMuemlwQ29kZTtcclxuICAgICAgICAgIGFkZHJlc3MuY291bnR5ID0gcmVzLmNvdW50eTtcclxuICAgICAgICAgIGFkZHJlc3MudGVycml0b3J5ID0gcmVzLnRlcnJpdG9yeTtcclxuICAgICAgICAgIGFkZHJlc3Muc3RhdGVDb2RlID0gcmVzLnN0YXRlQ29kZTtcclxuICAgICAgICAgIGFkZHJlc3MuY291bnRyeUNvZGUgPSByZXMuY291bnRyeUNvZGU7XHJcbiAgICAgICAgICBhZGRyZXNzLnN0cmVldE5vID0gcmVzLnN0cmVldE5vO1xyXG4gICAgICAgICAgYWRkcmVzcy5idWlsZGluZyA9IHJlcy5idWlsZGluZztcclxuICAgICAgICAgIGFkZHJlc3MuaW5kdXN0cnlDb2RlID0gcmVzLmluZHVzdHJ5Q29kZTtcclxuICAgICAgICAgIGFkZHJlc3MuaW5kdXN0cnlOYW1lID0gcmVzLmluZHVzdHJ5TmFtZTtcclxuICAgICAgICAgIGFkZHJlc3Muc3RhdHVzID0gcmVzLnN0YXR1cztcclxuICAgICAgICAgIGFkZHJlc3Muc2FsZXNQZXJzb24xID0gcmVzLnNhbGVzUGVyc29uMTtcclxuICAgICAgICAgIGFkZHJlc3Muc2FsZXNQZXJzb24yID0gcmVzLnNhbGVzUGVyc29uMjtcclxuICAgICAgICAgIGFkZHJlc3MudGF4Q29kZSA9IHJlcy50YXhDb2RlIHx8ICcnO1xyXG5cclxuICAgICAgICAgIHRoaXMuYWRkcmVzc0NoYW5nZWRFbWl0dGVyLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLnNldEFkZHJlc3ModGhpcy50YWJsZVNvdXJjZS5kYXRhKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGV0ZUFkZHJlc3MoZXZlbnQ6IGFueSwgYWRkcmVzczogU2FwQnBBZGRyZXNzTW9kZWwpIHtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICghdGhpcy5kaXNhYmxlRWRpdCkge1xyXG4gICAgICB0aGlzLnN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2VcclxuICAgICAgICAuc2hvd0RlbGV0ZVdhcm5pbmcoKVxyXG4gICAgICAgIC5waXBlKGZpbHRlcihTdEJhc2VTZXJ2aWNlLm5vdE51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGlmICghYWRkcmVzcz8uZnJlc2hBZGRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NDaGFuZ2VkRW1pdHRlci5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZWRBZGRyZXNzRW1pdHRlci5lbWl0KGFkZHJlc3MpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuc2V0QWRkcmVzcyhcclxuICAgICAgICAgICAgdGhpcy50YWJsZVNvdXJjZS5kYXRhLmZpbHRlcigoY3AsIGkpID0+IGNwICE9PSBhZGRyZXNzKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyU2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICB9XHJcblxyXG4gIHNob3dCcEFkZHJlc3NEZXRhaWxzKGFkZHJlc3M6IFNhcEJwQWRkcmVzc01vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5kZXRhaWxzVmlldykge1xyXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFNhcEJwRGV0YWlsc0FkZHJlc3NDb21wb25lbnQsIHtcclxuICAgICAgICBtaW5XaWR0aDogJzgwMHB4JyxcclxuICAgICAgICB3aWR0aDogJzUwJScsXHJcbiAgICAgICAgZGF0YTogeyBhZGRyZXNzOiBhZGRyZXNzIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRBZGRyZXNzKGRhdGE6IFNhcEJwQWRkcmVzc01vZGVsW10pIHtcclxuICAgIHRoaXMuYWRkcmVzc0xpc3RFbWl0dGVyLmVtaXQoZGF0YSk7XHJcbiAgICB0aGlzLnRhYmxlU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxTYXBCcEFkZHJlc3NNb2RlbD4oZGF0YSk7XHJcbiAgICB0aGlzLnRhYmxlU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gICAgdGhpcy50YWJsZVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYWRkcmVzcy1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPHAgY2xhc3M9XCJhZGRyZXNzLXRpdGxlXCIgW25nQ2xhc3NdPVwieyAnZXJyb3ItdGV4dCc6IGVycm9yVGV4dCB9XCI+XHJcbiAgICAgIHt7XHJcbiAgICAgICAgKGFkZHJlc3NUeXBlID09PSAnQidcclxuICAgICAgICAgID8gJ3NhcEFkbWluQnAuYmlsbFRvQWRkcmVzcydcclxuICAgICAgICAgIDogJ3NhcEFkbWluQnAuc2hpcFRvQWRkcmVzcydcclxuICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19XHJcbiAgICAgIHt7IHJlcXVpcmVkID8gJyonIDogJycgfX1cclxuICAgIDwvcD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwibWluLXdpZHRoOiA4MDBweFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZCByb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZ2xvYmFsLnNlYXJjaCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyIGNvbC1hdXRvXCI+XHJcbiAgICAgICAgICA8aVxyXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXHJcbiAgICAgICAgICAgID5jbGVhcjwvaVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIhZGV0YWlsc1ZpZXcgfHwgKGRldGFpbHNWaWV3ICYmIGNhbkVkaXRJbkRldGFpbHMpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFkZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFkZEFkZHJlc3MoKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7e1xyXG4gICAgICAgICAgKGFkZHJlc3NUeXBlID09PSAnQidcclxuICAgICAgICAgICAgPyAnc2FwQWRtaW5CcC5hZGRCaWxsVG9BZGRyZXNzJ1xyXG4gICAgICAgICAgICA6ICdzYXBBZG1pbkJwLmFkZFNoaXBUb0FkZHJlc3MnXHJcbiAgICAgICAgICApIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHRhYmxlXHJcbiAgICBbbmdDbGFzc109XCJ7ICduby1ob3Zlcic6ICFkZXRhaWxzVmlldyB9XCJcclxuICAgIG1hdC10YWJsZVxyXG4gICAgW2RhdGFTb3VyY2VdPVwidGFibGVTb3VyY2VcIlxyXG4gICAgbWF0U29ydFxyXG4gICAgW21hdFNvcnRBY3RpdmVdPVwiZGVmYXVsdFNvcnQ/LmFjdGl2ZSB8fCAnYWRkcmVzcydcIlxyXG4gICAgW21hdFNvcnREaXJlY3Rpb25dPVwiZGVmYXVsdFNvcnQ/LmRpcmVjdGlvbiB8fCAnYXNjJ1wiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpc0RlZmF1bHRcIj5cclxuICAgICAgPHRoIGNsYXNzPVwiaXMtZGVmYXVsdC1jZWxsXCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLmlzRGVmYXVsdCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRkIGNsYXNzPVwiaXMtZGVmYXVsdC1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICBjbGFzcz1cImNvbC1hdXRvXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiZWxlbWVudC5pc0RlZmF1bHRcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVFZGl0IHx8IChkZXRhaWxzVmlldyAmJiAhY2FuRWRpdEluRGV0YWlscylcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhZGRyZXNzSXNEZWZhdWx0Q2hhbmdlZChlbGVtZW50KVwiXHJcbiAgICAgICAgPjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhZGRyZXNzXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLmFkZHJlc3MnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudC5hZGRyZXNzIH19PC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RyZWV0XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLnN0cmVldCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50LnN0cmVldCB9fTwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImJsb2NrXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLmJsb2NrJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQuYmxvY2sgfX08L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjaXR5XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLmNpdHknIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudC5jaXR5IH19PC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY291bnR5XCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLmNvdW50eScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50LmNvdW50eSB9fTwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInN0YXRlXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLnN0YXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQuc3RhdGVOYW1lIH19PC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiemlwQ29kZVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJvcGFjaXR5OiAwLjNcIj4gc3dhcF92ZXJ0IDwvc3Bhbj5cclxuICAgICAgICB7eyAnc2FwQWRtaW5CcC56aXBDb2RlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQuemlwQ29kZSB9fTwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNvdW50cnlcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zXCI+IHN3YXBfdmVydCA8L3NwYW4+XHJcbiAgICAgICAge3sgJ3NhcEFkbWluQnAuY291bnRyeScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50LmNvdW50cnlOYW1lIH19PC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic3RhdHVzXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdnbG9iYWwuc3RhdHVzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQuc3RhdHVzIH19PC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiPlxyXG4gICAgICA8dGggY2xhc3M9XCJhY3Rpb25zLWNlbGxcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+PC90aD5cclxuICAgICAgPHRkXHJcbiAgICAgICAgY2xhc3M9XCJhY3Rpb25zLWNlbGwganVzdGlmeS1jb250ZW50LWVuZFwiXHJcbiAgICAgICAgbWF0LWNlbGxcclxuICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ3NhcEFkbWluQnAuZWRpdEFkZHJlc3MnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIChjbGljayk9XCJlZGl0QWRkcmVzcygkZXZlbnQsIGVsZW1lbnQpXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlRWRpdFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmVkaXQ8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ3NhcEFkbWluQnAuZGVsZXRlQWRkcmVzcycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUFkZHJlc3MoJGV2ZW50LCBlbGVtZW50KVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUVkaXRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5kZWxldGU8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cInRhYmxlQ29sdW1uc1wiPjwvdHI+XHJcbiAgICA8dHJcclxuICAgICAgbWF0LXJvd1xyXG4gICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogdGFibGVDb2x1bW5zXCJcclxuICAgICAgKGNsaWNrKT1cInNob3dCcEFkZHJlc3NEZXRhaWxzKHJvdylcIlxyXG4gICAgPjwvdHI+XHJcbiAgPC90YWJsZT5cclxuICA8bWF0LXBhZ2luYXRvciBbcGFnZVNpemVPcHRpb25zXT1cIls1XVwiPjwvbWF0LXBhZ2luYXRvcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -169,10 +169,10 @@ export class SapBpListContactPersonComponent {
169
169
  }
170
170
  }
171
171
  SapBpListContactPersonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SapBpListContactPersonComponent, deps: [{ token: i1.MatDialog }, { token: i2.TranslateService }, { token: i3.StDialogTranslatedService }], target: i0.ɵɵFactoryTarget.Component });
172
- SapBpListContactPersonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SapBpListContactPersonComponent, selector: "app-sap-bp-list-contact-person", inputs: { contactPersons: "contactPersons", disableEdit: "disableEdit", disableAdd: "disableAdd", detailsView: "detailsView", canEditInDetails: "canEditInDetails" }, outputs: { contactPersonChangedEmitter: "contactPersonChangedEmitter", contactPersonListEmitter: "contactPersonListEmitter", deletedContactPersonEmitter: "deletedContactPersonEmitter" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div class=\"contact-person-container\">\r\n\r\n <div class=\"row justify-content-between align-items-center\">\r\n <p class=\"contact-person-title\">{{'sapAdminBp.contactPerson' | translate}}</p>\r\n <div class=\"row\" style=\"min-width: 800px\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input matInput placeholder=\"{{'global.search' | translate}}\" [formControl]=\"searchControl\">\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i class=\"material-icons\" (click)=\"clearSearch()\" style=\"cursor: pointer\">clear</i>\r\n </div>\r\n </div>\r\n\r\n <button mat-raised-button color=\"accent\" type=\"button\" mat-button\r\n *ngIf=\"!detailsView || (detailsView && canEditInDetails)\"\r\n [disabled]=\"disableAdd\"\r\n (click)=\"addNewContactPerson()\">{{'sapAdminBp.addContactPerson' | translate}}</button>\r\n </div>\r\n </div>\r\n\r\n <table [ngClass]=\"{'no-hover': !detailsView}\" mat-table [dataSource]=\"tableSource\" matSort [matSortActive]=\"defaultSort?.active || 'name'\" [matSortDirection]=\"defaultSort?.direction || 'asc'\">\r\n <ng-container matColumnDef=\"isDefault\">\r\n <th class=\"is-default-cell\" mat-header-cell\r\n *matHeaderCellDef> {{'sapAdminBp.isDefault' | translate}}</th>\r\n <td class=\"is-default-cell\" mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox color=\"primary\" class=\"col-auto\" [(ngModel)]=\"element.isDefault\" [disabled]=\"disableEdit || (detailsView && !canEditInDetails)\" (click)=\"$event.stopImmediatePropagation()\"\r\n (ngModelChange)=\"contactPersonIsDefaultChanged(element)\"></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'global.name' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.name}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.firstName' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.firstName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.lastName' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.lastName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.title' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.title}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"position\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.position' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.position}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"tel1\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.tel1' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.tel1}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"cellular\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.cellular' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.cellular}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th class=\"actions-cell\" mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"actions-cell justify-content-end\" mat-cell\r\n *matCellDef=\"let element; let i = index;\">\r\n\r\n <button mat-icon-button [matTooltip]=\"'sapAdminBp.editContactPerson' | translate\"\r\n (click)=\"editContactPerson($event, element, i)\" [disabled]=\"disableEdit\">\r\n <span class=\"material-icons\">edit</span>\r\n </button>\r\n\r\n <button mat-icon-button [matTooltip]=\"'sapAdminBp.deleteContactPerson' | translate\"\r\n (click)=\"deleteContactPerson($event, element, i)\" [disabled]=\"disableEdit\">\r\n <span class=\"material-icons\">delete</span>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: tableColumns;\" (click)=\"showContactPersonDetails(row)\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}table::ng-deep .actions-cell{width:115px!important}table::ng-deep .is-default-cell{width:100px!important}.error-text{color:#ef5350}.contact-person-container{position:relative;margin-top:2rem}.contact-person-container .contact-person-title{margin:0;font-weight:500}.disable-edit{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;z-index:9;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
172
+ SapBpListContactPersonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SapBpListContactPersonComponent, selector: "app-sap-bp-list-contact-person", inputs: { contactPersons: "contactPersons", disableEdit: "disableEdit", disableAdd: "disableAdd", detailsView: "detailsView", canEditInDetails: "canEditInDetails" }, outputs: { contactPersonChangedEmitter: "contactPersonChangedEmitter", contactPersonListEmitter: "contactPersonListEmitter", deletedContactPersonEmitter: "deletedContactPersonEmitter" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<div class=\"contact-person-container\">\r\n <div class=\"row justify-content-between align-items-center\">\r\n <p class=\"contact-person-title\">\r\n {{ 'sapAdminBp.contactPerson' | translate }}\r\n </p>\r\n <div class=\"row align-items-center\" style=\"min-width: 800px\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input\r\n matInput\r\n placeholder=\"{{ 'global.search' | translate }}\"\r\n [formControl]=\"searchControl\"\r\n />\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i\r\n class=\"material-icons\"\r\n (click)=\"clearSearch()\"\r\n style=\"cursor: pointer\"\r\n >clear</i\r\n >\r\n </div>\r\n </div>\r\n\r\n <button\r\n mat-raised-button\r\n color=\"accent\"\r\n type=\"button\"\r\n mat-button\r\n *ngIf=\"!detailsView || (detailsView && canEditInDetails)\"\r\n [disabled]=\"disableAdd\"\r\n (click)=\"addNewContactPerson()\"\r\n >\r\n {{ 'sapAdminBp.addContactPerson' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <table\r\n [ngClass]=\"{ 'no-hover': !detailsView }\"\r\n mat-table\r\n [dataSource]=\"tableSource\"\r\n matSort\r\n [matSortActive]=\"defaultSort?.active || 'name'\"\r\n [matSortDirection]=\"defaultSort?.direction || 'asc'\"\r\n >\r\n <ng-container matColumnDef=\"isDefault\">\r\n <th class=\"is-default-cell\" mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminBp.isDefault' | translate }}\r\n </th>\r\n <td class=\"is-default-cell\" mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox\r\n color=\"primary\"\r\n class=\"col-auto\"\r\n [(ngModel)]=\"element.isDefault\"\r\n [disabled]=\"disableEdit || (detailsView && !canEditInDetails)\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n (ngModelChange)=\"contactPersonIsDefaultChanged(element)\"\r\n ></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'global.name' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.name }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.firstName' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.firstName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.lastName' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.lastName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.title' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.title }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"position\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.position' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.position }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"tel1\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.tel1' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.tel1 }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"cellular\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.cellular' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.cellular }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th class=\"actions-cell\" mat-header-cell *matHeaderCellDef></th>\r\n <td\r\n class=\"actions-cell justify-content-end\"\r\n mat-cell\r\n *matCellDef=\"let element; let i = index\"\r\n >\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.editContactPerson' | translate\"\r\n (click)=\"editContactPerson($event, element, i)\"\r\n [disabled]=\"disableEdit\"\r\n >\r\n <span class=\"material-icons\">edit</span>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.deleteContactPerson' | translate\"\r\n (click)=\"deleteContactPerson($event, element, i)\"\r\n [disabled]=\"disableEdit\"\r\n >\r\n <span class=\"material-icons\">delete</span>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"showContactPersonDetails(row)\"\r\n ></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}table::ng-deep .actions-cell{width:115px!important}table::ng-deep .is-default-cell{width:100px!important}.error-text{color:#ef5350}.contact-person-container{position:relative;margin-top:2rem}.contact-person-container .contact-person-title{margin:0;font-weight:500}.disable-edit{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;z-index:9;cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i11.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i12.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i12.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
173
173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SapBpListContactPersonComponent, decorators: [{
174
174
  type: Component,
175
- args: [{ selector: 'app-sap-bp-list-contact-person', template: "<div class=\"contact-person-container\">\r\n\r\n <div class=\"row justify-content-between align-items-center\">\r\n <p class=\"contact-person-title\">{{'sapAdminBp.contactPerson' | translate}}</p>\r\n <div class=\"row\" style=\"min-width: 800px\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input matInput placeholder=\"{{'global.search' | translate}}\" [formControl]=\"searchControl\">\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i class=\"material-icons\" (click)=\"clearSearch()\" style=\"cursor: pointer\">clear</i>\r\n </div>\r\n </div>\r\n\r\n <button mat-raised-button color=\"accent\" type=\"button\" mat-button\r\n *ngIf=\"!detailsView || (detailsView && canEditInDetails)\"\r\n [disabled]=\"disableAdd\"\r\n (click)=\"addNewContactPerson()\">{{'sapAdminBp.addContactPerson' | translate}}</button>\r\n </div>\r\n </div>\r\n\r\n <table [ngClass]=\"{'no-hover': !detailsView}\" mat-table [dataSource]=\"tableSource\" matSort [matSortActive]=\"defaultSort?.active || 'name'\" [matSortDirection]=\"defaultSort?.direction || 'asc'\">\r\n <ng-container matColumnDef=\"isDefault\">\r\n <th class=\"is-default-cell\" mat-header-cell\r\n *matHeaderCellDef> {{'sapAdminBp.isDefault' | translate}}</th>\r\n <td class=\"is-default-cell\" mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox color=\"primary\" class=\"col-auto\" [(ngModel)]=\"element.isDefault\" [disabled]=\"disableEdit || (detailsView && !canEditInDetails)\" (click)=\"$event.stopImmediatePropagation()\"\r\n (ngModelChange)=\"contactPersonIsDefaultChanged(element)\"></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'global.name' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.name}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.firstName' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.firstName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.lastName' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.lastName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.title' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.title}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"position\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.position' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.position}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"tel1\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.tel1' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.tel1}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"cellular\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3;\">\r\n swap_vert\r\n </span>\r\n {{'sapAdminBp.cellular' | translate}}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.cellular}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th class=\"actions-cell\" mat-header-cell *matHeaderCellDef></th>\r\n <td class=\"actions-cell justify-content-end\" mat-cell\r\n *matCellDef=\"let element; let i = index;\">\r\n\r\n <button mat-icon-button [matTooltip]=\"'sapAdminBp.editContactPerson' | translate\"\r\n (click)=\"editContactPerson($event, element, i)\" [disabled]=\"disableEdit\">\r\n <span class=\"material-icons\">edit</span>\r\n </button>\r\n\r\n <button mat-icon-button [matTooltip]=\"'sapAdminBp.deleteContactPerson' | translate\"\r\n (click)=\"deleteContactPerson($event, element, i)\" [disabled]=\"disableEdit\">\r\n <span class=\"material-icons\">delete</span>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: tableColumns;\" (click)=\"showContactPersonDetails(row)\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}table::ng-deep .actions-cell{width:115px!important}table::ng-deep .is-default-cell{width:100px!important}.error-text{color:#ef5350}.contact-person-container{position:relative;margin-top:2rem}.contact-person-container .contact-person-title{margin:0;font-weight:500}.disable-edit{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;z-index:9;cursor:not-allowed}\n"] }]
175
+ args: [{ selector: 'app-sap-bp-list-contact-person', template: "<div class=\"contact-person-container\">\r\n <div class=\"row justify-content-between align-items-center\">\r\n <p class=\"contact-person-title\">\r\n {{ 'sapAdminBp.contactPerson' | translate }}\r\n </p>\r\n <div class=\"row align-items-center\" style=\"min-width: 800px\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input\r\n matInput\r\n placeholder=\"{{ 'global.search' | translate }}\"\r\n [formControl]=\"searchControl\"\r\n />\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i\r\n class=\"material-icons\"\r\n (click)=\"clearSearch()\"\r\n style=\"cursor: pointer\"\r\n >clear</i\r\n >\r\n </div>\r\n </div>\r\n\r\n <button\r\n mat-raised-button\r\n color=\"accent\"\r\n type=\"button\"\r\n mat-button\r\n *ngIf=\"!detailsView || (detailsView && canEditInDetails)\"\r\n [disabled]=\"disableAdd\"\r\n (click)=\"addNewContactPerson()\"\r\n >\r\n {{ 'sapAdminBp.addContactPerson' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <table\r\n [ngClass]=\"{ 'no-hover': !detailsView }\"\r\n mat-table\r\n [dataSource]=\"tableSource\"\r\n matSort\r\n [matSortActive]=\"defaultSort?.active || 'name'\"\r\n [matSortDirection]=\"defaultSort?.direction || 'asc'\"\r\n >\r\n <ng-container matColumnDef=\"isDefault\">\r\n <th class=\"is-default-cell\" mat-header-cell *matHeaderCellDef>\r\n {{ 'sapAdminBp.isDefault' | translate }}\r\n </th>\r\n <td class=\"is-default-cell\" mat-cell *matCellDef=\"let element\">\r\n <mat-checkbox\r\n color=\"primary\"\r\n class=\"col-auto\"\r\n [(ngModel)]=\"element.isDefault\"\r\n [disabled]=\"disableEdit || (detailsView && !canEditInDetails)\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n (ngModelChange)=\"contactPersonIsDefaultChanged(element)\"\r\n ></mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'global.name' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.name }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.firstName' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.firstName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.lastName' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.lastName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"title\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.title' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.title }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"position\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.position' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.position }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"tel1\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.tel1' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.tel1 }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"cellular\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\r\n <span class=\"material-icons\" style=\"opacity: 0.3\"> swap_vert </span>\r\n {{ 'sapAdminBp.cellular' | translate }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">{{ element.cellular }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th class=\"actions-cell\" mat-header-cell *matHeaderCellDef></th>\r\n <td\r\n class=\"actions-cell justify-content-end\"\r\n mat-cell\r\n *matCellDef=\"let element; let i = index\"\r\n >\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.editContactPerson' | translate\"\r\n (click)=\"editContactPerson($event, element, i)\"\r\n [disabled]=\"disableEdit\"\r\n >\r\n <span class=\"material-icons\">edit</span>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'sapAdminBp.deleteContactPerson' | translate\"\r\n (click)=\"deleteContactPerson($event, element, i)\"\r\n [disabled]=\"disableEdit\"\r\n >\r\n <span class=\"material-icons\">delete</span>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableColumns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: tableColumns\"\r\n (click)=\"showContactPersonDetails(row)\"\r\n ></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n", styles: [".search-form button{height:40px}.search-form mat-form-field:first-child{padding-left:0}.search-form mat-form-field:last-child{padding-right:0}.search-form .clear{padding:0}.search-form .clear i{height:20px;width:20px;font-size:20px;cursor:pointer}table{width:100%}table::ng-deep thead tr{background-color:#fff9c4}table::ng-deep thead tr th{border-color:#fdd835}table::ng-deep tbody>tr{cursor:pointer}table::ng-deep tbody>tr.active{background-color:#a5d6a7}table::ng-deep tbody>tr:hover{background-color:#a5d6a7}table::ng-deep tbody>tr.disabled{cursor:not-allowed}table::ng-deep tbody>tr.disabled:hover{background-color:inherit}table::ng-deep tbody>tr.detail-row{height:0;cursor:default}table::ng-deep tbody>tr.detail-row:hover{background-color:transparent}table::ng-deep tbody>tr.detail-row .element-detail{overflow:hidden;display:flex}table::ng-deep tbody>tr.detail-row .element-detail p{padding:20px 0;margin-bottom:0;white-space:pre-wrap}table::ng-deep tbody>tr td i.active-row{color:#1b5e20;font-weight:700;font-size:25px;height:25px;width:25px;margin-top:2px}table::ng-deep tbody>tr td>div{max-height:200px;overflow:hidden;overflow-y:auto}table::ng-deep tbody>tr td a button{color:#000}table::ng-deep tbody>tr td a i{color:#333}table::ng-deep .mat-column-active{width:48px}table.no-hover::ng-deep tbody tr{cursor:default}table.no-hover::ng-deep tbody tr.active{background-color:transparent}table.no-hover::ng-deep tbody tr:hover{background-color:transparent}table.admin-table::ng-deep .actions-cell{width:100px}table::ng-deep .actions-cell{width:115px!important}table::ng-deep .is-default-cell{width:100px!important}.error-text{color:#ef5350}.contact-person-container{position:relative;margin-top:2rem}.contact-person-container .contact-person-title{margin:0;font-weight:500}.disable-edit{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;z-index:9;cursor:not-allowed}\n"] }]
176
176
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.TranslateService }, { type: i3.StDialogTranslatedService }]; }, propDecorators: { paginator: [{
177
177
  type: ViewChild,
178
178
  args: [MatPaginator, { static: true }]
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
196
196
  }], deletedContactPersonEmitter: [{
197
197
  type: Output
198
198
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24vc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24vc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFFM0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQzlILE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRdEQsTUFBTSxPQUFPLCtCQUErQjtJQTZDMUMsWUFDWSxNQUFpQixFQUNuQixnQkFBa0MsRUFDbEMseUJBQW9EO1FBRmxELFdBQU0sR0FB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SSxFQUFFO2dCQUNyQixJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU87Z0JBR2xCLGNBQWM7c0JBRGIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTiwyQkFBMkI7c0JBRDFCLE1BQU07Z0JBSVAsd0JBQXdCO3NCQUR2QixNQUFNO2dCQUlQLDJCQUEyQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtY29udGFjdC1wZXJzb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IFNhcEJwQ3JlYXRlQ29udGFjdFBlcnNvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NhcC1icC1jcmVhdGUtY29udGFjdC1wZXJzb24vc2FwLWJwLWNyZWF0ZS1jb250YWN0LXBlcnNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhcEJwRGV0YWlsc0NvbnRhY3RQZXJzb25Db21wb25lbnQgfSBmcm9tICcuLi9zYXAtYnAtZGV0YWlscy1jb250YWN0LXBlcnNvbi9zYXAtYnAtZGV0YWlscy1jb250YWN0LXBlcnNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdEJhc2VTZXJ2aWNlIH0gZnJvbSAnbmd4LXN0LWJhc2UtZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU3REaWFsb2dUcmFuc2xhdGVkU2VydmljZSB9IGZyb20gJ25neC1zdC1kaWFsb2cnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXAtYnAtbGlzdC1jb250YWN0LXBlcnNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhcEJwTGlzdENvbnRhY3RQZXJzb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGFjdFBlcnNvbnM6IFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZUVkaXQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlQWRkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGV0YWlsc1ZpZXcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBjYW5FZGl0SW5EZXRhaWxzID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNvbnRhY3RQZXJzb25DaGFuZ2VkRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY29udGFjdFBlcnNvbkxpc3RFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYXBCcENvbnRhY3RQZXJzb25Nb2RlbFtdPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBkZWxldGVkQ29udGFjdFBlcnNvbkVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsPigpO1xyXG5cclxuICBkZWZhdWx0U29ydDogU29ydCB8IG51bGwgPSBudWxsO1xyXG5cclxuICB0YWJsZUNvbHVtbnM6IHN0cmluZ1tdID0gW1xyXG4gICAgJ2lzRGVmYXVsdCcsXHJcbiAgICAnbmFtZScsXHJcbiAgICAnZmlyc3ROYW1lJyxcclxuICAgICdsYXN0TmFtZScsXHJcbiAgICAndGl0bGUnLFxyXG4gICAgJ3Bvc2l0aW9uJyxcclxuICAgICd0ZWwxJyxcclxuICAgICdjZWxsdWxhcicsXHJcbiAgICAnYWN0aW9ucycsXHJcbiAgXTtcclxuICB0YWJsZVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsPjtcclxuXHJcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3REaWFsb2dUcmFuc2xhdGVkU2VydmljZTogU3REaWFsb2dUcmFuc2xhdGVkU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB0bXBEZWZhdWx0U29ydCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFxyXG4gICAgICAnYXBwLXNhcC1icC1saXN0LWNvbnRhY3QtcGVyc29uJ1xyXG4gICAgKTtcclxuICAgIGlmICh0bXBEZWZhdWx0U29ydCkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRTb3J0ID0gPFNvcnQ+SlNPTi5wYXJzZSh0bXBEZWZhdWx0U29ydCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGV0YWlsc1ZpZXcgJiYgIXRoaXMuY2FuRWRpdEluRGV0YWlscykge1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFtcclxuICAgICAgICAnaXNEZWZhdWx0JyxcclxuICAgICAgICAnbmFtZScsXHJcbiAgICAgICAgJ2ZpcnN0TmFtZScsXHJcbiAgICAgICAgJ2xhc3ROYW1lJyxcclxuICAgICAgICAndGl0bGUnLFxyXG4gICAgICAgICdwb3NpdGlvbicsXHJcbiAgICAgICAgJ3RlbDEnLFxyXG4gICAgICAgICdjZWxsdWxhcicsXHJcbiAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgdGhpcy50YWJsZVNvdXJjZS5maWx0ZXIgPSB2YWwudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Q29udGFjdFBlcnNvblRhYmxlKHRoaXMuY29udGFjdFBlcnNvbnMpO1xyXG5cclxuICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnN1YnNjcmliZShzb3J0ID0+IHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgJ2FwcC1zYXAtYnAtbGlzdC1jb250YWN0LXBlcnNvbicsXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoc29ydClcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3Q29udGFjdFBlcnNvbigpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlQWRkKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nXHJcbiAgICAgICAgLm9wZW4oU2FwQnBDcmVhdGVDb250YWN0UGVyc29uQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICBtaW5XaWR0aDogJzgwMHB4JyxcclxuICAgICAgICAgIHdpZHRoOiAnNTAlJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgLnBpcGUoZmlsdGVyKFN0QmFzZVNlcnZpY2Uubm90TnVsbCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzOiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCkgPT4ge1xyXG4gICAgICAgICAgcmVzLmZyZXNoQWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jb250YWN0UGVyc29uQ2hhbmdlZEVtaXR0ZXIuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuc2V0Q29udGFjdFBlcnNvblRhYmxlKFtcclxuICAgICAgICAgICAgLi4udGhpcy50YWJsZVNvdXJjZS5kYXRhLFxyXG4gICAgICAgICAgICB7IC4uLnJlcywgaXNEZWZhdWx0OiBmYWxzZSB9LFxyXG4gICAgICAgICAgXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb250YWN0UGVyc29uSXNEZWZhdWx0Q2hhbmdlZChjb250YWN0UGVyc29uOiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCkge1xyXG4gICAgdGhpcy5zZXRDb250YWN0UGVyc29uVGFibGUoXHJcbiAgICAgIHRoaXMudGFibGVTb3VyY2UuZGF0YS5tYXAoY3AgPT4ge1xyXG4gICAgICAgIGlmIChjcCAhPT0gY29udGFjdFBlcnNvbikge1xyXG4gICAgICAgICAgY3AuaXNEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY3A7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZWRpdENvbnRhY3RQZXJzb24oXHJcbiAgICBldmVudDogYW55LFxyXG4gICAgY29udGFjdFBlcnNvbjogU2FwQnBDb250YWN0UGVyc29uTW9kZWwsXHJcbiAgICBpbmRleDogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZUVkaXQpIHtcclxuICAgICAgdGhpcy5kaWFsb2dcclxuICAgICAgICAub3BlbihTYXBCcENyZWF0ZUNvbnRhY3RQZXJzb25Db21wb25lbnQsIHtcclxuICAgICAgICAgIG1pbldpZHRoOiAnODAwcHgnLFxyXG4gICAgICAgICAgd2lkdGg6ICc1MCUnLFxyXG4gICAgICAgICAgZGF0YTogeyBjb250YWN0UGVyc29uOiBjb250YWN0UGVyc29uIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgIC5waXBlKGZpbHRlcihTdEJhc2VTZXJ2aWNlLm5vdE51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2FwQnBDb250YWN0UGVyc29uTW9kZWwpID0+IHtcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24ubmFtZSA9IHJlcy5uYW1lO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi5maXJzdE5hbWUgPSByZXMuZmlyc3ROYW1lO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi5taWRkbGVOYW1lID0gcmVzLm1pZGRsZU5hbWU7XHJcbiAgICAgICAgICBjb250YWN0UGVyc29uLmxhc3ROYW1lID0gcmVzLmxhc3ROYW1lO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi50aXRsZSA9IHJlcy50aXRsZTtcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24ucG9zaXRpb24gPSByZXMucG9zaXRpb247XHJcbiAgICAgICAgICBjb250YWN0UGVyc29uLmFkZHJlc3MgPSByZXMuYWRkcmVzcztcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24udGVsMSA9IHJlcy50ZWwxO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi50ZWwyID0gcmVzLnRlbDI7XHJcbiAgICAgICAgICBjb250YWN0UGVyc29uLmNlbGx1bGFyID0gcmVzLmNlbGx1bGFyO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi5mYXggPSByZXMuZmF4O1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi5lbWFpbCA9IHJlcy5lbWFpbDtcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24ubm90ZXMxID0gcmVzLm5vdGVzMTtcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24ubm90ZXMyID0gcmVzLm5vdGVzMjtcclxuXHJcbiAgICAgICAgICBpZiAoY29udGFjdFBlcnNvbi5uYW1lICE9PSByZXMubmFtZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhY3RQZXJzb25DaGFuZ2VkRW1pdHRlci5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRhY3RQZXJzb25UYWJsZSh0aGlzLnRhYmxlU291cmNlLmRhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ29udGFjdFBlcnNvbihcclxuICAgIGV2ZW50OiBhbnksXHJcbiAgICBjb250YWN0UGVyc29uOiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCxcclxuICAgIGluZGV4OiBudW1iZXJcclxuICApIHtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICghdGhpcy5kaXNhYmxlRWRpdCkge1xyXG4gICAgICB0aGlzLnN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2VcclxuICAgICAgICAuc2hvd0RlbGV0ZVdhcm5pbmcoKVxyXG4gICAgICAgIC5waXBlKGZpbHRlcihTdEJhc2VTZXJ2aWNlLm5vdE51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGlmICghY29udGFjdFBlcnNvbj8uZnJlc2hBZGRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhY3RQZXJzb25DaGFuZ2VkRW1pdHRlci5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZWRDb250YWN0UGVyc29uRW1pdHRlci5lbWl0KGNvbnRhY3RQZXJzb24pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuc2V0Q29udGFjdFBlcnNvblRhYmxlKFxyXG4gICAgICAgICAgICB0aGlzLnRhYmxlU291cmNlLmRhdGEuZmlsdGVyKChjcCwgaSkgPT4gY29udGFjdFBlcnNvbiAhPT0gY3ApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaENvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0NvbnRhY3RQZXJzb25EZXRhaWxzKGNvbnRhY3RQZXJzb246IFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5kZXRhaWxzVmlldykge1xyXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFNhcEJwRGV0YWlsc0NvbnRhY3RQZXJzb25Db21wb25lbnQsIHtcclxuICAgICAgICBtaW5XaWR0aDogJzgwMHB4JyxcclxuICAgICAgICB3aWR0aDogJzUwJScsXHJcbiAgICAgICAgZGF0YTogeyBjb250YWN0UGVyc29uOiBjb250YWN0UGVyc29uIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDb250YWN0UGVyc29uVGFibGUoZGF0YTogU2FwQnBDb250YWN0UGVyc29uTW9kZWxbXSkge1xyXG4gICAgdGhpcy5jb250YWN0UGVyc29uTGlzdEVtaXR0ZXIuZW1pdChkYXRhKTtcclxuICAgIHRoaXMudGFibGVTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKGRhdGEpO1xyXG4gICAgdGhpcy50YWJsZVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMudGFibGVTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhY3QtcGVyc29uLWNvbnRhaW5lclwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJjb250YWN0LXBlcnNvbi10aXRsZVwiPnt7J3NhcEFkbWluQnAuY29udGFjdFBlcnNvbicgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtaW4td2lkdGg6IDgwMHB4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7J2dsb2JhbC5zZWFyY2gnIHwgdHJhbnNsYXRlfX1cIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhciBjb2wtYXV0b1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCI+Y2xlYXI8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFkZXRhaWxzVmlldyB8fCAoZGV0YWlsc1ZpZXcgJiYgY2FuRWRpdEluRGV0YWlscylcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQWRkXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTmV3Q29udGFjdFBlcnNvbigpXCI+e3snc2FwQWRtaW5CcC5hZGRDb250YWN0UGVyc29uJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8dGFibGUgW25nQ2xhc3NdPVwieyduby1ob3Zlcic6ICFkZXRhaWxzVmlld31cIiBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwidGFibGVTb3VyY2VcIiBtYXRTb3J0IFttYXRTb3J0QWN0aXZlXT1cImRlZmF1bHRTb3J0Py5hY3RpdmUgfHwgJ25hbWUnXCIgW21hdFNvcnREaXJlY3Rpb25dPVwiZGVmYXVsdFNvcnQ/LmRpcmVjdGlvbiB8fCAnYXNjJ1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaXNEZWZhdWx0XCI+XHJcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImlzLWRlZmF1bHQtY2VsbFwiIG1hdC1oZWFkZXItY2VsbFxyXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWY+IHt7J3NhcEFkbWluQnAuaXNEZWZhdWx0JyB8IHRyYW5zbGF0ZX19PC90aD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiaXMtZGVmYXVsdC1jZWxsXCIgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImNvbC1hdXRvXCIgWyhuZ01vZGVsKV09XCJlbGVtZW50LmlzRGVmYXVsdFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlRWRpdCB8fCAoZGV0YWlsc1ZpZXcgJiYgIWNhbkVkaXRJbkRldGFpbHMpXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNvbnRhY3RQZXJzb25Jc0RlZmF1bHRDaGFuZ2VkKGVsZW1lbnQpXCI+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibmFtZVwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuMztcIj5cclxuICAgICAgICAgICAgICAgICAgICBzd2FwX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7J2dsb2JhbC5uYW1lJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC5uYW1lfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmaXJzdE5hbWVcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJvcGFjaXR5OiAwLjM7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgc3dhcF92ZXJ0XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7eydzYXBBZG1pbkJwLmZpcnN0TmFtZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQuZmlyc3ROYW1lfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYXN0TmFtZVwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuMztcIj5cclxuICAgICAgICAgICAgICAgICAgICBzd2FwX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7J3NhcEFkbWluQnAubGFzdE5hbWUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Lmxhc3ROYW1lfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuMztcIj5cclxuICAgICAgICAgICAgICAgICAgICBzd2FwX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7J3NhcEFkbWluQnAudGl0bGUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnRpdGxlfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJwb3NpdGlvblwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuMztcIj5cclxuICAgICAgICAgICAgICAgICAgICBzd2FwX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7J3NhcEFkbWluQnAucG9zaXRpb24nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnBvc2l0aW9ufX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0ZWwxXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN3YXBfdmVydFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3snc2FwQWRtaW5CcC50ZWwxJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudC50ZWwxfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjZWxsdWxhclwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuMztcIj5cclxuICAgICAgICAgICAgICAgICAgICBzd2FwX3ZlcnRcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7J3NhcEFkbWluQnAuY2VsbHVsYXInIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LmNlbGx1bGFyfX0gPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XHJcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImFjdGlvbnMtY2VsbFwiIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj48L3RoPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJhY3Rpb25zLWNlbGwganVzdGlmeS1jb250ZW50LWVuZFwiIG1hdC1jZWxsXHJcbiAgICAgICAgICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4O1wiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRUb29sdGlwXT1cIidzYXBBZG1pbkJwLmVkaXRDb250YWN0UGVyc29uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0Q29udGFjdFBlcnNvbigkZXZlbnQsIGVsZW1lbnQsIGkpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPmVkaXQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0VG9vbHRpcF09XCInc2FwQWRtaW5CcC5kZWxldGVDb250YWN0UGVyc29uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVDb250YWN0UGVyc29uKCRldmVudCwgZWxlbWVudCwgaSlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUVkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZGVsZXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwidGFibGVDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogdGFibGVDb2x1bW5zO1wiIChjbGljayk9XCJzaG93Q29udGFjdFBlcnNvbkRldGFpbHMocm93KVwiPjwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJbNV1cIj48L21hdC1wYWdpbmF0b3I+XHJcbjwvZGl2PlxyXG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24vc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXNhcC1icC9zcmMvbGliL2NvbXBvbmVudHMvc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24vc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFFM0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBQzlILE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRdEQsTUFBTSxPQUFPLCtCQUErQjtJQTZDMUMsWUFDWSxNQUFpQixFQUNuQixnQkFBa0MsRUFDbEMseUJBQW9EO1FBRmxELFdBQU0sR0FB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SSxFQUFFO2dCQUNyQixJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU87Z0JBR2xCLGNBQWM7c0JBRGIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTiwyQkFBMkI7c0JBRDFCLE1BQU07Z0JBSVAsd0JBQXdCO3NCQUR2QixNQUFNO2dCQUlQLDJCQUEyQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXAtYnAtY29udGFjdC1wZXJzb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IFNhcEJwQ3JlYXRlQ29udGFjdFBlcnNvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NhcC1icC1jcmVhdGUtY29udGFjdC1wZXJzb24vc2FwLWJwLWNyZWF0ZS1jb250YWN0LXBlcnNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNhcEJwRGV0YWlsc0NvbnRhY3RQZXJzb25Db21wb25lbnQgfSBmcm9tICcuLi9zYXAtYnAtZGV0YWlscy1jb250YWN0LXBlcnNvbi9zYXAtYnAtZGV0YWlscy1jb250YWN0LXBlcnNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRTb3J0LCBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdEJhc2VTZXJ2aWNlIH0gZnJvbSAnbmd4LXN0LWJhc2UtZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU3REaWFsb2dUcmFuc2xhdGVkU2VydmljZSB9IGZyb20gJ25neC1zdC1kaWFsb2cnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXAtYnAtbGlzdC1jb250YWN0LXBlcnNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2FwLWJwLWxpc3QtY29udGFjdC1wZXJzb24uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNhcEJwTGlzdENvbnRhY3RQZXJzb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGFjdFBlcnNvbnM6IFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZUVkaXQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlQWRkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGV0YWlsc1ZpZXcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBjYW5FZGl0SW5EZXRhaWxzID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGNvbnRhY3RQZXJzb25DaGFuZ2VkRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY29udGFjdFBlcnNvbkxpc3RFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYXBCcENvbnRhY3RQZXJzb25Nb2RlbFtdPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBkZWxldGVkQ29udGFjdFBlcnNvbkVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsPigpO1xyXG5cclxuICBkZWZhdWx0U29ydDogU29ydCB8IG51bGwgPSBudWxsO1xyXG5cclxuICB0YWJsZUNvbHVtbnM6IHN0cmluZ1tdID0gW1xyXG4gICAgJ2lzRGVmYXVsdCcsXHJcbiAgICAnbmFtZScsXHJcbiAgICAnZmlyc3ROYW1lJyxcclxuICAgICdsYXN0TmFtZScsXHJcbiAgICAndGl0bGUnLFxyXG4gICAgJ3Bvc2l0aW9uJyxcclxuICAgICd0ZWwxJyxcclxuICAgICdjZWxsdWxhcicsXHJcbiAgICAnYWN0aW9ucycsXHJcbiAgXTtcclxuICB0YWJsZVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsPjtcclxuXHJcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3REaWFsb2dUcmFuc2xhdGVkU2VydmljZTogU3REaWFsb2dUcmFuc2xhdGVkU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB0bXBEZWZhdWx0U29ydCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFxyXG4gICAgICAnYXBwLXNhcC1icC1saXN0LWNvbnRhY3QtcGVyc29uJ1xyXG4gICAgKTtcclxuICAgIGlmICh0bXBEZWZhdWx0U29ydCkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRTb3J0ID0gPFNvcnQ+SlNPTi5wYXJzZSh0bXBEZWZhdWx0U29ydCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGV0YWlsc1ZpZXcgJiYgIXRoaXMuY2FuRWRpdEluRGV0YWlscykge1xyXG4gICAgICB0aGlzLnRhYmxlQ29sdW1ucyA9IFtcclxuICAgICAgICAnaXNEZWZhdWx0JyxcclxuICAgICAgICAnbmFtZScsXHJcbiAgICAgICAgJ2ZpcnN0TmFtZScsXHJcbiAgICAgICAgJ2xhc3ROYW1lJyxcclxuICAgICAgICAndGl0bGUnLFxyXG4gICAgICAgICdwb3NpdGlvbicsXHJcbiAgICAgICAgJ3RlbDEnLFxyXG4gICAgICAgICdjZWxsdWxhcicsXHJcbiAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgdGhpcy50YWJsZVNvdXJjZS5maWx0ZXIgPSB2YWwudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Q29udGFjdFBlcnNvblRhYmxlKHRoaXMuY29udGFjdFBlcnNvbnMpO1xyXG5cclxuICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnN1YnNjcmliZShzb3J0ID0+IHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgJ2FwcC1zYXAtYnAtbGlzdC1jb250YWN0LXBlcnNvbicsXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoc29ydClcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3Q29udGFjdFBlcnNvbigpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlQWRkKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nXHJcbiAgICAgICAgLm9wZW4oU2FwQnBDcmVhdGVDb250YWN0UGVyc29uQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICBtaW5XaWR0aDogJzgwMHB4JyxcclxuICAgICAgICAgIHdpZHRoOiAnNTAlJyxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgLnBpcGUoZmlsdGVyKFN0QmFzZVNlcnZpY2Uubm90TnVsbCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzOiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCkgPT4ge1xyXG4gICAgICAgICAgcmVzLmZyZXNoQWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5jb250YWN0UGVyc29uQ2hhbmdlZEVtaXR0ZXIuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuc2V0Q29udGFjdFBlcnNvblRhYmxlKFtcclxuICAgICAgICAgICAgLi4udGhpcy50YWJsZVNvdXJjZS5kYXRhLFxyXG4gICAgICAgICAgICB7IC4uLnJlcywgaXNEZWZhdWx0OiBmYWxzZSB9LFxyXG4gICAgICAgICAgXSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb250YWN0UGVyc29uSXNEZWZhdWx0Q2hhbmdlZChjb250YWN0UGVyc29uOiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCkge1xyXG4gICAgdGhpcy5zZXRDb250YWN0UGVyc29uVGFibGUoXHJcbiAgICAgIHRoaXMudGFibGVTb3VyY2UuZGF0YS5tYXAoY3AgPT4ge1xyXG4gICAgICAgIGlmIChjcCAhPT0gY29udGFjdFBlcnNvbikge1xyXG4gICAgICAgICAgY3AuaXNEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY3A7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZWRpdENvbnRhY3RQZXJzb24oXHJcbiAgICBldmVudDogYW55LFxyXG4gICAgY29udGFjdFBlcnNvbjogU2FwQnBDb250YWN0UGVyc29uTW9kZWwsXHJcbiAgICBpbmRleDogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZUVkaXQpIHtcclxuICAgICAgdGhpcy5kaWFsb2dcclxuICAgICAgICAub3BlbihTYXBCcENyZWF0ZUNvbnRhY3RQZXJzb25Db21wb25lbnQsIHtcclxuICAgICAgICAgIG1pbldpZHRoOiAnODAwcHgnLFxyXG4gICAgICAgICAgd2lkdGg6ICc1MCUnLFxyXG4gICAgICAgICAgZGF0YTogeyBjb250YWN0UGVyc29uOiBjb250YWN0UGVyc29uIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgIC5waXBlKGZpbHRlcihTdEJhc2VTZXJ2aWNlLm5vdE51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2FwQnBDb250YWN0UGVyc29uTW9kZWwpID0+IHtcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24ubmFtZSA9IHJlcy5uYW1lO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi5maXJzdE5hbWUgPSByZXMuZmlyc3ROYW1lO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi5taWRkbGVOYW1lID0gcmVzLm1pZGRsZU5hbWU7XHJcbiAgICAgICAgICBjb250YWN0UGVyc29uLmxhc3ROYW1lID0gcmVzLmxhc3ROYW1lO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi50aXRsZSA9IHJlcy50aXRsZTtcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24ucG9zaXRpb24gPSByZXMucG9zaXRpb247XHJcbiAgICAgICAgICBjb250YWN0UGVyc29uLmFkZHJlc3MgPSByZXMuYWRkcmVzcztcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24udGVsMSA9IHJlcy50ZWwxO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi50ZWwyID0gcmVzLnRlbDI7XHJcbiAgICAgICAgICBjb250YWN0UGVyc29uLmNlbGx1bGFyID0gcmVzLmNlbGx1bGFyO1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi5mYXggPSByZXMuZmF4O1xyXG4gICAgICAgICAgY29udGFjdFBlcnNvbi5lbWFpbCA9IHJlcy5lbWFpbDtcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24ubm90ZXMxID0gcmVzLm5vdGVzMTtcclxuICAgICAgICAgIGNvbnRhY3RQZXJzb24ubm90ZXMyID0gcmVzLm5vdGVzMjtcclxuXHJcbiAgICAgICAgICBpZiAoY29udGFjdFBlcnNvbi5uYW1lICE9PSByZXMubmFtZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhY3RQZXJzb25DaGFuZ2VkRW1pdHRlci5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRhY3RQZXJzb25UYWJsZSh0aGlzLnRhYmxlU291cmNlLmRhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ29udGFjdFBlcnNvbihcclxuICAgIGV2ZW50OiBhbnksXHJcbiAgICBjb250YWN0UGVyc29uOiBTYXBCcENvbnRhY3RQZXJzb25Nb2RlbCxcclxuICAgIGluZGV4OiBudW1iZXJcclxuICApIHtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGlmICghdGhpcy5kaXNhYmxlRWRpdCkge1xyXG4gICAgICB0aGlzLnN0RGlhbG9nVHJhbnNsYXRlZFNlcnZpY2VcclxuICAgICAgICAuc2hvd0RlbGV0ZVdhcm5pbmcoKVxyXG4gICAgICAgIC5waXBlKGZpbHRlcihTdEJhc2VTZXJ2aWNlLm5vdE51bGwpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgIGlmICghY29udGFjdFBlcnNvbj8uZnJlc2hBZGRlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRhY3RQZXJzb25DaGFuZ2VkRW1pdHRlci5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZWRDb250YWN0UGVyc29uRW1pdHRlci5lbWl0KGNvbnRhY3RQZXJzb24pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuc2V0Q29udGFjdFBlcnNvblRhYmxlKFxyXG4gICAgICAgICAgICB0aGlzLnRhYmxlU291cmNlLmRhdGEuZmlsdGVyKChjcCwgaSkgPT4gY29udGFjdFBlcnNvbiAhPT0gY3ApXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaENvbnRyb2wuc2V0VmFsdWUoJycpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0NvbnRhY3RQZXJzb25EZXRhaWxzKGNvbnRhY3RQZXJzb246IFNhcEJwQ29udGFjdFBlcnNvbk1vZGVsKSB7XHJcbiAgICBpZiAodGhpcy5kZXRhaWxzVmlldykge1xyXG4gICAgICB0aGlzLmRpYWxvZy5vcGVuKFNhcEJwRGV0YWlsc0NvbnRhY3RQZXJzb25Db21wb25lbnQsIHtcclxuICAgICAgICBtaW5XaWR0aDogJzgwMHB4JyxcclxuICAgICAgICB3aWR0aDogJzUwJScsXHJcbiAgICAgICAgZGF0YTogeyBjb250YWN0UGVyc29uOiBjb250YWN0UGVyc29uIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDb250YWN0UGVyc29uVGFibGUoZGF0YTogU2FwQnBDb250YWN0UGVyc29uTW9kZWxbXSkge1xyXG4gICAgdGhpcy5jb250YWN0UGVyc29uTGlzdEVtaXR0ZXIuZW1pdChkYXRhKTtcclxuICAgIHRoaXMudGFibGVTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKGRhdGEpO1xyXG4gICAgdGhpcy50YWJsZVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMudGFibGVTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhY3QtcGVyc29uLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8cCBjbGFzcz1cImNvbnRhY3QtcGVyc29uLXRpdGxlXCI+XHJcbiAgICAgIHt7ICdzYXBBZG1pbkJwLmNvbnRhY3RQZXJzb24nIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwibWluLXdpZHRoOiA4MDBweFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZCByb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZ2xvYmFsLnNlYXJjaCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyIGNvbC1hdXRvXCI+XHJcbiAgICAgICAgICA8aVxyXG4gICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXHJcbiAgICAgICAgICAgID5jbGVhcjwvaVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIhZGV0YWlsc1ZpZXcgfHwgKGRldGFpbHNWaWV3ICYmIGNhbkVkaXRJbkRldGFpbHMpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFkZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFkZE5ld0NvbnRhY3RQZXJzb24oKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyAnc2FwQWRtaW5CcC5hZGRDb250YWN0UGVyc29uJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8dGFibGVcclxuICAgIFtuZ0NsYXNzXT1cInsgJ25vLWhvdmVyJzogIWRldGFpbHNWaWV3IH1cIlxyXG4gICAgbWF0LXRhYmxlXHJcbiAgICBbZGF0YVNvdXJjZV09XCJ0YWJsZVNvdXJjZVwiXHJcbiAgICBtYXRTb3J0XHJcbiAgICBbbWF0U29ydEFjdGl2ZV09XCJkZWZhdWx0U29ydD8uYWN0aXZlIHx8ICduYW1lJ1wiXHJcbiAgICBbbWF0U29ydERpcmVjdGlvbl09XCJkZWZhdWx0U29ydD8uZGlyZWN0aW9uIHx8ICdhc2MnXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImlzRGVmYXVsdFwiPlxyXG4gICAgICA8dGggY2xhc3M9XCJpcy1kZWZhdWx0LWNlbGxcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAge3sgJ3NhcEFkbWluQnAuaXNEZWZhdWx0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGQgY2xhc3M9XCJpcy1kZWZhdWx0LWNlbGxcIiBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIGNsYXNzPVwiY29sLWF1dG9cIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJlbGVtZW50LmlzRGVmYXVsdFwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUVkaXQgfHwgKGRldGFpbHNWaWV3ICYmICFjYW5FZGl0SW5EZXRhaWxzKVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNvbnRhY3RQZXJzb25Jc0RlZmF1bHRDaGFuZ2VkKGVsZW1lbnQpXCJcclxuICAgICAgICA+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm5hbWVcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zXCI+IHN3YXBfdmVydCA8L3NwYW4+XHJcbiAgICAgICAge3sgJ2dsb2JhbC5uYW1lJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQubmFtZSB9fTwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImZpcnN0TmFtZVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJvcGFjaXR5OiAwLjNcIj4gc3dhcF92ZXJ0IDwvc3Bhbj5cclxuICAgICAgICB7eyAnc2FwQWRtaW5CcC5maXJzdE5hbWUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudC5maXJzdE5hbWUgfX08L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYXN0TmFtZVwiPlxyXG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgc3R5bGU9XCJvcGFjaXR5OiAwLjNcIj4gc3dhcF92ZXJ0IDwvc3Bhbj5cclxuICAgICAgICB7eyAnc2FwQWRtaW5CcC5sYXN0TmFtZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj57eyBlbGVtZW50Lmxhc3ROYW1lIH19PC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidGl0bGVcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zXCI+IHN3YXBfdmVydCA8L3NwYW4+XHJcbiAgICAgICAge3sgJ3NhcEFkbWluQnAudGl0bGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudC50aXRsZSB9fTwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInBvc2l0aW9uXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLnBvc2l0aW9uJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPnt7IGVsZW1lbnQucG9zaXRpb24gfX08L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ0ZWwxXCI+XHJcbiAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBzdHlsZT1cIm9wYWNpdHk6IDAuM1wiPiBzd2FwX3ZlcnQgPC9zcGFuPlxyXG4gICAgICAgIHt7ICdzYXBBZG1pbkJwLnRlbDEnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudC50ZWwxIH19PC90ZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiY2VsbHVsYXJcIj5cclxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiIHN0eWxlPVwib3BhY2l0eTogMC4zXCI+IHN3YXBfdmVydCA8L3NwYW4+XHJcbiAgICAgICAge3sgJ3NhcEFkbWluQnAuY2VsbHVsYXInIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+e3sgZWxlbWVudC5jZWxsdWxhciB9fTwvdGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cclxuICAgICAgPHRoIGNsYXNzPVwiYWN0aW9ucy1jZWxsXCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgIDx0ZFxyXG4gICAgICAgIGNsYXNzPVwiYWN0aW9ucy1jZWxsIGp1c3RpZnktY29udGVudC1lbmRcIlxyXG4gICAgICAgIG1hdC1jZWxsXHJcbiAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIFttYXRUb29sdGlwXT1cIidzYXBBZG1pbkJwLmVkaXRDb250YWN0UGVyc29uJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZWRpdENvbnRhY3RQZXJzb24oJGV2ZW50LCBlbGVtZW50LCBpKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUVkaXRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj5lZGl0PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgIFttYXRUb29sdGlwXT1cIidzYXBBZG1pbkJwLmRlbGV0ZUNvbnRhY3RQZXJzb24nIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIChjbGljayk9XCJkZWxldGVDb250YWN0UGVyc29uKCRldmVudCwgZWxlbWVudCwgaSlcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVFZGl0XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+ZGVsZXRlPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJ0YWJsZUNvbHVtbnNcIj48L3RyPlxyXG4gICAgPHRyXHJcbiAgICAgIG1hdC1yb3dcclxuICAgICAgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IHRhYmxlQ29sdW1uc1wiXHJcbiAgICAgIChjbGljayk9XCJzaG93Q29udGFjdFBlcnNvbkRldGFpbHMocm93KVwiXHJcbiAgICA+PC90cj5cclxuICA8L3RhYmxlPlxyXG4gIDxtYXQtcGFnaW5hdG9yIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzVdXCI+PC9tYXQtcGFnaW5hdG9yPlxyXG48L2Rpdj5cclxuIl19