@acorex/components 3.0.33 → 3.0.37
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/acorex-components.metadata.json +1 -1
- package/bundles/acorex-components.umd.js +46 -18
- package/bundles/acorex-components.umd.js.map +1 -1
- package/bundles/acorex-components.umd.min.js +1 -1
- package/bundles/acorex-components.umd.min.js.map +1 -1
- package/esm2015/lib/checkbox/checkbox.component.js +2 -2
- package/esm2015/lib/tab-page/tab-page.module.js +2 -3
- package/esm2015/lib/tree-view/tree-view.component.js +45 -17
- package/esm5/lib/checkbox/checkbox.component.js +2 -2
- package/esm5/lib/tab-page/tab-page.module.js +2 -3
- package/esm5/lib/tree-view/tree-view.component.js +45 -17
- package/fesm2015/acorex-components.js +46 -18
- package/fesm2015/acorex-components.js.map +1 -1
- package/fesm5/acorex-components.js +46 -18
- package/fesm5/acorex-components.js.map +1 -1
- package/lib/tree-view/tree-view.component.d.ts +4 -1
- package/package.json +1 -1
|
@@ -117,11 +117,11 @@ __decorate([
|
|
|
117
117
|
AXCheckBoxComponent = __decorate([
|
|
118
118
|
Component({
|
|
119
119
|
selector: 'ax-check-box',
|
|
120
|
-
template: "<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\r\n (click)=\"handleClick($event)\">\r\n {{ label }}\r\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\r\n [disabled]=\"disabled || readonly\" />\r\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\r\n\r\n</label> -->\r\n\r\n<label for=\"{{uid}}\" class=\"ax-checkbox-container\" (click)=\"handleClick($event)\">\r\n <input #input type=\"checkbox\" class=\"ax-checkbox\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"\r\n id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\" [(ngModel)]=\"value\" [disabled]=\"disabled || readonly\" />\r\n <span>{{ label ? label : ' ' }}</span>\r\n</label>",
|
|
120
|
+
template: "<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\r\n (click)=\"handleClick($event)\">\r\n {{ label }}\r\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\r\n [disabled]=\"disabled || readonly\" />\r\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\r\n\r\n</label> -->\r\n\r\n<label for=\"{{uid}}\" class=\"ax-checkbox-container\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\r\n (click)=\"handleClick($event)\">\r\n <input #input type=\"checkbox\" class=\"ax-checkbox\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"\r\n id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\" [(ngModel)]=\"value\" [disabled]=\"disabled || readonly\" />\r\n <span>{{ label ? label : ' ' }}</span>\r\n</label>",
|
|
121
121
|
encapsulation: ViewEncapsulation.None,
|
|
122
122
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
123
123
|
}),
|
|
124
124
|
__metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
|
|
125
125
|
], AXCheckBoxComponent);
|
|
126
126
|
export { AXCheckBoxComponent };
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQStELE1BQU0sdUJBQXVCLENBQUM7QUFDckgsT0FBTyxFQUFnQixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBdUI7Q0FFL0Q7QUFRRCxJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFvQixTQUFRLGVBQWU7SUFzQnRELFlBQXNCLEdBQXNCLEVBQVUsR0FBZTtRQUNuRSxLQUFLLEVBQUUsQ0FBQztRQURZLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQWxCckUsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBRzNCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUdyQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQU0vQixRQUFRO1FBRVIsbUJBQWMsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFaEcsZ0JBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNqRSxFQUFFO1FBRUYsWUFBTyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUU3RSxXQUFNLEdBQWEsS0FBSyxDQUFDO0lBVmpDLENBQUM7SUFIRCxLQUFLLEtBQVUsQ0FBQztJQWNoQixJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUdELElBQVcsS0FBSyxDQUFDLENBQVU7UUFDekIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3ZDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLEtBQUssRUFBRSxDQUFDO2dCQUNSLFFBQVEsRUFBRSxHQUFHO2dCQUNiLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7YUFDcEMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLGtDQUFrQztJQUNsQyxzQkFBc0I7SUFDdEIsSUFBSTtJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtZQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBYTtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3BDLDJCQUEyQjtnQkFDM0IsNEJBQTRCO2dCQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDaEIsU0FBUyxFQUFFLElBQUk7b0JBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtvQkFDbkMsU0FBUyxFQUFFLENBQUM7b0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2lCQUNsQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7Q0FDRixDQUFBOztZQTNENEIsaUJBQWlCO1lBQWUsVUFBVTs7QUFyQi9CO0lBQXJDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7OEJBQVEsVUFBVTtrREFBbUI7QUFHMUU7SUFEQyxLQUFLLEVBQUU7O3FEQUNrQjtBQUcxQjtJQURDLEtBQUssRUFBRTs7cURBQ2tCO0FBRzFCO0lBREMsS0FBSyxFQUFFOztpREFDbUI7QUFHM0I7SUFEQyxLQUFLLEVBQUU7O2tEQUNXO0FBR25CO0lBREMsS0FBSyxFQUFFOztxREFDYTtBQUdyQjtJQURDLEtBQUssRUFBRTs7MERBQ3VCO0FBUS9CO0lBREMsTUFBTSxFQUFFOzhCQUNPLFlBQVk7MkRBQW9FO0FBRWhHO0lBREMsTUFBTSxFQUFFOzhCQUNJLFlBQVk7d0RBQXdDO0FBR2pFO0lBREMsTUFBTSxFQUFFOzhCQUNBLFlBQVk7b0RBQWdFO0FBUXJGO0lBREMsS0FBSyxFQUFFOzs7Z0RBYVA7QUFwRFUsbUJBQW1CO0lBTi9CLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxjQUFjO1FBQ3hCLDI1QkFBd0M7UUFDeEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7UUFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07S0FDaEQsQ0FBQztxQ0F1QjJCLGlCQUFpQixFQUFlLFVBQVU7R0F0QjFELG1CQUFtQixDQWlGL0I7U0FqRlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgRWxlbWVudFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VDb21wb25lbnQsIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZVZhbHVlQ29tcG9uZW50LCBBWEVsZW1lbnRTaXplIH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuaW1wb3J0IHsgQVhWYWx1ZUV2ZW50LCBBWEh0bWxFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBWENoZWNrQm94SXRlbUNsaWNrIGV4dGVuZHMgQVhIdG1sRXZlbnQ8TW91c2VFdmVudD4ge1xyXG4gIHZhbHVlPzogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1jaGVjay1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhDaGVja0JveENvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQsIEFYQmFzZVZhbHVlQ29tcG9uZW50PGJvb2xlYW4+IHtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcclxuXHJcbiAgQElucHV0KClcclxuICBsYWJlbDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFiSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaW5kZXRlcm1pbmF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBmb2N1cygpOiB2b2lkIHt9XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuICAvLyBWYWx1ZVxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PGJvb2xlYW4+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PGJvb2xlYW4+PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgLy9cclxuICBAT3V0cHV0KClcclxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDaGVja0JveEl0ZW1DbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ2hlY2tCb3hJdGVtQ2xpY2s+KCk7XHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodjogYm9vbGVhbikge1xyXG4gICAgaWYgKHYgIT0gdGhpcy5fdmFsdWUgfHwgdiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlO1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcclxuICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgdmFsdWU6IHYsXHJcbiAgICAgICAgb2xkVmFsdWU6IG9sZCxcclxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGhhbmRlbENoYW5nZShlKSB7XHJcbiAgLy8gICBjb25zdCB2YWwgPSBlLnRhcmdldC5jaGVja2VkO1xyXG4gIC8vICAgdGhpcy52YWx1ZSA9IHZhbDtcclxuICAvLyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmluZGV0ZXJtaW5hdGUgJiYgdGhpcy52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIC8vIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIC8vIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgLy9UT0RPOiBjaGVjayBpbnRlcm1kZGlhdGU7XHJcbiAgICAgICAgLy8gdGhpcy52YWx1ZSA9ICF0aGlzLnZhbHVlO1xyXG4gICAgICAgIHRoaXMub25DbGljay5lbWl0KHtcclxuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgaHRtbEV2ZW50OiBlLFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWVcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -2,7 +2,6 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import { AXTabPageRendererComponent } from './tab-page-Renderer.component';
|
|
5
|
-
import { AXTabPageService } from './tab-page.service';
|
|
6
5
|
import { AXLoadingModule } from '../loading/loading.module';
|
|
7
6
|
import { AXTabPageHostComponent } from './tab-page-host.component';
|
|
8
7
|
let AXTabPageModule = class AXTabPageModule {
|
|
@@ -13,8 +12,8 @@ AXTabPageModule = __decorate([
|
|
|
13
12
|
imports: [CommonModule, AXLoadingModule],
|
|
14
13
|
exports: [AXTabPageRendererComponent],
|
|
15
14
|
entryComponents: [AXTabPageRendererComponent, AXTabPageHostComponent],
|
|
16
|
-
providers: [
|
|
15
|
+
providers: [],
|
|
17
16
|
})
|
|
18
17
|
], AXTabPageModule);
|
|
19
18
|
export { AXTabPageModule };
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhZ2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3RhYi1wYWdlL3RhYi1wYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBU25FLElBQWEsZUFBZSxHQUE1QixNQUFhLGVBQWU7Q0FBSSxDQUFBO0FBQW5CLGVBQWU7SUFQM0IsUUFBUSxDQUFDO1FBQ04sWUFBWSxFQUFFLENBQUMsMEJBQTBCLEVBQUUsc0JBQXNCLENBQUM7UUFDbEUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQztRQUN4QyxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztRQUNyQyxlQUFlLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxzQkFBc0IsQ0FBQztRQUNyRSxTQUFTLEVBQUUsRUFBRTtLQUNoQixDQUFDO0dBQ1csZUFBZSxDQUFJO1NBQW5CLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFRhYlBhZ2VSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vdGFiLXBhZ2UtUmVuZGVyZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi4vbG9hZGluZy9sb2FkaW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFYVGFiUGFnZUhvc3RDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wYWdlLWhvc3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtBWFRhYlBhZ2VSZW5kZXJlckNvbXBvbmVudCwgQVhUYWJQYWdlSG9zdENvbXBvbmVudF0sXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWExvYWRpbmdNb2R1bGVdLFxyXG4gICAgZXhwb3J0czogW0FYVGFiUGFnZVJlbmRlcmVyQ29tcG9uZW50XSxcclxuICAgIGVudHJ5Q29tcG9uZW50czogW0FYVGFiUGFnZVJlbmRlcmVyQ29tcG9uZW50LCBBWFRhYlBhZ2VIb3N0Q29tcG9uZW50XSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFRhYlBhZ2VNb2R1bGUgeyB9Il19
|
|
@@ -28,7 +28,10 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
28
28
|
//seletedKeyFields set id of nodes and parents
|
|
29
29
|
//selectedFieldName set name of fields that set selectes
|
|
30
30
|
this.selectedFieldName = null;
|
|
31
|
-
|
|
31
|
+
// @Input()
|
|
32
|
+
// selectNodesRecursive: 'all' | 'parents' | 'childs' | 'none' = 'all'; //leaf
|
|
33
|
+
this.checkParents = true;
|
|
34
|
+
this.checkChilds = true;
|
|
32
35
|
this.seletedKeyFields = [];
|
|
33
36
|
this.keyField = 'id';
|
|
34
37
|
this.hasChildField = 'child';
|
|
@@ -43,6 +46,7 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
43
46
|
this.onItemClosing = new EventEmitter();
|
|
44
47
|
this.onItemDrag = new EventEmitter();
|
|
45
48
|
this.onItemMoved = new EventEmitter();
|
|
49
|
+
this.selectableField = '';
|
|
46
50
|
this.onContextMenuItemClick = new EventEmitter();
|
|
47
51
|
this.showSelectBox = false;
|
|
48
52
|
this.loading = false;
|
|
@@ -156,7 +160,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
156
160
|
return node;
|
|
157
161
|
}
|
|
158
162
|
changeChildSelect(item, s) {
|
|
159
|
-
if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs') {
|
|
163
|
+
// if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs') {
|
|
164
|
+
if (this.checkChilds == true) {
|
|
160
165
|
item.select = s;
|
|
161
166
|
if (item[this.hasChildField] === true && item[this.childField] && item[this.childField].length > 0) {
|
|
162
167
|
item[this.childField].forEach((elm) => {
|
|
@@ -189,7 +194,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
189
194
|
}
|
|
190
195
|
}
|
|
191
196
|
changeParentSelect(item) {
|
|
192
|
-
if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'parents') {
|
|
197
|
+
//if (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'parents') {
|
|
198
|
+
if (this.checkParents) {
|
|
193
199
|
let allselect = true;
|
|
194
200
|
let alldeselect = true;
|
|
195
201
|
let oneselect = false;
|
|
@@ -293,7 +299,7 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
293
299
|
this.hideLoading(null);
|
|
294
300
|
this.list = _data.data.result;
|
|
295
301
|
this.list.forEach((el) => {
|
|
296
|
-
el.disabledCheckBox = false;
|
|
302
|
+
el.disabledCheckBox = this.selectableField != '' ? el[this.selectableField] : false;
|
|
297
303
|
el.select = false;
|
|
298
304
|
if (this.selectionLevel == 'nodes' && el[this.hasChildField] == true) {
|
|
299
305
|
el.disabledCheckBox = true;
|
|
@@ -305,9 +311,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
305
311
|
this.seletedKeyFields.forEach((n) => {
|
|
306
312
|
if (n.includes(el[this.keyField])) {
|
|
307
313
|
if (el[this.hasChildField] == true) {
|
|
308
|
-
|
|
314
|
+
if (this.checkParents == false && this.checkChilds == false) {
|
|
315
|
+
//select parent when check child and check parent is false TODO check this Action
|
|
316
|
+
this.selectItem(el);
|
|
317
|
+
}
|
|
309
318
|
this.open(el);
|
|
310
|
-
// }
|
|
311
319
|
}
|
|
312
320
|
else {
|
|
313
321
|
this.selectItem(el);
|
|
@@ -318,9 +326,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
318
326
|
}
|
|
319
327
|
else if (this.selectedFieldName != null) {
|
|
320
328
|
if (el[this.hasChildField] == true && el[this.selectedFieldName] == true) {
|
|
321
|
-
|
|
329
|
+
if (this.checkParents == false && this.checkChilds == false) {
|
|
330
|
+
//select parent when check child and check parent is false TODO check this Action
|
|
331
|
+
this.selectItem(el);
|
|
332
|
+
}
|
|
322
333
|
this.open(el);
|
|
323
|
-
// }
|
|
324
334
|
}
|
|
325
335
|
else if (el[this.selectedFieldName] == true) {
|
|
326
336
|
this.selectItem(el);
|
|
@@ -339,7 +349,7 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
339
349
|
if (this.list.length !== 0) {
|
|
340
350
|
if (this.itemRow[this.childField] && this.itemRow[this.childField].length > 0) {
|
|
341
351
|
result.forEach((el) => {
|
|
342
|
-
el.disabledCheckBox = false;
|
|
352
|
+
el.disabledCheckBox = this.selectableField != '' ? el[this.selectableField] : false;
|
|
343
353
|
this.itemRow[this.childField][this.itemRow[this.childField].length] = el;
|
|
344
354
|
});
|
|
345
355
|
}
|
|
@@ -353,7 +363,8 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
353
363
|
if (this.selectionLevel == 'parents' && result[i][this.hasChildField] == false) {
|
|
354
364
|
result[i].disabledCheckBox = true;
|
|
355
365
|
}
|
|
356
|
-
if (this.selectionMode !== 'single' && (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs')) {
|
|
366
|
+
// if (this.selectionMode !== 'single' && (this.selectNodesRecursive == 'all' || this.selectNodesRecursive == 'childs')) {
|
|
367
|
+
if (this.selectionMode !== 'single' && this.checkChilds == true) {
|
|
357
368
|
result[i].select = this.itemRow.select === (undefined || null) ? false : this.itemRow.select;
|
|
358
369
|
if (this.itemRow.select === true && this.selectionMode == 'multiple' && result[i][this.hasChildField] === false) {
|
|
359
370
|
this.selectedItems = this.selectedItems.filter((c) => c[this.keyField] !== result[i][this.keyField]);
|
|
@@ -368,9 +379,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
368
379
|
this.seletedKeyFields.forEach((n) => {
|
|
369
380
|
if (n.includes(result[i][this.keyField])) {
|
|
370
381
|
if (result[i][this.hasChildField] == true) {
|
|
371
|
-
|
|
382
|
+
if (this.checkParents == false && this.checkChilds == false) {
|
|
383
|
+
//select parent when check child and check parent is false TODO check this Action
|
|
384
|
+
this.selectItem(result[i]);
|
|
385
|
+
}
|
|
372
386
|
this.open(result[i]);
|
|
373
|
-
// }
|
|
374
387
|
}
|
|
375
388
|
else {
|
|
376
389
|
this.selectItem(result[i]);
|
|
@@ -381,9 +394,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
381
394
|
}
|
|
382
395
|
else if (this.selectedFieldName != null) {
|
|
383
396
|
if (result[i][this.hasChildField] == true && result[i][this.selectedFieldName] == true) {
|
|
384
|
-
|
|
397
|
+
if (this.checkParents == false && this.checkChilds == false) {
|
|
398
|
+
//select parent when check child and check parent is false TODO check this Action
|
|
399
|
+
this.selectItem(result[i]);
|
|
400
|
+
}
|
|
385
401
|
this.open(result[i]);
|
|
386
|
-
// }
|
|
387
402
|
}
|
|
388
403
|
else if (result[i][this.selectedFieldName] == true) {
|
|
389
404
|
this.selectItem(result[i]);
|
|
@@ -548,6 +563,11 @@ let AXTreeViewComponent = class AXTreeViewComponent extends AXBaseComponent {
|
|
|
548
563
|
this.internalSelectItem(item, false);
|
|
549
564
|
}
|
|
550
565
|
}
|
|
566
|
+
unSelectItem(item) {
|
|
567
|
+
if (item['select'] == true) {
|
|
568
|
+
this.internalSelectItem(item, false);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
551
571
|
open(item) {
|
|
552
572
|
if (item['toggle'] !== true) {
|
|
553
573
|
this.toggleNode(item, true);
|
|
@@ -629,8 +649,12 @@ __decorate([
|
|
|
629
649
|
], AXTreeViewComponent.prototype, "selectedFieldName", void 0);
|
|
630
650
|
__decorate([
|
|
631
651
|
Input(),
|
|
632
|
-
__metadata("design:type",
|
|
633
|
-
], AXTreeViewComponent.prototype, "
|
|
652
|
+
__metadata("design:type", Boolean)
|
|
653
|
+
], AXTreeViewComponent.prototype, "checkParents", void 0);
|
|
654
|
+
__decorate([
|
|
655
|
+
Input(),
|
|
656
|
+
__metadata("design:type", Boolean)
|
|
657
|
+
], AXTreeViewComponent.prototype, "checkChilds", void 0);
|
|
634
658
|
__decorate([
|
|
635
659
|
Input(),
|
|
636
660
|
__metadata("design:type", Array)
|
|
@@ -687,6 +711,10 @@ __decorate([
|
|
|
687
711
|
Output(),
|
|
688
712
|
__metadata("design:type", EventEmitter)
|
|
689
713
|
], AXTreeViewComponent.prototype, "onItemMoved", void 0);
|
|
714
|
+
__decorate([
|
|
715
|
+
Input(),
|
|
716
|
+
__metadata("design:type", String)
|
|
717
|
+
], AXTreeViewComponent.prototype, "selectableField", void 0);
|
|
690
718
|
__decorate([
|
|
691
719
|
Output(),
|
|
692
720
|
__metadata("design:type", EventEmitter)
|
|
@@ -704,4 +732,4 @@ AXTreeViewComponent = __decorate([
|
|
|
704
732
|
__metadata("design:paramtypes", [ElementRef])
|
|
705
733
|
], AXTreeViewComponent);
|
|
706
734
|
export { AXTreeViewComponent };
|
|
707
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFlLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJeEQsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFFRSxhQUFRLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUUxRCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0NBUTlCO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtDQUlwQztBQUVELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUE0QjtDQUVoRjtBQUVELE1BQU0sT0FBTyxzQ0FBdUMsU0FBUSxZQUE0QjtDQUV2RjtBQUVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUF1QjtDQUsvRDtBQU9ELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW9CLFNBQVEsZUFBZTtJQXNGdEQsWUFBb0IsR0FBZTtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQVk7UUE5RW5DLGtCQUFhLEdBQTBCLFFBQVEsQ0FBQztRQUdoRCxtQkFBYyxHQUFnQyxLQUFLLENBQUM7UUFFcEQsd0VBQXdFO1FBQ3hFLDhDQUE4QztRQUM5Qyx3REFBd0Q7UUFFeEQsc0JBQWlCLEdBQVcs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R3BJO0lBREMsTUFBTSxFQUFFOzhCQUNNLFlBQVk7MERBQWdDO0FBRzNEO0lBREMsTUFBTSxFQUFFOzhCQUNJLFlBQVk7d0RBQWdFO0FBR3pGO0lBREMsTUFBTSxFQUFFOzhCQUNNLFlBQVk7MERBQWdDO0FBRzNEO0lBREMsTUFBTSxFQUFFOzhCQUNHLFlBQVk7dURBQWdDO0FBR3hEO0lBREMsTUFBTSxFQUFFOzhCQUNJLFlBQVk7d0RBQTBFO0FBR25HO0lBREMsTUFBTSxFQUFFOzhCQUNlLFlBQVk7bUVBQWdGO0FBbUJwSDtJQURDLEtBQUssRUFBRTs7NkRBQzhFO0FBcEYzRSxtQkFBbUI7SUFML0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGNBQWM7UUFDeEIsdWhGQUF5QztRQUN6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtLQUN0QyxDQUFDO3FDQXVGeUIsVUFBVTtHQXRGeEIsbUJBQW1CLENBMHBCL0I7U0ExcEJZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBDb250ZW50Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRGF0YVNvdXJjZUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGEtc291cmNlL2RhdGFzb3VyY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhEYXRhRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudCwgQVhDb250ZXh0TWVudVByb21pc2VGdW5jdGlvbiwgQVhDb250ZXh0TWVudUZ1bmN0aW9uIH0gZnJvbSAnLi4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3Tm9kZSB7XHJcbiAgY2hpbGRyZW46IEFYVHJlZVZpZXdOb2RlW107XHJcbiAgaXRlbURhdGE6IEFYVHJlZVZpZXdJdGVtRGF0YSA9IG5ldyBBWFRyZWVWaWV3SXRlbURhdGEoKTtcclxuICBwYXJlbnQ6IEFYVHJlZVZpZXdOb2RlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1EYXRhIHtcclxuICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICBpbmRldGVybWluYXRlOiBib29sZWFuO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIG9wZW46IGJvb2xlYW47XHJcbiAgaGFzQ2hpbGQ6IGJvb2xlYW47XHJcbiAgaXRlbTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50IHtcclxuICBzb3VyY2U6IEFYVHJlZVZpZXdOb2RlO1xyXG4gIHRhcmdldDogQVhUcmVlVmlld05vZGU7XHJcbiAgcmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld3NlbGVjdGlvbkNoYW5nZWRFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxBWFRyZWVWaWV3Tm9kZT4ge1xyXG4gIGNvbXBvbmVudDogQVhUcmVlVmlld0NvbXBvbmVudDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdzZWxldGVkS2V5RmllbGRzQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYVHJlZVZpZXdOb2RlPiB7XHJcbiAgY29tcG9uZW50OiBBWFRyZWVWaWV3Q29tcG9uZW50O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1DbGljayBleHRlbmRzIEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+IHtcclxuICBjb21wb25lbnQ6IEFYVHJlZVZpZXdDb21wb25lbnQ7XHJcbiAgaXRlbTogYW55O1xyXG4gIGZsYWc6IGJvb2xlYW47XHJcbiAgY2FuY2VsPzogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC10cmVlLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgbm9kZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAQ29udGVudENoaWxkKEFYRGF0YVNvdXJjZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIF9jb250ZW50RGF0YVNvdXJjZTogQVhEYXRhU291cmNlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGlvbk1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdzaW5nbGUnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGlvbkxldmVsOiAnYWxsJyB8ICdub2RlcycgfCAncGFyZW50cycgPSAnYWxsJztcclxuXHJcbiAgLy8gdXNlciBjYW4gc2V0IG9ubHkgb25lIG9mIHRoaXMgL3NlbGVjdGVkRmllbGROYW1lIG9yIC9zZWxldGVkS2V5RmllbGRzXHJcbiAgLy9zZWxldGVkS2V5RmllbGRzIHNldCBpZCBvZiBub2RlcyBhbmQgcGFyZW50c1xyXG4gIC8vc2VsZWN0ZWRGaWVsZE5hbWUgc2V0IG5hbWUgb2YgZmllbGRzIHRoYXQgc2V0IHNlbGVjdGVzXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZEZpZWxkTmFtZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3ROb2Rlc1JlY3Vyc2l2ZTogJ2FsbCcgfCAncGFyZW50cycgfCAnY2hpbGRzJyB8ICdub25lJyA9ICdhbGwnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGV0ZWRLZXlGaWVsZHM6IGFueVtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAga2V5RmllbGQ6IHN0cmluZyA9ICdpZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGFzQ2hpbGRGaWVsZDogc3RyaW5nID0gJ2NoaWxkJztcclxuXHJcbiAgQElucHV0KClcclxuICBib3JkZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxhenlMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0RyYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiAnbWQnIHwgJ3NtJyA9ICdtZCc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFRyZWVWaWV3c2VsZWN0aW9uQ2hhbmdlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld3NlbGVjdGlvbkNoYW5nZWRFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc2VsZXRlZEtleUZpZWxkc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFRyZWVWaWV3c2VsZXRlZEtleUZpZWxkc0NoYW5nZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdzZWxlY3Rpb25DaGFuZ2VkRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbU9wZW5pbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1DbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdJdGVtQ2xpY2s+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbUNsb3Npbmc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbURyYWc6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSXRlbU1vdmVkOiBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNvbnRleHRNZW51SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PigpO1xyXG5cclxuICBzaG93U2VsZWN0Qm94OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxpc3Q6IGFueVtdID0gW107XHJcbiAgaXRlbVJvdzogYW55O1xyXG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWRQYXJlbnRzOiBhbnlbXSA9IFtdO1xyXG4gIGxvYWRBbGxDaGlsZHJlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxpc3RMb2FkOiBhbnlbXSA9IFtdO1xyXG4gIGl0ZW1Ecm9wOiBhbnk7XHJcbiAgaXRlbURyYWc6IGFueTtcclxuICB2YWxpZERyb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGxvY2tlZERyYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGlsZEZpZWxkOiBzdHJpbmcgPSAnY2hpbGRlcmVuJztcclxuICBzaG93Q29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NlbGVjdGVkSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvY2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBjb250ZXh0TWVudUl0ZW1zOiBBWE1lbnVJdGVtW10gfCBBWENvbnRleHRNZW51UHJvbWlzZUZ1bmN0aW9uIHwgQVhDb250ZXh0TWVudUZ1bmN0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9uQ29udGV4dE1lbnVJdGVtKGU6IEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudCkge1xyXG4gICAgdGhpcy5vbkNvbnRleHRNZW51SXRlbUNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5saXN0ID0gW107XHJcbiAgICB0aGlzLl9jb250ZW50RGF0YVNvdXJjZS5mZXRjaChudWxsKTtcclxuICB9XHJcblxyXG4gIGludGVybmFsU2VsZWN0SXRlbShpdGVtLCB1c2VyQ2hhbmdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UgfHwgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICBpdGVtLnNlbGVjdCA9ICFpdGVtLnNlbGVjdDtcclxuICAgICAgaWYgKGl0ZW0ucGFyZW50Tm9kZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5zZWxlY3QgPT09IHRydWUpIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGUpID0+IHtcclxuICAgICAgICAgICAgZS5zZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLnNlbGVjdCA9ICFpdGVtLnNlbGVjdDtcclxuXHJcbiAgICAgIGlmIChpdGVtLnBhcmVudE5vZGUgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZFNlbGVjdChpdGVtLCBpdGVtLnNlbGVjdCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpdGVtLnNlbGVjdCA9PSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICBlLnNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodXNlckNoYW5nZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLm1ha2VOb2RlKGl0ZW0pLFxyXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYWtlTm9kZShpdGVtLCBhZGRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IG5vZGU6IEFYVHJlZVZpZXdOb2RlID0gbmV3IEFYVHJlZVZpZXdOb2RlKCk7XHJcbiAgICBpZiAoYWRkQ2hpbGRyZW4pIHtcclxuICAgICAgbm9kZS5jaGlsZHJlbiA9IGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSA9PT0gdW5kZWZpbmVkID8gW10gOiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0/Lm1hcCgobSkgPT4gdGhpcy5tYWtlTm9kZShtKSk7XHJcbiAgICB9XHJcbiAgICBub2RlLml0ZW1EYXRhLmRpc2FibGVkID0gaXRlbS5kaXNhYmxlZCA9PT0gdHJ1ZSA/IGl0ZW0uZGlzYWJsZWQgOiBmYWxzZTtcclxuICAgIG5vZGUuaXRlbURhdGEub3BlbiA9IGl0ZW0ub3BlbiA9PT0gdHJ1ZSA/IGl0ZW0ub3BlbiA6IGZhbHNlO1xyXG4gICAgbm9kZS5pdGVtRGF0YS5rZXkgPSBpdGVtW3RoaXMua2V5RmllbGRdO1xyXG5cclxuICAgIGNvbnN0IGMgPSBbXTtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAodmFyIGsgaW4gaXRlbSkge1xyXG4gICAgICBpID0gaSArIDE7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBrICE9ICdzZWxlY3QnICYmXHJcbiAgICAgICAgayAhPSAnaGFzQ2hpbGQnICYmXHJcbiAgICAgICAgayAhPSAnbG9hZGluZycgJiZcclxuICAgICAgICBrICE9ICdyZXF1ZXN0SWQnICYmXHJcbiAgICAgICAgayAhPSAnZGlzYWJsZWQnICYmXHJcbiAgICAgICAgayAhPSAnb3BlbicgJiZcclxuICAgICAgICBrICE9ICdwYXJlbnROb2RlJyAmJlxyXG4gICAgICAgIGsgIT0gJ3RvZ2dsZScgJiZcclxuICAgICAgICBrICE9ICdsb2FkZWQnICYmXHJcbiAgICAgICAgayAhPSAnaW5kZXRlcm1pbmF0ZScgJiZcclxuICAgICAgICBrICE9IHRoaXMuY2hpbGRGaWVsZFxyXG4gICAgICApIHtcclxuICAgICAgICAvL2MucHVzaCh7IGs6IGl0ZW1ba10gfSk7XHJcbiAgICAgICAgY1trXSA9IGl0ZW1ba107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBub2RlLml0ZW1EYXRhLml0ZW0gPSBjOyAvL1RPIERPXHJcbiAgICBub2RlLml0ZW1EYXRhLnNlbGVjdGVkID0gaXRlbS5zZWxlY3QgPT09IHRydWUgPyBpdGVtLnNlbGVjdCA6IGZhbHNlO1xyXG4gICAgbm9kZS5pdGVtRGF0YS5pbmRldGVybWluYXRlID0gaXRlbS5zZWxlY3QgPT09IG51bGwgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBub2RlLml0ZW1EYXRhLmhhc0NoaWxkID0gaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdO1xyXG4gICAgbm9kZS5wYXJlbnQgPSBpdGVtLnBhcmVudE5vZGUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB0aGlzLm1ha2VOb2RlKGl0ZW0ucGFyZW50Tm9kZSwgZmFsc2UpO1xyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZUNoaWxkU2VsZWN0KGl0ZW0sIHMpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdhbGwnIHx8IHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ2NoaWxkcycpIHtcclxuICAgICAgaXRlbS5zZWxlY3QgPSBzO1xyXG4gICAgICBpZiAoaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlICYmIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXS5mb3JFYWNoKChlbG0pID0+IHtcclxuICAgICAgICAgIGlmIChlbG1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBlbG0uc2VsZWN0ID0gcztcclxuXHJcbiAgICAgICAgICAgIGlmIChzID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gZWxtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5wdXNoKGVsbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHMgPT09IGZhbHNlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gZWxtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZFNlbGVjdChlbG0sIHMpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWxtLnNlbGVjdCA9IHM7XHJcbiAgICAgICAgICAgIGlmIChzID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBlbG1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGVsbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHMgPT09IGZhbHNlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBlbG1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZVBhcmVudFNlbGVjdChpdGVtKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3ROb2Rlc1JlY3Vyc2l2ZSA9PSAnYWxsJyB8fCB0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdwYXJlbnRzJykge1xyXG4gICAgICBsZXQgYWxsc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgbGV0IGFsbGRlc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgbGV0IG9uZXNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICBsZXQgaXNpbmRldGVybWluYXRlID0gZmFsc2U7XHJcblxyXG4gICAgICBpZiAoaXRlbVt0aGlzLmNoaWxkRmllbGRdKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW1bdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgIGlmIChpdGVtW3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLnNlbGVjdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBhbGxkZXNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBvbmVzZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW1bdGhpcy5jaGlsZEZpZWxkXVtpbmRleF0uc2VsZWN0ID09PSBmYWxzZSB8fCBpdGVtW3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLnNlbGVjdCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGFsbHNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW1bdGhpcy5jaGlsZEZpZWxkXVtpbmRleF0uc2VsZWN0ID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlzaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGFsbGRlc2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIG9uZXNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgIGFsbHNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG9uZXNlbGVjdCB8fCAoaXNpbmRldGVybWluYXRlICYmICFhbGxzZWxlY3QpKSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRzID0gdGhpcy5zZWxlY3RlZFBhcmVudHMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBpdGVtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbGxzZWxlY3QgPT09IHRydWUpIHtcclxuICAgICAgICBpdGVtLnNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRzLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGFsbGRlc2VsZWN0ID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5wYXJlbnROb2RlICYmIGl0ZW0ucGFyZW50Tm9kZVt0aGlzLmNoaWxkRmllbGRdICYmIGl0ZW0ucGFyZW50Tm9kZVt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVBhcmVudFNlbGVjdChpdGVtLnBhcmVudE5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25JdGVtQ2xpY2suc3Vic2NyaWJlKChkYXRhOiBBWFRyZWVWaWV3SXRlbUNsaWNrKSA9PiB7XHJcbiAgICAgIGlmICghZGF0YS5jYW5jZWwpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU5vZGUoZGF0YS5pdGVtLCBkYXRhLmZsYWcpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGl0ZW1kYkNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW0pIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT0gJ3NpbmdsZScpIHtcclxuICAgICAgdGhpcy5oYW5kbGVPbk5vZGVDbGljayhlLCBpdGVtLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZU9uTm9kZUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW0sIGZsYWcgPSBmYWxzZSkge1xyXG4gICAgLy8gIHRoaXMuaW50ZXJuYWxTZWxlY3RJdGVtKGl0ZW0pO1xyXG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBodG1sRXZlbnQ6IGUsXHJcbiAgICAgIGl0ZW0sXHJcbiAgICAgIGZsYWdcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTm9kZShpdGVtLCBmbGFnID0gZmFsc2UpIHtcclxuICAgIC8vaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSBmYWxzZSAmJlxyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScgJiYgIWZsYWcpIHtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJyAmJiBpdGVtLmhhc0NoaWxkID09IHRydWUpIHtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmludGVybmFsU2VsZWN0SXRlbShpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbS50b2dnbGUgPSAhaXRlbS50b2dnbGU7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJyAmJiBpdGVtLmhhc0NoaWxkID09IHRydWUpIHtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pbnRlcm5hbFNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlICYmIGl0ZW0ubG9hZGVkICE9PSB0cnVlICYmIHRoaXMubGF6eUxvYWRpbmcpIHtcclxuICAgICAgICB0aGlzLml0ZW1Sb3cgPSBpdGVtO1xyXG4gICAgICAgIGNvbnN0IHVpZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDAwMCk7XHJcbiAgICAgICAgaXRlbS5yZXF1ZXN0SWQgPSB1aWQ7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMuX2NvbnRlbnREYXRhU291cmNlLmZldGNoKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRpbmcodGhpcy5pdGVtUm93KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS50b2dnbGUgJiYgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5vcGVuID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm9uSXRlbU9wZW5pbmcuZW1pdCh0aGlzLm1ha2VOb2RlKGl0ZW0pKTtcclxuICAgICAgfSBlbHNlIGlmICghaXRlbS50b2dnbGUgJiYgaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5vbkl0ZW1DbG9zaW5nLmVtaXQodGhpcy5tYWtlTm9kZShpdGVtKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbnRlbnREYXRhU291cmNlLmZldGNoKG51bGwpO1xyXG4gICAgdGhpcy5fY29udGVudERhdGFTb3VyY2Uub25EYXRhUmVjZWl2ZWQuc3Vic2NyaWJlKChfZGF0YSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuaGlkZUxvYWRpbmcobnVsbCk7XHJcbiAgICAgICAgdGhpcy5saXN0ID0gX2RhdGEuZGF0YS5yZXN1bHQ7XHJcblxyXG4gICAgICAgIHRoaXMubGlzdC5mb3JFYWNoKChlbCkgPT4ge1xyXG4gICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgZWwuc2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJyAmJiBlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUpIHtcclxuICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ3BhcmVudHMnICYmIGVsW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZXRlZEtleUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZXRlZEtleUZpZWxkcy5mb3JFYWNoKChuOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAobi5pbmNsdWRlcyhlbFt0aGlzLmtleUZpZWxkXSkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgLy8gIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm9wZW4oZWwpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGVsKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkSXRlbSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEZpZWxkTmFtZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmIChlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUgJiYgZWxbdGhpcy5zZWxlY3RlZEZpZWxkTmFtZV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIC8vIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vcGVuKGVsKTtcclxuICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxbdGhpcy5zZWxlY3RlZEZpZWxkTmFtZV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShlbCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkSXRlbSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLml0ZW1Sb3cgPSB0aGlzLmxpc3RMb2FkLmZpbHRlcigoYykgPT4gYy5yZXF1ZXN0SWQgPT09IF9kYXRhLmRhdGEucmVxdWVzdElkKVswXTtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkID0gdGhpcy5saXN0TG9hZC5maWx0ZXIoKGMpID0+IGMucmVxdWVzdElkICE9PSBfZGF0YS5kYXRhLnJlcXVlc3RJZCk7XHJcbiAgICAgICAgdGhpcy5pdGVtUm93LmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbVJvdyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVMb2FkaW5nKHRoaXMuaXRlbVJvdyk7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBfZGF0YS5kYXRhLnJlc3VsdDtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0gJiYgdGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKChlbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF1bdGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoXSA9IGVsO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXRlbVJvd1t0aGlzLmNoaWxkRmllbGRdID0gcmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3VsdC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycgJiYgcmVzdWx0W2ldW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ldLmRpc2FibGVkQ2hlY2tCb3ggPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ3BhcmVudHMnICYmIHJlc3VsdFtpXVt0aGlzLmhhc0NoaWxkRmllbGRdID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbaV0uZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnICYmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdhbGwnIHx8IHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ2NoaWxkcycpKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbaV0uc2VsZWN0ID0gdGhpcy5pdGVtUm93LnNlbGVjdCA9PT0gKHVuZGVmaW5lZCB8fCBudWxsKSA/IGZhbHNlIDogdGhpcy5pdGVtUm93LnNlbGVjdDtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtUm93LnNlbGVjdCA9PT0gdHJ1ZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT0gJ211bHRpcGxlJyAmJiByZXN1bHRbaV1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gcmVzdWx0W2ldW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2gocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0W2ldLnNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXN1bHRbaV0ucGFyZW50Tm9kZSA9IHRoaXMuaXRlbVJvdztcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZXRlZEtleUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGV0ZWRLZXlGaWVsZHMuZm9yRWFjaCgobjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChuLmluY2x1ZGVzKHJlc3VsdFtpXVt0aGlzLmtleUZpZWxkXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0W2ldW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbihyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0ocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZEl0ZW0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRmllbGROYW1lICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHRbaV1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PSB0cnVlICYmIHJlc3VsdFtpXVt0aGlzLnNlbGVjdGVkRmllbGROYW1lXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub3BlbihyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdFtpXVt0aGlzLnNlbGVjdGVkRmllbGROYW1lXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRJdGVtID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5pdGVtUm93LmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5pc1NlbGVjdGVkSXRlbSA9PSB0cnVlICYmICF0aGlzLmxvY2VkKSB7XHJcbiAgICAgICAgdGhpcy5sb2NlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zZWxldGVkS2V5RmllbGRzQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgIC8vIHZhbHVlOiB0aGlzLm1ha2VOb2RlKGl0ZW0pLFxyXG4gICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLnNob3dTZWxlY3RCb3ggPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93Q29udGV4dE1lbnUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8gb25JdGVtQ2xpY2soZSwgdikge1xyXG5cclxuICAvLyB9XHJcblxyXG4gIG9uRHJhZ1N0YXJ0KGU6IEV2ZW50LCB2KSB7XHJcbiAgICBpZiAoIXRoaXMubG9ja2VkRHJhZykge1xyXG4gICAgICB0aGlzLml0ZW1EcmFnID0gdjtcclxuICAgICAgdGhpcy5vbkl0ZW1EcmFnLmVtaXQodik7XHJcbiAgICB9XHJcbiAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgb25EcmFnRW5kKGUsIHYpIHtcclxuICAgIGlmICghdGhpcy5sb2NrZWREcmFnKSB7XHJcbiAgICAgIHRoaXMuaXRlbURyb3AgPSB2O1xyXG4gICAgfVxyXG4gICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGRyb3AoZSkge1xyXG4gICAgLy8gIHRoaXMub25JdGVtRHJvcC5lbWl0KHRoaXMuaXRlbURyb3ApO1xyXG4gICAgaWYgKCF0aGlzLmxvY2tlZERyYWcpIHtcclxuICAgICAgdGhpcy52YWxpZERyb3AgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNhbWVDaGlsZGUodGhpcy5pdGVtRHJhZywgdGhpcy5pdGVtRHJvcCk7XHJcbiAgICAgIGlmICh0aGlzLnZhbGlkRHJvcCAmJiB0aGlzLml0ZW1EcmFnW3RoaXMua2V5RmllbGRdICE9PSB0aGlzLml0ZW1Ecm9wW3RoaXMua2V5RmllbGRdICYmIHRoaXMuaXRlbURyYWcucGFyZW50Tm9kZSAhPT0gdGhpcy5pdGVtRHJvcCkge1xyXG4gICAgICAgIGNvbnN0IG1vdmVkRXZlbnQ6IEFYVHJlZVZpZXdJdGVtTW92ZWRFdmVudCA9IG5ldyBBWFRyZWVWaWV3SXRlbU1vdmVkRXZlbnQoKTtcclxuICAgICAgICBtb3ZlZEV2ZW50LnNvdXJjZSA9IHRoaXMubWFrZU5vZGUodGhpcy5pdGVtRHJhZyk7XHJcbiAgICAgICAgbW92ZWRFdmVudC50YXJnZXQgPSB0aGlzLm1ha2VOb2RlKHRoaXMuaXRlbURyb3ApO1xyXG4gICAgICAgIHRoaXMubG9ja2VkRHJhZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93TG9hZGluZyh0aGlzLml0ZW1EcmFnKTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkaW5nKHRoaXMuaXRlbURyb3ApO1xyXG4gICAgICAgIG1vdmVkRXZlbnQucmVzb2x2ZSA9ICh2YWx1ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5oaWRlTG9hZGluZyh0aGlzLml0ZW1EcmFnKTtcclxuICAgICAgICAgIHRoaXMuaGlkZUxvYWRpbmcodGhpcy5pdGVtRHJvcCk7XHJcbiAgICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnRHJvcEl0ZW0odGhpcy5pdGVtRHJhZywgdGhpcy5pdGVtRHJvcCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2tlZERyYWcgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMub25JdGVtTW92ZWQuZW1pdChtb3ZlZEV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzYW1lQ2hpbGRlKHBhcmVudCwgY2hpbGQpIHtcclxuICAgIGlmIChwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXSAmJiBwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBpZiAocGFyZW50W3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdW3RoaXMua2V5RmllbGRdID09IGNoaWxkW3RoaXMua2V5RmllbGRdKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkRHJvcCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocGFyZW50W3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdW3RoaXMuY2hpbGRGaWVsZF0gJiYgcGFyZW50W3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zYW1lQ2hpbGRlKHBhcmVudFt0aGlzLmNoaWxkRmllbGRdW2luZGV4XSwgY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChwYXJlbnRbdGhpcy5rZXlGaWVsZF0gPT0gY2hpbGRbdGhpcy5rZXlGaWVsZF0pIHtcclxuICAgICAgdGhpcy52YWxpZERyb3AgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyYWdEcm9wSXRlbShpdGVtQ2hpbGQsIGl0ZW1QYXJlbnQpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycpIHtcclxuICAgICAgaXRlbVBhcmVudC5kaXNhYmxlZENoZWNrQm94ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXRlbUNoaWxkLnBhcmVudE5vZGUpIHtcclxuICAgICAgaXRlbUNoaWxkLnBhcmVudE5vZGVbdGhpcy5jaGlsZEZpZWxkXSA9IGl0ZW1DaGlsZC5wYXJlbnROb2RlW3RoaXMuY2hpbGRGaWVsZF0uZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBpdGVtQ2hpbGRbdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5saXN0ID0gdGhpcy5saXN0LmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gaXRlbUNoaWxkW3RoaXMua2V5RmllbGRdKTtcclxuICAgIH1cclxuICAgIGl0ZW1DaGlsZC5wYXJlbnROb2RlID0gaXRlbVBhcmVudDtcclxuICAgIGlmIChpdGVtUGFyZW50W3RoaXMuY2hpbGRGaWVsZF0gJiYgaXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aCA+IDApIHtcclxuICAgICAgaXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdW2l0ZW1QYXJlbnRbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGhdID0gaXRlbUNoaWxkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdID0gW107XHJcbiAgICAgIGl0ZW1QYXJlbnRbdGhpcy5jaGlsZEZpZWxkXVswXSA9IGl0ZW1DaGlsZDtcclxuICAgICAgaWYgKGl0ZW1QYXJlbnRbdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlTm9kZShpdGVtUGFyZW50KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpdGVtUGFyZW50LnRvZ2dsZSA9ICFpdGVtUGFyZW50LnRvZ2dsZTtcclxuICAgICAgICBpdGVtUGFyZW50LmxvYWRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaXRlbVBhcmVudFt0aGlzLmhhc0NoaWxkRmllbGRdID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtQ2hpbGQucGFyZW50Tm9kZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlUGFyZW50U2VsZWN0KGl0ZW1DaGlsZC5wYXJlbnROb2RlKTtcclxuICAgIH1cclxuICAgIHRoaXMubG9ja2VkRHJhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaXN0Q2hhbmdlKGZpZWxkLCB2YWx1ZSkge1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMubGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgdGhpcy5jaGFuZ2VDaGlsZWQodGhpcy5saXN0W2luZGV4XSwgZmllbGQsIHZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMubG9hZEFsbENoaWxkcmVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZUNoaWxlZChpdGVtLCBmaWVsZCwgdmFsdWUpIHtcclxuICAgIGlmIChmaWVsZCA9PT0gJ3RvZ2dsZScgJiYgKGl0ZW0ubG9hZGVkID09PSBmYWxzZSB8fCBpdGVtLmxvYWRlZCA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICBpZiAodGhpcy5sb2FkQWxsQ2hpbGRyZW4gPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU5vZGUoaXRlbSk7XHJcbiAgICAgICAgaXRlbVtmaWVsZF0gPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbVtmaWVsZF0gPSB2YWx1ZTtcclxuICAgICAgaWYgKGZpZWxkID09PSAnc2VsZWN0JyAmJiBpdGVtW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT09IGZhbHNlICYmIHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChmaWVsZCA9PT0gJ3NlbGVjdCcpIHtcclxuICAgICAgaXRlbS5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlICYmIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICBpdGVtW3RoaXMuY2hpbGRGaWVsZF0uZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlQ2hpbGVkKGVsZW1lbnQsIGZpZWxkLCB2YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93TG9hZGluZyhpdGVtKTogdm9pZCB7XHJcbiAgICBpdGVtLmxvYWRpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlTG9hZGluZyhpdGVtKTogdm9pZCB7XHJcbiAgICBpZiAoaXRlbSAhPSBudWxsKSB7XHJcbiAgICAgIGl0ZW0ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5BbGwobG9hZEFsbDogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAvLyBpZiAobG9hZEFsbCkge1xyXG4gICAgLy8gdGhpcy5sb2FkQWxsQ2hpbGRyZW4gPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5saXN0Q2hhbmdlKCd0b2dnbGUnLCB0cnVlKTtcclxuICAgIC8vfSBlbHNlIHtcclxuICAgIHRoaXMubGlzdENoYW5nZSgndG9nZ2xlJywgdHJ1ZSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0SXRlbShpdGVtKSB7XHJcbiAgICBpZiAoaXRlbVsnc2VsZWN0J10gIT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmludGVybmFsU2VsZWN0SXRlbShpdGVtLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbihpdGVtKSB7XHJcbiAgICBpZiAoaXRlbVsndG9nZ2xlJ10gIT09IHRydWUpIHtcclxuICAgICAgdGhpcy50b2dnbGVOb2RlKGl0ZW0sIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNjcm9sSW50b1ZpZXcoaXRlbSkge1xyXG4gICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaVtkYXRhLWlkPScke2l0ZW1bdGhpcy5rZXlGaWVsZF19J11gKTtcclxuICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUFsbCgpIHtcclxuICAgIHRoaXMubGlzdENoYW5nZSgndG9nZ2xlJywgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdEFsbCgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMubGlzdENoYW5nZSgnc2VsZWN0JywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdW5TZWxlY3RBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLmxpc3RDaGFuZ2UoJ3NlbGVjdCcsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTm9kZXMoKTogQVhUcmVlVmlld05vZGVbXSB7XHJcbiAgICBjb25zdCBzZWxlY3RJdGVtc05vZGUgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIHNlbGVjdEl0ZW1zTm9kZS5wdXNoKHRoaXMubWFrZU5vZGUoZSkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gc2VsZWN0SXRlbXNOb2RlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkUGFyZW50cygpOiBBWFRyZWVWaWV3Tm9kZVtdIHtcclxuICAgIGNvbnN0IHNlbGVjdEl0ZW1zUGFyZW50ID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgIHNlbGVjdEl0ZW1zUGFyZW50LnB1c2godGhpcy5tYWtlTm9kZShlKSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzZWxlY3RJdGVtc1BhcmVudDtcclxuICB9XHJcblxyXG4gIGdldFBhcmVudHNJZChpdGVtKSB7XHJcbiAgICBsZXQga2V5RmllbGRzID0gW107XHJcbiAgICBrZXlGaWVsZHMucHVzaChpdGVtW3RoaXMua2V5RmllbGRdKTtcclxuICAgIGlmIChpdGVtLnBhcmVudE5vZGUpIHtcclxuICAgICAga2V5RmllbGRzLnB1c2goLi4udGhpcy5nZXRQYXJlbnRzSWQoaXRlbS5wYXJlbnROb2RlKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ga2V5RmllbGRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkS2V5RmllbGRzKCkge1xyXG4gICAgbGV0IGtleUZpZWxkcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGVsbSkgPT4ge1xyXG4gICAgICB2YXIgSWRzID0gdGhpcy5nZXRQYXJlbnRzSWQoZWxtKTtcclxuICAgICAgaWYgKElkcykge1xyXG4gICAgICAgIGtleUZpZWxkcy5wdXNoKElkcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGtleUZpZWxkcztcclxuICB9XHJcbn1cclxuIl19
|
|
735
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDNUUsT0FBTyxFQUFlLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJeEQsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFFRSxhQUFRLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUUxRCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0NBUTlCO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtDQUlwQztBQUVELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUE0QjtDQUVoRjtBQUVELE1BQU0sT0FBTyxzQ0FBdUMsU0FBUSxZQUE0QjtDQUV2RjtBQUVELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxXQUF1QjtDQUsvRDtBQU9ELElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW9CLFNBQVEsZUFBZTtJQStGdEQsWUFBb0IsR0FBZTtRQUNqQyxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQVk7UUF2Rm5DLGtCQUFhLEdBQTBCLFFBQVEsQ0FBQztRQUdoRCxtQkFBYyxHQUFnQyxLQUFLLENBQUM7UUFFcEQsd0VBQXdFO1FBQ3hFLDhDQUE4QztRQUM5Qyx3REFBd0Q7UUFFeEQsc0JBQWlCLEdBQVcs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OzBEQUFnQztBQUczRDtJQURDLE1BQU0sRUFBRTs4QkFDRyxZQUFZO3VEQUFnQztBQUd4RDtJQURDLE1BQU0sRUFBRTs4QkFDSSxZQUFZO3dEQUEwRTtBQUduRztJQURDLEtBQUssRUFBRTs7NERBQ3FCO0FBRzdCO0lBREMsTUFBTSxFQUFFOzhCQUNlLFlBQVk7bUVBQWdGO0FBbUJwSDtJQURDLEtBQUssRUFBRTs7NkRBQzhFO0FBN0YzRSxtQkFBbUI7SUFML0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGNBQWM7UUFDeEIsdWhGQUF5QztRQUN6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtLQUN0QyxDQUFDO3FDQWdHeUIsVUFBVTtHQS9GeEIsbUJBQW1CLENBb3JCL0I7U0FwckJZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBDb250ZW50Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRGF0YVNvdXJjZUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGEtc291cmNlL2RhdGFzb3VyY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhEYXRhRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudCwgQVhDb250ZXh0TWVudVByb21pc2VGdW5jdGlvbiwgQVhDb250ZXh0TWVudUZ1bmN0aW9uIH0gZnJvbSAnLi4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRyZWVWaWV3Tm9kZSB7XHJcbiAgY2hpbGRyZW46IEFYVHJlZVZpZXdOb2RlW107XHJcbiAgaXRlbURhdGE6IEFYVHJlZVZpZXdJdGVtRGF0YSA9IG5ldyBBWFRyZWVWaWV3SXRlbURhdGEoKTtcclxuICBwYXJlbnQ6IEFYVHJlZVZpZXdOb2RlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1EYXRhIHtcclxuICBzZWxlY3RlZDogYm9vbGVhbjtcclxuICBpbmRldGVybWluYXRlOiBib29sZWFuO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIG9wZW46IGJvb2xlYW47XHJcbiAgaGFzQ2hpbGQ6IGJvb2xlYW47XHJcbiAgaXRlbTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50IHtcclxuICBzb3VyY2U6IEFYVHJlZVZpZXdOb2RlO1xyXG4gIHRhcmdldDogQVhUcmVlVmlld05vZGU7XHJcbiAgcmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld3NlbGVjdGlvbkNoYW5nZWRFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxBWFRyZWVWaWV3Tm9kZT4ge1xyXG4gIGNvbXBvbmVudDogQVhUcmVlVmlld0NvbXBvbmVudDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdzZWxldGVkS2V5RmllbGRzQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYVHJlZVZpZXdOb2RlPiB7XHJcbiAgY29tcG9uZW50OiBBWFRyZWVWaWV3Q29tcG9uZW50O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhUcmVlVmlld0l0ZW1DbGljayBleHRlbmRzIEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+IHtcclxuICBjb21wb25lbnQ6IEFYVHJlZVZpZXdDb21wb25lbnQ7XHJcbiAgaXRlbTogYW55O1xyXG4gIGZsYWc6IGJvb2xlYW47XHJcbiAgY2FuY2VsPzogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC10cmVlLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYVHJlZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQge1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgbm9kZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBAQ29udGVudENoaWxkKEFYRGF0YVNvdXJjZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIF9jb250ZW50RGF0YVNvdXJjZTogQVhEYXRhU291cmNlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGlvbk1vZGU6ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdzaW5nbGUnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGlvbkxldmVsOiAnYWxsJyB8ICdub2RlcycgfCAncGFyZW50cycgPSAnYWxsJztcclxuXHJcbiAgLy8gdXNlciBjYW4gc2V0IG9ubHkgb25lIG9mIHRoaXMgL3NlbGVjdGVkRmllbGROYW1lIG9yIC9zZWxldGVkS2V5RmllbGRzXHJcbiAgLy9zZWxldGVkS2V5RmllbGRzIHNldCBpZCBvZiBub2RlcyBhbmQgcGFyZW50c1xyXG4gIC8vc2VsZWN0ZWRGaWVsZE5hbWUgc2V0IG5hbWUgb2YgZmllbGRzIHRoYXQgc2V0IHNlbGVjdGVzXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZEZpZWxkTmFtZTogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8gQElucHV0KClcclxuICAvLyBzZWxlY3ROb2Rlc1JlY3Vyc2l2ZTogJ2FsbCcgfCAncGFyZW50cycgfCAnY2hpbGRzJyB8ICdub25lJyA9ICdhbGwnOyAvL2xlYWZcclxuXHJcbiAgQElucHV0KClcclxuICBjaGVja1BhcmVudHM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNoZWNrQ2hpbGRzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxldGVkS2V5RmllbGRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGtleUZpZWxkOiBzdHJpbmcgPSAnaWQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGhhc0NoaWxkRmllbGQ6IHN0cmluZyA9ICdjaGlsZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYm9yZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBsYXp5TG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dEcmFnOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogJ21kJyB8ICdzbScgPSAnbWQnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld3NlbGVjdGlvbkNoYW5nZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdzZWxlY3Rpb25DaGFuZ2VkRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNlbGV0ZWRLZXlGaWVsZHNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhUcmVlVmlld3NlbGV0ZWRLZXlGaWVsZHNDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFRyZWVWaWV3c2VsZWN0aW9uQ2hhbmdlZEV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkl0ZW1PcGVuaW5nOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdJdGVtQ2xpY2s+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFRyZWVWaWV3SXRlbUNsaWNrPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkl0ZW1DbG9zaW5nOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkl0ZW1EcmFnOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkl0ZW1Nb3ZlZDogRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdJdGVtTW92ZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVHJlZVZpZXdJdGVtTW92ZWRFdmVudD4oKTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RhYmxlRmllbGQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNvbnRleHRNZW51SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDb250ZXh0TWVudUl0ZW1DbGlja0V2ZW50PigpO1xyXG5cclxuICBzaG93U2VsZWN0Qm94OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxpc3Q6IGFueVtdID0gW107XHJcbiAgaXRlbVJvdzogYW55O1xyXG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWRQYXJlbnRzOiBhbnlbXSA9IFtdO1xyXG4gIGxvYWRBbGxDaGlsZHJlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxpc3RMb2FkOiBhbnlbXSA9IFtdO1xyXG4gIGl0ZW1Ecm9wOiBhbnk7XHJcbiAgaXRlbURyYWc6IGFueTtcclxuICB2YWxpZERyb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGxvY2tlZERyYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjaGlsZEZpZWxkOiBzdHJpbmcgPSAnY2hpbGRlcmVuJztcclxuICBzaG93Q29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1NlbGVjdGVkSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvY2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBjb250ZXh0TWVudUl0ZW1zOiBBWE1lbnVJdGVtW10gfCBBWENvbnRleHRNZW51UHJvbWlzZUZ1bmN0aW9uIHwgQVhDb250ZXh0TWVudUZ1bmN0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU9uQ29udGV4dE1lbnVJdGVtKGU6IEFYQ29udGV4dE1lbnVJdGVtQ2xpY2tFdmVudCkge1xyXG4gICAgdGhpcy5vbkNvbnRleHRNZW51SXRlbUNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5saXN0ID0gW107XHJcbiAgICB0aGlzLl9jb250ZW50RGF0YVNvdXJjZS5mZXRjaChudWxsKTtcclxuICB9XHJcblxyXG4gIGludGVybmFsU2VsZWN0SXRlbShpdGVtLCB1c2VyQ2hhbmdlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgaWYgKGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UgfHwgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICBpdGVtLnNlbGVjdCA9ICFpdGVtLnNlbGVjdDtcclxuICAgICAgaWYgKGl0ZW0ucGFyZW50Tm9kZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5zZWxlY3QgPT09IHRydWUpIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKGUpID0+IHtcclxuICAgICAgICAgICAgZS5zZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtLnNlbGVjdCA9ICFpdGVtLnNlbGVjdDtcclxuXHJcbiAgICAgIGlmIChpdGVtLnBhcmVudE5vZGUgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZFNlbGVjdChpdGVtLCBpdGVtLnNlbGVjdCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpdGVtLnNlbGVjdCA9PSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICBlLnNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMgPSB0aGlzLnNlbGVjdGVkUGFyZW50cy5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodXNlckNoYW5nZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLm1ha2VOb2RlKGl0ZW0pLFxyXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYWtlTm9kZShpdGVtLCBhZGRDaGlsZHJlbjogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IG5vZGU6IEFYVHJlZVZpZXdOb2RlID0gbmV3IEFYVHJlZVZpZXdOb2RlKCk7XHJcbiAgICBpZiAoYWRkQ2hpbGRyZW4pIHtcclxuICAgICAgbm9kZS5jaGlsZHJlbiA9IGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSA9PT0gdW5kZWZpbmVkID8gW10gOiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0/Lm1hcCgobSkgPT4gdGhpcy5tYWtlTm9kZShtKSk7XHJcbiAgICB9XHJcbiAgICBub2RlLml0ZW1EYXRhLmRpc2FibGVkID0gaXRlbS5kaXNhYmxlZCA9PT0gdHJ1ZSA/IGl0ZW0uZGlzYWJsZWQgOiBmYWxzZTtcclxuICAgIG5vZGUuaXRlbURhdGEub3BlbiA9IGl0ZW0ub3BlbiA9PT0gdHJ1ZSA/IGl0ZW0ub3BlbiA6IGZhbHNlO1xyXG4gICAgbm9kZS5pdGVtRGF0YS5rZXkgPSBpdGVtW3RoaXMua2V5RmllbGRdO1xyXG5cclxuICAgIGNvbnN0IGMgPSBbXTtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAodmFyIGsgaW4gaXRlbSkge1xyXG4gICAgICBpID0gaSArIDE7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBrICE9ICdzZWxlY3QnICYmXHJcbiAgICAgICAgayAhPSAnaGFzQ2hpbGQnICYmXHJcbiAgICAgICAgayAhPSAnbG9hZGluZycgJiZcclxuICAgICAgICBrICE9ICdyZXF1ZXN0SWQnICYmXHJcbiAgICAgICAgayAhPSAnZGlzYWJsZWQnICYmXHJcbiAgICAgICAgayAhPSAnb3BlbicgJiZcclxuICAgICAgICBrICE9ICdwYXJlbnROb2RlJyAmJlxyXG4gICAgICAgIGsgIT0gJ3RvZ2dsZScgJiZcclxuICAgICAgICBrICE9ICdsb2FkZWQnICYmXHJcbiAgICAgICAgayAhPSAnaW5kZXRlcm1pbmF0ZScgJiZcclxuICAgICAgICBrICE9IHRoaXMuY2hpbGRGaWVsZFxyXG4gICAgICApIHtcclxuICAgICAgICAvL2MucHVzaCh7IGs6IGl0ZW1ba10gfSk7XHJcbiAgICAgICAgY1trXSA9IGl0ZW1ba107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBub2RlLml0ZW1EYXRhLml0ZW0gPSBjOyAvL1RPIERPXHJcbiAgICBub2RlLml0ZW1EYXRhLnNlbGVjdGVkID0gaXRlbS5zZWxlY3QgPT09IHRydWUgPyBpdGVtLnNlbGVjdCA6IGZhbHNlO1xyXG4gICAgbm9kZS5pdGVtRGF0YS5pbmRldGVybWluYXRlID0gaXRlbS5zZWxlY3QgPT09IG51bGwgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBub2RlLml0ZW1EYXRhLmhhc0NoaWxkID0gaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdO1xyXG4gICAgbm9kZS5wYXJlbnQgPSBpdGVtLnBhcmVudE5vZGUgPT09IHVuZGVmaW5lZCA/IG51bGwgOiB0aGlzLm1ha2VOb2RlKGl0ZW0ucGFyZW50Tm9kZSwgZmFsc2UpO1xyXG4gICAgcmV0dXJuIG5vZGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZUNoaWxkU2VsZWN0KGl0ZW0sIHMpIHtcclxuICAgIC8vIGlmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdhbGwnIHx8IHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ2NoaWxkcycpIHtcclxuICAgIGlmICh0aGlzLmNoZWNrQ2hpbGRzID09IHRydWUpIHtcclxuICAgICAgaXRlbS5zZWxlY3QgPSBzO1xyXG4gICAgICBpZiAoaXRlbVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlICYmIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXS5mb3JFYWNoKChlbG0pID0+IHtcclxuICAgICAgICAgIGlmIChlbG1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBlbG0uc2VsZWN0ID0gcztcclxuXHJcbiAgICAgICAgICAgIGlmIChzID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gZWxtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5wdXNoKGVsbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHMgPT09IGZhbHNlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gZWxtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZFNlbGVjdChlbG0sIHMpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWxtLnNlbGVjdCA9IHM7XHJcbiAgICAgICAgICAgIGlmIChzID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBlbG1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGVsbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHMgPT09IGZhbHNlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBlbG1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoYW5nZVBhcmVudFNlbGVjdChpdGVtKSB7XHJcbiAgICAvL2lmICh0aGlzLnNlbGVjdE5vZGVzUmVjdXJzaXZlID09ICdhbGwnIHx8IHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ3BhcmVudHMnKSB7XHJcbiAgICBpZiAodGhpcy5jaGVja1BhcmVudHMpIHtcclxuICAgICAgbGV0IGFsbHNlbGVjdCA9IHRydWU7XHJcbiAgICAgIGxldCBhbGxkZXNlbGVjdCA9IHRydWU7XHJcbiAgICAgIGxldCBvbmVzZWxlY3QgPSBmYWxzZTtcclxuICAgICAgbGV0IGlzaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKGl0ZW1bdGhpcy5jaGlsZEZpZWxkXSkge1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtW3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBpZiAoaXRlbVt0aGlzLmNoaWxkRmllbGRdW2luZGV4XS5zZWxlY3QgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgYWxsZGVzZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgb25lc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtW3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLnNlbGVjdCA9PT0gZmFsc2UgfHwgaXRlbVt0aGlzLmNoaWxkRmllbGRdW2luZGV4XS5zZWxlY3QgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBhbGxzZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtW3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLnNlbGVjdCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICBpc2luZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgICAgICAgICBhbGxkZXNlbGVjdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBvbmVzZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgICBhbGxzZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvbmVzZWxlY3QgfHwgKGlzaW5kZXRlcm1pbmF0ZSAmJiAhYWxsc2VsZWN0KSkge1xyXG4gICAgICAgIGl0ZW0uc2VsZWN0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cyA9IHRoaXMuc2VsZWN0ZWRQYXJlbnRzLmZpbHRlcigoYykgPT4gY1t0aGlzLmtleUZpZWxkXSAhPT0gaXRlbVt0aGlzLmtleUZpZWxkXSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFBhcmVudHMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYWxsc2VsZWN0ID09PSB0cnVlKSB7XHJcbiAgICAgICAgaXRlbS5zZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRQYXJlbnRzID0gdGhpcy5zZWxlY3RlZFBhcmVudHMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBpdGVtW3RoaXMua2V5RmllbGRdKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50cy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhbGxkZXNlbGVjdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGl0ZW0uc2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0ucGFyZW50Tm9kZSAmJiBpdGVtLnBhcmVudE5vZGVbdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtLnBhcmVudE5vZGVbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbS5wYXJlbnROb2RlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uSXRlbUNsaWNrLnN1YnNjcmliZSgoZGF0YTogQVhUcmVlVmlld0l0ZW1DbGljaykgPT4ge1xyXG4gICAgICBpZiAoIWRhdGEuY2FuY2VsKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVOb2RlKGRhdGEuaXRlbSwgZGF0YS5mbGFnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpdGVtZGJDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlT25Ob2RlQ2xpY2soZSwgaXRlbSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPbk5vZGVDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtLCBmbGFnID0gZmFsc2UpIHtcclxuICAgIC8vICB0aGlzLmludGVybmFsU2VsZWN0SXRlbShpdGVtKTtcclxuICAgIHRoaXMub25JdGVtQ2xpY2suZW1pdCh7XHJcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgaHRtbEV2ZW50OiBlLFxyXG4gICAgICBpdGVtLFxyXG4gICAgICBmbGFnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU5vZGUoaXRlbSwgZmxhZyA9IGZhbHNlKSB7XHJcbiAgICAvL2l0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UgJiZcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnICYmICFmbGFnKSB7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycgJiYgaXRlbS5oYXNDaGlsZCA9PSB0cnVlKSB7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbFNlbGVjdEl0ZW0oaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW0udG9nZ2xlID0gIWl0ZW0udG9nZ2xlO1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkxldmVsID09ICdub2RlcycgJiYgaXRlbS5oYXNDaGlsZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaW50ZXJuYWxTZWxlY3RJdGVtKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSAmJiBpdGVtLmxvYWRlZCAhPT0gdHJ1ZSAmJiB0aGlzLmxhenlMb2FkaW5nKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtUm93ID0gaXRlbTtcclxuICAgICAgICBjb25zdCB1aWQgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDApO1xyXG4gICAgICAgIGl0ZW0ucmVxdWVzdElkID0gdWlkO1xyXG4gICAgICAgIHRoaXMubGlzdExvYWQucHVzaChpdGVtKTtcclxuICAgICAgICB0aGlzLl9jb250ZW50RGF0YVNvdXJjZS5mZXRjaChpdGVtKTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkaW5nKHRoaXMuaXRlbVJvdyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGl0ZW0udG9nZ2xlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGl0ZW0ub3BlbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5vbkl0ZW1PcGVuaW5nLmVtaXQodGhpcy5tYWtlTm9kZShpdGVtKSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIWl0ZW0udG9nZ2xlICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGl0ZW0ub3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub25JdGVtQ2xvc2luZy5lbWl0KHRoaXMubWFrZU5vZGUoaXRlbSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250ZW50RGF0YVNvdXJjZS5mZXRjaChudWxsKTtcclxuICAgIHRoaXMuX2NvbnRlbnREYXRhU291cmNlLm9uRGF0YVJlY2VpdmVkLnN1YnNjcmliZSgoX2RhdGEpID0+IHtcclxuICAgICAgaWYgKHRoaXMubGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmhpZGVMb2FkaW5nKG51bGwpO1xyXG4gICAgICAgIHRoaXMubGlzdCA9IF9kYXRhLmRhdGEucmVzdWx0O1xyXG5cclxuICAgICAgICB0aGlzLmxpc3QuZm9yRWFjaCgoZWwpID0+IHtcclxuICAgICAgICAgIGVsLmRpc2FibGVkQ2hlY2tCb3ggPSB0aGlzLnNlbGVjdGFibGVGaWVsZCAhPSAnJyA/IGVsW3RoaXMuc2VsZWN0YWJsZUZpZWxkXSA6IGZhbHNlO1xyXG4gICAgICAgICAgZWwuc2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJyAmJiBlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUpIHtcclxuICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ3BhcmVudHMnICYmIGVsW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VsZXRlZEtleUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZXRlZEtleUZpZWxkcy5mb3JFYWNoKChuOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAobi5pbmNsdWRlcyhlbFt0aGlzLmtleUZpZWxkXSkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tQYXJlbnRzID09IGZhbHNlICYmIHRoaXMuY2hlY2tDaGlsZHMgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL3NlbGVjdCBwYXJlbnQgd2hlbiBjaGVjayBjaGlsZCBhbmQgY2hlY2sgcGFyZW50IGlzIGZhbHNlIFRPRE8gY2hlY2sgdGhpcyBBY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oZWwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm9wZW4oZWwpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGVsKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkSXRlbSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEZpZWxkTmFtZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGlmIChlbFt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUgJiYgZWxbdGhpcy5zZWxlY3RlZEZpZWxkTmFtZV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrUGFyZW50cyA9PSBmYWxzZSAmJiB0aGlzLmNoZWNrQ2hpbGRzID09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAvL3NlbGVjdCBwYXJlbnQgd2hlbiBjaGVjayBjaGlsZCBhbmQgY2hlY2sgcGFyZW50IGlzIGZhbHNlIFRPRE8gY2hlY2sgdGhpcyBBY3Rpb25cclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShlbCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMub3BlbihlbCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxbdGhpcy5zZWxlY3RlZEZpZWxkTmFtZV0gPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShlbCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkSXRlbSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLml0ZW1Sb3cgPSB0aGlzLmxpc3RMb2FkLmZpbHRlcigoYykgPT4gYy5yZXF1ZXN0SWQgPT09IF9kYXRhLmRhdGEucmVxdWVzdElkKVswXTtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkID0gdGhpcy5saXN0TG9hZC5maWx0ZXIoKGMpID0+IGMucmVxdWVzdElkICE9PSBfZGF0YS5kYXRhLnJlcXVlc3RJZCk7XHJcbiAgICAgICAgdGhpcy5pdGVtUm93LmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbVJvdyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVMb2FkaW5nKHRoaXMuaXRlbVJvdyk7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBfZGF0YS5kYXRhLnJlc3VsdDtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0gJiYgdGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKChlbCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZWwuZGlzYWJsZWRDaGVja0JveCA9IHRoaXMuc2VsZWN0YWJsZUZpZWxkICE9ICcnID8gZWxbdGhpcy5zZWxlY3RhYmxlRmllbGRdIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1Sb3dbdGhpcy5jaGlsZEZpZWxkXVt0aGlzLml0ZW1Sb3dbdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGhdID0gZWw7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pdGVtUm93W3RoaXMuY2hpbGRGaWVsZF0gPSByZXN1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJyAmJiByZXN1bHRbaV1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbaV0uZGlzYWJsZWRDaGVja0JveCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25MZXZlbCA9PSAncGFyZW50cycgJiYgcmVzdWx0W2ldW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdFtpXS5kaXNhYmxlZENoZWNrQm94ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLy8gaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScgJiYgKHRoaXMuc2VsZWN0Tm9kZXNSZWN1cnNpdmUgPT0gJ2FsbCcgfHwgdGhpcy5zZWxlY3ROb2Rlc1JlY3Vyc2l2ZSA9PSAnY2hpbGRzJykpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJyAmJiB0aGlzLmNoZWNrQ2hpbGRzID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdFtpXS5zZWxlY3QgPSB0aGlzLml0ZW1Sb3cuc2VsZWN0ID09PSAodW5kZWZpbmVkIHx8IG51bGwpID8gZmFsc2UgOiB0aGlzLml0ZW1Sb3cuc2VsZWN0O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1Sb3cuc2VsZWN0ID09PSB0cnVlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSA9PSAnbXVsdGlwbGUnICYmIHJlc3VsdFtpXVt0aGlzLmhhc0NoaWxkRmllbGRdID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSByZXN1bHRbaV1bdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbaV0uc2VsZWN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJlc3VsdFtpXS5wYXJlbnROb2RlID0gdGhpcy5pdGVtUm93O1xyXG5cclxuICAgICAgICAgICAgICBpZiAodGhpcy5zZWxldGVkS2V5RmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZXRlZEtleUZpZWxkcy5mb3JFYWNoKChuOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKG4uaW5jbHVkZXMocmVzdWx0W2ldW3RoaXMua2V5RmllbGRdKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHRbaV1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja1BhcmVudHMgPT0gZmFsc2UgJiYgdGhpcy5jaGVja0NoaWxkcyA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3NlbGVjdCBwYXJlbnQgd2hlbiBjaGVjayBjaGlsZCBhbmQgY2hlY2sgcGFyZW50IGlzIGZhbHNlIFRPRE8gY2hlY2sgdGhpcyBBY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKHJlc3VsdFtpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuKHJlc3VsdFtpXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShyZXN1bHRbaV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkSXRlbSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRGaWVsZE5hbWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdFtpXVt0aGlzLmhhc0NoaWxkRmllbGRdID09IHRydWUgJiYgcmVzdWx0W2ldW3RoaXMuc2VsZWN0ZWRGaWVsZE5hbWVdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tQYXJlbnRzID09IGZhbHNlICYmIHRoaXMuY2hlY2tDaGlsZHMgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAvL3NlbGVjdCBwYXJlbnQgd2hlbiBjaGVjayBjaGlsZCBhbmQgY2hlY2sgcGFyZW50IGlzIGZhbHNlIFRPRE8gY2hlY2sgdGhpcyBBY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0ocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLm9wZW4ocmVzdWx0W2ldKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzdWx0W2ldW3RoaXMuc2VsZWN0ZWRGaWVsZE5hbWVdID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKHJlc3VsdFtpXSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZEl0ZW0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLml0ZW1Sb3cubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWRJdGVtID09IHRydWUgJiYgIXRoaXMubG9jZWQpIHtcclxuICAgICAgICB0aGlzLmxvY2VkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNlbGV0ZWRLZXlGaWVsZHNDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgICAgLy8gdmFsdWU6IHRoaXMubWFrZU5vZGUoaXRlbSksXHJcbiAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgIT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMuc2hvd1NlbGVjdEJveCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dDb250ZXh0TWVudSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvLyBvbkl0ZW1DbGljayhlLCB2KSB7XHJcblxyXG4gIC8vIH1cclxuXHJcbiAgb25EcmFnU3RhcnQoZTogRXZlbnQsIHYpIHtcclxuICAgIGlmICghdGhpcy5sb2NrZWREcmFnKSB7XHJcbiAgICAgIHRoaXMuaXRlbURyYWcgPSB2O1xyXG4gICAgICB0aGlzLm9uSXRlbURyYWcuZW1pdCh2KTtcclxuICAgIH1cclxuICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdFbmQoZSwgdikge1xyXG4gICAgaWYgKCF0aGlzLmxvY2tlZERyYWcpIHtcclxuICAgICAgdGhpcy5pdGVtRHJvcCA9IHY7XHJcbiAgICB9XHJcbiAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgZHJvcChlKSB7XHJcbiAgICAvLyAgdGhpcy5vbkl0ZW1Ecm9wLmVtaXQodGhpcy5pdGVtRHJvcCk7XHJcbiAgICBpZiAoIXRoaXMubG9ja2VkRHJhZykge1xyXG4gICAgICB0aGlzLnZhbGlkRHJvcCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2FtZUNoaWxkZSh0aGlzLml0ZW1EcmFnLCB0aGlzLml0ZW1Ecm9wKTtcclxuICAgICAgaWYgKHRoaXMudmFsaWREcm9wICYmIHRoaXMuaXRlbURyYWdbdGhpcy5rZXlGaWVsZF0gIT09IHRoaXMuaXRlbURyb3BbdGhpcy5rZXlGaWVsZF0gJiYgdGhpcy5pdGVtRHJhZy5wYXJlbnROb2RlICE9PSB0aGlzLml0ZW1Ecm9wKSB7XHJcbiAgICAgICAgY29uc3QgbW92ZWRFdmVudDogQVhUcmVlVmlld0l0ZW1Nb3ZlZEV2ZW50ID0gbmV3IEFYVHJlZVZpZXdJdGVtTW92ZWRFdmVudCgpO1xyXG4gICAgICAgIG1vdmVkRXZlbnQuc291cmNlID0gdGhpcy5tYWtlTm9kZSh0aGlzLml0ZW1EcmFnKTtcclxuICAgICAgICBtb3ZlZEV2ZW50LnRhcmdldCA9IHRoaXMubWFrZU5vZGUodGhpcy5pdGVtRHJvcCk7XHJcbiAgICAgICAgdGhpcy5sb2NrZWREcmFnID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3dMb2FkaW5nKHRoaXMuaXRlbURyYWcpO1xyXG4gICAgICAgIHRoaXMuc2hvd0xvYWRpbmcodGhpcy5pdGVtRHJvcCk7XHJcbiAgICAgICAgbW92ZWRFdmVudC5yZXNvbHZlID0gKHZhbHVlOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVMb2FkaW5nKHRoaXMuaXRlbURyYWcpO1xyXG4gICAgICAgICAgdGhpcy5oaWRlTG9hZGluZyh0aGlzLml0ZW1Ecm9wKTtcclxuICAgICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRyYWdEcm9wSXRlbSh0aGlzLml0ZW1EcmFnLCB0aGlzLml0ZW1Ecm9wKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9ja2VkRHJhZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5vbkl0ZW1Nb3ZlZC5lbWl0KG1vdmVkRXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNhbWVDaGlsZGUocGFyZW50LCBjaGlsZCkge1xyXG4gICAgaWYgKHBhcmVudFt0aGlzLmNoaWxkRmllbGRdICYmIHBhcmVudFt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHBhcmVudFt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGlmIChwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXVtpbmRleF1bdGhpcy5rZXlGaWVsZF0gPT0gY2hpbGRbdGhpcy5rZXlGaWVsZF0pIHtcclxuICAgICAgICAgIHRoaXMudmFsaWREcm9wID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXVtpbmRleF1bdGhpcy5jaGlsZEZpZWxkXSAmJiBwYXJlbnRbdGhpcy5jaGlsZEZpZWxkXVtpbmRleF1bdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNhbWVDaGlsZGUocGFyZW50W3RoaXMuY2hpbGRGaWVsZF1baW5kZXhdLCBjaGlsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHBhcmVudFt0aGlzLmtleUZpZWxkXSA9PSBjaGlsZFt0aGlzLmtleUZpZWxkXSkge1xyXG4gICAgICB0aGlzLnZhbGlkRHJvcCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJhZ0Ryb3BJdGVtKGl0ZW1DaGlsZCwgaXRlbVBhcmVudCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGV2ZWwgPT0gJ25vZGVzJykge1xyXG4gICAgICBpdGVtUGFyZW50LmRpc2FibGVkQ2hlY2tCb3ggPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpdGVtQ2hpbGQucGFyZW50Tm9kZSkge1xyXG4gICAgICBpdGVtQ2hpbGQucGFyZW50Tm9kZVt0aGlzLmNoaWxkRmllbGRdID0gaXRlbUNoaWxkLnBhcmVudE5vZGVbdGhpcy5jaGlsZEZpZWxkXS5maWx0ZXIoKGMpID0+IGNbdGhpcy5rZXlGaWVsZF0gIT09IGl0ZW1DaGlsZFt0aGlzLmtleUZpZWxkXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxpc3QgPSB0aGlzLmxpc3QuZmlsdGVyKChjKSA9PiBjW3RoaXMua2V5RmllbGRdICE9PSBpdGVtQ2hpbGRbdGhpcy5rZXlGaWVsZF0pO1xyXG4gICAgfVxyXG4gICAgaXRlbUNoaWxkLnBhcmVudE5vZGUgPSBpdGVtUGFyZW50O1xyXG4gICAgaWYgKGl0ZW1QYXJlbnRbdGhpcy5jaGlsZEZpZWxkXSAmJiBpdGVtUGFyZW50W3RoaXMuY2hpbGRGaWVsZF0ubGVuZ3RoID4gMCkge1xyXG4gICAgICBpdGVtUGFyZW50W3RoaXMuY2hpbGRGaWVsZF1baXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdLmxlbmd0aF0gPSBpdGVtQ2hpbGQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtUGFyZW50W3RoaXMuY2hpbGRGaWVsZF0gPSBbXTtcclxuICAgICAgaXRlbVBhcmVudFt0aGlzLmNoaWxkRmllbGRdWzBdID0gaXRlbUNoaWxkO1xyXG4gICAgICBpZiAoaXRlbVBhcmVudFt0aGlzLmhhc0NoaWxkRmllbGRdID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVOb2RlKGl0ZW1QYXJlbnQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0ZW1QYXJlbnQudG9nZ2xlID0gIWl0ZW1QYXJlbnQudG9nZ2xlO1xyXG4gICAgICAgIGl0ZW1QYXJlbnQubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpdGVtUGFyZW50W3RoaXMuaGFzQ2hpbGRGaWVsZF0gPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW1DaGlsZC5wYXJlbnROb2RlICYmIHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgdGhpcy5jaGFuZ2VQYXJlbnRTZWxlY3QoaXRlbUNoaWxkLnBhcmVudE5vZGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2NrZWREcmFnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3RDaGFuZ2UoZmllbGQsIHZhbHVlKSB7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5saXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB0aGlzLmNoYW5nZUNoaWxlZCh0aGlzLmxpc3RbaW5kZXhdLCBmaWVsZCwgdmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2FkQWxsQ2hpbGRyZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlQ2hpbGVkKGl0ZW0sIGZpZWxkLCB2YWx1ZSkge1xyXG4gICAgaWYgKGZpZWxkID09PSAndG9nZ2xlJyAmJiAoaXRlbS5sb2FkZWQgPT09IGZhbHNlIHx8IGl0ZW0ubG9hZGVkID09PSB1bmRlZmluZWQpKSB7XHJcbiAgICAgIGlmICh0aGlzLmxvYWRBbGxDaGlsZHJlbiA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlTm9kZShpdGVtKTtcclxuICAgICAgICBpdGVtW2ZpZWxkXSA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpdGVtW2ZpZWxkXSA9IHZhbHVlO1xyXG4gICAgICBpZiAoZmllbGQgPT09ICdzZWxlY3QnICYmIGl0ZW1bdGhpcy5oYXNDaGlsZEZpZWxkXSA9PT0gZmFsc2UgJiYgdmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGZpZWxkID09PSAnc2VsZWN0Jykge1xyXG4gICAgICBpdGVtLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtW3RoaXMuaGFzQ2hpbGRGaWVsZF0gPT09IHRydWUgJiYgaXRlbVt0aGlzLmNoaWxkRmllbGRdICYmIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGl0ZW1bdGhpcy5jaGlsZEZpZWxkXS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VDaGlsZWQoZWxlbWVudCwgZmllbGQsIHZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dMb2FkaW5nKGl0ZW0pOiB2b2lkIHtcclxuICAgIGl0ZW0ubG9hZGluZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhpZGVMb2FkaW5nKGl0ZW0pOiB2b2lkIHtcclxuICAgIGlmIChpdGVtICE9IG51bGwpIHtcclxuICAgICAgaXRlbS5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbkFsbChsb2FkQWxsOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIC8vIGlmIChsb2FkQWxsKSB7XHJcbiAgICAvLyB0aGlzLmxvYWRBbGxDaGlsZHJlbiA9IHRydWU7XHJcbiAgICAvLyB0aGlzLmxpc3RDaGFuZ2UoJ3RvZ2dsZScsIHRydWUpO1xyXG4gICAgLy99IGVsc2Uge1xyXG4gICAgdGhpcy5saXN0Q2hhbmdlKCd0b2dnbGUnLCB0cnVlKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RJdGVtKGl0ZW0pIHtcclxuICAgIGlmIChpdGVtWydzZWxlY3QnXSAhPSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJuYWxTZWxlY3RJdGVtKGl0ZW0sIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB1blNlbGVjdEl0ZW0oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW1bJ3NlbGVjdCddID09IHRydWUpIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbFNlbGVjdEl0ZW0oaXRlbSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW4oaXRlbSkge1xyXG4gICAgaWYgKGl0ZW1bJ3RvZ2dsZSddICE9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlTm9kZShpdGVtLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzY3JvbEludG9WaWV3KGl0ZW0pIHtcclxuICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbGlbZGF0YS1pZD0nJHtpdGVtW3RoaXMua2V5RmllbGRdfSddYCk7XHJcbiAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VBbGwoKSB7XHJcbiAgICB0aGlzLmxpc3RDaGFuZ2UoJ3RvZ2dsZScsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlICE9PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLmxpc3RDaGFuZ2UoJ3NlbGVjdCcsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVuU2VsZWN0QWxsKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSAhPT0gJ3NpbmdsZScpIHtcclxuICAgICAgdGhpcy5saXN0Q2hhbmdlKCdzZWxlY3QnLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3RlZE5vZGVzKCk6IEFYVHJlZVZpZXdOb2RlW10ge1xyXG4gICAgY29uc3Qgc2VsZWN0SXRlbXNOb2RlID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICBzZWxlY3RJdGVtc05vZGUucHVzaCh0aGlzLm1ha2VOb2RlKGUpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHNlbGVjdEl0ZW1zTm9kZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3RlZFBhcmVudHMoKTogQVhUcmVlVmlld05vZGVbXSB7XHJcbiAgICBjb25zdCBzZWxlY3RJdGVtc1BhcmVudCA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZFBhcmVudHMuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICBzZWxlY3RJdGVtc1BhcmVudC5wdXNoKHRoaXMubWFrZU5vZGUoZSkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gc2VsZWN0SXRlbXNQYXJlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRQYXJlbnRzSWQoaXRlbSkge1xyXG4gICAgbGV0IGtleUZpZWxkcyA9IFtdO1xyXG4gICAga2V5RmllbGRzLnB1c2goaXRlbVt0aGlzLmtleUZpZWxkXSk7XHJcbiAgICBpZiAoaXRlbS5wYXJlbnROb2RlKSB7XHJcbiAgICAgIGtleUZpZWxkcy5wdXNoKC4uLnRoaXMuZ2V0UGFyZW50c0lkKGl0ZW0ucGFyZW50Tm9kZSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGtleUZpZWxkcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3RlZEtleUZpZWxkcygpIHtcclxuICAgIGxldCBrZXlGaWVsZHMgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChlbG0pID0+IHtcclxuICAgICAgdmFyIElkcyA9IHRoaXMuZ2V0UGFyZW50c0lkKGVsbSk7XHJcbiAgICAgIGlmIChJZHMpIHtcclxuICAgICAgICBrZXlGaWVsZHMucHVzaChJZHMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBrZXlGaWVsZHM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -129,7 +129,7 @@ var AXCheckBoxComponent = /** @class */ (function (_super) {
|
|
|
129
129
|
AXCheckBoxComponent = __decorate([
|
|
130
130
|
Component({
|
|
131
131
|
selector: 'ax-check-box',
|
|
132
|
-
template: "<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\r\n (click)=\"handleClick($event)\">\r\n {{ label }}\r\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\r\n [disabled]=\"disabled || readonly\" />\r\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\r\n\r\n</label> -->\r\n\r\n<label for=\"{{uid}}\" class=\"ax-checkbox-container\" (click)=\"handleClick($event)\">\r\n <input #input type=\"checkbox\" class=\"ax-checkbox\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"\r\n id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\" [(ngModel)]=\"value\" [disabled]=\"disabled || readonly\" />\r\n <span>{{ label ? label : ' ' }}</span>\r\n</label>",
|
|
132
|
+
template: "<!-- <label class=\"ax checkbox {{size}}\" for=\"{{uid}}\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\r\n (click)=\"handleClick($event)\">\r\n {{ label }}\r\n <input #input type=\"checkbox\" id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\"\r\n [disabled]=\"disabled || readonly\" />\r\n <span class=\"checkmark\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"></span>\r\n\r\n</label> -->\r\n\r\n<label for=\"{{uid}}\" class=\"ax-checkbox-container\" [ngClass]=\"{ 'disabled': disabled, 'readonly': readonly }\"\r\n (click)=\"handleClick($event)\">\r\n <input #input type=\"checkbox\" class=\"ax-checkbox\" [ngClass]=\"{'indeterminate': indeterminate && value == null}\"\r\n id=\"{{uid}}\" [readonly]=\"readonly\" [checked]=\"value\" [(ngModel)]=\"value\" [disabled]=\"disabled || readonly\" />\r\n <span>{{ label ? label : ' ' }}</span>\r\n</label>",
|
|
133
133
|
encapsulation: ViewEncapsulation.None,
|
|
134
134
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
135
135
|
}),
|
|
@@ -138,4 +138,4 @@ var AXCheckBoxComponent = /** @class */ (function (_super) {
|
|
|
138
138
|
return AXCheckBoxComponent;
|
|
139
139
|
}(AXBaseComponent));
|
|
140
140
|
export { AXCheckBoxComponent };
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQStELE1BQU0sdUJBQXVCLENBQUM7QUFDckgsT0FBTyxFQUFnQixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRTtJQUF5Qyx1Q0FBdUI7SUFBaEU7O0lBRUEsQ0FBQztJQUFELDBCQUFDO0FBQUQsQ0FBQyxBQUZELENBQXlDLFdBQVcsR0FFbkQ7O0FBUUQ7SUFBeUMsdUNBQWU7SUFzQnRELDZCQUFzQixHQUFzQixFQUFVLEdBQWU7UUFBckUsWUFDRSxpQkFBTyxTQUNSO1FBRnFCLFNBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsU0FBRyxHQUFILEdBQUcsQ0FBWTtRQWxCckUsY0FBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixjQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLFVBQUksR0FBa0IsSUFBSSxDQUFDO1FBRzNCLFdBQUssR0FBVyxFQUFFLENBQUM7UUFHbkIsY0FBUSxHQUFXLENBQUMsQ0FBQztRQUdyQixtQkFBYSxHQUFZLEtBQUssQ0FBQztRQU0vQixRQUFRO1FBRVIsb0JBQWMsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFaEcsaUJBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNqRSxFQUFFO1FBRUYsYUFBTyxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUU3RSxZQUFNLEdBQWEsS0FBSyxDQUFDOztJQVZqQyxDQUFDO0lBSEQsbUNBQUssR0FBTCxjQUFlLENBQUM7SUFjaEIsc0JBQVcsc0NBQUs7YUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQzthQUdELFVBQWlCLENBQVU7WUFDekIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUN2QyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO29CQUN2QixTQUFTLEVBQUUsSUFBSTtvQkFDZixLQUFLLEVBQUUsQ0FBQztvQkFDUixRQUFRLEVBQUUsR0FBRztvQkFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO2lCQUNwQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUM7OztPQWZBO0lBaUJELG9CQUFvQjtJQUNwQixrQ0FBa0M7SUFDbEMsc0JBQXNCO0lBQ3RCLElBQUk7SUFFSixzQ0FBUSxHQUFSO1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQseUNBQVcsR0FBWCxVQUFZLENBQWE7UUFBekIsaUJBZUM7UUFkQyxzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLFVBQVUsQ0FBQztZQUNULElBQUksQ0FBQyxLQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSSxDQUFDLFFBQVEsRUFBRTtnQkFDcEMsMkJBQTJCO2dCQUMzQiw0QkFBNEI7Z0JBQzVCLEtBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNoQixTQUFTLEVBQUUsS0FBSTtvQkFDZixXQUFXLEVBQUUsS0FBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO29CQUNuQyxTQUFTLEVBQUUsQ0FBQztvQkFDWixLQUFLLEVBQUUsS0FBSSxDQUFDLEtBQUs7aUJBQ2xCLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs7Z0JBMUQwQixpQkFBaUI7Z0JBQWUsVUFBVTs7SUFyQi9CO1FBQXJDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7a0NBQVEsVUFBVTtzREFBbUI7SUFHMUU7UUFEQyxLQUFLLEVBQUU7O3lEQUNrQjtJQUcxQjtRQURDLEtBQUssRUFBRTs7eURBQ2tCO0lBRzFCO1FBREMsS0FBSyxFQUFFOztxREFDbUI7SUFHM0I7UUFEQyxLQUFLLEVBQUU7O3NEQUNXO0lBR25CO1FBREMsS0FBSyxFQUFFOzt5REFDYTtJQUdyQjtRQURDLEtBQUssRUFBRTs7OERBQ3VCO0lBUS9CO1FBREMsTUFBTSxFQUFFO2tDQUNPLFlBQVk7K0RBQW9FO0lBRWhHO1FBREMsTUFBTSxFQUFFO2tDQUNJLFlBQVk7NERBQXdDO0lBR2pFO1FBREMsTUFBTSxFQUFFO2tDQUNBLFlBQVk7d0RBQWdFO0lBUXJGO1FBREMsS0FBSyxFQUFFOzs7b0RBYVA7SUFwRFUsbUJBQW1CO1FBTi9CLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxjQUFjO1lBQ3hCLDI1QkFBd0M7WUFDeEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7WUFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07U0FDaEQsQ0FBQzt5Q0F1QjJCLGlCQUFpQixFQUFlLFVBQVU7T0F0QjFELG1CQUFtQixDQWlGL0I7SUFBRCwwQkFBQztDQUFBLEFBakZELENBQXlDLGVBQWUsR0FpRnZEO1NBakZZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEJhc2VWYWx1ZUNvbXBvbmVudCwgQVhFbGVtZW50U2l6ZSB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYVmFsdWVFdmVudCwgQVhIdG1sRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgQVhDaGVja0JveEl0ZW1DbGljayBleHRlbmRzIEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+IHtcclxuICB2YWx1ZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtY2hlY2stYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ2hlY2tCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEJhc2VWYWx1ZUNvbXBvbmVudDxib29sZWFuPiB7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGluZGV0ZXJtaW5hdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZm9jdXMoKTogdm9pZCB7fVxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbiAgLy8gVmFsdWVcclxuICBAT3V0cHV0KClcclxuICBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxib29sZWFuPj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxib29sZWFuPj4oKTtcclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIC8vXHJcbiAgQE91dHB1dCgpXHJcbiAgb25DbGljazogRXZlbnRFbWl0dGVyPEFYQ2hlY2tCb3hJdGVtQ2xpY2s+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWENoZWNrQm94SXRlbUNsaWNrPigpO1xyXG5cclxuICBwcml2YXRlIF92YWx1ZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IGJvb2xlYW4pIHtcclxuICAgIGlmICh2ICE9IHRoaXMuX3ZhbHVlIHx8IHYgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZTtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB2LFxyXG4gICAgICAgIG9sZFZhbHVlOiBvbGQsXHJcbiAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBoYW5kZWxDaGFuZ2UoZSkge1xyXG4gIC8vICAgY29uc3QgdmFsID0gZS50YXJnZXQuY2hlY2tlZDtcclxuICAvLyAgIHRoaXMudmFsdWUgPSB2YWw7XHJcbiAgLy8gfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pbmRldGVybWluYXRlICYmIHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGljayhlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICAvLyBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAvLyBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSkge1xyXG4gICAgICAgIC8vVE9ETzogY2hlY2sgaW50ZXJtZGRpYXRlO1xyXG4gICAgICAgIC8vIHRoaXMudmFsdWUgPSAhdGhpcy52YWx1ZTtcclxuICAgICAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgIGh0bWxFdmVudDogZSxcclxuICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|