@igo2/integration 17.0.0-next.3 → 17.0.0-next.5
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 +1 -1
- 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 -1
- 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 +3 -3
- 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 +1 -1
- 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 +1 -1
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +1 -1
- package/esm2022/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +1 -1
- package/esm2022/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +1 -1
- 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 +1 -1
- package/esm2022/lib/measure/measurer-tool/measurer-tool.module.mjs +1 -1
- package/esm2022/lib/print/print-tool/print-tool.component.mjs +1 -1
- 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 +1 -1
- 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 +1 -1
- package/esm2022/lib/workspace/workspace-button/workspace-button.component.mjs +1 -1
- 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 +25 -23
- 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
|
@@ -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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aUIsbUxBQ2pCLHNCQUFzQix5U0FDdEIsOEJBQThCLDRKQUM5QixjQUFjLHVHQUNkLGVBQWUsMklBQ2YsYUFBYSxtTEFDYixnQkFBZ0IsNFRBQ2hCLGNBQWMsNFBBQ2QsdUJBQXVCLDBLQUN2QixTQUFTLDZDQUNULGVBQWUsd0ZBQ2YsZ0JBQWdCOztBQUdQLDBCQUEwQjtJQTFCdEMsYUFBYSxDQUFDO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLHFDQUFxQztRQUM1QyxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDO3FDQWlIb0IsUUFBUTtRQUNMLFdBQVc7UUFDakIsVUFBVTtRQUNQLFNBQVM7UUFDSCxjQUFjO1FBQ3ZCLGFBQWE7R0FoR25CLDBCQUEwQixDQTBwQnRDOzsyRkExcEJZLDBCQUEwQjtrQkFyQnRDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCx1QkFBdUI7d0JBQ3ZCLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCO2lOQU1RLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQWdFRixhQUFhO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHtcbiAgRW50aXR5U3RhdGUsXG4gIEVudGl0eVN0b3JlLFxuICBGbGV4aWJsZUNvbXBvbmVudCxcbiAgRmxleGlibGVTdGF0ZSxcbiAgUGFuZWxDb21wb25lbnQsXG4gIFNhbml0aXplSHRtbFBpcGUsXG4gIFRvb2xDb21wb25lbnQsXG4gIGdldEVudGl0eVRpdGxlXG59IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHtcbiAgRkVBVFVSRSxcbiAgRmVhdHVyZSxcbiAgRmVhdHVyZURldGFpbHNDb21wb25lbnQsXG4gIEZlYXR1cmVNb3Rpb24sXG4gIEZlYXR1cmVTdG9yZSxcbiAgSWdvTWFwLFxuICBSZXNlYXJjaCxcbiAgU2VhcmNoUmVzdWx0LFxuICBTZWFyY2hSZXN1bHRBZGRCdXR0b25Db21wb25lbnQsXG4gIFNlYXJjaFJlc3VsdHNDb21wb25lbnQsXG4gIGNvbXB1dGVPbEZlYXR1cmVzRXh0ZW50LFxuICBmZWF0dXJlRnJvbU9sLFxuICBmZWF0dXJlVG9PbCxcbiAgZmVhdHVyZXNBcmVPdXRPZlZpZXcsXG4gIGZlYXR1cmVzQXJlVG9vRGVlcEluVmlldyxcbiAgZ2V0Q29tbW9uVmVjdG9yU2VsZWN0ZWRTdHlsZSxcbiAgZ2V0Q29tbW9uVmVjdG9yU3R5bGUsXG4gIG1vdmVUb09sRmVhdHVyZXMsXG4gIHJvdW5kQ29vcmRUb1xufSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IG9sRm9ybWF0R2VvSlNPTiBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTic7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IG9sUG9pbnQgZnJvbSAnb2wvZ2VvbS9Qb2ludCc7XG5pbXBvcnQgKiBhcyBvbFByb2ogZnJvbSAnb2wvcHJvaic7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHBvaW50T25GZWF0dXJlIGZyb20gJ0B0dXJmL3BvaW50LW9uLWZlYXR1cmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEaXJlY3Rpb25TdGF0ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy5zdGF0ZSc7XG5pbXBvcnQgeyBNYXBTdGF0ZSB9IGZyb20gJy4uLy4uL21hcC9tYXAuc3RhdGUnO1xuaW1wb3J0IHsgVG9vbFN0YXRlIH0gZnJvbSAnLi4vLi4vdG9vbC90b29sLnN0YXRlJztcbmltcG9ydCB7IFNlYXJjaFN0YXRlIH0gZnJvbSAnLi4vc2VhcmNoLnN0YXRlJztcblxuLyoqXG4gKiBUb29sIHRvIGJyb3dzZSB0aGUgc2VhcmNoIHJlc3VsdHNcbiAqL1xuQFRvb2xDb21wb25lbnQoe1xuICBuYW1lOiAnc2VhcmNoUmVzdWx0cycsXG4gIHRpdGxlOiAnaWdvLmludGVncmF0aW9uLnRvb2xzLnNlYXJjaFJlc3VsdHMnLFxuICBpY29uOiAnbWFnbmlmeSdcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tc2VhcmNoLXJlc3VsdHMtdG9vbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcmVzdWx0cy10b29sLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIEZsZXhpYmxlQ29tcG9uZW50LFxuICAgIFNlYXJjaFJlc3VsdHNDb21wb25lbnQsXG4gICAgU2VhcmNoUmVzdWx0QWRkQnV0dG9uQ29tcG9uZW50LFxuICAgIFBhbmVsQ29tcG9uZW50LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgRmVhdHVyZURldGFpbHNDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBTYW5pdGl6ZUh0bWxQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUmVzdWx0c1Rvb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiB0byBzaG93IGhpZGUgcmVzdWx0cyBpY29uc1xuICAgKi9cbiAgQElucHV0KCkgc2hvd0ljb25zOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIHRoZSB0b3AgcGFuZWwgZGVmYXVsdCBzdGF0ZVxuICAgKi9cbiAgQElucHV0KCkgdG9wUGFuZWxTdGF0ZURlZmF1bHQ6IHN0cmluZyA9ICdleHBhbmRlZCc7XG5cbiAgcHJpdmF0ZSBoYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHNob3dSZXN1bHRzR2VvbWV0cmllcyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZ2V0Um91dGUkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHNob3duUmVzdWx0c0dlb21ldHJpZXM6IEZlYXR1cmVbXSA9IFtdO1xuICBwcml2YXRlIHNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllczogRmVhdHVyZVtdID0gW107XG4gIHByaXZhdGUgZm9jdXNlZFJlc3VsdCQ6IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hSZXN1bHQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgcHVibGljIGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgYWJzdHJhY3RGb2N1c2VkUmVzdWx0OiBGZWF0dXJlO1xuICBwcml2YXRlIGFic3RyYWN0U2VsZWN0ZWRSZXN1bHQ6IEZlYXR1cmU7XG5cbiAgcHVibGljIGRlYm91bmNlZEVtcHR5JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHJpdmF0ZSBkZWJvdW5jZWRFbXB0eSQkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFN0b3JlIGhvbGRpbmcgdGhlIHNlYXJjaCByZXN1bHRzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IHN0b3JlKCk6IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFN0YXRlLnN0b3JlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcCB0byBkaXNwbGF5IHRoZSByZXN1bHRzIG9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xuICAgIHJldHVybiB0aGlzLm1hcFN0YXRlLm1hcDtcbiAgfVxuXG4gIGdldCBmZWF0dXJlVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlID8gZ2V0RW50aXR5VGl0bGUodGhpcy5mZWF0dXJlKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBmZWF0dXJlJCgpOiBPYnNlcnZhYmxlPEZlYXR1cmU+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZVZpZXdcbiAgICAgIC5maXJzdEJ5JCgoZSkgPT4gZS5zdGF0ZS5mb2N1c2VkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoZWxlbWVudCkgPT5cbiAgICAgICAgICAgICh0aGlzLmZlYXR1cmUgPSBlbGVtZW50XG4gICAgICAgICAgICAgID8gKGVsZW1lbnQuZW50aXR5LmRhdGEgYXMgRmVhdHVyZSlcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmVhdHVyZTogRmVhdHVyZTtcblxuICBwdWJsaWMgdGVybSA9ICcnO1xuICBwcml2YXRlIHNlYXJjaFRlcm0kJDogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBzZXR0aW5nc0NoYW5nZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIHRvcFBhbmVsU3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGbGV4aWJsZVN0YXRlPignaW5pdGlhbCcpO1xuICBwcml2YXRlIHRvcFBhbmVsU3RhdGUkJDogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB0b3BQYW5lbFN0YXRlKHZhbHVlOiBGbGV4aWJsZVN0YXRlKSB7XG4gICAgdGhpcy50b3BQYW5lbFN0YXRlJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBnZXQgdG9wUGFuZWxTdGF0ZSgpOiBGbGV4aWJsZVN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy50b3BQYW5lbFN0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIGdldCB0ZXJtU3BsaXR0ZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hUZXJtU3BsaXR0ZXIkLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXQgPSBuZXcgb2xGb3JtYXRHZW9KU09OKCk7XG5cbiAgZ2V0IHN0b3JlcygpOiBGZWF0dXJlU3RvcmU8RmVhdHVyZT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoTGF5ZXJTdG9yZXM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1hcFN0YXRlOiBNYXBTdGF0ZSxcbiAgICBwcml2YXRlIHNlYXJjaFN0YXRlOiBTZWFyY2hTdGF0ZSxcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHB1YmxpYyB0b29sU3RhdGU6IFRvb2xTdGF0ZSxcbiAgICBwcml2YXRlIGRpcmVjdGlvblN0YXRlOiBEaXJlY3Rpb25TdGF0ZSxcbiAgICBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuaGFzRmVhdHVyZUVtcGhhc2lzT25TZWxlY3Rpb24gPSBjb25maWdTZXJ2aWNlLmdldENvbmZpZyhcbiAgICAgICdoYXNGZWF0dXJlRW1waGFzaXNPblNlbGVjdGlvbidcbiAgICApO1xuICAgIHRoaXMuc2F2ZVNlYXJjaFJlc3VsdEluTGF5ZXIgPSBjb25maWdTZXJ2aWNlLmdldENvbmZpZyhcbiAgICAgICdzYXZlU2VhcmNoUmVzdWx0SW5MYXllcidcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWFyY2hUZXJtJCQgPSB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaFRlcm0kLnN1YnNjcmliZShcbiAgICAgIChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlYXJjaFRlcm0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIHNlYXJjaFRlcm0gIT09IG51bGwgJiZcbiAgICAgICAgICBzZWFyY2hUZXJtICE9PSAnJ1xuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLnRlcm0gPSBzZWFyY2hUZXJtO1xuICAgICAgICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkLm5leHQoZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKHNlYXJjaFRlcm0gPT09ICcnKSB7XG4gICAgICAgICAgdGhpcy5kZWJvdW5jZWRFbXB0eSQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IHJlcyBvZiB0aGlzLnN0b3JlLnN0YXRlVmlldy5hbGwkKCkudmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLnN0b3JlLnN0YXRlLmdldChyZXMuZW50aXR5KS5zZWxlY3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnZXhwYW5kZWQnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoU2V0dGluZ3NDaGFuZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNldHRpbmdzQ2hhbmdlJC5uZXh0KHRydWUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50b3BQYW5lbFN0YXRlJCQgPSB0aGlzLnRvcFBhbmVsU3RhdGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBpZ29MaXN0ID0gdGhpcy5jb21wdXRlRWxlbWVudFJlZigpWzBdO1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmNvbXB1dGVFbGVtZW50UmVmKClbMV07XG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgLy8gVG8gYmUgc3VyZSB0aGUgZmxleGlibGUgY29tcG9uZW50IGhhcyBiZWVuIGRpc3BsYXllZCB5ZXRcbiAgICAgICAgICBpZiAoIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGlnb0xpc3QsIHNlbGVjdGVkKSkge1xuICAgICAgICAgICAgdGhpcy5hZGp1c3RUb3BQYW5lbChpZ29MaXN0LCBzZWxlY3RlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCBGbGV4aWJsZUNvbXBvbmVudC50cmFuc2l0aW9uVGltZSArIDUwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoU3RhdGUuZm9jdXNlZE9yUmVzb2x1dGlvbiQkKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuZm9jdXNlZE9yUmVzb2x1dGlvbiQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgdGhpcy5mb2N1c2VkUmVzdWx0JCxcbiAgICAgICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJFxuICAgICAgICBdKS5zdWJzY3JpYmUoKGJ1bmNoOiBbU2VhcmNoUmVzdWx0PEZlYXR1cmU+LCBudW1iZXJdKSA9PlxuICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRFbXBoYXNpcyhidW5jaFswXSwgJ2ZvY3VzZWQnKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuc2VhcmNoU3RhdGUuc2VsZWN0ZWRPclJlc29sdXRpb24kJCkge1xuICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkT3JSZXNvbHV0aW9uJCQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkUmVzdWx0JCxcbiAgICAgICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJFxuICAgICAgICBdKS5zdWJzY3JpYmUoKGJ1bmNoOiBbU2VhcmNoUmVzdWx0PEZlYXR1cmU+LCBudW1iZXJdKSA9PlxuICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRFbXBoYXNpcyhidW5jaFswXSwgJ3NlbGVjdGVkJylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5tb25pdG9yUmVzdWx0T3V0T2ZWaWV3KCk7XG5cbiAgICB0aGlzLnNob3dSZXN1bHRzR2VvbWV0cmllcyQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQkLFxuICAgICAgdGhpcy5zdG9yZS5zdGF0ZVZpZXcuYWxsJCgpLFxuICAgICAgdGhpcy5mb2N1c2VkUmVzdWx0JCxcbiAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VsZWN0ZWRSZXN1bHQkLFxuICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hUZXJtJCxcbiAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kXG4gICAgXSkuc3Vic2NyaWJlKFxuICAgICAgKFxuICAgICAgICBidW5jaDogW1xuICAgICAgICAgIGJvb2xlYW4sXG4gICAgICAgICAgeyBlbnRpdHk6IFNlYXJjaFJlc3VsdDsgc3RhdGU6IEVudGl0eVN0YXRlIH1bXSxcbiAgICAgICAgICBTZWFyY2hSZXN1bHQsXG4gICAgICAgICAgU2VhcmNoUmVzdWx0LFxuICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICBudW1iZXJcbiAgICAgICAgXVxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQgPSBidW5jaFswXTtcbiAgICAgICAgY29uc3Qgc2VhcmNoUmVzdWx0cyA9IGJ1bmNoWzFdO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5jbGVhckZlYXR1cmVFbXBoYXNpcygnc2hvd24nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3duUmVzdWx0c0dlb21ldHJpZXMubWFwKChyZXN1bHQpID0+XG4gICAgICAgICAgdGhpcy5tYXAucXVlcnlSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHJlc3VsdClcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZmVhdHVyZVRvSGFuZGxlR2VvbSA9IHNlYXJjaFJlc3VsdHMuZmlsdGVyKFxuICAgICAgICAgIChyZXN1bHQpID0+XG4gICAgICAgICAgICByZXN1bHQuZW50aXR5Lm1ldGEuZGF0YVR5cGUgPT09IEZFQVRVUkUgJiZcbiAgICAgICAgICAgIHJlc3VsdC5lbnRpdHkuZGF0YS5nZW9tZXRyeSAmJlxuICAgICAgICAgICAgIXJlc3VsdC5zdGF0ZS5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgIXJlc3VsdC5zdGF0ZS5mb2N1c2VkXG4gICAgICAgICk7XG5cbiAgICAgICAgZmVhdHVyZVRvSGFuZGxlR2VvbS5tYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChzZWFyY2hSZXN1bHRzR2VvbWV0cnlFbmFibGVkKSB7XG4gICAgICAgICAgICByZXN1bHQuZW50aXR5LmRhdGEubWV0YS5zdHlsZSA9IGdldENvbW1vblZlY3RvclN0eWxlKFxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGZlYXR1cmU6IHJlc3VsdC5lbnRpdHkuZGF0YSBhcyBGZWF0dXJlIHwgb2xGZWF0dXJlPE9sR2VvbWV0cnk+XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZSxcbiAgICAgICAgICAgICAgICByZXN1bHQuZW50aXR5LnN0eWxlPy5iYXNlID8gcmVzdWx0LmVudGl0eS5zdHlsZS5iYXNlIDoge31cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd25SZXN1bHRzR2VvbWV0cmllcy5wdXNoKHJlc3VsdC5lbnRpdHkuZGF0YSBhcyBGZWF0dXJlKTtcbiAgICAgICAgICAgIHRoaXMubWFwLnF1ZXJ5UmVzdWx0c092ZXJsYXkuYWRkRmVhdHVyZShcbiAgICAgICAgICAgICAgcmVzdWx0LmVudGl0eS5kYXRhIGFzIEZlYXR1cmUsXG4gICAgICAgICAgICAgIEZlYXR1cmVNb3Rpb24uTm9uZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0ZlYXR1cmVFbXBoYXNpc09uU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuYnVpbGRSZXN1bHRFbXBoYXNpcyhcbiAgICAgICAgICAgICAgICByZXN1bHQuZW50aXR5IGFzIFNlYXJjaFJlc3VsdDxGZWF0dXJlPixcbiAgICAgICAgICAgICAgICAnc2hvd24nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5kZWJvdW5jZWRFbXB0eSQkID0gdGhpcy5zdG9yZS5zdGF0ZVZpZXcuZW1wdHkkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTUwMCkpXG4gICAgICAuc3Vic2NyaWJlKChlbXB0eSkgPT4gdGhpcy5kZWJvdW5jZWRFbXB0eSQubmV4dChlbXB0eSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtb25pdG9yUmVzdWx0T3V0T2ZWaWV3KCkge1xuICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5zdGF0ZSQsXG4gICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlbGVjdGVkUmVzdWx0JFxuICAgIF0pXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKGJ1bmNoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmVzdWx0ID0gYnVuY2hbMV0gYXMgU2VhcmNoUmVzdWx0PEZlYXR1cmU+O1xuICAgICAgICBpZiAoIXNlbGVjdGVkUmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5pc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkUmVzdWx0LmRhdGEuZ2VvbWV0cnkpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZE9sRmVhdHVyZSA9IGZlYXR1cmVUb09sKFxuICAgICAgICAgICAgc2VsZWN0ZWRSZXN1bHQuZGF0YSxcbiAgICAgICAgICAgIHRoaXMubWFwLnByb2plY3Rpb25cbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkT2xGZWF0dXJlRXh0ZW50ID0gY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQoXG4gICAgICAgICAgICBbc2VsZWN0ZWRPbEZlYXR1cmVdLFxuICAgICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0T2xQcm9qZWN0aW9uKClcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZFJlc3VsdE91dE9mVmlldyQubmV4dChcbiAgICAgICAgICAgIGZlYXR1cmVzQXJlT3V0T2ZWaWV3KHRoaXMubWFwLmdldEV4dGVudCgpLCBzZWxlY3RlZE9sRmVhdHVyZUV4dGVudClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRSZXN1bHRFbXBoYXNpcyhcbiAgICByZXN1bHQ6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPixcbiAgICB0cmlnZ2VyOiAnc2VsZWN0ZWQnIHwgJ2ZvY3VzZWQnIHwgJ3Nob3duJyB8IHVuZGVmaW5lZFxuICApIHtcbiAgICBpZiAodHJpZ2dlciAhPT0gJ3Nob3duJykge1xuICAgICAgdGhpcy5jbGVhckZlYXR1cmVFbXBoYXNpcyh0cmlnZ2VyKTtcbiAgICB9XG4gICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC5kYXRhLmdlb21ldHJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG15T2xGZWF0dXJlID0gZmVhdHVyZVRvT2wocmVzdWx0LmRhdGEsIHRoaXMubWFwLnByb2plY3Rpb24pO1xuICAgIGNvbnN0IG9sR2VvbWV0cnkgPSBteU9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpO1xuICAgIGlmIChcbiAgICAgIGZlYXR1cmVzQXJlVG9vRGVlcEluVmlldyhcbiAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIsXG4gICAgICAgIG9sR2VvbWV0cnkuZ2V0RXh0ZW50KCkgYXMgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gICAgICAgIDAuMDAyNVxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc3QgZXh0ZW50ID0gb2xHZW9tZXRyeS5nZXRFeHRlbnQoKTtcbiAgICAgIGNvbnN0IHggPSBleHRlbnRbMF0gKyAoZXh0ZW50WzJdIC0gZXh0ZW50WzBdKSAvIDI7XG4gICAgICBjb25zdCB5ID0gZXh0ZW50WzFdICsgKGV4dGVudFszXSAtIGV4dGVudFsxXSkgLyAyO1xuICAgICAgY29uc3QgZmVhdHVyZTEgPSBuZXcgb2xGZWF0dXJlKHtcbiAgICAgICAgbmFtZTogYCR7dHJpZ2dlcn1BYnN0cmFjdFJlc3VsdCdgLFxuICAgICAgICBnZW9tZXRyeTogbmV3IG9sUG9pbnQoW3gsIHldKVxuICAgICAgfSk7XG4gICAgICBjb25zdCBhYnN0cmFjdFJlc3VsdCA9IGZlYXR1cmVGcm9tT2woZmVhdHVyZTEsIHRoaXMubWFwLnByb2plY3Rpb24pO1xuXG4gICAgICBsZXQgY29tcHV0ZWRTdHlsZTtcbiAgICAgIGxldCB6SW5kZXhPZmZzZXQgPSAwO1xuXG4gICAgICBzd2l0Y2ggKHRyaWdnZXIpIHtcbiAgICAgICAgY2FzZSAnZm9jdXNlZCc6XG4gICAgICAgICAgY29tcHV0ZWRTdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgeyBmZWF0dXJlOiBhYnN0cmFjdFJlc3VsdCB9LFxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZUZvY3VzLFxuICAgICAgICAgICAgICByZXN1bHQuc3R5bGU/LmZvY3VzID8gcmVzdWx0LnN0eWxlLmZvY3VzIDoge31cbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHpJbmRleE9mZnNldCA9IDI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3Nob3duJzpcbiAgICAgICAgICBjb21wdXRlZFN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU3R5bGUoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgeyBmZWF0dXJlOiBhYnN0cmFjdFJlc3VsdCB9LFxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaFN0YXRlLnNlYXJjaE92ZXJsYXlTdHlsZSxcbiAgICAgICAgICAgICAgcmVzdWx0LnN0eWxlPy5iYXNlID8gcmVzdWx0LnN0eWxlLmJhc2UgOiB7fVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NlbGVjdGVkJzpcbiAgICAgICAgICBjb21wdXRlZFN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU2VsZWN0ZWRTdHlsZShcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICB7IGZlYXR1cmU6IGFic3RyYWN0UmVzdWx0IH0sXG4gICAgICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlU2VsZWN0aW9uLFxuICAgICAgICAgICAgICByZXN1bHQuc3R5bGU/LnNlbGVjdGlvbiA/IHJlc3VsdC5zdHlsZS5zZWxlY3Rpb24gOiB7fVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgekluZGV4T2Zmc2V0ID0gMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGFic3RyYWN0UmVzdWx0Lm1ldGEuc3R5bGUgPSBjb21wdXRlZFN0eWxlO1xuICAgICAgYWJzdHJhY3RSZXN1bHQubWV0YS5zdHlsZS5zZXRaSW5kZXgoMjAwMCArIHpJbmRleE9mZnNldCk7XG4gICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5hZGRGZWF0dXJlKFxuICAgICAgICBhYnN0cmFjdFJlc3VsdCxcbiAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5mZWF0dXJlTW90aW9uLmZvY3VzXG4gICAgICApO1xuICAgICAgaWYgKHRyaWdnZXIgPT09ICdmb2N1c2VkJykge1xuICAgICAgICB0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCA9IGFic3RyYWN0UmVzdWx0O1xuICAgICAgfVxuICAgICAgaWYgKHRyaWdnZXIgPT09ICdzZWxlY3RlZCcpIHtcbiAgICAgICAgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0ID0gYWJzdHJhY3RSZXN1bHQ7XG4gICAgICB9XG4gICAgICBpZiAodHJpZ2dlciA9PT0gJ3Nob3duJykge1xuICAgICAgICB0aGlzLnNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllcy5wdXNoKGFic3RyYWN0UmVzdWx0KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGVhckZlYXR1cmVFbXBoYXNpcyh0cmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRmVhdHVyZUVtcGhhc2lzKHRyaWdnZXI6ICdzZWxlY3RlZCcgfCAnZm9jdXNlZCcgfCAnc2hvd24nKSB7XG4gICAgaWYgKHRyaWdnZXIgPT09ICdmb2N1c2VkJyAmJiB0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCkge1xuICAgICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkucmVtb3ZlRmVhdHVyZSh0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCk7XG4gICAgICB0aGlzLmFic3RyYWN0Rm9jdXNlZFJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHRyaWdnZXIgPT09ICdzZWxlY3RlZCcgJiYgdGhpcy5hYnN0cmFjdFNlbGVjdGVkUmVzdWx0KSB7XG4gICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHRoaXMuYWJzdHJhY3RTZWxlY3RlZFJlc3VsdCk7XG4gICAgICB0aGlzLmFic3RyYWN0U2VsZWN0ZWRSZXN1bHQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0cmlnZ2VyID09PSAnc2hvd24nKSB7XG4gICAgICB0aGlzLnNob3duUmVzdWx0c0VtcGhhc2lzR2VvbWV0cmllcy5tYXAoKHNob3duUmVzdWx0KSA9PlxuICAgICAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHNob3duUmVzdWx0KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc2hvd25SZXN1bHRzRW1waGFzaXNHZW9tZXRyaWVzID0gW107XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy50b3BQYW5lbFN0YXRlJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlYXJjaFRlcm0kJC51bnN1YnNjcmliZSgpO1xuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckJCkge1xuICAgICAgdGhpcy5pc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd1Jlc3VsdHNHZW9tZXRyaWVzJCQpIHtcbiAgICAgIHRoaXMuc2hvd1Jlc3VsdHNHZW9tZXRyaWVzJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2V0Um91dGUkJCkge1xuICAgICAgdGhpcy5nZXRSb3V0ZSQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlYm91bmNlZEVtcHR5JCQpIHtcbiAgICAgIHRoaXMuZGVib3VuY2VkRW1wdHkkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gYWRkIGEgZmVhdHVyZSB0byB0aGUgbWFwIHdoZW4gaXQncyBiZWluZyBmb2N1c2VkXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gcmVzdWx0IEEgc2VhcmNoIHJlc3VsdCB0aGF0IGNvdWxkIGJlIGEgZmVhdHVyZVxuICAgKi9cbiAgb25SZXN1bHRGb2N1cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMuZm9jdXNlZFJlc3VsdCQubmV4dChyZXN1bHQpO1xuICAgIGlmIChyZXN1bHQubWV0YS5kYXRhVHlwZSA9PT0gRkVBVFVSRSAmJiByZXN1bHQuZGF0YS5nZW9tZXRyeSkge1xuICAgICAgcmVzdWx0LmRhdGEubWV0YS5zdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge30sXG4gICAgICAgICAgeyBmZWF0dXJlOiByZXN1bHQuZGF0YSBhcyBGZWF0dXJlIHwgb2xGZWF0dXJlPE9sR2VvbWV0cnk+IH0sXG4gICAgICAgICAgdGhpcy5zZWFyY2hTdGF0ZS5zZWFyY2hPdmVybGF5U3R5bGVGb2N1cyxcbiAgICAgICAgICByZXN1bHQuc3R5bGU/LmZvY3VzID8gcmVzdWx0LnN0eWxlLmZvY3VzIDoge31cbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgY29uc3QgZmVhdHVyZSA9XG4gICAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmRhdGFTb3VyY2Uub2wuZ2V0RmVhdHVyZUJ5SWQoXG4gICAgICAgICAgcmVzdWx0Lm1ldGEuaWRcbiAgICAgICAgKTtcbiAgICAgIGlmIChmZWF0dXJlKSB7XG4gICAgICAgIGZlYXR1cmUuc2V0U3R5bGUocmVzdWx0LmRhdGEubWV0YS5zdHlsZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmFkZEZlYXR1cmUoXG4gICAgICAgIHJlc3VsdC5kYXRhIGFzIEZlYXR1cmUsXG4gICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuZmVhdHVyZU1vdGlvbi5mb2N1c1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvblJlc3VsdFVuZm9jdXMocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLmZvY3VzZWRSZXN1bHQkLm5leHQodW5kZWZpbmVkKTtcbiAgICBpZiAocmVzdWx0Lm1ldGEuZGF0YVR5cGUgIT09IEZFQVRVUkUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzdWx0KS5zZWxlY3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgY29uc3QgZmVhdHVyZSA9XG4gICAgICAgIHRoaXMubWFwLnNlYXJjaFJlc3VsdHNPdmVybGF5LmRhdGFTb3VyY2Uub2wuZ2V0RmVhdHVyZUJ5SWQoXG4gICAgICAgICAgcmVzdWx0Lm1ldGEuaWRcbiAgICAgICAgKTtcbiAgICAgIGlmIChmZWF0dXJlKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tbW9uVmVjdG9yU2VsZWN0ZWRTdHlsZShcbiAgICAgICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICB7IGZlYXR1cmU6IHJlc3VsdC5kYXRhIGFzIEZlYXR1cmUgfCBvbEZlYXR1cmU8T2xHZW9tZXRyeT4gfSxcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlRm9jdXMsXG4gICAgICAgICAgICByZXN1bHQuc3R5bGU/LmZvY3VzID8gcmVzdWx0LnN0eWxlLmZvY3VzIDoge31cbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGZlYXR1cmUuc2V0U3R5bGUoc3R5bGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5yZW1vdmVGZWF0dXJlKHJlc3VsdC5kYXRhIGFzIEZlYXR1cmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBhZGQgYSBmZWF0dXJlIHRvIHRoZSBtYXAgd2hlbiBpdCdzIGJlaW5nIHNlbGVjdGVkXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gcmVzdWx0IEEgc2VhcmNoIHJlc3VsdCB0aGF0IGNvdWxkIGJlIGEgZmVhdHVyZSBvciBzb21lIGxheWVyIG9wdGlvbnNcbiAgICovXG4gIG9uUmVzdWx0U2VsZWN0KHJlc3VsdDogU2VhcmNoUmVzdWx0KSB7XG4gICAgdGhpcy5tYXAuc2VhcmNoUmVzdWx0c092ZXJsYXkuZGF0YVNvdXJjZS5vbC5jbGVhcigpO1xuICAgIHRoaXMudHJ5QWRkRmVhdHVyZVRvTWFwKHJlc3VsdCwgdGhpcy5zZWFyY2hTdGF0ZS5mZWF0dXJlTW90aW9uLnNlbGVjdGVkKTtcbiAgICB0aGlzLnNlYXJjaFN0YXRlLnNldFNlbGVjdGVkUmVzdWx0KHJlc3VsdCk7XG5cbiAgICBpZiAodGhpcy50b3BQYW5lbFN0YXRlID09PSAnaW5pdGlhbCcpIHtcbiAgICAgIGlmICh0aGlzLnRvcFBhbmVsU3RhdGVEZWZhdWx0ICE9PSAnY29sbGFwc2VkJykge1xuICAgICAgICB0aGlzLnRvcFBhbmVsU3RhdGUgPSAnZXhwYW5kZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2NvbGxhcHNlZCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG9wUGFuZWxTdGF0ZSA9PT0gJ2V4cGFuZGVkJykge1xuICAgICAgY29uc3QgaWdvTGlzdCA9IHRoaXMuY29tcHV0ZUVsZW1lbnRSZWYoKVswXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb21wdXRlRWxlbWVudFJlZigpWzFdO1xuICAgICAgaWYgKCF0aGlzLmlzU2Nyb2xsZWRJbnRvVmlldyhpZ29MaXN0LCBzZWxlY3RlZCkpIHtcbiAgICAgICAgdGhpcy5hZGp1c3RUb3BQYW5lbChpZ29MaXN0LCBzZWxlY3RlZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TZWFyY2goZXZlbnQ6IHsgcmVzZWFyY2g6IFJlc2VhcmNoOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9KSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGV2ZW50LnJlc3VsdHM7XG4gICAgY29uc3QgbmV3UmVzdWx0cyA9IHRoaXMuc3RvcmUuZW50aXRpZXMkLnZhbHVlXG4gICAgICAuZmlsdGVyKChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkgPT4gcmVzdWx0LnNvdXJjZSAhPT0gZXZlbnQucmVzZWFyY2guc291cmNlKVxuICAgICAgLmNvbmNhdChyZXN1bHRzKTtcblxuICAgIHRoaXMuc3RvcmUubG9hZChuZXdSZXN1bHRzKTtcblxuICAgIGZvciAoY29uc3QgcmVzIG9mIHRoaXMuc3RvcmUuYWxsKCkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5zdG9yZS5zdGF0ZS5nZXQocmVzKS5mb2N1c2VkID09PSB0cnVlICYmXG4gICAgICAgIHRoaXMuc3RvcmUuc3RhdGUuZ2V0KHJlcykuc2VsZWN0ZWQgIT09IHRydWVcbiAgICAgICkge1xuICAgICAgICB0aGlzLnN0b3JlLnN0YXRlLnVwZGF0ZShyZXMsIHsgZm9jdXNlZDogZmFsc2UgfSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBpZ29MaXN0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lnby1saXN0Jyk7XG4gICAgICBsZXQgbW9yZVJlc3VsdHM7XG4gICAgICBldmVudC5yZXNlYXJjaC5yZXF1ZXN0LnN1YnNjcmliZSgoc291cmNlKSA9PiB7XG4gICAgICAgIGlmICghc291cmNlWzBdIHx8ICFzb3VyY2VbMF0uc291cmNlKSB7XG4gICAgICAgICAgbW9yZVJlc3VsdHMgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSA9PT0gJ2ljaGVyY2hlJykge1xuICAgICAgICAgIG1vcmVSZXN1bHRzID0gaWdvTGlzdC5xdWVyeVNlbGVjdG9yKCcuaWNoZXJjaGUgLm1vcmVSZXN1bHRzJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc291cmNlWzBdLnNvdXJjZS5nZXRJZCgpID09PSAnaWxheWVyJykge1xuICAgICAgICAgIG1vcmVSZXN1bHRzID0gaWdvTGlzdC5xdWVyeVNlbGVjdG9yKCcuaWxheWVyIC5tb3JlUmVzdWx0cycpO1xuICAgICAgICB9IGVsc2UgaWYgKHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSA9PT0gJ25vbWluYXRpbScpIHtcbiAgICAgICAgICBtb3JlUmVzdWx0cyA9IGlnb0xpc3QucXVlcnlTZWxlY3RvcignLm5vbWluYXRpbSAubW9yZVJlc3VsdHMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtb3JlUmVzdWx0cyA9IGlnb0xpc3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICcuJyArIHNvdXJjZVswXS5zb3VyY2UuZ2V0SWQoKSArICcgLm1vcmVSZXN1bHRzJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgbW9yZVJlc3VsdHMgIT09IG51bGwgJiZcbiAgICAgICAgICAhdGhpcy5pc1Njcm9sbGVkSW50b1ZpZXcoaWdvTGlzdCwgbW9yZVJlc3VsdHMpXG4gICAgICAgICkge1xuICAgICAgICAgIGlnb0xpc3Quc2Nyb2xsVG9wID1cbiAgICAgICAgICAgIG1vcmVSZXN1bHRzLm9mZnNldFRvcCArXG4gICAgICAgICAgICBtb3JlUmVzdWx0cy5vZmZzZXRIZWlnaHQgLVxuICAgICAgICAgICAgaWdvTGlzdC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIDI1MCk7XG4gIH1cblxuICBjb21wdXRlRWxlbWVudFJlZigpIHtcbiAgICBjb25zdCBpdGVtcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZ28tc2VhcmNoLXJlc3VsdHMtaXRlbScpO1xuICAgIGNvbnN0IGlnb0xpc3QgPVxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZ28tbGlzdCcpWzBdO1xuICAgIGxldCBzZWxlY3RlZEl0ZW07XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGl0ZW1zW2ldLmNsYXNzTmFtZS5pbmNsdWRlcygnaWdvLWxpc3QtaXRlbS1zZWxlY3RlZCcpKSB7XG4gICAgICAgIHNlbGVjdGVkSXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW2lnb0xpc3QsIHNlbGVjdGVkSXRlbV07XG4gIH1cblxuICBhZGp1c3RUb3BQYW5lbChlbGVtU291cmNlLCBlbGVtKSB7XG4gICAgaWYgKCF0aGlzLmlzU2Nyb2xsZWRJbnRvVmlldyhlbGVtU291cmNlLCBlbGVtKSkge1xuICAgICAgZWxlbVNvdXJjZS5zY3JvbGxUb3AgPVxuICAgICAgICBlbGVtLm9mZnNldFRvcCArXG4gICAgICAgIGVsZW0uY2hpbGRyZW5bMF0ub2Zmc2V0SGVpZ2h0IC1cbiAgICAgICAgZWxlbVNvdXJjZS5jbGllbnRIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlVG9wUGFuZWwoZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKGV2ZW50ICYmIChldmVudC50YXJnZXQgYXMgYW55KT8uY2xhc3NOYW1lICE9PSAnaWdvLXBhbmVsLXRpdGxlJykge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy50b3BQYW5lbFN0YXRlID09PSAnZXhwYW5kZWQnKSB7XG4gICAgICAgIHRoaXMudG9wUGFuZWxTdGF0ZSA9ICdjb2xsYXBzZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b3BQYW5lbFN0YXRlID0gJ2V4cGFuZGVkJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB6b29tVG9GZWF0dXJlRXh0ZW50KCkge1xuICAgIGlmICh0aGlzLmZlYXR1cmUuZ2VvbWV0cnkpIHtcbiAgICAgIGNvbnN0IGxvY2FsT2xGZWF0dXJlID0gdGhpcy5mb3JtYXQucmVhZEZlYXR1cmUodGhpcy5mZWF0dXJlLCB7XG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiB0aGlzLmZlYXR1cmUucHJvamVjdGlvbixcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwLnByb2plY3Rpb25Db2RlXG4gICAgICB9KTtcbiAgICAgIG1vdmVUb09sRmVhdHVyZXMoXG4gICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLFxuICAgICAgICBbbG9jYWxPbEZlYXR1cmVdLFxuICAgICAgICBGZWF0dXJlTW90aW9uLlpvb21cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBhZGQgYSBmZWF0dXJlIHRvIHRoZSBtYXAgb3ZlcmxheVxuICAgKiBAcGFyYW0gcmVzdWx0IEEgc2VhcmNoIHJlc3VsdCB0aGF0IGNvdWxkIGJlIGEgZmVhdHVyZVxuICAgKiBAcGFyYW0gbW90aW9uIEEgRmVhdHVyZU1vdGlvbiB0byB0cmlnZ2VyIHdoZW4gYWRkaW5nIHRoZSBzZWFyY2hyZXN1bHQgdG8gdGhlIG1hcCBzZWFyY2ggb3ZlcmxheVxuICAgKi9cbiAgcHJpdmF0ZSB0cnlBZGRGZWF0dXJlVG9NYXAoXG4gICAgcmVzdWx0OiBTZWFyY2hSZXN1bHQsXG4gICAgbW90aW9uOiBGZWF0dXJlTW90aW9uID0gRmVhdHVyZU1vdGlvbi5EZWZhdWx0XG4gICkge1xuICAgIGlmIChyZXN1bHQubWV0YS5kYXRhVHlwZSAhPT0gRkVBVFVSRSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZmVhdHVyZSA9IChyZXN1bHQgYXMgU2VhcmNoUmVzdWx0PEZlYXR1cmU+KS5kYXRhO1xuXG4gICAgLy8gU29tZXRoaW1lcyBmZWF0dXJlcyBoYXZlIG5vIGdlb21ldHJ5LiBJdCBoYXBwZW5zIHdpdGggc29tZSBHZXRGZWF0dXJlSW5mb1xuICAgIGlmICghZmVhdHVyZS5nZW9tZXRyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZlYXR1cmUubWV0YS5zdHlsZSA9IGdldENvbW1vblZlY3RvclNlbGVjdGVkU3R5bGUoXG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICB7fSxcbiAgICAgICAgeyBmZWF0dXJlIH0sXG4gICAgICAgIHRoaXMuc2VhcmNoU3RhdGUuc2VhcmNoT3ZlcmxheVN0eWxlU2VsZWN0aW9uLFxuICAgICAgICByZXN1bHQuc3R5bGU/LnNlbGVjdGlvbiA/IHJlc3VsdC5zdHlsZS5zZWxlY3Rpb24gOiB7fVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLm1hcC5zZWFyY2hSZXN1bHRzT3ZlcmxheS5hZGRGZWF0dXJlKGZlYXR1cmUsIG1vdGlvbik7XG4gIH1cblxuICBpc1Njcm9sbGVkSW50b1ZpZXcoZWxlbVNvdXJjZSwgZWxlbSkge1xuICAgIGNvbnN0IHBhZGRpbmcgPSA2O1xuICAgIGNvbnN0IGRvY1ZpZXdUb3AgPSBlbGVtU291cmNlLnNjcm9sbFRvcDtcbiAgICBjb25zdCBkb2NWaWV3Qm90dG9tID0gZG9jVmlld1RvcCArIGVsZW1Tb3VyY2UuY2xpZW50SGVpZ2h0O1xuXG4gICAgY29uc3QgZWxlbVRvcCA9IGVsZW0ub2Zmc2V0VG9wO1xuICAgIGNvbnN0IGVsZW1Cb3R0b20gPSBlbGVtVG9wICsgZWxlbS5jbGllbnRIZWlnaHQgKyBwYWRkaW5nO1xuICAgIHJldHVybiBlbGVtQm90dG9tIDw9IGRvY1ZpZXdCb3R0b20gJiYgZWxlbVRvcCA+PSBkb2NWaWV3VG9wO1xuICB9XG5cbiAgZ2V0Um91dGUoKSB7XG4gICAgdGhpcy50b29sU3RhdGUudG9vbGJveC5hY3RpdmF0ZVRvb2woJ2RpcmVjdGlvbnMnKTtcbiAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUuY2xlYXJTdG9wcygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IHJvdXRpbmdDb29yZExvYWRlZCA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuZ2V0Um91dGUkJCkge1xuICAgICAgICB0aGlzLmdldFJvdXRlJCQudW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0Um91dGUkJCA9XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC5zdWJzY3JpYmUoXG4gICAgICAgICAgKGluaXQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLnN0b3JlSW5pdGlhbGl6ZWQkLnZhbHVlICYmXG4gICAgICAgICAgICAgICFyb3V0aW5nQ29vcmRMb2FkZWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByb3V0aW5nQ29vcmRMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBjb25zdCBzdG9wID0gdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlXG4gICAgICAgICAgICAgICAgLmFsbCgpXG4gICAgICAgICAgICAgICAgLmZpbmQoKGUpID0+IGUucG9zaXRpb24gPT09IDEpO1xuICAgICAgICAgICAgICBsZXQgY29vcmQ7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmUuZ2VvbWV0cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mZWF0dXJlLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcpIHtcbiAgICAgICAgICAgICAgICAgIGNvb3JkID0gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZlYXR1cmUuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmVhdHVyZS5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxuICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBwb2ludE9uRmVhdHVyZSh0aGlzLmZlYXR1cmUuZ2VvbWV0cnkpO1xuICAgICAgICAgICAgICAgICAgY29vcmQgPSBbXG4gICAgICAgICAgICAgICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxuICAgICAgICAgICAgICAgICAgICBwb2ludC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxuICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc3RvcC50ZXh0ID0gdGhpcy5mZWF0dXJlVGl0bGU7XG4gICAgICAgICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBjb29yZDtcbiAgICAgICAgICAgICAgdGhpcy5kaXJlY3Rpb25TdGF0ZS5zdG9wc1N0b3JlLnVwZGF0ZShzdG9wKTtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWFwLmdlb2xvY2F0aW9uQ29udHJvbGxlci5wb3NpdGlvbiQudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50UG9zID1cbiAgICAgICAgICAgICAgICAgIHRoaXMubWFwLmdlb2xvY2F0aW9uQ29udHJvbGxlci5wb3NpdGlvbiQudmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RvcCA9IHRoaXMuZGlyZWN0aW9uU3RhdGUuc3RvcHNTdG9yZVxuICAgICAgICAgICAgICAgICAgLmFsbCgpXG4gICAgICAgICAgICAgICAgICAuZmluZCgoZSkgPT4gZS5wb3NpdGlvbiA9PT0gMCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENvb3JkID0gb2xQcm9qLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb3MucG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UG9zLnByb2plY3Rpb24sXG4gICAgICAgICAgICAgICAgICAnRVBTRzo0MzI2J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29vcmQ6IFtudW1iZXIsIG51bWJlcl0gPSByb3VuZENvb3JkVG8oXG4gICAgICAgICAgICAgICAgICBbY3VycmVudENvb3JkWzBdLCBjdXJyZW50Q29vcmRbMV1dLFxuICAgICAgICAgICAgICAgICAgNlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgc3RvcC50ZXh0ID0gY29vcmQuam9pbignLCcpO1xuICAgICAgICAgICAgICAgIHN0b3AuY29vcmRpbmF0ZXMgPSBjb29yZDtcbiAgICAgICAgICAgICAgICB0aGlzLmRpcmVjdGlvblN0YXRlLnN0b3BzU3RvcmUudXBkYXRlKHN0b3ApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0sIDI1MCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCIoIXN0b3JlIHx8IHN0b3JlLnN0YXRlVmlldy5lbXB0eSkgJiYgKGRlYm91bmNlZEVtcHR5JCB8IGFzeW5jKVwiXG4gIHN0eWxlPVwibWFyZ2luOiAxMHB4XCJcbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgIDxoND5cbiAgICAgIDxzdHJvbmc+e3tcbiAgICAgICAgJ2lnby5pbnRlZ3JhdGlvbi5zZWFyY2hSZXN1bHRzVG9vbC5ub1Jlc3VsdHMnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvc3Ryb25nPlxuICAgIDwvaDQ+XG4gICAgPHA+XG4gICAgICA8c3Ryb25nPnt7XG4gICAgICAgICdpZ28uaW50ZWdyYXRpb24uc2VhcmNoUmVzdWx0c1Rvb2wuZG9TZWFyY2gnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvc3Ryb25nPlxuICAgIDwvcD5cbiAgICA8ZGl2XG4gICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLmV4YW1wbGVzJyB8IHRyYW5zbGF0ZSB8IHNhbml0aXplSHRtbFxuICAgICAgXCJcbiAgICA+PC9kaXY+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuXG48aWdvLWZsZXhpYmxlXG4gICpuZ0lmPVwiKGRlYm91bmNlZEVtcHR5JCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAjdG9wUGFuZWxcbiAgaW5pdGlhbD1cIjEwMCVcIlxuICBpbml0aWFsTW9iaWxlPVwiMTAwJVwiXG4gIGNvbGxhcHNlZD1cImNhbGMoMTAwJSAtIDU4cHgpXCJcbiAgY29sbGFwc2VkTW9iaWxlPVwiY2FsYygxMDAlIC0gNThweClcIlxuICBleHBhbmRlZD1cIjYwJVwiXG4gIGV4cGFuZGVkTW9iaWxlPVwiNjAlXCJcbiAgW3N0YXRlXT1cIihmZWF0dXJlJCB8IGFzeW5jKSA/IHRvcFBhbmVsU3RhdGUgOiAnaW5pdGlhbCdcIlxuPlxuICA8ZGl2IGNsYXNzPVwiaWdvLWNvbnRlbnRcIj5cbiAgICA8aWdvLXNlYXJjaC1yZXN1bHRzXG4gICAgICBbc3RvcmVdPVwic3RvcmVcIlxuICAgICAgW3Nob3dJY29uc109XCJzaG93SWNvbnNcIlxuICAgICAgW3Rlcm1dPVwidGVybVwiXG4gICAgICBbdGVybVNwbGl0dGVyXT1cInRlcm1TcGxpdHRlclwiXG4gICAgICBbc2V0dGluZ3NDaGFuZ2UkXT1cInNldHRpbmdzQ2hhbmdlJFwiXG4gICAgICBwbGFjZWhvbGRlcj1cImZhbHNlXCJcbiAgICAgIChyZXN1bHRGb2N1cyk9XCJvblJlc3VsdEZvY3VzKCRldmVudClcIlxuICAgICAgKHJlc3VsdFNlbGVjdCk9XCJvblJlc3VsdFNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChyZXN1bHRVbmZvY3VzKT1cIm9uUmVzdWx0VW5mb2N1cygkZXZlbnQpXCJcbiAgICAgIChyZXN1bHRNb3VzZWVudGVyKT1cIm9uUmVzdWx0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAocmVzdWx0TW91c2VsZWF2ZSk9XCJvblJlc3VsdFVuZm9jdXMoJGV2ZW50KVwiXG4gICAgICAobW9yZVJlc3VsdHMpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICBbbWFwXT1cIm1hcFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlICNpZ29TZWFyY2hJdGVtVG9vbGJhciBsZXQtcmVzdWx0PVwicmVzdWx0XCI+XG4gICAgICAgIDxpZ28tc2VhcmNoLWFkZC1idXR0b25cbiAgICAgICAgICBbbWFwXT1cIm1hcFwiXG4gICAgICAgICAgW3N0b3JlXT1cInN0b3JlXCJcbiAgICAgICAgICBbc3RvcmVzXT1cInN0b3Jlc1wiXG4gICAgICAgICAgW2xheWVyXT1cInJlc3VsdFwiXG4gICAgICAgICAgW3NhdmVTZWFyY2hSZXN1bHRJbkxheWVyXT1cInNhdmVTZWFyY2hSZXN1bHRJbkxheWVyXCJcbiAgICAgICAgPlxuICAgICAgICA8L2lnby1zZWFyY2gtYWRkLWJ1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pZ28tc2VhcmNoLXJlc3VsdHM+XG4gIDwvZGl2PlxuXG4gIDxkaXYgaWdvRmxleGlibGVGaWxsIGNsYXNzPVwiaWdvLWNvbnRlbnRcIj5cbiAgICA8aWdvLXBhbmVsXG4gICAgICBbdGl0bGVdPVwiZmVhdHVyZVRpdGxlXCJcbiAgICAgICpuZ0lmPVwiZmVhdHVyZSQgfCBhc3luY1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlVG9wUGFuZWwoJGV2ZW50KVwiXG4gICAgICBbY3Vyc29yUG9pbnRlcl09XCJ0cnVlXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBwYW5lbExlZnRCdXR0b25cbiAgICAgICAgY2xhc3M9XCJpZ28taWNvbi1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlVG9wUGFuZWwoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIFtzdmdJY29uXT1cIlxuICAgICAgICAgICAgKHRvcFBhbmVsU3RhdGUkIHwgYXN5bmMpID09PSAnY29sbGFwc2VkJyA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bidcbiAgICAgICAgICBcIlxuICAgICAgICA+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiZmVhdHVyZS5nZW9tZXRyeVwiXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBwYW5lbFJpZ2h0QnV0dG9uXG4gICAgICAgIGNsYXNzPVwiaWdvLWljb24tYnV0dG9uXCJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICAgICAgKChpc1NlbGVjdGVkUmVzdWx0T3V0T2ZWaWV3JCB8IGFzeW5jKVxuICAgICAgICAgICAgPyAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLnpvb21PbkZlYXR1cmVUb29sdGlwT3V0T2ZWaWV3J1xuICAgICAgICAgICAgOiAnaWdvLmludGVncmF0aW9uLnNlYXJjaFJlc3VsdHNUb29sLnpvb21PbkZlYXR1cmVUb29sdGlwJ1xuICAgICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgXCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIChjbGljayk9XCJ6b29tVG9GZWF0dXJlRXh0ZW50KClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICBbbWF0QmFkZ2VdPVwiKGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckIHwgYXN5bmMpID8gJyEnIDogJydcIlxuICAgICAgICAgIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwiKGlzU2VsZWN0ZWRSZXN1bHRPdXRPZlZpZXckIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgc3ZnSWNvbj1cIm1hZ25pZnktcGx1cy1vdXRsaW5lXCJcbiAgICAgICAgPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGlnby1mZWF0dXJlLWRldGFpbHNcbiAgICAgICAgaWdvRmVhdHVyZURldGFpbHNEaXJlY3RpdmVcbiAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZSQgfCBhc3luY1wiXG4gICAgICAgIFttYXBdPVwibWFwXCJcbiAgICAgICAgW3Rvb2xib3hdPVwidG9vbFN0YXRlLnRvb2xib3hcIlxuICAgICAgICAocm91dGluZ0V2ZW50KT1cImdldFJvdXRlKClcIlxuICAgICAgPlxuICAgICAgPC9pZ28tZmVhdHVyZS1kZXRhaWxzPlxuICAgIDwvaWdvLXBhbmVsPlxuICA8L2Rpdj5cbjwvaWdvLWZsZXhpYmxlPlxuIl19
|
|
@@ -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
|
|
@@ -70,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
70
70
|
type: Inject,
|
|
71
71
|
args: [OgcFilterWidget]
|
|
72
72
|
}] }, { type: i1.StorageState }, { type: i2.LanguageService }, { type: i3.MediaService }, { type: i4.ToolState }] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi1hY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3dvcmtzcGFjZS9zaGFyZWQvZWRpdGlvbi1hY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFVLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFHTCx1QkFBdUIsRUFDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQW9CLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU5RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7QUFLeEUsTUFBTSxPQUFPLHFCQUFxQjtJQWVHO0lBQ3pCO0lBQ0Q7SUFDQztJQUNBO0lBbEJILFNBQVMsQ0FBMkI7SUFFM0MsU0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxlQUFlLENBQWU7SUFFdEMsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFZLENBQUM7SUFDeEQsQ0FBQztJQUVELFlBQ21DLGVBQXVCLEVBQ2hELFlBQTBCLEVBQzNCLGVBQWdDLEVBQy9CLFlBQTBCLEVBQzFCLFNBQW9CO1FBSkssb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDaEQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQVksQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FDVCxTQUEyQixFQUMzQiw4QkFBd0QsRUFDeEQseUJBQW1EO1FBRW5ELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQy9CLFNBQVMsRUFDVCw4QkFBOEIsRUFDOUIseUJBQXlCLENBQzFCLENBQUM7UUFDRixTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUNWLFNBQTJCLEVBQzNCLDhCQUF3RCxFQUN4RCx5QkFBbUQ7UUFFbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjO2FBQ3RELElBQUksQ0FDSCxTQUFTLENBQ1AsQ0FBQyxhQUFrQyxFQUFFLEVBQUUsQ0FDckMsYUFBYSxFQUFFLEdBQUcsS0FBSyxVQUFVO1lBQ2pDLGFBQWEsRUFBRSxLQUFLLEtBQUssdUJBQXVCLENBQUMsT0FBTyxDQUMzRCxDQUNGO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNMLE9BQU8sbUJBQW1CLENBQ3hCLFNBQVMsRUFDVCw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsU0FBUyxDQUNmLENBQUM7SUFDSixDQUFDO3VHQTNFVSxxQkFBcUIsa0JBZXRCLGVBQWU7MkdBZmQscUJBQXFCLGNBRnBCLE1BQU07OzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWdCSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY3Rpb24sIFdpZGdldCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcbmltcG9ydCB7IE1lZGlhU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVkaWEnO1xuaW1wb3J0IHtcbiAgU3RvcmFnZVNlcnZpY2UsXG4gIFN0b3JhZ2VTZXJ2aWNlRXZlbnQsXG4gIFN0b3JhZ2VTZXJ2aWNlRXZlbnRFbnVtXG59IGZyb20gJ0BpZ28yL2NvcmUvc3RvcmFnZSc7XG5pbXBvcnQgeyBFZGl0aW9uV29ya3NwYWNlLCBPZ2NGaWx0ZXJXaWRnZXQgfSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTdG9yYWdlU3RhdGUgfSBmcm9tICcuLi8uLi9zdG9yYWdlL3N0b3JhZ2Uuc3RhdGUnO1xuaW1wb3J0IHsgVG9vbFN0YXRlIH0gZnJvbSAnLi4vLi4vdG9vbC90b29sLnN0YXRlJztcbmltcG9ydCB7IGdldFdvcmtzcGFjZUFjdGlvbnMsIGhhbmRsZVpvb21BdXRvIH0gZnJvbSAnLi93b3Jrc3BhY2UudXRpbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFZGl0aW9uQWN0aW9uc1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgbWF4aW1pemUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgem9vbUF1dG8kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSBzdG9yYWdlQ2hhbmdlJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBnZXQgc3RvcmFnZVNlcnZpY2UoKTogU3RvcmFnZVNlcnZpY2Uge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTdGF0ZS5zdG9yYWdlU2VydmljZTtcbiAgfVxuXG4gIGdldCB6b29tQXV0bygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ3pvb21BdXRvJykgYXMgYm9vbGVhbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoT2djRmlsdGVyV2lkZ2V0KSBwcml2YXRlIG9nY0ZpbHRlcldpZGdldDogV2lkZ2V0LFxuICAgIHByaXZhdGUgc3RvcmFnZVN0YXRlOiBTdG9yYWdlU3RhdGUsXG4gICAgcHVibGljIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b29sU3RhdGU6IFRvb2xTdGF0ZVxuICApIHtcbiAgICB0aGlzLm1heGltaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnd29ya3NwYWNlTWF4aW1pemUnKSBhcyBib29sZWFuXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0b3JhZ2VDaGFuZ2UkJCkge1xuICAgICAgdGhpcy5zdG9yYWdlQ2hhbmdlJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBsb2FkQWN0aW9ucyhcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UsXG4gICAgcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4sXG4gICAgc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+XG4gICkge1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmJ1aWxkQWN0aW9ucyhcbiAgICAgIHdvcmtzcGFjZSxcbiAgICAgIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJCxcbiAgICAgIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiRcbiAgICApO1xuICAgIHdvcmtzcGFjZS5hY3Rpb25TdG9yZS5sb2FkKGFjdGlvbnMpO1xuICB9XG5cbiAgYnVpbGRBY3Rpb25zKFxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSxcbiAgICByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPixcbiAgICBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj5cbiAgKTogQWN0aW9uW10ge1xuICAgIHRoaXMuem9vbUF1dG8kLm5leHQodGhpcy56b29tQXV0byk7XG4gICAgdGhpcy5zdG9yYWdlQ2hhbmdlJCQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JhZ2VDaGFuZ2UkXG4gICAgICAucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKFxuICAgICAgICAgIChzdG9yYWdlQ2hhbmdlOiBTdG9yYWdlU2VydmljZUV2ZW50KSA9PlxuICAgICAgICAgICAgc3RvcmFnZUNoYW5nZT8ua2V5ICE9PSAnem9vbUF1dG8nIHx8XG4gICAgICAgICAgICBzdG9yYWdlQ2hhbmdlPy5ldmVudCA9PT0gU3RvcmFnZVNlcnZpY2VFdmVudEVudW0uQ0xFQVJFRFxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy56b29tQXV0byQubmV4dCh0aGlzLnpvb21BdXRvKTtcbiAgICAgICAgaGFuZGxlWm9vbUF1dG8od29ya3NwYWNlLCB0aGlzLnN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBnZXRXb3Jrc3BhY2VBY3Rpb25zKFxuICAgICAgd29ya3NwYWNlLFxuICAgICAgcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLFxuICAgICAgc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCxcbiAgICAgIHRoaXMub2djRmlsdGVyV2lkZ2V0LFxuICAgICAgdGhpcy56b29tQXV0byQsXG4gICAgICB0aGlzLm1heGltaXplJCxcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UsXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZSxcbiAgICAgIHRoaXMubWVkaWFTZXJ2aWNlLFxuICAgICAgdGhpcy50b29sU3RhdGVcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
62
62
|
providedIn: 'root'
|
|
63
63
|
}]
|
|
64
64
|
}], ctorParameters: () => [{ type: i1.StorageState }, { type: i2.LanguageService }, { type: i3.ToolState }, { type: i4.MediaService }] });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1hY3Rpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9pbnRlZ3JhdGlvbi9zcmMvbGliL3dvcmtzcGFjZS9zaGFyZWQvZmVhdHVyZS1hY3Rpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUd0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFHTCx1QkFBdUIsRUFDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUc1QixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQUt4RSxNQUFNLE9BQU8scUJBQXFCO0lBZXRCO0lBQ0Q7SUFDQztJQUNBO0lBakJILFNBQVMsQ0FBMkI7SUFFM0MsU0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxlQUFlLENBQWU7SUFFdEMsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFZLENBQUM7SUFDeEQsQ0FBQztJQUVELFlBQ1UsWUFBMEIsRUFDM0IsZUFBZ0MsRUFDL0IsU0FBb0IsRUFDcEIsWUFBMEI7UUFIMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFFbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQVksQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FDVCxTQUEyQixFQUMzQiw4QkFBd0QsRUFDeEQseUJBQW1EO1FBRW5ELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQy9CLFNBQVMsRUFDVCw4QkFBOEIsRUFDOUIseUJBQXlCLENBQzFCLENBQUM7UUFDRixTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWSxDQUNWLFNBQTJCLEVBQzNCLDhCQUF3RCxFQUN4RCx5QkFBbUQ7UUFFbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjO2FBQ3RELElBQUksQ0FDSCxTQUFTLENBQ1AsQ0FBQyxhQUFrQyxFQUFFLEVBQUUsQ0FDckMsYUFBYSxFQUFFLEdBQUcsS0FBSyxVQUFVO1lBQ2pDLGFBQWEsRUFBRSxLQUFLLEtBQUssdUJBQXVCLENBQUMsT0FBTyxDQUMzRCxDQUNGO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNMLE9BQU8sbUJBQW1CLENBQ3hCLFNBQVMsRUFDVCw4QkFBOEIsRUFDOUIseUJBQXlCLEVBQ3pCLFNBQVMsRUFDVCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FDZixDQUFDO0lBQ0osQ0FBQzt1R0ExRVUscUJBQXFCOzJHQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5pbXBvcnQgeyBNZWRpYVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lZGlhJztcbmltcG9ydCB7XG4gIFN0b3JhZ2VTZXJ2aWNlLFxuICBTdG9yYWdlU2VydmljZUV2ZW50LFxuICBTdG9yYWdlU2VydmljZUV2ZW50RW51bVxufSBmcm9tICdAaWdvMi9jb3JlL3N0b3JhZ2UnO1xuaW1wb3J0IHsgRmVhdHVyZVdvcmtzcGFjZSB9IGZyb20gJ0BpZ28yL2dlbyc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFN0b3JhZ2VTdGF0ZSB9IGZyb20gJy4uLy4uL3N0b3JhZ2Uvc3RvcmFnZS5zdGF0ZSc7XG5pbXBvcnQgeyBUb29sU3RhdGUgfSBmcm9tICcuLi8uLi90b29sL3Rvb2wuc3RhdGUnO1xuaW1wb3J0IHsgZ2V0V29ya3NwYWNlQWN0aW9ucywgaGFuZGxlWm9vbUF1dG8gfSBmcm9tICcuL3dvcmtzcGFjZS51dGlscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVBY3Rpb25zU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBtYXhpbWl6ZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICB6b29tQXV0byQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHN0b3JhZ2VDaGFuZ2UkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBzdG9yYWdlU2VydmljZSgpOiBTdG9yYWdlU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVN0YXRlLnN0b3JhZ2VTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IHpvb21BdXRvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnem9vbUF1dG8nKSBhcyBib29sZWFuO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yYWdlU3RhdGU6IFN0b3JhZ2VTdGF0ZSxcbiAgICBwdWJsaWMgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0b29sU3RhdGU6IFRvb2xTdGF0ZSxcbiAgICBwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubWF4aW1pemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCd3b3Jrc3BhY2VNYXhpbWl6ZScpIGFzIGJvb2xlYW5cbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RvcmFnZUNoYW5nZSQkKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VDaGFuZ2UkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRBY3Rpb25zKFxuICAgIHdvcmtzcGFjZTogRmVhdHVyZVdvcmtzcGFjZSxcbiAgICByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPixcbiAgICBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj5cbiAgKSB7XG4gICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuYnVpbGRBY3Rpb25zKFxuICAgICAgd29ya3NwYWNlLFxuICAgICAgcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLFxuICAgICAgc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJFxuICAgICk7XG4gICAgd29ya3NwYWNlLmFjdGlvblN0b3JlLmxvYWQoYWN0aW9ucyk7XG4gIH1cblxuICBidWlsZEFjdGlvbnMoXG4gICAgd29ya3NwYWNlOiBGZWF0dXJlV29ya3NwYWNlLFxuICAgIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxuICAgIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxuICApOiBBY3Rpb25bXSB7XG4gICAgdGhpcy56b29tQXV0byQubmV4dCh0aGlzLnpvb21BdXRvKTtcbiAgICB0aGlzLnN0b3JhZ2VDaGFuZ2UkJCA9IHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmFnZUNoYW5nZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBza2lwV2hpbGUoXG4gICAgICAgICAgKHN0b3JhZ2VDaGFuZ2U6IFN0b3JhZ2VTZXJ2aWNlRXZlbnQpID0+XG4gICAgICAgICAgICBzdG9yYWdlQ2hhbmdlPy5rZXkgIT09ICd6b29tQXV0bycgfHxcbiAgICAgICAgICAgIHN0b3JhZ2VDaGFuZ2U/LmV2ZW50ID09PSBTdG9yYWdlU2VydmljZUV2ZW50RW51bS5DTEVBUkVEXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnpvb21BdXRvJC5uZXh0KHRoaXMuem9vbUF1dG8pO1xuICAgICAgICBoYW5kbGVab29tQXV0byh3b3Jrc3BhY2UsIHRoaXMuc3RvcmFnZVNlcnZpY2UpO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIGdldFdvcmtzcGFjZUFjdGlvbnMoXG4gICAgICB3b3Jrc3BhY2UsXG4gICAgICByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQsXG4gICAgICBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdGhpcy56b29tQXV0byQsXG4gICAgICB0aGlzLm1heGltaXplJCxcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UsXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZSxcbiAgICAgIHRoaXMubWVkaWFTZXJ2aWNlLFxuICAgICAgdGhpcy50b29sU3RhdGVcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
72
72
|
type: Inject,
|
|
73
73
|
args: [OgcFilterWidget]
|
|
74
74
|
}] }, { type: i1.StorageState }, { type: i2.LanguageService }, { type: i3.MediaService }, { type: i4.ToolState }] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ZzLWFjdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2ludGVncmF0aW9uL3NyYy9saWIvd29ya3NwYWNlL3NoYXJlZC93ZnMtYWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBVSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxXQUFXLENBQUM7QUFFMUQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBS3hFLE1BQU0sT0FBTyxpQkFBaUI7SUFtQk87SUFDekI7SUFDRDtJQUNDO0lBQ0E7SUF0QkgsU0FBUyxDQUEyQjtJQUUzQyx5QkFBeUIsR0FBNkIsSUFBSSxlQUFlLENBQ3ZFLEtBQUssQ0FDTixDQUFDO0lBQ0Ysd0ZBQXdGO0lBQ3hGLFNBQVMsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsZUFBZSxDQUFlO0lBRXRDLElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBWSxDQUFDO0lBQ3hELENBQUM7SUFFRCxZQUNtQyxlQUF1QixFQUNoRCxZQUEwQixFQUMzQixlQUFnQyxFQUMvQixZQUEwQixFQUMxQixTQUFvQjtRQUpLLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBQ2hELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzNCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMvQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRTVCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFZLENBQ3hELENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQ1QsU0FBdUIsRUFDdkIsOEJBQXdELEVBQ3hELHlCQUFtRDtRQUVuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUMvQixTQUFTLEVBQ1QsOEJBQThCLEVBQzlCLHlCQUF5QixDQUMxQixDQUFDO1FBQ0YsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FDVixTQUF1QixFQUN2Qiw4QkFBd0QsRUFDeEQseUJBQW1EO1FBRW5ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYzthQUN0RCxJQUFJLENBQ0gsU0FBUyxDQUNQLENBQUMsYUFBa0MsRUFBRSxFQUFFLENBQ3JDLGFBQWEsRUFBRSxHQUFHLEtBQUssVUFBVTtZQUNqQyxhQUFhLEVBQUUsS0FBSyxLQUFLLHVCQUF1QixDQUFDLE9BQU8sQ0FDM0QsQ0FDRjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLG1CQUFtQixDQUN4QixTQUFTLEVBQ1QsOEJBQThCLEVBQzlCLHlCQUF5QixFQUN6QixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FDZixDQUFDO0lBQ0osQ0FBQzt1R0EvRVUsaUJBQWlCLGtCQW1CbEIsZUFBZTsyR0FuQmQsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQW9CSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY3Rpb24sIFdpZGdldCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2xhbmd1YWdlJztcbmltcG9ydCB7IE1lZGlhU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVkaWEnO1xuaW1wb3J0IHtcbiAgU3RvcmFnZVNlcnZpY2UsXG4gIFN0b3JhZ2VTZXJ2aWNlRXZlbnQsXG4gIFN0b3JhZ2VTZXJ2aWNlRXZlbnRFbnVtXG59IGZyb20gJ0BpZ28yL2NvcmUvc3RvcmFnZSc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJXaWRnZXQsIFdmc1dvcmtzcGFjZSB9IGZyb20gJ0BpZ28yL2dlbyc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBza2lwV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFN0b3JhZ2VTdGF0ZSB9IGZyb20gJy4uLy4uL3N0b3JhZ2Uvc3RvcmFnZS5zdGF0ZSc7XG5pbXBvcnQgeyBUb29sU3RhdGUgfSBmcm9tICcuLi8uLi90b29sL3Rvb2wuc3RhdGUnO1xuaW1wb3J0IHsgZ2V0V29ya3NwYWNlQWN0aW9ucywgaGFuZGxlWm9vbUF1dG8gfSBmcm9tICcuL3dvcmtzcGFjZS51dGlscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdmc0FjdGlvbnNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIG1heGltaXplJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG4gIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgZmFsc2VcbiAgKTtcbiAgLy8gcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xuICB6b29tQXV0byQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIHN0b3JhZ2VDaGFuZ2UkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBzdG9yYWdlU2VydmljZSgpOiBTdG9yYWdlU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVN0YXRlLnN0b3JhZ2VTZXJ2aWNlO1xuICB9XG5cbiAgZ2V0IHpvb21BdXRvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnem9vbUF1dG8nKSBhcyBib29sZWFuO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChPZ2NGaWx0ZXJXaWRnZXQpIHByaXZhdGUgb2djRmlsdGVyV2lkZ2V0OiBXaWRnZXQsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU3RhdGU6IFN0b3JhZ2VTdGF0ZSxcbiAgICBwdWJsaWMgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZSxcbiAgICBwcml2YXRlIHRvb2xTdGF0ZTogVG9vbFN0YXRlXG4gICkge1xuICAgIHRoaXMubWF4aW1pemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCd3b3Jrc3BhY2VNYXhpbWl6ZScpIGFzIGJvb2xlYW5cbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RvcmFnZUNoYW5nZSQkKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VDaGFuZ2UkJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGxvYWRBY3Rpb25zKFxuICAgIHdvcmtzcGFjZTogV2ZzV29ya3NwYWNlLFxuICAgIHJvd3NJbk1hcEV4dGVudENoZWNrQ29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxuICAgIHNlbGVjdE9ubHlDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxuICApIHtcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5idWlsZEFjdGlvbnMoXG4gICAgICB3b3Jrc3BhY2UsXG4gICAgICByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQsXG4gICAgICBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kXG4gICAgKTtcbiAgICB3b3Jrc3BhY2UuYWN0aW9uU3RvcmUubG9hZChhY3Rpb25zKTtcbiAgfVxuXG4gIGJ1aWxkQWN0aW9ucyhcbiAgICB3b3Jrc3BhY2U6IFdmc1dvcmtzcGFjZSxcbiAgICByb3dzSW5NYXBFeHRlbnRDaGVja0NvbmRpdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPixcbiAgICBzZWxlY3RPbmx5Q2hlY2tDb25kaXRpb24kOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj5cbiAgKTogQWN0aW9uW10ge1xuICAgIHRoaXMuem9vbUF1dG8kLm5leHQodGhpcy56b29tQXV0byk7XG4gICAgdGhpcy5zdG9yYWdlQ2hhbmdlJCQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JhZ2VDaGFuZ2UkXG4gICAgICAucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKFxuICAgICAgICAgIChzdG9yYWdlQ2hhbmdlOiBTdG9yYWdlU2VydmljZUV2ZW50KSA9PlxuICAgICAgICAgICAgc3RvcmFnZUNoYW5nZT8ua2V5ICE9PSAnem9vbUF1dG8nIHx8XG4gICAgICAgICAgICBzdG9yYWdlQ2hhbmdlPy5ldmVudCA9PT0gU3RvcmFnZVNlcnZpY2VFdmVudEVudW0uQ0xFQVJFRFxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy56b29tQXV0byQubmV4dCh0aGlzLnpvb21BdXRvKTtcbiAgICAgICAgaGFuZGxlWm9vbUF1dG8od29ya3NwYWNlLCB0aGlzLnN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgIH0pO1xuICAgIHJldHVybiBnZXRXb3Jrc3BhY2VBY3Rpb25zKFxuICAgICAgd29ya3NwYWNlLFxuICAgICAgcm93c0luTWFwRXh0ZW50Q2hlY2tDb25kaXRpb24kLFxuICAgICAgc2VsZWN0T25seUNoZWNrQ29uZGl0aW9uJCxcbiAgICAgIHRoaXMub2djRmlsdGVyV2lkZ2V0LFxuICAgICAgdGhpcy56b29tQXV0byQsXG4gICAgICB0aGlzLm1heGltaXplJCxcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UsXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZSxcbiAgICAgIHRoaXMubWVkaWFTZXJ2aWNlLFxuICAgICAgdGhpcy50b29sU3RhdGVcbiAgICApO1xuICB9XG59XG4iXX0=
|