@ieeesa-npm/presentation 0.24.8 → 0.24.9
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/esm2022/lib/components/filter/filter.component.mjs +10 -3
- package/esm2022/lib/components/multi-select-autocomplete/multi-select-autocomplete.component.mjs +11 -4
- package/esm2022/lib/components/select/select.component.mjs +3 -3
- package/fesm2022/ieeesa-npm-presentation.mjs +21 -7
- package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -1
- package/lib/components/filter/filter.component.d.ts +1 -0
- package/lib/components/multi-select-autocomplete/multi-select-autocomplete.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -79,6 +79,7 @@ export class FilterComponent {
|
|
|
79
79
|
this.filterButton = this.constants?.filter?.buttons[0];
|
|
80
80
|
this.canShowSelection = false;
|
|
81
81
|
this.selectedFilterDropDownList = [];
|
|
82
|
+
this.defaultSelectedFilterDropDownOptions = [];
|
|
82
83
|
this.prevSelectedFilterOptionsList = [];
|
|
83
84
|
this.selectedFilter = new EventEmitter();
|
|
84
85
|
this.filteredOptions = new EventEmitter();
|
|
@@ -244,8 +245,14 @@ export class FilterComponent {
|
|
|
244
245
|
* @memberof FilterComponent
|
|
245
246
|
*/
|
|
246
247
|
onDropdownOpenedChange(event) {
|
|
247
|
-
if (
|
|
248
|
-
this.
|
|
248
|
+
if (this.defaultSelectedFilterDropDownOptions?.length === 0) {
|
|
249
|
+
this.defaultSelectedFilterDropDownOptions =
|
|
250
|
+
this.selectedFilterDropDownList;
|
|
251
|
+
}
|
|
252
|
+
if (!event?.opened) {
|
|
253
|
+
this.selectedFilterDropDownList =
|
|
254
|
+
this.defaultSelectedFilterDropDownOptions;
|
|
255
|
+
}
|
|
249
256
|
if (!event?.opened &&
|
|
250
257
|
this.selectComponent?.formFields?.toArray()?.[0]?.searchTerm) {
|
|
251
258
|
this.selectComponent.formFields.toArray()[0].searchTerm = '';
|
|
@@ -292,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
292
299
|
}], filterDropdownSearch: [{
|
|
293
300
|
type: Output
|
|
294
301
|
}] } });
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixpQkFBaUIsRUFDakIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFDLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBRXpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxP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QUFDLEVBQUUsVUFBVSxFQUM1RDtZQUNBLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FDOUQ7SUFDSCxDQUFDOytHQXJQVSxlQUFlO21HQUFmLGVBQWUsaWhCQWVmLGVBQWUsZ0RDdEU1QixndkZBeUVBLDRnU0RqQ0ksWUFBWSxnT0FDWixpQkFBaUIsOEJBQ2pCLGFBQWEsOEJBQ2IsZUFBZSw0UUFDZixjQUFjLDZTQUNkLGlCQUFpQiw4T0FDakIsbUJBQW1CLHFJQUNuQixtQkFBbUIsOEJBQ25CLGVBQWUsK0JBQ2YsZUFBZTs7NEZBTU4sZUFBZTtrQkFuQjNCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixlQUFlO3FCQUNoQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJO2dKQWlCVCxlQUFlO3NCQUExQyxTQUFTO3VCQUFDLGVBQWU7Z0JBSWIsZ0JBQWdCO3NCQUE1QixLQUFLO2dCQVFGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBTUYscUJBQXFCO3NCQUR4QixLQUFLO2dCQXlCSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2hlY2tib3hPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hlY2tib3gtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJy4uLy4uL21vZGVscy9pY29uLWJ1dHRvbi5tb2RlbCc7XHJcbmltcG9ydCB7IENoaXBPcHRpb24sIEZpbHRlck9wdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2hpcC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBDaGlwc0NvbXBvbmVudCB9IGZyb20gJy4uL2NoaXBzL2NoaXBzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBGaWx0ZXJzQW5kT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXJzLW9wdGlvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcGVuZWRTdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3Qtb3BlbmVkLXN0YXRlLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgZ3JvdXAgb2YgZmlsdGVyLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBGaWx0ZXJDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWZpbHRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBDaGlwc0NvbXBvbmVudCxcclxuICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBTZWxlY3RDb21wb25lbnQsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIGFycm93OiBJY29uQnV0dG9uID0gdGhpcy5jb25zdGFudHM/LmNoaXBzPy5pY29ucz8uYXJyb3c7XHJcbiAgY2hlY2s6IEljb25CdXR0b24gPSB0aGlzLmNvbnN0YW50cz8uY2hpcHM/Lmljb25zPy5jaGVjaztcclxuICByZW1vdmVJY29uOiBJY29uQnV0dG9uID0gdGhpcy5jb25zdGFudHM/LmNoaXBzPy5pY29ucz8ucmVtb3ZlO1xyXG4gIGlzRmlsdGVyT3BlbmVkID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRDaGVja2JveGVzITogQ2hlY2tib3hPcHRpb25bXTtcclxuICBvbkZpbHRlclRvZ2dsZSA9IGZhbHNlO1xyXG4gIGlzRmlsdGVyQWN0aXZlID0gZmFsc2U7XHJcbiAgaXNNb2JpbGVWaWV3ID0gZmFsc2U7XHJcbiAgaXNBcHBseUJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuICBmaWx0ZXJzQW5kT3B0aW9ucyA9IG5ldyBNYXA8bnVtYmVyIHwgc3RyaW5nLCBDaGVja2JveE9wdGlvbltdPigpO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICByZWNyZWF0ZUNoZWNrYm94T3B0aW9uc0NvbnRyb2whOiBDaGVja2JveE9wdGlvbltdO1xyXG4gIEBWaWV3Q2hpbGQoU2VsZWN0Q29tcG9uZW50KSBzZWxlY3RDb21wb25lbnQhOiBTZWxlY3RDb21wb25lbnQ7XHJcbiAgcHJpdmF0ZSBmaWx0ZXJlZFR5cGVPcHRpb25zSW5mbyE6IENoaXBPcHRpb25bXTtcclxuICBwcml2YXRlIHNlbGVjdGVkRmlsdGVyT3B0aW9uVHlwZTogRmlsdGVyT3B0aW9uVHlwZSA9XHJcbiAgICBGaWx0ZXJPcHRpb25UeXBlLkNIRUNLQk9YO1xyXG4gIEBJbnB1dCgpIHNldCBmaWx0ZXJPcHRpb25UeXBlKG9wdGlvblR5cGU6IEZpbHRlck9wdGlvblR5cGUpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJPcHRpb25UeXBlID0gb3B0aW9uVHlwZTtcclxuICB9XHJcbiAgZ2V0IGZpbHRlck9wdGlvblR5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvblR5cGU7XHJcbiAgfVxyXG4gIG9wdGlvbnNUeXBlID0gRmlsdGVyT3B0aW9uVHlwZTtcclxuICBASW5wdXQoKVxyXG4gIHNldCBhcHBsaWVkRmlsdGVyT3B0aW9ucyhvcHRpb25zOiBDaGlwT3B0aW9uW10pIHtcclxuICAgIHRoaXMuZmlsdGVyZWRUeXBlT3B0aW9uc0luZm8gPSBvcHRpb25zO1xyXG4gIH1cclxuICBnZXQgYXBwbGllZEZpbHRlck9wdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZFR5cGVPcHRpb25zSW5mbztcclxuICB9XHJcbiAgQElucHV0KCkgZmlsdGVyQnV0dG9uOiBJY29uQnV0dG9uID0gdGhpcy5jb25zdGFudHM/LmZpbHRlcj8uYnV0dG9uc1swXTtcclxuICBASW5wdXQoKSBmaWx0ZXJzITogQ2hpcE9wdGlvbltdO1xyXG4gIEBJbnB1dCgpIGNhblNob3dTZWxlY3Rpb24gPSBmYWxzZTtcclxuICBwcml2YXRlIHNlbGVjdGVkRmlsdGVyT3B0aW9uc0xpc3QhOiBDaGVja2JveE9wdGlvbltdO1xyXG4gIHNlbGVjdGVkRmlsdGVyRHJvcERvd25MaXN0OiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIHNlbGVjdGVkRmlsdGVySWQhOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgcHJldlNlbGVjdGVkRmlsdGVyT3B0aW9uc0xpc3Q6IENoZWNrYm94T3B0aW9uW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWxlY3RlZEZpbHRlck9wdGlvbnMob3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSkge1xyXG4gICAgaWYgKG9wdGlvbnMgJiYgdGhpcy5zZWxlY3RlZEZpbHRlcklkKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyc0FuZE9wdGlvbnMuc2V0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJJZCwgb3B0aW9ucyk7XHJcbiAgICAgIHRoaXMuc2V0RmlsdGVyU2VsZWN0aW9uT25PcHRpb25DaGFuZ2UoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnNMaXN0ID0gb3B0aW9ucztcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMucHJldlNlbGVjdGVkRmlsdGVyT3B0aW9uc0xpc3QubGVuZ3RoICYmXHJcbiAgICAgICAgdGhpcy5wcmV2U2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdFswXS5uYW1lICE9PVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnNMaXN0Py5bMF0/Lm5hbWVcclxuICAgICAgKVxyXG4gICAgICAgIHRoaXMucmVjcmVhdGVDaGVja2JveE9wdGlvbnNDb250cm9sID0gb3B0aW9ucztcclxuICAgICAgdGhpcy5wcmV2U2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdCA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbHRlck9wdGlvblR5cGUgPT09IHRoaXMub3B0aW9uc1R5cGUuRFJPUERPV04pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlckRyb3BEb3duTGlzdCA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdC5tYXAoXHJcbiAgICAgICAgKHNlbGVjdE9wdGlvbjogQ2hlY2tib3hPcHRpb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiB7IGlkOiBzZWxlY3RPcHRpb24uaWQsIG5hbWU6IHNlbGVjdE9wdGlvbi5uYW1lID8/ICcnIH07XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdDtcclxuICB9XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwT3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJlZE9wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlcnNBbmRPcHRpb25zW10+KCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZUZpbHRlcmVkT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJEcm9wZG93blNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWZlcmVuY2U6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gcmVzdWx0Lm1hdGNoZXM7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJCdXR0b24uZGlzYWJsZWQgPSAhdGhpcy5pc01vYmlsZVZpZXc7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPbkZpbHRlclNlbGVjdGVkIHJlY2VpdmVzIHRoZSBzZWxlY3RlZCBmaWx0ZXIgZnJvbSBjaGlwIGNvbXBvbmVudCwgZW1pdHMgdGhlIHNlbGVjdGVkIGZpbHRlciBhbmQgdG9nZ2xlIHRoZSBpc0ZpbHRlckJ5T3B0aW9uc1Zpc2libGUgc3RhdGUuXHJcbiAgICogQHBhcmFtIHtDaGlwT3B0aW9ufSB0eXBlXHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsdGVyU2VsZWN0ZWQodHlwZTogQ2hpcE9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcklkID0gdHlwZS5pZDtcclxuICAgIGlmICh0eXBlLmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlci5lbWl0KHR5cGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0ZpbHRlck9wZW5lZCA9IHR5cGU/LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmZpbHRlck9wdGlvblR5cGUgPSB0eXBlLm9wdGlvblR5cGUgPz8gdGhpcy5vcHRpb25zVHlwZS5DSEVDS0JPWDtcclxuICAgIHRoaXMub25GaWx0ZXJUb2dnbGUgPSBmYWxzZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogT25SZW1vdmFsT2ZGaWx0ZXJlZE9wdGlvbiBtZXRob2QgcmVjZWl2ZXMgcmVtb3ZlZCBjaGlwIGZyb20gY2hpcCBjb21wb25lbnQgYW5kIGVtaXRzIHRoZSBldmVudCB3aXRoIHJlbW92ZWQgY2hpcC5cclxuICAgKiBAcGFyYW0ge0NoaXBPcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBGaWx0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBvblJlbW92YWxPZkZpbHRlcmVkT3B0aW9uKG9wdGlvbjogQ2hpcE9wdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKG9wdGlvbj8ubmFtZSA9PT0gdGhpcy5jb25zdGFudHM/LmZpbHRlcj8ubGFiZWw/LmNsZWFyQWxsKSB7XHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5maWx0ZXJzQW5kT3B0aW9ucy5mb3JFYWNoKChvcHRpb25zOiBDaGVja2JveE9wdGlvbltdKSA9PiB7XHJcbiAgICAgICAgb3B0aW9ucz8uZm9yRWFjaCgob3B0aW9uOiBDaGVja2JveE9wdGlvbikgPT4gKG9wdGlvbi5jaGVja2VkID0gZmFsc2UpKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyZWRPcHRpb24uZW1pdChbXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJPcHRpb25zID0gdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKHJlczogQ2hpcE9wdGlvbikgPT4gcmVzLmlkICE9PSBvcHRpb24uaWRcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucyA9XHJcbiAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucy5sZW5ndGggPT09IDEgPyBbXSA6IHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnM7XHJcbiAgICAgIHRoaXMuZmlsdGVyc0FuZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSkgPT4ge1xyXG4gICAgICAgIG9wdGlvbnM/LmZvckVhY2goKGNoZWNrQm94T3B0aW9uOiBDaGVja2JveE9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoZWNrQm94T3B0aW9uLmlkID09PSBvcHRpb24uaWQpIGNoZWNrQm94T3B0aW9uLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyZWRPcHRpb24uZW1pdCh0aGlzLmdldExpc3RPZlNlbGVjdGVkQ2hlY2tib3hlcygpKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RmlsdGVyU2VsZWN0aW9uT25PcHRpb25DaGFuZ2UoKTtcclxuICB9XHJcbiAgZ2V0TGlzdE9mU2VsZWN0ZWRDaGVja2JveGVzKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzQW5kT3B0aW9uczogRmlsdGVyc0FuZE9wdGlvbnNbXSA9IFtdO1xyXG4gICAgdGhpcy5maWx0ZXJzQW5kT3B0aW9ucy5mb3JFYWNoKFxyXG4gICAgICAodmFsdWU6IENoZWNrYm94T3B0aW9uW10sIGtleTogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgICAgICAgdmFsdWU/LmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbi5jaGVja2VkKSBzZWxlY3RlZE9wdGlvbnMucHVzaChvcHRpb24pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoKVxyXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzQW5kT3B0aW9ucy5wdXNoKHsgW2tleV06IHNlbGVjdGVkT3B0aW9ucyB9KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHJldHVybiBzZWxlY3RlZEZpbHRlcnNBbmRPcHRpb25zO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPbkZpbHRlckFwcGx5IHRvZ2dsZXMgdGhlIGlzRmlsdGVyQnlPcHRpb25zVmlzaWJsZSBzdGF0ZSwgZW1pdHMgdGhlIHNlbGVjdGVkIGZpbHRlciBvcHRpb25zIGFuZCB0b2dnbGVzIHRoZSBmaWx0ZXIgc3RhdGVPXHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsdGVyQXBwbHkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRmlsdGVyT3BlbmVkID0gIXRoaXMuaXNGaWx0ZXJPcGVuZWQ7XHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5lbWl0KHRoaXMuZ2V0TGlzdE9mU2VsZWN0ZWRDaGVja2JveGVzKCkpO1xyXG4gICAgdGhpcy5vbkZpbHRlclRvZ2dsZSA9IHRydWU7XHJcbiAgICB0aGlzLmlzQXBwbHlCdXR0b25EaXNhYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmZXJlbmNlLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2VsZWN0ZWRGaWx0ZXJPcHRpb25zIG1ldGhvZCBpcyBjYWxsZWQgZm9yIGV2ZXJ5IHNlbGVjdGlvbiBhbmQgZGVzZWxlY3Rpb24gb2YgZmlsdGVyIG9wdGlvbiBhbmQgc3RvcmVzIHRoZSBzZWxlY3RlZCBmaWx0ZXIgb3B0aW9ucy5cclxuICAgKiBAcGFyYW0ge0ZpbHRlcnNBbmRPcHRpb25zW119IHZhbHVlc1xyXG4gICAqIEBtZW1iZXJvZiBGaWx0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBzZWxlY3RlZEZpbHRlck9wdGlvbnNJbmZvKHZhbHVlczogQ2hlY2tib3hPcHRpb25bXSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ2V0TGlzdE9mU2VsZWN0ZWRDaGVja2JveGVzKCkubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aGlzLmlzQXBwbHlCdXR0b25EaXNhYmxlZCA9IHRydWU7XHJcbiAgICBlbHNlIHRoaXMuaXNBcHBseUJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBpZiAodmFsdWVzICYmIHRoaXMuc2VsZWN0ZWRGaWx0ZXJJZCkge1xyXG4gICAgICB0aGlzLmZpbHRlcnNBbmRPcHRpb25zLnNldCh0aGlzLnNlbGVjdGVkRmlsdGVySWQsIHZhbHVlcyk7XHJcbiAgICAgIHRoaXMuc2V0RmlsdGVyU2VsZWN0aW9uT25PcHRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogT25GaWx0ZXJCeUljb25DbGljayBtZXRob2QgdG9nZ2xlcyB0aGUgaXNGaWx0ZXJBY3RpdmUgdmFsdWUuXHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsdGVyQnlJY29uQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRmlsdGVyQWN0aXZlID0gIXRoaXMuaXNGaWx0ZXJBY3RpdmU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgRmlsdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbkRyb3Bkb3duU2VsZWN0aW9uQ2hhbmdlKCkgaXMgY2FsbGVkIGZvciBldmVyeSBkcm9wIGRvd24gc2VsZWN0aW9uIGNoYW5nZXMgYW5kIHNldHMgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdC5cclxuICAgKiBAbWVtYmVyb2YgRmlsdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Ecm9wZG93blNlbGVjdGlvbkNoYW5nZShvcHRpb246IFNlbGVjdE9wdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKG9wdGlvbiAmJiB0aGlzLnNlbGVjdGVkRmlsdGVySWQpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb246IENoZWNrYm94T3B0aW9uW10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWQ6IG9wdGlvbi5pZCxcclxuICAgICAgICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxyXG4gICAgICAgICAgY2hlY2tlZDogdHJ1ZSxcclxuICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsdGVyT3B0aW9uc0xpc3Q/Lm1hcCgob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gc2VsZWN0ZWRPcHRpb25bMF0uaWQpIHtcclxuICAgICAgICAgIG9wdGlvbi5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9uLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmlzQXBwbHlCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmZpbHRlcnNBbmRPcHRpb25zLnNldCh0aGlzLnNlbGVjdGVkRmlsdGVySWQsIHNlbGVjdGVkT3B0aW9uKTtcclxuICAgICAgdGhpcy5zZXRGaWx0ZXJTZWxlY3Rpb25Pbk9wdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0RmlsdGVyU2VsZWN0aW9uT25PcHRpb25DaGFuZ2UoKSBjYWxsZWQgb24gZXZlcnkgc2VsZWN0aW9uIGFuZCBkZXNlbGVjdGlvbiBvZiBmaWx0ZXIgb3B0aW9uIGFuZCBzZXRzIGNhblNob3dTZWxlY3Rpb24gZmxhZyB0byBzaG93IG9yIGhpZGUgdGhlIHRpY2sgbWFyayBvZiBzZWxlY3RlZCBmaWx0ZXIgb3B0aW9uLlxyXG4gICAqIEBtZW1iZXJvZiBGaWx0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBzZXRGaWx0ZXJTZWxlY3Rpb25Pbk9wdGlvbkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNhblNob3dTZWxlY3Rpb24pIHtcclxuICAgICAgZm9yIChjb25zdCBba2V5LCBvcHRpb25zXSBvZiB0aGlzLmZpbHRlcnNBbmRPcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyT3B0aW9uID0gdGhpcy5maWx0ZXJzLmZpbmQoKGNoaXBPcHRpb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBjaGlwT3B0aW9uLm5hbWUgPT09IGtleTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZmlsdGVyT3B0aW9uKSB7XHJcbiAgICAgICAgICBmaWx0ZXJPcHRpb24uY2FuU2hvd1NlbGVjdGlvbiA9IG9wdGlvbnMuc29tZShcclxuICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmNoZWNrZWQgPT09IHRydWVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBmaWx0ZXJEcm9wZG93blNlYXJjaCBldmVudCB3aXRoIHRoZSBzZWFyY2hlZCB0ZXh0IHZhbHVlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hUZXh0XHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25TZWFyY2goc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlckRyb3Bkb3duU2VhcmNoLmVtaXQoc2VhcmNoVGV4dCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZpbHRlckRyb3Bkb3duU2VhcmNoIGV2ZW50IHRvIHJlc2V0IHRoZSBkcm9wZG93biBvcHRpb25zIHRvIGRlZmF1bHQgd2hlbiB0aGUgZHJvcGRvd24gaXMgY2xvc2VkIGFuZCBzZXRzIHNlYXJjaCB0ZXJtIGVtcHR5LlxyXG4gICAqIEBwYXJhbSB7U2VsZWN0T3BlbmVkU3RhdGV9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoZXZlbnQ6IFNlbGVjdE9wZW5lZFN0YXRlKTogdm9pZCB7XHJcbiAgICBpZiAoIWV2ZW50Py5vcGVuZWQpIHRoaXMuZmlsdGVyRHJvcGRvd25TZWFyY2guZW1pdCgnJyk7XHJcbiAgICBpZiAoXHJcbiAgICAgICFldmVudD8ub3BlbmVkICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0Q29tcG9uZW50Py5mb3JtRmllbGRzPy50b0FycmF5KCk/LlswXT8uc2VhcmNoVGVybVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0Q29tcG9uZW50LmZvcm1GaWVsZHMudG9BcnJheSgpWzBdLnNlYXJjaFRlcm0gPSAnJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1maWx0ZXJcIiAqbmdJZj1cImZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGggPiAwXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1zbS1jb2x1bW4gZmxleC1tZC1jb2x1bW4gZmxleC1sZy1yb3cgZmxleC14bC1yb3dcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICBbaWNvbkJ1dHRvbl09XCJmaWx0ZXJCdXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkZpbHRlckJ5SWNvbkNsaWNrKClcIlxyXG4gICAgICA+PC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDxwXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtbGFiZWwtbGctYm9sZC0xNiBtLTBcIlxyXG4gICAgICAgICpuZ0lmPVwiIWlzTW9iaWxlVmlldyB8fCBpc0ZpbHRlckFjdGl2ZVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBjb25zdGFudHM/LmZpbHRlcj8ubGFiZWw/LmZpbHRlckJ5IH19XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAhaXNNb2JpbGVWaWV3XHJcbiAgICAgICAgICA/ICdkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyJ1xyXG4gICAgICAgICAgOiAnZC1mbGV4IGFsaWduLXNlbGYtc3RyZXRjaCBmbGV4LXdyYXAgYWxpZ24taXRlbXMtY2VudGVyIHB0LXNtLTIgcHQtbWQtMiBwdC0yJ1xyXG4gICAgICBcIlxyXG4gICAgICAqbmdJZj1cIiFpc01vYmlsZVZpZXcgfHwgaXNGaWx0ZXJBY3RpdmVcIlxyXG4gICAgPlxyXG4gICAgICA8aWVlZXNhLWNoaXBzXHJcbiAgICAgICAgW2NoaXBHcm91cF09XCJmaWx0ZXJzXCJcclxuICAgICAgICBbYXJyb3ddPVwiYXJyb3dcIlxyXG4gICAgICAgIFtjaGVja109XCJjaGVja1wiXHJcbiAgICAgICAgW2hhc0NoaXBUb2dnbGVkXT1cIm9uRmlsdGVyVG9nZ2xlXCJcclxuICAgICAgICAoc2VsZWN0ZWRDaGlwKT1cIm9uRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1jaGlwcz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNNb2JpbGVWaWV3IHx8IGlzRmlsdGVyQWN0aXZlXCI+XHJcbiAgICA8aWVlZXNhLWNoZWNrYm94XHJcbiAgICAgIFtjaGVja2JveGVzXT1cInNlbGVjdGVkRmlsdGVyT3B0aW9uc1wiXHJcbiAgICAgIFtyZWNyZWF0ZUNoZWNrYm94T3B0aW9uc0NvbnRyb2xdPVwicmVjcmVhdGVDaGVja2JveE9wdGlvbnNDb250cm9sXCJcclxuICAgICAgKGNoZWNrYm94T3B0aW9uc0FuZFNlbGVjdGlvbik9XCJzZWxlY3RlZEZpbHRlck9wdGlvbnNJbmZvKCRldmVudClcIlxyXG4gICAgICAqbmdJZj1cImlzRmlsdGVyT3BlbmVkICYmIGZpbHRlck9wdGlvblR5cGUgPT09IG9wdGlvbnNUeXBlLkNIRUNLQk9YXCJcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZ2FwLTIgaWVlZXNhLWZpbHRlcl9fZmlsdGVyLW9wdGlvbnNcIlxyXG4gICAgPjwvaWVlZXNhLWNoZWNrYm94PlxyXG4gICAgPGllZWVzYS1zZWxlY3RcclxuICAgICAgKm5nSWY9XCJpc0ZpbHRlck9wZW5lZCAmJiBmaWx0ZXJPcHRpb25UeXBlID09PSBvcHRpb25zVHlwZS5EUk9QRE9XTlwiXHJcbiAgICAgIFtpc1NvcnROZWVkZWRdPVwiZmFsc2VcIlxyXG4gICAgICBbZHJvcGRvd25PcHRpb25zXT1cInNlbGVjdGVkRmlsdGVyRHJvcERvd25MaXN0XCJcclxuICAgICAgW2lzTGFiZWxBbGlnbmVkTGVmdF09XCJ0cnVlXCJcclxuICAgICAgW3NlbGVjdExhYmVsXT1cImNvbnN0YW50cz8udmlld0dyb3Vwcz8uZmlsdGVyQnlMYWJlbFwiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvbkRyb3Bkb3duU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAob3B0aW9uU2VhcmNoZWQpPVwib25Ecm9wZG93blNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgKGRyb3Bkb3duT3BlbmVkQ2hhbmdlKT1cIm9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtpc1NlYXJjaF09XCJ0cnVlXCJcclxuICAgID48L2llZWVzYS1zZWxlY3Q+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1idXR0b25cclxuICAgICAgKm5nSWY9XCJpc0ZpbHRlck9wZW5lZFwiXHJcbiAgICAgIGNsYXNzPVwibWF0LXRlcnRpYXJ5LWJ1dHRvbiBtLTJcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNBcHBseUJ1dHRvbkRpc2FibGVkXCJcclxuICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyQXBwbHkoKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGNvbnN0YW50cz8uZmlsdGVyPy5sYWJlbD8uYXBwbHlCdXR0b24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGllZWVzYS1jaGlwc1xyXG4gICAgICBbY2hpcEdyb3VwXT1cImFwcGxpZWRGaWx0ZXJPcHRpb25zXCJcclxuICAgICAgW2lzVmlld01vcmVOZWVkZWRdPVwidHJ1ZVwiXHJcbiAgICAgICpuZ0lmPVwiYXBwbGllZEZpbHRlck9wdGlvbnNcIlxyXG4gICAgICBbYXJyb3ddPVwicmVtb3ZlSWNvblwiXHJcbiAgICAgIChzZWxlY3RlZENoaXApPVwib25SZW1vdmFsT2ZGaWx0ZXJlZE9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgY2xhc3M9XCJkLWZsZXggZ2FwLTIgbXQtMlwiXHJcbiAgICAgIFtoYXNWaWV3TW9yZUZvckRlc2t0b3BdPVwiZmFsc2VcIlxyXG4gICAgICBbaGFzVmlld01vcmVGb3JNb2JpbGVdPVwidHJ1ZVwiXHJcbiAgICA+PC9pZWVlc2EtY2hpcHM+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixpQkFBaUIsRUFDakIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFDLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBRXpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBRzNFOzs7OztHQUtHO0FBb0JILE1BQU0sT0FBTyxlQUFlO0lBbUIxQixJQUFhLGdCQUFnQixDQUFDLFVBQTRCO1FBQ3hELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxVQUFVLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUNJLG9CQUFvQixDQUFDLE9BQXFCO1FBQzVDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxPQUFPLENBQUM7SUFDekMsQ0FBQztJQUNELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7SUFTRCxJQUNJLHFCQUFxQixDQUFDLE9BQXlCO1FBQ2pELElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsT0FBTyxDQUFDO1lBQ3pDLElBQ0UsSUFBSSxDQUFDLDZCQUE2QixDQUFDLE1BQU07Z0JBQ3pDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO29CQUN4QyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJO2dCQUUzQyxJQUFJLENBQUMsOEJBQThCLEdBQUcsT0FBTyxDQUFDO1lBQ2hELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7U0FDckU7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN2RCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FDbEUsQ0FBQyxZQUE0QixFQUFFLEVBQUU7Z0JBQy9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNoRSxDQUFDLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUNELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hDLENBQUM7SUFLRDtJQUNFLDBDQUEwQztJQUNsQyx5QkFBb0Q7SUFDNUQsMENBQTBDO0lBQ2xDLHVCQUEwQztRQUYxQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBRXBELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBbUI7UUF6RXBELDhEQUE4RDtRQUM5RCxjQUFTLEdBQVEsU0FBUyxDQUFDO1FBQzNCLFVBQUssR0FBZSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3hELFVBQUssR0FBZSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ3hELGVBQVUsR0FBZSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQzlELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLDBCQUFxQixHQUFHLElBQUksQ0FBQztRQUM3QixzQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUNqRSxhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7UUFJNUMsNkJBQXdCLEdBQzlCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztRQU81QixnQkFBVyxHQUFHLGdCQUFnQixDQUFDO1FBUXRCLGlCQUFZLEdBQWUsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlELHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUVsQywrQkFBMEIsR0FBbUIsRUFBRSxDQUFDO1FBQ2hELHlDQUFvQyxHQUFtQixFQUFFLENBQUM7UUFFMUQsa0NBQTZCLEdBQXFCLEVBQUUsQ0FBQztRQTBCM0MsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ2hELG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDMUQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBTzFELElBQUksQ0FBQyx5QkFBeUI7YUFDM0IsYUFBYSxFQUFFO2FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsSUFBZ0I7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQ3JFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gseUJBQXlCLENBQUMsTUFBa0I7UUFDMUMsSUFBSSxNQUFNLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDNUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBeUIsRUFBRSxFQUFFO2dCQUMzRCxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekUsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FDMUQsQ0FBQyxHQUFlLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FDMUMsQ0FBQztZQUNGLElBQUksQ0FBQyxvQkFBb0I7Z0JBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUMxRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBeUIsRUFBRSxFQUFFO2dCQUMzRCxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsY0FBOEIsRUFBRSxFQUFFO29CQUNsRCxJQUFJLGNBQWMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUU7d0JBQUUsY0FBYyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3RFLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUM7U0FDcEU7UUFDRCxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsMkJBQTJCO1FBQ3pCLE1BQU0seUJBQXlCLEdBQXdCLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUM1QixDQUFDLEtBQXVCLEVBQUUsR0FBb0IsRUFBRSxFQUFFO1lBQ2hELE1BQU0sZUFBZSxHQUFxQixFQUFFLENBQUM7WUFDN0MsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN4QixJQUFJLE1BQU0sQ0FBQyxPQUFPO29CQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLGVBQWUsQ0FBQyxNQUFNO2dCQUN4Qix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUNGLENBQUM7UUFDRixPQUFPLHlCQUF5QixDQUFDO0lBQ25DLENBQUM7SUFDRDs7O09BR0c7SUFDSCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILHlCQUF5QixDQUFDLE1BQXdCO1FBQ2hELElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDakQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQzs7WUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztRQUN4QyxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFDRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gseUJBQXlCLENBQUMsTUFBb0I7UUFDNUMsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ25DLE1BQU0sY0FBYyxHQUFxQjtnQkFDdkM7b0JBQ0UsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNiLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDakIsT0FBTyxFQUFFLElBQUk7b0JBQ2IsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3RDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2lCQUN2QjtxQkFBTTtvQkFDTCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztpQkFDeEI7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0NBQWdDO1FBQzlCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQ3BELE9BQU8sVUFBVSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksWUFBWSxFQUFFO29CQUNoQixZQUFZLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FDMUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUNwQyxDQUFDO2lCQUNIO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsVUFBa0I7UUFDakMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILHNCQUFzQixDQUFDLEtBQXdCO1FBQzdDLElBQUksSUFBSSxDQUFDLG9DQUFvQyxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDM0QsSUFBSSxDQUFDLG9DQUFvQztnQkFDdkMsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDbEIsSUFBSSxDQUFDLDBCQUEwQjtnQkFDN0IsSUFBSSxDQUFDLG9DQUFvQyxDQUFDO1NBQzdDO1FBQ0QsSUFDRSxDQUFDLEtBQUssRUFBRSxNQUFNO1lBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQzVEO1lBQ0EsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztTQUM5RDtJQUNILENBQUM7K0dBN1BVLGVBQWU7bUdBQWYsZUFBZSxpaEJBZWYsZUFBZSxnREN0RTVCLGd2RkF5RUEsNGdTRGpDSSxZQUFZLGdPQUNaLGlCQUFpQiw4QkFDakIsYUFBYSw4QkFDYixlQUFlLDRRQUNmLGNBQWMsNlNBQ2QsaUJBQWlCLDhPQUNqQixtQkFBbUIscUlBQ25CLG1CQUFtQiw4QkFDbkIsZUFBZSwrQkFDZixlQUFlOzs0RkFNTixlQUFlO2tCQW5CM0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7Z0pBaUJULGVBQWU7c0JBQTFDLFNBQVM7dUJBQUMsZUFBZTtnQkFJYixnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBUUYsb0JBQW9CO3NCQUR2QixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFPRixxQkFBcUI7c0JBRHhCLEtBQUs7Z0JBeUJJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ljb24tYnV0dG9uLm1vZGVsJztcclxuaW1wb3J0IHsgQ2hpcE9wdGlvbiwgRmlsdGVyT3B0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9jaGlwLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hpcHMvY2hpcHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEZpbHRlcnNBbmRPcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbHRlcnMtb3B0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3Qtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdE9wZW5lZFN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC1vcGVuZWQtc3RhdGUubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGFuIGltcGxlbWVudGF0aW9uIGZvciBncm91cCBvZiBmaWx0ZXIuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEZpbHRlckNvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtZmlsdGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIENoaXBzQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIFNlbGVjdENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgYXJyb3c6IEljb25CdXR0b24gPSB0aGlzLmNvbnN0YW50cz8uY2hpcHM/Lmljb25zPy5hcnJvdztcclxuICBjaGVjazogSWNvbkJ1dHRvbiA9IHRoaXMuY29uc3RhbnRzPy5jaGlwcz8uaWNvbnM/LmNoZWNrO1xyXG4gIHJlbW92ZUljb246IEljb25CdXR0b24gPSB0aGlzLmNvbnN0YW50cz8uY2hpcHM/Lmljb25zPy5yZW1vdmU7XHJcbiAgaXNGaWx0ZXJPcGVuZWQgPSBmYWxzZTtcclxuICBzZWxlY3RlZENoZWNrYm94ZXMhOiBDaGVja2JveE9wdGlvbltdO1xyXG4gIG9uRmlsdGVyVG9nZ2xlID0gZmFsc2U7XHJcbiAgaXNGaWx0ZXJBY3RpdmUgPSBmYWxzZTtcclxuICBpc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuICBpc0FwcGx5QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG4gIGZpbHRlcnNBbmRPcHRpb25zID0gbmV3IE1hcDxudW1iZXIgfCBzdHJpbmcsIENoZWNrYm94T3B0aW9uW10+KCk7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHJlY3JlYXRlQ2hlY2tib3hPcHRpb25zQ29udHJvbCE6IENoZWNrYm94T3B0aW9uW107XHJcbiAgQFZpZXdDaGlsZChTZWxlY3RDb21wb25lbnQpIHNlbGVjdENvbXBvbmVudCE6IFNlbGVjdENvbXBvbmVudDtcclxuICBwcml2YXRlIGZpbHRlcmVkVHlwZU9wdGlvbnNJbmZvITogQ2hpcE9wdGlvbltdO1xyXG4gIHByaXZhdGUgc2VsZWN0ZWRGaWx0ZXJPcHRpb25UeXBlOiBGaWx0ZXJPcHRpb25UeXBlID1cclxuICAgIEZpbHRlck9wdGlvblR5cGUuQ0hFQ0tCT1g7XHJcbiAgQElucHV0KCkgc2V0IGZpbHRlck9wdGlvblR5cGUob3B0aW9uVHlwZTogRmlsdGVyT3B0aW9uVHlwZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvblR5cGUgPSBvcHRpb25UeXBlO1xyXG4gIH1cclxuICBnZXQgZmlsdGVyT3B0aW9uVHlwZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRmlsdGVyT3B0aW9uVHlwZTtcclxuICB9XHJcbiAgb3B0aW9uc1R5cGUgPSBGaWx0ZXJPcHRpb25UeXBlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGFwcGxpZWRGaWx0ZXJPcHRpb25zKG9wdGlvbnM6IENoaXBPcHRpb25bXSkge1xyXG4gICAgdGhpcy5maWx0ZXJlZFR5cGVPcHRpb25zSW5mbyA9IG9wdGlvbnM7XHJcbiAgfVxyXG4gIGdldCBhcHBsaWVkRmlsdGVyT3B0aW9ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkVHlwZU9wdGlvbnNJbmZvO1xyXG4gIH1cclxuICBASW5wdXQoKSBmaWx0ZXJCdXR0b246IEljb25CdXR0b24gPSB0aGlzLmNvbnN0YW50cz8uZmlsdGVyPy5idXR0b25zWzBdO1xyXG4gIEBJbnB1dCgpIGZpbHRlcnMhOiBDaGlwT3B0aW9uW107XHJcbiAgQElucHV0KCkgY2FuU2hvd1NlbGVjdGlvbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdCE6IENoZWNrYm94T3B0aW9uW107XHJcbiAgc2VsZWN0ZWRGaWx0ZXJEcm9wRG93bkxpc3Q6IFNlbGVjdE9wdGlvbltdID0gW107XHJcbiAgZGVmYXVsdFNlbGVjdGVkRmlsdGVyRHJvcERvd25PcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIHNlbGVjdGVkRmlsdGVySWQhOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgcHJldlNlbGVjdGVkRmlsdGVyT3B0aW9uc0xpc3Q6IENoZWNrYm94T3B0aW9uW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHNldCBzZWxlY3RlZEZpbHRlck9wdGlvbnMob3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSkge1xyXG4gICAgaWYgKG9wdGlvbnMgJiYgdGhpcy5zZWxlY3RlZEZpbHRlcklkKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyc0FuZE9wdGlvbnMuc2V0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJJZCwgb3B0aW9ucyk7XHJcbiAgICAgIHRoaXMuc2V0RmlsdGVyU2VsZWN0aW9uT25PcHRpb25DaGFuZ2UoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnNMaXN0ID0gb3B0aW9ucztcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMucHJldlNlbGVjdGVkRmlsdGVyT3B0aW9uc0xpc3QubGVuZ3RoICYmXHJcbiAgICAgICAgdGhpcy5wcmV2U2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdFswXS5uYW1lICE9PVxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnNMaXN0Py5bMF0/Lm5hbWVcclxuICAgICAgKVxyXG4gICAgICAgIHRoaXMucmVjcmVhdGVDaGVja2JveE9wdGlvbnNDb250cm9sID0gb3B0aW9ucztcclxuICAgICAgdGhpcy5wcmV2U2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdCA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbHRlck9wdGlvblR5cGUgPT09IHRoaXMub3B0aW9uc1R5cGUuRFJPUERPV04pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlckRyb3BEb3duTGlzdCA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdC5tYXAoXHJcbiAgICAgICAgKHNlbGVjdE9wdGlvbjogQ2hlY2tib3hPcHRpb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiB7IGlkOiBzZWxlY3RPcHRpb24uaWQsIG5hbWU6IHNlbGVjdE9wdGlvbi5uYW1lID8/ICcnIH07XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdDtcclxuICB9XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwT3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJlZE9wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlcnNBbmRPcHRpb25zW10+KCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZUZpbHRlcmVkT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJEcm9wZG93blNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2U6IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWZlcmVuY2U6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gcmVzdWx0Lm1hdGNoZXM7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJCdXR0b24uZGlzYWJsZWQgPSAhdGhpcy5pc01vYmlsZVZpZXc7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPbkZpbHRlclNlbGVjdGVkIHJlY2VpdmVzIHRoZSBzZWxlY3RlZCBmaWx0ZXIgZnJvbSBjaGlwIGNvbXBvbmVudCwgZW1pdHMgdGhlIHNlbGVjdGVkIGZpbHRlciBhbmQgdG9nZ2xlIHRoZSBpc0ZpbHRlckJ5T3B0aW9uc1Zpc2libGUgc3RhdGUuXHJcbiAgICogQHBhcmFtIHtDaGlwT3B0aW9ufSB0eXBlXHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsdGVyU2VsZWN0ZWQodHlwZTogQ2hpcE9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcklkID0gdHlwZS5pZDtcclxuICAgIGlmICh0eXBlLmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlci5lbWl0KHR5cGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0ZpbHRlck9wZW5lZCA9IHR5cGU/LmNoZWNrZWQ7XHJcbiAgICB0aGlzLmZpbHRlck9wdGlvblR5cGUgPSB0eXBlLm9wdGlvblR5cGUgPz8gdGhpcy5vcHRpb25zVHlwZS5DSEVDS0JPWDtcclxuICAgIHRoaXMub25GaWx0ZXJUb2dnbGUgPSBmYWxzZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogT25SZW1vdmFsT2ZGaWx0ZXJlZE9wdGlvbiBtZXRob2QgcmVjZWl2ZXMgcmVtb3ZlZCBjaGlwIGZyb20gY2hpcCBjb21wb25lbnQgYW5kIGVtaXRzIHRoZSBldmVudCB3aXRoIHJlbW92ZWQgY2hpcC5cclxuICAgKiBAcGFyYW0ge0NoaXBPcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBGaWx0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBvblJlbW92YWxPZkZpbHRlcmVkT3B0aW9uKG9wdGlvbjogQ2hpcE9wdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKG9wdGlvbj8ubmFtZSA9PT0gdGhpcy5jb25zdGFudHM/LmZpbHRlcj8ubGFiZWw/LmNsZWFyQWxsKSB7XHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5maWx0ZXJzQW5kT3B0aW9ucy5mb3JFYWNoKChvcHRpb25zOiBDaGVja2JveE9wdGlvbltdKSA9PiB7XHJcbiAgICAgICAgb3B0aW9ucz8uZm9yRWFjaCgob3B0aW9uOiBDaGVja2JveE9wdGlvbikgPT4gKG9wdGlvbi5jaGVja2VkID0gZmFsc2UpKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyZWRPcHRpb24uZW1pdChbXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJPcHRpb25zID0gdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKHJlczogQ2hpcE9wdGlvbikgPT4gcmVzLmlkICE9PSBvcHRpb24uaWRcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucyA9XHJcbiAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucy5sZW5ndGggPT09IDEgPyBbXSA6IHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnM7XHJcbiAgICAgIHRoaXMuZmlsdGVyc0FuZE9wdGlvbnMuZm9yRWFjaCgob3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSkgPT4ge1xyXG4gICAgICAgIG9wdGlvbnM/LmZvckVhY2goKGNoZWNrQm94T3B0aW9uOiBDaGVja2JveE9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoZWNrQm94T3B0aW9uLmlkID09PSBvcHRpb24uaWQpIGNoZWNrQm94T3B0aW9uLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyZWRPcHRpb24uZW1pdCh0aGlzLmdldExpc3RPZlNlbGVjdGVkQ2hlY2tib3hlcygpKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0RmlsdGVyU2VsZWN0aW9uT25PcHRpb25DaGFuZ2UoKTtcclxuICB9XHJcbiAgZ2V0TGlzdE9mU2VsZWN0ZWRDaGVja2JveGVzKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzQW5kT3B0aW9uczogRmlsdGVyc0FuZE9wdGlvbnNbXSA9IFtdO1xyXG4gICAgdGhpcy5maWx0ZXJzQW5kT3B0aW9ucy5mb3JFYWNoKFxyXG4gICAgICAodmFsdWU6IENoZWNrYm94T3B0aW9uW10sIGtleTogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zOiBDaGVja2JveE9wdGlvbltdID0gW107XHJcbiAgICAgICAgdmFsdWU/LmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICAgICAgaWYgKG9wdGlvbi5jaGVja2VkKSBzZWxlY3RlZE9wdGlvbnMucHVzaChvcHRpb24pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZE9wdGlvbnMubGVuZ3RoKVxyXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzQW5kT3B0aW9ucy5wdXNoKHsgW2tleV06IHNlbGVjdGVkT3B0aW9ucyB9KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHJldHVybiBzZWxlY3RlZEZpbHRlcnNBbmRPcHRpb25zO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBPbkZpbHRlckFwcGx5IHRvZ2dsZXMgdGhlIGlzRmlsdGVyQnlPcHRpb25zVmlzaWJsZSBzdGF0ZSwgZW1pdHMgdGhlIHNlbGVjdGVkIGZpbHRlciBvcHRpb25zIGFuZCB0b2dnbGVzIHRoZSBmaWx0ZXIgc3RhdGVPXHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsdGVyQXBwbHkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRmlsdGVyT3BlbmVkID0gIXRoaXMuaXNGaWx0ZXJPcGVuZWQ7XHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5lbWl0KHRoaXMuZ2V0TGlzdE9mU2VsZWN0ZWRDaGVja2JveGVzKCkpO1xyXG4gICAgdGhpcy5vbkZpbHRlclRvZ2dsZSA9IHRydWU7XHJcbiAgICB0aGlzLmlzQXBwbHlCdXR0b25EaXNhYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmZXJlbmNlLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2VsZWN0ZWRGaWx0ZXJPcHRpb25zIG1ldGhvZCBpcyBjYWxsZWQgZm9yIGV2ZXJ5IHNlbGVjdGlvbiBhbmQgZGVzZWxlY3Rpb24gb2YgZmlsdGVyIG9wdGlvbiBhbmQgc3RvcmVzIHRoZSBzZWxlY3RlZCBmaWx0ZXIgb3B0aW9ucy5cclxuICAgKiBAcGFyYW0ge0ZpbHRlcnNBbmRPcHRpb25zW119IHZhbHVlc1xyXG4gICAqIEBtZW1iZXJvZiBGaWx0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBzZWxlY3RlZEZpbHRlck9wdGlvbnNJbmZvKHZhbHVlczogQ2hlY2tib3hPcHRpb25bXSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ2V0TGlzdE9mU2VsZWN0ZWRDaGVja2JveGVzKCkubGVuZ3RoID09PSAwKVxyXG4gICAgICB0aGlzLmlzQXBwbHlCdXR0b25EaXNhYmxlZCA9IHRydWU7XHJcbiAgICBlbHNlIHRoaXMuaXNBcHBseUJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBpZiAodmFsdWVzICYmIHRoaXMuc2VsZWN0ZWRGaWx0ZXJJZCkge1xyXG4gICAgICB0aGlzLmZpbHRlcnNBbmRPcHRpb25zLnNldCh0aGlzLnNlbGVjdGVkRmlsdGVySWQsIHZhbHVlcyk7XHJcbiAgICAgIHRoaXMuc2V0RmlsdGVyU2VsZWN0aW9uT25PcHRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogT25GaWx0ZXJCeUljb25DbGljayBtZXRob2QgdG9nZ2xlcyB0aGUgaXNGaWx0ZXJBY3RpdmUgdmFsdWUuXHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRmlsdGVyQnlJY29uQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRmlsdGVyQWN0aXZlID0gIXRoaXMuaXNGaWx0ZXJBY3RpdmU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE5nT25EZXN0cm95IHBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgRmlsdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbkRyb3Bkb3duU2VsZWN0aW9uQ2hhbmdlKCkgaXMgY2FsbGVkIGZvciBldmVyeSBkcm9wIGRvd24gc2VsZWN0aW9uIGNoYW5nZXMgYW5kIHNldHMgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zTGlzdC5cclxuICAgKiBAbWVtYmVyb2YgRmlsdGVyQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Ecm9wZG93blNlbGVjdGlvbkNoYW5nZShvcHRpb246IFNlbGVjdE9wdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKG9wdGlvbiAmJiB0aGlzLnNlbGVjdGVkRmlsdGVySWQpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRPcHRpb246IENoZWNrYm94T3B0aW9uW10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWQ6IG9wdGlvbi5pZCxcclxuICAgICAgICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxyXG4gICAgICAgICAgY2hlY2tlZDogdHJ1ZSxcclxuICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsdGVyT3B0aW9uc0xpc3Q/Lm1hcCgob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gc2VsZWN0ZWRPcHRpb25bMF0uaWQpIHtcclxuICAgICAgICAgIG9wdGlvbi5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0aW9uLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmlzQXBwbHlCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmZpbHRlcnNBbmRPcHRpb25zLnNldCh0aGlzLnNlbGVjdGVkRmlsdGVySWQsIHNlbGVjdGVkT3B0aW9uKTtcclxuICAgICAgdGhpcy5zZXRGaWx0ZXJTZWxlY3Rpb25Pbk9wdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0RmlsdGVyU2VsZWN0aW9uT25PcHRpb25DaGFuZ2UoKSBjYWxsZWQgb24gZXZlcnkgc2VsZWN0aW9uIGFuZCBkZXNlbGVjdGlvbiBvZiBmaWx0ZXIgb3B0aW9uIGFuZCBzZXRzIGNhblNob3dTZWxlY3Rpb24gZmxhZyB0byBzaG93IG9yIGhpZGUgdGhlIHRpY2sgbWFyayBvZiBzZWxlY3RlZCBmaWx0ZXIgb3B0aW9uLlxyXG4gICAqIEBtZW1iZXJvZiBGaWx0ZXJDb21wb25lbnRcclxuICAgKi9cclxuICBzZXRGaWx0ZXJTZWxlY3Rpb25Pbk9wdGlvbkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNhblNob3dTZWxlY3Rpb24pIHtcclxuICAgICAgZm9yIChjb25zdCBba2V5LCBvcHRpb25zXSBvZiB0aGlzLmZpbHRlcnNBbmRPcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyT3B0aW9uID0gdGhpcy5maWx0ZXJzLmZpbmQoKGNoaXBPcHRpb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBjaGlwT3B0aW9uLm5hbWUgPT09IGtleTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZmlsdGVyT3B0aW9uKSB7XHJcbiAgICAgICAgICBmaWx0ZXJPcHRpb24uY2FuU2hvd1NlbGVjdGlvbiA9IG9wdGlvbnMuc29tZShcclxuICAgICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLmNoZWNrZWQgPT09IHRydWVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBmaWx0ZXJEcm9wZG93blNlYXJjaCBldmVudCB3aXRoIHRoZSBzZWFyY2hlZCB0ZXh0IHZhbHVlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWFyY2hUZXh0XHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25TZWFyY2goc2VhcmNoVGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbHRlckRyb3Bkb3duU2VhcmNoLmVtaXQoc2VhcmNoVGV4dCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGZpbHRlckRyb3Bkb3duU2VhcmNoIGV2ZW50IHRvIHJlc2V0IHRoZSBkcm9wZG93biBvcHRpb25zIHRvIGRlZmF1bHQgd2hlbiB0aGUgZHJvcGRvd24gaXMgY2xvc2VkIGFuZCBzZXRzIHNlYXJjaCB0ZXJtIGVtcHR5LlxyXG4gICAqIEBwYXJhbSB7U2VsZWN0T3BlbmVkU3RhdGV9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEZpbHRlckNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRHJvcGRvd25PcGVuZWRDaGFuZ2UoZXZlbnQ6IFNlbGVjdE9wZW5lZFN0YXRlKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0U2VsZWN0ZWRGaWx0ZXJEcm9wRG93bk9wdGlvbnM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZEZpbHRlckRyb3BEb3duT3B0aW9ucyA9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlckRyb3BEb3duTGlzdDtcclxuICAgIH1cclxuICAgIGlmICghZXZlbnQ/Lm9wZW5lZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsdGVyRHJvcERvd25MaXN0ID1cclxuICAgICAgICB0aGlzLmRlZmF1bHRTZWxlY3RlZEZpbHRlckRyb3BEb3duT3B0aW9ucztcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgIWV2ZW50Py5vcGVuZWQgJiZcclxuICAgICAgdGhpcy5zZWxlY3RDb21wb25lbnQ/LmZvcm1GaWVsZHM/LnRvQXJyYXkoKT8uWzBdPy5zZWFyY2hUZXJtXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RDb21wb25lbnQuZm9ybUZpZWxkcy50b0FycmF5KClbMF0uc2VhcmNoVGVybSA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWVlZXNhLWZpbHRlclwiICpuZ0lmPVwiZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCA+IDBcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LXNtLWNvbHVtbiBmbGV4LW1kLWNvbHVtbiBmbGV4LWxnLXJvdyBmbGV4LXhsLXJvd1wiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cImZpbHRlckJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyQnlJY29uQ2xpY2soKVwiXHJcbiAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgPHBcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1sYWJlbC1sZy1ib2xkLTE2IG0tMFwiXHJcbiAgICAgICAgKm5nSWY9XCIhaXNNb2JpbGVWaWV3IHx8IGlzRmlsdGVyQWN0aXZlXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cz8uZmlsdGVyPy5sYWJlbD8uZmlsdGVyQnkgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICFpc01vYmlsZVZpZXdcclxuICAgICAgICAgID8gJ2QtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXInXHJcbiAgICAgICAgICA6ICdkLWZsZXggYWxpZ24tc2VsZi1zdHJldGNoIGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXIgcHQtc20tMiBwdC1tZC0yIHB0LTInXHJcbiAgICAgIFwiXHJcbiAgICAgICpuZ0lmPVwiIWlzTW9iaWxlVmlldyB8fCBpc0ZpbHRlckFjdGl2ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtY2hpcHNcclxuICAgICAgICBbY2hpcEdyb3VwXT1cImZpbHRlcnNcIlxyXG4gICAgICAgIFthcnJvd109XCJhcnJvd1wiXHJcbiAgICAgICAgW2NoZWNrXT1cImNoZWNrXCJcclxuICAgICAgICBbaGFzQ2hpcFRvZ2dsZWRdPVwib25GaWx0ZXJUb2dnbGVcIlxyXG4gICAgICAgIChzZWxlY3RlZENoaXApPVwib25GaWx0ZXJTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgPjwvaWVlZXNhLWNoaXBzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc01vYmlsZVZpZXcgfHwgaXNGaWx0ZXJBY3RpdmVcIj5cclxuICAgIDxpZWVlc2EtY2hlY2tib3hcclxuICAgICAgW2NoZWNrYm94ZXNdPVwic2VsZWN0ZWRGaWx0ZXJPcHRpb25zXCJcclxuICAgICAgW3JlY3JlYXRlQ2hlY2tib3hPcHRpb25zQ29udHJvbF09XCJyZWNyZWF0ZUNoZWNrYm94T3B0aW9uc0NvbnRyb2xcIlxyXG4gICAgICAoY2hlY2tib3hPcHRpb25zQW5kU2VsZWN0aW9uKT1cInNlbGVjdGVkRmlsdGVyT3B0aW9uc0luZm8oJGV2ZW50KVwiXHJcbiAgICAgICpuZ0lmPVwiaXNGaWx0ZXJPcGVuZWQgJiYgZmlsdGVyT3B0aW9uVHlwZSA9PT0gb3B0aW9uc1R5cGUuQ0hFQ0tCT1hcIlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBnYXAtMiBpZWVlc2EtZmlsdGVyX19maWx0ZXItb3B0aW9uc1wiXHJcbiAgICA+PC9pZWVlc2EtY2hlY2tib3g+XHJcbiAgICA8aWVlZXNhLXNlbGVjdFxyXG4gICAgICAqbmdJZj1cImlzRmlsdGVyT3BlbmVkICYmIGZpbHRlck9wdGlvblR5cGUgPT09IG9wdGlvbnNUeXBlLkRST1BET1dOXCJcclxuICAgICAgW2lzU29ydE5lZWRlZF09XCJmYWxzZVwiXHJcbiAgICAgIFtkcm9wZG93bk9wdGlvbnNdPVwic2VsZWN0ZWRGaWx0ZXJEcm9wRG93bkxpc3RcIlxyXG4gICAgICBbaXNMYWJlbEFsaWduZWRMZWZ0XT1cInRydWVcIlxyXG4gICAgICBbc2VsZWN0TGFiZWxdPVwiY29uc3RhbnRzPy52aWV3R3JvdXBzPy5maWx0ZXJCeUxhYmVsXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uRHJvcGRvd25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIChvcHRpb25TZWFyY2hlZCk9XCJvbkRyb3Bkb3duU2VhcmNoKCRldmVudClcIlxyXG4gICAgICAoZHJvcGRvd25PcGVuZWRDaGFuZ2UpPVwib25Ecm9wZG93bk9wZW5lZENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2lzU2VhcmNoXT1cInRydWVcIlxyXG4gICAgPjwvaWVlZXNhLXNlbGVjdD5cclxuICAgIDxidXR0b25cclxuICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAqbmdJZj1cImlzRmlsdGVyT3BlbmVkXCJcclxuICAgICAgY2xhc3M9XCJtYXQtdGVydGlhcnktYnV0dG9uIG0tMlwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0FwcGx5QnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICAoY2xpY2spPVwib25GaWx0ZXJBcHBseSgpXCJcclxuICAgID5cclxuICAgICAge3sgY29uc3RhbnRzPy5maWx0ZXI/LmxhYmVsPy5hcHBseUJ1dHRvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8aWVlZXNhLWNoaXBzXHJcbiAgICAgIFtjaGlwR3JvdXBdPVwiYXBwbGllZEZpbHRlck9wdGlvbnNcIlxyXG4gICAgICBbaXNWaWV3TW9yZU5lZWRlZF09XCJ0cnVlXCJcclxuICAgICAgKm5nSWY9XCJhcHBsaWVkRmlsdGVyT3B0aW9uc1wiXHJcbiAgICAgIFthcnJvd109XCJyZW1vdmVJY29uXCJcclxuICAgICAgKHNlbGVjdGVkQ2hpcCk9XCJvblJlbW92YWxPZkZpbHRlcmVkT3B0aW9uKCRldmVudClcIlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBnYXAtMiBtdC0yXCJcclxuICAgICAgW2hhc1ZpZXdNb3JlRm9yRGVza3RvcF09XCJmYWxzZVwiXHJcbiAgICAgIFtoYXNWaWV3TW9yZUZvck1vYmlsZV09XCJ0cnVlXCJcclxuICAgID48L2llZWVzYS1jaGlwcz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
|
package/esm2022/lib/components/multi-select-autocomplete/multi-select-autocomplete.component.mjs
CHANGED
|
@@ -55,8 +55,14 @@ export class MultiSelectAutocompleteComponent {
|
|
|
55
55
|
return this.autoCompleteOptionList;
|
|
56
56
|
}
|
|
57
57
|
// eslint-disable-next-line no-unused-vars, no-empty-function
|
|
58
|
-
constructor(
|
|
58
|
+
constructor(
|
|
59
|
+
// eslint-disable-next-line no-unused-vars
|
|
60
|
+
formUtilityService,
|
|
61
|
+
// eslint-disable-next-line no-unused-vars
|
|
62
|
+
changeDetectorRef // eslint-disable-next-line no-empty-function
|
|
63
|
+
) {
|
|
59
64
|
this.formUtilityService = formUtilityService;
|
|
65
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
60
66
|
this.separatorKeysCodes = [ENTER, COMMA];
|
|
61
67
|
this.selectedOptions = [];
|
|
62
68
|
this.multiSelectAutoCompleteSearchValue = new EventEmitter();
|
|
@@ -93,6 +99,7 @@ export class MultiSelectAutocompleteComponent {
|
|
|
93
99
|
ngAfterViewInit() {
|
|
94
100
|
this.group?.get(this.config?.controlName)?.setErrors(null);
|
|
95
101
|
this.onValueChanges();
|
|
102
|
+
this.changeDetectorRef.detectChanges();
|
|
96
103
|
}
|
|
97
104
|
/**
|
|
98
105
|
* Emits an multiSelectAutoCompleteSearchValue change event when the value is changed and value is greater than minCharToSearch or equal to zero.
|
|
@@ -260,7 +267,7 @@ export class MultiSelectAutocompleteComponent {
|
|
|
260
267
|
this.destroy$.next(true);
|
|
261
268
|
this.destroy$.unsubscribe();
|
|
262
269
|
}
|
|
263
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectAutocompleteComponent, deps: [{ token: i1.FormUtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
270
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectAutocompleteComponent, deps: [{ token: i1.FormUtilityService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
264
271
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectAutocompleteComponent, isStandalone: true, selector: "ieeesa-multi-select-autocomplete", inputs: { multiSelectAutoCompleteOptions: "multiSelectAutoCompleteOptions" }, outputs: { multiSelectAutoCompleteSearchValue: "multiSelectAutoCompleteSearchValue", multiSelectAutoCompleteClearSearchValue: "multiSelectAutoCompleteClearSearchValue", multiSelectAutoCompleteOptionsSelected: "multiSelectAutoCompleteOptionsSelected" }, providers: [
|
|
265
272
|
{
|
|
266
273
|
provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
|
|
@@ -294,7 +301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
294
301
|
},
|
|
295
302
|
},
|
|
296
303
|
], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-multi-select-autocomplete\"\r\n [formGroup]=\"group\"\r\n *ngIf=\"group\"\r\n [ngClass]=\"\r\n config.isLabelAlignedLeft\r\n ? 'ieeesa-multi-select-autocomplete-field__label-left'\r\n : 'ieeesa-multi-select-autocomplete-field__label-top'\r\n \"\r\n>\r\n <mat-label class=\"ieeesa-body-sm-14 ieeesa-multi-select-autocomplete__label\"\r\n >{{ config.label }}</mat-label\r\n >\r\n <mat-form-field\r\n class=\"ieeesa-multi-select-autocomplete__mat-form-field\"\r\n appearance=\"outline\"\r\n >\r\n <mat-chip-grid\r\n #chipGrid\r\n [attr.aria-label]=\"autocompleteConstInfo?.multiSelectAutoComplete?.ariaLabel?.selectedOptions\"\r\n >\r\n <mat-chip-row\r\n *ngFor=\"let option of selectedOptions; trackBy: trackByFn\"\r\n [attr.aria-label]=\"option?.name\"\r\n [removable]=\"true\"\r\n (removed)=\"onOptionRemoved(option)\"\r\n >\r\n <p\r\n ieeesaTextTruncated\r\n [matTooltip]=\"option.name\"\r\n class=\"ieeesa-label-lg-bold-16 m-0\"\r\n >\r\n {{ option.name }}\r\n </p>\r\n <button\r\n matChipRemove\r\n [attr.aria-label]=\"autocompleteConstInfo?.multiSelectAutoComplete?.ariaLabel?.removeOption + option.name\"\r\n >\r\n <svg class=\"ieeesa-chip__svg-avatar\" matChipAvatar>\r\n <use [attr.xlink:href]=\"removeIconURL\"></use>\r\n </svg>\r\n </button>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input\r\n matInput\r\n class=\"ieeesa-multi-select-autocomplete__input ieeesa-title-sm-16\"\r\n [matAutocomplete]=\"matAutocomplete\"\r\n [placeholder]=\"config.placeholder ?? ''\"\r\n [formControlName]=\"config.controlName\"\r\n [name]=\"config.controlName\"\r\n [attr.aria-label]=\"config.ariaLabel\"\r\n [aria-describedby]=\"config.ariaDescribedById ?? ''\"\r\n #multiSelectAutoComplete\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n (matChipInputTokenEnd)=\"add($event)\"\r\n [matChipInputFor]=\"chipGrid\"\r\n />\r\n <mat-autocomplete\r\n #matAutocomplete=\"matAutocomplete\"\r\n (optionSelected)=\"onChange($event.option)\"\r\n [displayWith]=\"displayOptionName\"\r\n class=\"ieeesa-multi-select-autocomplete__autocomplete-list\"\r\n >\r\n <mat-option\r\n *ngFor=\"let option of autoCompleteOptionList; trackBy: trackByFn\"\r\n [value]=\"option\"\r\n >\r\n <mat-checkbox color=\"primary\" [checked]=\"isCheckboxSelected(option)\">\r\n </mat-checkbox>\r\n {{ option.name }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n <button\r\n type=\"button\"\r\n matSuffix\r\n mat-icon-button\r\n [matTooltip]=\"clearAll\"\r\n [attr.aria-label]=\"autocompleteConstInfo.ariaLabel.clear\"\r\n *ngIf=\"selectedOptions.length > 0\"\r\n (click)=\"clearSelections()\"\r\n >\r\n <svg class=\"ieeesa-multi-select-autocomplete__svg-clear-all\">\r\n <use [attr.xlink:href]=\"clearAllIconURL\"></use>\r\n </svg>\r\n </button>\r\n </mat-form-field>\r\n <ieeesa-form-error [formGroup]=\"group\" [config]=\"config\"> </ieeesa-form-error>\r\n <ieeesa-form-support-text\r\n [formGroup]=\"group\"\r\n [config]=\"config\"\r\n ></ieeesa-form-support-text>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-multi-select-autocomplete__mat-form-field{width:100%}.ieeesa-multi-select-autocomplete__label-left{display:flex}.ieeesa-multi-select-autocomplete__label-top{display:block}.ieeesa-multi-select-autocomplete__svg-clear-all{height:24px!important;width:24px!important;color:#878b8f}.ieeesa-multi-select-autocomplete__label{color:#49454f!important;font-size:.75rem!important}.ieeesa-multi-select-autocomplete__input::placeholder{color:#63666a!important;font-size:1rem!important}.ieeesa-multi-select-autocomplete__input{position:relative;z-index:1}.ieeesa-multi-select-autocomplete .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#1c1b1f;letter-spacing:.03125em}.ieeesa-multi-select-autocomplete .mdc-notched-outline__leading,.ieeesa-multi-select-autocomplete .mdc-notched-outline__trailing,.ieeesa-multi-select-autocomplete .mdc-notched-outline__notch{border:unset;border-bottom:1px solid #878b8f;background:#fff!important;border-top:1px solid #878b8f;border-right:1px solid #878b8f;border-left:1px solid #878b8f;border-radius:4px;border-color:#878b8f!important}.ieeesa-multi-select-autocomplete .mdc-notched-outline__leading{border-right:unset}.ieeesa-multi-select-autocomplete .mdc-notched-outline__trailing{border-left:unset}.ieeesa-multi-select-autocomplete .mat-focused .mdc-notched-outline__leading,.ieeesa-multi-select-autocomplete .mat-focused .mdc-notched-outline__trailing,.ieeesa-multi-select-autocomplete .mat-focused .mdc-notched-outline__notch{border:unset;border-bottom:2px solid #00629b}.ieeesa-multi-select-autocomplete .mat-mdc-form-field-subscript-wrapper{display:none}.ieeesa-multi-select-autocomplete .mat-mdc-form-field{min-height:52px;width:-webkit-fill-available;width:-moz-available}.ieeesa-multi-select-autocomplete .mat-mdc-text-field-wrapper{height:auto;min-width:210px;width:auto}.ieeesa-multi-select-autocomplete .mat-mdc-form-field-focus-overlay{background:#fff}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--focused) .ieeesa-multi-select-autocomplete__label{color:#00629b!important}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--focused) .mdc-notched-outline__leading,.ieeesa-multi-select-autocomplete:has(.mdc-text-field--focused) .mdc-notched-outline__trailing,.ieeesa-multi-select-autocomplete:has(.mdc-text-field--focused) .mdc-notched-outline__notch{border:unset;border-bottom:2px solid #00629b;border-color:#00629b!important}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--focused) .mdc-notched-outline__trailing,.ieeesa-multi-select-autocomplete:has(.mdc-text-field--focused) .mdc-notched-outline__leading{border-top:2px solid #00629b}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--focused) .mdc-notched-outline__trailing{border-right:2px solid #00629b}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--focused) .mdc-notched-outline__leading{border-left:2px solid #00629b}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .ieeesa-multi-select-autocomplete__label{color:#ba0c2f!important}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing,.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch{border-width:2px}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-notched-outline__leading,.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-notched-outline__trailing,.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-notched-outline__notch{border:unset;border-bottom:2px solid #ba0c2f;border-color:#ba0c2f!important}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-notched-outline__trailing,.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-notched-outline__leading{border-top:2px solid #ba0c2f}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-notched-outline__trailing{border-right:2px solid #ba0c2f}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .mdc-notched-outline__leading{border-left:2px solid #ba0c2f}.ieeesa-multi-select-autocomplete:has(.mdc-text-field--invalid) .ieeesa-label-lg-bold-16{color:#49454f}.ieeesa-multi-select-autocomplete .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding:10px 0!important;width:80%}.ieeesa-multi-select-autocomplete .mat-mdc-form-field-icon-suffix{width:20%;display:flex;justify-content:flex-end}.ieeesa-multi-select-autocomplete .mdc-evolution-chip-set{min-height:5px;position:relative;z-index:1}.ieeesa-multi-select-autocomplete .mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){padding:10px 0 10px 10px;border-radius:.25em;border:1px solid #79747e;background-color:linear-gradient(0deg,rgba(0,98,155,.05) 0%,rgba(0,98,155,.05) 100%),#fffbfe!important;--mdc-chip-elevated-container-color: $ieeesa-chips-background;max-width:100%}.ieeesa-multi-select-autocomplete .mdc-evolution-chip__icon--primary{color:#000!important;height:18px;width:18px}.ieeesa-multi-select-autocomplete .mdc-evolution-chip__graphic.mat-mdc-chip-graphic{display:none}.ieeesa-multi-select-autocomplete .mat-mdc-chip-action-label .ieeesa-label-lg-bold-16{color:#49454f;max-width:200px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ieeesa-multi-select-autocomplete .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{display:flex;justify-content:flex-start}@media (max-width: 767px){.ieeesa-multi-select-autocomplete .mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){width:100%}.ieeesa-multi-select-autocomplete .mat-mdc-chip-action-label .ieeesa-label-lg-bold-16{max-width:120px}}.ieeesa-multi-select-autocomplete-overlay-panel .mdc-list-item{color:#000;font-family:Calibri Regular;font-size:1rem}.ieeesa-multi-select-autocomplete-overlay-panel .mat-primary .mat-pseudo-checkbox-checked.mat-pseudo-checkbox-minimal:after{display:none}.ieeesa-multi-select-autocomplete-overlay-panel .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background{background-color:#00629b;border-color:#00629b}.ieeesa-multi-select-autocomplete-overlay-panel .mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:#00629b}\n"] }]
|
|
297
|
-
}], ctorParameters: function () { return [{ type: i1.FormUtilityService }]; }, propDecorators: { multiSelectAutoCompleteOptions: [{
|
|
304
|
+
}], ctorParameters: function () { return [{ type: i1.FormUtilityService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { multiSelectAutoCompleteOptions: [{
|
|
298
305
|
type: Input
|
|
299
306
|
}], multiSelectAutoCompleteSearchValue: [{
|
|
300
307
|
type: Output
|
|
@@ -309,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
309
316
|
type: ViewChild,
|
|
310
317
|
args: ['autocompleteTrigger']
|
|
311
318
|
}] } });
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1hdXRvY29tcGxldGUvbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1hdXRvY29tcGxldGUvbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQ0FBZ0MsR0FFakMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFB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QXdCLHdJQUN4QixlQUFlLDBIQUNmLHFCQUFxQixvV0FDckIsY0FBYyx1dkJBQ2QsYUFBYSw4QkFDYixlQUFlLDJMQUNmLGlCQUFpQixnTEFDakIsY0FBYyw0NEJBQ2QsZ0JBQWdCLGdJQUNoQixzQkFBc0I7OzRGQWNiLGdDQUFnQztrQkE5QjVDLFNBQVM7K0JBQ0Usa0NBQWtDLGNBQ2hDLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixzQkFBc0I7cUJBQ3ZCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFO2dDQUNSLGlCQUFpQixFQUFFLGdEQUFnRDs2QkFDcEU7eUJBQ0Y7cUJBQ0YsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTt5R0FlakMsOEJBQThCO3NCQURqQyxLQUFLO2dCQWFJLGtDQUFrQztzQkFBM0MsTUFBTTtnQkFDRyx1Q0FBdUM7c0JBQWhELE1BQU07Z0JBRUcsc0NBQXNDO3NCQUEvQyxNQUFNO2dCQUcrQix1QkFBdUI7c0JBQTVELFNBQVM7dUJBQUMseUJBQXlCO2dCQUNGLFlBQVk7c0JBQTdDLFNBQVM7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gIE1BVF9BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLFxyXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCwgZmlsdGVyLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIGF1dG9jb21wbGV0ZUNvbnN0SW5mbyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLWNvbnRyb2wtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRvY29tcGxldGUtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWVsZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXN1cHBvcnQtdGV4dC9mb3JtLXN1cHBvcnQtdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFRleHRUcnVuY2F0ZWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RleHQtdHJ1bmNhdGVkL3RleHQtdHJ1bmNhdGVkLmRpcmVjdGl2ZSc7XHJcbi8qKlxyXG4gKiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudCBhbGxvd3MgdG8gc2VhcmNoIHRoZSBvcHRpb24ocykgZnJvbSB0aGUgbGlzdCBhbmQgc2VsZWN0IHRoZSBvcHRpb24ocykgZnJvbSB0aGUgYXV0b2NvbXBsZXRlIHNlYXJjaCByZXN1bHRzLlxyXG4gKiBAY2xhc3MgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge0Zvcm1GaWVsZH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICogQGltcGxlbWVudHMge0FmdGVyVmlld0luaXR9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3JtRXJyb3JDb21wb25lbnQsXHJcbiAgICBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIFRleHRUcnVuY2F0ZWREaXJlY3RpdmUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsXHJcbiAgICAgIHVzZVZhbHVlOiB7XHJcbiAgICAgICAgb3ZlcmxheVBhbmVsQ2xhc3M6ICdpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS1vdmVybGF5LXBhbmVsJyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBGb3JtRmllbGQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xyXG4gIGNvbmZpZyE6IEZpZWxkQ29uZmlnO1xyXG4gIGdyb3VwITogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBhdXRvQ29tcGxldGVPcHRpb25MaXN0ITogQXV0b0NvbXBsZXRlT3B0aW9uW107XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgb3B0aW9ucyBmb3IgbXVsdGkgc2VsZWN0IGF1dG9jb21wbGV0ZS5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnModmFsdWU6IEF1dG9Db21wbGV0ZU9wdGlvbltdKSB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbkxpc3QgPSB2YWx1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgYXV0b2NvbXBsZXRlIG9wdGlvbnMgbGlzdC5cclxuICAgKiBAcmVhZG9ubHlcclxuICAgKiBAdHlwZSB7QXV0b0NvbXBsZXRlT3B0aW9uW119XHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucygpOiBBdXRvQ29tcGxldGVPcHRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGVPcHRpb25MaXN0O1xyXG4gIH1cclxuICBAT3V0cHV0KCkgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2hWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUgPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIEF1dG9Db21wbGV0ZU9wdGlvbltdXHJcbiAgPigpO1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VsZWN0QXV0b0NvbXBsZXRlJykgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGUhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZVRyaWdnZXInKSBtYXRBQ1RyaWdnZXIhOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGF1dG9jb21wbGV0ZUNvbnN0SW5mbzogYW55ID0gYXV0b2NvbXBsZXRlQ29uc3RJbmZvO1xyXG4gIHJlbW92ZUljb25VUkwgPVxyXG4gICAgdGhpcy5hdXRvY29tcGxldGVDb25zdEluZm8/Lm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlPy5pY29ucz8ucmVtb3ZlO1xyXG4gIGNsZWFyQWxsSWNvblVSTCA9XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/Lmljb25zPy5jbGVhckFsbDtcclxuICBjbGVhckFsbCA9XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/LmxhYmVsLmNsZWFyQWxsO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1VdGlsaXR5U2VydmljZTogRm9ybVV0aWxpdHlTZXJ2aWNlKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gaW5pdGlhbGl6ZSBjb21wb25lbnRzIGluc3RhbmNlIHByb3BlcnRpZXMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZyA9XHJcbiAgICAgIHRoaXMuY29uZmlnID8/XHJcbiAgICAgIHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1GaWVsZENvbmZpZyhcclxuICAgICAgICAnbXVsdGlTZWxlY3RBdXRvY29tcGxldGUnLFxyXG4gICAgICAgIEZvcm1Db250cm9sVHlwZS5BVVRPX0NPTVBMRVRFXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmdyb3VwID1cclxuICAgICAgdGhpcy5ncm91cCA/P1xyXG4gICAgICB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5nZXRGb3JtR3JvdXAoJ211bHRpU2VsZWN0QXV0b2NvbXBsZXRlJyk7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucyA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnMgPz9cclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnM7XHJcbiAgICBpZiAodGhpcy5jb25maWc/LnZhbHVlKSB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuY29uZmlnPy52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGZvcm0gY29udHJvbCBjaGFuZ2UgZXZlbnQgb25jZSB0aGUgZm9ybSBjb250cm9sIGlzIHJlYWR5IG9uIG5nQWZ0ZXJWaWV3SW5pdCBieSBjYWxsaW5nIG9uVmFsdWVDaGFuZ2VzIG1ldGhvZC5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwPy5nZXQodGhpcy5jb25maWc/LmNvbnRyb2xOYW1lKT8uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgYW4gbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2hWYWx1ZSBjaGFuZ2UgZXZlbnQgd2hlbiB0aGUgdmFsdWUgaXMgY2hhbmdlZCBhbmQgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIG1pbkNoYXJUb1NlYXJjaCBvciBlcXVhbCB0byB6ZXJvLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgZnJvbUV2ZW50KHRoaXMubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIG1hcCgoZXZlbnQ6IGFueSkgPT4gZXZlbnQ/LnRhcmdldD8udmFsdWUpLFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgICAocmVzOiBhbnkpID0+XHJcbiAgICAgICAgICAgIHJlcz8ubGVuZ3RoIDxcclxuICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8uYXV0b2NvbXBsZXRlPy5taW5DaGFyVG9TZWFyY2ggJiZcclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggIT09IDBcclxuICAgICAgICApLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8uYXV0b2NvbXBsZXRlPy5kZWJvdW5jZVRpbWUpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHRleHQgPT09ICcnKSB0aGlzLmhhbmRsZUZpZWxkRXJyb3IoKTtcclxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZS5lbWl0KHRleHQpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmdyb3VwPy5jb250cm9sc1t0aGlzLmNvbmZpZz8uY29udHJvbE5hbWVdPy52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgICAocmVzOiBhbnkpID0+XHJcbiAgICAgICAgICAgIHJlcz8ubGVuZ3RoID49XHJcbiAgICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb25zdEluZm8/LmF1dG9jb21wbGV0ZT8ubWluQ2hhclRvU2VhcmNoIHx8XHJcbiAgICAgICAgICAgIHJlcz8ubGVuZ3RoID09PSAwXHJcbiAgICAgICAgKSxcclxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5hdXRvY29tcGxldGVDb25zdEluZm8/LmF1dG9jb21wbGV0ZT8uZGVib3VuY2VUaW1lKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHRleHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2hWYWx1ZS5lbWl0KHRleHQpO1xyXG4gICAgICAgIGlmICh0ZXh0ID09PSAnJykgdGhpcy5oYW5kbGVGaWVsZEVycm9yKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyBmaWVsZCBlcnJvciBieSBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSBmb3JtIGNvbnRyb2wgZXJyb3JzLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZUZpZWxkRXJyb3IoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmdyb3VwPy5nZXQodGhpcy5jb25maWc/LmNvbnRyb2xOYW1lKT8uc2V0RXJyb3JzKHtcclxuICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcyBhIG5ld2x5IGVudGVyZWQgb3B0aW9uIHRvIHRoZSBzZWxlY3RlZE9wdGlvbnMgYXJyYXkuXHJcbiAgICogQHBhcmFtIHsqfSBldmVudCAtVGhlIGV2ZW50IGNvbnRhaW5pbmcgdGhlIGlucHV0IGFuZCB2YWx1ZS5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBhZGQoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hdXRvQ29tcGxldGVPcHRpb25MaXN0Lmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ3JvdXA/LmdldCh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUpO1xyXG4gICAgY29uc3QgaW5wdXQgPSBldmVudD8uY2hpcElucHV0Py5pbnB1dEVsZW1lbnQ7XHJcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudD8udmFsdWUgfHwgJycpLnRyaW0oKTtcclxuICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IG1pbkxlbmd0aCA9IGNvbnRyb2w/LmVycm9ycz8uWydtaW5sZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGg7XHJcbiAgICBjb25zdCBtYXhMZW5ndGggPSBjb250cm9sPy5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RoO1xyXG4gICAgaWYgKFxyXG4gICAgICAodmFsdWUubGVuZ3RoID49IG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPD0gbWF4TGVuZ3RoKSB8fFxyXG4gICAgICAobWluTGVuZ3RoID09PSB1bmRlZmluZWQgJiYgbWF4TGVuZ3RoID09PSB1bmRlZmluZWQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaCh7IGlkOiAnJywgbmFtZTogdmFsdWUgfSk7XHJcbiAgICAgIGlmIChpbnB1dCkgaW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5mb3JtYXRTZWxlY3RlZE9wdGlvbih0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgYSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgc2VsZWN0ZWRPcHRpb25zIGFycmF5LlxyXG4gICAqIEBwYXJhbSB7U2VsZWN0T3B0aW9ufSByZW1vdmVkT3B0aW9uIC1UaGUgb3B0aW9uIHRvIHJlbW92ZS5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBvbk9wdGlvblJlbW92ZWQocmVtb3ZlZE9wdGlvbjogU2VsZWN0T3B0aW9uKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zPy5maW5kSW5kZXgoXHJcbiAgICAgIChvcHRpb246IFNlbGVjdE9wdGlvbikgPT4gb3B0aW9uLmlkID09PSByZW1vdmVkT3B0aW9uLmlkXHJcbiAgICApO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnM/LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnM/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmdyb3VwLnZhbHVlW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0gPSAnJztcclxuICAgICAgdGhpcy5ncm91cD8uY29udHJvbHNbdGhpcy5jb25maWc/LmNvbnRyb2xOYW1lXS5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW107XHJcbiAgICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uTGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLmhhbmRsZUZpZWxkRXJyb3IoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybWF0U2VsZWN0ZWRPcHRpb24odGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgc2VsZWN0aW9uIG9mIGFuIGF1dG9jb21wbGV0ZSBvcHRpb24uXHJcbiAgICogQHBhcmFtIHtBdXRvQ29tcGxldGVPcHRpb259IG9wdGlvbiAgLVRoZSBzZWxlY3RlZCBhdXRvY29tcGxldGUgb3B0aW9uLlxyXG4gICAqIEByZXR1cm4ge0F1dG9Db21wbGV0ZU9wdGlvbn1cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG9uQ2hhbmdlKG9wdGlvbjogYW55KTogQXV0b0NvbXBsZXRlT3B0aW9uIHtcclxuICAgIGNvbnN0IHZhbHVlID0gb3B0aW9uPy52YWx1ZTtcclxuICAgIGlmICh0aGlzLmlzQ2hlY2tib3hTZWxlY3RlZCh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5vbk9wdGlvblJlbW92ZWQodmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMucHVzaCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1hdFNlbGVjdGVkT3B0aW9uKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0cyB0aGUgc2VsZWN0ZWQgb3B0aW9ucyBhbmQgZW1pdHMgdGhlIG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgZXZlbnQuXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb25bXX0gc2VsZWN0ZWRPcHRpb25zIC1BcnJheSBvZiBzZWxlY3RlZCBvcHRpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZvcm1hdFNlbGVjdGVkT3B0aW9uKHNlbGVjdGVkT3B0aW9uczogU2VsZWN0T3B0aW9uW10pIHtcclxuICAgIGNvbnN0IGZvcm1hdHRlZE9wdGlvbnMgPSBzZWxlY3RlZE9wdGlvbnM/Lm1hcCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaWQ6IG9wdGlvbi5pZCxcclxuICAgICAgICBuYW1lOiBvcHRpb24ubmFtZSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnNTZWxlY3RlZD8uZW1pdChmb3JtYXR0ZWRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXlzIHRoZSBuYW1lIG9mIHRoZSBvcHRpb25cclxuICAgKiBAcGFyYW0ge0F1dG9Db21wbGV0ZU9wdGlvbn0gb3B0aW9uXHJcbiAgICogQHJldHVybiB7Kn0gIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZGlzcGxheU9wdGlvbk5hbWUob3B0aW9uOiBBdXRvQ29tcGxldGVPcHRpb24pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG9wdGlvbj8ubmFtZSA/IG9wdGlvbi5uYW1lIDogJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmFja3MgdGhlIG9wdGlvbiBieSBpdHMgaW5kZXggb3IgaWQuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IG9wdGlvblxyXG4gICAqIEByZXR1cm4geyp9ICB7KG51bWJlciB8IHN0cmluZyl9XHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIG9wdGlvbjogU2VsZWN0T3B0aW9uKTogbnVtYmVyIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiBvcHRpb24uaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVja3MgaWYgdGhlIGNoZWNrYm94IGlzIHNlbGVjdGVkLlxyXG4gICAqIEBwYXJhbSB7QXV0b0NvbXBsZXRlT3B0aW9ufSBvcHRpb25cclxuICAgKiBAcmV0dXJuIHsqfSAge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaXNDaGVja2JveFNlbGVjdGVkKG9wdGlvbjogQXV0b0NvbXBsZXRlT3B0aW9uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbnM/LnNvbWUoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IG9wdGlvbi5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhcnMgYWxsIHNlbGVjdGVkIG9wdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY2xlYXJTZWxlY3Rpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncm91cC52YWx1ZVt0aGlzLmNvbmZpZz8uY29udHJvbE5hbWVdID0gJyc7XHJcbiAgICB0aGlzLmdyb3VwPy5jb250cm9sc1t0aGlzLmNvbmZpZz8uY29udHJvbE5hbWVdLnNldFZhbHVlKCcnKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW107XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbkxpc3QgPSBbXTtcclxuICAgIHRoaXMuZm9ybWF0U2VsZWN0ZWRPcHRpb24odGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xyXG4gICAgdGhpcy5oYW5kbGVGaWVsZEVycm9yKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uRGVzdHJveSBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gdW5zdWJzY3JpYmUgdGhlIG9wZW4gb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb25zLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgKm5nSWY9XCJncm91cFwiXHJcbiAgW25nQ2xhc3NdPVwiXHJcbiAgICBjb25maWcuaXNMYWJlbEFsaWduZWRMZWZ0XHJcbiAgICAgID8gJ2llZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlLWZpZWxkX19sYWJlbC1sZWZ0J1xyXG4gICAgICA6ICdpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS1maWVsZF9fbGFiZWwtdG9wJ1xyXG4gIFwiXHJcbj5cclxuICA8bWF0LWxhYmVsIGNsYXNzPVwiaWVlZXNhLWJvZHktc20tMTQgaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGVfX2xhYmVsXCJcclxuICAgID57eyBjb25maWcubGFiZWwgfX08L21hdC1sYWJlbFxyXG4gID5cclxuICA8bWF0LWZvcm0tZmllbGRcclxuICAgIGNsYXNzPVwiaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGVfX21hdC1mb3JtLWZpZWxkXCJcclxuICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcclxuICA+XHJcbiAgICA8bWF0LWNoaXAtZ3JpZFxyXG4gICAgICAjY2hpcEdyaWRcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRvY29tcGxldGVDb25zdEluZm8/Lm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlPy5hcmlhTGFiZWw/LnNlbGVjdGVkT3B0aW9uc1wiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtY2hpcC1yb3dcclxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNlbGVjdGVkT3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm9wdGlvbj8ubmFtZVwiXHJcbiAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAocmVtb3ZlZCk9XCJvbk9wdGlvblJlbW92ZWQob3B0aW9uKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8cFxyXG4gICAgICAgICAgaWVlZXNhVGV4dFRydW5jYXRlZFxyXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwib3B0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtbGFiZWwtbGctYm9sZC0xNiBtLTBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdENoaXBSZW1vdmVcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8uYXJpYUxhYmVsPy5yZW1vdmVPcHRpb24gKyBvcHRpb24ubmFtZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImllZWVzYS1jaGlwX19zdmctYXZhdGFyXCIgbWF0Q2hpcEF2YXRhcj5cclxuICAgICAgICAgICAgPHVzZSBbYXR0ci54bGluazpocmVmXT1cInJlbW92ZUljb25VUkxcIj48L3VzZT5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1jaGlwLXJvdz5cclxuICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgIDxpbnB1dFxyXG4gICAgICBtYXRJbnB1dFxyXG4gICAgICBjbGFzcz1cImllZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlX19pbnB1dCBpZWVlc2EtdGl0bGUtc20tMTZcIlxyXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXIgPz8gJydcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbmZpZy5jb250cm9sTmFtZVwiXHJcbiAgICAgIFtuYW1lXT1cImNvbmZpZy5jb250cm9sTmFtZVwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnLmFyaWFMYWJlbFwiXHJcbiAgICAgIFthcmlhLWRlc2NyaWJlZGJ5XT1cImNvbmZpZy5hcmlhRGVzY3JpYmVkQnlJZCA/PyAnJ1wiXHJcbiAgICAgICNtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVxyXG4gICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCJcclxuICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImFkZCgkZXZlbnQpXCJcclxuICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwR3JpZFwiXHJcbiAgICAvPlxyXG4gICAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICAgI21hdEF1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvbkNoYW5nZSgkZXZlbnQub3B0aW9uKVwiXHJcbiAgICAgIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5T3B0aW9uTmFtZVwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGVfX2F1dG9jb21wbGV0ZS1saXN0XCJcclxuICAgID5cclxuICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGF1dG9Db21wbGV0ZU9wdGlvbkxpc3Q7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIFtjaGVja2VkXT1cImlzQ2hlY2tib3hTZWxlY3RlZChvcHRpb24pXCI+XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgbWF0U3VmZml4XHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJjbGVhckFsbFwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXV0b2NvbXBsZXRlQ29uc3RJbmZvLmFyaWFMYWJlbC5jbGVhclwiXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDBcIlxyXG4gICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb25zKClcIlxyXG4gICAgPlxyXG4gICAgICA8c3ZnIGNsYXNzPVwiaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGVfX3N2Zy1jbGVhci1hbGxcIj5cclxuICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwiY2xlYXJBbGxJY29uVVJMXCI+PC91c2U+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8aWVlZXNhLWZvcm0tZXJyb3IgW2Zvcm1Hcm91cF09XCJncm91cFwiIFtjb25maWddPVwiY29uZmlnXCI+IDwvaWVlZXNhLWZvcm0tZXJyb3I+XHJcbiAgPGllZWVzYS1mb3JtLXN1cHBvcnQtdGV4dFxyXG4gICAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgPjwvaWVlZXNhLWZvcm0tc3VwcG9ydC10ZXh0PlxyXG48L2Rpdj5cclxuIl19
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1hdXRvY29tcGxldGUvbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1hdXRvY29tcGxldGUvbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQ0FBZ0MsR0FFakMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFB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O2dCQUN6QyxRQUFRLEVBQUU7b0JBQ1IsaUJBQWlCLEVBQUUsZ0RBQWdEO2lCQUNwRTthQUNGO1NBQ0Ysb1FDekVILHkxR0E2RkEsK3JlRHpDSSxZQUFZLDZWQUNaLG1CQUFtQixvMkJBQ25CLGtCQUFrQixpSEFDbEIsd0JBQXdCLHdJQUN4QixlQUFlLDBIQUNmLHFCQUFxQixvV0FDckIsY0FBYyx1dkJBQ2QsYUFBYSw4QkFDYixlQUFlLDJMQUNmLGlCQUFpQixnTEFDakIsY0FBYyw0NEJBQ2QsZ0JBQWdCLGdJQUNoQixzQkFBc0I7OzRGQWNiLGdDQUFnQztrQkE5QjVDLFNBQVM7K0JBQ0Usa0NBQWtDLGNBQ2hDLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixzQkFBc0I7cUJBQ3ZCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFO2dDQUNSLGlCQUFpQixFQUFFLGdEQUFnRDs2QkFDcEU7eUJBQ0Y7cUJBQ0YsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTt5SUFlakMsOEJBQThCO3NCQURqQyxLQUFLO2dCQWFJLGtDQUFrQztzQkFBM0MsTUFBTTtnQkFDRyx1Q0FBdUM7c0JBQWhELE1BQU07Z0JBRUcsc0NBQXNDO3NCQUEvQyxNQUFNO2dCQUcrQix1QkFBdUI7c0JBQTVELFNBQVM7dUJBQUMseUJBQXlCO2dCQUNGLFlBQVk7c0JBQTdDLFNBQVM7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gIE1BVF9BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLFxyXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCwgZmlsdGVyLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIGF1dG9jb21wbGV0ZUNvbnN0SW5mbyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLWNvbnRyb2wtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRvY29tcGxldGUtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWVsZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXN1cHBvcnQtdGV4dC9mb3JtLXN1cHBvcnQtdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFRleHRUcnVuY2F0ZWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RleHQtdHJ1bmNhdGVkL3RleHQtdHJ1bmNhdGVkLmRpcmVjdGl2ZSc7XHJcbi8qKlxyXG4gKiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudCBhbGxvd3MgdG8gc2VhcmNoIHRoZSBvcHRpb24ocykgZnJvbSB0aGUgbGlzdCBhbmQgc2VsZWN0IHRoZSBvcHRpb24ocykgZnJvbSB0aGUgYXV0b2NvbXBsZXRlIHNlYXJjaCByZXN1bHRzLlxyXG4gKiBAY2xhc3MgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge0Zvcm1GaWVsZH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICogQGltcGxlbWVudHMge0FmdGVyVmlld0luaXR9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3JtRXJyb3JDb21wb25lbnQsXHJcbiAgICBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIFRleHRUcnVuY2F0ZWREaXJlY3RpdmUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsXHJcbiAgICAgIHVzZVZhbHVlOiB7XHJcbiAgICAgICAgb3ZlcmxheVBhbmVsQ2xhc3M6ICdpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS1vdmVybGF5LXBhbmVsJyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBGb3JtRmllbGQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xyXG4gIGNvbmZpZyE6IEZpZWxkQ29uZmlnO1xyXG4gIGdyb3VwITogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBhdXRvQ29tcGxldGVPcHRpb25MaXN0ITogQXV0b0NvbXBsZXRlT3B0aW9uW107XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgb3B0aW9ucyBmb3IgbXVsdGkgc2VsZWN0IGF1dG9jb21wbGV0ZS5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnModmFsdWU6IEF1dG9Db21wbGV0ZU9wdGlvbltdKSB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbkxpc3QgPSB2YWx1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgYXV0b2NvbXBsZXRlIG9wdGlvbnMgbGlzdC5cclxuICAgKiBAcmVhZG9ubHlcclxuICAgKiBAdHlwZSB7QXV0b0NvbXBsZXRlT3B0aW9uW119XHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucygpOiBBdXRvQ29tcGxldGVPcHRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGVPcHRpb25MaXN0O1xyXG4gIH1cclxuICBAT3V0cHV0KCkgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2hWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUgPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIEF1dG9Db21wbGV0ZU9wdGlvbltdXHJcbiAgPigpO1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VsZWN0QXV0b0NvbXBsZXRlJykgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGUhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZVRyaWdnZXInKSBtYXRBQ1RyaWdnZXIhOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGF1dG9jb21wbGV0ZUNvbnN0SW5mbzogYW55ID0gYXV0b2NvbXBsZXRlQ29uc3RJbmZvO1xyXG4gIHJlbW92ZUljb25VUkwgPVxyXG4gICAgdGhpcy5hdXRvY29tcGxldGVDb25zdEluZm8/Lm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlPy5pY29ucz8ucmVtb3ZlO1xyXG4gIGNsZWFyQWxsSWNvblVSTCA9XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/Lmljb25zPy5jbGVhckFsbDtcclxuICBjbGVhckFsbCA9XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/LmxhYmVsLmNsZWFyQWxsO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBmb3JtVXRpbGl0eVNlcnZpY2U6IEZvcm1VdGlsaXR5U2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gaW5pdGlhbGl6ZSBjb21wb25lbnRzIGluc3RhbmNlIHByb3BlcnRpZXMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZyA9XHJcbiAgICAgIHRoaXMuY29uZmlnID8/XHJcbiAgICAgIHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1GaWVsZENvbmZpZyhcclxuICAgICAgICAnbXVsdGlTZWxlY3RBdXRvY29tcGxldGUnLFxyXG4gICAgICAgIEZvcm1Db250cm9sVHlwZS5BVVRPX0NPTVBMRVRFXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmdyb3VwID1cclxuICAgICAgdGhpcy5ncm91cCA/P1xyXG4gICAgICB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5nZXRGb3JtR3JvdXAoJ211bHRpU2VsZWN0QXV0b2NvbXBsZXRlJyk7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucyA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnMgPz9cclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnM7XHJcbiAgICBpZiAodGhpcy5jb25maWc/LnZhbHVlKSB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuY29uZmlnPy52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGZvcm0gY29udHJvbCBjaGFuZ2UgZXZlbnQgb25jZSB0aGUgZm9ybSBjb250cm9sIGlzIHJlYWR5IG9uIG5nQWZ0ZXJWaWV3SW5pdCBieSBjYWxsaW5nIG9uVmFsdWVDaGFuZ2VzIG1ldGhvZC5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwPy5nZXQodGhpcy5jb25maWc/LmNvbnRyb2xOYW1lKT8uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlcygpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaFZhbHVlIGNoYW5nZSBldmVudCB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIGFuZCB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gbWluQ2hhclRvU2VhcmNoIG9yIGVxdWFsIHRvIHplcm8uXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WYWx1ZUNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBmcm9tRXZlbnQodGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8ubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbWFwKChldmVudDogYW55KSA9PiBldmVudD8udGFyZ2V0Py52YWx1ZSksXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgIChyZXM6IGFueSkgPT5cclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPFxyXG4gICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5hdXRvY29tcGxldGU/Lm1pbkNoYXJUb1NlYXJjaCAmJlxyXG4gICAgICAgICAgICByZXM/Lmxlbmd0aCAhPT0gMFxyXG4gICAgICAgICksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5hdXRvY29tcGxldGU/LmRlYm91bmNlVGltZSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAodGV4dCA9PT0gJycpIHRoaXMuaGFuZGxlRmllbGRFcnJvcigpO1xyXG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlLmVtaXQodGV4dCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZ3JvdXA/LmNvbnRyb2xzW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0/LnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgIChyZXM6IGFueSkgPT5cclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPj1cclxuICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8uYXV0b2NvbXBsZXRlPy5taW5DaGFyVG9TZWFyY2ggfHxcclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPT09IDBcclxuICAgICAgICApLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8uYXV0b2NvbXBsZXRlPy5kZWJvdW5jZVRpbWUpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaFZhbHVlLmVtaXQodGV4dCk7XHJcbiAgICAgICAgaWYgKHRleHQgPT09ICcnKSB0aGlzLmhhbmRsZUZpZWxkRXJyb3IoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZpZWxkIGVycm9yIGJ5IHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIGZvcm0gY29udHJvbCBlcnJvcnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaGFuZGxlRmllbGRFcnJvcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXA/LmdldCh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUpPy5zZXRFcnJvcnMoe1xyXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbmV3bHkgZW50ZXJlZCBvcHRpb24gdG8gdGhlIHNlbGVjdGVkT3B0aW9ucyBhcnJheS5cclxuICAgKiBAcGFyYW0geyp9IGV2ZW50IC1UaGUgZXZlbnQgY29udGFpbmluZyB0aGUgaW5wdXQgYW5kIHZhbHVlLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbkxpc3QubGVuZ3RoKSByZXR1cm47XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5ncm91cD8uZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSk7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50Py5jaGlwSW5wdXQ/LmlucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50Py52YWx1ZSB8fCAnJykudHJpbSgpO1xyXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgY29uc3QgbWluTGVuZ3RoID0gY29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddPy5yZXF1aXJlZExlbmd0aDtcclxuICAgIGNvbnN0IG1heExlbmd0aCA9IGNvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGg7XHJcbiAgICBpZiAoXHJcbiAgICAgICh2YWx1ZS5sZW5ndGggPj0gbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8PSBtYXhMZW5ndGgpIHx8XHJcbiAgICAgIChtaW5MZW5ndGggPT09IHVuZGVmaW5lZCAmJiBtYXhMZW5ndGggPT09IHVuZGVmaW5lZClcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKHsgaWQ6ICcnLCBuYW1lOiB2YWx1ZSB9KTtcclxuICAgICAgaWYgKGlucHV0KSBpbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLmZvcm1hdFNlbGVjdGVkT3B0aW9uKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIHNlbGVjdGVkIG9wdGlvbiBmcm9tIHRoZSBzZWxlY3RlZE9wdGlvbnMgYXJyYXkuXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IHJlbW92ZWRPcHRpb24gLVRoZSBvcHRpb24gdG8gcmVtb3ZlLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3B0aW9uUmVtb3ZlZChyZW1vdmVkT3B0aW9uOiBTZWxlY3RPcHRpb24pOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbnM/LmZpbmRJbmRleChcclxuICAgICAgKG9wdGlvbjogU2VsZWN0T3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IHJlbW92ZWRPcHRpb24uaWRcclxuICAgICk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucz8uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAudmFsdWVbdGhpcy5jb25maWc/LmNvbnRyb2xOYW1lXSA9ICcnO1xyXG4gICAgICB0aGlzLmdyb3VwPy5jb250cm9sc1t0aGlzLmNvbmZpZz8uY29udHJvbE5hbWVdLnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25MaXN0ID0gW107XHJcbiAgICAgIHRoaXMuaGFuZGxlRmllbGRFcnJvcigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtYXRTZWxlY3RlZE9wdGlvbih0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzZWxlY3Rpb24gb2YgYW4gYXV0b2NvbXBsZXRlIG9wdGlvbi5cclxuICAgKiBAcGFyYW0ge0F1dG9Db21wbGV0ZU9wdGlvbn0gb3B0aW9uICAtVGhlIHNlbGVjdGVkIGF1dG9jb21wbGV0ZSBvcHRpb24uXHJcbiAgICogQHJldHVybiB7QXV0b0NvbXBsZXRlT3B0aW9ufVxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb25DaGFuZ2Uob3B0aW9uOiBhbnkpOiBBdXRvQ29tcGxldGVPcHRpb24ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBvcHRpb24/LnZhbHVlO1xyXG4gICAgaWYgKHRoaXMuaXNDaGVja2JveFNlbGVjdGVkKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm9uT3B0aW9uUmVtb3ZlZCh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKHZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybWF0U2VsZWN0ZWRPcHRpb24odGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xyXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXRzIHRoZSBzZWxlY3RlZCBvcHRpb25zIGFuZCBlbWl0cyB0aGUgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCBldmVudC5cclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbltdfSBzZWxlY3RlZE9wdGlvbnMgLUFycmF5IG9mIHNlbGVjdGVkIG9wdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZm9ybWF0U2VsZWN0ZWRPcHRpb24oc2VsZWN0ZWRPcHRpb25zOiBTZWxlY3RPcHRpb25bXSkge1xyXG4gICAgY29uc3QgZm9ybWF0dGVkT3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucz8ubWFwKChvcHRpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpZDogb3B0aW9uLmlkLFxyXG4gICAgICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkPy5lbWl0KGZvcm1hdHRlZE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheXMgdGhlIG5hbWUgb2YgdGhlIG9wdGlvblxyXG4gICAqIEBwYXJhbSB7QXV0b0NvbXBsZXRlT3B0aW9ufSBvcHRpb25cclxuICAgKiBAcmV0dXJuIHsqfSAge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBkaXNwbGF5T3B0aW9uTmFtZShvcHRpb246IEF1dG9Db21wbGV0ZU9wdGlvbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gb3B0aW9uPy5uYW1lID8gb3B0aW9uLm5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYWNrcyB0aGUgb3B0aW9uIGJ5IGl0cyBpbmRleCBvciBpZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQHJldHVybiB7Kn0gIHsobnVtYmVyIHwgc3RyaW5nKX1cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgb3B0aW9uOiBTZWxlY3RPcHRpb24pOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG9wdGlvbi5pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgY2hlY2tib3ggaXMgc2VsZWN0ZWQuXHJcbiAgICogQHBhcmFtIHtBdXRvQ29tcGxldGVPcHRpb259IG9wdGlvblxyXG4gICAqIEByZXR1cm4geyp9ICB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBpc0NoZWNrYm94U2VsZWN0ZWQob3B0aW9uOiBBdXRvQ29tcGxldGVPcHRpb24pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ucz8uc29tZSgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gb3B0aW9uLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFycyBhbGwgc2VsZWN0ZWQgb3B0aW9ucy5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBjbGVhclNlbGVjdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwLnZhbHVlW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0gPSAnJztcclxuICAgIHRoaXMuZ3JvdXA/LmNvbnRyb2xzW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0uc2V0VmFsdWUoJycpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5mb3JtYXRTZWxlY3RlZE9wdGlvbih0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgICB0aGlzLmhhbmRsZUZpZWxkRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIG5nT25EZXN0cm95IGxpZmVjeWNsZSBob29rIG1ldGhvZCB0byB1bnN1YnNjcmliZSB0aGUgb3BlbiBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImllZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlXCJcclxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICAqbmdJZj1cImdyb3VwXCJcclxuICBbbmdDbGFzc109XCJcclxuICAgIGNvbmZpZy5pc0xhYmVsQWxpZ25lZExlZnRcclxuICAgICAgPyAnaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGUtZmllbGRfX2xhYmVsLWxlZnQnXHJcbiAgICAgIDogJ2llZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlLWZpZWxkX19sYWJlbC10b3AnXHJcbiAgXCJcclxuPlxyXG4gIDxtYXQtbGFiZWwgY2xhc3M9XCJpZWVlc2EtYm9keS1zbS0xNCBpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fbGFiZWxcIlxyXG4gICAgPnt7IGNvbmZpZy5sYWJlbCB9fTwvbWF0LWxhYmVsXHJcbiAgPlxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fbWF0LWZvcm0tZmllbGRcIlxyXG4gICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxyXG4gID5cclxuICAgIDxtYXQtY2hpcC1ncmlkXHJcbiAgICAgICNjaGlwR3JpZFxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/LmFyaWFMYWJlbD8uc2VsZWN0ZWRPcHRpb25zXCJcclxuICAgID5cclxuICAgICAgPG1hdC1jaGlwLXJvd1xyXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uPy5uYW1lXCJcclxuICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxyXG4gICAgICAgIChyZW1vdmVkKT1cIm9uT3B0aW9uUmVtb3ZlZChvcHRpb24pXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBpZWVlc2FUZXh0VHJ1bmNhdGVkXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJvcHRpb24ubmFtZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1sYWJlbC1sZy1ib2xkLTE2IG0tMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0Q2hpcFJlbW92ZVxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRvY29tcGxldGVDb25zdEluZm8/Lm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlPy5hcmlhTGFiZWw/LnJlbW92ZU9wdGlvbiArIG9wdGlvbi5uYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiaWVlZXNhLWNoaXBfX3N2Zy1hdmF0YXJcIiBtYXRDaGlwQXZhdGFyPlxyXG4gICAgICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwicmVtb3ZlSWNvblVSTFwiPjwvdXNlPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgPC9tYXQtY2hpcC1ncmlkPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGVfX2lucHV0IGllZWVzYS10aXRsZS1zbS0xNlwiXHJcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlciA/PyAnJ1wiXHJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgW25hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcuYXJpYUxhYmVsXCJcclxuICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiY29uZmlnLmFyaWFEZXNjcmliZWRCeUlkID8/ICcnXCJcclxuICAgICAgI211bHRpU2VsZWN0QXV0b0NvbXBsZXRlXHJcbiAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxyXG4gICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIlxyXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBHcmlkXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZVxyXG4gICAgICAjbWF0QXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uQ2hhbmdlKCRldmVudC5vcHRpb24pXCJcclxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlPcHRpb25OYW1lXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fYXV0b2NvbXBsZXRlLWxpc3RcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXV0b0NvbXBsZXRlT3B0aW9uTGlzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgW2NoZWNrZWRdPVwiaXNDaGVja2JveFNlbGVjdGVkKG9wdGlvbilcIj5cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBtYXRTdWZmaXhcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIFttYXRUb29sdGlwXT1cImNsZWFyQWxsXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRvY29tcGxldGVDb25zdEluZm8uYXJpYUxhYmVsLmNsZWFyXCJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMFwiXHJcbiAgICAgIChjbGljayk9XCJjbGVhclNlbGVjdGlvbnMoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxzdmcgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fc3ZnLWNsZWFyLWFsbFwiPlxyXG4gICAgICAgIDx1c2UgW2F0dHIueGxpbms6aHJlZl09XCJjbGVhckFsbEljb25VUkxcIj48L3VzZT5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxpZWVlc2EtZm9ybS1lcnJvciBbZm9ybUdyb3VwXT1cImdyb3VwXCIgW2NvbmZpZ109XCJjb25maWdcIj4gPC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuICA8aWVlZXNhLWZvcm0tc3VwcG9ydC10ZXh0XHJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICA+PC9pZWVlc2EtZm9ybS1zdXBwb3J0LXRleHQ+XHJcbjwvZGl2PlxyXG4iXX0=
|