@igo2/geo 16.2.0 → 17.0.0-next.0
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/catalog/catalog-browser/catalog-browser-group.component.mjs +30 -14
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +35 -17
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +18 -11
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +8 -62
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +46 -19
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +22 -10
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +28 -14
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +8 -71
- package/esm2022/lib/catalog/catalog-library/index.mjs +9 -0
- package/esm2022/lib/catalog/catalog.module.mjs +9 -37
- package/esm2022/lib/catalog/index.mjs +7 -1
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +72 -31
- package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
- package/esm2022/lib/catalog/shared/index.mjs +1 -1
- package/esm2022/lib/datasource/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +7 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasource.service.mjs +8 -12
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +6 -6
- package/esm2022/lib/datasource/utils/tilegrid.mjs +1 -1
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +23 -12
- package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +42 -17
- package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +34 -14
- package/esm2022/lib/directions/directions-results/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +5 -5
- package/esm2022/lib/directions/directions.component.mjs +18 -10
- package/esm2022/lib/directions/directions.module.mjs +17 -70
- package/esm2022/lib/directions/index.mjs +1 -1
- package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.service.mjs +6 -6
- package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
- package/esm2022/lib/directions/shared/index.mjs +1 -1
- package/esm2022/lib/directions/shared/store.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +21 -11
- package/esm2022/lib/download/download-button/index.mjs +1 -1
- package/esm2022/lib/download/download.module.mjs +10 -27
- package/esm2022/lib/download/index.mjs +1 -1
- package/esm2022/lib/download/shared/download.interface.mjs +1 -1
- package/esm2022/lib/download/shared/download.service.mjs +5 -5
- package/esm2022/lib/download/shared/index.mjs +1 -1
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +21 -10
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +39 -16
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +19 -9
- package/esm2022/lib/draw/draw/draw.component.mjs +52 -22
- package/esm2022/lib/draw/draw/draw.module.mjs +7 -104
- package/esm2022/lib/draw/drawingTool.module.mjs +8 -7
- package/esm2022/lib/draw/index.mjs +1 -1
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +5 -5
- package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
- package/esm2022/lib/draw/shared/index.mjs +1 -1
- package/esm2022/lib/environment/environment.interface.mjs +1 -1
- package/esm2022/lib/environment/index.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +23 -11
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +8 -7
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +8 -27
- package/esm2022/lib/feature/feature-details/index.mjs +9 -0
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +8 -8
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +8 -11
- package/esm2022/lib/feature/feature.module.mjs +9 -10
- package/esm2022/lib/feature/index.mjs +8 -2
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/index.mjs +1 -1
- package/esm2022/lib/feature/shared/store.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/search.mjs +4 -4
- package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies.utils.mjs +1 -1
- package/esm2022/lib/filter/filter.module.mjs +47 -177
- package/esm2022/lib/filter/index.mjs +36 -1
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +29 -15
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +46 -20
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +52 -21
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +13 -10
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +45 -18
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +18 -12
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +42 -18
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +8 -7
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +21 -12
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +6 -5
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +5 -5
- package/esm2022/lib/filter/shared/ogc-filter.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +5 -5
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +5 -5
- package/esm2022/lib/filter/shared/time-filter.service.mjs +5 -5
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +63 -27
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +32 -15
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +34 -15
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +28 -14
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +47 -20
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +31 -13
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +8 -7
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +16 -10
- package/esm2022/lib/geo.module.mjs +5 -43
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +7 -7
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +33 -16
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +8 -43
- package/esm2022/lib/geometry/geometry-form-field/index.mjs +9 -0
- package/esm2022/lib/geometry/geometry.module.mjs +9 -10
- package/esm2022/lib/geometry/index.mjs +2 -3
- package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +1 -1
- package/esm2022/lib/geometry/shared/index.mjs +1 -1
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +20 -10
- package/esm2022/lib/import-export/export-button/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +45 -17
- package/esm2022/lib/import-export/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export.module.mjs +10 -81
- package/esm2022/lib/import-export/index.mjs +9 -1
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +7 -6
- package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.service.mjs +5 -5
- package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +5 -5
- package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/index.mjs +1 -1
- package/esm2022/lib/layer/index.mjs +19 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +33 -14
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +41 -17
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +11 -9
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +8 -7
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +28 -13
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +8 -7
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +48 -18
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +33 -14
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +5 -5
- package/esm2022/lib/layer/layer.module.mjs +16 -93
- package/esm2022/lib/layer/shared/layer.service.mjs +11 -11
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +21 -11
- package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
- package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
- package/esm2022/lib/layer/utils/tile-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/vector-watcher.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +25 -12
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +8 -8
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +22 -11
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +13 -9
- package/esm2022/lib/map/index.mjs +32 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +7 -7
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +6 -6
- package/esm2022/lib/map/map-center/map-center.component.mjs +6 -6
- package/esm2022/lib/map/map.module.mjs +36 -66
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +21 -11
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +21 -11
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +23 -11
- package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +8 -7
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +8 -7
- package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
- package/esm2022/lib/map/shared/map.mjs +1 -1
- package/esm2022/lib/map/shared/map.service.mjs +5 -5
- package/esm2022/lib/map/shared/map.utils.mjs +1 -1
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +7 -6
- package/esm2022/lib/map/shared/projection.service.mjs +5 -5
- package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +6 -6
- package/esm2022/lib/map/utils/layer-watcher.mjs +1 -1
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +21 -11
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +13 -9
- package/esm2022/lib/measure/index.mjs +2 -3
- package/esm2022/lib/measure/measure.module.mjs +8 -5
- package/esm2022/lib/measure/measurer/index.mjs +6 -0
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +6 -5
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +18 -11
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +27 -13
- package/esm2022/lib/measure/measurer/measurer.component.mjs +35 -17
- package/esm2022/lib/measure/measurer/measurer.module.mjs +7 -69
- package/esm2022/lib/measure/shared/index.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2022/lib/metadata/index.mjs +6 -1
- package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +35 -18
- package/esm2022/lib/metadata/metadata.module.mjs +10 -31
- package/esm2022/lib/metadata/shared/index.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/index.mjs +1 -1
- package/esm2022/lib/offline/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +5 -5
- package/esm2022/lib/offline/shared/geo-network.service.mjs +5 -5
- package/esm2022/lib/offline/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/index.mjs +1 -1
- package/esm2022/lib/overlay/overlay.module.mjs +10 -8
- package/esm2022/lib/overlay/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +8 -7
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.mjs +2 -2
- package/esm2022/lib/overlay/shared/overlay.service.mjs +5 -5
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
- package/esm2022/lib/print/index.mjs +1 -1
- package/esm2022/lib/print/print/print.component.mjs +7 -7
- package/esm2022/lib/print/print-form/index.mjs +1 -1
- package/esm2022/lib/print/print-form/print-form.component.mjs +34 -14
- package/esm2022/lib/print/print.module.mjs +10 -54
- package/esm2022/lib/print/shared/geopdf.mjs +1 -1
- package/esm2022/lib/print/shared/index.mjs +1 -1
- package/esm2022/lib/print/shared/print.interface.mjs +1 -1
- package/esm2022/lib/print/shared/print.service.mjs +10 -10
- package/esm2022/lib/print/shared/print.type.mjs +1 -1
- package/esm2022/lib/query/index.mjs +1 -1
- package/esm2022/lib/query/query.module.mjs +7 -8
- package/esm2022/lib/query/shared/index.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.mjs +6 -6
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2022/lib/query/shared/query.directive.mjs +8 -7
- package/esm2022/lib/query/shared/query.enums.mjs +1 -1
- package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2022/lib/query/shared/query.service.mjs +7 -9
- package/esm2022/lib/query/shared/query.utils.mjs +1 -1
- package/esm2022/lib/search/index.mjs +14 -5
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +36 -16
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +8 -61
- package/esm2022/lib/search/search-results/index.mjs +10 -0
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +42 -17
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +28 -14
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +22 -12
- package/esm2022/lib/search/search-results/search-results.component.mjs +24 -12
- package/esm2022/lib/search/search-results/search-results.module.mjs +8 -91
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +27 -12
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +8 -44
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +37 -14
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +7 -47
- package/esm2022/lib/search/search.module.mjs +10 -13
- package/esm2022/lib/search/shared/index.mjs +1 -1
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +8 -7
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +1 -1
- package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.enums.mjs +1 -1
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +5 -5
- package/esm2022/lib/search/shared/search.utils.mjs +1 -1
- package/esm2022/lib/search/shared/sources/cadastre.mjs +8 -7
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.mjs +10 -10
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.mjs +16 -16
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.mjs +10 -10
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/index.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.mjs +7 -7
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +11 -11
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.mjs +7 -8
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
- package/esm2022/lib/style/index.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/index.mjs +1 -1
- package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
- package/esm2022/lib/style/shared/feature/index.mjs +1 -1
- package/esm2022/lib/style/shared/font.enum.mjs +1 -1
- package/esm2022/lib/style/shared/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/index.mjs +1 -1
- package/esm2022/lib/style/style-list/index.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.interface.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.module.mjs +5 -5
- package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.service.mjs +5 -5
- package/esm2022/lib/style/style-modal/drawing/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +40 -17
- package/esm2022/lib/style/style-modal/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +28 -14
- package/esm2022/lib/style/style-modal/layer-button/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +13 -9
- package/esm2022/lib/style/style-modal/shared/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
- package/esm2022/lib/style/style-service/draw-style.service.mjs +5 -5
- package/esm2022/lib/style/style-service/index.mjs +1 -1
- package/esm2022/lib/style/style-service/style.service.mjs +4 -4
- package/esm2022/lib/style/style.module.mjs +12 -57
- package/esm2022/lib/toast/index.mjs +1 -1
- package/esm2022/lib/toast/toast.component.mjs +19 -11
- package/esm2022/lib/toast/toast.module.mjs +10 -30
- package/esm2022/lib/utils/googleLinks.mjs +1 -1
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/index.mjs +1 -1
- package/esm2022/lib/utils/osmLinks.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +5 -5
- package/esm2022/lib/wkt/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/wkt.service.mjs +19 -19
- package/esm2022/lib/wkt/wkt.module.mjs +8 -5
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +9 -8
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +8 -24
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2022/lib/workspace/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
- package/esm2022/lib/workspace/widgets/index.mjs +1 -1
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +7 -7
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +8 -13
- package/esm2022/lib/workspace/widgets/widgets.mjs +1 -1
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +7 -6
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +8 -10
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +7 -6
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +8 -10
- package/esm2022/lib/workspace/workspace.module.mjs +10 -35
- package/esm2022/public_api.mjs +11 -12
- package/fesm2022/igo2-geo.mjs +31812 -31914
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +2 -14
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.module.d.ts +3 -18
- package/lib/catalog/catalog-library/index.d.ts +5 -0
- package/lib/catalog/catalog.module.d.ts +6 -9
- package/lib/catalog/index.d.ts +2 -0
- package/lib/datasource/shared/capabilities.interface.d.ts +16 -0
- package/lib/datasource/shared/datasource.service.d.ts +2 -4
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +1 -1
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
- package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
- package/lib/directions/directions.component.d.ts +1 -1
- package/lib/directions/directions.module.d.ts +9 -20
- package/lib/download/download-button/download-button.component.d.ts +1 -1
- package/lib/download/download.module.d.ts +4 -6
- package/lib/draw/draw/draw-layer-popup.component.d.ts +1 -1
- package/lib/draw/draw/draw-popup.component.d.ts +4 -4
- package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
- package/lib/draw/draw/draw.component.d.ts +1 -1
- package/lib/draw/draw/draw.module.d.ts +2 -25
- package/lib/draw/drawingTool.module.d.ts +3 -0
- package/lib/feature/feature-details/feature-details.component.d.ts +4 -2
- package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.module.d.ts +2 -6
- package/lib/feature/feature-details/index.d.ts +5 -0
- package/lib/feature/feature-form/feature-form.component.d.ts +2 -2
- package/lib/feature/feature-form/feature-form.module.d.ts +2 -4
- package/lib/feature/feature.module.d.ts +6 -4
- package/lib/feature/index.d.ts +3 -1
- package/lib/filter/filter.module.d.ts +4 -28
- package/lib/filter/index.d.ts +16 -0
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +3 -3
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +3 -3
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +3 -3
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +2 -2
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +3 -3
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +3 -3
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +3 -3
- package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +4 -4
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +1 -1
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +3 -3
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
- package/lib/geo.module.d.ts +14 -24
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +2 -10
- package/lib/geometry/geometry-form-field/index.d.ts +5 -0
- package/lib/geometry/geometry.module.d.ts +5 -3
- package/lib/geometry/index.d.ts +1 -2
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +1 -1
- package/lib/import-export/import-export.module.d.ts +4 -15
- package/lib/import-export/index.d.ts +4 -0
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +1 -1
- package/lib/layer/index.d.ts +8 -0
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
- package/lib/layer/layer.module.d.ts +4 -18
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
- package/lib/map/index.d.ts +14 -0
- package/lib/map/info-section/info-section.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +1 -1
- package/lib/map/map-center/map-center.component.d.ts +1 -1
- package/lib/map/map.module.d.ts +4 -7
- package/lib/map/menu-button/menu-button.component.d.ts +1 -1
- package/lib/map/offline-button/offline-button.component.d.ts +2 -2
- package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
- package/lib/map/shared/hover-feature.directive.d.ts +1 -1
- package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
- package/lib/map/shared/mapOffline.directive.d.ts +1 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
- package/lib/measure/index.d.ts +1 -2
- package/lib/measure/measure.module.d.ts +3 -0
- package/lib/measure/measurer/index.d.ts +5 -0
- package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
- package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
- package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
- package/lib/measure/measurer/measurer.component.d.ts +2 -3
- package/lib/measure/measurer/measurer.module.d.ts +3 -18
- package/lib/metadata/index.d.ts +2 -0
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
- package/lib/metadata/metadata.module.d.ts +4 -7
- package/lib/overlay/overlay.module.d.ts +4 -1
- package/lib/overlay/shared/overlay.d.ts +1 -1
- package/lib/overlay/shared/overlay.directive.d.ts +1 -1
- package/lib/print/print/print.component.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +1 -1
- package/lib/print/print.module.d.ts +4 -12
- package/lib/query/query.module.d.ts +4 -4
- package/lib/query/shared/query.directive.d.ts +1 -1
- package/lib/query/shared/query.service.d.ts +2 -3
- package/lib/search/index.d.ts +6 -4
- package/lib/search/search-bar/search-bar.component.d.ts +1 -1
- package/lib/search/search-bar/search-bar.module.d.ts +2 -16
- package/lib/search/search-results/index.d.ts +6 -0
- package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/search-results/search-results-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +1 -1
- package/lib/search/search-results/search-results.module.d.ts +3 -21
- package/lib/search/search-selector/search-selector.component.d.ts +1 -1
- package/lib/search/search-selector/search-selector.module.d.ts +2 -11
- package/lib/search/search-settings/search-settings.component.d.ts +1 -1
- package/lib/search/search-settings/search-settings.module.d.ts +2 -12
- package/lib/search/search.module.d.ts +6 -7
- package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.providers.d.ts +1 -1
- package/lib/search/shared/sources/coordinates.providers.d.ts +1 -1
- package/lib/search/shared/sources/icherche.providers.d.ts +2 -2
- package/lib/search/shared/sources/ilayer.providers.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.providers.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.providers.d.ts +2 -2
- package/lib/search/shared/sources/workspace.providers.d.ts +1 -1
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +1 -1
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +1 -1
- package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +1 -1
- package/lib/style/style.module.d.ts +5 -16
- package/lib/toast/toast.component.d.ts +1 -1
- package/lib/toast/toast.module.d.ts +4 -6
- package/lib/wkt/wkt.module.d.ts +3 -0
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +2 -6
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
- package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +2 -6
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +2 -3
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
- package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +2 -3
- package/lib/workspace/workspace.module.d.ts +5 -9
- package/locale/en.geo.json +3 -3
- package/locale/fr.geo.json +3 -3
- package/package.json +15 -13
- package/public_api.d.ts +10 -11
- package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -22
- package/src/lib/catalog/catalog.theming.scss +5 -5
- package/src/lib/directions/directions-results/directions-results.theming.scss +10 -10
- package/src/lib/directions/directions.theming.scss +6 -6
- package/src/lib/draw/draw.theming.scss +32 -32
- package/src/lib/feature/feature-details/feature-details.theming.scss +16 -16
- package/src/lib/feature/feature.theming.scss +4 -4
- package/src/lib/measure/measure.theming.scss +5 -5
- package/src/lib/measure/measurer/measurer.theming.scss +26 -26
- package/src/lib/search/search-results/search-results-item.theme.scss +20 -20
- package/src/lib/search/search.theming.scss +7 -7
- package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
- package/src/lib/workspace/workspace.theming.scss +6 -6
- package/esm2022/lib/datasource/datasource.module.mjs +0 -22
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +0 -40
- package/lib/datasource/datasource.module.d.ts +0 -8
- package/lib/search/search-bar/search-url-param.directive.d.ts +0 -13
|
@@ -6,4 +6,10 @@ export var TypeCapabilities;
|
|
|
6
6
|
TypeCapabilities["imagearcgisrest"] = "esriJSON";
|
|
7
7
|
TypeCapabilities["tilearcgisrest"] = "esriJSON";
|
|
8
8
|
})(TypeCapabilities || (TypeCapabilities = {}));
|
|
9
|
-
|
|
9
|
+
export var ArcGISRestCapabilitiesLayerTypes;
|
|
10
|
+
(function (ArcGISRestCapabilitiesLayerTypes) {
|
|
11
|
+
ArcGISRestCapabilitiesLayerTypes["FeatureLayer"] = "Feature Layer";
|
|
12
|
+
ArcGISRestCapabilitiesLayerTypes["RasterLayer"] = "Raster Layer";
|
|
13
|
+
ArcGISRestCapabilitiesLayerTypes["GroupLayer"] = "Group Layer";
|
|
14
|
+
})(ArcGISRestCapabilitiesLayerTypes || (ArcGISRestCapabilitiesLayerTypes = {}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2NhcGFiaWxpdGllcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZ0JBTVg7QUFORCxXQUFZLGdCQUFnQjtJQUMxQiwrQkFBVyxDQUFBO0lBQ1gsaUNBQWEsQ0FBQTtJQUNiLDJDQUF1QixDQUFBO0lBQ3ZCLGdEQUE0QixDQUFBO0lBQzVCLCtDQUEyQixDQUFBO0FBQzdCLENBQUMsRUFOVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBTTNCO0FBZ0JELE1BQU0sQ0FBTixJQUFZLGdDQUlYO0FBSkQsV0FBWSxnQ0FBZ0M7SUFDMUMsa0VBQThCLENBQUE7SUFDOUIsZ0VBQTRCLENBQUE7SUFDNUIsOERBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUpXLGdDQUFnQyxLQUFoQyxnQ0FBZ0MsUUFJM0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBUeXBlQ2FwYWJpbGl0aWVzIHtcclxuICB3bXMgPSAnd21zJyxcclxuICB3bXRzID0gJ3dtdHMnLFxyXG4gIGFyY2dpc3Jlc3QgPSAnZXNyaUpTT04nLFxyXG4gIGltYWdlYXJjZ2lzcmVzdCA9ICdlc3JpSlNPTicsXHJcbiAgdGlsZWFyY2dpc3Jlc3QgPSAnZXNyaUpTT04nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFR5cGVDYXBhYmlsaXRpZXNTdHJpbmdzID0ga2V5b2YgdHlwZW9mIFR5cGVDYXBhYmlsaXRpZXM7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFyY0dJU1Jlc3RDYXBhYmlsaXRpZXNMYXllciB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcGFyZW50TGF5ZXJJZDogbnVtYmVyO1xyXG4gIGRlZmF1bHRWaXNpYmlsaXR5PzogYm9vbGVhbjtcclxuICBzdWJMYXllcklkczogbnVtYmVyW107XHJcbiAgbWluU2NhbGU6IG51bWJlcjtcclxuICBtYXhTY2FsZTogbnVtYmVyO1xyXG4gIHR5cGU6IEFyY0dJU1Jlc3RDYXBhYmlsaXRpZXNMYXllclR5cGVzO1xyXG4gIGdlb21ldHJ5VHlwZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQXJjR0lTUmVzdENhcGFiaWxpdGllc0xheWVyVHlwZXMge1xyXG4gIEZlYXR1cmVMYXllciA9ICdGZWF0dXJlIExheWVyJyxcclxuICBSYXN0ZXJMYXllciA9ICdSYXN0ZXIgTGF5ZXInLFxyXG4gIEdyb3VwTGF5ZXIgPSAnR3JvdXAgTGF5ZXInXHJcbn1cclxuIl19
|
|
@@ -397,8 +397,8 @@ export class CapabilitiesService {
|
|
|
397
397
|
};
|
|
398
398
|
return legendOptions;
|
|
399
399
|
}
|
|
400
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
401
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
400
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CapabilitiesService, deps: [{ token: i1.HttpClient }, { token: i2.MapService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
401
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CapabilitiesService, providedIn: 'root' });
|
|
402
402
|
}
|
|
403
403
|
__decorate([
|
|
404
404
|
Cacheable({
|
|
@@ -432,10 +432,10 @@ __decorate([
|
|
|
432
432
|
__metadata("design:paramtypes", [String, String, String]),
|
|
433
433
|
__metadata("design:returntype", Observable)
|
|
434
434
|
], CapabilitiesService.prototype, "getCapabilities", null);
|
|
435
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CapabilitiesService, decorators: [{
|
|
436
436
|
type: Injectable,
|
|
437
437
|
args: [{
|
|
438
438
|
providedIn: 'root'
|
|
439
439
|
}]
|
|
440
|
-
}], ctorParameters:
|
|
441
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZixNQUFNLHNDQUFzQyxDQUFDO0FBSzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hGLE9BQU8s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QUFDLElBQUksQ0FBQztZQUM3RCxLQUFLLENBQ1IsQ0FBQztRQUVKLE1BQU0sYUFBYSxHQUFrQjtZQUNuQyxlQUFlLEVBQUUsWUFBWTtTQUNiLENBQUM7UUFFbkIsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzt3R0FsaEJVLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07O0FBbUVsQjtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7OztvQ0FHQyxVQUFVOzJEQVlaO0FBS0Q7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDOzs7b0NBS0MsVUFBVTtnRUEyQlo7QUFLRDtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7OztvQ0FHQyxVQUFVOytEQXNCWjtBQUtEO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUtDLFVBQVU7MERBNkNaOzRGQXRNVSxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzBIQWtFQyxnQkFBZ0IsTUFtQmhCLHFCQUFxQixNQW9DckIsb0JBQW9CLE1BNkJwQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCBvbEF0dHJpYnV0aW9uIGZyb20gJ29sL2NvbnRyb2wvQXR0cmlidXRpb24nO1xuaW1wb3J0IHsgRXNyaUpTT04sIFdNU0NhcGFiaWxpdGllcywgV01UU0NhcGFiaWxpdGllcyB9IGZyb20gJ29sL2Zvcm1hdCc7XG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgeyBvcHRpb25zRnJvbUNhcGFiaWxpdGllcyB9IGZyb20gJ29sL3NvdXJjZS9XTVRTLmpzJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDYWNoZWFibGUgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xuXG5pbXBvcnQge1xuICBUaW1lRmlsdGVyU3R5bGUsXG4gIFRpbWVGaWx0ZXJUeXBlXG59IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQvdGltZS1maWx0ZXIuZW51bSc7XG5pbXBvcnQge1xuICBJdGVtU3R5bGVPcHRpb25zLFxuICBMZWdlbmRPcHRpb25zXG59IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGVnZW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xuaW1wb3J0IHtcbiAgUXVlcnlGb3JtYXQsXG4gIFF1ZXJ5Rm9ybWF0TWltZVR5cGVcbn0gZnJvbSAnLi4vLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LmVudW1zJztcbmltcG9ydCB7IEVzcmlTdHlsZUdlbmVyYXRvciB9IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC9kYXRhc291cmNlL2Vzcmktc3R5bGUtZ2VuZXJhdG9yJztcbmltcG9ydCB7XG4gIFR5cGVDYXBhYmlsaXRpZXMsXG4gIFR5cGVDYXBhYmlsaXRpZXNTdHJpbmdzXG59IGZyb20gJy4vY2FwYWJpbGl0aWVzLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxuICBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zLFxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICBXTVNEYXRhU291cmNlT3B0aW9ucyxcbiAgV01UU0RhdGFTb3VyY2VPcHRpb25zXG59IGZyb20gJy4vZGF0YXNvdXJjZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDYXBhYmlsaXRpZXNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwYXJzZXJzID0ge1xuICAgIHdtczogbmV3IFdNU0NhcGFiaWxpdGllcygpLFxuICAgIHdtdHM6IG5ldyBXTVRTQ2FwYWJpbGl0aWVzKCksXG4gICAgZXNyaUpTT046IG5ldyBFc3JpSlNPTigpXG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbWFwU2VydmljZTogTWFwU2VydmljZVxuICApIHt9XG5cbiAgZ2V0V01TT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxXTVNEYXRhU291cmNlT3B0aW9ucz4ge1xuICAgIGNvbnN0IHVybCA9IGJhc2VPcHRpb25zLnVybDtcbiAgICBjb25zdCB2ZXJzaW9uID0gKGJhc2VPcHRpb25zLnBhcmFtcyBhcyBhbnkpLlZFUlNJT047XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDYXBhYmlsaXRpZXMoJ3dtcycsIHVybCwgdmVyc2lvbikucGlwZShcbiAgICAgIG1hcCgoY2FwYWJpbGl0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllc1xuICAgICAgICAgID8gdGhpcy5wYXJzZVdNU09wdGlvbnMoYmFzZU9wdGlvbnMsIGNhcGFiaWxpdGllcylcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldFdNVFNPcHRpb25zKFxuICAgIGJhc2VPcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxXTVRTRGF0YVNvdXJjZU9wdGlvbnM+IHtcbiAgICBjb25zdCB1cmwgPSBiYXNlT3B0aW9ucy51cmw7XG4gICAgY29uc3QgdmVyc2lvbiA9IGJhc2VPcHRpb25zLnZlcnNpb247XG5cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoJ3dtdHMnLCB1cmwsIHZlcnNpb24pLnBpcGUoXG4gICAgICBtYXAoKGNhcGFiaWxpdGllczogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiBjYXBhYmlsaXRpZXNcbiAgICAgICAgICA/IHRoaXMucGFyc2VXTVRTT3B0aW9ucyhiYXNlT3B0aW9ucywgY2FwYWJpbGl0aWVzKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgZ2V0Q2FydG9PcHRpb25zKFxuICAgIGJhc2VPcHRpb25zOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8Q2FydG9EYXRhU291cmNlT3B0aW9ucz4ge1xuICAgIGNvbnN0IGJhc2VVcmwgPVxuICAgICAgJ2h0dHBzOi8vJyArXG4gICAgICBiYXNlT3B0aW9ucy5hY2NvdW50ICtcbiAgICAgICcuY2FydG8uY29tL2FwaS92Mi92aXovJyArXG4gICAgICBiYXNlT3B0aW9ucy5tYXBJZCArXG4gICAgICAnL3Zpei5qc29uJztcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5qc29ucChiYXNlVXJsLCAnY2FsbGJhY2snKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY2FydG9PcHRpb25zOiBhbnkpID0+XG4gICAgICAgICAgdGhpcy5wYXJzZUNhcnRvT3B0aW9ucyhiYXNlT3B0aW9ucywgY2FydG9PcHRpb25zKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgQENhY2hlYWJsZSh7XG4gICAgbWF4Q2FjaGVDb3VudDogMjBcbiAgfSlcbiAgZ2V0QXJjZ2lzT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8QXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2VPcHRpb25zLnVybCArICcvJyArIGJhc2VPcHRpb25zLmxheWVyICsgJz9mPWpzb24nO1xuICAgIGNvbnN0IHNlcnZpY2VDYXBhYmlsaXRpZXMgPSB0aGlzLmdldENhcGFiaWxpdGllcyhcbiAgICAgICdhcmNnaXNyZXN0JyxcbiAgICAgIGJhc2VPcHRpb25zLnVybFxuICAgICk7XG4gICAgY29uc3QgYXJjZ2lzT3B0aW9ucyA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCk7XG4gICAgcmV0dXJuIGZvcmtKb2luKFthcmNnaXNPcHRpb25zLCBzZXJ2aWNlQ2FwYWJpbGl0aWVzXSkucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VBcmNnaXNPcHRpb25zKGJhc2VPcHRpb25zLCByZXNbMF0sIHJlc1sxXSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBAQ2FjaGVhYmxlKHtcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxuICB9KVxuICBnZXRJbWFnZUFyY2dpc09wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6XG4gICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXG4gICAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxcbiAgICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbiAgPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2VPcHRpb25zLnVybCArICcvJyArIGJhc2VPcHRpb25zLmxheWVyICsgJz9mPWpzb24nO1xuICAgIGNvbnN0IGxlZ2VuZFVybCA9IGJhc2VPcHRpb25zLnVybCArICcvbGVnZW5kP2Y9anNvbic7XG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKFxuICAgICAgJ2ltYWdlYXJjZ2lzcmVzdCcsXG4gICAgICBiYXNlT3B0aW9ucy51cmxcbiAgICApO1xuICAgIGNvbnN0IGFyY2dpc09wdGlvbnMgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwpO1xuICAgIGNvbnN0IGxlZ2VuZCA9IHRoaXMuaHR0cC5nZXQobGVnZW5kVXJsKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnTm8gbGVnZW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEltYWdlIFNlcnZpY2UnKTtcbiAgICAgICAgcmV0dXJuIG9mKGVycik7XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIGZvcmtKb2luKFthcmNnaXNPcHRpb25zLCBsZWdlbmQsIHNlcnZpY2VDYXBhYmlsaXRpZXNdKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVRpbGVPckltYWdlQXJjZ2lzT3B0aW9ucyhcbiAgICAgICAgICBiYXNlT3B0aW9ucyxcbiAgICAgICAgICByZXNbMF0sXG4gICAgICAgICAgcmVzWzFdLFxuICAgICAgICAgIHJlc1syXVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgQENhY2hlYWJsZSh7XG4gICAgbWF4Q2FjaGVDb3VudDogMjBcbiAgfSlcbiAgZ2V0VGlsZUFyY2dpc09wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxcbiAgICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbiAgPiB7XG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2VPcHRpb25zLnVybCArICcvJyArIGJhc2VPcHRpb25zLmxheWVyICsgJz9mPWpzb24nO1xuICAgIGNvbnN0IGxlZ2VuZFVybCA9IGJhc2VPcHRpb25zLnVybCArICcvbGVnZW5kP2Y9anNvbic7XG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKFxuICAgICAgJ3RpbGVhcmNnaXNyZXN0JyxcbiAgICAgIGJhc2VPcHRpb25zLnVybFxuICAgICk7XG4gICAgY29uc3QgYXJjZ2lzT3B0aW9ucyA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCk7XG4gICAgY29uc3QgbGVnZW5kSW5mbyA9IHRoaXMuaHR0cC5nZXQobGVnZW5kVXJsKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnTm8gbGVnZW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFRpbGUgU2VydmljZScpO1xuICAgICAgICByZXR1cm4gb2YoZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIGxlZ2VuZEluZm8sIHNlcnZpY2VDYXBhYmlsaXRpZXNdKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT5cbiAgICAgICAgdGhpcy5wYXJzZVRpbGVPckltYWdlQXJjZ2lzT3B0aW9ucyhiYXNlT3B0aW9ucywgcmVzWzBdLCByZXNbMV0sIHJlc1syXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgQENhY2hlYWJsZSh7XG4gICAgbWF4Q2FjaGVDb3VudDogMjBcbiAgfSlcbiAgZ2V0Q2FwYWJpbGl0aWVzKFxuICAgIHNlcnZpY2U6IFR5cGVDYXBhYmlsaXRpZXNTdHJpbmdzLFxuICAgIGJhc2VVcmw6IHN0cmluZyxcbiAgICB2ZXJzaW9uPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgZnJvbU9iamVjdDoge1xuICAgICAgICByZXF1ZXN0OiAnR2V0Q2FwYWJpbGl0aWVzJyxcbiAgICAgICAgc2VydmljZTogc2VydmljZS50b1VwcGVyQ2FzZSgpLFxuICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uIHx8ICcxLjMuMCcsXG4gICAgICAgIF9pOiAndHJ1ZSdcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCByZXF1ZXN0O1xuICAgIGlmIChUeXBlQ2FwYWJpbGl0aWVzW3NlcnZpY2VdID09PSAnZXNyaUpTT04nKSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5odHRwLmdldChiYXNlVXJsICsgJz9mPWpzb24nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCwge1xuICAgICAgICBwYXJhbXMsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxuICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgaWYgKFR5cGVDYXBhYmlsaXRpZXNbc2VydmljZV0gPT09ICdlc3JpSlNPTicpIHtcbiAgICAgICAgICByZXR1cm4gcmVzIGFzIG9iamVjdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgU3RyaW5nKHJlcykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnc2VydmljZWV4Y2VwdGlvbicpICYmXG4gICAgICAgICAgU3RyaW5nKHJlcykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYWNjZXNzIGRlbmllZCcpXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IHtcbiAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdTZXJ2aWNlIGVycm9yIGdldENhcGFiaWxpdGllczogQWNjZXNzIGlzIGRlbmllZCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlcnNbc2VydmljZV0ucmVhZChyZXMpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBlLmVycm9yICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGUuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVdNU09wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxuICAgIGNhcGFiaWxpdGllczogYW55XG4gICk6IFdNU0RhdGFTb3VyY2VPcHRpb25zIHtcbiAgICBjb25zdCBsYXllcnMgPSAoYmFzZU9wdGlvbnMucGFyYW1zIGFzIGFueSkuTEFZRVJTO1xuICAgIGNvbnN0IGxheWVyID0gdGhpcy5maW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKFxuICAgICAgY2FwYWJpbGl0aWVzLkNhcGFiaWxpdHkuTGF5ZXIsXG4gICAgICBsYXllcnNcbiAgICApO1xuXG4gICAgaWYgKCFsYXllcikge1xuICAgICAgdGhyb3cge1xuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIG1lc3NhZ2U6ICdMYXllciBub3QgZm91bmQnXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IG1ldGFkYXRhID0gbGF5ZXIuRGF0YVVSTCA/IGxheWVyLkRhdGFVUkxbMF0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgYWJzdHJhY3QgPSBsYXllci5BYnN0cmFjdCA/IGxheWVyLkFic3RyYWN0IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGtleXdvcmRMaXN0ID0gbGF5ZXIuS2V5d29yZExpc3QgPyBsYXllci5LZXl3b3JkTGlzdCA6IHVuZGVmaW5lZDtcbiAgICBsZXQgcXVlcnlhYmxlID0gbGF5ZXIucXVlcnlhYmxlO1xuICAgIGNvbnN0IHRpbWVGaWx0ZXIgPSB0aGlzLmdldFRpbWVGaWx0ZXIobGF5ZXIpO1xuICAgIGNvbnN0IHRpbWVGaWx0ZXJhYmxlID0gdGltZUZpbHRlciAmJiBPYmplY3Qua2V5cyh0aW1lRmlsdGVyKS5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxlZ2VuZE9wdGlvbnMgPSBsYXllci5TdHlsZSA/IHRoaXMuZ2V0U3R5bGUobGF5ZXIuU3R5bGUpIDogdW5kZWZpbmVkO1xuICAgIGxldCBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IHRydWU7XG4gICAgaWYgKGxheWVyLkVYX0dlb2dyYXBoaWNCb3VuZGluZ0JveCkge1xuICAgICAgbGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94LmZvckVhY2goKGNvb3JkLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoaW5kZXggPCAyICYmIChjb29yZCA+IDE4MCB8fCBjb29yZCA8IC0xODApKSB7XG4gICAgICAgICAgaXNFeHRlbnRJbkdlb2dyYXBoaWMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggPj0gMiAmJiAoY29vcmQgPiA5MCB8fCBjb29yZCA8IC05MCkpIHtcbiAgICAgICAgICBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXNFeHRlbnRJbkdlb2dyYXBoaWMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBleHRlbnQgPSBpc0V4dGVudEluR2VvZ3JhcGhpY1xuICAgICAgPyBvbHByb2oudHJhbnNmb3JtRXh0ZW50KFxuICAgICAgICAgIGxheWVyLkVYX0dlb2dyYXBoaWNCb3VuZGluZ0JveCxcbiAgICAgICAgICAnRVBTRzo0MzI2JyxcbiAgICAgICAgICB0aGlzLm1hcFNlcnZpY2UuZ2V0TWFwKCkucHJvamVjdGlvblxuICAgICAgICApXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGxldCBxdWVyeUZvcm1hdDogUXVlcnlGb3JtYXQ7XG4gICAgY29uc3QgcXVlcnlGb3JtYXRNaW1lVHlwZVByaW9yaXR5ID0gW1xuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HRU9KU09OLFxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HRU9KU09OMixcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR01MMyxcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR01MMixcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuSlNPTixcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuSFRNTFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IG1pbWVUeXBlIG9mIHF1ZXJ5Rm9ybWF0TWltZVR5cGVQcmlvcml0eSkge1xuICAgICAgaWYgKFxuICAgICAgICBjYXBhYmlsaXRpZXMuQ2FwYWJpbGl0eS5SZXF1ZXN0LkdldEZlYXR1cmVJbmZvLkZvcm1hdC5pbmRleE9mKFxuICAgICAgICAgIG1pbWVUeXBlXG4gICAgICAgICkgIT09IC0xXG4gICAgICApIHtcbiAgICAgICAgY29uc3Qga2V5RW51bSA9IE9iamVjdC5rZXlzKFF1ZXJ5Rm9ybWF0TWltZVR5cGUpLmZpbmQoXG4gICAgICAgICAgKGtleSkgPT4gUXVlcnlGb3JtYXRNaW1lVHlwZVtrZXldID09PSBtaW1lVHlwZVxuICAgICAgICApO1xuICAgICAgICBxdWVyeUZvcm1hdCA9IFF1ZXJ5Rm9ybWF0W2tleUVudW1dO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFxdWVyeUZvcm1hdCkge1xuICAgICAgcXVlcnlhYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcbiAgICAgICAgdGl0bGU6IGxheWVyLlRpdGxlLFxuICAgICAgICBtYXhSZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGxheWVyLk1heFNjYWxlRGVub21pbmF0b3IpLFxuICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGxheWVyLk1pblNjYWxlRGVub21pbmF0b3IpLFxuICAgICAgICBleHRlbnQsXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgdXJsOiBtZXRhZGF0YSA/IG1ldGFkYXRhLk9ubGluZVJlc291cmNlIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGV4dGVybjogbWV0YWRhdGEgPyB0cnVlIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGFic3RyYWN0LFxuICAgICAgICAgIGtleXdvcmRMaXN0XG4gICAgICAgIH0sXG4gICAgICAgIGxlZ2VuZE9wdGlvbnNcbiAgICAgIH0sXG4gICAgICBxdWVyeWFibGUsXG4gICAgICBxdWVyeUZvcm1hdCxcbiAgICAgIHRpbWVGaWx0ZXI6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlciA6IHVuZGVmaW5lZCxcbiAgICAgIHRpbWVGaWx0ZXJhYmxlOiB0aW1lRmlsdGVyYWJsZSA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICBtaW5EYXRlOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIubWluIDogdW5kZWZpbmVkLFxuICAgICAgbWF4RGF0ZTogdGltZUZpbHRlcmFibGUgPyB0aW1lRmlsdGVyLm1heCA6IHVuZGVmaW5lZCxcbiAgICAgIHN0ZXBEYXRlOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIuc3RlcCA6IHVuZGVmaW5lZFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlV01UU09wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucyxcbiAgICBjYXBhYmlsaXRpZXM6IGFueVxuICApOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnMge1xuICAgIC8vIFB1dCBUaXRsZSBzb3VyY2UgaW4gX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UuIChGb3Igc291cmNlICYgY2F0YWxvZyBpbiBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZSwgaWYgbm90IGFscmVhZHkgb24gY29uZmlnKVxuICAgIGNvbnN0IGxheWVyID0gY2FwYWJpbGl0aWVzLkNvbnRlbnRzLkxheWVyLmZpbmQoXG4gICAgICAoZWwpID0+IGVsLklkZW50aWZpZXIgPT09IGJhc2VPcHRpb25zLmxheWVyXG4gICAgKTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBvcHRpb25zRnJvbUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMsIGJhc2VPcHRpb25zKTtcblxuICAgIGNvbnN0IG91cHV0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcbiAgICAgICAgdGl0bGU6IGxheWVyLlRpdGxlXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKHNvdXJjZU9wdGlvbnMsIG91cHV0T3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ2FydG9PcHRpb25zKFxuICAgIGJhc2VPcHRpb25zOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zLFxuICAgIGNhcnRvT3B0aW9uczogYW55XG4gICk6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMge1xuICAgIGNvbnN0IGxheWVycyA9IFtdO1xuICAgIGNvbnN0IHBhcmFtcyA9IGNhcnRvT3B0aW9ucy5sYXllcnNbMV0ub3B0aW9ucy5sYXllcl9kZWZpbml0aW9uO1xuICAgIHBhcmFtcy5sYXllcnMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgbGF5ZXJzLnB1c2goe1xuICAgICAgICB0eXBlOiBlbGVtZW50LnR5cGUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgb3B0aW9uczogZWxlbWVudC5vcHRpb25zLFxuICAgICAgICBsZWdlbmQ6IGVsZW1lbnQubGVnZW5kXG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICB2ZXJzaW9uOiBwYXJhbXMudmVyc2lvbixcbiAgICAgICAgbGF5ZXJzXG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQXJjZ2lzT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICAgIGFyY2dpc09wdGlvbnM6IGFueSxcbiAgICBzZXJ2aWNlQ2FwYWJpbGl0aWVzOiBhbnlcbiAgKTogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHtcbiAgICBjb25zdCB0aXRsZSA9IGFyY2dpc09wdGlvbnMubmFtZTtcbiAgICBsZXQgbGVnZW5kSW5mbzogYW55O1xuXG4gICAgaWYgKGFyY2dpc09wdGlvbnMuZHJhd2luZ0luZm8/LnJlbmRlcmVyKSB7XG4gICAgICBsZWdlbmRJbmZvID0gYXJjZ2lzT3B0aW9ucy5kcmF3aW5nSW5mby5yZW5kZXJlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgbGVnZW5kSW5mbyA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBsZXQgc3R5bGU7XG4gICAgaWYgKGFyY2dpc09wdGlvbnMuZHJhd2luZ0luZm8pIHtcbiAgICAgIGNvbnN0IHN0eWxlR2VuZXJhdG9yID0gbmV3IEVzcmlTdHlsZUdlbmVyYXRvcigpO1xuICAgICAgY29uc3QgdW5pdHMgPSBhcmNnaXNPcHRpb25zLnVuaXRzID09PSAnZXNyaU1ldGVycycgPyAnbScgOiAnZGVncmVlcyc7XG4gICAgICBzdHlsZSA9IHN0eWxlR2VuZXJhdG9yLmdlbmVyYXRlU3R5bGUoYXJjZ2lzT3B0aW9ucywgdW5pdHMpO1xuICAgIH1cbiAgICBjb25zdCBhdHRyaWJ1dGlvbnMgPSBuZXcgb2xBdHRyaWJ1dGlvbih7XG4gICAgICB0YXJnZXQ6IGFyY2dpc09wdGlvbnMuY29weXJpZ2h0VGV4dFxuICAgIH0pO1xuICAgIGxldCB0aW1lRXh0ZW50O1xuICAgIGxldCB0aW1lRmlsdGVyO1xuICAgIGlmIChhcmNnaXNPcHRpb25zLnRpbWVJbmZvKSB7XG4gICAgICBjb25zdCB0aW1lID0gYXJjZ2lzT3B0aW9ucy50aW1lSW5mby50aW1lRXh0ZW50O1xuICAgICAgdGltZUV4dGVudCA9IHRpbWVbMF0gKyAnLCcgKyB0aW1lWzFdO1xuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUoKTtcbiAgICAgIG1pbi5zZXRUaW1lKHRpbWVbMF0pO1xuICAgICAgY29uc3QgbWF4ID0gbmV3IERhdGUoKTtcbiAgICAgIG1heC5zZXRUaW1lKHRpbWVbMV0pO1xuICAgICAgdGltZUZpbHRlciA9IHtcbiAgICAgICAgbWluOiBtaW4udG9VVENTdHJpbmcoKSxcbiAgICAgICAgbWF4OiBtYXgudG9VVENTdHJpbmcoKSxcbiAgICAgICAgcmFuZ2U6IHRydWUsXG4gICAgICAgIHR5cGU6IFRpbWVGaWx0ZXJUeXBlLkRBVEVUSU1FLFxuICAgICAgICBzdHlsZTogVGltZUZpbHRlclN0eWxlLkNBTEVOREFSXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIHN0eWxlLFxuICAgICAgICBMQVlFUlM6IGJhc2VPcHRpb25zLmxheWVyID8gJ3Nob3c6JyArIGJhc2VPcHRpb25zLmxheWVyIDogdW5kZWZpbmVkLFxuICAgICAgICB0aW1lOiB0aW1lRXh0ZW50XG4gICAgICB9XG4gICAgKTtcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgIHBhcmFtcyxcbiAgICAgIF9sYXllck9wdGlvbnNGcm9tU291cmNlOiB7XG4gICAgICAgIHRpdGxlLFxuICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWF4U2NhbGUpLFxuICAgICAgICBtYXhSZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWluU2NhbGUpLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIGV4dGVybjogZmFsc2UsXG4gICAgICAgICAgYWJzdHJhY3Q6XG4gICAgICAgICAgICBhcmNnaXNPcHRpb25zLmRlc2NyaXB0aW9uIHx8IHNlcnZpY2VDYXBhYmlsaXRpZXMuc2VydmljZURlc2NyaXB0aW9uXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsZWdlbmRJbmZvLFxuICAgICAgdGltZUZpbHRlcixcbiAgICAgIHNvdXJjZUZpZWxkczogYXJjZ2lzT3B0aW9ucy5maWVsZHMsXG4gICAgICBxdWVyeVRpdGxlOiBhcmNnaXNPcHRpb25zLmRpc3BsYXlGaWVsZFxuICAgIH0pO1xuICAgIG9wdGlvbnMuYXR0cmlidXRpb25zID0gYXR0cmlidXRpb25zO1xuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVRpbGVPckltYWdlQXJjZ2lzT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczpcbiAgICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICAgICAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcbiAgICBhcmNnaXNPcHRpb25zOiBhbnksXG4gICAgbGVnZW5kOiBhbnksXG4gICAgc2VydmljZUNhcGFiaWxpdGllczogYW55XG4gICk6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB7XG4gICAgY29uc3QgdGl0bGUgPSBhcmNnaXNPcHRpb25zLm5hbWU7XG4gICAgY29uc3QgbGVnZW5kSW5mbyA9IGxlZ2VuZC5sYXllcnNcbiAgICAgID8gbGVnZW5kLmxheWVycy5maW5kKCh4KSA9PiB4LmxheWVyTmFtZSA9PT0gdGl0bGUpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhdHRyaWJ1dGlvbnMgPSBuZXcgb2xBdHRyaWJ1dGlvbih7XG4gICAgICB0YXJnZXQ6IGFyY2dpc09wdGlvbnMuY29weXJpZ2h0VGV4dFxuICAgIH0pO1xuICAgIGxldCB0aW1lRXh0ZW50O1xuICAgIGxldCB0aW1lRmlsdGVyO1xuICAgIGlmIChhcmNnaXNPcHRpb25zLnRpbWVJbmZvKSB7XG4gICAgICBjb25zdCB0aW1lID0gYXJjZ2lzT3B0aW9ucy50aW1lSW5mby50aW1lRXh0ZW50O1xuICAgICAgdGltZUV4dGVudCA9IHRpbWVbMF0gKyAnLCcgKyB0aW1lWzFdO1xuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUoKTtcbiAgICAgIG1pbi5zZXRUaW1lKHRpbWVbMF0pO1xuICAgICAgY29uc3QgbWF4ID0gbmV3IERhdGUoKTtcbiAgICAgIG1heC5zZXRUaW1lKHRpbWVbMV0pO1xuICAgICAgdGltZUZpbHRlciA9IHtcbiAgICAgICAgbWluOiBtaW4udG9VVENTdHJpbmcoKSxcbiAgICAgICAgbWF4OiBtYXgudG9VVENTdHJpbmcoKSxcbiAgICAgICAgcmFuZ2U6IHRydWUsXG4gICAgICAgIHR5cGU6IFRpbWVGaWx0ZXJUeXBlLkRBVEVUSU1FLFxuICAgICAgICBzdHlsZTogVGltZUZpbHRlclN0eWxlLkNBTEVOREFSXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICB7XG4gICAgICAgIExBWUVSUzogYmFzZU9wdGlvbnMubGF5ZXIgPyAnc2hvdzonICsgYmFzZU9wdGlvbnMubGF5ZXIgOiB1bmRlZmluZWQsXG4gICAgICAgIHRpbWU6IHRpbWVFeHRlbnRcbiAgICAgIH1cbiAgICApO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xuICAgICAgcGFyYW1zLFxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5tYXhTY2FsZSksXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5taW5TY2FsZSksXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgZXh0ZXJuOiBmYWxzZSxcbiAgICAgICAgICBhYnN0cmFjdDpcbiAgICAgICAgICAgIGFyY2dpc09wdGlvbnMuZGVzY3JpcHRpb24gfHwgc2VydmljZUNhcGFiaWxpdGllcy5zZXJ2aWNlRGVzY3JpcHRpb25cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxlZ2VuZEluZm8sXG4gICAgICB0aW1lRmlsdGVyLFxuICAgICAgc291cmNlRmllbGRzOiBhcmNnaXNPcHRpb25zLmZpZWxkcyxcbiAgICAgIHF1ZXJ5VGl0bGU6IGFyY2dpc09wdGlvbnMuZGlzcGxheUZpZWxkXG4gICAgfSk7XG4gICAgb3B0aW9ucy5hdHRyaWJ1dGlvbnMgPSBhdHRyaWJ1dGlvbnM7XG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGZpbmREYXRhU291cmNlSW5DYXBhYmlsaXRpZXMobGF5ZXJBcnJheSwgbmFtZSk6IGFueSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobGF5ZXJBcnJheSkpIHtcbiAgICAgIGxldCBsYXllcjtcbiAgICAgIGxheWVyQXJyYXkuZmluZCgodmFsdWUpID0+IHtcbiAgICAgICAgbGF5ZXIgPSB0aGlzLmZpbmREYXRhU291cmNlSW5DYXBhYmlsaXRpZXModmFsdWUsIG5hbWUpO1xuICAgICAgICByZXR1cm4gbGF5ZXIgIT09IHVuZGVmaW5lZDtcbiAgICAgIH0sIHRoaXMpO1xuXG4gICAgICByZXR1cm4gbGF5ZXI7XG4gICAgfSBlbHNlIGlmIChsYXllckFycmF5LkxheWVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKGxheWVyQXJyYXkuTGF5ZXIsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobGF5ZXJBcnJheS5OYW1lICYmIGxheWVyQXJyYXkuTmFtZSA9PT0gbmFtZSkge1xuICAgICAgICByZXR1cm4gbGF5ZXJBcnJheTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGltZUZpbHRlcihsYXllcikge1xuICAgIGxldCBkaW1lbnNpb247XG5cbiAgICBpZiAobGF5ZXIuRGltZW5zaW9uKSB7XG4gICAgICBjb25zdCB0aW1lRmlsdGVyOiBhbnkgPSB7fTtcbiAgICAgIGRpbWVuc2lvbiA9IGxheWVyLkRpbWVuc2lvblswXTtcblxuICAgICAgaWYgKGRpbWVuc2lvbi52YWx1ZXMpIHtcbiAgICAgICAgY29uc3QgbWluTWF4RGltID0gZGltZW5zaW9uLnZhbHVlcy5zcGxpdCgnLycpO1xuICAgICAgICB0aW1lRmlsdGVyLm1pbiA9IG1pbk1heERpbVswXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzBdIDogdW5kZWZpbmVkO1xuICAgICAgICB0aW1lRmlsdGVyLm1heCA9IG1pbk1heERpbVsxXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzFdIDogdW5kZWZpbmVkO1xuICAgICAgICB0aW1lRmlsdGVyLnN0ZXAgPSBtaW5NYXhEaW1bMl0gIT09IHVuZGVmaW5lZCA/IG1pbk1heERpbVsyXSA6IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpbWVuc2lvbi5kZWZhdWx0KSB7XG4gICAgICAgIHRpbWVGaWx0ZXIudmFsdWUgPSBkaW1lbnNpb24uZGVmYXVsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aW1lRmlsdGVyO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0eWxlKFN0eWxlKTogTGVnZW5kT3B0aW9ucyB7XG4gICAgY29uc3Qgc3R5bGVPcHRpb25zOiBJdGVtU3R5bGVPcHRpb25zW10gPSBTdHlsZS5tYXAoKHN0eWxlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBzdHlsZS5OYW1lLFxuICAgICAgICB0aXRsZTogc3R5bGUuVGl0bGVcbiAgICAgIH07XG4gICAgfSlcbiAgICAgIC8vIEhhbmRsZSByZXBlYXQgdGhlIHN0eWxlIFwiZGVmYXVsdFwiIGluIG91dHB1dCAgKE1hcFNlcnZlciBvciBPcGVuTGF5ZXIpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoaXRlbSwgaW5kZXgsIHNlbGYpID0+XG4gICAgICAgICAgc2VsZi5maW5kSW5kZXgoKGk6IEl0ZW1TdHlsZU9wdGlvbnMpID0+IGkubmFtZSA9PT0gaXRlbS5uYW1lKSA9PT1cbiAgICAgICAgICBpbmRleFxuICAgICAgKTtcblxuICAgIGNvbnN0IGxlZ2VuZE9wdGlvbnM6IExlZ2VuZE9wdGlvbnMgPSB7XG4gICAgICBzdHlsZXNBdmFpbGFibGU6IHN0eWxlT3B0aW9uc1xuICAgIH0gYXMgTGVnZW5kT3B0aW9ucztcblxuICAgIHJldHVybiBsZWdlbmRPcHRpb25zO1xuICB9XG59XG4iXX0=
|
|
440
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.MapService }], propDecorators: { getArcgisOptions: [], getImageArcgisOptions: [], getTileArcgisOptions: [], getCapabilities: [] } });
|
|
441
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZixNQUFNLHNDQUFzQyxDQUFDO0FBSzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hGLE9BQU8s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QUFLLEVBQUUsRUFBRTtZQUMzRCxPQUFPO2dCQUNMLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2FBQ25CLENBQUM7UUFDSixDQUFDLENBQUM7WUFDQSx3RUFBd0U7YUFDdkUsTUFBTSxDQUNMLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdELEtBQUssQ0FDUixDQUFDO1FBRUosTUFBTSxhQUFhLEdBQWtCO1lBQ25DLGVBQWUsRUFBRSxZQUFZO1NBQ2IsQ0FBQztRQUVuQixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO3VHQWxoQlUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7QUFtRWxCO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUdDLFVBQVU7MkRBWVo7QUFLRDtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7OztvQ0FLQyxVQUFVO2dFQTJCWjtBQUtEO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUdDLFVBQVU7K0RBc0JaO0FBS0Q7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDOzs7b0NBS0MsVUFBVTswREE2Q1o7MkZBdE1VLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7d0dBa0VDLGdCQUFnQixNQW1CaEIscUJBQXFCLE1Bb0NyQixvQkFBb0IsTUE2QnBCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCBvbEF0dHJpYnV0aW9uIGZyb20gJ29sL2NvbnRyb2wvQXR0cmlidXRpb24nO1xyXG5pbXBvcnQgeyBFc3JpSlNPTiwgV01TQ2FwYWJpbGl0aWVzLCBXTVRTQ2FwYWJpbGl0aWVzIH0gZnJvbSAnb2wvZm9ybWF0JztcclxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgeyBvcHRpb25zRnJvbUNhcGFiaWxpdGllcyB9IGZyb20gJ29sL3NvdXJjZS9XTVRTLmpzJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENhY2hlYWJsZSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFRpbWVGaWx0ZXJTdHlsZSxcclxuICBUaW1lRmlsdGVyVHlwZVxyXG59IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQvdGltZS1maWx0ZXIuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgSXRlbVN0eWxlT3B0aW9ucyxcclxuICBMZWdlbmRPcHRpb25zXHJcbn0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sZWdlbmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTWFwU2VydmljZSB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIFF1ZXJ5Rm9ybWF0LFxyXG4gIFF1ZXJ5Rm9ybWF0TWltZVR5cGVcclxufSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuZW51bXMnO1xyXG5pbXBvcnQgeyBFc3JpU3R5bGVHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvZGF0YXNvdXJjZS9lc3JpLXN0eWxlLWdlbmVyYXRvcic7XHJcbmltcG9ydCB7XHJcbiAgVHlwZUNhcGFiaWxpdGllcyxcclxuICBUeXBlQ2FwYWJpbGl0aWVzU3RyaW5nc1xyXG59IGZyb20gJy4vY2FwYWJpbGl0aWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcclxufSBmcm9tICcuL2RhdGFzb3VyY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcGFiaWxpdGllc1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgcGFyc2VycyA9IHtcclxuICAgIHdtczogbmV3IFdNU0NhcGFiaWxpdGllcygpLFxyXG4gICAgd210czogbmV3IFdNVFNDYXBhYmlsaXRpZXMoKSxcclxuICAgIGVzcmlKU09OOiBuZXcgRXNyaUpTT04oKVxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBnZXRXTVNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxXTVNEYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgY29uc3QgdXJsID0gYmFzZU9wdGlvbnMudXJsO1xyXG4gICAgY29uc3QgdmVyc2lvbiA9IChiYXNlT3B0aW9ucy5wYXJhbXMgYXMgYW55KS5WRVJTSU9OO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmdldENhcGFiaWxpdGllcygnd21zJywgdXJsLCB2ZXJzaW9uKS5waXBlKFxyXG4gICAgICBtYXAoKGNhcGFiaWxpdGllczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllc1xyXG4gICAgICAgICAgPyB0aGlzLnBhcnNlV01TT3B0aW9ucyhiYXNlT3B0aW9ucywgY2FwYWJpbGl0aWVzKVxyXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0V01UU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxXTVRTRGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGNvbnN0IHVybCA9IGJhc2VPcHRpb25zLnVybDtcclxuICAgIGNvbnN0IHZlcnNpb24gPSBiYXNlT3B0aW9ucy52ZXJzaW9uO1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldENhcGFiaWxpdGllcygnd210cycsIHVybCwgdmVyc2lvbikucGlwZShcclxuICAgICAgbWFwKChjYXBhYmlsaXRpZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBjYXBhYmlsaXRpZXNcclxuICAgICAgICAgID8gdGhpcy5wYXJzZVdNVFNPcHRpb25zKGJhc2VPcHRpb25zLCBjYXBhYmlsaXRpZXMpXHJcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIGdldENhcnRvT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxDYXJ0b0RhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBiYXNlVXJsID1cclxuICAgICAgJ2h0dHBzOi8vJyArXHJcbiAgICAgIGJhc2VPcHRpb25zLmFjY291bnQgK1xyXG4gICAgICAnLmNhcnRvLmNvbS9hcGkvdjIvdml6LycgK1xyXG4gICAgICBiYXNlT3B0aW9ucy5tYXBJZCArXHJcbiAgICAgICcvdml6Lmpzb24nO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmpzb25wKGJhc2VVcmwsICdjYWxsYmFjaycpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoY2FydG9PcHRpb25zOiBhbnkpID0+XHJcbiAgICAgICAgICB0aGlzLnBhcnNlQ2FydG9PcHRpb25zKGJhc2VPcHRpb25zLCBjYXJ0b09wdGlvbnMpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgQENhY2hlYWJsZSh7XHJcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxyXG4gIH0pXHJcbiAgZ2V0QXJjZ2lzT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2VPcHRpb25zLnVybCArICcvJyArIGJhc2VPcHRpb25zLmxheWVyICsgJz9mPWpzb24nO1xyXG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKFxyXG4gICAgICAnYXJjZ2lzcmVzdCcsXHJcbiAgICAgIGJhc2VPcHRpb25zLnVybFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGFyY2dpc09wdGlvbnMgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwpO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKFthcmNnaXNPcHRpb25zLCBzZXJ2aWNlQ2FwYWJpbGl0aWVzXSkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlQXJjZ2lzT3B0aW9ucyhiYXNlT3B0aW9ucywgcmVzWzBdLCByZXNbMV0pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjBcclxuICB9KVxyXG4gIGdldEltYWdlQXJjZ2lzT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOlxyXG4gICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8XHJcbiAgICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICA+IHtcclxuICAgIGNvbnN0IGJhc2VVcmwgPSBiYXNlT3B0aW9ucy51cmwgKyAnLycgKyBiYXNlT3B0aW9ucy5sYXllciArICc/Zj1qc29uJztcclxuICAgIGNvbnN0IGxlZ2VuZFVybCA9IGJhc2VPcHRpb25zLnVybCArICcvbGVnZW5kP2Y9anNvbic7XHJcbiAgICBjb25zdCBzZXJ2aWNlQ2FwYWJpbGl0aWVzID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoXHJcbiAgICAgICdpbWFnZWFyY2dpc3Jlc3QnLFxyXG4gICAgICBiYXNlT3B0aW9ucy51cmxcclxuICAgICk7XHJcbiAgICBjb25zdCBhcmNnaXNPcHRpb25zID0gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcclxuICAgIGNvbnN0IGxlZ2VuZCA9IHRoaXMuaHR0cC5nZXQobGVnZW5kVXJsKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMpLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTm8gbGVnZW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEltYWdlIFNlcnZpY2UnKTtcclxuICAgICAgICByZXR1cm4gb2YoZXJyKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIGxlZ2VuZCwgc2VydmljZUNhcGFiaWxpdGllc10pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVRpbGVPckltYWdlQXJjZ2lzT3B0aW9ucyhcclxuICAgICAgICAgIGJhc2VPcHRpb25zLFxyXG4gICAgICAgICAgcmVzWzBdLFxyXG4gICAgICAgICAgcmVzWzFdLFxyXG4gICAgICAgICAgcmVzWzJdXHJcbiAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwXHJcbiAgfSlcclxuICBnZXRUaWxlQXJjZ2lzT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxcclxuICAgIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gID4ge1xyXG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2VPcHRpb25zLnVybCArICcvJyArIGJhc2VPcHRpb25zLmxheWVyICsgJz9mPWpzb24nO1xyXG4gICAgY29uc3QgbGVnZW5kVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy9sZWdlbmQ/Zj1qc29uJztcclxuICAgIGNvbnN0IHNlcnZpY2VDYXBhYmlsaXRpZXMgPSB0aGlzLmdldENhcGFiaWxpdGllcyhcclxuICAgICAgJ3RpbGVhcmNnaXNyZXN0JyxcclxuICAgICAgYmFzZU9wdGlvbnMudXJsXHJcbiAgICApO1xyXG4gICAgY29uc3QgYXJjZ2lzT3B0aW9ucyA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCk7XHJcbiAgICBjb25zdCBsZWdlbmRJbmZvID0gdGhpcy5odHRwLmdldChsZWdlbmRVcmwpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcyksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdObyBsZWdlbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgVGlsZSBTZXJ2aWNlJyk7XHJcbiAgICAgICAgcmV0dXJuIG9mKGVycik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKFthcmNnaXNPcHRpb25zLCBsZWdlbmRJbmZvLCBzZXJ2aWNlQ2FwYWJpbGl0aWVzXSkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT5cclxuICAgICAgICB0aGlzLnBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKGJhc2VPcHRpb25zLCByZXNbMF0sIHJlc1sxXSwgcmVzWzJdKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQENhY2hlYWJsZSh7XHJcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxyXG4gIH0pXHJcbiAgZ2V0Q2FwYWJpbGl0aWVzKFxyXG4gICAgc2VydmljZTogVHlwZUNhcGFiaWxpdGllc1N0cmluZ3MsXHJcbiAgICBiYXNlVXJsOiBzdHJpbmcsXHJcbiAgICB2ZXJzaW9uPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgIHJlcXVlc3Q6ICdHZXRDYXBhYmlsaXRpZXMnLFxyXG4gICAgICAgIHNlcnZpY2U6IHNlcnZpY2UudG9VcHBlckNhc2UoKSxcclxuICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uIHx8ICcxLjMuMCcsXHJcbiAgICAgICAgX2k6ICd0cnVlJ1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgcmVxdWVzdDtcclxuICAgIGlmIChUeXBlQ2FwYWJpbGl0aWVzW3NlcnZpY2VdID09PSAnZXNyaUpTT04nKSB7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyAnP2Y9anNvbicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCwge1xyXG4gICAgICAgIHBhcmFtcyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0J1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxyXG4gICAgICBtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChUeXBlQ2FwYWJpbGl0aWVzW3NlcnZpY2VdID09PSAnZXNyaUpTT04nKSB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzIGFzIG9iamVjdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgU3RyaW5nKHJlcykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnc2VydmljZWV4Y2VwdGlvbicpICYmXHJcbiAgICAgICAgICBTdHJpbmcocmVzKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdhY2Nlc3MgZGVuaWVkJylcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRocm93IHtcclxuICAgICAgICAgICAgZXJyb3I6IHtcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAnU2VydmljZSBlcnJvciBnZXRDYXBhYmlsaXRpZXM6IEFjY2VzcyBpcyBkZW5pZWQnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlcnNbc2VydmljZV0ucmVhZChyZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIGUuZXJyb3IgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICBlLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IGU7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZVdNU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBjYXBhYmlsaXRpZXM6IGFueVxyXG4gICk6IFdNU0RhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIGNvbnN0IGxheWVycyA9IChiYXNlT3B0aW9ucy5wYXJhbXMgYXMgYW55KS5MQVlFUlM7XHJcbiAgICBjb25zdCBsYXllciA9IHRoaXMuZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhcclxuICAgICAgY2FwYWJpbGl0aWVzLkNhcGFiaWxpdHkuTGF5ZXIsXHJcbiAgICAgIGxheWVyc1xyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIWxheWVyKSB7XHJcbiAgICAgIHRocm93IHtcclxuICAgICAgICBlcnJvcjoge1xyXG4gICAgICAgICAgbWVzc2FnZTogJ0xheWVyIG5vdCBmb3VuZCdcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IGxheWVyLkRhdGFVUkwgPyBsYXllci5EYXRhVVJMWzBdIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgYWJzdHJhY3QgPSBsYXllci5BYnN0cmFjdCA/IGxheWVyLkFic3RyYWN0IDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3Qga2V5d29yZExpc3QgPSBsYXllci5LZXl3b3JkTGlzdCA/IGxheWVyLktleXdvcmRMaXN0IDogdW5kZWZpbmVkO1xyXG4gICAgbGV0IHF1ZXJ5YWJsZSA9IGxheWVyLnF1ZXJ5YWJsZTtcclxuICAgIGNvbnN0IHRpbWVGaWx0ZXIgPSB0aGlzLmdldFRpbWVGaWx0ZXIobGF5ZXIpO1xyXG4gICAgY29uc3QgdGltZUZpbHRlcmFibGUgPSB0aW1lRmlsdGVyICYmIE9iamVjdC5rZXlzKHRpbWVGaWx0ZXIpLmxlbmd0aCA+IDA7XHJcbiAgICBjb25zdCBsZWdlbmRPcHRpb25zID0gbGF5ZXIuU3R5bGUgPyB0aGlzLmdldFN0eWxlKGxheWVyLlN0eWxlKSA6IHVuZGVmaW5lZDtcclxuICAgIGxldCBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IHRydWU7XHJcbiAgICBpZiAobGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94KSB7XHJcbiAgICAgIGxheWVyLkVYX0dlb2dyYXBoaWNCb3VuZGluZ0JveC5mb3JFYWNoKChjb29yZCwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaW5kZXggPCAyICYmIChjb29yZCA+IDE4MCB8fCBjb29yZCA8IC0xODApKSB7XHJcbiAgICAgICAgICBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kZXggPj0gMiAmJiAoY29vcmQgPiA5MCB8fCBjb29yZCA8IC05MCkpIHtcclxuICAgICAgICAgIGlzRXh0ZW50SW5HZW9ncmFwaGljID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlzRXh0ZW50SW5HZW9ncmFwaGljID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXh0ZW50ID0gaXNFeHRlbnRJbkdlb2dyYXBoaWNcclxuICAgICAgPyBvbHByb2oudHJhbnNmb3JtRXh0ZW50KFxyXG4gICAgICAgICAgbGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94LFxyXG4gICAgICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgICB0aGlzLm1hcFNlcnZpY2UuZ2V0TWFwKCkucHJvamVjdGlvblxyXG4gICAgICAgIClcclxuICAgICAgOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgbGV0IHF1ZXJ5Rm9ybWF0OiBRdWVyeUZvcm1hdDtcclxuICAgIGNvbnN0IHF1ZXJ5Rm9ybWF0TWltZVR5cGVQcmlvcml0eSA9IFtcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HRU9KU09OLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdFT0pTT04yLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdNTDMsXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR01MMixcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5KU09OLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkhUTUxcclxuICAgIF07XHJcblxyXG4gICAgZm9yIChjb25zdCBtaW1lVHlwZSBvZiBxdWVyeUZvcm1hdE1pbWVUeXBlUHJpb3JpdHkpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNhcGFiaWxpdGllcy5DYXBhYmlsaXR5LlJlcXVlc3QuR2V0RmVhdHVyZUluZm8uRm9ybWF0LmluZGV4T2YoXHJcbiAgICAgICAgICBtaW1lVHlwZVxyXG4gICAgICAgICkgIT09IC0xXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IGtleUVudW0gPSBPYmplY3Qua2V5cyhRdWVyeUZvcm1hdE1pbWVUeXBlKS5maW5kKFxyXG4gICAgICAgICAgKGtleSkgPT4gUXVlcnlGb3JtYXRNaW1lVHlwZVtrZXldID09PSBtaW1lVHlwZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcXVlcnlGb3JtYXQgPSBRdWVyeUZvcm1hdFtrZXlFbnVtXTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFxdWVyeUZvcm1hdCkge1xyXG4gICAgICBxdWVyeWFibGUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIF9sYXllck9wdGlvbnNGcm9tU291cmNlOiB7XHJcbiAgICAgICAgdGl0bGU6IGxheWVyLlRpdGxlLFxyXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIuTWF4U2NhbGVEZW5vbWluYXRvciksXHJcbiAgICAgICAgbWluUmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShsYXllci5NaW5TY2FsZURlbm9taW5hdG9yKSxcclxuICAgICAgICBleHRlbnQsXHJcbiAgICAgICAgbWV0YWRhdGE6IHtcclxuICAgICAgICAgIHVybDogbWV0YWRhdGEgPyBtZXRhZGF0YS5PbmxpbmVSZXNvdXJjZSA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGV4dGVybjogbWV0YWRhdGEgPyB0cnVlIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgYWJzdHJhY3QsXHJcbiAgICAgICAgICBrZXl3b3JkTGlzdFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGVnZW5kT3B0aW9uc1xyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeWFibGUsXHJcbiAgICAgIHF1ZXJ5Rm9ybWF0LFxyXG4gICAgICB0aW1lRmlsdGVyOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIgOiB1bmRlZmluZWQsXHJcbiAgICAgIHRpbWVGaWx0ZXJhYmxlOiB0aW1lRmlsdGVyYWJsZSA/IHRydWUgOiB1bmRlZmluZWQsXHJcbiAgICAgIG1pbkRhdGU6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlci5taW4gOiB1bmRlZmluZWQsXHJcbiAgICAgIG1heERhdGU6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlci5tYXggOiB1bmRlZmluZWQsXHJcbiAgICAgIHN0ZXBEYXRlOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIuc3RlcCA6IHVuZGVmaW5lZFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlV01UU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgY2FwYWJpbGl0aWVzOiBhbnlcclxuICApOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgLy8gUHV0IFRpdGxlIHNvdXJjZSBpbiBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZS4gKEZvciBzb3VyY2UgJiBjYXRhbG9nIGluIF9sYXllck9wdGlvbnNGcm9tU291cmNlLCBpZiBub3QgYWxyZWFkeSBvbiBjb25maWcpXHJcbiAgICBjb25zdCBsYXllciA9IGNhcGFiaWxpdGllcy5Db250ZW50cy5MYXllci5maW5kKFxyXG4gICAgICAoZWwpID0+IGVsLklkZW50aWZpZXIgPT09IGJhc2VPcHRpb25zLmxheWVyXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnMgPSBvcHRpb25zRnJvbUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMsIGJhc2VPcHRpb25zKTtcclxuXHJcbiAgICBjb25zdCBvdXB1dE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xyXG4gICAgICAgIHRpdGxlOiBsYXllci5UaXRsZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKHNvdXJjZU9wdGlvbnMsIG91cHV0T3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlQ2FydG9PcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBjYXJ0b09wdGlvbnM6IGFueVxyXG4gICk6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgbGF5ZXJzID0gW107XHJcbiAgICBjb25zdCBwYXJhbXMgPSBjYXJ0b09wdGlvbnMubGF5ZXJzWzFdLm9wdGlvbnMubGF5ZXJfZGVmaW5pdGlvbjtcclxuICAgIHBhcmFtcy5sYXllcnMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBsYXllcnMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogZWxlbWVudC50eXBlLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgb3B0aW9uczogZWxlbWVudC5vcHRpb25zLFxyXG4gICAgICAgIGxlZ2VuZDogZWxlbWVudC5sZWdlbmRcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBjb25maWc6IHtcclxuICAgICAgICB2ZXJzaW9uOiBwYXJhbXMudmVyc2lvbixcclxuICAgICAgICBsYXllcnNcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGFyY2dpc09wdGlvbnM6IGFueSxcclxuICAgIHNlcnZpY2VDYXBhYmlsaXRpZXM6IGFueVxyXG4gICk6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgICBjb25zdCB0aXRsZSA9IGFyY2dpc09wdGlvbnMubmFtZTtcclxuICAgIGxldCBsZWdlbmRJbmZvOiBhbnk7XHJcblxyXG4gICAgaWYgKGFyY2dpc09wdGlvbnMuZHJhd2luZ0luZm8/LnJlbmRlcmVyKSB7XHJcbiAgICAgIGxlZ2VuZEluZm8gPSBhcmNnaXNPcHRpb25zLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGVnZW5kSW5mbyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3R5bGU7XHJcbiAgICBpZiAoYXJjZ2lzT3B0aW9ucy5kcmF3aW5nSW5mbykge1xyXG4gICAgICBjb25zdCBzdHlsZUdlbmVyYXRvciA9IG5ldyBFc3JpU3R5bGVHZW5lcmF0b3IoKTtcclxuICAgICAgY29uc3QgdW5pdHMgPSBhcmNnaXNPcHRpb25zLnVuaXRzID09PSAnZXNyaU1ldGVycycgPyAnbScgOiAnZGVncmVlcyc7XHJcbiAgICAgIHN0eWxlID0gc3R5bGVHZW5lcmF0b3IuZ2VuZXJhdGVTdHlsZShhcmNnaXNPcHRpb25zLCB1bml0cyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhdHRyaWJ1dGlvbnMgPSBuZXcgb2xBdHRyaWJ1dGlvbih7XHJcbiAgICAgIHRhcmdldDogYXJjZ2lzT3B0aW9ucy5jb3B5cmlnaHRUZXh0XHJcbiAgICB9KTtcclxuICAgIGxldCB0aW1lRXh0ZW50O1xyXG4gICAgbGV0IHRpbWVGaWx0ZXI7XHJcbiAgICBpZiAoYXJjZ2lzT3B0aW9ucy50aW1lSW5mbykge1xyXG4gICAgICBjb25zdCB0aW1lID0gYXJjZ2lzT3B0aW9ucy50aW1lSW5mby50aW1lRXh0ZW50O1xyXG4gICAgICB0aW1lRXh0ZW50ID0gdGltZVswXSArICcsJyArIHRpbWVbMV07XHJcbiAgICAgIGNvbnN0IG1pbiA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIG1pbi5zZXRUaW1lKHRpbWVbMF0pO1xyXG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBtYXguc2V0VGltZSh0aW1lWzFdKTtcclxuICAgICAgdGltZUZpbHRlciA9IHtcclxuICAgICAgICBtaW46IG1pbi50b1VUQ1N0cmluZygpLFxyXG4gICAgICAgIG1heDogbWF4LnRvVVRDU3RyaW5nKCksXHJcbiAgICAgICAgcmFuZ2U6IHRydWUsXHJcbiAgICAgICAgdHlwZTogVGltZUZpbHRlclR5cGUuREFURVRJTUUsXHJcbiAgICAgICAgc3R5bGU6IFRpbWVGaWx0ZXJTdHlsZS5DQUxFTkRBUlxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAge30sXHJcbiAgICAgIHtcclxuICAgICAgICBzdHlsZSxcclxuICAgICAgICBMQVlFUlM6IGJhc2VPcHRpb25zLmxheWVyID8gJ3Nob3c6JyArIGJhc2VPcHRpb25zLmxheWVyIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHRpbWU6IHRpbWVFeHRlbnRcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIF9sYXllck9wdGlvbnNGcm9tU291cmNlOiB7XHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgbWluUmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShhcmNnaXNPcHRpb25zLm1heFNjYWxlKSxcclxuICAgICAgICBtYXhSZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWluU2NhbGUpLFxyXG4gICAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgICBleHRlcm46IGZhbHNlLFxyXG4gICAgICAgICAgYWJzdHJhY3Q6XHJcbiAgICAgICAgICAgIGFyY2dpc09wdGlvbnMuZGVzY3JpcHRpb24gfHwgc2VydmljZUNhcGFiaWxpdGllcy5zZXJ2aWNlRGVzY3JpcHRpb25cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGxlZ2VuZEluZm8sXHJcbiAgICAgIHRpbWVGaWx0ZXIsXHJcbiAgICAgIHNvdXJjZUZpZWxkczogYXJjZ2lzT3B0aW9ucy5maWVsZHMsXHJcbiAgICAgIHF1ZXJ5VGl0bGU6IGFyY2dpc09wdGlvbnMuZGlzcGxheUZpZWxkXHJcbiAgICB9KTtcclxuICAgIG9wdGlvbnMuYXR0cmlidXRpb25zID0gYXR0cmlidXRpb25zO1xyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6XHJcbiAgICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgYXJjZ2lzT3B0aW9uczogYW55LFxyXG4gICAgbGVnZW5kOiBhbnksXHJcbiAgICBzZXJ2aWNlQ2FwYWJpbGl0aWVzOiBhbnlcclxuICApOiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgdGl0bGUgPSBhcmNnaXNPcHRpb25zLm5hbWU7XHJcbiAgICBjb25zdCBsZWdlbmRJbmZvID0gbGVnZW5kLmxheWVyc1xyXG4gICAgICA/IGxlZ2VuZC5sYXllcnMuZmluZCgoeCkgPT4geC5sYXllck5hbWUgPT09IHRpdGxlKVxyXG4gICAgICA6IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IG5ldyBvbEF0dHJpYnV0aW9uKHtcclxuICAgICAgdGFyZ2V0OiBhcmNnaXNPcHRpb25zLmNvcHlyaWdodFRleHRcclxuICAgIH0pO1xyXG4gICAgbGV0IHRpbWVFeHRlbnQ7XHJcbiAgICBsZXQgdGltZUZpbHRlcjtcclxuICAgIGlmIChhcmNnaXNPcHRpb25zLnRpbWVJbmZvKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSBhcmNnaXNPcHRpb25zLnRpbWVJbmZvLnRpbWVFeHRlbnQ7XHJcbiAgICAgIHRpbWVFeHRlbnQgPSB0aW1lWzBdICsgJywnICsgdGltZVsxXTtcclxuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUoKTtcclxuICAgICAgbWluLnNldFRpbWUodGltZVswXSk7XHJcbiAgICAgIGNvbnN0IG1heCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIG1heC5zZXRUaW1lKHRpbWVbMV0pO1xyXG4gICAgICB0aW1lRmlsdGVyID0ge1xyXG4gICAgICAgIG1pbjogbWluLnRvVVRDU3RyaW5nKCksXHJcbiAgICAgICAgbWF4OiBtYXgudG9VVENTdHJpbmcoKSxcclxuICAgICAgICByYW5nZTogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBUaW1lRmlsdGVyVHlwZS5EQVRFVElNRSxcclxuICAgICAgICBzdHlsZTogVGltZUZpbHRlclN0eWxlLkNBTEVOREFSXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICB7fSxcclxuICAgICAge1xyXG4gICAgICAgIExBWUVSUzogYmFzZU9wdGlvbnMubGF5ZXIgPyAnc2hvdzonICsgYmFzZU9wdGlvbnMubGF5ZXIgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgdGltZTogdGltZUV4dGVudFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcclxuICAgICAgICB0aXRsZSxcclxuICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWF4U2NhbGUpLFxyXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5taW5TY2FsZSksXHJcbiAgICAgICAgbWV0YWRhdGE6IHtcclxuICAgICAgICAgIGV4dGVybjogZmFsc2UsXHJcbiAgICAgICAgICBhYnN0cmFjdDpcclxuICAgICAgICAgICAgYXJjZ2lzT3B0aW9ucy5kZXNjcmlwdGlvbiB8fCBzZXJ2aWNlQ2FwYWJpbGl0aWVzLnNlcnZpY2VEZXNjcmlwdGlvblxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbGVnZW5kSW5mbyxcclxuICAgICAgdGltZUZpbHRlcixcclxuICAgICAgc291cmNlRmllbGRzOiBhcmNnaXNPcHRpb25zLmZpZWxkcyxcclxuICAgICAgcXVlcnlUaXRsZTogYXJjZ2lzT3B0aW9ucy5kaXNwbGF5RmllbGRcclxuICAgIH0pO1xyXG4gICAgb3B0aW9ucy5hdHRyaWJ1dGlvbnMgPSBhdHRyaWJ1dGlvbnM7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhsYXllckFycmF5LCBuYW1lKTogYW55IHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGxheWVyQXJyYXkpKSB7XHJcbiAgICAgIGxldCBsYXllcjtcclxuICAgICAgbGF5ZXJBcnJheS5maW5kKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGxheWVyID0gdGhpcy5maW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKHZhbHVlLCBuYW1lKTtcclxuICAgICAgICByZXR1cm4gbGF5ZXIgIT09IHVuZGVmaW5lZDtcclxuICAgICAgfSwgdGhpcyk7XHJcblxyXG4gICAgICByZXR1cm4gbGF5ZXI7XHJcbiAgICB9IGVsc2UgaWYgKGxheWVyQXJyYXkuTGF5ZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhsYXllckFycmF5LkxheWVyLCBuYW1lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChsYXllckFycmF5Lk5hbWUgJiYgbGF5ZXJBcnJheS5OYW1lID09PSBuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIGxheWVyQXJyYXk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRpbWVGaWx0ZXIobGF5ZXIpIHtcclxuICAgIGxldCBkaW1lbnNpb247XHJcblxyXG4gICAgaWYgKGxheWVyLkRpbWVuc2lvbikge1xyXG4gICAgICBjb25zdCB0aW1lRmlsdGVyOiBhbnkgPSB7fTtcclxuICAgICAgZGltZW5zaW9uID0gbGF5ZXIuRGltZW5zaW9uWzBdO1xyXG5cclxuICAgICAgaWYgKGRpbWVuc2lvbi52YWx1ZXMpIHtcclxuICAgICAgICBjb25zdCBtaW5NYXhEaW0gPSBkaW1lbnNpb24udmFsdWVzLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgdGltZUZpbHRlci5taW4gPSBtaW5NYXhEaW1bMF0gIT09IHVuZGVmaW5lZCA/IG1pbk1heERpbVswXSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB0aW1lRmlsdGVyLm1heCA9IG1pbk1heERpbVsxXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzFdIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIHRpbWVGaWx0ZXIuc3RlcCA9IG1pbk1heERpbVsyXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzJdIDogdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZGltZW5zaW9uLmRlZmF1bHQpIHtcclxuICAgICAgICB0aW1lRmlsdGVyLnZhbHVlID0gZGltZW5zaW9uLmRlZmF1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRpbWVGaWx0ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdHlsZShTdHlsZSk6IExlZ2VuZE9wdGlvbnMge1xyXG4gICAgY29uc3Qgc3R5bGVPcHRpb25zOiBJdGVtU3R5bGVPcHRpb25zW10gPSBTdHlsZS5tYXAoKHN0eWxlKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogc3R5bGUuTmFtZSxcclxuICAgICAgICB0aXRsZTogc3R5bGUuVGl0bGVcclxuICAgICAgfTtcclxuICAgIH0pXHJcbiAgICAgIC8vIEhhbmRsZSByZXBlYXQgdGhlIHN0eWxlIFwiZGVmYXVsdFwiIGluIG91dHB1dCAgKE1hcFNlcnZlciBvciBPcGVuTGF5ZXIpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW0sIGluZGV4LCBzZWxmKSA9PlxyXG4gICAgICAgICAgc2VsZi5maW5kSW5kZXgoKGk6IEl0ZW1TdHlsZU9wdGlvbnMpID0+IGkubmFtZSA9PT0gaXRlbS5uYW1lKSA9PT1cclxuICAgICAgICAgIGluZGV4XHJcbiAgICAgICk7XHJcblxyXG4gICAgY29uc3QgbGVnZW5kT3B0aW9uczogTGVnZW5kT3B0aW9ucyA9IHtcclxuICAgICAgc3R5bGVzQXZhaWxhYmxlOiBzdHlsZU9wdGlvbnNcclxuICAgIH0gYXMgTGVnZW5kT3B0aW9ucztcclxuXHJcbiAgICByZXR1cm4gbGVnZW5kT3B0aW9ucztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -4,7 +4,6 @@ import { LanguageService, MessageService } from '@igo2/core';
|
|
|
4
4
|
import { ObjectUtils } from '@igo2/utils';
|
|
5
5
|
import { BehaviorSubject, Observable, forkJoin, of } from 'rxjs';
|
|
6
6
|
import { catchError, map } from 'rxjs/operators';
|
|
7
|
-
import { ProjectionService } from '../../map/shared/projection.service';
|
|
8
7
|
import { CapabilitiesService } from './capabilities.service';
|
|
9
8
|
import { ArcGISRestDataSource, CartoDataSource, ClusterDataSource, FeatureDataSource, ImageArcGISRestDataSource, MVTDataSource, OSMDataSource, TileArcGISRestDataSource, TileDebugDataSource, WFSDataSource, WMSDataSource, WMTSDataSource, WebSocketDataSource, XYZDataSource } from './datasources';
|
|
10
9
|
import { WFSService } from './datasources/wfs.service';
|
|
@@ -14,24 +13,21 @@ import * as i1 from "./capabilities.service";
|
|
|
14
13
|
import * as i2 from "./options/options.service";
|
|
15
14
|
import * as i3 from "./datasources/wfs.service";
|
|
16
15
|
import * as i4 from "@igo2/core";
|
|
17
|
-
import * as i5 from "
|
|
18
|
-
import * as i6 from "@igo2/auth";
|
|
16
|
+
import * as i5 from "@igo2/auth";
|
|
19
17
|
export class DataSourceService {
|
|
20
18
|
capabilitiesService;
|
|
21
19
|
optionsService;
|
|
22
20
|
wfsDataSourceService;
|
|
23
21
|
languageService;
|
|
24
22
|
messageService;
|
|
25
|
-
projectionService;
|
|
26
23
|
authInterceptor;
|
|
27
24
|
datasources$ = new BehaviorSubject([]);
|
|
28
|
-
constructor(capabilitiesService, optionsService, wfsDataSourceService, languageService, messageService,
|
|
25
|
+
constructor(capabilitiesService, optionsService, wfsDataSourceService, languageService, messageService, authInterceptor) {
|
|
29
26
|
this.capabilitiesService = capabilitiesService;
|
|
30
27
|
this.optionsService = optionsService;
|
|
31
28
|
this.wfsDataSourceService = wfsDataSourceService;
|
|
32
29
|
this.languageService = languageService;
|
|
33
30
|
this.messageService = messageService;
|
|
34
|
-
this.projectionService = projectionService;
|
|
35
31
|
this.authInterceptor = authInterceptor;
|
|
36
32
|
}
|
|
37
33
|
createAsyncDataSource(context, detailedContextUri) {
|
|
@@ -245,15 +241,15 @@ export class DataSourceService {
|
|
|
245
241
|
createClusterDataSource(context) {
|
|
246
242
|
return new Observable((d) => d.next(new ClusterDataSource(context)));
|
|
247
243
|
}
|
|
248
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
249
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
244
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DataSourceService, deps: [{ token: i1.CapabilitiesService }, { token: i2.OptionsService, optional: true }, { token: i3.WFSService }, { token: i4.LanguageService }, { token: i4.MessageService }, { token: i5.AuthInterceptor }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
245
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DataSourceService, providedIn: 'root' });
|
|
250
246
|
}
|
|
251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DataSourceService, decorators: [{
|
|
252
248
|
type: Injectable,
|
|
253
249
|
args: [{
|
|
254
250
|
providedIn: 'root'
|
|
255
251
|
}]
|
|
256
|
-
}], ctorParameters:
|
|
252
|
+
}], ctorParameters: () => [{ type: i1.CapabilitiesService }, { type: i2.OptionsService, decorators: [{
|
|
257
253
|
type: Optional
|
|
258
|
-
}] }, { type: i3.WFSService }, { type: i4.LanguageService }, { type: i4.MessageService }, { type: i5.
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUVMLG9CQUFvQixFQUdwQixlQUFlLEVBRWYsaUJBQWlCLEVBR2pCLGlCQUFpQixFQUVqQix5QkFBeUIsRUFDekIsYUFBYSxFQUViLGFBQWEsRUFFYix3QkFBd0IsRUFFeEIsbUJBQW1CLEVBRW5CLGFBQWEsRUFFYixhQUFhLEVBRWIsY0FBYyxFQUVkLG1CQUFtQixFQUNuQixhQUFhLEVBRWQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFLM0QsTUFBTSxPQUFPLGlCQUFpQjtJQUlsQjtJQUNZO0lBQ1o7SUFD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QUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5QixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLE9BQW1DLEVBQUUsRUFBRTtZQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQzVDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUN6QixPQUE2QjtRQUU3QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE9BQWlDO1FBRWpDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzt3R0E5WlUsaUJBQWlCOzRHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFByb2plY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9wcm9qZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXBhYmlsaXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi9jYXBhYmlsaXRpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQW55RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENhcnRvRGF0YVNvdXJjZSxcclxuICBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENsdXN0ZXJEYXRhU291cmNlLFxyXG4gIENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyxcclxuICBEYXRhU291cmNlLFxyXG4gIEZlYXR1cmVEYXRhU291cmNlLFxyXG4gIEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyxcclxuICBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlLFxyXG4gIE1WVERhdGFTb3VyY2UsXHJcbiAgTVZURGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgT1NNRGF0YVNvdXJjZSxcclxuICBPU01EYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlRGVidWdEYXRhU291cmNlLFxyXG4gIFRpbGVEZWJ1Z0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdGU0RhdGFTb3VyY2UsXHJcbiAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV01TRGF0YVNvdXJjZSxcclxuICBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVRTRGF0YVNvdXJjZSxcclxuICBXTVRTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV2ViU29ja2V0RGF0YVNvdXJjZSxcclxuICBYWVpEYXRhU291cmNlLFxyXG4gIFhZWkRhdGFTb3VyY2VPcHRpb25zXHJcbn0gZnJvbSAnLi9kYXRhc291cmNlcyc7XHJcbmltcG9ydCB7IFdGU1NlcnZpY2UgfSBmcm9tICcuL2RhdGFzb3VyY2VzL3dmcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMvb3B0aW9ucy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VTZXJ2aWNlIHtcclxuICBwdWJsaWMgZGF0YXNvdXJjZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhU291cmNlW10+KFtdKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ZzRGF0YVNvdXJjZVNlcnZpY2U6IFdGU1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHByb2plY3Rpb25TZXJ2aWNlOiBQcm9qZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXHJcbiAgKSB7fVxyXG5cclxuICBjcmVhdGVBc3luY0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBBbnlEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8RGF0YVNvdXJjZT4ge1xyXG4gICAgaWYgKCFjb250ZXh0LnR5cGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihjb250ZXh0KTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhc291cmNlIG5lZWRzIGEgdHlwZScpO1xyXG4gICAgfVxyXG4gICAgbGV0IGRhdGFTb3VyY2U7XHJcbiAgICBzd2l0Y2ggKGNvbnRleHQudHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgJ29zbSc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlT1NNRGF0YVNvdXJjZShjb250ZXh0IGFzIE9TTURhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndmVjdG9yJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVGZWF0dXJlRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnd2ZzJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXRlNEYXRhU291cmNlKGNvbnRleHQgYXMgV0ZTRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3bXMnOlxyXG4gICAgICAgIGNvbnN0IHdtc0NvbnRleHQgPSBjb250ZXh0IGFzIFdNU0RhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgIE9iamVjdFV0aWxzLnJlbW92ZUR1cGxpY2F0ZUNhc2VJbnNlbnNpdGl2ZSh3bXNDb250ZXh0LnBhcmFtcyk7XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV01TRGF0YVNvdXJjZSh3bXNDb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3bXRzJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXTVRTRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAneHl6JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVYWVpEYXRhU291cmNlKGNvbnRleHQgYXMgWFlaRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0aWxlZGVidWcnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIFRpbGVEZWJ1Z0RhdGFTb3VyY2VcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjYXJ0byc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQ2FydG9EYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQXJjR0lTUmVzdERhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2ltYWdlYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICBkZXRhaWxlZENvbnRleHRVcmlcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3ZWJzb2NrZXQnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdlYlNvY2tldERhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ212dCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlTVZURGF0YVNvdXJjZShjb250ZXh0IGFzIE1WVERhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndGlsZWFyY2dpc3Jlc3QnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NsdXN0ZXInOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUNsdXN0ZXJEYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY29udGV4dCk7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGFzb3VyY2UgdHlwZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YXNvdXJjZXMkLm5leHQodGhpcy5kYXRhc291cmNlcyQudmFsdWUuY29uY2F0KFtkYXRhU291cmNlXSkpO1xyXG5cclxuICAgIHJldHVybiBkYXRhU291cmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVPU01EYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogT1NNRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPE9TTURhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBPU01EYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUZlYXR1cmVEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxGZWF0dXJlRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IEZlYXR1cmVEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdlYlNvY2tldERhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdlYlNvY2tldERhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBXZWJTb2NrZXREYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdGU0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBXRlNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V0ZTRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PlxyXG4gICAgICBkLm5leHQoXHJcbiAgICAgICAgbmV3IFdGU0RhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0LFxyXG4gICAgICAgICAgdGhpcy53ZnNEYXRhU291cmNlU2VydmljZSxcclxuICAgICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXTVNEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFdNU09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlICYmXHJcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcclxuICAgICAgd2luZG93Lm5hdmlnYXRvci5vbkxpbmVcclxuICAgICkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0V01TT3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnNbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cclxuICAgICAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChhLCBiKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBXTVNEYXRhU291cmNlKG9wdGlvbnNNZXJnZWQsIHRoaXMud2ZzRGF0YVNvdXJjZVNlcnZpY2UpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXTVRTRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFdNVFNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V01UU0RhdGFTb3VyY2U+IHtcclxuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0V01UU09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICBtYXAoKG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnMgPyBuZXcgV01UU0RhdGFTb3VyY2Uob3B0aW9ucykgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LmxheWVyIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBXTVRTRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVYWVpEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogWFlaRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFhZWkRhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBYWVpEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8VGlsZURlYnVnRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFRpbGVEZWJ1Z0RhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2FydG9EYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQ2FydG9EYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8Q2FydG9EYXRhU291cmNlPiB7XHJcbiAgICBpZiAoY29udGV4dC5tYXBJZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlXHJcbiAgICAgICAgLmdldENhcnRvT3B0aW9ucyhjb250ZXh0KVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChvcHRpb25zOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zKSA9PiBuZXcgQ2FydG9EYXRhU291cmNlKG9wdGlvbnMpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgQ2FydG9EYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRBcmNnaXNPcHRpb25zKGNvbnRleHQpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5sYXllciB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vcHRpb25zU2VydmljZSAmJlxyXG4gICAgICBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpICYmXHJcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXHJcbiAgICApIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgICBlLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcclxuICAgICAgbWFwKChvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IEFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG5cclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRJbWFnZUFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcclxuICAgICAgY29udGV4dC5vcHRpb25zRnJvbUFwaSAmJlxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gICAgKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxyXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRJbWFnZUFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcclxuICAgICAgY29udGV4dC5vcHRpb25zRnJvbUFwaSAmJlxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gICAgKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxyXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlW10pID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVNVlREYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogTVZURGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPE1WVERhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBNVlREYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNsdXN0ZXJEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxDbHVzdGVyRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IENsdXN0ZXJEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
254
|
+
}] }, { type: i3.WFSService }, { type: i4.LanguageService }, { type: i4.MessageService }, { type: i5.AuthInterceptor }] });
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUVMLG9CQUFvQixFQUdwQixlQUFlLEVBRWYsaUJBQWlCLEVBR2pCLGlCQUFpQixFQUVqQix5QkFBeUIsRUFDekIsYUFBYSxFQUViLGFBQWEsRUFFYix3QkFBd0IsRUFFeEIsbUJBQW1CLEVBRW5CLGFBQWEsRUFFYixhQUFhLEVBRWIsY0FBYyxFQUVkLG1CQUFtQixFQUNuQixhQUFhLEVBRWQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7OztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBSWxCO0lBQ1k7SUFDWjtJQUNBO0lBQ0E7SUFDQTtJQVJILFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFF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SixDQUFDO1FBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5QixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLE9BQW1DLEVBQUUsRUFBRTtZQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQzVDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUN6QixPQUE2QjtRQUU3QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE9BQWlDO1FBRWpDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzt1R0E3WlUsaUJBQWlCOzJHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IENhcGFiaWxpdGllc1NlcnZpY2UgfSBmcm9tICcuL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBbnlEYXRhU291cmNlT3B0aW9ucyxcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZSxcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQ2FydG9EYXRhU291cmNlLFxyXG4gIENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQ2x1c3RlckRhdGFTb3VyY2UsXHJcbiAgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zLFxyXG4gIERhdGFTb3VyY2UsXHJcbiAgRmVhdHVyZURhdGFTb3VyY2UsXHJcbiAgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgTVZURGF0YVNvdXJjZSxcclxuICBNVlREYXRhU291cmNlT3B0aW9ucyxcclxuICBPU01EYXRhU291cmNlLFxyXG4gIE9TTURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZSxcclxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFRpbGVEZWJ1Z0RhdGFTb3VyY2UsXHJcbiAgVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV0ZTRGF0YVNvdXJjZSxcclxuICBXRlNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVNEYXRhU291cmNlLFxyXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdNVFNEYXRhU291cmNlLFxyXG4gIFdNVFNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXZWJTb2NrZXREYXRhU291cmNlLFxyXG4gIFhZWkRhdGFTb3VyY2UsXHJcbiAgWFlaRGF0YVNvdXJjZU9wdGlvbnNcclxufSBmcm9tICcuL2RhdGFzb3VyY2VzJztcclxuaW1wb3J0IHsgV0ZTU2VydmljZSB9IGZyb20gJy4vZGF0YXNvdXJjZXMvd2ZzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy9vcHRpb25zLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBkYXRhc291cmNlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFTb3VyY2VbXT4oW10pO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3ZnNEYXRhU291cmNlU2VydmljZTogV0ZTU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXHJcbiAgKSB7fVxyXG5cclxuICBjcmVhdGVBc3luY0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBBbnlEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8RGF0YVNvdXJjZT4ge1xyXG4gICAgaWYgKCFjb250ZXh0LnR5cGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihjb250ZXh0KTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhc291cmNlIG5lZWRzIGEgdHlwZScpO1xyXG4gICAgfVxyXG4gICAgbGV0IGRhdGFTb3VyY2U7XHJcbiAgICBzd2l0Y2ggKGNvbnRleHQudHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgJ29zbSc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlT1NNRGF0YVNvdXJjZShjb250ZXh0IGFzIE9TTURhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndmVjdG9yJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVGZWF0dXJlRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnd2ZzJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXRlNEYXRhU291cmNlKGNvbnRleHQgYXMgV0ZTRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3bXMnOlxyXG4gICAgICAgIGNvbnN0IHdtc0NvbnRleHQgPSBjb250ZXh0IGFzIFdNU0RhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgIE9iamVjdFV0aWxzLnJlbW92ZUR1cGxpY2F0ZUNhc2VJbnNlbnNpdGl2ZSh3bXNDb250ZXh0LnBhcmFtcyk7XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV01TRGF0YVNvdXJjZSh3bXNDb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3bXRzJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXTVRTRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAneHl6JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVYWVpEYXRhU291cmNlKGNvbnRleHQgYXMgWFlaRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0aWxlZGVidWcnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIFRpbGVEZWJ1Z0RhdGFTb3VyY2VcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjYXJ0byc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQ2FydG9EYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQXJjR0lTUmVzdERhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2ltYWdlYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICBkZXRhaWxlZENvbnRleHRVcmlcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3ZWJzb2NrZXQnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdlYlNvY2tldERhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ212dCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlTVZURGF0YVNvdXJjZShjb250ZXh0IGFzIE1WVERhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndGlsZWFyY2dpc3Jlc3QnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NsdXN0ZXInOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUNsdXN0ZXJEYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY29udGV4dCk7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGFzb3VyY2UgdHlwZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YXNvdXJjZXMkLm5leHQodGhpcy5kYXRhc291cmNlcyQudmFsdWUuY29uY2F0KFtkYXRhU291cmNlXSkpO1xyXG5cclxuICAgIHJldHVybiBkYXRhU291cmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVPU01EYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogT1NNRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPE9TTURhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBPU01EYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUZlYXR1cmVEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxGZWF0dXJlRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IEZlYXR1cmVEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdlYlNvY2tldERhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdlYlNvY2tldERhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBXZWJTb2NrZXREYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdGU0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBXRlNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V0ZTRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PlxyXG4gICAgICBkLm5leHQoXHJcbiAgICAgICAgbmV3IFdGU0RhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0LFxyXG4gICAgICAgICAgdGhpcy53ZnNEYXRhU291cmNlU2VydmljZSxcclxuICAgICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXTVNEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFdNU09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlICYmXHJcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcclxuICAgICAgd2luZG93Lm5hdmlnYXRvci5vbkxpbmVcclxuICAgICkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0V01TT3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnNbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cclxuICAgICAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChhLCBiKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBXTVNEYXRhU291cmNlKG9wdGlvbnNNZXJnZWQsIHRoaXMud2ZzRGF0YVNvdXJjZVNlcnZpY2UpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXTVRTRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFdNVFNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V01UU0RhdGFTb3VyY2U+IHtcclxuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0V01UU09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICBtYXAoKG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnMgPyBuZXcgV01UU0RhdGFTb3VyY2Uob3B0aW9ucykgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LmxheWVyIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBXTVRTRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVYWVpEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogWFlaRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFhZWkRhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBYWVpEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8VGlsZURlYnVnRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFRpbGVEZWJ1Z0RhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2FydG9EYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQ2FydG9EYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8Q2FydG9EYXRhU291cmNlPiB7XHJcbiAgICBpZiAoY29udGV4dC5tYXBJZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlXHJcbiAgICAgICAgLmdldENhcnRvT3B0aW9ucyhjb250ZXh0KVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChvcHRpb25zOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zKSA9PiBuZXcgQ2FydG9EYXRhU291cmNlKG9wdGlvbnMpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgQ2FydG9EYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRBcmNnaXNPcHRpb25zKGNvbnRleHQpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5sYXllciB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vcHRpb25zU2VydmljZSAmJlxyXG4gICAgICBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpICYmXHJcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXHJcbiAgICApIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgICBlLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcclxuICAgICAgbWFwKChvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IEFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG5cclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRJbWFnZUFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcclxuICAgICAgY29udGV4dC5vcHRpb25zRnJvbUFwaSAmJlxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gICAgKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxyXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRJbWFnZUFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcclxuICAgICAgY29udGV4dC5vcHRpb25zRnJvbUFwaSAmJlxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gICAgKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxyXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlW10pID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVNVlREYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogTVZURGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPE1WVERhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBNVlREYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNsdXN0ZXJEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxDbHVzdGVyRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IENsdXN0ZXJEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2FyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9jYXJ0by1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vY2x1c3Rlci1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vZmVhdHVyZS1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9pbWFnZWFyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBNVlREYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vbXZ0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgT1NNRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL29zbS1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3RpbGVhcmNnaXNyZXN0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3RpbGVkZWJ1Zy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93ZnMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV01UU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXRzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3h5ei1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgdHlwZSBBbnlEYXRhU291cmNlT3B0aW9ucyA9XHJcbiAgfCBEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgT1NNRGF0YVNvdXJjZU9wdGlvbnNcclxuICB8IEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgV0ZTRGF0YVNvdXJjZU9wdGlvbnNcclxuICB8IFhZWkRhdGFTb3VyY2VPcHRpb25zXHJcbiAgfCBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgQ2FydG9EYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gIHwgTVZURGF0YVNvdXJjZU9wdGlvbnNcclxuICB8IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucztcclxuIl19
|
|
@@ -209,4 +209,4 @@ export class ArcGISRestDataSource extends DataSource {
|
|
|
209
209
|
}
|
|
210
210
|
onUnwatch() { }
|
|
211
211
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjZ2lzcmVzdC1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYXJjZ2lzcmVzdC1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sZ0JBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFVBQVU7SUFJeEMsY0FBYztRQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUM5QyxRQUFRLEVBQUUsS0FBSztZQUNmLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLEdBQUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSTtnQkFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFDeEUsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQ2pDLFVBQVU7b0JBQ1IsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxVQUFVO29CQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1QsVUFBVTtvQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNULFVBQVU7b0JBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxzQ0FBc0MsQ0FDekMsQ0FBQztn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QUFHLENBQUM7SUFDYixDQUFDO0lBRU0sU0FBUyxLQUFJLENBQUM7Q0FDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xGb3JtYXRFc3JpSlNPTiBmcm9tICdvbC9mb3JtYXQvRXNyaUpTT04nO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCAqIGFzIG9sbG9hZGluZ3N0cmF0ZWd5IGZyb20gJ29sL2xvYWRpbmdzdHJhdGVneSc7XG5pbXBvcnQgb2xTb3VyY2VWZWN0b3IgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5cbmltcG9ydCB7IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgQXJjR0lTUmVzdERhdGFTb3VyY2UgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+O1xuICBwdWJsaWMgZGVjbGFyZSBvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU9sU291cmNlKCk6IG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+IHtcbiAgICBjb25zdCBlc3JpanNvbkZvcm1hdCA9IG5ldyBvbEZvcm1hdEVzcmlKU09OKCk7XG4gICAgcmV0dXJuIG5ldyBvbFNvdXJjZVZlY3Rvcih7XG4gICAgICBhdHRyaWJ1dGlvbnM6IHRoaXMub3B0aW9ucy5wYXJhbXMuYXR0cmlidXRpb25zLFxuICAgICAgb3ZlcmxhcHM6IGZhbHNlLFxuICAgICAgZm9ybWF0OiBlc3JpanNvbkZvcm1hdCxcbiAgICAgIHVybDogZnVuY3Rpb24gKGV4dGVudCwgcmVzb2x1dGlvbiwgcHJvaikge1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5vcHRpb25zLnVybCArICcvJyArIHRoaXMub3B0aW9ucy5sYXllciArICcvcXVlcnkvJztcbiAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgICAgJ3tcInhtaW5cIjonICtcbiAgICAgICAgICAgIGV4dGVudFswXSArXG4gICAgICAgICAgICAnLFwieW1pblwiOicgK1xuICAgICAgICAgICAgZXh0ZW50WzFdICtcbiAgICAgICAgICAgICcsXCJ4bWF4XCI6JyArXG4gICAgICAgICAgICBleHRlbnRbMl0gK1xuICAgICAgICAgICAgJyxcInltYXhcIjonICtcbiAgICAgICAgICAgIGV4dGVudFszXSArXG4gICAgICAgICAgICAnLFwic3BhdGlhbFJlZmVyZW5jZVwiOntcIndraWRcIjoxMDIxMDB9fSdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gW1xuICAgICAgICAgICdmPWpzb24nLFxuICAgICAgICAgIGBnZW9tZXRyeT0ke2dlb21ldHJ5fWAsXG4gICAgICAgICAgJ2dlb21ldHJ5VHlwZT1lc3JpR2VvbWV0cnlFbnZlbG9wZScsXG4gICAgICAgICAgJ2luU1I9MTAyMTAwJyxcbiAgICAgICAgICAnc3BhdGlhbFJlbD1lc3JpU3BhdGlhbFJlbEludGVyc2VjdHMnLFxuICAgICAgICAgICdvdXRGaWVsZHM9KicsXG4gICAgICAgICAgJ3JldHVybkdlb21ldHJ5PXRydWUnLFxuICAgICAgICAgICdvdXRTUj0xMDIxMDAnXG4gICAgICAgIF07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFyYW1zLnRpbWUpIHtcbiAgICAgICAgICBjb25zdCB0aW1lID0gYHRpbWU9JHt0aGlzLm9wdGlvbnMucGFyYW1zLnRpbWV9YDtcbiAgICAgICAgICBwYXJhbXMucHVzaCh0aW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcmFtcy5jdXN0b21QYXJhbXMpIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucGFyYW1zLmN1c3RvbVBhcmFtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBwYXJhbXMucHVzaChlbGVtZW50KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0/JHtwYXJhbXMuam9pbignJicpfWA7XG4gICAgICB9LmJpbmQodGhpcyksXG4gICAgICBzdHJhdGVneTogb2xsb2FkaW5nc3RyYXRlZ3kuYmJveFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGVnZW5kKCk6IExlZ2VuZFtdIHtcbiAgICBjb25zdCBsZWdlbmRJbmZvID0gdGhpcy5vcHRpb25zLmxlZ2VuZEluZm87XG4gICAgY29uc3QgbGVnZW5kID0gc3VwZXIuZ2V0TGVnZW5kKCk7XG4gICAgaWYgKGxlZ2VuZEluZm8gPT09IHVuZGVmaW5lZCB8fCBsZWdlbmQubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGxlZ2VuZDtcbiAgICB9XG4gICAgaWYgKCFsZWdlbmRJbmZvKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBodG1sU3RyaW5nID0gJzx0YWJsZT4nO1xuICAgIGxldCBzcmM6IHN0cmluZztcbiAgICBsZXQgbGFiZWw6IHN0cmluZztcbiAgICBsZXQgc3ZnOiBzdHJpbmc7XG5cbiAgICBpZiAobGVnZW5kSW5mby5sZWdlbmQpIHtcbiAgICAgIGZvciAoY29uc3QgbGVnZW5kRWxlbWVudCBvZiBsZWdlbmRJbmZvLmxlZ2VuZCkge1xuICAgICAgICBzcmMgPSB0aGlzLmh0bWxJbWdTcmMoXG4gICAgICAgICAgbGVnZW5kRWxlbWVudC5jb250ZW50VHlwZSxcbiAgICAgICAgICBsZWdlbmRFbGVtZW50LmltYWdlRGF0YVxuICAgICAgICApO1xuICAgICAgICBsYWJlbCA9IGxlZ2VuZEVsZW1lbnQubGFiZWxcbiAgICAgICAgICA/IGxlZ2VuZEVsZW1lbnQubGFiZWwucmVwbGFjZSgnPE51bGw+JywgJ051bGwnKVxuICAgICAgICAgIDogJyc7XG4gICAgICAgIGh0bWxTdHJpbmcgKz1cbiAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcbiAgICAgICAgICBzcmMgK1xuICAgICAgICAgIGBcIiBhbHQgPScnIC8+PC90ZD48dGQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPmAgK1xuICAgICAgICAgIGxhYmVsICtcbiAgICAgICAgICAnPC90ZD48L3RyPic7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnR5cGUgPT09ICd1bmlxdWVWYWx1ZScpIHtcbiAgICAgIGZvciAoY29uc3QgbGVnZW5kRWxlbWVudCBvZiBsZWdlbmRJbmZvLnVuaXF1ZVZhbHVlSW5mb3MpIHtcbiAgICAgICAgbGFiZWwgPSBsZWdlbmRFbGVtZW50LmxhYmVsLnJlcGxhY2UoJzxOdWxsPicsICdOdWxsJyk7XG4gICAgICAgIGlmIChsZWdlbmRFbGVtZW50LnN5bWJvbC50eXBlID09PSAnZXNyaVBNUycpIHtcbiAgICAgICAgICBzcmMgPSB0aGlzLmh0bWxJbWdTcmMoXG4gICAgICAgICAgICBsZWdlbmRFbGVtZW50LnN5bWJvbC5jb250ZW50VHlwZSxcbiAgICAgICAgICAgIGxlZ2VuZEVsZW1lbnQuc3ltYm9sLmltYWdlRGF0YVxuICAgICAgICAgICk7XG4gICAgICAgICAgaHRtbFN0cmluZyArPVxuICAgICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPjxpbWcgc3JjPVwiYCArXG4gICAgICAgICAgICBzcmMgK1xuICAgICAgICAgICAgYFwiIGFsdCA9JycgLz48L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXG4gICAgICAgICAgICBsYWJlbCArXG4gICAgICAgICAgICAnPC90ZD48L3RyPic7XG4gICAgICAgIH0gZWxzZSBpZiAobGVnZW5kRWxlbWVudC5zeW1ib2wudHlwZSAhPT0gJ2VzcmlQTVMnKSB7XG4gICAgICAgICAgc3ZnID0gdGhpcy5jcmVhdGVTVkcobGVnZW5kRWxlbWVudC5zeW1ib2wpO1xuICAgICAgICAgIGh0bWxTdHJpbmcgKz1cbiAgICAgICAgICAgIGA8dHI+PHRkIGFsaWduPSdsZWZ0Jz5gICtcbiAgICAgICAgICAgIHN2ZyArXG4gICAgICAgICAgICBgPC90ZD48dGQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPmAgK1xuICAgICAgICAgICAgbGFiZWwgK1xuICAgICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnR5cGUgPT09ICdzaW1wbGUnKSB7XG4gICAgICBsYWJlbCA9IGxlZ2VuZEluZm8ubGFiZWxcbiAgICAgICAgPyBsZWdlbmRJbmZvLmxhYmVsLnJlcGxhY2UoJzxOdWxsPicsICdOdWxsJylcbiAgICAgICAgOiAnJztcbiAgICAgIGlmIChsZWdlbmRJbmZvLnN5bWJvbC50eXBlID09PSAnZXNyaVBNUycpIHtcbiAgICAgICAgc3JjID0gdGhpcy5odG1sSW1nU3JjKFxuICAgICAgICAgIGxlZ2VuZEluZm8uc3ltYm9sLmNvbnRlbnRUeXBlLFxuICAgICAgICAgIGxlZ2VuZEluZm8uc3ltYm9sLmltYWdlRGF0YVxuICAgICAgICApO1xuICAgICAgICBodG1sU3RyaW5nICs9XG4gICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPjxpbWcgc3JjPVwiYCArXG4gICAgICAgICAgc3JjICtcbiAgICAgICAgICBgXCIgYWx0ID0nJyAvPjwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcbiAgICAgICAgICBsYWJlbCArXG4gICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnN5bWJvbC50eXBlICE9PSAnZXNyaVBNUycpIHtcbiAgICAgICAgc3ZnID0gdGhpcy5jcmVhdGVTVkcobGVnZW5kSW5mby5zeW1ib2wpO1xuICAgICAgICBodG1sU3RyaW5nICs9XG4gICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPmAgK1xuICAgICAgICAgIHN2ZyArXG4gICAgICAgICAgYDwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcbiAgICAgICAgICBsYWJlbCArXG4gICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgfVxuICAgIH1cbiAgICBodG1sU3RyaW5nICs9ICc8L3RhYmxlPic7XG4gICAgcmV0dXJuIFt7IGh0bWw6IGh0bWxTdHJpbmcgfV07XG4gIH1cblxuICBodG1sSW1nU3JjKGNvbnRlbnRUeXBlOiBzdHJpbmcsIGltYWdlRGF0YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGRhdGE6JHtjb250ZW50VHlwZX07YmFzZTY0LCR7aW1hZ2VEYXRhfWA7XG4gIH1cblxuICBjcmVhdGVTVkcoc3ltYm9sKTogc3RyaW5nIHtcbiAgICBsZXQgc3ZnOiBzdHJpbmcgPSAnJztcblxuICAgIGNvbnN0IGNvbG9yOiBBcnJheTxudW1iZXI+ID0gc3ltYm9sLmNvbG9yID8gc3ltYm9sLmNvbG9yIDogWzAsIDAsIDAsIDBdO1xuXG4gICAgaWYgKHN5bWJvbC50eXBlID09PSAnZXNyaVNMUycpIHtcbiAgICAgIGNvbnN0IHdpZHRoOiBudW1iZXIgPSBzeW1ib2wud2lkdGggPyBzeW1ib2wud2lkdGggOiAwO1xuXG4gICAgICBjb25zdCBzdHJva2U6IHN0cmluZyA9XG4gICAgICAgIGBzdHJva2U6cmdiYShgICtcbiAgICAgICAgY29sb3JbMF0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBjb2xvclsxXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIGNvbG9yWzJdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgY29sb3JbM10gK1xuICAgICAgICAnKSc7XG4gICAgICBjb25zdCBzdHJva2VXaWR0aDogc3RyaW5nID0gYHN0cm9rZS13aWR0aDpgICsgd2lkdGg7XG5cbiAgICAgIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU0xTU29saWQnKSB7XG4gICAgICAgIHN2ZyA9XG4gICAgICAgICAgYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PGxpbmUgeDE9XCIwXCIgeTE9XCIxNVwiIHgyPVwiMzBcIiB5Mj1cIjE1XCIgc3R5bGU9XCJgICtcbiAgICAgICAgICBzdHJva2UgK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xuICAgICAgICAgIGBcIi8+PC9zdmc+YDtcbiAgICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNMU0Rhc2gnKSB7XG4gICAgICAgIGNvbnN0IHN0cm9rZURhc2hBcnJheTogc3RyaW5nID0gYHN0cm9rZS1kYXNoYXJyYXk9XCI1LDVcImA7XG4gICAgICAgIHN2ZyA9XG4gICAgICAgICAgYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PGxpbmUgeDE9XCIwXCIgeTE9XCIxNVwiIHgyPVwiMzBcIiB5Mj1cIjE1XCIgc3R5bGU9XCJgICtcbiAgICAgICAgICBzdHJva2UgK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xuICAgICAgICAgIGBcIiBgICtcbiAgICAgICAgICBzdHJva2VEYXNoQXJyYXkgK1xuICAgICAgICAgIGAvPjwvc3ZnPmA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDaXJjbGUnIHx8XG4gICAgICBzeW1ib2wuc3R5bGUgPT09ICdlc3JpU0ZTU29saWQnXG4gICAgKSB7XG4gICAgICBjb25zdCBvdXRsaW5lQ29sb3IgPSBzeW1ib2wub3V0bGluZS5jb2xvcjtcbiAgICAgIGNvbnN0IG91dGxpbmVXaWR0aCA9IHN5bWJvbC5vdXRsaW5lLndpZHRoO1xuICAgICAgY29uc3Qgc2l6ZSA9IHN5bWJvbC5zaXplO1xuXG4gICAgICBjb25zdCBzdHJva2UgPVxuICAgICAgICBgc3Ryb2tlOnJnYmEoYCArXG4gICAgICAgIG91dGxpbmVDb2xvclswXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIG91dGxpbmVDb2xvclsxXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIG91dGxpbmVDb2xvclsyXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIG91dGxpbmVDb2xvclszXSArXG4gICAgICAgICcpJztcbiAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gYHN0cm9rZS13aWR0aDpgICsgb3V0bGluZVdpZHRoO1xuICAgICAgY29uc3QgZmlsbCA9XG4gICAgICAgIGBmaWxsOnJnYmEoYCArXG4gICAgICAgIGNvbG9yWzBdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgY29sb3JbMV0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBjb2xvclsyXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIGNvbG9yWzNdICtcbiAgICAgICAgJyknO1xuXG4gICAgICBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU0NpcmNsZScpIHtcbiAgICAgICAgc3ZnID1cbiAgICAgICAgICBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cImAgK1xuICAgICAgICAgIHNpemUgLyAyICtcbiAgICAgICAgICBgXCIgc3R5bGU9XCJgICtcbiAgICAgICAgICBzdHJva2UgK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgZmlsbCArXG4gICAgICAgICAgYFwiLz48L3N2Zz5gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ZnID1cbiAgICAgICAgICBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48cmVjdCB4PVwiNVwiIHk9XCI1XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgc3R5bGUgPVwiYCArXG4gICAgICAgICAgc3Ryb2tlICtcbiAgICAgICAgICAnOycgK1xuICAgICAgICAgIHN0cm9rZVdpZHRoICtcbiAgICAgICAgICAnOycgK1xuICAgICAgICAgIGZpbGwgK1xuICAgICAgICAgIGBcIi8+PC9zdmc+YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN2ZztcbiAgfVxuXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7fVxufVxuIl19
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjZ2lzcmVzdC1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYXJjZ2lzcmVzdC1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sZ0JBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFVBQVU7SUFJeEMsY0FBYztRQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUM5QyxRQUFRLEVBQUUsS0FBSztZQUNmLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLEdBQUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSTtnQkFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFDeEUsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQ2pDLFVBQVU7b0JBQ1IsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxVQUFVO29CQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1QsVUFBVTtvQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNULFVBQVU7b0JBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxzQ0FBc0MsQ0FDekMsQ0FBQztn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SCxXQUFXO3dCQUNYLEdBQUc7d0JBQ0gsSUFBSTt3QkFDSixXQUFXLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUc7b0JBQ0QsK0VBQStFO3dCQUMvRSxNQUFNO3dCQUNOLEdBQUc7d0JBQ0gsV0FBVzt3QkFDWCxHQUFHO3dCQUNILElBQUk7d0JBQ0osV0FBVyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sU0FBUyxLQUFJLENBQUM7Q0FDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xGb3JtYXRFc3JpSlNPTiBmcm9tICdvbC9mb3JtYXQvRXNyaUpTT04nO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCAqIGFzIG9sbG9hZGluZ3N0cmF0ZWd5IGZyb20gJ29sL2xvYWRpbmdzdHJhdGVneSc7XG5pbXBvcnQgb2xTb3VyY2VWZWN0b3IgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5cbmltcG9ydCB7IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4vZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgQXJjR0lTUmVzdERhdGFTb3VyY2UgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+O1xuICBwdWJsaWMgZGVjbGFyZSBvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU9sU291cmNlKCk6IG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+IHtcbiAgICBjb25zdCBlc3JpanNvbkZvcm1hdCA9IG5ldyBvbEZvcm1hdEVzcmlKU09OKCk7XG4gICAgcmV0dXJuIG5ldyBvbFNvdXJjZVZlY3Rvcih7XG4gICAgICBhdHRyaWJ1dGlvbnM6IHRoaXMub3B0aW9ucy5wYXJhbXMuYXR0cmlidXRpb25zLFxuICAgICAgb3ZlcmxhcHM6IGZhbHNlLFxuICAgICAgZm9ybWF0OiBlc3JpanNvbkZvcm1hdCxcbiAgICAgIHVybDogZnVuY3Rpb24gKGV4dGVudCwgcmVzb2x1dGlvbiwgcHJvaikge1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5vcHRpb25zLnVybCArICcvJyArIHRoaXMub3B0aW9ucy5sYXllciArICcvcXVlcnkvJztcbiAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgICAgJ3tcInhtaW5cIjonICtcbiAgICAgICAgICAgIGV4dGVudFswXSArXG4gICAgICAgICAgICAnLFwieW1pblwiOicgK1xuICAgICAgICAgICAgZXh0ZW50WzFdICtcbiAgICAgICAgICAgICcsXCJ4bWF4XCI6JyArXG4gICAgICAgICAgICBleHRlbnRbMl0gK1xuICAgICAgICAgICAgJyxcInltYXhcIjonICtcbiAgICAgICAgICAgIGV4dGVudFszXSArXG4gICAgICAgICAgICAnLFwic3BhdGlhbFJlZmVyZW5jZVwiOntcIndraWRcIjoxMDIxMDB9fSdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gW1xuICAgICAgICAgICdmPWpzb24nLFxuICAgICAgICAgIGBnZW9tZXRyeT0ke2dlb21ldHJ5fWAsXG4gICAgICAgICAgJ2dlb21ldHJ5VHlwZT1lc3JpR2VvbWV0cnlFbnZlbG9wZScsXG4gICAgICAgICAgJ2luU1I9MTAyMTAwJyxcbiAgICAgICAgICAnc3BhdGlhbFJlbD1lc3JpU3BhdGlhbFJlbEludGVyc2VjdHMnLFxuICAgICAgICAgICdvdXRGaWVsZHM9KicsXG4gICAgICAgICAgJ3JldHVybkdlb21ldHJ5PXRydWUnLFxuICAgICAgICAgICdvdXRTUj0xMDIxMDAnXG4gICAgICAgIF07XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFyYW1zLnRpbWUpIHtcbiAgICAgICAgICBjb25zdCB0aW1lID0gYHRpbWU9JHt0aGlzLm9wdGlvbnMucGFyYW1zLnRpbWV9YDtcbiAgICAgICAgICBwYXJhbXMucHVzaCh0aW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnBhcmFtcy5jdXN0b21QYXJhbXMpIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucGFyYW1zLmN1c3RvbVBhcmFtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBwYXJhbXMucHVzaChlbGVtZW50KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0/JHtwYXJhbXMuam9pbignJicpfWA7XG4gICAgICB9LmJpbmQodGhpcyksXG4gICAgICBzdHJhdGVneTogb2xsb2FkaW5nc3RyYXRlZ3kuYmJveFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TGVnZW5kKCk6IExlZ2VuZFtdIHtcbiAgICBjb25zdCBsZWdlbmRJbmZvID0gdGhpcy5vcHRpb25zLmxlZ2VuZEluZm87XG4gICAgY29uc3QgbGVnZW5kID0gc3VwZXIuZ2V0TGVnZW5kKCk7XG4gICAgaWYgKGxlZ2VuZEluZm8gPT09IHVuZGVmaW5lZCB8fCBsZWdlbmQubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGxlZ2VuZDtcbiAgICB9XG4gICAgaWYgKCFsZWdlbmRJbmZvKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBodG1sU3RyaW5nID0gJzx0YWJsZT4nO1xuICAgIGxldCBzcmM6IHN0cmluZztcbiAgICBsZXQgbGFiZWw6IHN0cmluZztcbiAgICBsZXQgc3ZnOiBzdHJpbmc7XG5cbiAgICBpZiAobGVnZW5kSW5mby5sZWdlbmQpIHtcbiAgICAgIGZvciAoY29uc3QgbGVnZW5kRWxlbWVudCBvZiBsZWdlbmRJbmZvLmxlZ2VuZCkge1xuICAgICAgICBzcmMgPSB0aGlzLmh0bWxJbWdTcmMoXG4gICAgICAgICAgbGVnZW5kRWxlbWVudC5jb250ZW50VHlwZSxcbiAgICAgICAgICBsZWdlbmRFbGVtZW50LmltYWdlRGF0YVxuICAgICAgICApO1xuICAgICAgICBsYWJlbCA9IGxlZ2VuZEVsZW1lbnQubGFiZWxcbiAgICAgICAgICA/IGxlZ2VuZEVsZW1lbnQubGFiZWwucmVwbGFjZSgnPE51bGw+JywgJ051bGwnKVxuICAgICAgICAgIDogJyc7XG4gICAgICAgIGh0bWxTdHJpbmcgKz1cbiAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcbiAgICAgICAgICBzcmMgK1xuICAgICAgICAgIGBcIiBhbHQgPScnIC8+PC90ZD48dGQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPmAgK1xuICAgICAgICAgIGxhYmVsICtcbiAgICAgICAgICAnPC90ZD48L3RyPic7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnR5cGUgPT09ICd1bmlxdWVWYWx1ZScpIHtcbiAgICAgIGZvciAoY29uc3QgbGVnZW5kRWxlbWVudCBvZiBsZWdlbmRJbmZvLnVuaXF1ZVZhbHVlSW5mb3MpIHtcbiAgICAgICAgbGFiZWwgPSBsZWdlbmRFbGVtZW50LmxhYmVsLnJlcGxhY2UoJzxOdWxsPicsICdOdWxsJyk7XG4gICAgICAgIGlmIChsZWdlbmRFbGVtZW50LnN5bWJvbC50eXBlID09PSAnZXNyaVBNUycpIHtcbiAgICAgICAgICBzcmMgPSB0aGlzLmh0bWxJbWdTcmMoXG4gICAgICAgICAgICBsZWdlbmRFbGVtZW50LnN5bWJvbC5jb250ZW50VHlwZSxcbiAgICAgICAgICAgIGxlZ2VuZEVsZW1lbnQuc3ltYm9sLmltYWdlRGF0YVxuICAgICAgICAgICk7XG4gICAgICAgICAgaHRtbFN0cmluZyArPVxuICAgICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPjxpbWcgc3JjPVwiYCArXG4gICAgICAgICAgICBzcmMgK1xuICAgICAgICAgICAgYFwiIGFsdCA9JycgLz48L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXG4gICAgICAgICAgICBsYWJlbCArXG4gICAgICAgICAgICAnPC90ZD48L3RyPic7XG4gICAgICAgIH0gZWxzZSBpZiAobGVnZW5kRWxlbWVudC5zeW1ib2wudHlwZSAhPT0gJ2VzcmlQTVMnKSB7XG4gICAgICAgICAgc3ZnID0gdGhpcy5jcmVhdGVTVkcobGVnZW5kRWxlbWVudC5zeW1ib2wpO1xuICAgICAgICAgIGh0bWxTdHJpbmcgKz1cbiAgICAgICAgICAgIGA8dHI+PHRkIGFsaWduPSdsZWZ0Jz5gICtcbiAgICAgICAgICAgIHN2ZyArXG4gICAgICAgICAgICBgPC90ZD48dGQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPmAgK1xuICAgICAgICAgICAgbGFiZWwgK1xuICAgICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnR5cGUgPT09ICdzaW1wbGUnKSB7XG4gICAgICBsYWJlbCA9IGxlZ2VuZEluZm8ubGFiZWxcbiAgICAgICAgPyBsZWdlbmRJbmZvLmxhYmVsLnJlcGxhY2UoJzxOdWxsPicsICdOdWxsJylcbiAgICAgICAgOiAnJztcbiAgICAgIGlmIChsZWdlbmRJbmZvLnN5bWJvbC50eXBlID09PSAnZXNyaVBNUycpIHtcbiAgICAgICAgc3JjID0gdGhpcy5odG1sSW1nU3JjKFxuICAgICAgICAgIGxlZ2VuZEluZm8uc3ltYm9sLmNvbnRlbnRUeXBlLFxuICAgICAgICAgIGxlZ2VuZEluZm8uc3ltYm9sLmltYWdlRGF0YVxuICAgICAgICApO1xuICAgICAgICBodG1sU3RyaW5nICs9XG4gICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPjxpbWcgc3JjPVwiYCArXG4gICAgICAgICAgc3JjICtcbiAgICAgICAgICBgXCIgYWx0ID0nJyAvPjwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcbiAgICAgICAgICBsYWJlbCArXG4gICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnN5bWJvbC50eXBlICE9PSAnZXNyaVBNUycpIHtcbiAgICAgICAgc3ZnID0gdGhpcy5jcmVhdGVTVkcobGVnZW5kSW5mby5zeW1ib2wpO1xuICAgICAgICBodG1sU3RyaW5nICs9XG4gICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPmAgK1xuICAgICAgICAgIHN2ZyArXG4gICAgICAgICAgYDwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcbiAgICAgICAgICBsYWJlbCArXG4gICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgfVxuICAgIH1cbiAgICBodG1sU3RyaW5nICs9ICc8L3RhYmxlPic7XG4gICAgcmV0dXJuIFt7IGh0bWw6IGh0bWxTdHJpbmcgfV07XG4gIH1cblxuICBodG1sSW1nU3JjKGNvbnRlbnRUeXBlOiBzdHJpbmcsIGltYWdlRGF0YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGRhdGE6JHtjb250ZW50VHlwZX07YmFzZTY0LCR7aW1hZ2VEYXRhfWA7XG4gIH1cblxuICBjcmVhdGVTVkcoc3ltYm9sKTogc3RyaW5nIHtcbiAgICBsZXQgc3ZnOiBzdHJpbmcgPSAnJztcblxuICAgIGNvbnN0IGNvbG9yOiBBcnJheTxudW1iZXI+ID0gc3ltYm9sLmNvbG9yID8gc3ltYm9sLmNvbG9yIDogWzAsIDAsIDAsIDBdO1xuXG4gICAgaWYgKHN5bWJvbC50eXBlID09PSAnZXNyaVNMUycpIHtcbiAgICAgIGNvbnN0IHdpZHRoOiBudW1iZXIgPSBzeW1ib2wud2lkdGggPyBzeW1ib2wud2lkdGggOiAwO1xuXG4gICAgICBjb25zdCBzdHJva2U6IHN0cmluZyA9XG4gICAgICAgIGBzdHJva2U6cmdiYShgICtcbiAgICAgICAgY29sb3JbMF0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBjb2xvclsxXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIGNvbG9yWzJdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgY29sb3JbM10gK1xuICAgICAgICAnKSc7XG4gICAgICBjb25zdCBzdHJva2VXaWR0aDogc3RyaW5nID0gYHN0cm9rZS13aWR0aDpgICsgd2lkdGg7XG5cbiAgICAgIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU0xTU29saWQnKSB7XG4gICAgICAgIHN2ZyA9XG4gICAgICAgICAgYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PGxpbmUgeDE9XCIwXCIgeTE9XCIxNVwiIHgyPVwiMzBcIiB5Mj1cIjE1XCIgc3R5bGU9XCJgICtcbiAgICAgICAgICBzdHJva2UgK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xuICAgICAgICAgIGBcIi8+PC9zdmc+YDtcbiAgICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNMU0Rhc2gnKSB7XG4gICAgICAgIGNvbnN0IHN0cm9rZURhc2hBcnJheTogc3RyaW5nID0gYHN0cm9rZS1kYXNoYXJyYXk9XCI1LDVcImA7XG4gICAgICAgIHN2ZyA9XG4gICAgICAgICAgYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PGxpbmUgeDE9XCIwXCIgeTE9XCIxNVwiIHgyPVwiMzBcIiB5Mj1cIjE1XCIgc3R5bGU9XCJgICtcbiAgICAgICAgICBzdHJva2UgK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xuICAgICAgICAgIGBcIiBgICtcbiAgICAgICAgICBzdHJva2VEYXNoQXJyYXkgK1xuICAgICAgICAgIGAvPjwvc3ZnPmA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDaXJjbGUnIHx8XG4gICAgICBzeW1ib2wuc3R5bGUgPT09ICdlc3JpU0ZTU29saWQnXG4gICAgKSB7XG4gICAgICBjb25zdCBvdXRsaW5lQ29sb3IgPSBzeW1ib2wub3V0bGluZS5jb2xvcjtcbiAgICAgIGNvbnN0IG91dGxpbmVXaWR0aCA9IHN5bWJvbC5vdXRsaW5lLndpZHRoO1xuICAgICAgY29uc3Qgc2l6ZSA9IHN5bWJvbC5zaXplO1xuXG4gICAgICBjb25zdCBzdHJva2UgPVxuICAgICAgICBgc3Ryb2tlOnJnYmEoYCArXG4gICAgICAgIG91dGxpbmVDb2xvclswXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIG91dGxpbmVDb2xvclsxXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIG91dGxpbmVDb2xvclsyXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIG91dGxpbmVDb2xvclszXSArXG4gICAgICAgICcpJztcbiAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gYHN0cm9rZS13aWR0aDpgICsgb3V0bGluZVdpZHRoO1xuICAgICAgY29uc3QgZmlsbCA9XG4gICAgICAgIGBmaWxsOnJnYmEoYCArXG4gICAgICAgIGNvbG9yWzBdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgY29sb3JbMV0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBjb2xvclsyXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIGNvbG9yWzNdICtcbiAgICAgICAgJyknO1xuXG4gICAgICBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU0NpcmNsZScpIHtcbiAgICAgICAgc3ZnID1cbiAgICAgICAgICBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48Y2lyY2xlIGN4PVwiMTVcIiBjeT1cIjE1XCIgcj1cImAgK1xuICAgICAgICAgIHNpemUgLyAyICtcbiAgICAgICAgICBgXCIgc3R5bGU9XCJgICtcbiAgICAgICAgICBzdHJva2UgK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgZmlsbCArXG4gICAgICAgICAgYFwiLz48L3N2Zz5gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ZnID1cbiAgICAgICAgICBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48cmVjdCB4PVwiNVwiIHk9XCI1XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgc3R5bGUgPVwiYCArXG4gICAgICAgICAgc3Ryb2tlICtcbiAgICAgICAgICAnOycgK1xuICAgICAgICAgIHN0cm9rZVdpZHRoICtcbiAgICAgICAgICAnOycgK1xuICAgICAgICAgIGZpbGwgK1xuICAgICAgICAgIGBcIi8+PC9zdmc+YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN2ZztcbiAgfVxuXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7fVxufVxuIl19
|