fabrikantencore 2.1.3 → 2.1.4
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.
- package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.mjs +7 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-filter-colour/fab-filter-colour.component.mjs +3 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +3 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-toebehoren/fab-toebehoren.component.mjs +123 -14
- package/esm2020/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.mjs +3 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.mjs +3 -3
- package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +1 -4
- package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +28 -16
- package/esm2020/src/app/modules/fabrikantencore/services/projectsetting.service.mjs +4 -1
- package/esm2020/src/app/modules/fabrikantencore/services/translate.service.mjs +18 -1
- package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +129 -297
- package/fesm2015/fabrikantencore.mjs +343 -407
- package/fesm2015/fabrikantencore.mjs.map +1 -1
- package/fesm2020/fabrikantencore.mjs +339 -406
- package/fesm2020/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/modules/fabrikantencore/components/fab-product/fab-toebehoren/fab-toebehoren.component.d.ts +22 -5
- package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +10 -11
- package/src/app/modules/fabrikantencore/services/translate.service.d.ts +2 -0
- package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +56 -74
- package/esm2020/src/app/modules/fabrikantencore/services/toebehoren.service.mjs +0 -41
- package/src/app/modules/fabrikantencore/services/toebehoren.service.d.ts +0 -13
|
@@ -135,15 +135,19 @@ export class BeheerProductsEigenschapComponent {
|
|
|
135
135
|
this.eigenschap.bereiken.length > 0) {
|
|
136
136
|
return true;
|
|
137
137
|
}
|
|
138
|
+
if (this.eigenschap?.toebehoren?.length != null &&
|
|
139
|
+
this.eigenschap.toebehoren.length > 0) {
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
138
142
|
return false;
|
|
139
143
|
}
|
|
140
144
|
}
|
|
141
145
|
BeheerProductsEigenschapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsEigenschapComponent, deps: [{ token: i1.ImportSetsService }, { token: i2.ProductsService }, { token: i3.MatDialog }, { token: i4.ProductsApiClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
-
BeheerProductsEigenschapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsEigenschapComponent, selector: "app-beheer-products-eigenschap", inputs: { eigenschap: "eigenschap" }, ngImport: i0, template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"eigenschap.rangeInputs.length == 0\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n \r\n \r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <!--<button mat-raised-button (click)=\"Connect(optie.id, eigenschap.name, optie.name)\">\r\n FilterOption\r\n </button>-->\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"Ignore(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.BeheerProductsEigenschapBereikComponent, selector: "app-beheer-products-eigenschap-bereik", inputs: ["bereik"] }] });
|
|
146
|
+
BeheerProductsEigenschapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: BeheerProductsEigenschapComponent, selector: "app-beheer-products-eigenschap", inputs: { eigenschap: "eigenschap" }, ngImport: i0, template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"eigenschap.rangeInputs.length == 0\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n \r\n \r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <!--<button mat-raised-button (click)=\"Connect(optie.id, eigenschap.name, optie.name)\">\r\n FilterOption\r\n </button>-->\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"Ignore(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.BeheerProductsEigenschapBereikComponent, selector: "app-beheer-products-eigenschap-bereik", inputs: ["bereik"] }] });
|
|
143
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: BeheerProductsEigenschapComponent, decorators: [{
|
|
144
148
|
type: Component,
|
|
145
|
-
args: [{ selector: 'app-beheer-products-eigenschap', template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"eigenschap.rangeInputs.length == 0\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n \r\n \r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <!--<button mat-raised-button (click)=\"Connect(optie.id, eigenschap.name, optie.name)\">\r\n FilterOption\r\n </button>-->\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"Ignore(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"] }]
|
|
149
|
+
args: [{ selector: 'app-beheer-products-eigenschap', template: "<div class=\"container\" [ngClass]=\"{'warning': !eigenschap.connected, 'normal': eigenschap.connected}\">\r\n <div class=\"row\" (click)=\"Toggle()\">\r\n <div class=\"icon-td\">\r\n <mat-icon *ngIf=\"!eigenschap.open && Show()\">expand_more</mat-icon>\r\n <mat-icon *ngIf=\"eigenschap.open && Show()\">expand_less</mat-icon>\r\n </div>\r\n <div class=\"eigenschapcel\" colspan=\"2\">\r\n {{eigenschap?.name}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"eigenschap.open\">\r\n <div *ngFor=\"let bereik of eigenschap.bereiken\" class=\"bereik\">\r\n <app-beheer-products-eigenschap-bereik [bereik]=\"bereik\"></app-beheer-products-eigenschap-bereik>\r\n </div>\r\n <div *ngFor=\"let toebehoren of eigenschap.toebehoren\">\r\n {{ toebehoren.name }}\r\n </div>\r\n <div *ngIf=\"eigenschap.bereiken.length > 0 && eigenschap.rangeInputs != null\">\r\n <div *ngIf=\"eigenschap.rangeInputs.length == 0\">\r\n <button mat-raised-button (click)=\"ConnectRange()\">\r\n Range\r\n </button>\r\n </div>\r\n <div *ngFor=\"let range of eigenschap.rangeInputs\">\r\n {{ range.rangeInputModel.name }}\r\n\r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngFor=\"let optie of eigenschap.opties\" [ngClass]=\"{'warning': !optie.connected}\">\r\n <div class=\"displayflex\">\r\n <ng-container *ngIf=\"optie.colour != null && optie.colour != ''\">\r\n <span [ngStyle]=\"{'background-color': optie.colour}\" class=\"colour-preview\">\r\n \r\n \r\n </span>\r\n </ng-container>\r\n <div class=\"text-div line-height\">{{ optie.name }}</div>\r\n </div>\r\n <div>\r\n <div *ngIf=\"!optie.connected\" class=\"button-row\">\r\n <!--<button mat-raised-button (click)=\"Connect(optie.id, eigenschap.name, optie.name)\">\r\n FilterOption\r\n </button>-->\r\n <button mat-raised-button (click)=\"ConnectMany(optie.id)\">\r\n FilterOptionMany\r\n </button>\r\n <!--<button mat-raised-button (click)=\"ConnectCategory()\">\r\n Category\r\n </button>-->\r\n <button mat-raised-button (click)=\"Ignore(optie.id)\">\r\n Ignore\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieFilterOptionViewModels\">\r\n <b>{{ connect.filterOptionViewModel.filterName }}: {{ connect.filterOptionViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngFor=\"let connect of optie.bcbEigenschapOptieCategoryViewModels\">\r\n <b>{{ connect.categoryViewModel.name }}</b> \r\n <button mat-raised-button>\r\n Remove\r\n </button>\r\n </div>\r\n <div *ngIf=\"optie.ignore\">\r\n <b>Ignore</b> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".row{cursor:pointer;display:flex}.displayflex{display:flex}.line-height{line-height:36px}.colour-preview{padding:5px;margin:2px;border:1px solid #000}.eigenschapcel{flex:auto}.button-row{display:flex;gap:4px}.container{margin:5px;padding:5px;border:1px solid #000}.icon-td{width:24px;height:24px}.text-div{flex:auto}.warning{background-color:#f08080}.normal{background-color:#fff}\n"] }]
|
|
146
150
|
}], ctorParameters: function () { return [{ type: i1.ImportSetsService }, { type: i2.ProductsService }, { type: i3.MatDialog }, { type: i4.ProductsApiClient }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { eigenschap: [{
|
|
147
151
|
type: Input
|
|
148
152
|
}] } });
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSTVFLE9BQU8sRUFBcUIsMkJBQTJCLEVBQTBCLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUosT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7Ozs7Ozs7Ozs7QUFPOUksTUFBTSxPQUFPLGlDQUFpQztJQUk1QyxZQUNTLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxNQUFpQixFQUNoQixpQkFBb0MsRUFDcEMsaUJBQW9DO1FBSnJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQUks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TyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0QsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7Z0JBQ3JCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUk7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLElBQUksSUFBSTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzhIQXRKVSxpQ0FBaUM7a0hBQWpDLGlDQUFpQyw0R0NkOUMsMDZGQXdFQTsyRkQxRGEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLGdDQUFnQzs4TkFNakMsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgSW1wb3J0U2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdHNBcGlDbGllbnQsIENvbm5lY3RCQ0JFaWdlbnNjaGFwUmVxdWVzdCwgQkNCRWlnZW5zY2hhcFZpZXdNb2RlbCwgQ29ubmVjdEVpZ2Vuc2NoYXBPcHRpZVJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJDb25uZWN0Q2F0ZWdvcnlEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iZWhlZXItY29ubmVjdC1jYXRlZ29yeS1kaWFsb2cvYmVoZWVyLWNvbm5lY3QtY2F0ZWdvcnktZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyUHJvZHVjdHNDb25uZWN0UmFuZ2VpbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2JlaGVlci1wcm9kdWN0cy1jb25uZWN0LXJhbmdlaW5wdXQvYmVoZWVyLXByb2R1Y3RzLWNvbm5lY3QtcmFuZ2VpbnB1dC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyUHJvZHVjdHNFaWdlbnNjaGFwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgZWlnZW5zY2hhcDogQkNCRWlnZW5zY2hhcFZpZXdNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgSW1wb3J0U2V0c1NlcnZpY2U6IEltcG9ydFNldHNTZXJ2aWNlLFxyXG4gICAgcHVibGljIFByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBQcm9kdWN0c0FwaUNsaWVudDogUHJvZHVjdHNBcGlDbGllbnQsXHJcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFRvZ2dsZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZWlnZW5zY2hhcC5vcGVuID0gIXRoaXMuZWlnZW5zY2hhcC5vcGVuO1xyXG4gIH1cclxuXHJcbiAgLy9wdWJsaWMgQ29ubmVjdChpZDogbnVtYmVyLCBmaWx0ZXI6IHN0cmluZywgb3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAvLyAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVyUHJvZHVjdHNLb3BwZWxGaWx0ZXJvcHRpb25EYWlsb2dDb21wb25lbnQsIHtcclxuICAvLyAgICBkYXRhOiB7XHJcbiAgLy8gICAgICBsb2NhdGlvbjogdGhpcy5laWdlbnNjaGFwLmxvY2F0aW9uLFxyXG4gIC8vICAgICAgYmNiZWlnZW5zY2hhcG9wdGllaWQ6IGlkLFxyXG4gIC8vICAgICAgc3VnZ2VzdGVkZmlsdGVyOiBmaWx0ZXIsXHJcbiAgLy8gICAgICBzdWdnZXN0ZWRvcHRpb246IG9wdGlvblxyXG4gIC8vICAgIH1cclxuICAvLyAgfSk7XHJcblxyXG4gIC8vICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgLy8gICAgaWYgKHJlc3VsdCAhPSBudWxsKSB7XHJcbiAgLy8gICAgICBpZiAocmVzdWx0LmZpbHRlcm9wdGlvbiAhPSBudWxsICYmIHJlc3VsdC5maWx0ZXJvcHRpb24gPiAwKSB7XHJcbiAgLy8gICAgICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IG51bGwpIHtcclxuICAvLyAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBDb25uZWN0RWlnZW5zY2hhcE9wdGllUmVxdWVzdCgpO1xyXG5cclxuICAvLyAgICAgICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBPcHRpZUlkID0gaWQ7XHJcbiAgLy8gICAgICAgICAgcmVxdWVzdC5maWx0ZXJPcHRpb25JZCA9IHJlc3VsdC5maWx0ZXJvcHRpb247XHJcbiAgLy8gICAgICAgICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsLmlkO1xyXG4gIC8vICAgICAgICAgIHJlcXVlc3QubG9jYXRpb24gPSB0aGlzLmVpZ2Vuc2NoYXAubG9jYXRpb247XHJcblxyXG4gIC8vICAgICAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdEJDQkVpZ2Vuc2NoYXBPcHRpZUZpbHRlck9wdGlvbihyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gIC8vICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgLy8gICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gIC8vICAgICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gIC8vICAgICAgICAgIH0pO1xyXG4gIC8vICAgICAgICB9XHJcbiAgLy8gICAgICB9XHJcbiAgLy8gICAgICBlbHNlIGlmIChyZXN1bHQuZmlsdGVyICE9IG51bGwpIHtcclxuICAvLyAgICAgICAgdmFyIHJlcXVlc3QyID0gbmV3IENvbm5lY3RNYW55TmFtZVJlcXVlc3QoKTtcclxuXHJcbiAgLy8gICAgICAgIHJlcXVlc3QyLmJjYlByb2R1Y3RFaWdlbnNjaGFwT3B0aWVJZCA9IGlkO1xyXG4gIC8vICAgICAgICByZXF1ZXN0Mi5maWx0ZXJJZCA9IHJlc3VsdC5maWx0ZXI7XHJcblxyXG4gIC8vICAgICAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50LmNvbm5lY3RNYW55TmFtZShyZXF1ZXN0Mikuc3Vic2NyaWJlKChtb2RlbDogQ29ubmVjdE1hbnlOYW1lUmVzcG9uc2UpID0+IHtcclxuICAvLyAgICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkUHJvZHVjdCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAvLyAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gIC8vICAgICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAvLyAgICAgICAgfSk7XHJcbiAgLy8gICAgICB9XHJcbiAgLy8gICAgfVxyXG4gIC8vICB9KTtcclxuICAvL31cclxuXHJcbiAgcHVibGljIENvbm5lY3RNYW55KGlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbmFtZTogdGhpcy5laWdlbnNjaGFwLm5hbWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdD8uZmlsdGVyICE9IG51bGwpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQuZmlsdGVyID4gMCkge1xyXG4gICAgICAgICAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRpbmdQcm9kdWN0cyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgQ29ubmVjdEJDQkVpZ2Vuc2NoYXBSZXF1ZXN0KCk7XHJcblxyXG4gICAgICAgICAgICAgIHJlcXVlc3QuZmlsdGVySWQgPSByZXN1bHQuZmlsdGVyO1xyXG4gICAgICAgICAgICAgIHJlcXVlc3QubG9jYXRpb24gPSB0aGlzLmVpZ2Vuc2NoYXAubG9jYXRpb247XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwSWQgPSB0aGlzLmVpZ2Vuc2NoYXAuaWQ7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5iY2JJbXBvcnRTZXRJZCA9IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0U2VsZWN0ZWQ7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsLmlkO1xyXG4gICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50LmNvbm5lY3RCQ0JFaWdlbnNjaGFwRmlsdGVyKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkUHJvZHVjdCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgICAgICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIElnbm9yZShpZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0c1NlcnZpY2UuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IENvbm5lY3RFaWdlbnNjaGFwT3B0aWVSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBPcHRpZUlkID0gaWQ7XHJcbiAgICAgIHJlcXVlc3QuZmlsdGVyT3B0aW9uSWQgPSAtMTtcclxuICAgICAgcmVxdWVzdC5iY2JQcm9kdWN0SWQgPSB0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsLmlkO1xyXG4gICAgICByZXF1ZXN0LmxvY2F0aW9uID0gdGhpcy5laWdlbnNjaGFwLmxvY2F0aW9uO1xyXG5cclxuICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5pZ25vcmVCQ0JFaWdlbnNjaGFwT3B0aWVGaWx0ZXJPcHRpb24ocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkUHJvZHVjdCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29ubmVjdFJhbmdlKCk6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVyUHJvZHVjdHNDb25uZWN0UmFuZ2VpbnB1dENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgYmNiZWlnZW5zY2hhcGlkOiB0aGlzLmVpZ2Vuc2NoYXAuaWQsXHJcbiAgICAgICAgbG9jYXRpb246IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDb25uZWN0Q2F0ZWdvcnkoKTogdm9pZCB7XHJcbiAgICBpZiAoY29uZmlybShcIldlZXQgamUgaGV0IHpla2VyP1wiKSkge1xyXG4gICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkaW5nUHJvZHVjdHMgPSB0cnVlO1xyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBDb25uZWN0QkNCRWlnZW5zY2hhcFJlcXVlc3QoKTtcclxuXHJcbiAgICAgIHJlcXVlc3QuYmNiRWlnZW5zY2hhcElkID0gdGhpcy5laWdlbnNjaGFwLmlkO1xyXG4gICAgICByZXF1ZXN0LmJjYkltcG9ydFNldElkID0gdGhpcy5JbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZDtcclxuXHJcbiAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdEJDQkVpZ2Vuc2NoYXBDYXRlZ29yeShyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZWlnZW5zY2hhcD8ub3B0aWVzPy5sZW5ndGggIT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLmVpZ2Vuc2NoYXAub3B0aWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZWlnZW5zY2hhcD8uYmVyZWlrZW4/Lmxlbmd0aCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuZWlnZW5zY2hhcC5iZXJlaWtlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnd2FybmluZyc6ICFlaWdlbnNjaGFwLmNvbm5lY3RlZCwgJ25vcm1hbCc6IGVpZ2Vuc2NoYXAuY29ubmVjdGVkfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIiAoY2xpY2spPVwiVG9nZ2xlKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uLXRkXCI+XHJcbiAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIiFlaWdlbnNjaGFwLm9wZW4gJiYgU2hvdygpXCI+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxyXG4gICAgICA8bWF0LWljb24gKm5nSWY9XCJlaWdlbnNjaGFwLm9wZW4gJiYgU2hvdygpXCI+ZXhwYW5kX2xlc3M8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWlnZW5zY2hhcGNlbFwiIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgIHt7ZWlnZW5zY2hhcD8ubmFtZX19XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiZWlnZW5zY2hhcC5vcGVuXCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBiZXJlaWsgb2YgZWlnZW5zY2hhcC5iZXJlaWtlblwiIGNsYXNzPVwiYmVyZWlrXCI+XHJcbiAgICAgIDxhcHAtYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAtYmVyZWlrIFtiZXJlaWtdPVwiYmVyZWlrXCI+PC9hcHAtYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAtYmVyZWlrPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZWlnZW5zY2hhcC5iZXJlaWtlbi5sZW5ndGggPiAwICYmIGVpZ2Vuc2NoYXAucmFuZ2VJbnB1dHMgIT0gbnVsbFwiPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZWlnZW5zY2hhcC5yYW5nZUlucHV0cy5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNvbm5lY3RSYW5nZSgpXCI+XHJcbiAgICAgICAgICBSYW5nZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcmFuZ2Ugb2YgZWlnZW5zY2hhcC5yYW5nZUlucHV0c1wiPlxyXG4gICAgICAgIHt7IHJhbmdlLnJhbmdlSW5wdXRNb2RlbC5uYW1lIH19XHJcblxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24+XHJcbiAgICAgICAgICBSZW1vdmVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGllIG9mIGVpZ2Vuc2NoYXAub3B0aWVzXCIgW25nQ2xhc3NdPVwieyd3YXJuaW5nJzogIW9wdGllLmNvbm5lY3RlZH1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRpc3BsYXlmbGV4XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGllLmNvbG91ciAhPSBudWxsICYmIG9wdGllLmNvbG91ciAhPSAnJ1wiPlxyXG4gICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzogb3B0aWUuY29sb3VyfVwiIGNsYXNzPVwiY29sb3VyLXByZXZpZXdcIj5cclxuICAgICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRpdiBsaW5lLWhlaWdodFwiPnt7IG9wdGllLm5hbWUgfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFvcHRpZS5jb25uZWN0ZWRcIiBjbGFzcz1cImJ1dHRvbi1yb3dcIj5cclxuICAgICAgICAgIDwhLS08YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJDb25uZWN0KG9wdGllLmlkLCBlaWdlbnNjaGFwLm5hbWUsIG9wdGllLm5hbWUpXCI+XHJcbiAgICAgICAgRmlsdGVyT3B0aW9uXHJcbiAgICAgIDwvYnV0dG9uPi0tPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ29ubmVjdE1hbnkob3B0aWUuaWQpXCI+XHJcbiAgICAgICAgICAgIEZpbHRlck9wdGlvbk1hbnlcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPCEtLTxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNvbm5lY3RDYXRlZ29yeSgpXCI+XHJcbiAgICAgICAgQ2F0ZWdvcnlcclxuICAgICAgPC9idXR0b24+LS0+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJJZ25vcmUob3B0aWUuaWQpXCI+XHJcbiAgICAgICAgICAgIElnbm9yZVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29ubmVjdCBvZiBvcHRpZS5iY2JFaWdlbnNjaGFwT3B0aWVGaWx0ZXJPcHRpb25WaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICA8Yj57eyBjb25uZWN0LmZpbHRlck9wdGlvblZpZXdNb2RlbC5maWx0ZXJOYW1lIH19OiB7eyBjb25uZWN0LmZpbHRlck9wdGlvblZpZXdNb2RlbC5uYW1lIH19PC9iPiZuYnNwO1xyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgICAgICAgUmVtb3ZlXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb25uZWN0IG9mIG9wdGllLmJjYkVpZ2Vuc2NoYXBPcHRpZUNhdGVnb3J5Vmlld01vZGVsc1wiPlxyXG4gICAgICAgICAgPGI+e3sgY29ubmVjdC5jYXRlZ29yeVZpZXdNb2RlbC5uYW1lIH19PC9iPiZuYnNwO1xyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgICAgICAgUmVtb3ZlXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aWUuaWdub3JlXCI+XHJcbiAgICAgICAgICA8Yj5JZ25vcmU8L2I+Jm5ic3A7XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9iZWhlZXIvY29tcG9uZW50cy9iZWhlZXItcHJvZHVjdHMvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAvYmVoZWVyLXByb2R1Y3RzLWVpZ2Vuc2NoYXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSTVFLE9BQU8sRUFBcUIsMkJBQTJCLEVBQTBCLDZCQUE2QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUosT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7Ozs7Ozs7Ozs7QUFPOUksTUFBTSxPQUFPLGlDQUFpQztJQUk1QyxZQUNTLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxNQUFpQixFQUNoQixpQkFBb0MsRUFDcEMsaUJBQW9DO1FBSnJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQUksQ0FBQztJQUVuRCxRQUFRO0lBQ1IsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsdUZBQXVGO0lBQ3ZGLGFBQWE7SUFDYiwyQ0FBMkM7SUFDM0MsaUNBQWlDO0lBQ2pDLGdDQUFnQztJQUNoQywrQkFBK0I7SUFDL0IsT0FBTztJQUNQLE9BQU87SUFFUCx3REFBd0Q7SUFDeEQsMkJBQTJCO0lBQzNCLHFFQUFxRTtJQUNyRSxpRUFBaUU7SUFDakUsOERBQThEO0lBRTlELDhDQUE4QztJQUM5Qyx5REFBeUQ7SUFDekQsK0VBQStFO0lBQy9FLHdEQUF3RDtJQUV4RCxtR0FBbUc7SUFDbkcsdUVBQXVFO0lBQ3ZFLHFDQUFxQztJQUNyQywyQkFBMkI7SUFDM0IsZUFBZTtJQUNmLFdBQVc7SUFDWCxTQUFTO0lBQ1QseUNBQXlDO0lBQ3pDLHNEQUFzRDtJQUV0RCxvREFBb0Q7SUFDcEQsNENBQTRDO0lBRTVDLDBHQUEwRztJQUMxRyxxRUFBcUU7SUFDckUsbUNBQW1DO0lBQ25DLHlCQUF5QjtJQUN6QixhQUFhO0lBQ2IsU0FBUztJQUNULE9BQU87SUFDUCxPQUFPO0lBQ1AsR0FBRztJQUVJLFdBQVcsQ0FBQyxFQUFVO1FBQzNCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxFQUFFO1lBQ2xFLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO2FBQzNCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ2hELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BELElBQUksTUFBTSxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUU7b0JBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ3JCLElBQUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7NEJBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQzs0QkFDNUMsSUFBSSxPQUFPLEdBQUcsSUFBSSwyQkFBMkIsRUFBRSxDQUFDOzRCQUVoRCxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7NEJBQ2pDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7NEJBQzVDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7NEJBQzdDLE9BQU8sQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDOzRCQUNyRSxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDOzRCQUduRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQ0FDeEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7NEJBQzNELENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO2dDQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ2YsQ0FBQyxDQUFDLENBQUM7eUJBQ0o7cUJBQ0Y7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUFVO1FBQ3RCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLEVBQUU7WUFDcEQsSUFBSSxPQUFPLEdBQUcsSUFBSSw2QkFBNkIsRUFBRSxDQUFDO1lBRWxELE9BQU8sQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7WUFDbEMsT0FBTyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFFNUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9DQUFvQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xGLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNELENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO2dCQUNyQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUU7WUFDekUsSUFBSSxFQUFFO2dCQUNKLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7YUFDbkM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QyxJQUFJLE9BQU8sR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7WUFFaEQsT0FBTyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxPQUFPLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztZQUVyRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDM0QsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7Z0JBQ3JCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNmLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUk7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLElBQUksSUFBSTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sSUFBSSxJQUFJO1lBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OEhBM0pVLGlDQUFpQztrSEFBakMsaUNBQWlDLDRHQ2Q5Qyx1aEdBMkVBOzJGRDdEYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0UsZ0NBQWdDOzhOQU1qQyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBJbXBvcnRTZXRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2ltcG9ydHNldHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c0FwaUNsaWVudCwgQ29ubmVjdEJDQkVpZ2Vuc2NoYXBSZXF1ZXN0LCBCQ0JFaWdlbnNjaGFwVmlld01vZGVsLCBDb25uZWN0RWlnZW5zY2hhcE9wdGllUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEJlaGVlckNvbm5lY3RDYXRlZ29yeURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JlaGVlci1jb25uZWN0LWNhdGVnb3J5LWRpYWxvZy9iZWhlZXItY29ubmVjdC1jYXRlZ29yeS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoZWVyU2VsZWN0RmlsdGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmVoZWVyLXNlbGVjdC1maWx0ZXItZGlhbG9nL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhlZXJQcm9kdWN0c0Nvbm5lY3RSYW5nZWlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmVoZWVyLXByb2R1Y3RzLWNvbm5lY3QtcmFuZ2VpbnB1dC9iZWhlZXItcHJvZHVjdHMtY29ubmVjdC1yYW5nZWlucHV0LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1wcm9kdWN0cy1laWdlbnNjaGFwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9iZWhlZXItcHJvZHVjdHMtZWlnZW5zY2hhcC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJQcm9kdWN0c0VpZ2Vuc2NoYXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBlaWdlbnNjaGFwOiBCQ0JFaWdlbnNjaGFwVmlld01vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBJbXBvcnRTZXRzU2VydmljZTogSW1wb3J0U2V0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgUHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIFByb2R1Y3RzQXBpQ2xpZW50OiBQcm9kdWN0c0FwaUNsaWVudCxcclxuICAgIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5laWdlbnNjaGFwLm9wZW4gPSAhdGhpcy5laWdlbnNjaGFwLm9wZW47XHJcbiAgfVxyXG5cclxuICAvL3B1YmxpYyBDb25uZWN0KGlkOiBudW1iZXIsIGZpbHRlcjogc3RyaW5nLCBvcHRpb246IHN0cmluZyk6IHZvaWQge1xyXG4gIC8vICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJQcm9kdWN0c0tvcHBlbEZpbHRlcm9wdGlvbkRhaWxvZ0NvbXBvbmVudCwge1xyXG4gIC8vICAgIGRhdGE6IHtcclxuICAvLyAgICAgIGxvY2F0aW9uOiB0aGlzLmVpZ2Vuc2NoYXAubG9jYXRpb24sXHJcbiAgLy8gICAgICBiY2JlaWdlbnNjaGFwb3B0aWVpZDogaWQsXHJcbiAgLy8gICAgICBzdWdnZXN0ZWRmaWx0ZXI6IGZpbHRlcixcclxuICAvLyAgICAgIHN1Z2dlc3RlZG9wdGlvbjogb3B0aW9uXHJcbiAgLy8gICAgfVxyXG4gIC8vICB9KTtcclxuXHJcbiAgLy8gIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAvLyAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcclxuICAvLyAgICAgIGlmIChyZXN1bHQuZmlsdGVyb3B0aW9uICE9IG51bGwgJiYgcmVzdWx0LmZpbHRlcm9wdGlvbiA+IDApIHtcclxuICAvLyAgICAgICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gIC8vICAgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IENvbm5lY3RFaWdlbnNjaGFwT3B0aWVSZXF1ZXN0KCk7XHJcblxyXG4gIC8vICAgICAgICAgIHJlcXVlc3QuYmNiRWlnZW5zY2hhcE9wdGllSWQgPSBpZDtcclxuICAvLyAgICAgICAgICByZXF1ZXN0LmZpbHRlck9wdGlvbklkID0gcmVzdWx0LmZpbHRlcm9wdGlvbjtcclxuICAvLyAgICAgICAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwuaWQ7XHJcbiAgLy8gICAgICAgICAgcmVxdWVzdC5sb2NhdGlvbiA9IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvbjtcclxuXHJcbiAgLy8gICAgICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5jb25uZWN0QkNCRWlnZW5zY2hhcE9wdGllRmlsdGVyT3B0aW9uKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgLy8gICAgICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5Mb2FkUHJvZHVjdCh0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAvLyAgICAgICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgLy8gICAgICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgLy8gICAgICAgICAgfSk7XHJcbiAgLy8gICAgICAgIH1cclxuICAvLyAgICAgIH1cclxuICAvLyAgICAgIGVsc2UgaWYgKHJlc3VsdC5maWx0ZXIgIT0gbnVsbCkge1xyXG4gIC8vICAgICAgICB2YXIgcmVxdWVzdDIgPSBuZXcgQ29ubmVjdE1hbnlOYW1lUmVxdWVzdCgpO1xyXG5cclxuICAvLyAgICAgICAgcmVxdWVzdDIuYmNiUHJvZHVjdEVpZ2Vuc2NoYXBPcHRpZUlkID0gaWQ7XHJcbiAgLy8gICAgICAgIHJlcXVlc3QyLmZpbHRlcklkID0gcmVzdWx0LmZpbHRlcjtcclxuXHJcbiAgLy8gICAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdE1hbnlOYW1lKHJlcXVlc3QyKS5zdWJzY3JpYmUoKG1vZGVsOiBDb25uZWN0TWFueU5hbWVSZXNwb25zZSkgPT4ge1xyXG4gIC8vICAgICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIC8vICAgICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgLy8gICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gIC8vICAgICAgICB9KTtcclxuICAvLyAgICAgIH1cclxuICAvLyAgICB9XHJcbiAgLy8gIH0pO1xyXG4gIC8vfVxyXG5cclxuICBwdWJsaWMgQ29ubmVjdE1hbnkoaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQmVoZWVyU2VsZWN0RmlsdGVyRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBuYW1lOiB0aGlzLmVpZ2Vuc2NoYXAubmFtZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgICBpZiAocmVzdWx0Py5maWx0ZXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5maWx0ZXIgPiAwKSB7XHJcbiAgICAgICAgICAgIGlmIChjb25maXJtKFwiV2VldCBqZSBoZXQgemVrZXI/XCIpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZGluZ1Byb2R1Y3RzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBDb25uZWN0QkNCRWlnZW5zY2hhcFJlcXVlc3QoKTtcclxuXHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5maWx0ZXJJZCA9IHJlc3VsdC5maWx0ZXI7XHJcbiAgICAgICAgICAgICAgcmVxdWVzdC5sb2NhdGlvbiA9IHRoaXMuZWlnZW5zY2hhcC5sb2NhdGlvbjtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmJjYkVpZ2Vuc2NoYXBJZCA9IHRoaXMuZWlnZW5zY2hhcC5pZDtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmJjYkltcG9ydFNldElkID0gdGhpcy5JbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZDtcclxuICAgICAgICAgICAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwuaWQ7XHJcbiAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuY29ubmVjdEJDQkVpZ2Vuc2NoYXBGaWx0ZXIocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICAgICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgSWdub3JlKGlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLlByb2R1Y3RzU2VydmljZS5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgQ29ubmVjdEVpZ2Vuc2NoYXBPcHRpZVJlcXVlc3QoKTtcclxuXHJcbiAgICAgIHJlcXVlc3QuYmNiRWlnZW5zY2hhcE9wdGllSWQgPSBpZDtcclxuICAgICAgcmVxdWVzdC5maWx0ZXJPcHRpb25JZCA9IC0xO1xyXG4gICAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkJDQlByb2R1Y3RWaWV3TW9kZWwuaWQ7XHJcbiAgICAgIHJlcXVlc3QubG9jYXRpb24gPSB0aGlzLmVpZ2Vuc2NoYXAubG9jYXRpb247XHJcblxyXG4gICAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50Lmlnbm9yZUJDQkVpZ2Vuc2NoYXBPcHRpZUZpbHRlck9wdGlvbihyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRQcm9kdWN0KHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBDb25uZWN0UmFuZ2UoKTogdm9pZCB7XHJcbiAgICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJQcm9kdWN0c0Nvbm5lY3RSYW5nZWlucHV0Q29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBiY2JlaWdlbnNjaGFwaWQ6IHRoaXMuZWlnZW5zY2hhcC5pZCxcclxuICAgICAgICBsb2NhdGlvbjogdGhpcy5laWdlbnNjaGFwLmxvY2F0aW9uXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENvbm5lY3RDYXRlZ29yeSgpOiB2b2lkIHtcclxuICAgIGlmIChjb25maXJtKFwiV2VldCBqZSBoZXQgemVrZXI/XCIpKSB7XHJcbiAgICAgIHRoaXMuUHJvZHVjdHNTZXJ2aWNlLkxvYWRpbmdQcm9kdWN0cyA9IHRydWU7XHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IENvbm5lY3RCQ0JFaWdlbnNjaGFwUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5iY2JFaWdlbnNjaGFwSWQgPSB0aGlzLmVpZ2Vuc2NoYXAuaWQ7XHJcbiAgICAgIHJlcXVlc3QuYmNiSW1wb3J0U2V0SWQgPSB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkO1xyXG5cclxuICAgICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5jb25uZWN0QkNCRWlnZW5zY2hhcENhdGVnb3J5KHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5Qcm9kdWN0c1NlcnZpY2UuTG9hZFByb2R1Y3QodGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3coKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5laWdlbnNjaGFwPy5vcHRpZXM/Lmxlbmd0aCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuZWlnZW5zY2hhcC5vcHRpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5laWdlbnNjaGFwPy5iZXJlaWtlbj8ubGVuZ3RoICE9IG51bGwgJiZcclxuICAgICAgdGhpcy5laWdlbnNjaGFwLmJlcmVpa2VuLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZWlnZW5zY2hhcD8udG9lYmVob3Jlbj8ubGVuZ3RoICE9IG51bGwgJiZcclxuICAgICAgdGhpcy5laWdlbnNjaGFwLnRvZWJlaG9yZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBbbmdDbGFzc109XCJ7J3dhcm5pbmcnOiAhZWlnZW5zY2hhcC5jb25uZWN0ZWQsICdub3JtYWwnOiBlaWdlbnNjaGFwLmNvbm5lY3RlZH1cIj5cclxuICA8ZGl2IGNsYXNzPVwicm93XCIgKGNsaWNrKT1cIlRvZ2dsZSgpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi10ZFwiPlxyXG4gICAgICA8bWF0LWljb24gKm5nSWY9XCIhZWlnZW5zY2hhcC5vcGVuICYmIFNob3coKVwiPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cclxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwiZWlnZW5zY2hhcC5vcGVuICYmIFNob3coKVwiPmV4cGFuZF9sZXNzPC9tYXQtaWNvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImVpZ2Vuc2NoYXBjZWxcIiBjb2xzcGFuPVwiMlwiPlxyXG4gICAgICB7e2VpZ2Vuc2NoYXA/Lm5hbWV9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cImVpZ2Vuc2NoYXAub3BlblwiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgYmVyZWlrIG9mIGVpZ2Vuc2NoYXAuYmVyZWlrZW5cIiBjbGFzcz1cImJlcmVpa1wiPlxyXG4gICAgICA8YXBwLWJlaGVlci1wcm9kdWN0cy1laWdlbnNjaGFwLWJlcmVpayBbYmVyZWlrXT1cImJlcmVpa1wiPjwvYXBwLWJlaGVlci1wcm9kdWN0cy1laWdlbnNjaGFwLWJlcmVpaz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgdG9lYmVob3JlbiBvZiBlaWdlbnNjaGFwLnRvZWJlaG9yZW5cIj5cclxuICAgICAge3sgdG9lYmVob3Jlbi5uYW1lIH19XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJlaWdlbnNjaGFwLmJlcmVpa2VuLmxlbmd0aCA+IDAgJiYgZWlnZW5zY2hhcC5yYW5nZUlucHV0cyAhPSBudWxsXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJlaWdlbnNjaGFwLnJhbmdlSW5wdXRzLmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ29ubmVjdFJhbmdlKClcIj5cclxuICAgICAgICAgIFJhbmdlXHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByYW5nZSBvZiBlaWdlbnNjaGFwLnJhbmdlSW5wdXRzXCI+XHJcbiAgICAgICAge3sgcmFuZ2UucmFuZ2VJbnB1dE1vZGVsLm5hbWUgfX1cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbj5cclxuICAgICAgICAgIFJlbW92ZVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aWUgb2YgZWlnZW5zY2hhcC5vcHRpZXNcIiBbbmdDbGFzc109XCJ7J3dhcm5pbmcnOiAhb3B0aWUuY29ubmVjdGVkfVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheWZsZXhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aWUuY29sb3VyICE9IG51bGwgJiYgb3B0aWUuY29sb3VyICE9ICcnXCI+XHJcbiAgICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBvcHRpZS5jb2xvdXJ9XCIgY2xhc3M9XCJjb2xvdXItcHJldmlld1wiPlxyXG4gICAgICAgICAgICAmbmJzcDtcclxuICAgICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGl2IGxpbmUtaGVpZ2h0XCI+e3sgb3B0aWUubmFtZSB9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIW9wdGllLmNvbm5lY3RlZFwiIGNsYXNzPVwiYnV0dG9uLXJvd1wiPlxyXG4gICAgICAgICAgPCEtLTxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIkNvbm5lY3Qob3B0aWUuaWQsIGVpZ2Vuc2NoYXAubmFtZSwgb3B0aWUubmFtZSlcIj5cclxuICAgICAgICBGaWx0ZXJPcHRpb25cclxuICAgICAgPC9idXR0b24+LS0+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJDb25uZWN0TWFueShvcHRpZS5pZClcIj5cclxuICAgICAgICAgICAgRmlsdGVyT3B0aW9uTWFueVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8IS0tPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ29ubmVjdENhdGVnb3J5KClcIj5cclxuICAgICAgICBDYXRlZ29yeVxyXG4gICAgICA8L2J1dHRvbj4tLT5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIklnbm9yZShvcHRpZS5pZClcIj5cclxuICAgICAgICAgICAgSWdub3JlXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjb25uZWN0IG9mIG9wdGllLmJjYkVpZ2Vuc2NoYXBPcHRpZUZpbHRlck9wdGlvblZpZXdNb2RlbHNcIj5cclxuICAgICAgICAgIDxiPnt7IGNvbm5lY3QuZmlsdGVyT3B0aW9uVmlld01vZGVsLmZpbHRlck5hbWUgfX06IHt7IGNvbm5lY3QuZmlsdGVyT3B0aW9uVmlld01vZGVsLm5hbWUgfX08L2I+Jm5ic3A7XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uPlxyXG4gICAgICAgICAgICBSZW1vdmVcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNvbm5lY3Qgb2Ygb3B0aWUuYmNiRWlnZW5zY2hhcE9wdGllQ2F0ZWdvcnlWaWV3TW9kZWxzXCI+XHJcbiAgICAgICAgICA8Yj57eyBjb25uZWN0LmNhdGVnb3J5Vmlld01vZGVsLm5hbWUgfX08L2I+Jm5ic3A7XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uPlxyXG4gICAgICAgICAgICBSZW1vdmVcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcHRpZS5pZ25vcmVcIj5cclxuICAgICAgICAgIDxiPklnbm9yZTwvYj4mbmJzcDtcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -40,11 +40,11 @@ export class FabFilterColourComponent {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
FabFilterColourComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabFilterColourComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
FabFilterColourComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabFilterColourComponent, selector: "app-fab-filter-colour", inputs: { filter: "filter" }, ngImport: i0, template: "<button class=\"select-button\" mat-stroked-button (click)=\"OpenDialog()\">\r\n
|
|
43
|
+
FabFilterColourComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabFilterColourComponent, selector: "app-fab-filter-colour", inputs: { filter: "filter" }, ngImport: i0, template: "<button class=\"select-button\" mat-stroked-button (click)=\"OpenDialog()\">\r\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\r\n <span *ngIf=\"filter.selectedColour != null\">\r\n ({{ filter.selectedColour }})\r\n </span>\r\n</button>\r\n", styles: [".select-button{width:100%;margin-bottom:20px}\n"], dependencies: [{ 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"] }] });
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabFilterColourComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
46
|
-
args: [{ selector: 'app-fab-filter-colour', template: "<button class=\"select-button\" mat-stroked-button (click)=\"OpenDialog()\">\r\n
|
|
46
|
+
args: [{ selector: 'app-fab-filter-colour', template: "<button class=\"select-button\" mat-stroked-button (click)=\"OpenDialog()\">\r\n {{ TranslateService.GetActiveValueFilter(filter.id) }}\r\n <span *ngIf=\"filter.selectedColour != null\">\r\n ({{ filter.selectedColour }})\r\n </span>\r\n</button>\r\n", styles: [".select-button{width:100%;margin-bottom:20px}\n"] }]
|
|
47
47
|
}], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i3.MatDialog }]; }, propDecorators: { filter: [{
|
|
48
48
|
type: Input
|
|
49
49
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWZpbHRlci1jb2xvdXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1maWx0ZXItY29sb3VyL2ZhYi1maWx0ZXItY29sb3VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItZmlsdGVyLWNvbG91ci9mYWItZmlsdGVyLWNvbG91ci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLcEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sK0RBQStELENBQUM7Ozs7Ozs7QUFPL0csTUFBTSxPQUFPLHdCQUF3QjtJQXNCbkMsWUFDVSxrQkFBc0MsRUFDdkMsZ0JBQWtDLEVBQ2pDLGlCQUFvQyxFQUNyQyxNQUFpQjtRQUhoQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3ZDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNyQyxXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQUksQ0FBQztJQXJCL0IsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxLQUFpQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBRTFCLG1DQUFtQztRQUNuQyx1Q0FBdUM7UUFDdkMsaURBQWlEO1FBQ2pELDRDQUE0QztRQUM1QyxLQUFLO1FBQ0wsR0FBRztJQUNMLENBQUM7SUFRTSxVQUFVO1FBRWYsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN4RixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUU7WUFDL0QsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3hCLGdCQUFnQixFQUFFLGdCQUFnQjthQUNuQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O3FIQTFDVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwyRkNackMsaVFBTUE7MkZETWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QjtnTUFhcEIsTUFBTTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWwgfSBmcm9tICcuLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBGYWJGaWx0ZXJDb2xvdXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2ZhYi1maWx0ZXItY29sb3VyLWRpYWxvZy9mYWItZmlsdGVyLWNvbG91ci1kaWFsb2cuY29tcG9uZW50JztcclxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLWZpbHRlci1jb2xvdXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLWZpbHRlci1jb2xvdXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mYWItZmlsdGVyLWNvbG91ci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZhYkZpbHRlckNvbG91ckNvbXBvbmVudCB7XG5cbiAgcHVibGljIFNlbGVjdGVkT3B0aW9uSWQ6IG51bWJlcjtcblxuICBfZmlsdGVyOiBGYWJyaWthbnRlbkZpbHRlclZpZXdNb2RlbDtcbiAgZ2V0IGZpbHRlcigpOiBGYWJyaWthbnRlbkZpbHRlclZpZXdNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcjtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBmaWx0ZXIodmFsdWU6IEZhYnJpa2FudGVuRmlsdGVyVmlld01vZGVsKSB7XG4gICAgdGhpcy5fZmlsdGVyID0gdmFsdWU7XG5cbiAgICB0aGlzLlNlbGVjdGVkT3B0aW9uSWQgPSAxO1xyXG5cclxuICAgIC8vaWYgKHRoaXMuU2VsZWN0ZWRPcHRpb25JZCA9PSAwKSB7XHJcbiAgICAvLyAgdmFyIG9wdGlvbnMgPSB0aGlzLl9maWx0ZXIub3B0aW9ucztcclxuICAgIC8vICBpZiAob3B0aW9ucyAhPSBudWxsICYmIG9wdGlvbnMubGVuZ3RoID09IDEpIHtcclxuICAgIC8vICAgIHRoaXMuU2VsZWN0ZWRPcHRpb25JZCA9IG9wdGlvbnNbMF0uaWQ7XHJcbiAgICAvLyAgfVxyXG4gICAgLy99XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykgeyB9XG5cbiAgcHVibGljIE9wZW5EaWFsb2coKTogdm9pZCB7XG5cbiAgICB2YXIgZmlsdGVyb3B0aW9ubmFtZSA9IFwiXCI7XG5cbiAgICBpZiAodGhpcy5maWx0ZXIgIT0gbnVsbCAmJiB0aGlzLmZpbHRlci5vcHRpb25zICE9IG51bGwgJiYgdGhpcy5maWx0ZXIub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmaWx0ZXJvcHRpb25uYW1lID0gdGhpcy5maWx0ZXIub3B0aW9uc1swXS5uYW1lICsgXCJcIjtcclxuICAgIH1cblxuICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEZhYkZpbHRlckNvbG91ckRpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgZmlsdGVyaWQ6IHRoaXMuZmlsdGVyLmlkLFxyXG4gICAgICAgIGZpbHRlcm9wdGlvbm5hbWU6IGZpbHRlcm9wdGlvbm5hbWVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxufVxuIiwiPGJ1dHRvbiBjbGFzcz1cInNlbGVjdC1idXR0b25cIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIk9wZW5EaWFsb2coKVwiPlxyXG4gIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWVGaWx0ZXIoZmlsdGVyLmlkKSB9fVxyXG4gIDxzcGFuICpuZ0lmPVwiZmlsdGVyLnNlbGVjdGVkQ29sb3VyICE9IG51bGxcIj5cclxuICAgICh7eyBmaWx0ZXIuc2VsZWN0ZWRDb2xvdXIgfX0pXHJcbiAgPC9zcGFuPlxyXG48L2J1dHRvbj5cclxuIl19
|
package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs
CHANGED
|
@@ -98,12 +98,12 @@ export class FabProductComponent {
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
FabProductComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabProductComponent, deps: [{ token: i1.MobileService }, { token: i2.FabrikantenService }, { token: i3.BestekService }, { token: i4.TranslateService }, { token: i5.WebGLService }, { token: i6.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
101
|
-
FabProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabProductComponent, selector: "app-fab-product", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header *ngIf=\"ShowBreadcrumb()\">\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\" *ngIf=\"ShowInformation()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Information\") }}</span>\r\n </ng-template>\r\n <app-fab-product-info></app-fab-product-info>\r\n </mat-tab>\r\n <mat-tab label=\"3D\" *ngIf=\"Show3D()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"3D\") }}</span>\r\n </ng-template>\r\n <app-fab-webgl-viewer></app-fab-webgl-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"2D\" *ngIf=\"Show2D()\" style=\"height: 100%;\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"2D\") }}</span>\r\n </ng-template>\r\n <app-fab-svg-viewer></app-fab-svg-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"Bestek\" *ngIf=\"TranslateService.ShowSpecification()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Specification\") }}</span>\r\n </ng-template>\r\n <app-fab-product-bestek></app-fab-product-bestek>\r\n </mat-tab>\r\n <mat-tab label=\"Texture\" *ngIf=\"FabrikantenService.ShowTexture()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Texture\") }}</span>\r\n </ng-template>\r\n <app-fab-texture></app-fab-texture>\r\n </mat-tab>\r\n <mat-tab label=\"Toebehoren\" *ngIf=\"FabrikantenService.
|
|
101
|
+
FabProductComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: FabProductComponent, selector: "app-fab-product", viewQueries: [{ propertyName: "header", first: true, predicate: ["header"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header *ngIf=\"ShowBreadcrumb()\">\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\" *ngIf=\"ShowInformation()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Information\") }}</span>\r\n </ng-template>\r\n <app-fab-product-info></app-fab-product-info>\r\n </mat-tab>\r\n <mat-tab label=\"3D\" *ngIf=\"Show3D()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"3D\") }}</span>\r\n </ng-template>\r\n <app-fab-webgl-viewer></app-fab-webgl-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"2D\" *ngIf=\"Show2D()\" style=\"height: 100%;\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"2D\") }}</span>\r\n </ng-template>\r\n <app-fab-svg-viewer></app-fab-svg-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"Bestek\" *ngIf=\"TranslateService.ShowSpecification()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Specification\") }}</span>\r\n </ng-template>\r\n <app-fab-product-bestek></app-fab-product-bestek>\r\n </mat-tab>\r\n <mat-tab label=\"Texture\" *ngIf=\"FabrikantenService.ShowTexture()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Texture\") }}</span>\r\n </ng-template>\r\n <app-fab-texture></app-fab-texture>\r\n </mat-tab>\r\n <mat-tab label=\"Toebehoren\" *ngIf=\"FabrikantenService.ShowToebehoren()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Toebehoren\") }}</span>\r\n </ng-template>\r\n <app-fab-toebehoren></app-fab-toebehoren>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product .tabs{height:100%}app-fab-product .row{display:flex}app-fab-product .loader-card{margin:auto;width:300px}app-fab-product .loader-subtitle{text-align:center}app-fab-product .loader-spinner{margin:auto}app-fab-product .view-container{height:100%}app-fab-product .view-content{background-color:#fff}app-fab-product .loader{position:absolute;display:flex;width:100%;height:100%;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product .filter-view{height:100%;width:300px;min-width:300px;background-color:#fafafa}app-fab-product .product-view{flex:auto}.mat-tab-body-wrapper{height:100%}\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i8.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "component", type: i9.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i9.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i9.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i10.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i10.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i10.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i11.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i12.FabProductInfoComponent, selector: "app-fab-product-info" }, { kind: "component", type: i13.FabProductBestekComponent, selector: "app-fab-product-bestek" }, { kind: "component", type: i14.FabFiltersInputComponent, selector: "fab-filters-input" }, { kind: "component", type: i15.FabHeaderComponent, selector: "app-fab-header", inputs: ["showfiltermenubutton"] }, { kind: "component", type: i16.FabWebglViewerComponent, selector: "app-fab-webgl-viewer" }, { kind: "component", type: i17.FabSvgViewerComponent, selector: "app-fab-svg-viewer" }, { kind: "component", type: i18.FabTextureComponent, selector: "app-fab-texture" }, { kind: "component", type: i19.FabToebehorenComponent, selector: "app-fab-toebehoren" }], encapsulation: i0.ViewEncapsulation.None });
|
|
102
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: FabProductComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
|
-
args: [{ selector: 'app-fab-product', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header *ngIf=\"ShowBreadcrumb()\">\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\" *ngIf=\"ShowInformation()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Information\") }}</span>\r\n </ng-template>\r\n <app-fab-product-info></app-fab-product-info>\r\n </mat-tab>\r\n <mat-tab label=\"3D\" *ngIf=\"Show3D()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"3D\") }}</span>\r\n </ng-template>\r\n <app-fab-webgl-viewer></app-fab-webgl-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"2D\" *ngIf=\"Show2D()\" style=\"height: 100%;\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"2D\") }}</span>\r\n </ng-template>\r\n <app-fab-svg-viewer></app-fab-svg-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"Bestek\" *ngIf=\"TranslateService.ShowSpecification()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Specification\") }}</span>\r\n </ng-template>\r\n <app-fab-product-bestek></app-fab-product-bestek>\r\n </mat-tab>\r\n <mat-tab label=\"Texture\" *ngIf=\"FabrikantenService.ShowTexture()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Texture\") }}</span>\r\n </ng-template>\r\n <app-fab-texture></app-fab-texture>\r\n </mat-tab>\r\n <mat-tab label=\"Toebehoren\" *ngIf=\"FabrikantenService.
|
|
104
|
+
args: [{ selector: 'app-fab-product', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"FabrikantenService.Loading\" class=\"loader\">\r\n <mat-card class=\"loader-card\">\r\n <mat-card-content>\r\n <mat-spinner class=\"loader-spinner\" [diameter]=\"80\"></mat-spinner>\r\n </mat-card-content>\r\n <mat-card-subtitle class=\"loader-subtitle\">\r\n {{ TranslateService.GetActiveValue(\"Common\", \"Products loading\") }}\r\n </mat-card-subtitle>\r\n </mat-card>\r\n</div>\r\n\r\n<mat-drawer-container class=\"view-container\">\r\n <mat-drawer #drawer [mode]=\"MobileService.NavMode\" [(opened)]=\"MobileService.NavOpened\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <div class=\"filter-view\">\r\n <fab-filters-input></fab-filters-input>\r\n </div>\r\n </mat-drawer>\r\n <mat-drawer-content class=\"view-content\">\r\n <div #header *ngIf=\"ShowBreadcrumb()\">\r\n <app-fab-header [showfiltermenubutton]=\"true\"></app-fab-header>\r\n </div>\r\n\r\n <div [style.height]=\"Height\" *ngIf=\"FabrikantenService.FabrikantenViewModel != null\">\r\n <mat-tab-group class=\"view-container\" (selectedTabChange)=\"SelectedTabChange($event)\">\r\n <mat-tab label=\"Informatie\" *ngIf=\"ShowInformation()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Information\") }}</span>\r\n </ng-template>\r\n <app-fab-product-info></app-fab-product-info>\r\n </mat-tab>\r\n <mat-tab label=\"3D\" *ngIf=\"Show3D()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"3D\") }}</span>\r\n </ng-template>\r\n <app-fab-webgl-viewer></app-fab-webgl-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"2D\" *ngIf=\"Show2D()\" style=\"height: 100%;\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"2D\") }}</span>\r\n </ng-template>\r\n <app-fab-svg-viewer></app-fab-svg-viewer>\r\n </mat-tab>\r\n <mat-tab label=\"Bestek\" *ngIf=\"TranslateService.ShowSpecification()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Specification\") }}</span>\r\n </ng-template>\r\n <app-fab-product-bestek></app-fab-product-bestek>\r\n </mat-tab>\r\n <mat-tab label=\"Texture\" *ngIf=\"FabrikantenService.ShowTexture()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Texture\") }}</span>\r\n </ng-template>\r\n <app-fab-texture></app-fab-texture>\r\n </mat-tab>\r\n <mat-tab label=\"Toebehoren\" *ngIf=\"FabrikantenService.ShowToebehoren()\">\r\n <ng-template mat-tab-label>\r\n <span>{{ TranslateService.GetActiveValue(\"Common\", \"Toebehoren\") }}</span>\r\n </ng-template>\r\n <app-fab-toebehoren></app-fab-toebehoren>\r\n </mat-tab>\r\n </mat-tab-group>\r\n </div>\r\n </mat-drawer-content>\r\n</mat-drawer-container>\r\n\r\n\r\n", styles: ["app-fab-product .tabs{height:100%}app-fab-product .row{display:flex}app-fab-product .loader-card{margin:auto;width:300px}app-fab-product .loader-subtitle{text-align:center}app-fab-product .loader-spinner{margin:auto}app-fab-product .view-container{height:100%}app-fab-product .view-content{background-color:#fff}app-fab-product .loader{position:absolute;display:flex;width:100%;height:100%;align-items:center;z-index:20;background-color:#ffffffb3;top:0;left:0}app-fab-product .filter-view{height:100%;width:300px;min-width:300px;background-color:#fafafa}app-fab-product .product-view{flex:auto}.mat-tab-body-wrapper{height:100%}\n"] }]
|
|
105
105
|
}], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.BestekService }, { type: i4.TranslateService }, { type: i5.WebGLService }, { type: i6.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { header: [{
|
|
106
106
|
type: ViewChild,
|
|
107
107
|
args: ['header']
|
|
108
108
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBMEMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQmxKLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsWUFDUyxhQUE0QixFQUM1QixrQkFBc0MsRUFDdEMsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQ3pCLGNBQThCLEVBQzlCLGlCQUFvQztRQU5yQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFYdkMsV0FBTSxHQUFXLE1BQU0sQ0FBQztRQWE3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMs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QU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7U0FDbEQ7UUFFRCxPQUFPLGNBQWMsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3pDLENBQUM7O2dIQWxHVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix5SkNoQmhDLHlqR0FrRUE7MkZEbERhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSTt3UkFNaEIsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRG9DaGVjaywgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VGFiQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZXN0ZWtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmVzdGVrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU1ZHU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N2Zy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ViR0xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mYWItcHJvZHVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1wcm9kdWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mYWItcHJvZHVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhYlByb2R1Y3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xyXG5cclxuICBwdWJsaWMgSGVpZ2h0OiBzdHJpbmcgPSBcIjEwMCVcIjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaGVhZGVyJykgaGVhZGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBNb2JpbGVTZXJ2aWNlOiBNb2JpbGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIEZhYnJpa2FudGVuU2VydmljZTogRmFicmlrYW50ZW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIEJlc3Rla1NlcnZpY2U6IEJlc3Rla1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHB1YmxpYyBXZWJHTFNlcnZpY2U6IFdlYkdMU2VydmljZSxcclxuICAgIHByaXZhdGUgQWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuVHJhbnNsYXRlU2VydmljZS5Qcm9jZXNzUGFyYW1ldGVycyh0aGlzLkFjdGl2YXRlZFJvdXRlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYsIHRoaXMuQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxvYWRUcmFuc2xhdGlvbnModGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlVwZGF0ZUhlaWdodCgpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVIZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBCYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBVcGRhdGVIZWlnaHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkhlaWdodCA9IHRoaXMuR2V0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RlZFRhYkNoYW5nZShldmVudDogTWF0VGFiQ2hhbmdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlRhYlNlbGVjdGlvbkNoYW5nZWQoZXZlbnQudGFiLnRleHRMYWJlbCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzNEKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzW2ldLmhhczNEKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzJEKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzW2ldLnNuZWRlcyAhPSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCcmVhZGNydW1iKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmhpZGVCcmVhZGNydW1iSW5JZnJhbWUpIHtcclxuICAgICAgICBpZiAod2luZG93LnNlbGYgIT09IHdpbmRvdy50b3ApIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93SW5mb3JtYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuaGlkZUluZm9ybWF0aW9uVGFiKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIEdldEhlaWdodCgpOiBzdHJpbmcge1xyXG4gICAgdmFyIGhlaWdodCA9IDA7XHJcblxyXG4gICAgaWYgKHRoaXMuaGVhZGVyICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBoZWlnaHQgKz0gdGhpcy5oZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiY2FsYygxMDAlIC0gXCIgKyBoZWlnaHQgKyBcInB4KVwiO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRpbmdcIiBjbGFzcz1cImxvYWRlclwiPlxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cImxvYWRlci1jYXJkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPVwibG9hZGVyLXNwaW5uZXJcIiBbZGlhbWV0ZXJdPVwiODBcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLXN1YnRpdGxlIGNsYXNzPVwibG9hZGVyLXN1YnRpdGxlXCI+XHJcbiAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJQcm9kdWN0cyBsb2FkaW5nXCIpIH19XHJcbiAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gIDwvbWF0LWNhcmQ+XHJcbjwvZGl2PlxyXG5cclxuPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwidmlldy1jb250YWluZXJcIj5cclxuICA8bWF0LWRyYXdlciAjZHJhd2VyIFttb2RlXT1cIk1vYmlsZVNlcnZpY2UuTmF2TW9kZVwiIFsob3BlbmVkKV09XCJNb2JpbGVTZXJ2aWNlLk5hdk9wZW5lZFwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdmlld1wiPlxyXG4gICAgICA8ZmFiLWZpbHRlcnMtaW5wdXQ+PC9mYWItZmlsdGVycy1pbnB1dD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRyYXdlcj5cclxuICA8bWF0LWRyYXdlci1jb250ZW50IGNsYXNzPVwidmlldy1jb250ZW50XCI+XHJcbiAgICA8ZGl2ICNoZWFkZXIgKm5nSWY9XCJTaG93QnJlYWRjcnVtYigpXCI+XHJcbiAgICAgIDxhcHAtZmFiLWhlYWRlciBbc2hvd2ZpbHRlcm1lbnVidXR0b25dPVwidHJ1ZVwiPjwvYXBwLWZhYi1oZWFkZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtzdHlsZS5oZWlnaHRdPVwiSGVpZ2h0XCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbFwiPlxyXG4gICAgICA8bWF0LXRhYi1ncm91cCBjbGFzcz1cInZpZXctY29udGFpbmVyXCIgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIlNlbGVjdGVkVGFiQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkluZm9ybWF0aWVcIiAqbmdJZj1cIlNob3dJbmZvcm1hdGlvbigpXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cclxuICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIkluZm9ybWF0aW9uXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtaW5mbz48L2FwcC1mYWItcHJvZHVjdC1pbmZvPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIjNEXCIgKm5nSWY9XCJTaG93M0QoKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCIzRFwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8YXBwLWZhYi13ZWJnbC12aWV3ZXI+PC9hcHAtZmFiLXdlYmdsLXZpZXdlcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCIyRFwiICpuZ0lmPVwiU2hvdzJEKClcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiMkRcIikgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPGFwcC1mYWItc3ZnLXZpZXdlcj48L2FwcC1mYWItc3ZnLXZpZXdlcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJCZXN0ZWtcIiAqbmdJZj1cIlRyYW5zbGF0ZVNlcnZpY2UuU2hvd1NwZWNpZmljYXRpb24oKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJTcGVjaWZpY2F0aW9uXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtYmVzdGVrPjwvYXBwLWZhYi1wcm9kdWN0LWJlc3Rlaz5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJUZXh0dXJlXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1RleHR1cmUoKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJUZXh0dXJlXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXRleHR1cmU+PC9hcHAtZmFiLXRleHR1cmU+XHJcbiAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVG9lYmVob3JlblwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dUZXh0dXJlKClcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiVG9lYmVob3JlblwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8YXBwLWZhYi10b2ViZWhvcmVuPjwvYXBwLWZhYi10b2ViZWhvcmVuPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XHJcbjwvbWF0LWRyYXdlci1jb250YWluZXI+XHJcblxyXG5cclxuIl19
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXByb2R1Y3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1wcm9kdWN0L2ZhYi1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcHJvZHVjdC9mYWItcHJvZHVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBMEMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQmxKLE1BQU0sT0FBTyxtQkFBbUI7SUFNOUIsWUFDUyxhQUE0QixFQUM1QixrQkFBc0MsRUFDdEMsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQ3pCLGNBQThCLEVBQzlCLGlCQUFvQztRQU5yQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFYdkMsV0FBTSxHQUFXLE1BQU0sQ0FBQztRQWE3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMs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QU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7U0FDbEQ7UUFFRCxPQUFPLGNBQWMsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3pDLENBQUM7O2dIQWxHVSxtQkFBbUI7b0dBQW5CLG1CQUFtQix5SkNoQmhDLDRqR0FrRUE7MkZEbERhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSTt3UkFNaEIsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRG9DaGVjaywgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VGFiQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCZXN0ZWtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmVzdGVrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9iaWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21vYmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU1ZHU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N2Zy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ViR0xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mYWItcHJvZHVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1wcm9kdWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mYWItcHJvZHVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhYlByb2R1Y3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xyXG5cclxuICBwdWJsaWMgSGVpZ2h0OiBzdHJpbmcgPSBcIjEwMCVcIjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaGVhZGVyJykgaGVhZGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBNb2JpbGVTZXJ2aWNlOiBNb2JpbGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIEZhYnJpa2FudGVuU2VydmljZTogRmFicmlrYW50ZW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIEJlc3Rla1NlcnZpY2U6IEJlc3Rla1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHB1YmxpYyBXZWJHTFNlcnZpY2U6IFdlYkdMU2VydmljZSxcclxuICAgIHByaXZhdGUgQWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHRoaXMuVHJhbnNsYXRlU2VydmljZS5Qcm9jZXNzUGFyYW1ldGVycyh0aGlzLkFjdGl2YXRlZFJvdXRlKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYsIHRoaXMuQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkxvYWRUcmFuc2xhdGlvbnModGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLlVwZGF0ZUhlaWdodCgpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5VcGRhdGVIZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBCYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBVcGRhdGVIZWlnaHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLkhlaWdodCA9IHRoaXMuR2V0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLkNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RlZFRhYkNoYW5nZShldmVudDogTWF0VGFiQ2hhbmdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlRhYlNlbGVjdGlvbkNoYW5nZWQoZXZlbnQudGFiLnRleHRMYWJlbCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzNEKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzW2ldLmhhczNEKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzJEKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzW2ldLnNuZWRlcyAhPSAnJykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCcmVhZGNydW1iKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmhpZGVCcmVhZGNydW1iSW5JZnJhbWUpIHtcclxuICAgICAgICBpZiAod2luZG93LnNlbGYgIT09IHdpbmRvdy50b3ApIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93SW5mb3JtYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuaGlkZUluZm9ybWF0aW9uVGFiKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIEdldEhlaWdodCgpOiBzdHJpbmcge1xyXG4gICAgdmFyIGhlaWdodCA9IDA7XHJcblxyXG4gICAgaWYgKHRoaXMuaGVhZGVyICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBoZWlnaHQgKz0gdGhpcy5oZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiY2FsYygxMDAlIC0gXCIgKyBoZWlnaHQgKyBcInB4KVwiO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkxvYWRpbmdcIiBjbGFzcz1cImxvYWRlclwiPlxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cImxvYWRlci1jYXJkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPVwibG9hZGVyLXNwaW5uZXJcIiBbZGlhbWV0ZXJdPVwiODBcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLXN1YnRpdGxlIGNsYXNzPVwibG9hZGVyLXN1YnRpdGxlXCI+XHJcbiAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJQcm9kdWN0cyBsb2FkaW5nXCIpIH19XHJcbiAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gIDwvbWF0LWNhcmQ+XHJcbjwvZGl2PlxyXG5cclxuPG1hdC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwidmlldy1jb250YWluZXJcIj5cclxuICA8bWF0LWRyYXdlciAjZHJhd2VyIFttb2RlXT1cIk1vYmlsZVNlcnZpY2UuTmF2TW9kZVwiIFsob3BlbmVkKV09XCJNb2JpbGVTZXJ2aWNlLk5hdk9wZW5lZFwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdmlld1wiPlxyXG4gICAgICA8ZmFiLWZpbHRlcnMtaW5wdXQ+PC9mYWItZmlsdGVycy1pbnB1dD5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWRyYXdlcj5cclxuICA8bWF0LWRyYXdlci1jb250ZW50IGNsYXNzPVwidmlldy1jb250ZW50XCI+XHJcbiAgICA8ZGl2ICNoZWFkZXIgKm5nSWY9XCJTaG93QnJlYWRjcnVtYigpXCI+XHJcbiAgICAgIDxhcHAtZmFiLWhlYWRlciBbc2hvd2ZpbHRlcm1lbnVidXR0b25dPVwidHJ1ZVwiPjwvYXBwLWZhYi1oZWFkZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtzdHlsZS5oZWlnaHRdPVwiSGVpZ2h0XCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbFwiPlxyXG4gICAgICA8bWF0LXRhYi1ncm91cCBjbGFzcz1cInZpZXctY29udGFpbmVyXCIgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cIlNlbGVjdGVkVGFiQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkluZm9ybWF0aWVcIiAqbmdJZj1cIlNob3dJbmZvcm1hdGlvbigpXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cclxuICAgICAgICAgICAgPHNwYW4+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShcIkNvbW1vblwiLCBcIkluZm9ybWF0aW9uXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtaW5mbz48L2FwcC1mYWItcHJvZHVjdC1pbmZvPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIjNEXCIgKm5nSWY9XCJTaG93M0QoKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCIzRFwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8YXBwLWZhYi13ZWJnbC12aWV3ZXI+PC9hcHAtZmFiLXdlYmdsLXZpZXdlcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCIyRFwiICpuZ0lmPVwiU2hvdzJEKClcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiMkRcIikgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPGFwcC1mYWItc3ZnLXZpZXdlcj48L2FwcC1mYWItc3ZnLXZpZXdlcj5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJCZXN0ZWtcIiAqbmdJZj1cIlRyYW5zbGF0ZVNlcnZpY2UuU2hvd1NwZWNpZmljYXRpb24oKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJTcGVjaWZpY2F0aW9uXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXByb2R1Y3QtYmVzdGVrPjwvYXBwLWZhYi1wcm9kdWN0LWJlc3Rlaz5cclxuICAgICAgICA8L21hdC10YWI+XHJcbiAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJUZXh0dXJlXCIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuU2hvd1RleHR1cmUoKVwiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoXCJDb21tb25cIiwgXCJUZXh0dXJlXCIpIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDxhcHAtZmFiLXRleHR1cmU+PC9hcHAtZmFiLXRleHR1cmU+XHJcbiAgICAgICAgPC9tYXQtdGFiPlxyXG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiVG9lYmVob3JlblwiICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLlNob3dUb2ViZWhvcmVuKClcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFwiQ29tbW9uXCIsIFwiVG9lYmVob3JlblwiKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8YXBwLWZhYi10b2ViZWhvcmVuPjwvYXBwLWZhYi10b2ViZWhvcmVuPlxyXG4gICAgICAgIDwvbWF0LXRhYj5cclxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XHJcbjwvbWF0LWRyYXdlci1jb250YWluZXI+XHJcblxyXG5cclxuIl19
|