@igo2/integration 17.0.0-next.4 → 17.0.0-next.6
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/about/about-tool/about-tool.component.mjs +4 -4
- package/esm2022/lib/about/about.module.mjs +1 -1
- package/esm2022/lib/analytics/analytics-listener.service.mjs +1 -1
- package/esm2022/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.mjs +1 -2
- package/esm2022/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.mjs +1 -1
- package/esm2022/lib/catalog/catalog-library-tool/catalog-library-tool.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-library-tool/catalog-library-tool.module.mjs +1 -1
- package/esm2022/lib/catalog/catalog.module.mjs +1 -1
- package/esm2022/lib/catalog/catalog.state.mjs +1 -1
- package/esm2022/lib/context/context-editor-tool/context-editor-tool.component.mjs +1 -1
- package/esm2022/lib/context/context-manager-tool/context-manager-tool.component.mjs +1 -1
- package/esm2022/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.mjs +1 -1
- package/esm2022/lib/context/context-share-tool/context-share-tool.component.mjs +2 -2
- package/esm2022/lib/context/context.module.mjs +1 -1
- package/esm2022/lib/context/context.state.mjs +1 -1
- package/esm2022/lib/context/index.mjs +1 -1
- package/esm2022/lib/directions/directions-tool/directions-tool.component.mjs +3 -3
- package/esm2022/lib/directions/directions.module.mjs +1 -1
- package/esm2022/lib/draw/draw.module.mjs +1 -1
- package/esm2022/lib/draw/drawing-tool/drawing-tool.component.mjs +2 -2
- package/esm2022/lib/draw/drawing-tool/drawing-tool.module.mjs +1 -1
- package/esm2022/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.mjs +1 -1
- package/esm2022/lib/filter/active-time-filter-tool/active-time-filter-tool.component.mjs +3 -3
- package/esm2022/lib/filter/filter.module.mjs +1 -1
- package/esm2022/lib/filter/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filter-tool/ogc-filter-tool.component.mjs +1 -1
- package/esm2022/lib/filter/spatial-filter-tool/spatial-filter-tool.component.mjs +5 -5
- package/esm2022/lib/filter/time-filter-tool/time-filter-tool.component.mjs +1 -1
- package/esm2022/lib/geometry-form/data-issue-reporter-tool/data-issue-reporter-tool.component.mjs +4 -4
- package/esm2022/lib/geometry-form/data-issue-reporter-tool/index.mjs +1 -1
- package/esm2022/lib/geometry-form/geometry-form.module.mjs +1 -1
- package/esm2022/lib/geometry-form/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export-tool/import-export-tool.component.mjs +4 -4
- package/esm2022/lib/import-export/import-export.module.mjs +1 -1
- package/esm2022/lib/integration.module.mjs +1 -1
- package/esm2022/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs +3 -3
- package/esm2022/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +2 -2
- package/esm2022/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +3 -3
- package/esm2022/lib/map/index.mjs +1 -1
- package/esm2022/lib/map/map-details-tool/map-details-tool.component.mjs +3 -3
- package/esm2022/lib/map/map-legend/map-legend-tool.component.mjs +2 -2
- package/esm2022/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +4 -4
- package/esm2022/lib/map/map-proximity.state.mjs +1 -1
- package/esm2022/lib/map/map-tool/map-tool.component.mjs +3 -3
- package/esm2022/lib/map/map-tools/map-tools.component.mjs +3 -3
- package/esm2022/lib/map/map.module.mjs +1 -1
- package/esm2022/lib/map/map.state.mjs +1 -1
- package/esm2022/lib/measure/measure.module.mjs +1 -1
- package/esm2022/lib/measure/measurer-tool/measurer-tool.component.mjs +2 -2
- package/esm2022/lib/measure/measurer-tool/measurer-tool.module.mjs +1 -1
- package/esm2022/lib/print/print-tool/print-tool.component.mjs +2 -2
- package/esm2022/lib/print/print.module.mjs +1 -1
- package/esm2022/lib/search/index.mjs +1 -1
- package/esm2022/lib/search/query.state.mjs +1 -1
- package/esm2022/lib/search/search-bar/search-bar-binding.directive.mjs +1 -1
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +1 -1
- package/esm2022/lib/search/search-results-tool/search-results-tool.component.mjs +4 -4
- package/esm2022/lib/search/search-results-tool/search-results-tool.module.mjs +1 -1
- package/esm2022/lib/search/search.module.mjs +1 -1
- package/esm2022/lib/search/search.state.mjs +8 -6
- package/esm2022/lib/storage/storage.state.mjs +1 -1
- package/esm2022/lib/tool/tool.state.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-actions.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-actions.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-actions.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +5 -5
- package/esm2022/lib/workspace/workspace-button/workspace-button.component.mjs +3 -3
- package/esm2022/lib/workspace/workspace.module.mjs +1 -1
- package/esm2022/lib/workspace/workspace.state.mjs +1 -1
- package/esm2022/public_api.mjs +1 -1
- package/fesm2022/igo2-integration.mjs +55 -54
- package/fesm2022/igo2-integration.mjs.map +1 -1
- package/locale/en.integration.json +143 -143
- package/locale/fr.integration.json +143 -143
- package/package.json +4 -4
|
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
68
68
|
type: HostListener,
|
|
69
69
|
args: ['searchTypeChange', ['$event']]
|
|
70
70
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvc2VhcmNoL3NlYXJjaC1iYXIvc2VhcmNoLWJhci1iaW5kaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFHWixJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQU05QyxNQUFNLE9BQU8seUJBQXlCO0lBYWxCO0lBQ1I7SUFiVixJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDNUMsQ0FBQztJQUVPLFlBQVksQ0FBZTtJQUMzQixZQUFZLENBQWU7SUFDM0IsZ0JBQWdCLENBQWU7SUFFdkMsWUFDa0IsU0FBNkIsRUFDckMsV0FBd0I7UUFEaEIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFDckMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDL0IsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FDeEQsQ0FBQyxVQUFrQixFQUFFLEVBQUU7WUFDckIsSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3hELENBQUMsVUFBa0IsRUFBRSxFQUFFO1lBQ3JCLElBQUksVUFBVSxLQUFLLFNBQVMsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQ2hFLENBQUMsY0FBdUIsRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztRQUMzQyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsVUFBbUI7UUFDcEMsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsVUFBbUI7UUFDcEMsSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO3VHQTNEVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQWNJLElBQUk7bUVBbUNQLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRNUMsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBIb3N0TGlzdGVuZXIsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTZWFyY2hCYXJDb21wb25lbnQgfSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2VhcmNoU3RhdGUgfSBmcm9tICcuLi9zZWFyY2guc3RhdGUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaWdvU2VhcmNoQmFyQmluZGluZ10nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEJhckJpbmRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGdldCBzZWFyY2hUZXJtKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVGVybSQudmFsdWU7XG4gIH1cbiAgZ2V0IHNlYXJjaFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hUeXBlJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoVGVybSQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2VhcmNoVHlwZSQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2VhcmNoRGlzYWJsZWQkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgcHJpdmF0ZSBjb21wb25lbnQ6IFNlYXJjaEJhckNvbXBvbmVudCxcbiAgICBwcml2YXRlIHNlYXJjaFN0YXRlOiBTZWFyY2hTdGF0ZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWFyY2hUZXJtJCQgPSB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaFRlcm0kLnN1YnNjcmliZShcbiAgICAgIChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHNlYXJjaFRlcm0gIT09IHVuZGVmaW5lZCAmJiBzZWFyY2hUZXJtICE9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5jb21wb25lbnQuc2V0VGVybShzZWFyY2hUZXJtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLnNlYXJjaFR5cGUkJCA9IHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVHlwZSQuc3Vic2NyaWJlKFxuICAgICAgKHNlYXJjaFR5cGU6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoc2VhcmNoVHlwZSAhPT0gdW5kZWZpbmVkICYmIHNlYXJjaFR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudC5zZXRTZWFyY2hUeXBlKHNlYXJjaFR5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuc2VhcmNoRGlzYWJsZWQkJCA9IHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoRGlzYWJsZWQkLnN1YnNjcmliZShcbiAgICAgIChzZWFyY2hEaXNhYmxlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5kaXNhYmxlZCA9IHNlYXJjaERpc2FibGVkO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0kJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2VhcmNoVHlwZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZWFyY2hEaXNhYmxlZCQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdzZWFyY2hUZXJtQ2hhbmdlJywgWyckZXZlbnQnXSlcbiAgb25TZWFyY2hUZXJtQ2hhbmdlKHNlYXJjaFRlcm0/OiBzdHJpbmcpIHtcbiAgICBpZiAoc2VhcmNoVGVybSAhPT0gdGhpcy5zZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLnNlYXJjaFN0YXRlLnNldFNlYXJjaFRlcm0oc2VhcmNoVGVybSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignc2VhcmNoVHlwZUNoYW5nZScsIFsnJGV2ZW50J10pXG4gIG9uU2VhcmNoVHlwZUNoYW5nZShzZWFyY2hUeXBlPzogc3RyaW5nKSB7XG4gICAgaWYgKHNlYXJjaFR5cGUgIT09IHRoaXMuc2VhcmNoVHlwZSkge1xuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZXRTZWFyY2hUeXBlKHNlYXJjaFR5cGUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
16
16
|
exports: [SearchBarBindingDirective]
|
|
17
17
|
}]
|
|
18
18
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3NlYXJjaC9zZWFyY2gtYmFyL3NlYXJjaC1iYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRTNFOztHQUVHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjt1R0FBckIscUJBQXFCO3dHQUFyQixxQkFBcUIsWUFIdEIseUJBQXlCLGFBQ3pCLHlCQUF5Qjt3R0FFeEIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTZWFyY2hCYXJCaW5kaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWFyY2gtYmFyLWJpbmRpbmcuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBpbXBvcnQgdGhlIFNlYXJjaEJhckJpbmRpbmdEaXJlY3RpdmUgZGlyZWN0bHlcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NlYXJjaEJhckJpbmRpbmdEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbU2VhcmNoQmFyQmluZGluZ0RpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgSWdvQXBwU2VhcmNoQmFyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -510,13 +510,13 @@ let SearchResultsToolComponent = class SearchResultsToolComponent {
|
|
|
510
510
|
}, 250);
|
|
511
511
|
}
|
|
512
512
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SearchResultsToolComponent, deps: [{ token: i1.MapState }, { token: i2.SearchState }, { token: i0.ElementRef }, { token: i3.ToolState }, { token: i4.DirectionState }, { token: i5.ConfigService }], target: i0.ɵɵFactoryTarget.Component });
|
|
513
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: SearchResultsToolComponent, isStandalone: true, selector: "igo-search-results-tool", inputs: { showIcons: "showIcons", topPanelStateDefault: "topPanelStateDefault", topPanelState: "topPanelState" }, ngImport: i0, template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon\n
|
|
513
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: SearchResultsToolComponent, isStandalone: true, selector: "igo-search-results-tool", inputs: { showIcons: "showIcons", topPanelStateDefault: "topPanelStateDefault", topPanelState: "topPanelState" }, ngImport: i0, template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon>{{\n (topPanelState$ | async) === 'collapsed'\n ? 'arrow_upward'\n : 'arrow_downward'\n }}</mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"\n ((isSelectedResultOutOfView$ | async)\n ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView'\n : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip'\n ) | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async) === false\"\n >zoom_in</mat-icon\n >\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n >\n </igo-feature-details>\n </igo-panel>\n </div>\n</igo-flexible>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FlexibleComponent, selector: "igo-flexible", inputs: ["initial", "collapsed", "expanded", "initialMobile", "collapsedMobile", "expandedMobile", "direction", "state"] }, { kind: "component", type: SearchResultsComponent, selector: "igo-search-results", inputs: ["map", "store", "showIcons", "mode", "withZoomButton", "tabsMode", "term", "settingsChange$", "termSplitter"], outputs: ["resultFocus", "resultUnfocus", "resultSelect", "moreResults", "resultMouseenter", "resultMouseleave"] }, { kind: "component", type: SearchResultAddButtonComponent, selector: "igo-search-add-button", inputs: ["layer", "store", "added", "map", "saveSearchResultInLayer", "color", "stores"] }, { kind: "component", type: PanelComponent, selector: "igo-panel", inputs: ["title", "withHeader", "cursorPointer"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i9.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: FeatureDetailsComponent, selector: "igo-feature-details", inputs: ["source", "map", "toolbox", "feature"], outputs: ["routeEvent", "selectFeature", "htmlDisplayEvent"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
514
514
|
};
|
|
515
515
|
SearchResultsToolComponent = __decorate([
|
|
516
516
|
ToolComponent({
|
|
517
517
|
name: 'searchResults',
|
|
518
518
|
title: 'igo.integration.tools.searchResults',
|
|
519
|
-
icon: '
|
|
519
|
+
icon: 'search'
|
|
520
520
|
}),
|
|
521
521
|
__metadata("design:paramtypes", [MapState,
|
|
522
522
|
SearchState,
|
|
@@ -542,7 +542,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
542
542
|
AsyncPipe,
|
|
543
543
|
TranslateModule,
|
|
544
544
|
SanitizeHtmlPipe
|
|
545
|
-
], template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon\n
|
|
545
|
+
], template: "<div\n *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\"\n style=\"margin: 10px\"\n>\n <section class=\"mat-typography\">\n <h4>\n <strong>{{\n 'igo.integration.searchResultsTool.noResults' | translate\n }}</strong>\n </h4>\n <p>\n <strong>{{\n 'igo.integration.searchResultsTool.doSearch' | translate\n }}</strong>\n </p>\n <div\n [innerHTML]=\"\n 'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\n \"\n ></div>\n </section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\"\n>\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\"\n >\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\"\n >\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel\n [title]=\"featureTitle\"\n *ngIf=\"feature$ | async\"\n (click)=\"toggleTopPanel($event)\"\n [cursorPointer]=\"true\"\n >\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\"\n >\n <mat-icon>{{\n (topPanelState$ | async) === 'collapsed'\n ? 'arrow_upward'\n : 'arrow_downward'\n }}</mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"\n ((isSelectedResultOutOfView$ | async)\n ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView'\n : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip'\n ) | translate\n \"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\"\n >\n <mat-icon\n aria-hidden=\"false\"\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async) === false\"\n >zoom_in</mat-icon\n >\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\"\n >\n </igo-feature-details>\n </igo-panel>\n </div>\n</igo-flexible>\n" }]
|
|
546
546
|
}], ctorParameters: () => [{ type: i1.MapState }, { type: i2.SearchState }, { type: i0.ElementRef }, { type: i3.ToolState }, { type: i4.DirectionState }, { type: i5.ConfigService }], propDecorators: { showIcons: [{
|
|
547
547
|
type: Input
|
|
548
548
|
}], topPanelStateDefault: [{
|
|
@@ -550,4 +550,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
550
550
|
}], topPanelState: [{
|
|
551
551
|
type: Input
|
|
552
552
|
}] } });
|
|
553
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy10b29sL3NlYXJjaC1yZXN1bHRzLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMtdG9vbC9zZWFyY2gtcmVzdWx0cy10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUdMLGlCQUFpQixFQUVqQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixjQUFjLEVBQ2YsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxPQUFPLEVBRVAsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFLYiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsV0FBVyxFQUNYLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVB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aUIsbUxBQ2pCLHNCQUFzQix5U0FDdEIsOEJBQThCLDRKQUM5QixjQUFjLHVHQUNkLGVBQWUsMklBQ2YsYUFBYSxtTEFDYixnQkFBZ0IsNFRBQ2hCLGNBQWMsNFBBQ2QsdUJBQXVCLDBLQUN2QixTQUFTLDZDQUNULGVBQWUsd0ZBQ2YsZ0JBQWdCOztBQUdQLDBCQUEwQjtJQTFCdEMsYUFBYSxDQUFDO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLHFDQUFxQztRQUM1QyxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO3FDQWlIb0IsUUFBUTtRQUNMLFdBQVc7UUFDakIsVUFBVTtRQUNQLFNBQVM7UUFDSCxjQUFjO1FBQ3ZCLGFBQWE7R0FoR25CLDBCQUEwQixDQTBwQnRDOzsyRkExcEJZLDBCQUEwQjtrQkFyQnRDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCx1QkFBdUI7d0JBQ3ZCLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCO2lOQU1RLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQWdFRixhQUFhO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRW50aXR5U3RhdGUsXHJcbiAgRW50aXR5U3RvcmUsXHJcbiAgRmxleGlibGVDb21wb25lbnQsXHJcbiAgRmxleGlibGVTdGF0ZSxcclxuICBQYW5lbENvbXBvbmVudCxcclxuICBTYW5pdGl6ZUh0bWxQaXBlLFxyXG4gIFRvb2xDb21wb25lbnQsXHJcbiAgZ2V0RW50aXR5VGl0bGVcclxufSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xyXG5pbXBvcnQge1xyXG4gIEZFQVRVUkUsXHJcbiAgRmVhdHVyZSxcclxuICBGZWF0dXJlRGV0YWlsc0NvbXBvbmVudCxcclxuICBGZWF0dXJlTW90aW9uLFxyXG4gIEZlYXR1cmVTdG9yZSxcclxuICBJZ29NYXAsXHJcbiAgUmVzZWFyY2gsXHJcbiAgU2VhcmNoUmVzdWx0LFxyXG4gIFNlYXJjaFJlc3VsdEFkZEJ1dHRvbkNvbXBvbmVudCxcclxuICBTZWFyY2hSZXN1bHRzQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVPbEZlYXR1cmVzRXh0ZW50LFxyXG4gIGZlYXR1cmVGcm9tT2wsXHJcbiAgZmVhdHVyZVRvT2wsXHJcbiAgZmVhdHVyZXNBcmVPdXRPZlZpZXcsXHJcbiAgZmVhdHVyZXNBcmVUb29EZWVwSW5WaWV3LFxyXG4gIGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUsXHJcbiAgZ2V0Q29tbW9uVmVjdG9yU3R5bGUsXHJcbiAgbW92ZVRvT2xGZWF0dXJlcyxcclxuICByb3VuZENvb3JkVG9cclxufSBmcm9tICdAaWdvMi9nZW8nO1xyXG5cclxuaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcclxuaW1wb3J0IG9sRm9ybWF0R2VvSlNPTiBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTic7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCBvbFBvaW50IGZyb20gJ29sL2dlb20vUG9pbnQnO1xyXG5pbXBvcnQgKiBhcyBvbFByb2ogZnJvbSAnb2wvcHJvaic7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHBvaW50T25GZWF0dXJlIGZyb20gJ0B0dXJmL3BvaW50LW9uLWZlYXR1cmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IERpcmVjdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aW9ucy9kaXJlY3Rpb25zLnN0YXRlJztcclxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi8uLi9tYXAvbWFwLnN0YXRlJztcclxuaW1wb3J0IHsgVG9vbFN0YXRlIH0gZnJvbSAnLi4vLi4vdG9vbC90b29sLnN0YXRlJztcclxuaW1wb3J0IHsgU2VhcmNoU3RhdGUgfSBmcm9tICcuLi9zZWFyY2guc3RhdGUnO1xyXG5cclxuLyoqXHJcbiAqIFRvb2wgdG8gYnJvd3NlIHRoZSBzZWFyY2ggcmVzdWx0c1xyXG4gKi9cclxuQFRvb2xDb21wb25lbnQoe1xyXG4gIG5hbWU6ICdzZWFyY2hSZXN1bHRzJyxcclxuICB0aXRsZTogJ2lnby5pbnRlZ3JhdGlvbi50b29scy5zZWFyY2hSZXN1bHRzJyxcclxuICBpY29uOiAnbWFnbmlmeSdcclxufSlcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tc2VhcmNoLXJlc3VsdHMtdG9vbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1yZXN1bHRzLXRvb2wuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdJZixcclxuICAgIEZsZXhpYmxlQ29tcG9uZW50LFxyXG4gICAgU2VhcmNoUmVzdWx0c0NvbXBvbmVudCxcclxuICAgIFNlYXJjaFJlc3VsdEFkZEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFBhbmVsQ29tcG9uZW50LFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRCYWRnZU1vZHVsZSxcclxuICAgIEZlYXR1cmVEZXRhaWxzQ29tcG9uZW50LFxyXG4gICAgQXN5bmNQaXBlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgU2FuaXRpemVIdG1sUGlwZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdHNUb29sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8qKlxyXG4gICAqIHRvIHNob3cgaGlkZSByZXN1bHRzIGljb25zXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2hvd0ljb25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lIHRoZSB0b3AgcGFuZWwgZGVmYXVsdCBzdGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHRvcFBhbmVsU3RhdGVEZWZhdWx0OiBzdHJpbmcgPSAnZXhwYW5kZWQnO1xyXG5cclxuICBwcml2YXRlIGhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNhdmVTZWFyY2hSZXN1bHRJbkxheWVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgc2hvd1Jlc3VsdHNHZW9tZXRyaWVzJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGdldFJvdXRlJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHNob3duUmVzdWx0c0dlb21ldHJpZXM6IEZlYXR1cmVbXSA9IFtdO1xyXG4gIHByaXZhdGUgc2hvd25SZXN1bHRzRW1waGFzaXNHZW9tZXRyaWVzOiBGZWF0dXJlW10gPSBbXTtcclxuICBwcml2YXRlIGZvY3VzZWRSZXN1bHQkOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoUmVzdWx0PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICB1bmRlZmluZWRcclxuICApO1xyXG4gIHB1YmxpYyBpc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHByaXZhdGUgaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBhYnN0cmFjdEZvY3VzZWRSZXN1bHQ6IEZlYXR1cmU7XHJcbiAgcHJpdmF0ZSBhYnN0cmFjdFNlbGVjdGVkUmVzdWx0OiBGZWF0dXJlO1xyXG5cclxuICBwdWJsaWMgZGVib3VuY2VkRW1wdHkkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG4gIHByaXZhdGUgZGVib3VuY2VkRW1wdHkkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBTdG9yZSBob2xkaW5nIHRoZSBzZWFyY2ggcmVzdWx0c1xyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGdldCBzdG9yZSgpOiBFbnRpdHlTdG9yZTxTZWFyY2hSZXN1bHQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaFN0YXRlLnN0b3JlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFwIHRvIGRpc3BsYXkgdGhlIHJlc3VsdHMgb25cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBnZXQgbWFwKCk6IElnb01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5tYXBTdGF0ZS5tYXA7XHJcbiAgfVxyXG5cclxuICBnZXQgZmVhdHVyZVRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlID8gZ2V0RW50aXR5VGl0bGUodGhpcy5mZWF0dXJlKSA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGdldCBmZWF0dXJlJCgpOiBPYnNlcnZhYmxlPEZlYXR1cmU+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlVmlld1xyXG4gICAgICAuZmlyc3RCeSQoKGUpID0+IGUuc3RhdGUuZm9jdXNlZClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKFxyXG4gICAgICAgICAgKGVsZW1lbnQpID0+XHJcbiAgICAgICAgICAgICh0aGlzLmZlYXR1cmUgPSBlbGVtZW50XHJcbiAgICAgICAgICAgICAgPyAoZWxlbWVudC5lbnRpdHkuZGF0YSBhcyBGZWF0dXJlKVxyXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkKVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZWF0dXJlOiBGZWF0dXJlO1xyXG5cclxuICBwdWJsaWMgdGVybSA9ICcnO1xyXG4gIHByaXZhdGUgc2VhcmNoVGVybSQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHB1YmxpYyBzZXR0aW5nc0NoYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XHJcblxyXG4gIHB1YmxpYyB0b3BQYW5lbFN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmxleGlibGVTdGF0ZT4oJ2luaXRpYWwnKTtcclxuICBwcml2YXRlIHRvcFBhbmVsU3RhdGUkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB0b3BQYW5lbFN0YXRlKHZhbHVlOiBGbGV4aWJsZVN0YXRlKSB7XHJcbiAgICB0aGlzLnRvcFBhbmVsU3RhdGUkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgdG9wUGFuZWxTdGF0ZSgpOiBGbGV4aWJsZVN0YXRlIHtcclxuICAgIHJldHVybiB0aGlzLnRvcFBhbmVsU3RhdGUkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRlcm1TcGxpdHRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVGVybVNwbGl0dGVyJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0ID0gbmV3IG9sRm9ybWF0R2VvSlNPTigpO1xyXG5cclxuICBnZXQgc3RvcmVzKCk6IEZlYXR1cmVTdG9yZTxGZWF0dXJlPltdIHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaExheWVyU3RvcmVzO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSxcclxuICAgIHByaXZhdGUgc2VhcmNoU3RhdGU6IFNlYXJjaFN0YXRlLFxyXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyB0b29sU3RhdGU6IFRvb2xTdGF0ZSxcclxuICAgIHByaXZhdGUgZGlyZWN0aW9uU3RhdGU6IERpcmVjdGlvblN0YXRlLFxyXG4gICAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5oYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbiA9IGNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKFxyXG4gICAgICAnaGFzRmVhdHVyZUVtcGhhc2lzT25TZWxlY3Rpb24nXHJcbiAgICApO1xyXG4gICAgdGhpcy5zYXZlU2VhcmNoUmVzdWx0SW5MYXllciA9IGNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKFxyXG4gICAgICAnc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXInXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0kJCA9IHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVGVybSQuc3Vic2NyaWJlKFxyXG4gICAgICAoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgc2VhcmNoVGVybSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICBzZWFyY2hUZXJtICE9PSBudWxsICYmXHJcbiAgICAgICAgICBzZWFyY2hUZXJtICE9PSAnJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50ZXJtID0gc2VhcmNoVGVybTtcclxuICAgICAgICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc2VhcmNoVGVybSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIGZvciAoY29uc3QgcmVzIG9mIHRoaXMuc3RvcmUuc3RhdGVWaWV3LmFsbCQoKS52YWx1ZSkge1xyXG4gICAgICBpZiAodGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzLmVudGl0eSkuc2VsZWN0ZWQgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnZXhwYW5kZWQnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hTZXR0aW5nc0NoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5zZXR0aW5nc0NoYW5nZSQubmV4dCh0cnVlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudG9wUGFuZWxTdGF0ZSQkID0gdGhpcy50b3BQYW5lbFN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBjb25zdCBpZ29MaXN0ID0gdGhpcy5jb21wdXRlRWxlbWVudFJlZigpWzBdO1xyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuY29tcHV0ZUVsZW1lbnRSZWYoKVsxXTtcclxuICAgICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAvLyBUbyBiZSBzdXJlIHRoZSBmbGV4aWJsZSBjb21wb25lbnQgaGFzIGJlZW4gZGlzcGxheWVkIHlldFxyXG4gICAgICAgICAgaWYgKCF0aGlzLmlzU2Nyb2xsZWRJbnRvVmlldyhpZ29MaXN0LCBzZWxlY3RlZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGp1c3RUb3BQYW5lbChpZ29MaXN0LCBzZWxlY3RlZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgRmxleGlibGVDb21wb25lbnQudHJhbnNpdGlvblRpbWUgKyA1MCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uKSB7XHJcbiAgICAgIGlmICghdGhpcy5zZWFyY2hTdGF0ZS5mb2N1c2VkT3JSZXNvbHV0aW9uJCQpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLmZvY3VzZWRPclJlc29sdXRpb24kJCA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICAgICAgdGhpcy5mb2N1c2VkUmVzdWx0JCxcclxuICAgICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kXHJcbiAgICAgICAgXSkuc3Vic2NyaWJlKChidW5jaDogW1NlYXJjaFJlc3VsdDxGZWF0dXJlPiwgbnVtYmVyXSkgPT5cclxuICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRFbXBoYXNpcyhidW5jaFswXSwgJ2ZvY3VzZWQnKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZE9yUmVzb2x1dGlvbiQkKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZE9yUmVzb2x1dGlvbiQkID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkUmVzdWx0JCxcclxuICAgICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kXHJcbiAgICAgICAgXSkuc3Vic2NyaWJlKChidW5jaDogW1NlYXJjaFJlc3VsdDxGZWF0dXJlPiwgbnVtYmVyXSkgPT5cclxuICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRFbXBoYXNpcyhidW5jaFswXSwgJ3NlbGVjdGVkJylcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vbml0b3JSZXN1bHRPdXRPZlZpZXcoKTtcclxuXHJcbiAgICB0aGlzLnNob3dSZXN1bHRzR2VvbWV0cmllcyQkID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCQsXHJcbiAgICAgIHRoaXMuc3RvcmUuc3RhdGVWaWV3LmFsbCQoKSxcclxuICAgICAgdGhpcy5mb2N1c2VkUmVzdWx0JCxcclxuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZFJlc3VsdCQsXHJcbiAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVGVybSQsXHJcbiAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kXHJcbiAgICBdKS5zdWJzY3JpYmUoXHJcbiAgICAgIChcclxuICAgICAgICBidW5jaDogW1xyXG4gICAgICAgICAgYm9vbGVhbixcclxuICAgICAgICAgIHsgZW50aXR5OiBTZWFyY2hSZXN1bHQ7IHN0YXRlOiBFbnRpdHlTdGF0ZSB9W10sXHJcbiAgICAgICAgICBTZWFyY2hSZXN1bHQsXHJcbiAgICAgICAgICBTZWFyY2hSZXN1bHQsXHJcbiAgICAgICAgICBzdHJpbmcsXHJcbiAgICAgICAgICBudW1iZXJcclxuICAgICAgICBdXHJcbiAgICAgICkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQgPSBidW5jaFswXTtcclxuICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gYnVuY2hbMV07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyRmVhdHVyZUVtcGhhc2lzKCdzaG93bicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNob3duUmVzdWx0c0dlb21ldHJpZXMubWFwKChyZXN1bHQpID0+XHJcbiAgICAgICAgICB0aGlzLm1hcC5xdWVyeVJlc3VsdHNPdmVybGF5LnJlbW92ZUZlYXR1cmUocmVzdWx0KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZmVhdHVyZVRvSGFuZGxlR2VvbSA9IHNlYXJjaFJlc3VsdHMuZmlsdGVyKFxyXG4gICAgICAgICAgKHJlc3VsdCkgPT5cclxuICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5tZXRhLmRhdGFUeXBlID09PSBGRUFUVVJFICYmXHJcbiAgICAgICAgICAgIHJlc3VsdC5lbnRpdHkuZGF0YS5nZW9tZXRyeSAmJlxyXG4gICAgICAgICAgICAhcmVzdWx0LnN0YXRlLnNlbGVjdGVkICYmXHJcbiAgICAgICAgICAgICFyZXN1bHQuc3RhdGUuZm9jdXNlZFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGZlYXR1cmVUb0hhbmRsZUdlb20ubWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5lbnRpdHkuZGF0YS5tZXRhLnN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU3R5bGUoXHJcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcclxuICAgICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBmZWF0dXJlOiByZXN1bHQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSB8IG9sRmVhdHVyZTxPbEdlb21ldHJ5PlxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlLFxyXG4gICAgICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5zdHlsZT8uYmFzZSA/IHJlc3VsdC5lbnRpdHkuc3R5bGUuYmFzZSA6IHt9XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnNob3duUmVzdWx0c0dlb21ldHJpZXMucHVzaChyZXN1bHQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSk7XHJcbiAgICAgICAgICAgIHRoaXMubWFwLnF1ZXJ5UmVzdWx0c092ZXJsYXkuYWRkRmVhdHVyZShcclxuICAgICAgICAgICAgICByZXN1bHQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSxcclxuICAgICAgICAgICAgICBGZWF0dXJlTW90aW9uLk5vbmVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzRmVhdHVyZUVtcGhhc2lzT25TZWxlY3Rpb24pIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1aWxkUmVzdWx0RW1waGFzaXMoXHJcbiAgICAgICAgICAgICAgICByZXN1bHQuZW50aXR5IGFzIFNlYXJjaFJlc3VsdDxGZWF0dXJlPixcclxuICAgICAgICAgICAgICAgICdzaG93bidcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5kZWJvdW5jZWRFbXB0eSQkID0gdGhpcy5zdG9yZS5zdGF0ZVZpZXcuZW1wdHkkXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxNTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoZW1wdHkpID0+IHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQoZW1wdHkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW9uaXRvclJlc3VsdE91dE9mVmlldygpIHtcclxuICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQkID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnN0YXRlJCxcclxuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZFJlc3VsdCRcclxuICAgIF0pXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChidW5jaCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmVzdWx0ID0gYnVuY2hbMV0gYXMgU2VhcmNoUmVzdWx0PEZlYXR1cmU+O1xyXG4gICAgICAgIGlmICghc2VsZWN0ZWRSZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzZWxlY3RlZFJlc3VsdC5kYXRhLmdlb21ldHJ5KSB7XHJcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9sRmVhdHVyZSA9IGZlYXR1cmVUb09sKFxyXG4gICAgICAgICAgICBzZWxlY3RlZFJlc3VsdC5kYXRhLFxyXG4gICAgICAgICAgICB0aGlzLm1hcC5wcm9qZWN0aW9uXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPbEZlYXR1cmVFeHRlbnQgPSBjb21wdXRlT2xGZWF0dXJlc0V4dGVudChcclxuICAgICAgICAgICAgW3NlbGVjdGVkT2xGZWF0dXJlXSxcclxuICAgICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0T2xQcm9qZWN0aW9uKClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckLm5leHQoXHJcbiAgICAgICAgICAgIGZlYXR1cmVzQXJlT3V0T2ZWaWV3KHRoaXMubWFwLmdldEV4dGVudCgpLCBzZWxlY3RlZE9sRmVhdHVyZUV4dGVudClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRSZXN1bHRFbXBoYXNpcyhcclxuICAgIHJlc3VsdDogU2VhcmNoUmVzdWx0PEZlYXR1cmU+LFxyXG4gICAgdHJpZ2dlcjogJ3NlbGVjdGVkJyB8ICdmb2N1c2VkJyB8ICdzaG93bicgfCB1bmRlZmluZWRcclxuICApIHtcclxuICAgIGlmICh0cmlnZ2VyICE9PSAnc2hvd24nKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJGZWF0dXJlRW1waGFzaXModHJpZ2dlcik7XHJcbiAgICB9XHJcbiAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LmRhdGEuZ2VvbWV0cnkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbXlPbEZlYXR1cmUgPSBmZWF0dXJlVG9PbChyZXN1bHQuZGF0YSwgdGhpcy5tYXAucHJvamVjdGlvbik7XHJcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gbXlPbEZlYXR1cmUuZ2V0R2VvbWV0cnkoKTtcclxuICAgIGlmIChcclxuICAgICAgZmVhdHVyZXNBcmVUb29EZWVwSW5WaWV3KFxyXG4gICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLFxyXG4gICAgICAgIG9sR2VvbWV0cnkuZ2V0RXh0ZW50KCkgYXMgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXHJcbiAgICAgICAgMC4wMDI1XHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICBjb25zdCBleHRlbnQgPSBvbEdlb21ldHJ5LmdldEV4dGVudCgpO1xyXG4gICAgICBjb25zdCB4ID0gZXh0ZW50WzBdICsgKGV4dGVudFsyXSAtIGV4dGVudFswXSkgLyAyO1xyXG4gICAgICBjb25zdCB5ID0gZXh0ZW50WzFdICsgKGV4dGVudFszXSAtIGV4dGVudFsxXSkgLyAyO1xyXG4gICAgICBjb25zdCBmZWF0dXJlMSA9IG5ldyBvbEZlYXR1cmUoe1xyXG4gICAgICAgIG5hbWU6IGAke3RyaWdnZXJ9QWJzdHJhY3RSZXN1bHQnYCxcclxuICAgICAgICBnZW9tZXRyeTogbmV3IG9sUG9pbnQoW3gsIHldKVxyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgYWJzdHJhY3RSZXN1bHQgPSBmZWF0dXJlRnJvbU9sKGZlYXR1cmUxLCB0aGlzLm1hcC5wcm9qZWN0aW9uKTtcclxuXHJcbiAgICAgIGxldCBjb21wdXRlZFN0eWxlO1xyXG4gICAgICBsZXQgekluZGV4T2Zmc2V0ID0gMDtcclxuXHJcbiAgICAgIHN3aXRjaCAodHJpZ2dlcikge1xyXG4gICAgICAgIGNhc2UgJ2ZvY3VzZWQnOlxyXG4gICAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgICAgeyBmZWF0dXJlOiBhYnN0cmFjdFJlc3VsdCB9LFxyXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlRm9jdXMsXHJcbiAgICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5mb2N1cyA/IHJlc3VsdC5zdHlsZS5mb2N1cyA6IHt9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB6SW5kZXhPZmZzZXQgPSAyO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc2hvd24nOlxyXG4gICAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGdldENvbW1vblZlY3RvclN0eWxlKFxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgIHsgZmVhdHVyZTogYWJzdHJhY3RSZXN1bHQgfSxcclxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZSxcclxuICAgICAgICAgICAgICByZXN1bHQuc3R5bGU/LmJhc2UgPyByZXN1bHQuc3R5bGUuYmFzZSA6IHt9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzZWxlY3RlZCc6XHJcbiAgICAgICAgICBjb21wdXRlZFN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU2VsZWN0ZWRTdHlsZShcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcclxuICAgICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgICB7IGZlYXR1cmU6IGFic3RyYWN0UmVzdWx0IH0sXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGVTZWxlY3Rpb24sXHJcbiAgICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5zZWxlY3Rpb24gPyByZXN1bHQuc3R5bGUuc2VsZWN0aW9uIDoge31cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHpJbmRleE9mZnNldCA9IDE7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBhYnN0cmFjdFJlc3VsdC5tZXRhLnN0eWxlID0gY29tcHV0ZWRTdHlsZTtcclxuICAgICAgYWJzdHJhY3RSZXN1bHQubWV0YS5zdHlsZS5zZXRaSW5kZXgoMjAwMCArIHpJbmRleE9mZnNldCk7XHJcbiAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmFkZEZlYXR1cmUoXHJcbiAgICAgICAgYWJzdHJhY3RSZXN1bHQsXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5mZWF0dXJlTW90aW9uLmZvY3VzXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0cmlnZ2VyID09PSAnZm9jdXNlZCcpIHtcclxuICAgICAgICB0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCA9IGFic3RyYWN0UmVzdWx0O1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0cmlnZ2VyID09PSAnc2VsZWN0ZWQnKSB7XHJcbiAgICAgICAgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0ID0gYWJzdHJhY3RSZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRyaWdnZXIgPT09ICdzaG93bicpIHtcclxuICAgICAgICB0aGlzLnNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllcy5wdXNoKGFic3RyYWN0UmVzdWx0KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbGVhckZlYXR1cmVFbXBoYXNpcyh0cmlnZ2VyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJGZWF0dXJlRW1waGFzaXModHJpZ2dlcjogJ3NlbGVjdGVkJyB8ICdmb2N1c2VkJyB8ICdzaG93bicpIHtcclxuICAgIGlmICh0cmlnZ2VyID09PSAnZm9jdXNlZCcgJiYgdGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQpIHtcclxuICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZSh0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCk7XHJcbiAgICAgIHRoaXMuYWJzdHJhY3RGb2N1c2VkUmVzdWx0ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHRyaWdnZXIgPT09ICdzZWxlY3RlZCcgJiYgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0KSB7XHJcbiAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LnJlbW92ZUZlYXR1cmUodGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0KTtcclxuICAgICAgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKHRyaWdnZXIgPT09ICdzaG93bicpIHtcclxuICAgICAgdGhpcy5zaG93blJlc3VsdHNFbXBoYXNpc0dlb21ldHJpZXMubWFwKChzaG93blJlc3VsdCkgPT5cclxuICAgICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHNob3duUmVzdWx0KVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnRvcFBhbmVsU3RhdGUkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zZWFyY2hUZXJtJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckJCkge1xyXG4gICAgICB0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hvd1Jlc3VsdHNHZW9tZXRyaWVzJCQpIHtcclxuICAgICAgdGhpcy5zaG93UmVzdWx0c0dlb21ldHJpZXMkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ2V0Um91dGUkJCkge1xyXG4gICAgICB0aGlzLmdldFJvdXRlJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRlYm91bmNlZEVtcHR5JCQpIHtcclxuICAgICAgdGhpcy5kZWJvdW5jZWRFbXB0eSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcnkgdG8gYWRkIGEgZmVhdHVyZSB0byB0aGUgbWFwIHdoZW4gaXQncyBiZWluZyBmb2N1c2VkXHJcbiAgICogQGludGVybmFsXHJcbiAgICogQHBhcmFtIHJlc3VsdCBBIHNlYXJjaCByZXN1bHQgdGhhdCBjb3VsZCBiZSBhIGZlYXR1cmVcclxuICAgKi9cclxuICBvblJlc3VsdEZvY3VzKHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XHJcbiAgICB0aGlzLmZvY3VzZWRSZXN1bHQkLm5leHQocmVzdWx0KTtcclxuICAgIGlmIChyZXN1bHQubWV0YS5kYXRhVHlwZSA9PT0gRkVBVFVSRSAmJiByZXN1bHQuZGF0YS5nZW9tZXRyeSkge1xyXG4gICAgICByZXN1bHQuZGF0YS5tZXRhLnN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU2VsZWN0ZWRTdHlsZShcclxuICAgICAgICBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgICAge30sXHJcbiAgICAgICAgICB7IGZlYXR1cmU6IHJlc3VsdC5kYXRhIGFzIEZlYXR1cmUgfCBvbEZlYXR1cmU8T2xHZW9tZXRyeT4gfSxcclxuICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlRm9jdXMsXHJcbiAgICAgICAgICByZXN1bHQuc3R5bGU/LmZvY3VzID8gcmVzdWx0LnN0eWxlLmZvY3VzIDoge31cclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBjb25zdCBmZWF0dXJlID1cclxuICAgICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVCeUlkKFxyXG4gICAgICAgICAgcmVzdWx0Lm1ldGEuaWRcclxuICAgICAgICApO1xyXG4gICAgICBpZiAoZmVhdHVyZSkge1xyXG4gICAgICAgIGZlYXR1cmUuc2V0U3R5bGUocmVzdWx0LmRhdGEubWV0YS5zdHlsZSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmFkZEZlYXR1cmUoXHJcbiAgICAgICAgcmVzdWx0LmRhdGEgYXMgRmVhdHVyZSxcclxuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLmZlYXR1cmVNb3Rpb24uZm9jdXNcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUmVzdWx0VW5mb2N1cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xyXG4gICAgdGhpcy5mb2N1c2VkUmVzdWx0JC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICBpZiAocmVzdWx0Lm1ldGEuZGF0YVR5cGUgIT09IEZFQVRVUkUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN0b3JlLnN0YXRlLmdldChyZXN1bHQpLnNlbGVjdGVkID09PSB0cnVlKSB7XHJcbiAgICAgIGNvbnN0IGZlYXR1cmUgPVxyXG4gICAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmRhdGFTb3VyY2Uub2wuZ2V0RmVhdHVyZUJ5SWQoXHJcbiAgICAgICAgICByZXN1bHQubWV0YS5pZFxyXG4gICAgICAgICk7XHJcbiAgICAgIGlmIChmZWF0dXJlKSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlKFxyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihcclxuICAgICAgICAgICAge30sXHJcbiAgICAgICAgICAgIHsgZmVhdHVyZTogcmVzdWx0LmRhdGEgYXMgRmVhdHVyZSB8IG9sRmVhdHVyZTxPbEdlb21ldHJ5PiB9LFxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZUZvY3VzLFxyXG4gICAgICAgICAgICByZXN1bHQuc3R5bGU/LmZvY3VzID8gcmVzdWx0LnN0eWxlLmZvY3VzIDoge31cclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICAgIGZlYXR1cmUuc2V0U3R5bGUoc3R5bGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LnJlbW92ZUZlYXR1cmUocmVzdWx0LmRhdGEgYXMgRmVhdHVyZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcnkgdG8gYWRkIGEgZmVhdHVyZSB0byB0aGUgbWFwIHdoZW4gaXQncyBiZWluZyBzZWxlY3RlZFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqIEBwYXJhbSByZXN1bHQgQSBzZWFyY2ggcmVzdWx0IHRoYXQgY291bGQgYmUgYSBmZWF0dXJlIG9yIHNvbWUgbGF5ZXIgb3B0aW9uc1xyXG4gICAqL1xyXG4gIG9uUmVzdWx0U2VsZWN0KHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XHJcbiAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5kYXRhU291cmNlLm9sLmNsZWFyKCk7XHJcbiAgICB0aGlzLnRyeUFkZEZlYXR1cmVUb01hcChyZXN1bHQsIHRoaXMuc2VhcmNoU3RhdGUuZmVhdHVyZU1vdGlvbi5zZWxlY3RlZCk7XHJcbiAgICB0aGlzLnNlYXJjaFN0YXRlLnNldFNlbGVjdGVkUmVzdWx0KHJlc3VsdCk7XHJcblxyXG4gICAgaWYgKHRoaXMudG9wUGFuZWxTdGF0ZSA9PT0gJ2luaXRpYWwnKSB7XHJcbiAgICAgIGlmICh0aGlzLnRvcFBhbmVsU3RhdGVEZWZhdWx0ICE9PSAnY29sbGFwc2VkJykge1xyXG4gICAgICAgIHRoaXMudG9wUGFuZWxTdGF0ZSA9ICdleHBhbmRlZCc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2NvbGxhcHNlZCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50b3BQYW5lbFN0YXRlID09PSAnZXhwYW5kZWQnKSB7XHJcbiAgICAgIGNvbnN0IGlnb0xpc3QgPSB0aGlzLmNvbXB1dGVFbGVtZW50UmVmKClbMF07XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb21wdXRlRWxlbWVudFJlZigpWzFdO1xyXG4gICAgICBpZiAoIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGlnb0xpc3QsIHNlbGVjdGVkKSkge1xyXG4gICAgICAgIHRoaXMuYWRqdXN0VG9wUGFuZWwoaWdvTGlzdCwgc2VsZWN0ZWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaChldmVudDogeyByZXNlYXJjaDogUmVzZWFyY2g7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH0pIHtcclxuICAgIGNvbnN0IHJlc3VsdHMgPSBldmVudC5yZXN1bHRzO1xyXG4gICAgY29uc3QgbmV3UmVzdWx0cyA9IHRoaXMuc3RvcmUuZW50aXRpZXMkLnZhbHVlXHJcbiAgICAgIC5maWx0ZXIoKHJlc3VsdDogU2VhcmNoUmVzdWx0KSA9PiByZXN1bHQuc291cmNlICE9PSBldmVudC5yZXNlYXJjaC5zb3VyY2UpXHJcbiAgICAgIC5jb25jYXQocmVzdWx0cyk7XHJcblxyXG4gICAgdGhpcy5zdG9yZS5sb2FkKG5ld1Jlc3VsdHMpO1xyXG5cclxuICAgIGZvciAoY29uc3QgcmVzIG9mIHRoaXMuc3RvcmUuYWxsKCkpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuc3RvcmUuc3RhdGUuZ2V0KHJlcykuZm9jdXNlZCA9PT0gdHJ1ZSAmJlxyXG4gICAgICAgIHRoaXMuc3RvcmUuc3RhdGUuZ2V0KHJlcykuc2VsZWN0ZWQgIT09IHRydWVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUocmVzLCB7IGZvY3VzZWQ6IGZhbHNlIH0sIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGlnb0xpc3QgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaWdvLWxpc3QnKTtcclxuICAgICAgbGV0IG1vcmVSZXN1bHRzO1xyXG4gICAgICBldmVudC5yZXNlYXJjaC5yZXF1ZXN0LnN1YnNjcmliZSgoc291cmNlKSA9PiB7XHJcbiAgICAgICAgaWYgKCFzb3VyY2VbMF0gfHwgIXNvdXJjZVswXS5zb3VyY2UpIHtcclxuICAgICAgICAgIG1vcmVSZXN1bHRzID0gbnVsbDtcclxuICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSA9PT0gJ2ljaGVyY2hlJykge1xyXG4gICAgICAgICAgbW9yZVJlc3VsdHMgPSBpZ29MaXN0LnF1ZXJ5U2VsZWN0b3IoJy5pY2hlcmNoZSAubW9yZVJlc3VsdHMnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSA9PT0gJ2lsYXllcicpIHtcclxuICAgICAgICAgIG1vcmVSZXN1bHRzID0gaWdvTGlzdC5xdWVyeVNlbGVjdG9yKCcuaWxheWVyIC5tb3JlUmVzdWx0cycpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc291cmNlWzBdLnNvdXJjZS5nZXRJZCgpID09PSAnbm9taW5hdGltJykge1xyXG4gICAgICAgICAgbW9yZVJlc3VsdHMgPSBpZ29MaXN0LnF1ZXJ5U2VsZWN0b3IoJy5ub21pbmF0aW0gLm1vcmVSZXN1bHRzJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG1vcmVSZXN1bHRzID0gaWdvTGlzdC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgICAgICAnLicgKyBzb3VyY2VbMF0uc291cmNlLmdldElkKCkgKyAnIC5tb3JlUmVzdWx0cydcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBtb3JlUmVzdWx0cyAhPT0gbnVsbCAmJlxyXG4gICAgICAgICAgIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGlnb0xpc3QsIG1vcmVSZXN1bHRzKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWdvTGlzdC5zY3JvbGxUb3AgPVxyXG4gICAgICAgICAgICBtb3JlUmVzdWx0cy5vZmZzZXRUb3AgK1xyXG4gICAgICAgICAgICBtb3JlUmVzdWx0cy5vZmZzZXRIZWlnaHQgLVxyXG4gICAgICAgICAgICBpZ29MaXN0LmNsaWVudEhlaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSwgMjUwKTtcclxuICB9XHJcblxyXG4gIGNvbXB1dGVFbGVtZW50UmVmKCkge1xyXG4gICAgY29uc3QgaXRlbXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWdvLXNlYXJjaC1yZXN1bHRzLWl0ZW0nKTtcclxuICAgIGNvbnN0IGlnb0xpc3QgPVxyXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lnby1saXN0JylbMF07XHJcbiAgICBsZXQgc2VsZWN0ZWRJdGVtO1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChpdGVtc1tpXS5jbGFzc05hbWUuaW5jbHVkZXMoJ2lnby1saXN0LWl0ZW0tc2VsZWN0ZWQnKSkge1xyXG4gICAgICAgIHNlbGVjdGVkSXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW2lnb0xpc3QsIHNlbGVjdGVkSXRlbV07XHJcbiAgfVxyXG5cclxuICBhZGp1c3RUb3BQYW5lbChlbGVtU291cmNlLCBlbGVtKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGVsZW1Tb3VyY2UsIGVsZW0pKSB7XHJcbiAgICAgIGVsZW1Tb3VyY2Uuc2Nyb2xsVG9wID1cclxuICAgICAgICBlbGVtLm9mZnNldFRvcCArXHJcbiAgICAgICAgZWxlbS5jaGlsZHJlblswXS5vZmZzZXRIZWlnaHQgLVxyXG4gICAgICAgIGVsZW1Tb3VyY2UuY2xpZW50SGVpZ2h0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVG9wUGFuZWwoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQgJiYgKGV2ZW50LnRhcmdldCBhcyBhbnkpPy5jbGFzc05hbWUgIT09ICdpZ28tcGFuZWwtdGl0bGUnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnRvcFBhbmVsU3RhdGUgPT09ICdleHBhbmRlZCcpIHtcclxuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnY29sbGFwc2VkJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnZXhwYW5kZWQnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB6b29tVG9GZWF0dXJlRXh0ZW50KCkge1xyXG4gICAgaWYgKHRoaXMuZmVhdHVyZS5nZW9tZXRyeSkge1xyXG4gICAgICBjb25zdCBsb2NhbE9sRmVhdHVyZSA9IHRoaXMuZm9ybWF0LnJlYWRGZWF0dXJlKHRoaXMuZmVhdHVyZSwge1xyXG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiB0aGlzLmZlYXR1cmUucHJvamVjdGlvbixcclxuICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogdGhpcy5tYXAucHJvamVjdGlvbkNvZGVcclxuICAgICAgfSk7XHJcbiAgICAgIG1vdmVUb09sRmVhdHVyZXMoXHJcbiAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIsXHJcbiAgICAgICAgW2xvY2FsT2xGZWF0dXJlXSxcclxuICAgICAgICBGZWF0dXJlTW90aW9uLlpvb21cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyeSB0byBhZGQgYSBmZWF0dXJlIHRvIHRoZSBtYXAgb3ZlcmxheVxyXG4gICAqIEBwYXJhbSByZXN1bHQgQSBzZWFyY2ggcmVzdWx0IHRoYXQgY291bGQgYmUgYSBmZWF0dXJlXHJcbiAgICogQHBhcmFtIG1vdGlvbiBBIEZlYXR1cmVNb3Rpb24gdG8gdHJpZ2dlciB3aGVuIGFkZGluZyB0aGUgc2VhcmNocmVzdWx0IHRvIHRoZSBtYXAgc2VhcmNoIG92ZXJsYXlcclxuICAgKi9cclxuICBwcml2YXRlIHRyeUFkZEZlYXR1cmVUb01hcChcclxuICAgIHJlc3VsdDogU2VhcmNoUmVzdWx0LFxyXG4gICAgbW90aW9uOiBGZWF0dXJlTW90aW9uID0gRmVhdHVyZU1vdGlvbi5EZWZhdWx0XHJcbiAgKSB7XHJcbiAgICBpZiAocmVzdWx0Lm1ldGEuZGF0YVR5cGUgIT09IEZFQVRVUkUpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGNvbnN0IGZlYXR1cmUgPSAocmVzdWx0IGFzIFNlYXJjaFJlc3VsdDxGZWF0dXJlPikuZGF0YTtcclxuXHJcbiAgICAvLyBTb21ldGhpbWVzIGZlYXR1cmVzIGhhdmUgbm8gZ2VvbWV0cnkuIEl0IGhhcHBlbnMgd2l0aCBzb21lIEdldEZlYXR1cmVJbmZvXHJcbiAgICBpZiAoIWZlYXR1cmUuZ2VvbWV0cnkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGZlYXR1cmUubWV0YS5zdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXHJcbiAgICAgIE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAge30sXHJcbiAgICAgICAgeyBmZWF0dXJlIH0sXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGVTZWxlY3Rpb24sXHJcbiAgICAgICAgcmVzdWx0LnN0eWxlPy5zZWxlY3Rpb24gPyByZXN1bHQuc3R5bGUuc2VsZWN0aW9uIDoge31cclxuICAgICAgKVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5hZGRGZWF0dXJlKGZlYXR1cmUsIG1vdGlvbik7XHJcbiAgfVxyXG5cclxuICBpc1Njcm9sbGVkSW50b1ZpZXcoZWxlbVNvdXJjZSwgZWxlbSkge1xyXG4gICAgY29uc3QgcGFkZGluZyA9IDY7XHJcbiAgICBjb25zdCBkb2NWaWV3VG9wID0gZWxlbVNvdXJjZS5zY3JvbGxUb3A7XHJcbiAgICBjb25zdCBkb2NWaWV3Qm90dG9tID0gZG9jVmlld1RvcCArIGVsZW1Tb3VyY2UuY2xpZW50SGVpZ2h0O1xyXG5cclxuICAgIGNvbnN0IGVsZW1Ub3AgPSBlbGVtLm9mZnNldFRvcDtcclxuICAgIGNvbnN0IGVsZW1Cb3R0b20gPSBlbGVtVG9wICsgZWxlbS5jbGllbnRIZWlnaHQgKyBwYWRkaW5nO1xyXG4gICAgcmV0dXJuIGVsZW1Cb3R0b20gPD0gZG9jVmlld0JvdHRvbSAmJiBlbGVtVG9wID49IGRvY1ZpZXdUb3A7XHJcbiAgfVxyXG5cclxuICBnZXRSb3V0ZSgpIHtcclxuICAgIHRoaXMudG9vbFN0YXRlLnRvb2xib3guYWN0aXZhdGVUb29sKCdkaXJlY3Rpb25zJyk7XHJcbiAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUuY2xlYXJTdG9wcygpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGxldCByb3V0aW5nQ29vcmRMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMuZ2V0Um91dGUkJCkge1xyXG4gICAgICAgIHRoaXMuZ2V0Um91dGUkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0Um91dGUkJCA9XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLnN0b3JlSW5pdGlhbGl6ZWQkLnN1YnNjcmliZShcclxuICAgICAgICAgIChpbml0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQudmFsdWUgJiZcclxuICAgICAgICAgICAgICAhcm91dGluZ0Nvb3JkTG9hZGVkXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHJvdXRpbmdDb29yZExvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc3RvcCA9IHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZVxyXG4gICAgICAgICAgICAgICAgLmFsbCgpXHJcbiAgICAgICAgICAgICAgICAuZmluZCgoZSkgPT4gZS5wb3NpdGlvbiA9PT0gMSk7XHJcbiAgICAgICAgICAgICAgbGV0IGNvb3JkO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmUuZ2VvbWV0cnkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmUuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50Jykge1xyXG4gICAgICAgICAgICAgICAgICBjb29yZCA9IFtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdXHJcbiAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBwb2ludCA9IHBvaW50T25GZWF0dXJlKHRoaXMuZmVhdHVyZS5nZW9tZXRyeSk7XHJcbiAgICAgICAgICAgICAgICAgIGNvb3JkID0gW1xyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxyXG4gICAgICAgICAgICAgICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdXHJcbiAgICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHN0b3AudGV4dCA9IHRoaXMuZmVhdHVyZVRpdGxlO1xyXG4gICAgICAgICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBjb29yZDtcclxuICAgICAgICAgICAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUudXBkYXRlKHN0b3ApO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm1hcC5nZW9sb2NhdGlvbkNvbnRyb2xsZXIucG9zaXRpb24kLnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50UG9zID1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5tYXAuZ2VvbG9jYXRpb25Db250cm9sbGVyLnBvc2l0aW9uJC52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b3AgPSB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmVcclxuICAgICAgICAgICAgICAgICAgLmFsbCgpXHJcbiAgICAgICAgICAgICAgICAgIC5maW5kKChlKSA9PiBlLnBvc2l0aW9uID09PSAwKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb29yZCA9IG9sUHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3MucG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3MucHJvamVjdGlvbixcclxuICAgICAgICAgICAgICAgICAgJ0VQU0c6NDMyNidcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb29yZDogW251bWJlciwgbnVtYmVyXSA9IHJvdW5kQ29vcmRUbyhcclxuICAgICAgICAgICAgICAgICAgW2N1cnJlbnRDb29yZFswXSwgY3VycmVudENvb3JkWzFdXSxcclxuICAgICAgICAgICAgICAgICAgNlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHN0b3AudGV4dCA9IGNvb3JkLmpvaW4oJywnKTtcclxuICAgICAgICAgICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBjb29yZDtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0sIDI1MCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcbiAgKm5nSWY9XCIoIXN0b3JlIHx8IHN0b3JlLnN0YXRlVmlldy5lbXB0eSkgJiYgKGRlYm91bmNlZEVtcHR5JCB8IGFzeW5jKVwiXG4gIHN0eWxlPVwibWFyZ2luOiAxMHB4XCJcbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgIDxoND5cbiAgICAgIDxzdHJvbmc+e3tcbiAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi5zZWFyY2hSZXN1bHRzVG9vbC5ub1Jlc3VsdHMnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvc3Ryb25nPlxuICAgIDwvaDQ+XG4gICAgPHA+XG4gICAgICA8c3Ryb25nPnt7XG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wuZG9TZWFyY2gnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvc3Ryb25nPlxuICAgIDwvcD5cbiAgICA8ZGl2XG4gICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLmV4YW1wbGVzJyB8IHRyYW5zbGF0ZSB8IHNhbml0aXplSHRtbFxuICAgICAgXCJcbiAgICA+PC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuXG48aWdvLWZsZXhpYmxlXG4gICpuZ0lmPVwiKGRlYm91bmNlZEVtcHR5JCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAjdG9wUGFuZWxcbiAgaW5pdGlhbD1cIjEwMCVcIlxuICBpbml0aWFsTW9iaWxlPVwiMTAwJVwiXG4gIGNvbGxhcHNlZD1cImNhbGMoMTAwJSAtIDU4cHgpXCJcbiAgY29sbGFwc2VkTW9iaWxlPVwiY2FsYygxMDAlIC0gNThweClcIlxuICBleHBhbmRlZD1cIjYwJVwiXG4gIGV4cGFuZGVkTW9iaWxlPVwiNjAlXCJcbiAgW3N0YXRlXT1cIihmZWF0dXJlJCB8IGFzeW5jKSA/IHRvcFBhbmVsU3RhdGUgOiAnaW5pdGlhbCdcIlxuPlxuICA8ZGl2IGNsYXNzPVwiaWdvLWNvbnRlbnRcIj5cbiAgICA8aWdvLXNlYXJjaC1yZXN1bHRzXG4gICAgICBbc3RvcmVdPVwic3RvcmVcIlxuICAgICAgW3Nob3dJY29uc109XCJzaG93SWNvbnNcIlxuICAgICAgW3Rlcm1dPVwidGVybVwiXG4gICAgICBbdGVybVNwbGl0dGVyXT1cInRlcm1TcGxpdHRlclwiXG4gICAgICBbc2V0dGluZ3NDaGFuZ2UkXT1cInNldHRpbmdzQ2hhbmdlJFwiXG4gICAgICBwbGFjZWhvbGRlcj1cImZhbHNlXCJcbiAgICAgIChyZXN1bHRGb2N1cyk9XCJvblJlc3VsdEZvY3VzKCRldmVudClcIlxuICAgICAgKHJlc3VsdFNlbGVjdCk9XCJvblJlc3VsdFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChyZXN1bHRVbmZvY3VzKT1cIm9uUmVzdWx0VW5mb2N1cygkZXZlbnQpXCJcbiAgICAgIChyZXN1bHRNb3VzZWVudGVyKT1cIm9uUmVzdWx0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAocmVzdWx0TW91c2VsZWF2ZSk9XCJvblJlc3VsdFVuZm9jdXMoJGV2ZW50KVwiXG4gICAgICAobW9yZVJlc3VsdHMpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICBbbWFwXT1cIm1hcFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlICNpZ29TZWFyY2hJdGVtVG9vbGJhciBsZXQtcmVzdWx0PVwicmVzdWx0XCI+XG4gICAgICAgIDxpZ28tc2VhcmNoLWFkZC1idXR0b25cbiAgICAgICAgICBbbWFwXT1cIm1hcFwiXG4gICAgICAgICAgW3N0b3JlXT1cInN0b3JlXCJcbiAgICAgICAgICBbc3RvcmVzXT1cInN0b3Jlc1wiXG4gICAgICAgICAgW2xheWVyXT1cInJlc3VsdFwiXG4gICAgICAgICAgW3NhdmVTZWFyY2hSZXN1bHRJbkxheWVyXT1cInNhdmVTZWFyY2hSZXN1bHRJbkxheWVyXCJcbiAgICAgICAgPlxuICAgICAgICA8L2lnby1zZWFyY2gtYWRkLWJ1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pZ28tc2VhcmNoLXJlc3VsdHM+XG4gIDwvZGl2PlxuXG4gIDxkaXYgaWdvRmxleGlibGVGaWxsIGNsYXNzPVwiaWdvLWNvbnRlbnRcIj5cbiAgICA8aWdvLXBhbmVsXG4gICAgICBbdGl0bGVdPVwiZmVhdHVyZVRpdGxlXCJcbiAgICAgICpuZ0lmPVwiZmVhdHVyZSQgfCBhc3luY1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlVG9wUGFuZWwoJGV2ZW50KVwiXG4gICAgICBbY3Vyc29yUG9pbnRlcl09XCJ0cnVlXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBwYW5lbExlZnRCdXR0b25cbiAgICAgICAgY2xhc3M9XCJpZ28taWNvbi1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlVG9wUGFuZWwoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIFtzdmdJY29uXT1cIlxuICAgICAgICAgICAgKHRvcFBhbmVsU3RhdGUkIHwgYXN5bmMpID09PSAnY29sbGFwc2VkJyA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bidcbiAgICAgICAgICBcIlxuICAgICAgICA+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiZmVhdHVyZS5nZW9tZXRyeVwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBwYW5lbFJpZ2h0QnV0dG9uXG4gICAgICAgIGNsYXNzPVwiaWdvLWljb24tYnV0dG9uXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICAgICAgKChpc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCB8IGFzeW5jKVxuICAgICAgICAgICAgPyAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLnpvb21PbkZlYXR1cmVUb29sdGlwT3V0T2ZWaWV3J1xuICAgICAgICAgICAgOiAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLnpvb21PbkZlYXR1cmVUb29sdGlwJ1xuICAgICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgXCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIChjbGljayk9XCJ6b29tVG9GZWF0dXJlRXh0ZW50KClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckIHwgYXN5bmMpID8gJyEnIDogJydcIlxuICAgICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgc3ZnSWNvbj1cIm1hZ25pZnktcGx1cy1vdXRsaW5lXCJcbiAgICAgICAgPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGlnby1mZWF0dXJlLWRldGFpbHNcbiAgICAgICAgaWdvRmVhdHVyZURldGFpbHNEaXJlY3RpdmVcbiAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZSQgfCBhc3luY1wiXG4gICAgICAgIFttYXBdPVwibWFwXCJcbiAgICAgICAgW3Rvb2xib3hdPVwidG9vbFN0YXRlLnRvb2xib3hcIlxuICAgICAgICAocm91dGluZ0V2ZW50KT1cImdldFJvdXRlKClcIlxuICAgICAgPlxuICAgICAgPC9pZ28tZmVhdHVyZS1kZXRhaWxzPlxuICAgIDwvaWdvLXBhbmVsPlxuICA8L2Rpdj5cbjwvaWdvLWZsZXhpYmxlPlxuIl19
|
|
553
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMtdG9vbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy10b29sL3NlYXJjaC1yZXN1bHRzLXRvb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLXJlc3VsdHMtdG9vbC9zZWFyY2gtcmVzdWx0cy10b29sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUdMLGlCQUFpQixFQUVqQixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixjQUFjLEVBQ2YsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxPQUFPLEVBRVAsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFLYiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsV0FBVyxFQUNYLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsNEJBQTRCLEVB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aUIsbUxBQ2pCLHNCQUFzQix5U0FDdEIsOEJBQThCLDRKQUM5QixjQUFjLHVHQUNkLGVBQWUsMklBQ2YsYUFBYSxtTEFDYixnQkFBZ0IsNFRBQ2hCLGNBQWMsNFBBQ2QsdUJBQXVCLDBLQUN2QixTQUFTLDZDQUNULGVBQWUsd0ZBQ2YsZ0JBQWdCOztBQUdQLDBCQUEwQjtJQTFCdEMsYUFBYSxDQUFDO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLHFDQUFxQztRQUM1QyxJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUM7cUNBaUhvQixRQUFRO1FBQ0wsV0FBVztRQUNqQixVQUFVO1FBQ1AsU0FBUztRQUNILGNBQWM7UUFDdkIsYUFBYTtHQWhHbkIsMEJBQTBCLENBMHBCdEM7OzJGQTFwQlksMEJBQTBCO2tCQXJCdEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBRWxCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLElBQUk7d0JBQ0osaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLDhCQUE4Qjt3QkFDOUIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsU0FBUzt3QkFDVCxlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakI7aU5BTVEsU0FBUztzQkFBakIsS0FBSztnQkFLRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBZ0VGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQge1xuICBFbnRpdHlTdGF0ZSxcbiAgRW50aXR5U3RvcmUsXG4gIEZsZXhpYmxlQ29tcG9uZW50LFxuICBGbGV4aWJsZVN0YXRlLFxuICBQYW5lbENvbXBvbmVudCxcbiAgU2FuaXRpemVIdG1sUGlwZSxcbiAgVG9vbENvbXBvbmVudCxcbiAgZ2V0RW50aXR5VGl0bGVcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5pbXBvcnQge1xuICBGRUFUVVJFLFxuICBGZWF0dXJlLFxuICBGZWF0dXJlRGV0YWlsc0NvbXBvbmVudCxcbiAgRmVhdHVyZU1vdGlvbixcbiAgRmVhdHVyZVN0b3JlLFxuICBJZ29NYXAsXG4gIFJlc2VhcmNoLFxuICBTZWFyY2hSZXN1bHQsXG4gIFNlYXJjaFJlc3VsdEFkZEJ1dHRvbkNvbXBvbmVudCxcbiAgU2VhcmNoUmVzdWx0c0NvbXBvbmVudCxcbiAgY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQsXG4gIGZlYXR1cmVGcm9tT2wsXG4gIGZlYXR1cmVUb09sLFxuICBmZWF0dXJlc0FyZU91dE9mVmlldyxcbiAgZmVhdHVyZXNBcmVUb29EZWVwSW5WaWV3LFxuICBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlLFxuICBnZXRDb21tb25WZWN0b3JTdHlsZSxcbiAgbW92ZVRvT2xGZWF0dXJlcyxcbiAgcm91bmRDb29yZFRvXG59IGZyb20gJ0BpZ28yL2dlbyc7XG5cbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgb2xGb3JtYXRHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgb2xQb2ludCBmcm9tICdvbC9nZW9tL1BvaW50JztcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcblxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgcG9pbnRPbkZlYXR1cmUgZnJvbSAnQHR1cmYvcG9pbnQtb24tZmVhdHVyZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERpcmVjdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aW9ucy9kaXJlY3Rpb25zLnN0YXRlJztcbmltcG9ydCB7IE1hcFN0YXRlIH0gZnJvbSAnLi4vLi4vbWFwL21hcC5zdGF0ZSc7XG5pbXBvcnQgeyBUb29sU3RhdGUgfSBmcm9tICcuLi8uLi90b29sL3Rvb2wuc3RhdGUnO1xuaW1wb3J0IHsgU2VhcmNoU3RhdGUgfSBmcm9tICcuLi9zZWFyY2guc3RhdGUnO1xuXG4vKipcbiAqIFRvb2wgdG8gYnJvd3NlIHRoZSBzZWFyY2ggcmVzdWx0c1xuICovXG5AVG9vbENvbXBvbmVudCh7XG4gIG5hbWU6ICdzZWFyY2hSZXN1bHRzJyxcbiAgdGl0bGU6ICdpZ28uaW50ZWdyYXRpb24udG9vbHMuc2VhcmNoUmVzdWx0cycsXG4gIGljb246ICdzZWFyY2gnXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXNlYXJjaC1yZXN1bHRzLXRvb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdHMtdG9vbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBGbGV4aWJsZUNvbXBvbmVudCxcbiAgICBTZWFyY2hSZXN1bHRzQ29tcG9uZW50LFxuICAgIFNlYXJjaFJlc3VsdEFkZEJ1dHRvbkNvbXBvbmVudCxcbiAgICBQYW5lbENvbXBvbmVudCxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIEZlYXR1cmVEZXRhaWxzQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgU2FuaXRpemVIdG1sUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdHNUb29sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogdG8gc2hvdyBoaWRlIHJlc3VsdHMgaWNvbnNcbiAgICovXG4gIEBJbnB1dCgpIHNob3dJY29uczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIERldGVybWluZSB0aGUgdG9wIHBhbmVsIGRlZmF1bHQgc3RhdGVcbiAgICovXG4gIEBJbnB1dCgpIHRvcFBhbmVsU3RhdGVEZWZhdWx0OiBzdHJpbmcgPSAnZXhwYW5kZWQnO1xuXG4gIHByaXZhdGUgaGFzRmVhdHVyZUVtcGhhc2lzT25TZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNhdmVTZWFyY2hSZXN1bHRJbkxheWVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzaG93UmVzdWx0c0dlb21ldHJpZXMkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGdldFJvdXRlJCQ6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzaG93blJlc3VsdHNHZW9tZXRyaWVzOiBGZWF0dXJlW10gPSBbXTtcbiAgcHJpdmF0ZSBzaG93blJlc3VsdHNFbXBoYXNpc0dlb21ldHJpZXM6IEZlYXR1cmVbXSA9IFtdO1xuICBwcml2YXRlIGZvY3VzZWRSZXN1bHQkOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoUmVzdWx0PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIHB1YmxpYyBpc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGFic3RyYWN0Rm9jdXNlZFJlc3VsdDogRmVhdHVyZTtcbiAgcHJpdmF0ZSBhYnN0cmFjdFNlbGVjdGVkUmVzdWx0OiBGZWF0dXJlO1xuXG4gIHB1YmxpYyBkZWJvdW5jZWRFbXB0eSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgZGVib3VuY2VkRW1wdHkkJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTdG9yZSBob2xkaW5nIHRoZSBzZWFyY2ggcmVzdWx0c1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBzdG9yZSgpOiBFbnRpdHlTdG9yZTxTZWFyY2hSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTdGF0ZS5zdG9yZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXAgdG8gZGlzcGxheSB0aGUgcmVzdWx0cyBvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5tYXBTdGF0ZS5tYXA7XG4gIH1cblxuICBnZXQgZmVhdHVyZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZSA/IGdldEVudGl0eVRpdGxlKHRoaXMuZmVhdHVyZSkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgZmVhdHVyZSQoKTogT2JzZXJ2YWJsZTxGZWF0dXJlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGVWaWV3XG4gICAgICAuZmlyc3RCeSQoKGUpID0+IGUuc3RhdGUuZm9jdXNlZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGVsZW1lbnQpID0+XG4gICAgICAgICAgICAodGhpcy5mZWF0dXJlID0gZWxlbWVudFxuICAgICAgICAgICAgICA/IChlbGVtZW50LmVudGl0eS5kYXRhIGFzIEZlYXR1cmUpXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGZlYXR1cmU6IEZlYXR1cmU7XG5cbiAgcHVibGljIHRlcm0gPSAnJztcbiAgcHJpdmF0ZSBzZWFyY2hUZXJtJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgc2V0dGluZ3NDaGFuZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyB0b3BQYW5lbFN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmxleGlibGVTdGF0ZT4oJ2luaXRpYWwnKTtcbiAgcHJpdmF0ZSB0b3BQYW5lbFN0YXRlJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKVxuICBzZXQgdG9wUGFuZWxTdGF0ZSh2YWx1ZTogRmxleGlibGVTdGF0ZSkge1xuICAgIHRoaXMudG9wUGFuZWxTdGF0ZSQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHRvcFBhbmVsU3RhdGUoKTogRmxleGlibGVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMudG9wUGFuZWxTdGF0ZSQudmFsdWU7XG4gIH1cblxuICBnZXQgdGVybVNwbGl0dGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVGVybVNwbGl0dGVyJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0ID0gbmV3IG9sRm9ybWF0R2VvSlNPTigpO1xuXG4gIGdldCBzdG9yZXMoKTogRmVhdHVyZVN0b3JlPEZlYXR1cmU+W10ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaExheWVyU3RvcmVzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtYXBTdGF0ZTogTWFwU3RhdGUsXG4gICAgcHJpdmF0ZSBzZWFyY2hTdGF0ZTogU2VhcmNoU3RhdGUsXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwdWJsaWMgdG9vbFN0YXRlOiBUb29sU3RhdGUsXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25TdGF0ZTogRGlyZWN0aW9uU3RhdGUsXG4gICAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHtcbiAgICB0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uID0gY29uZmlnU2VydmljZS5nZXRDb25maWcoXG4gICAgICAnaGFzRmVhdHVyZUVtcGhhc2lzT25TZWxlY3Rpb24nXG4gICAgKTtcbiAgICB0aGlzLnNhdmVTZWFyY2hSZXN1bHRJbkxheWVyID0gY29uZmlnU2VydmljZS5nZXRDb25maWcoXG4gICAgICAnc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXInXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VhcmNoVGVybSQkID0gdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hUZXJtJC5zdWJzY3JpYmUoXG4gICAgICAoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWFyY2hUZXJtICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBzZWFyY2hUZXJtICE9PSBudWxsICYmXG4gICAgICAgICAgc2VhcmNoVGVybSAhPT0gJydcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy50ZXJtID0gc2VhcmNoVGVybTtcbiAgICAgICAgICB0aGlzLmRlYm91bmNlZEVtcHR5JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIGlmIChzZWFyY2hUZXJtID09PSAnJykge1xuICAgICAgICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuXG4gICAgZm9yIChjb25zdCByZXMgb2YgdGhpcy5zdG9yZS5zdGF0ZVZpZXcuYWxsJCgpLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzLmVudGl0eSkuc2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2V4cGFuZGVkJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaFNldHRpbmdzQ2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXR0aW5nc0NoYW5nZSQubmV4dCh0cnVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMudG9wUGFuZWxTdGF0ZSQkID0gdGhpcy50b3BQYW5lbFN0YXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaWdvTGlzdCA9IHRoaXMuY29tcHV0ZUVsZW1lbnRSZWYoKVswXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb21wdXRlRWxlbWVudFJlZigpWzFdO1xuICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIC8vIFRvIGJlIHN1cmUgdGhlIGZsZXhpYmxlIGNvbXBvbmVudCBoYXMgYmVlbiBkaXNwbGF5ZWQgeWV0XG4gICAgICAgICAgaWYgKCF0aGlzLmlzU2Nyb2xsZWRJbnRvVmlldyhpZ29MaXN0LCBzZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIHRoaXMuYWRqdXN0VG9wUGFuZWwoaWdvTGlzdCwgc2VsZWN0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgRmxleGlibGVDb21wb25lbnQudHJhbnNpdGlvblRpbWUgKyA1MCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5oYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbikge1xuICAgICAgaWYgKCF0aGlzLnNlYXJjaFN0YXRlLmZvY3VzZWRPclJlc29sdXRpb24kJCkge1xuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLmZvY3VzZWRPclJlc29sdXRpb24kJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHRoaXMuZm9jdXNlZFJlc3VsdCQsXG4gICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiRcbiAgICAgICAgXSkuc3Vic2NyaWJlKChidW5jaDogW1NlYXJjaFJlc3VsdDxGZWF0dXJlPiwgbnVtYmVyXSkgPT5cbiAgICAgICAgICB0aGlzLmJ1aWxkUmVzdWx0RW1waGFzaXMoYnVuY2hbMF0sICdmb2N1c2VkJylcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkT3JSZXNvbHV0aW9uJCQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZE9yUmVzb2x1dGlvbiQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZFJlc3VsdCQsXG4gICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiRcbiAgICAgICAgXSkuc3Vic2NyaWJlKChidW5jaDogW1NlYXJjaFJlc3VsdDxGZWF0dXJlPiwgbnVtYmVyXSkgPT5cbiAgICAgICAgICB0aGlzLmJ1aWxkUmVzdWx0RW1waGFzaXMoYnVuY2hbMF0sICdzZWxlY3RlZCcpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubW9uaXRvclJlc3VsdE91dE9mVmlldygpO1xuXG4gICAgdGhpcy5zaG93UmVzdWx0c0dlb21ldHJpZXMkJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkJCxcbiAgICAgIHRoaXMuc3RvcmUuc3RhdGVWaWV3LmFsbCQoKSxcbiAgICAgIHRoaXMuZm9jdXNlZFJlc3VsdCQsXG4gICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkUmVzdWx0JCxcbiAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoVGVybSQsXG4gICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJFxuICAgIF0pLnN1YnNjcmliZShcbiAgICAgIChcbiAgICAgICAgYnVuY2g6IFtcbiAgICAgICAgICBib29sZWFuLFxuICAgICAgICAgIHsgZW50aXR5OiBTZWFyY2hSZXN1bHQ7IHN0YXRlOiBFbnRpdHlTdGF0ZSB9W10sXG4gICAgICAgICAgU2VhcmNoUmVzdWx0LFxuICAgICAgICAgIFNlYXJjaFJlc3VsdCxcbiAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgbnVtYmVyXG4gICAgICAgIF1cbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkID0gYnVuY2hbMF07XG4gICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSBidW5jaFsxXTtcblxuICAgICAgICBpZiAodGhpcy5oYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbikge1xuICAgICAgICAgIHRoaXMuY2xlYXJGZWF0dXJlRW1waGFzaXMoJ3Nob3duJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93blJlc3VsdHNHZW9tZXRyaWVzLm1hcCgocmVzdWx0KSA9PlxuICAgICAgICAgIHRoaXMubWFwLnF1ZXJ5UmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZShyZXN1bHQpXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVUb0hhbmRsZUdlb20gPSBzZWFyY2hSZXN1bHRzLmZpbHRlcihcbiAgICAgICAgICAocmVzdWx0KSA9PlxuICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5tZXRhLmRhdGFUeXBlID09PSBGRUFUVVJFICYmXG4gICAgICAgICAgICByZXN1bHQuZW50aXR5LmRhdGEuZ2VvbWV0cnkgJiZcbiAgICAgICAgICAgICFyZXN1bHQuc3RhdGUuc2VsZWN0ZWQgJiZcbiAgICAgICAgICAgICFyZXN1bHQuc3RhdGUuZm9jdXNlZFxuICAgICAgICApO1xuXG4gICAgICAgIGZlYXR1cmVUb0hhbmRsZUdlb20ubWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAoc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCkge1xuICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5kYXRhLm1ldGEuc3R5bGUgPSBnZXRDb21tb25WZWN0b3JTdHlsZShcbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBmZWF0dXJlOiByZXN1bHQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSB8IG9sRmVhdHVyZTxPbEdlb21ldHJ5PlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGUsXG4gICAgICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5zdHlsZT8uYmFzZSA/IHJlc3VsdC5lbnRpdHkuc3R5bGUuYmFzZSA6IHt9XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnNob3duUmVzdWx0c0dlb21ldHJpZXMucHVzaChyZXN1bHQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSk7XG4gICAgICAgICAgICB0aGlzLm1hcC5xdWVyeVJlc3VsdHNPdmVybGF5LmFkZEZlYXR1cmUoXG4gICAgICAgICAgICAgIHJlc3VsdC5lbnRpdHkuZGF0YSBhcyBGZWF0dXJlLFxuICAgICAgICAgICAgICBGZWF0dXJlTW90aW9uLk5vbmVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLmJ1aWxkUmVzdWx0RW1waGFzaXMoXG4gICAgICAgICAgICAgICAgcmVzdWx0LmVudGl0eSBhcyBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4sXG4gICAgICAgICAgICAgICAgJ3Nob3duJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkJCA9IHRoaXMuc3RvcmUuc3RhdGVWaWV3LmVtcHR5JFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDE1MDApKVxuICAgICAgLnN1YnNjcmliZSgoZW1wdHkpID0+IHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQoZW1wdHkpKTtcbiAgfVxuXG4gIHByaXZhdGUgbW9uaXRvclJlc3VsdE91dE9mVmlldygpIHtcbiAgICB0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuc3RhdGUkLFxuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWxlY3RlZFJlc3VsdCRcbiAgICBdKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpXG4gICAgICAuc3Vic2NyaWJlKChidW5jaCkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJlc3VsdCA9IGJ1bmNoWzFdIGFzIFNlYXJjaFJlc3VsdDxGZWF0dXJlPjtcbiAgICAgICAgaWYgKCFzZWxlY3RlZFJlc3VsdCkge1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZWxlY3RlZFJlc3VsdC5kYXRhLmdlb21ldHJ5KSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRPbEZlYXR1cmUgPSBmZWF0dXJlVG9PbChcbiAgICAgICAgICAgIHNlbGVjdGVkUmVzdWx0LmRhdGEsXG4gICAgICAgICAgICB0aGlzLm1hcC5wcm9qZWN0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9sRmVhdHVyZUV4dGVudCA9IGNvbXB1dGVPbEZlYXR1cmVzRXh0ZW50KFxuICAgICAgICAgICAgW3NlbGVjdGVkT2xGZWF0dXJlXSxcbiAgICAgICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldE9sUHJvamVjdGlvbigpXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckLm5leHQoXG4gICAgICAgICAgICBmZWF0dXJlc0FyZU91dE9mVmlldyh0aGlzLm1hcC5nZXRFeHRlbnQoKSwgc2VsZWN0ZWRPbEZlYXR1cmVFeHRlbnQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUmVzdWx0RW1waGFzaXMoXG4gICAgcmVzdWx0OiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4sXG4gICAgdHJpZ2dlcjogJ3NlbGVjdGVkJyB8ICdmb2N1c2VkJyB8ICdzaG93bicgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgaWYgKHRyaWdnZXIgIT09ICdzaG93bicpIHtcbiAgICAgIHRoaXMuY2xlYXJGZWF0dXJlRW1waGFzaXModHJpZ2dlcik7XG4gICAgfVxuICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQuZGF0YS5nZW9tZXRyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBteU9sRmVhdHVyZSA9IGZlYXR1cmVUb09sKHJlc3VsdC5kYXRhLCB0aGlzLm1hcC5wcm9qZWN0aW9uKTtcbiAgICBjb25zdCBvbEdlb21ldHJ5ID0gbXlPbEZlYXR1cmUuZ2V0R2VvbWV0cnkoKTtcbiAgICBpZiAoXG4gICAgICBmZWF0dXJlc0FyZVRvb0RlZXBJblZpZXcoXG4gICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLFxuICAgICAgICBvbEdlb21ldHJ5LmdldEV4dGVudCgpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAwLjAwMjVcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnN0IGV4dGVudCA9IG9sR2VvbWV0cnkuZ2V0RXh0ZW50KCk7XG4gICAgICBjb25zdCB4ID0gZXh0ZW50WzBdICsgKGV4dGVudFsyXSAtIGV4dGVudFswXSkgLyAyO1xuICAgICAgY29uc3QgeSA9IGV4dGVudFsxXSArIChleHRlbnRbM10gLSBleHRlbnRbMV0pIC8gMjtcbiAgICAgIGNvbnN0IGZlYXR1cmUxID0gbmV3IG9sRmVhdHVyZSh7XG4gICAgICAgIG5hbWU6IGAke3RyaWdnZXJ9QWJzdHJhY3RSZXN1bHQnYCxcbiAgICAgICAgZ2VvbWV0cnk6IG5ldyBvbFBvaW50KFt4LCB5XSlcbiAgICAgIH0pO1xuICAgICAgY29uc3QgYWJzdHJhY3RSZXN1bHQgPSBmZWF0dXJlRnJvbU9sKGZlYXR1cmUxLCB0aGlzLm1hcC5wcm9qZWN0aW9uKTtcblxuICAgICAgbGV0IGNvbXB1dGVkU3R5bGU7XG4gICAgICBsZXQgekluZGV4T2Zmc2V0ID0gMDtcblxuICAgICAgc3dpdGNoICh0cmlnZ2VyKSB7XG4gICAgICAgIGNhc2UgJ2ZvY3VzZWQnOlxuICAgICAgICAgIGNvbXB1dGVkU3R5bGUgPSBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlKFxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgIHsgZmVhdHVyZTogYWJzdHJhY3RSZXN1bHQgfSxcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGVGb2N1cyxcbiAgICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5mb2N1cyA/IHJlc3VsdC5zdHlsZS5mb2N1cyA6IHt9XG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgICB6SW5kZXhPZmZzZXQgPSAyO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzaG93bic6XG4gICAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGdldENvbW1vblZlY3RvclN0eWxlKFxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgIHsgZmVhdHVyZTogYWJzdHJhY3RSZXN1bHQgfSxcbiAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGUsXG4gICAgICAgICAgICAgIHJlc3VsdC5zdHlsZT8uYmFzZSA/IHJlc3VsdC5zdHlsZS5iYXNlIDoge31cbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzZWxlY3RlZCc6XG4gICAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgeyBmZWF0dXJlOiBhYnN0cmFjdFJlc3VsdCB9LFxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZVNlbGVjdGlvbixcbiAgICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5zZWxlY3Rpb24gPyByZXN1bHQuc3R5bGUuc2VsZWN0aW9uIDoge31cbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHpJbmRleE9mZnNldCA9IDE7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBhYnN0cmFjdFJlc3VsdC5tZXRhLnN0eWxlID0gY29tcHV0ZWRTdHlsZTtcbiAgICAgIGFic3RyYWN0UmVzdWx0Lm1ldGEuc3R5bGUuc2V0WkluZGV4KDIwMDAgKyB6SW5kZXhPZmZzZXQpO1xuICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkuYWRkRmVhdHVyZShcbiAgICAgICAgYWJzdHJhY3RSZXN1bHQsXG4gICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuZmVhdHVyZU1vdGlvbi5mb2N1c1xuICAgICAgKTtcbiAgICAgIGlmICh0cmlnZ2VyID09PSAnZm9jdXNlZCcpIHtcbiAgICAgICAgdGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQgPSBhYnN0cmFjdFJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGlmICh0cmlnZ2VyID09PSAnc2VsZWN0ZWQnKSB7XG4gICAgICAgIHRoaXMuYWJzdHJhY3RTZWxlY3RlZFJlc3VsdCA9IGFic3RyYWN0UmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKHRyaWdnZXIgPT09ICdzaG93bicpIHtcbiAgICAgICAgdGhpcy5zaG93blJlc3VsdHNFbXBoYXNpc0dlb21ldHJpZXMucHVzaChhYnN0cmFjdFJlc3VsdCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xlYXJGZWF0dXJlRW1waGFzaXModHJpZ2dlcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckZlYXR1cmVFbXBoYXNpcyh0cmlnZ2VyOiAnc2VsZWN0ZWQnIHwgJ2ZvY3VzZWQnIHwgJ3Nob3duJykge1xuICAgIGlmICh0cmlnZ2VyID09PSAnZm9jdXNlZCcgJiYgdGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQpIHtcbiAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LnJlbW92ZUZlYXR1cmUodGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQpO1xuICAgICAgdGhpcy5hYnN0cmFjdEZvY3VzZWRSZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0cmlnZ2VyID09PSAnc2VsZWN0ZWQnICYmIHRoaXMuYWJzdHJhY3RTZWxlY3RlZFJlc3VsdCkge1xuICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZSh0aGlzLmFic3RyYWN0U2VsZWN0ZWRSZXN1bHQpO1xuICAgICAgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodHJpZ2dlciA9PT0gJ3Nob3duJykge1xuICAgICAgdGhpcy5zaG93blJlc3VsdHNFbXBoYXNpc0dlb21ldHJpZXMubWFwKChzaG93blJlc3VsdCkgPT5cbiAgICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZShzaG93blJlc3VsdClcbiAgICAgICk7XG4gICAgICB0aGlzLnNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudG9wUGFuZWxTdGF0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZWFyY2hUZXJtJCQudW5zdWJzY3JpYmUoKTtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCQpIHtcbiAgICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dSZXN1bHRzR2VvbWV0cmllcyQkKSB7XG4gICAgICB0aGlzLnNob3dSZXN1bHRzR2VvbWV0cmllcyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmdldFJvdXRlJCQpIHtcbiAgICAgIHRoaXMuZ2V0Um91dGUkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWJvdW5jZWRFbXB0eSQkKSB7XG4gICAgICB0aGlzLmRlYm91bmNlZEVtcHR5JCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJ5IHRvIGFkZCBhIGZlYXR1cmUgdG8gdGhlIG1hcCB3aGVuIGl0J3MgYmVpbmcgZm9jdXNlZFxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIHJlc3VsdCBBIHNlYXJjaCByZXN1bHQgdGhhdCBjb3VsZCBiZSBhIGZlYXR1cmVcbiAgICovXG4gIG9uUmVzdWx0Rm9jdXMocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLmZvY3VzZWRSZXN1bHQkLm5leHQocmVzdWx0KTtcbiAgICBpZiAocmVzdWx0Lm1ldGEuZGF0YVR5cGUgPT09IEZFQVRVUkUgJiYgcmVzdWx0LmRhdGEuZ2VvbWV0cnkpIHtcbiAgICAgIHJlc3VsdC5kYXRhLm1ldGEuc3R5bGUgPSBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlKFxuICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgIHt9LFxuICAgICAgICAgIHsgZmVhdHVyZTogcmVzdWx0LmRhdGEgYXMgRmVhdHVyZSB8IG9sRmVhdHVyZTxPbEdlb21ldHJ5PiB9LFxuICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlRm9jdXMsXG4gICAgICAgICAgcmVzdWx0LnN0eWxlPy5mb2N1cyA/IHJlc3VsdC5zdHlsZS5mb2N1cyA6IHt9XG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGZlYXR1cmUgPVxuICAgICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVCeUlkKFxuICAgICAgICAgIHJlc3VsdC5tZXRhLmlkXG4gICAgICAgICk7XG4gICAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgICBmZWF0dXJlLnNldFN0eWxlKHJlc3VsdC5kYXRhLm1ldGEuc3R5bGUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5hZGRGZWF0dXJlKFxuICAgICAgICByZXN1bHQuZGF0YSBhcyBGZWF0dXJlLFxuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLmZlYXR1cmVNb3Rpb24uZm9jdXNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgb25SZXN1bHRVbmZvY3VzKHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy5mb2N1c2VkUmVzdWx0JC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgaWYgKHJlc3VsdC5tZXRhLmRhdGFUeXBlICE9PSBGRUFUVVJFKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RvcmUuc3RhdGUuZ2V0KHJlc3VsdCkuc2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgIGNvbnN0IGZlYXR1cmUgPVxuICAgICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVCeUlkKFxuICAgICAgICAgIHJlc3VsdC5tZXRhLmlkXG4gICAgICAgICk7XG4gICAgICBpZiAoZmVhdHVyZSkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgeyBmZWF0dXJlOiByZXN1bHQuZGF0YSBhcyBGZWF0dXJlIHwgb2xGZWF0dXJlPE9sR2VvbWV0cnk+IH0sXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZUZvY3VzLFxuICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5mb2N1cyA/IHJlc3VsdC5zdHlsZS5mb2N1cyA6IHt9XG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBmZWF0dXJlLnNldFN0eWxlKHN0eWxlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZShyZXN1bHQuZGF0YSBhcyBGZWF0dXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gYWRkIGEgZmVhdHVyZSB0byB0aGUgbWFwIHdoZW4gaXQncyBiZWluZyBzZWxlY3RlZFxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIHJlc3VsdCBBIHNlYXJjaCByZXN1bHQgdGhhdCBjb3VsZCBiZSBhIGZlYXR1cmUgb3Igc29tZSBsYXllciBvcHRpb25zXG4gICAqL1xuICBvblJlc3VsdFNlbGVjdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmRhdGFTb3VyY2Uub2wuY2xlYXIoKTtcbiAgICB0aGlzLnRyeUFkZEZlYXR1cmVUb01hcChyZXN1bHQsIHRoaXMuc2VhcmNoU3RhdGUuZmVhdHVyZU1vdGlvbi5zZWxlY3RlZCk7XG4gICAgdGhpcy5zZWFyY2hTdGF0ZS5zZXRTZWxlY3RlZFJlc3VsdChyZXN1bHQpO1xuXG4gICAgaWYgKHRoaXMudG9wUGFuZWxTdGF0ZSA9PT0gJ2luaXRpYWwnKSB7XG4gICAgICBpZiAodGhpcy50b3BQYW5lbFN0YXRlRGVmYXVsdCAhPT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2V4cGFuZGVkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9wUGFuZWxTdGF0ZSA9ICdjb2xsYXBzZWQnO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnRvcFBhbmVsU3RhdGUgPT09ICdleHBhbmRlZCcpIHtcbiAgICAgIGNvbnN0IGlnb0xpc3QgPSB0aGlzLmNvbXB1dGVFbGVtZW50UmVmKClbMF07XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuY29tcHV0ZUVsZW1lbnRSZWYoKVsxXTtcbiAgICAgIGlmICghdGhpcy5pc1Njcm9sbGVkSW50b1ZpZXcoaWdvTGlzdCwgc2VsZWN0ZWQpKSB7XG4gICAgICAgIHRoaXMuYWRqdXN0VG9wUGFuZWwoaWdvTGlzdCwgc2VsZWN0ZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKGV2ZW50OiB7IHJlc2VhcmNoOiBSZXNlYXJjaDsgcmVzdWx0czogU2VhcmNoUmVzdWx0W10gfSkge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBldmVudC5yZXN1bHRzO1xuICAgIGNvbnN0IG5ld1Jlc3VsdHMgPSB0aGlzLnN0b3JlLmVudGl0aWVzJC52YWx1ZVxuICAgICAgLmZpbHRlcigocmVzdWx0OiBTZWFyY2hSZXN1bHQpID0+IHJlc3VsdC5zb3VyY2UgIT09IGV2ZW50LnJlc2VhcmNoLnNvdXJjZSlcbiAgICAgIC5jb25jYXQocmVzdWx0cyk7XG5cbiAgICB0aGlzLnN0b3JlLmxvYWQobmV3UmVzdWx0cyk7XG5cbiAgICBmb3IgKGNvbnN0IHJlcyBvZiB0aGlzLnN0b3JlLmFsbCgpKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuc3RvcmUuc3RhdGUuZ2V0KHJlcykuZm9jdXNlZCA9PT0gdHJ1ZSAmJlxuICAgICAgICB0aGlzLnN0b3JlLnN0YXRlLmdldChyZXMpLnNlbGVjdGVkICE9PSB0cnVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUocmVzLCB7IGZvY3VzZWQ6IGZhbHNlIH0sIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgaWdvTGlzdCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpZ28tbGlzdCcpO1xuICAgICAgbGV0IG1vcmVSZXN1bHRzO1xuICAgICAgZXZlbnQucmVzZWFyY2gucmVxdWVzdC5zdWJzY3JpYmUoKHNvdXJjZSkgPT4ge1xuICAgICAgICBpZiAoIXNvdXJjZVswXSB8fCAhc291cmNlWzBdLnNvdXJjZSkge1xuICAgICAgICAgIG1vcmVSZXN1bHRzID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VbMF0uc291cmNlLmdldElkKCkgPT09ICdpY2hlcmNoZScpIHtcbiAgICAgICAgICBtb3JlUmVzdWx0cyA9IGlnb0xpc3QucXVlcnlTZWxlY3RvcignLmljaGVyY2hlIC5tb3JlUmVzdWx0cycpO1xuICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSA9PT0gJ2lsYXllcicpIHtcbiAgICAgICAgICBtb3JlUmVzdWx0cyA9IGlnb0xpc3QucXVlcnlTZWxlY3RvcignLmlsYXllciAubW9yZVJlc3VsdHMnKTtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VbMF0uc291cmNlLmdldElkKCkgPT09ICdub21pbmF0aW0nKSB7XG4gICAgICAgICAgbW9yZVJlc3VsdHMgPSBpZ29MaXN0LnF1ZXJ5U2VsZWN0b3IoJy5ub21pbmF0aW0gLm1vcmVSZXN1bHRzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbW9yZVJlc3VsdHMgPSBpZ29MaXN0LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAnLicgKyBzb3VyY2VbMF0uc291cmNlLmdldElkKCkgKyAnIC5tb3JlUmVzdWx0cydcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIG1vcmVSZXN1bHRzICE9PSBudWxsICYmXG4gICAgICAgICAgIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGlnb0xpc3QsIG1vcmVSZXN1bHRzKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZ29MaXN0LnNjcm9sbFRvcCA9XG4gICAgICAgICAgICBtb3JlUmVzdWx0cy5vZmZzZXRUb3AgK1xuICAgICAgICAgICAgbW9yZVJlc3VsdHMub2Zmc2V0SGVpZ2h0IC1cbiAgICAgICAgICAgIGlnb0xpc3QuY2xpZW50SGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCAyNTApO1xuICB9XG5cbiAgY29tcHV0ZUVsZW1lbnRSZWYoKSB7XG4gICAgY29uc3QgaXRlbXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWdvLXNlYXJjaC1yZXN1bHRzLWl0ZW0nKTtcbiAgICBjb25zdCBpZ29MaXN0ID1cbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaWdvLWxpc3QnKVswXTtcbiAgICBsZXQgc2VsZWN0ZWRJdGVtO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpdGVtc1tpXS5jbGFzc05hbWUuaW5jbHVkZXMoJ2lnby1saXN0LWl0ZW0tc2VsZWN0ZWQnKSkge1xuICAgICAgICBzZWxlY3RlZEl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFtpZ29MaXN0LCBzZWxlY3RlZEl0ZW1dO1xuICB9XG5cbiAgYWRqdXN0VG9wUGFuZWwoZWxlbVNvdXJjZSwgZWxlbSkge1xuICAgIGlmICghdGhpcy5pc1Njcm9sbGVkSW50b1ZpZXcoZWxlbVNvdXJjZSwgZWxlbSkpIHtcbiAgICAgIGVsZW1Tb3VyY2Uuc2Nyb2xsVG9wID1cbiAgICAgICAgZWxlbS5vZmZzZXRUb3AgK1xuICAgICAgICBlbGVtLmNoaWxkcmVuWzBdLm9mZnNldEhlaWdodCAtXG4gICAgICAgIGVsZW1Tb3VyY2UuY2xpZW50SGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVRvcFBhbmVsKGV2ZW50PzogTW91c2VFdmVudCkge1xuICAgIGlmIChldmVudCAmJiAoZXZlbnQudGFyZ2V0IGFzIGFueSk/LmNsYXNzTmFtZSAhPT0gJ2lnby1wYW5lbC10aXRsZScpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudG9wUGFuZWxTdGF0ZSA9PT0gJ2V4cGFuZGVkJykge1xuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnY29sbGFwc2VkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudG9wUGFuZWxTdGF0ZSA9ICdleHBhbmRlZCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgem9vbVRvRmVhdHVyZUV4dGVudCgpIHtcbiAgICBpZiAodGhpcy5mZWF0dXJlLmdlb21ldHJ5KSB7XG4gICAgICBjb25zdCBsb2NhbE9sRmVhdHVyZSA9IHRoaXMuZm9ybWF0LnJlYWRGZWF0dXJlKHRoaXMuZmVhdHVyZSwge1xuICAgICAgICBkYXRhUHJvamVjdGlvbjogdGhpcy5mZWF0dXJlLnByb2plY3Rpb24sXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLm1hcC5wcm9qZWN0aW9uQ29kZVxuICAgICAgfSk7XG4gICAgICBtb3ZlVG9PbEZlYXR1cmVzKFxuICAgICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlcixcbiAgICAgICAgW2xvY2FsT2xGZWF0dXJlXSxcbiAgICAgICAgRmVhdHVyZU1vdGlvbi5ab29tXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gYWRkIGEgZmVhdHVyZSB0byB0aGUgbWFwIG92ZXJsYXlcbiAgICogQHBhcmFtIHJlc3VsdCBBIHNlYXJjaCByZXN1bHQgdGhhdCBjb3VsZCBiZSBhIGZlYXR1cmVcbiAgICogQHBhcmFtIG1vdGlvbiBBIEZlYXR1cmVNb3Rpb24gdG8gdHJpZ2dlciB3aGVuIGFkZGluZyB0aGUgc2VhcmNocmVzdWx0IHRvIHRoZSBtYXAgc2VhcmNoIG92ZXJsYXlcbiAgICovXG4gIHByaXZhdGUgdHJ5QWRkRmVhdHVyZVRvTWFwKFxuICAgIHJlc3VsdDogU2VhcmNoUmVzdWx0LFxuICAgIG1vdGlvbjogRmVhdHVyZU1vdGlvbiA9IEZlYXR1cmVNb3Rpb24uRGVmYXVsdFxuICApIHtcbiAgICBpZiAocmVzdWx0Lm1ldGEuZGF0YVR5cGUgIT09IEZFQVRVUkUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGZlYXR1cmUgPSAocmVzdWx0IGFzIFNlYXJjaFJlc3VsdDxGZWF0dXJlPikuZGF0YTtcblxuICAgIC8vIFNvbWV0aGltZXMgZmVhdHVyZXMgaGF2ZSBubyBnZW9tZXRyeS4gSXQgaGFwcGVucyB3aXRoIHNvbWUgR2V0RmVhdHVyZUluZm9cbiAgICBpZiAoIWZlYXR1cmUuZ2VvbWV0cnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmZWF0dXJlLm1ldGEuc3R5bGUgPSBnZXRDb21tb25WZWN0b3JTZWxlY3RlZFN0eWxlKFxuICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIHsgZmVhdHVyZSB9LFxuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZVNlbGVjdGlvbixcbiAgICAgICAgcmVzdWx0LnN0eWxlPy5zZWxlY3Rpb24gPyByZXN1bHQuc3R5bGUuc2VsZWN0aW9uIDoge31cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkuYWRkRmVhdHVyZShmZWF0dXJlLCBtb3Rpb24pO1xuICB9XG5cbiAgaXNTY3JvbGxlZEludG9WaWV3KGVsZW1Tb3VyY2UsIGVsZW0pIHtcbiAgICBjb25zdCBwYWRkaW5nID0gNjtcbiAgICBjb25zdCBkb2NWaWV3VG9wID0gZWxlbVNvdXJjZS5zY3JvbGxUb3A7XG4gICAgY29uc3QgZG9jVmlld0JvdHRvbSA9IGRvY1ZpZXdUb3AgKyBlbGVtU291cmNlLmNsaWVudEhlaWdodDtcblxuICAgIGNvbnN0IGVsZW1Ub3AgPSBlbGVtLm9mZnNldFRvcDtcbiAgICBjb25zdCBlbGVtQm90dG9tID0gZWxlbVRvcCArIGVsZW0uY2xpZW50SGVpZ2h0ICsgcGFkZGluZztcbiAgICByZXR1cm4gZWxlbUJvdHRvbSA8PSBkb2NWaWV3Qm90dG9tICYmIGVsZW1Ub3AgPj0gZG9jVmlld1RvcDtcbiAgfVxuXG4gIGdldFJvdXRlKCkge1xuICAgIHRoaXMudG9vbFN0YXRlLnRvb2xib3guYWN0aXZhdGVUb29sKCdkaXJlY3Rpb25zJyk7XG4gICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLmNsZWFyU3RvcHMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCByb3V0aW5nQ29vcmRMb2FkZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmdldFJvdXRlJCQpIHtcbiAgICAgICAgdGhpcy5nZXRSb3V0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmdldFJvdXRlJCQgPVxuICAgICAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQuc3Vic2NyaWJlKFxuICAgICAgICAgIChpbml0OiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC52YWx1ZSAmJlxuICAgICAgICAgICAgICAhcm91dGluZ0Nvb3JkTG9hZGVkXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcm91dGluZ0Nvb3JkTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY29uc3Qgc3RvcCA9IHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZVxuICAgICAgICAgICAgICAgIC5hbGwoKVxuICAgICAgICAgICAgICAgIC5maW5kKChlKSA9PiBlLnBvc2l0aW9uID09PSAxKTtcbiAgICAgICAgICAgICAgbGV0IGNvb3JkO1xuICAgICAgICAgICAgICBpZiAodGhpcy5mZWF0dXJlLmdlb21ldHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmVhdHVyZS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnKSB7XG4gICAgICAgICAgICAgICAgICBjb29yZCA9IFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRPbkZlYXR1cmUodGhpcy5mZWF0dXJlLmdlb21ldHJ5KTtcbiAgICAgICAgICAgICAgICAgIGNvb3JkID0gW1xuICAgICAgICAgICAgICAgICAgICBwb2ludC5nZW9tZXRyeS5jb29yZGluYXRlc1swXSxcbiAgICAgICAgICAgICAgICAgICAgcG9pbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHN0b3AudGV4dCA9IHRoaXMuZmVhdHVyZVRpdGxlO1xuICAgICAgICAgICAgICBzdG9wLmNvb3JkaW5hdGVzID0gY29vcmQ7XG4gICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZS51cGRhdGUoc3RvcCk7XG4gICAgICAgICAgICAgIGlmICh0aGlzLm1hcC5nZW9sb2NhdGlvbkNvbnRyb2xsZXIucG9zaXRpb24kLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFBvcyA9XG4gICAgICAgICAgICAgICAgICB0aGlzLm1hcC5nZW9sb2NhdGlvbkNvbnRyb2xsZXIucG9zaXRpb24kLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0b3AgPSB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmVcbiAgICAgICAgICAgICAgICAgIC5hbGwoKVxuICAgICAgICAgICAgICAgICAgLmZpbmQoKGUpID0+IGUucG9zaXRpb24gPT09IDApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb29yZCA9IG9sUHJvai50cmFuc2Zvcm0oXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UG9zLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFBvcy5wcm9qZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgJ0VQU0c6NDMyNidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvb3JkOiBbbnVtYmVyLCBudW1iZXJdID0gcm91bmRDb29yZFRvKFxuICAgICAgICAgICAgICAgICAgW2N1cnJlbnRDb29yZFswXSwgY3VycmVudENvb3JkWzFdXSxcbiAgICAgICAgICAgICAgICAgIDZcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHN0b3AudGV4dCA9IGNvb3JkLmpvaW4oJywnKTtcbiAgICAgICAgICAgICAgICBzdG9wLmNvb3JkaW5hdGVzID0gY29vcmQ7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLnVwZGF0ZShzdG9wKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9LCAyNTApO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwiKCFzdG9yZSB8fCBzdG9yZS5zdGF0ZVZpZXcuZW1wdHkpICYmIChkZWJvdW5jZWRFbXB0eSQgfCBhc3luYylcIlxuICBzdHlsZT1cIm1hcmdpbjogMTBweFwiXG4+XG4gIDxzZWN0aW9uIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAgICA8aDQ+XG4gICAgICA8c3Ryb25nPnt7XG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3N0cm9uZz5cbiAgICA8L2g0PlxuICAgIDxwPlxuICAgICAgPHN0cm9uZz57e1xuICAgICAgICAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLmRvU2VhcmNoJyB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3N0cm9uZz5cbiAgICA8L3A+XG4gICAgPGRpdlxuICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi5zZWFyY2hSZXN1bHRzVG9vbC5leGFtcGxlcycgfCB0cmFuc2xhdGUgfCBzYW5pdGl6ZUh0bWxcbiAgICAgIFwiXG4gICAgPjwvZGl2PlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cblxuPGlnby1mbGV4aWJsZVxuICAqbmdJZj1cIihkZWJvdW5jZWRFbXB0eSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgI3RvcFBhbmVsXG4gIGluaXRpYWw9XCIxMDAlXCJcbiAgaW5pdGlhbE1vYmlsZT1cIjEwMCVcIlxuICBjb2xsYXBzZWQ9XCJjYWxjKDEwMCUgLSA1OHB4KVwiXG4gIGNvbGxhcHNlZE1vYmlsZT1cImNhbGMoMTAwJSAtIDU4cHgpXCJcbiAgZXhwYW5kZWQ9XCI2MCVcIlxuICBleHBhbmRlZE1vYmlsZT1cIjYwJVwiXG4gIFtzdGF0ZV09XCIoZmVhdHVyZSQgfCBhc3luYykgPyB0b3BQYW5lbFN0YXRlIDogJ2luaXRpYWwnXCJcbj5cbiAgPGRpdiBjbGFzcz1cImlnby1jb250ZW50XCI+XG4gICAgPGlnby1zZWFyY2gtcmVzdWx0c1xuICAgICAgW3N0b3JlXT1cInN0b3JlXCJcbiAgICAgIFtzaG93SWNvbnNdPVwic2hvd0ljb25zXCJcbiAgICAgIFt0ZXJtXT1cInRlcm1cIlxuICAgICAgW3Rlcm1TcGxpdHRlcl09XCJ0ZXJtU3BsaXR0ZXJcIlxuICAgICAgW3NldHRpbmdzQ2hhbmdlJF09XCJzZXR0aW5nc0NoYW5nZSRcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJmYWxzZVwiXG4gICAgICAocmVzdWx0Rm9jdXMpPVwib25SZXN1bHRGb2N1cygkZXZlbnQpXCJcbiAgICAgIChyZXN1bHRTZWxlY3QpPVwib25SZXN1bHRTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAocmVzdWx0VW5mb2N1cyk9XCJvblJlc3VsdFVuZm9jdXMoJGV2ZW50KVwiXG4gICAgICAocmVzdWx0TW91c2VlbnRlcik9XCJvblJlc3VsdEZvY3VzKCRldmVudClcIlxuICAgICAgKHJlc3VsdE1vdXNlbGVhdmUpPVwib25SZXN1bHRVbmZvY3VzKCRldmVudClcIlxuICAgICAgKG1vcmVSZXN1bHRzKT1cIm9uU2VhcmNoKCRldmVudClcIlxuICAgICAgW21hcF09XCJtYXBcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaWdvU2VhcmNoSXRlbVRvb2xiYXIgbGV0LXJlc3VsdD1cInJlc3VsdFwiPlxuICAgICAgICA8aWdvLXNlYXJjaC1hZGQtYnV0dG9uXG4gICAgICAgICAgW21hcF09XCJtYXBcIlxuICAgICAgICAgIFtzdG9yZV09XCJzdG9yZVwiXG4gICAgICAgICAgW3N0b3Jlc109XCJzdG9yZXNcIlxuICAgICAgICAgIFtsYXllcl09XCJyZXN1bHRcIlxuICAgICAgICAgIFtzYXZlU2VhcmNoUmVzdWx0SW5MYXllcl09XCJzYXZlU2VhcmNoUmVzdWx0SW5MYXllclwiXG4gICAgICAgID5cbiAgICAgICAgPC9pZ28tc2VhcmNoLWFkZC1idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaWdvLXNlYXJjaC1yZXN1bHRzPlxuICA8L2Rpdj5cblxuICA8ZGl2IGlnb0ZsZXhpYmxlRmlsbCBjbGFzcz1cImlnby1jb250ZW50XCI+XG4gICAgPGlnby1wYW5lbFxuICAgICAgW3RpdGxlXT1cImZlYXR1cmVUaXRsZVwiXG4gICAgICAqbmdJZj1cImZlYXR1cmUkIHwgYXN5bmNcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVRvcFBhbmVsKCRldmVudClcIlxuICAgICAgW2N1cnNvclBvaW50ZXJdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgcGFuZWxMZWZ0QnV0dG9uXG4gICAgICAgIGNsYXNzPVwiaWdvLWljb24tYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVRvcFBhbmVsKClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24+e3tcbiAgICAgICAgICAodG9wUGFuZWxTdGF0ZSQgfCBhc3luYykgPT09ICdjb2xsYXBzZWQnXG4gICAgICAgICAgICA/ICdhcnJvd191cHdhcmQnXG4gICAgICAgICAgICA6ICdhcnJvd19kb3dud2FyZCdcbiAgICAgICAgfX08L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJmZWF0dXJlLmdlb21ldHJ5XCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIHBhbmVsUmlnaHRCdXR0b25cbiAgICAgICAgY2xhc3M9XCJpZ28taWNvbi1idXR0b25cIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCJcbiAgICAgICAgICAoKGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckIHwgYXN5bmMpXG4gICAgICAgICAgICA/ICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wuem9vbU9uRmVhdHVyZVRvb2x0aXBPdXRPZlZpZXcnXG4gICAgICAgICAgICA6ICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wuem9vbU9uRmVhdHVyZVRvb2x0aXAnXG4gICAgICAgICAgKSB8IHRyYW5zbGF0ZVxuICAgICAgICBcIlxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgKGNsaWNrKT1cInpvb21Ub0ZlYXR1cmVFeHRlbnQoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICAgIFttYXRCYWRnZV09XCIoaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQgfCBhc3luYykgPyAnIScgOiAnJ1wiXG4gICAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgICAgICAgIFttYXRCYWRnZUhpZGRlbl09XCIoaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgICAgICAgICA+em9vbV9pbjwvbWF0LWljb25cbiAgICAgICAgPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxpZ28tZmVhdHVyZS1kZXRhaWxzXG4gICAgICAgIGlnb0ZlYXR1cmVEZXRhaWxzRGlyZWN0aXZlXG4gICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmUkIHwgYXN5bmNcIlxuICAgICAgICBbbWFwXT1cIm1hcFwiXG4gICAgICAgIFt0b29sYm94XT1cInRvb2xTdGF0ZS50b29sYm94XCJcbiAgICAgICAgKHJvdXRpbmdFdmVudCk9XCJnZXRSb3V0ZSgpXCJcbiAgICAgID5cbiAgICAgIDwvaWdvLWZlYXR1cmUtZGV0YWlscz5cbiAgICA8L2lnby1wYW5lbD5cbiAgPC9kaXY+XG48L2lnby1mbGV4aWJsZT5cbiJdfQ==
|
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
16
16
|
exports: [SearchResultsToolComponent]
|
|
17
17
|
}]
|
|
18
18
|
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdHMtdG9vbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3NlYXJjaC9zZWFyY2gtcmVzdWx0cy10b29sL3NlYXJjaC1yZXN1bHRzLXRvb2wubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBRTdFOztHQUVHO0FBS0gsTUFBTSxPQUFPLDZCQUE2Qjt1R0FBN0IsNkJBQTZCO3dHQUE3Qiw2QkFBNkIsWUFIOUIsMEJBQTBCLGFBQzFCLDBCQUEwQjt3R0FFekIsNkJBQTZCLFlBSDlCLDBCQUEwQjs7MkZBR3pCLDZCQUE2QjtrQkFKekMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2VhcmNoUmVzdWx0c1Rvb2xDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1yZXN1bHRzLXRvb2wuY29tcG9uZW50JztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBpbXBvcnQgdGhlIFNlYXJjaFJlc3VsdHNUb29sQ29tcG9uZW50IGRpcmVjdGx5XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtTZWFyY2hSZXN1bHRzVG9vbENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtTZWFyY2hSZXN1bHRzVG9vbENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSWdvQXBwU2VhcmNoUmVzdWx0c1Rvb2xNb2R1bGUge31cbiJdfQ==
|
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
17
17
|
exports: [SearchBarBindingDirective, SearchResultsToolComponent]
|
|
18
18
|
}]
|
|
19
19
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvc2VhcmNoL3NlYXJjaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7QUFFakc7O0dBRUc7QUFLSCxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixZQUhuQix5QkFBeUIsRUFBRSwwQkFBMEIsYUFDckQseUJBQXlCLEVBQUUsMEJBQTBCO3dHQUVwRCxrQkFBa0IsWUFIUSwwQkFBMEI7OzJGQUdwRCxrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMseUJBQXlCLEVBQUUsMEJBQTBCLENBQUM7b0JBQ2hFLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixFQUFFLDBCQUEwQixDQUFDO2lCQUNqRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNlYXJjaEJhckJpbmRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL3NlYXJjaC1iYXIvc2VhcmNoLWJhci1iaW5kaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHRzVG9vbENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLXJlc3VsdHMtdG9vbC9zZWFyY2gtcmVzdWx0cy10b29sLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgaW1wb3J0IHRoZSBjb21wb25lbnRzL2RpcmVjdGl2ZSBkaXJlY3RseSBvciBJTlRFR1JBVElPTl9TRUFSQ0hfRElSRUNUSVZFUyBmb3IgdGhlIHNldFxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbU2VhcmNoQmFyQmluZGluZ0RpcmVjdGl2ZSwgU2VhcmNoUmVzdWx0c1Rvb2xDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2VhcmNoQmFyQmluZGluZ0RpcmVjdGl2ZSwgU2VhcmNoUmVzdWx0c1Rvb2xDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElnb0FwcFNlYXJjaE1vZHVsZSB7fVxuIl19
|
|
@@ -75,11 +75,13 @@ export class SearchState {
|
|
|
75
75
|
const wksSource = this.searchSourceService
|
|
76
76
|
.getSources()
|
|
77
77
|
.find((source) => source.getId() === 'workspace');
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
fw
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
if (wksSource) {
|
|
79
|
+
this.workspaceState.store.entities$.subscribe((e) => {
|
|
80
|
+
const searchableWks = e.filter((fw) => fw instanceof FeatureWorkspace &&
|
|
81
|
+
fw.layer.options.workspace.searchIndexEnabled);
|
|
82
|
+
this.searchSourceService.setWorkspaces(wksSource, searchableWks);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
83
85
|
this.monitorLayerDeletion();
|
|
84
86
|
}
|
|
85
87
|
monitorLayerDeletion() {
|
|
@@ -153,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
153
155
|
providedIn: 'root'
|
|
154
156
|
}]
|
|
155
157
|
}], ctorParameters: () => [{ type: i1.SearchSourceService }, { type: i2.StorageService }, { type: i3.WorkspaceState }, { type: i4.ConfigService }, { type: i5.MapState }] });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUVMLFdBQVcsRUFDWCxtQ0FBbUMsRUFFcEMsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBR0wsYUFBYSxFQUViLGdCQUFnQixFQUloQixtQkFBbUIsRUFDcEIsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFVOUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQTREWjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBL0RILGlCQUFpQixHQUE0QixFQUFFLENBQUM7SUFDaEQsa0JBQWtCLEdBQTZCLEVBQUUsQ0FBQztJQUNsRCwyQkFBMkIsR0FBNkIsRUFBRSxDQUFDO0lBQzNELHVCQUF1QixHQUE2QixFQUFFLENBQUM7SUFFdkQscUJBQXFCLENBQWU7SUFDcEMsc0JBQXNCLENBQWU7SUFFNUM7Ozs7T0FJRztJQUNJLGFBQWEsR0FBd0I7UUFDMUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxPQUFPO1FBQy9CLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSTtLQUMxQixDQUFDO0lBRU8sbUJBQW1CLEdBQTRCLElBQUksZUFBZSxDQUN6RSxHQUFHLENBQ0osQ0FBQztJ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QztZQUMzQixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBa0I7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBb0I7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELDhCQUE4QixDQUFDLEtBQUs7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO3VHQTNLVSxXQUFXOzJHQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRW50aXR5UmVjb3JkLFxyXG4gIEVudGl0eVN0b3JlLFxyXG4gIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5LFxyXG4gIEVudGl0eVN0b3JlU3RyYXRlZ3lGdW5jT3B0aW9uc1xyXG59IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9zdG9yYWdlJztcclxuaW1wb3J0IHtcclxuICBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnMsXHJcbiAgRmVhdHVyZSxcclxuICBGZWF0dXJlTW90aW9uLFxyXG4gIEZlYXR1cmVTdG9yZSxcclxuICBGZWF0dXJlV29ya3NwYWNlLFxyXG4gIE92ZXJsYXlTdHlsZU9wdGlvbnMsXHJcbiAgU2VhcmNoUmVzdWx0LFxyXG4gIFNlYXJjaFNvdXJjZSxcclxuICBTZWFyY2hTb3VyY2VTZXJ2aWNlXHJcbn0gZnJvbSAnQGlnbzIvZ2VvJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNYXBTdGF0ZSB9IGZyb20gJy4uL21hcCc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZVN0YXRlIH0gZnJvbSAnLi4vd29ya3NwYWNlL3dvcmtzcGFjZS5zdGF0ZSc7XHJcblxyXG4vKipcclxuICogRGVmaW5lIHRoZSBGZWF0dXJlTW90aW9uIHRvIGFwcGx5IHdoZW4gYWRkaW5nIHRoZSBTZWFyY2hSZXN1bHQgdG8gdGhlIG1hcCBhcyBhbiBvdmVybGF5LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hGZWF0dXJlTW90aW9uIHtcclxuICBzZWxlY3RlZD86IEZlYXR1cmVNb3Rpb247XHJcbiAgZm9jdXM/OiBGZWF0dXJlTW90aW9uO1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljZSB0aGF0IGhvbGRzIHRoZSBzdGF0ZSBvZiB0aGUgc2VhcmNoIG1vZHVsZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoU3RhdGUge1xyXG4gIHB1YmxpYyBzZWFyY2hMYXllclN0b3JlczogRmVhdHVyZVN0b3JlPEZlYXR1cmU+W10gPSBbXTtcclxuICBwdWJsaWMgc2VhcmNoT3ZlcmxheVN0eWxlOiBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnMgPSB7fTtcclxuICBwdWJsaWMgc2VhcmNoT3ZlcmxheVN0eWxlU2VsZWN0aW9uOiBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnMgPSB7fTtcclxuICBwdWJsaWMgc2VhcmNoT3ZlcmxheVN0eWxlRm9jdXM6IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucyA9IHt9O1xyXG5cclxuICBwdWJsaWMgZm9jdXNlZE9yUmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHVibGljIHNlbGVjdGVkT3JSZXNvbHV0aW9uJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmYXVsdCBmZWF0dXJlIG1vdGlvbiBhcmU6XHJcbiAgICogb24gc2VsZWN0aW9uID0gRmVhdHVyZU1vdGlvbi5EZWZhdWx0IGFuZFxyXG4gICAqIG9uIGZvY3VzID0gRmVhdHVyZU1vdGlvbi5Ob25lXHJcbiAgICovXHJcbiAgcHVibGljIGZlYXR1cmVNb3Rpb246IFNlYXJjaEZlYXR1cmVNb3Rpb24gPSB7XHJcbiAgICBzZWxlY3RlZDogRmVhdHVyZU1vdGlvbi5EZWZhdWx0LFxyXG4gICAgZm9jdXM6IEZlYXR1cmVNb3Rpb24uTm9uZVxyXG4gIH07XHJcblxyXG4gIHJlYWRvbmx5IHNlYXJjaFRlcm1TcGxpdHRlciQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgICd8J1xyXG4gICk7XHJcblxyXG4gIHJlYWRvbmx5IHNlYXJjaFRlcm0kOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICB1bmRlZmluZWRcclxuICApO1xyXG5cclxuICByZWFkb25seSBzZWFyY2hUeXBlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgdW5kZWZpbmVkXHJcbiAgKTtcclxuXHJcbiAgcmVhZG9ubHkgc2VhcmNoRGlzYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgZmFsc2VcclxuICApO1xyXG5cclxuICByZWFkb25seSBzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID1cclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICByZWFkb25seSBzZWFyY2hTZXR0aW5nc0NoYW5nZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9XHJcbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XHJcblxyXG4gIHJlYWRvbmx5IHNlbGVjdGVkUmVzdWx0JDogQmVoYXZpb3JTdWJqZWN0PFNlYXJjaFJlc3VsdD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgdW5kZWZpbmVkXHJcbiAgKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcmUgdGhhdCBob2xkcyB0aGUgc2VhcmNoIHJlc3VsdHNcclxuICAgKi9cclxuICByZWFkb25seSBzdG9yZSA9IG5ldyBFbnRpdHlTdG9yZTxTZWFyY2hSZXN1bHQ+KFtdKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIHR5cGVzIGN1cnJlbnRseSBlbmFibGVkIGluIHRoZSBzZWFyY2ggc291cmNlIHNlcnZpY2VcclxuICAgKi9cclxuICBnZXQgc2VhcmNoVHlwZXMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU291cmNlU2VydmljZVxyXG4gICAgICAuZ2V0RW5hYmxlZFNvdXJjZXMoKVxyXG4gICAgICAubWFwKChzb3VyY2U6IFNlYXJjaFNvdXJjZSkgPT4gKHNvdXJjZS5jb25zdHJ1Y3RvciBhcyBhbnkpLnR5cGUpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlYXJjaFNvdXJjZVNlcnZpY2U6IFNlYXJjaFNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgd29ya3NwYWNlU3RhdGU6IFdvcmtzcGFjZVN0YXRlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtYXBTdGF0ZTogTWFwU3RhdGVcclxuICApIHtcclxuICAgIGNvbnN0IHNlYXJjaE92ZXJsYXlTdHlsZTogT3ZlcmxheVN0eWxlT3B0aW9ucyA9XHJcbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ3NlYXJjaE92ZXJsYXlTdHlsZScpO1xyXG4gICAgaWYgKHNlYXJjaE92ZXJsYXlTdHlsZSkge1xyXG4gICAgICB0aGlzLnNlYXJjaE92ZXJsYXlTdHlsZSA9IHNlYXJjaE92ZXJsYXlTdHlsZS5iYXNlO1xyXG4gICAgICB0aGlzLnNlYXJjaE92ZXJsYXlTdHlsZVNlbGVjdGlvbiA9IHNlYXJjaE92ZXJsYXlTdHlsZS5zZWxlY3Rpb247XHJcbiAgICAgIHRoaXMuc2VhcmNoT3ZlcmxheVN0eWxlRm9jdXMgPSBzZWFyY2hPdmVybGF5U3R5bGUuZm9jdXM7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KFxyXG4gICAgICAnc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCdcclxuICAgICkgYXMgYm9vbGVhbjtcclxuICAgIGlmIChzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCQubmV4dChzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RvcmUuYWRkU3RyYXRlZ3kodGhpcy5jcmVhdGVDdXN0b21GaWx0ZXJUZXJtU3RyYXRlZ3koKSwgZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0IHdrc1NvdXJjZSA9IHRoaXMuc2VhcmNoU291cmNlU2VydmljZVxyXG4gICAgICAuZ2V0U291cmNlcygpXHJcbiAgICAgIC5maW5kKChzb3VyY2UpID0+IHNvdXJjZS5nZXRJZCgpID09PSAnd29ya3NwYWNlJyk7XHJcbiAgICB0aGlzLndvcmtzcGFjZVN0YXRlLnN0b3JlLmVudGl0aWVzJC5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgY29uc3Qgc2VhcmNoYWJsZVdrcyA9IGUuZmlsdGVyKFxyXG4gICAgICAgIChmdykgPT5cclxuICAgICAgICAgIGZ3IGluc3RhbmNlb2YgRmVhdHVyZVdvcmtzcGFjZSAmJlxyXG4gICAgICAgICAgZncubGF5ZXIub3B0aW9ucy53b3Jrc3BhY2Uuc2VhcmNoSW5kZXhFbmFibGVkXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2VhcmNoU291cmNlU2VydmljZS5zZXRXb3Jrc3BhY2VzKHdrc1NvdXJjZSwgc2VhcmNoYWJsZVdrcyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubW9uaXRvckxheWVyRGVsZXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW9uaXRvckxheWVyRGVsZXRpb24oKSB7XHJcbiAgICB0aGlzLm1hcFN0YXRlLm1hcC5sYXllcnMkLnN1YnNjcmliZSgobGF5ZXJzKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoTGF5ZXJTdG9yZXMuZm9yRWFjaCgoc3RvcmUpID0+IHtcclxuICAgICAgICBsZXQgbGF5ZXIgPSBsYXllcnMuZmluZCgobCkgPT4gbC5pZCA9PT0gc3RvcmUubGF5ZXIuaWQpO1xyXG4gICAgICAgIGlmICghbGF5ZXIpIHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWFyY2hMYXllclN0b3Jlcy5pbmRleE9mKHN0b3JlKTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoTGF5ZXJTdG9yZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUN1c3RvbUZpbHRlclRlcm1TdHJhdGVneSgpOiBFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneSB7XHJcbiAgICBjb25zdCBmaWx0ZXJDbGF1c2VGdW5jID0gKHJlY29yZDogRW50aXR5UmVjb3JkPFNlYXJjaFJlc3VsdD4pID0+IHtcclxuICAgICAgcmV0dXJuIHJlY29yZC5lbnRpdHkubWV0YS5zY29yZSA9PT0gMTAwO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBuZXcgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3koe1xyXG4gICAgICBmaWx0ZXJDbGF1c2VGdW5jXHJcbiAgICB9IGFzIEVudGl0eVN0b3JlU3RyYXRlZ3lGdW5jT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSBjdXN0b20gc3RyYXRlZ3lcclxuICAgKlxyXG4gICAqL1xyXG4gIGFjdGl2YXRlQ3VzdG9tRmlsdGVyVGVybVN0cmF0ZWd5KCkge1xyXG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLnN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKFxyXG4gICAgICBFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneVxyXG4gICAgKTtcclxuICAgIGlmIChzdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHN0cmF0ZWd5LmFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWFjdGl2YXRlIGN1c3RvbSBzdHJhdGVneVxyXG4gICAqXHJcbiAgICovXHJcbiAgZGVhY3RpdmF0ZUN1c3RvbUZpbHRlclRlcm1TdHJhdGVneSgpIHtcclxuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5zdG9yZS5nZXRTdHJhdGVneU9mVHlwZShcclxuICAgICAgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3lcclxuICAgICk7XHJcbiAgICBpZiAoc3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdHJhdGVneS5kZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlbmFibGVTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaERpc2FibGVkJC5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGRpc2FibGVTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaERpc2FibGVkJC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoVGVybShzZWFyY2hUZXJtOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VhcmNoVGVybSQubmV4dChzZWFyY2hUZXJtKTtcclxuICB9XHJcblxyXG4gIHNldFNlYXJjaFR5cGUoc2VhcmNoVHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2UuZW5hYmxlU291cmNlc0J5VHlwZShzZWFyY2hUeXBlKTtcclxuICAgIHRoaXMuc2VhcmNoVHlwZSQubmV4dChzZWFyY2hUeXBlKTtcclxuICB9XHJcblxyXG4gIHNldFNlYXJjaFNldHRpbmdzQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZWFyY2hTZXR0aW5nc0NoYW5nZSQubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGVkUmVzdWx0KHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVzdWx0JC5uZXh0KHJlc3VsdCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hSZXN1bHRzR2VvbWV0cnlTdGF0dXModmFsdWUpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkJywgdmFsdWUpO1xyXG4gICAgdGhpcy5zZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvaW50ZWdyYXRpb24vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUVMLFdBQVcsRUFDWCxtQ0FBbUMsRUFFcEMsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBR0wsYUFBYSxFQUViLGdCQUFnQixFQUloQixtQkFBbUIsRUFDcEIsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFVOUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQTREWjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBL0RILGlCQUFpQixHQUE0QixFQUFFLENBQUM7SUFDaEQsa0JBQWtCLEdBQTZCLEVBQUUsQ0FBQztJQUNsRCwyQkFBMkIsR0FBNkIsRUFBRSxDQUFDO0lBQzNELHVCQUF1QixHQUE2QixFQUFFLENBQUM7SUFFdkQscUJBQXFCLENBQWU7SUFDcEMsc0JBQXNCLENBQWU7SUFFNUM7Ozs7T0FJRztJQUNJLGFBQWEsR0FBd0I7UUFDMUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxPQUFPO1FBQy9CLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSTtLQUMxQixDQUFDO0lBRU8sbUJBQW1CLEdBQTRCLElBQUksZUFBZSxDQUN6RSxHQUFHLENBQ0osQ0FBQztJ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bSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEVudGl0eVJlY29yZCxcbiAgRW50aXR5U3RvcmUsXG4gIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5LFxuICBFbnRpdHlTdG9yZVN0cmF0ZWd5RnVuY09wdGlvbnNcbn0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvc3RvcmFnZSc7XG5pbXBvcnQge1xuICBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnMsXG4gIEZlYXR1cmUsXG4gIEZlYXR1cmVNb3Rpb24sXG4gIEZlYXR1cmVTdG9yZSxcbiAgRmVhdHVyZVdvcmtzcGFjZSxcbiAgT3ZlcmxheVN0eWxlT3B0aW9ucyxcbiAgU2VhcmNoUmVzdWx0LFxuICBTZWFyY2hTb3VyY2UsXG4gIFNlYXJjaFNvdXJjZVNlcnZpY2Vcbn0gZnJvbSAnQGlnbzIvZ2VvJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWFwU3RhdGUgfSBmcm9tICcuLi9tYXAnO1xuaW1wb3J0IHsgV29ya3NwYWNlU3RhdGUgfSBmcm9tICcuLi93b3Jrc3BhY2Uvd29ya3NwYWNlLnN0YXRlJztcblxuLyoqXG4gKiBEZWZpbmUgdGhlIEZlYXR1cmVNb3Rpb24gdG8gYXBwbHkgd2hlbiBhZGRpbmcgdGhlIFNlYXJjaFJlc3VsdCB0byB0aGUgbWFwIGFzIGFuIG92ZXJsYXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoRmVhdHVyZU1vdGlvbiB7XG4gIHNlbGVjdGVkPzogRmVhdHVyZU1vdGlvbjtcbiAgZm9jdXM/OiBGZWF0dXJlTW90aW9uO1xufVxuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBob2xkcyB0aGUgc3RhdGUgb2YgdGhlIHNlYXJjaCBtb2R1bGVcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU3RhdGUge1xuICBwdWJsaWMgc2VhcmNoTGF5ZXJTdG9yZXM6IEZlYXR1cmVTdG9yZTxGZWF0dXJlPltdID0gW107XG4gIHB1YmxpYyBzZWFyY2hPdmVybGF5U3R5bGU6IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucyA9IHt9O1xuICBwdWJsaWMgc2VhcmNoT3ZlcmxheVN0eWxlU2VsZWN0aW9uOiBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnMgPSB7fTtcbiAgcHVibGljIHNlYXJjaE92ZXJsYXlTdHlsZUZvY3VzOiBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnMgPSB7fTtcblxuICBwdWJsaWMgZm9jdXNlZE9yUmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBzZWxlY3RlZE9yUmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgZmVhdHVyZSBtb3Rpb24gYXJlOlxuICAgKiBvbiBzZWxlY3Rpb24gPSBGZWF0dXJlTW90aW9uLkRlZmF1bHQgYW5kXG4gICAqIG9uIGZvY3VzID0gRmVhdHVyZU1vdGlvbi5Ob25lXG4gICAqL1xuICBwdWJsaWMgZmVhdHVyZU1vdGlvbjogU2VhcmNoRmVhdHVyZU1vdGlvbiA9IHtcbiAgICBzZWxlY3RlZDogRmVhdHVyZU1vdGlvbi5EZWZhdWx0LFxuICAgIGZvY3VzOiBGZWF0dXJlTW90aW9uLk5vbmVcbiAgfTtcblxuICByZWFkb25seSBzZWFyY2hUZXJtU3BsaXR0ZXIkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgJ3wnXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VhcmNoVGVybSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICB1bmRlZmluZWRcbiAgKTtcblxuICByZWFkb25seSBzZWFyY2hUeXBlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIHVuZGVmaW5lZFxuICApO1xuXG4gIHJlYWRvbmx5IHNlYXJjaERpc2FibGVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICBmYWxzZVxuICApO1xuXG4gIHJlYWRvbmx5IHNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHNlYXJjaFNldHRpbmdzQ2hhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRSZXN1bHQkOiBCZWhhdmlvclN1YmplY3Q8U2VhcmNoUmVzdWx0PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgdW5kZWZpbmVkXG4gICk7XG5cbiAgLyoqXG4gICAqIFN0b3JlIHRoYXQgaG9sZHMgdGhlIHNlYXJjaCByZXN1bHRzXG4gICAqL1xuICByZWFkb25seSBzdG9yZSA9IG5ldyBFbnRpdHlTdG9yZTxTZWFyY2hSZXN1bHQ+KFtdKTtcblxuICAvKipcbiAgICogU2VhcmNoIHR5cGVzIGN1cnJlbnRseSBlbmFibGVkIGluIHRoZSBzZWFyY2ggc291cmNlIHNlcnZpY2VcbiAgICovXG4gIGdldCBzZWFyY2hUeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU291cmNlU2VydmljZVxuICAgICAgLmdldEVuYWJsZWRTb3VyY2VzKClcbiAgICAgIC5tYXAoKHNvdXJjZTogU2VhcmNoU291cmNlKSA9PiAoc291cmNlLmNvbnN0cnVjdG9yIGFzIGFueSkudHlwZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlYXJjaFNvdXJjZVNlcnZpY2U6IFNlYXJjaFNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3b3Jrc3BhY2VTdGF0ZTogV29ya3NwYWNlU3RhdGUsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFwU3RhdGU6IE1hcFN0YXRlXG4gICkge1xuICAgIGNvbnN0IHNlYXJjaE92ZXJsYXlTdHlsZTogT3ZlcmxheVN0eWxlT3B0aW9ucyA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdzZWFyY2hPdmVybGF5U3R5bGUnKTtcbiAgICBpZiAoc2VhcmNoT3ZlcmxheVN0eWxlKSB7XG4gICAgICB0aGlzLnNlYXJjaE92ZXJsYXlTdHlsZSA9IHNlYXJjaE92ZXJsYXlTdHlsZS5iYXNlO1xuICAgICAgdGhpcy5zZWFyY2hPdmVybGF5U3R5bGVTZWxlY3Rpb24gPSBzZWFyY2hPdmVybGF5U3R5bGUuc2VsZWN0aW9uO1xuICAgICAgdGhpcy5zZWFyY2hPdmVybGF5U3R5bGVGb2N1cyA9IHNlYXJjaE92ZXJsYXlTdHlsZS5mb2N1cztcbiAgICB9XG5cbiAgICBjb25zdCBzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoXG4gICAgICAnc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCdcbiAgICApIGFzIGJvb2xlYW47XG4gICAgaWYgKHNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCQubmV4dChzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkKTtcbiAgICB9XG4gICAgdGhpcy5zdG9yZS5hZGRTdHJhdGVneSh0aGlzLmNyZWF0ZUN1c3RvbUZpbHRlclRlcm1TdHJhdGVneSgpLCBmYWxzZSk7XG5cbiAgICBjb25zdCB3a3NTb3VyY2UgPSB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2VcbiAgICAgIC5nZXRTb3VyY2VzKClcbiAgICAgIC5maW5kKChzb3VyY2UpID0+IHNvdXJjZS5nZXRJZCgpID09PSAnd29ya3NwYWNlJyk7XG4gICAgaWYgKHdrc1NvdXJjZSkge1xuICAgICAgdGhpcy53b3Jrc3BhY2VTdGF0ZS5zdG9yZS5lbnRpdGllcyQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaGFibGVXa3MgPSBlLmZpbHRlcihcbiAgICAgICAgICAoZncpID0+XG4gICAgICAgICAgICBmdyBpbnN0YW5jZW9mIEZlYXR1cmVXb3Jrc3BhY2UgJiZcbiAgICAgICAgICAgIGZ3LmxheWVyLm9wdGlvbnMud29ya3NwYWNlLnNlYXJjaEluZGV4RW5hYmxlZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2Uuc2V0V29ya3NwYWNlcyh3a3NTb3VyY2UsIHNlYXJjaGFibGVXa3MpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMubW9uaXRvckxheWVyRGVsZXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgbW9uaXRvckxheWVyRGVsZXRpb24oKSB7XG4gICAgdGhpcy5tYXBTdGF0ZS5tYXAubGF5ZXJzJC5zdWJzY3JpYmUoKGxheWVycykgPT4ge1xuICAgICAgdGhpcy5zZWFyY2hMYXllclN0b3Jlcy5mb3JFYWNoKChzdG9yZSkgPT4ge1xuICAgICAgICBsZXQgbGF5ZXIgPSBsYXllcnMuZmluZCgobCkgPT4gbC5pZCA9PT0gc3RvcmUubGF5ZXIuaWQpO1xuICAgICAgICBpZiAoIWxheWVyKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlYXJjaExheWVyU3RvcmVzLmluZGV4T2Yoc3RvcmUpO1xuICAgICAgICAgIHRoaXMuc2VhcmNoTGF5ZXJTdG9yZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUN1c3RvbUZpbHRlclRlcm1TdHJhdGVneSgpOiBFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneSB7XG4gICAgY29uc3QgZmlsdGVyQ2xhdXNlRnVuYyA9IChyZWNvcmQ6IEVudGl0eVJlY29yZDxTZWFyY2hSZXN1bHQ+KSA9PiB7XG4gICAgICByZXR1cm4gcmVjb3JkLmVudGl0eS5tZXRhLnNjb3JlID09PSAxMDA7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5KHtcbiAgICAgIGZpbHRlckNsYXVzZUZ1bmNcbiAgICB9IGFzIEVudGl0eVN0b3JlU3RyYXRlZ3lGdW5jT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgY3VzdG9tIHN0cmF0ZWd5XG4gICAqXG4gICAqL1xuICBhY3RpdmF0ZUN1c3RvbUZpbHRlclRlcm1TdHJhdGVneSgpIHtcbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuc3RvcmUuZ2V0U3RyYXRlZ3lPZlR5cGUoXG4gICAgICBFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneVxuICAgICk7XG4gICAgaWYgKHN0cmF0ZWd5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHN0cmF0ZWd5LmFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgY3VzdG9tIHN0cmF0ZWd5XG4gICAqXG4gICAqL1xuICBkZWFjdGl2YXRlQ3VzdG9tRmlsdGVyVGVybVN0cmF0ZWd5KCkge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5zdG9yZS5nZXRTdHJhdGVneU9mVHlwZShcbiAgICAgIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5XG4gICAgKTtcbiAgICBpZiAoc3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3RyYXRlZ3kuZGVhY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGVuYWJsZVNlYXJjaCgpIHtcbiAgICB0aGlzLnNlYXJjaERpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIGRpc2FibGVTZWFyY2goKSB7XG4gICAgdGhpcy5zZWFyY2hEaXNhYmxlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHNldFNlYXJjaFRlcm0oc2VhcmNoVGVybTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2hUZXJtJC5uZXh0KHNlYXJjaFRlcm0pO1xuICB9XG5cbiAgc2V0U2VhcmNoVHlwZShzZWFyY2hUeXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2UuZW5hYmxlU291cmNlc0J5VHlwZShzZWFyY2hUeXBlKTtcbiAgICB0aGlzLnNlYXJjaFR5cGUkLm5leHQoc2VhcmNoVHlwZSk7XG4gIH1cblxuICBzZXRTZWFyY2hTZXR0aW5nc0NoYW5nZSgpIHtcbiAgICB0aGlzLnNlYXJjaFNldHRpbmdzQ2hhbmdlJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRSZXN1bHQocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzdWx0JC5uZXh0KHJlc3VsdCk7XG4gIH1cblxuICBzZXRTZWFyY2hSZXN1bHRzR2VvbWV0cnlTdGF0dXModmFsdWUpIHtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldCgnc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCcsIHZhbHVlKTtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQkLm5leHQodmFsdWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
22
22
|
providedIn: 'root'
|
|
23
23
|
}]
|
|
24
24
|
}], ctorParameters: () => [{ type: i1.StorageService }] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvc3RvcmFnZS9zdG9yYWdlLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFcEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQUtIO0lBSnBCLElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBb0IsaUJBQWlDO1FBQWpDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBZ0I7SUFBRyxDQUFDO3VHQUw5QyxZQUFZOzJHQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL3N0b3JhZ2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBob2xkcyB0aGUgc3RhdGUgb2Ygc3RvcmFnZSBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTdGF0ZSB7XG4gIGdldCBzdG9yYWdlU2VydmljZSgpOiBTdG9yYWdlU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuaWdvU3RvcmFnZVNlcnZpY2U7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlnb1N0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSkge31cbn1cbiJdfQ==
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
53
53
|
providedIn: 'root'
|
|
54
54
|
}]
|
|
55
55
|
}], ctorParameters: () => [{ type: i1.ToolService }, { type: i2.ImportExportState }] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvdG9vbC90b29sLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBVyxNQUFNLGNBQWMsQ0FBQztBQUdwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2xCLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFFOUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sU0FBUztJQVVWO0lBQ0E7SUFWVixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxZQUFZLEdBQTZCLElBQUksZUFBZSxDQUNqRSxTQUFTLENBQ1YsQ0FBQztJQUVGLFlBQ1UsV0FBd0IsRUFDeEIsaUJBQW9DO1FBRHBDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFDM0MsQ0FBQztJQUVKLHlCQUF5QixDQUFDLGNBR3pCO1FBQ0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQzNDLElBQUksYUFBYSxHQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1lBQzlDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkIsYUFBYSxHQUFHO29CQUNkLE1BQU0sRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU07b0JBQ3JDLGtCQUFrQixFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCO2lCQUM5RCxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGFBQWEsQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3JELGFBQWEsQ0FBQyxrQkFBa0I7b0JBQzlCLGNBQWMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7WUFDOUMsQ0FBQztZQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQzt1R0ExQ1UsU0FBUzsyR0FBVCxTQUFTLGNBRlIsTUFBTTs7MkZBRVAsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRvb2xTZXJ2aWNlLCBUb29sYm94IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IEV4cG9ydE9wdGlvbnMgfSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgSW1wb3J0RXhwb3J0TW9kZSxcbiAgSW1wb3J0RXhwb3J0U3RhdGVcbn0gZnJvbSAnLi4vaW1wb3J0LWV4cG9ydC9pbXBvcnQtZXhwb3J0LnN0YXRlJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgaG9sZHMgdGhlIHN0YXRlIG9mIHRoZSBzZWFyY2ggbW9kdWxlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xTdGF0ZSB7XG4gIGdldCB0b29sYm94KCk6IFRvb2xib3gge1xuICAgIHJldHVybiB0aGlzLnRvb2xTZXJ2aWNlLnRvb2xib3g7XG4gIH1cblxuICBwdWJsaWMgb3BlblNpZGVuYXYkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIHVuZGVmaW5lZFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdG9vbFNlcnZpY2U6IFRvb2xTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1wb3J0RXhwb3J0U3RhdGU6IEltcG9ydEV4cG9ydFN0YXRlXG4gICkge31cblxuICB0b29sVG9BY3RpdmF0ZUZyb21PcHRpb25zKHRvb2xUb0FjdGl2YXRlOiB7XG4gICAgdG9vbDogc3RyaW5nO1xuICAgIG9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIH0pIHtcbiAgICBpZiAoIXRvb2xUb0FjdGl2YXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0b29sVG9BY3RpdmF0ZS50b29sID09PSAnaW1wb3J0RXhwb3J0Jykge1xuICAgICAgbGV0IGV4cG9ydE9wdGlvbnM6IEV4cG9ydE9wdGlvbnMgPVxuICAgICAgICB0aGlzLmltcG9ydEV4cG9ydFN0YXRlLmV4cG9ydE9wdGlvbnMkLnZhbHVlO1xuICAgICAgaWYgKCFleHBvcnRPcHRpb25zKSB7XG4gICAgICAgIGV4cG9ydE9wdGlvbnMgPSB7XG4gICAgICAgICAgbGF5ZXJzOiB0b29sVG9BY3RpdmF0ZS5vcHRpb25zLmxheWVycyxcbiAgICAgICAgICBmZWF0dXJlSW5NYXBFeHRlbnQ6IHRvb2xUb0FjdGl2YXRlLm9wdGlvbnMuZmVhdHVyZUluTWFwRXh0ZW50XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHBvcnRPcHRpb25zLmxheWVycyA9IHRvb2xUb0FjdGl2YXRlLm9wdGlvbnMubGF5ZXJzO1xuICAgICAgICBleHBvcnRPcHRpb25zLmZlYXR1cmVJbk1hcEV4dGVudCA9XG4gICAgICAgICAgdG9vbFRvQWN0aXZhdGUub3B0aW9ucy5mZWF0dXJlSW5NYXBFeHRlbnQ7XG4gICAgICB9XG4gICAgICB0aGlzLmltcG9ydEV4cG9ydFN0YXRlLnNldHNFeHBvcnRPcHRpb25zKGV4cG9ydE9wdGlvbnMpO1xuICAgICAgdGhpcy5pbXBvcnRFeHBvcnRTdGF0ZS5zZXRNb2RlKEltcG9ydEV4cG9ydE1vZGUuZXhwb3J0KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b29sYm94LmdldFRvb2wodG9vbFRvQWN0aXZhdGUudG9vbCkpIHtcbiAgICAgIHRoaXMudG9vbGJveC5hY3RpdmF0ZVRvb2wodG9vbFRvQWN0aXZhdGUudG9vbCk7XG4gICAgICB0aGlzLm9wZW5TaWRlbmF2JC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxufVxuIl19
|