@igo2/geo 17.0.0 → 17.0.1-next.2
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 +4 -4
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +6 -6
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +4 -4
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +4 -4
- package/esm2022/lib/catalog/catalog.module.mjs +4 -4
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +17 -21
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +3 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +3 -3
- package/esm2022/lib/datasource/shared/datasource.service.mjs +6 -5
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +5 -3
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +6 -5
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +7 -6
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +4 -2
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +4 -4
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -4
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +4 -4
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +3 -3
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +3 -3
- package/esm2022/lib/directions/directions.component.mjs +6 -7
- package/esm2022/lib/directions/directions.module.mjs +4 -4
- package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.service.mjs +12 -11
- package/esm2022/lib/directions/shared/directions.utils.mjs +3 -3
- package/esm2022/lib/directions/shared/store.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
- package/esm2022/lib/download/download.module.mjs +4 -4
- package/esm2022/lib/download/shared/download.service.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +4 -4
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +9 -9
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw.component.mjs +15 -19
- package/esm2022/lib/draw/draw/draw.module.mjs +4 -4
- package/esm2022/lib/draw/drawingTool.module.mjs +4 -4
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +4 -4
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.utils.mjs +3 -3
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +6 -6
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +3 -3
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +4 -4
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +5 -6
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +4 -4
- package/esm2022/lib/feature/feature.module.mjs +4 -4
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +1 -2
- package/esm2022/lib/feature/shared/store.mjs +4 -4
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +2 -2
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +2 -3
- package/esm2022/lib/feature/shared/strategies/search.mjs +2 -3
- package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
- package/esm2022/lib/filter/filter.module.mjs +4 -4
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +5 -6
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +5 -5
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +9 -29
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +8 -9
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +5 -5
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +5 -6
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +4 -4
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +5 -6
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +3 -3
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +5 -6
- package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.mjs +3 -2
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +5 -6
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +7 -7
- package/esm2022/lib/filter/shared/time-filter.service.mjs +5 -6
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +5 -5
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +3 -3
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +7 -8
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +5 -6
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +17 -17
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +3 -3
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
- package/esm2022/lib/geo.module.mjs +5 -9
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +7 -8
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +4 -4
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +4 -4
- package/esm2022/lib/geometry/geometry.module.mjs +4 -4
- package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -4
- package/esm2022/lib/geometry/shared/controls/slice.mjs +3 -3
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -3
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +2 -11
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +5 -6
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -18
- package/esm2022/lib/import-export/import-export.module.mjs +4 -4
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +4 -4
- package/esm2022/lib/import-export/shared/export.service.mjs +5 -4
- package/esm2022/lib/import-export/shared/export.utils.mjs +2 -2
- package/esm2022/lib/import-export/shared/import.service.mjs +6 -6
- package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +4 -4
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +7 -7
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +4 -4
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +5 -5
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +5 -6
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +3 -3
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +4 -4
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +4 -4
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +5 -6
- package/esm2022/lib/layer/layer.module.mjs +4 -4
- package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2022/lib/layer/shared/layer.service.mjs +6 -5
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
- package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -3
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +5 -5
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +3 -3
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +6 -7
- package/esm2022/lib/layer/utils/outputLegend.mjs +3 -3
- package/esm2022/lib/layer/utils/vector-watcher.mjs +9 -9
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +3 -3
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +3 -3
- package/esm2022/lib/map/info-section/info-section.component.mjs +5 -6
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +3 -3
- package/esm2022/lib/map/map-center/map-center.component.mjs +9 -9
- package/esm2022/lib/map/map.module.mjs +4 -4
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +3 -3
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +5 -6
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +5 -6
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +10 -10
- package/esm2022/lib/map/shared/controllers/view.mjs +3 -3
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +8 -11
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +5 -5
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +4 -4
- package/esm2022/lib/map/shared/map.mjs +4 -4
- package/esm2022/lib/map/shared/map.service.mjs +5 -6
- package/esm2022/lib/map/shared/map.utils.mjs +2 -3
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +3 -3
- package/esm2022/lib/map/shared/projection.service.mjs +3 -3
- package/esm2022/lib/map/shared/projection.utils.mjs +2 -3
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +7 -6
- package/esm2022/lib/map/utils/layer-watcher.mjs +4 -2
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +5 -4
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +5 -6
- package/esm2022/lib/measure/measure.module.mjs +4 -4
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +5 -5
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +5 -6
- package/esm2022/lib/measure/measurer/measurer.component.mjs +8 -16
- package/esm2022/lib/measure/measurer/measurer.module.mjs +4 -4
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -6
- package/esm2022/lib/metadata/metadata.module.mjs +4 -4
- package/esm2022/lib/metadata/shared/metadata.service.mjs +5 -6
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +3 -3
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +6 -6
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +4 -4
- package/esm2022/lib/offline/shared/geo-network.service.mjs +4 -4
- package/esm2022/lib/overlay/shared/index.mjs +1 -3
- package/esm2022/lib/print/print/print.component.mjs +3 -3
- package/esm2022/lib/print/print-form/print-form.component.mjs +5 -5
- package/esm2022/lib/print/print.module.mjs +4 -4
- package/esm2022/lib/print/shared/print.service.mjs +32 -44
- package/esm2022/lib/query/query.module.mjs +4 -4
- package/esm2022/lib/query/shared/query-search-source.mjs +3 -3
- package/esm2022/lib/query/shared/query.directive.mjs +4 -4
- package/esm2022/lib/query/shared/query.enums.mjs +3 -1
- package/esm2022/lib/query/shared/query.service.mjs +23 -21
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +4 -4
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +4 -4
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +7 -9
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +10 -12
- package/esm2022/lib/search/search-results/search-results.component.mjs +4 -4
- package/esm2022/lib/search/search-results/search-results.module.mjs +4 -4
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +4 -4
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +4 -4
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +4 -4
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +4 -4
- package/esm2022/lib/search/search.module.mjs +4 -4
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +5 -4
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +4 -4
- package/esm2022/lib/search/shared/search.utils.mjs +1 -1
- package/esm2022/lib/search/shared/sources/cadastre.mjs +3 -3
- package/esm2022/lib/search/shared/sources/coordinates.mjs +6 -6
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/icherche-icons.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.mjs +14 -13
- 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/nominatim.mjs +4 -4
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.mjs +3 -2
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +7 -10
- package/esm2022/lib/search/shared/sources/workspace.mjs +8 -8
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +2 -1
- package/esm2022/lib/style/shared/feature/feature-style.mjs +3 -3
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +10 -16
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/vector-style.interface.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 +4 -4
- package/esm2022/lib/style/style-list/style-list.provider.mjs +2 -2
- package/esm2022/lib/style/style-list/style-list.service.mjs +5 -5
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +4 -4
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +4 -4
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +5 -5
- package/esm2022/lib/style/style-service/draw-style.service.mjs +5 -6
- package/esm2022/lib/style/style-service/style.service.mjs +4 -4
- package/esm2022/lib/style/style.module.mjs +4 -4
- package/esm2022/lib/toast/toast.component.mjs +5 -6
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/utils/id-generator.mjs +6 -4
- package/esm2022/lib/utils/osmLinks.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +3 -3
- package/esm2022/lib/wkt/shared/wkt.service.mjs +7 -8
- package/esm2022/lib/wkt/wkt.module.mjs +4 -4
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +3 -3
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +4 -4
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +11 -9
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +3 -3
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +3 -3
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +7 -5
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +3 -3
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +3 -3
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace.module.mjs +4 -4
- package/esm2022/public_api.mjs +1 -2
- package/fesm2022/igo2-geo.mjs +943 -1071
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/catalog/shared/catalog.abstract.d.ts +2 -6
- package/lib/catalog/shared/catalog.interface.d.ts +2 -6
- package/lib/catalog/shared/catalogs.d.ts +2 -2
- package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/datasource.d.ts +2 -2
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +4 -12
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/websocket-datasource.d.ts +3 -3
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +2 -2
- package/lib/directions/shared/directions.interface.d.ts +4 -9
- package/lib/directions/shared/directions.utils.d.ts +2 -2
- package/lib/draw/draw/draw.component.d.ts +1 -1
- package/lib/draw/shared/draw-icon.service.d.ts +1 -1
- package/lib/draw/shared/draw.interface.d.ts +1 -2
- package/lib/draw/shared/draw.utils.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.component.d.ts +1 -3
- package/lib/feature/feature-details/feature-details.directive.d.ts +1 -3
- package/lib/feature/feature-form/feature-form.component.d.ts +3 -8
- package/lib/feature/shared/feature.interfaces.d.ts +11 -17
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +0 -1
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -3
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +2 -4
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +2 -2
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +0 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +0 -1
- package/lib/filter/shared/ogc-filter-time.service.d.ts +0 -1
- package/lib/filter/shared/ogc-filter.interface.d.ts +2 -4
- package/lib/filter/shared/ogc-filter.service.d.ts +0 -1
- package/lib/filter/shared/spatial-filter.service.d.ts +1 -3
- package/lib/filter/shared/time-filter.service.d.ts +0 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +2 -6
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +2 -6
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -8
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +0 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +10 -10
- package/lib/geo.module.d.ts +8 -9
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +3 -5
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -3
- package/lib/geometry/shared/geometry.utils.d.ts +1 -8
- package/lib/import-export/export-button/export-button.component.d.ts +0 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -3
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +0 -1
- package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +0 -1
- package/lib/layer/shared/clusterParam.d.ts +1 -3
- package/lib/layer/shared/layers/layer.interface.d.ts +1 -3
- package/lib/layer/shared/layers/vector-layer.d.ts +1 -1
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +0 -1
- package/lib/layer/utils/outputLegend.d.ts +2 -2
- package/lib/map/info-section/info-section.component.d.ts +0 -1
- package/lib/map/map-center/map-center.component.d.ts +0 -1
- package/lib/map/offline-button/offline-button.component.d.ts +0 -1
- package/lib/map/rotation-button/rotation-button.component.d.ts +3 -2
- package/lib/map/shared/map.d.ts +2 -2
- package/lib/map/shared/map.service.d.ts +0 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +0 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +0 -1
- package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
- package/lib/measure/measurer/measurer-item.component.d.ts +0 -1
- package/lib/measure/shared/measure.interfaces.d.ts +1 -2
- package/lib/metadata/shared/metadata.service.d.ts +0 -1
- package/lib/overlay/shared/index.d.ts +0 -2
- package/lib/print/shared/print.service.d.ts +7 -8
- package/lib/query/shared/query.service.d.ts +0 -1
- package/lib/search/search-results/search-results.component.d.ts +5 -15
- package/lib/search/shared/search.interfaces.d.ts +1 -3
- package/lib/search/shared/sources/coordinates.providers.d.ts +1 -1
- package/lib/search/shared/sources/icherche-icons.d.ts +1 -3
- package/lib/search/shared/sources/icherche.interfaces.d.ts +2 -6
- package/lib/search/shared/sources/ilayer.interfaces.d.ts +4 -8
- package/lib/search/shared/sources/source.interfaces.d.ts +2 -6
- package/lib/search/shared/sources/storedqueries.interfaces.d.ts +2 -6
- package/lib/style/shared/feature/feature-style.d.ts +2 -2
- package/lib/style/shared/vector/vector-style.interface.d.ts +12 -20
- package/lib/style/style-list/style-list.interface.d.ts +1 -3
- package/lib/style/style-list/style-list.provider.d.ts +2 -2
- package/lib/style/style-service/draw-style.service.d.ts +0 -1
- package/lib/style/style-service/style.service.d.ts +1 -3
- package/lib/toast/toast.component.d.ts +0 -1
- package/lib/utils/id-generator.d.ts +1 -2
- package/lib/wkt/shared/wkt.service.d.ts +0 -1
- package/lib/workspace/shared/edition-workspace.service.d.ts +2 -6
- package/package.json +18 -19
- package/public_api.d.ts +0 -1
- package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +1 -1
- package/src/lib/directions/directions-results/directions-results.theming.scss +1 -1
- package/src/lib/draw/draw.theming.scss +4 -4
- package/src/lib/feature/feature-details/feature-details.theming.scss +1 -1
- package/src/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +3 -3
- package/src/lib/layer/layer-item/layer-item.theme.scss +4 -4
- package/src/lib/layer/layer-legend/layer-legend.theming.scss +1 -1
- package/src/lib/layer/layer-list-tool/layer-list-tool.theming.scss +1 -1
- package/src/lib/map/map-browser/map-browser.theming.scss +5 -5
- package/src/lib/map/menu-button/menu-button.theming.scss +2 -2
- package/src/lib/map/zoom-button/zoom-button.theming.scss +4 -4
- package/src/lib/measure/measurer/measurer.theming.scss +2 -2
- package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +2 -2
- package/esm2022/lib/overlay/overlay.module.mjs +0 -24
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +0 -39
- package/esm2022/lib/overlay/shared/overlay.service.mjs +0 -26
- package/lib/overlay/overlay.module.d.ts +0 -12
- package/lib/overlay/shared/overlay.directive.d.ts +0 -18
- package/lib/overlay/shared/overlay.service.d.ts +0 -14
|
@@ -15,7 +15,9 @@ export function generateIdFromSourceOptions(options) {
|
|
|
15
15
|
arcgisrest: generateArcgisRestIdFromSourceOptions,
|
|
16
16
|
imagearcgisrest: generateArcgisRestIdFromSourceOptions,
|
|
17
17
|
tilearcgisrest: generateArcgisRestIdFromSourceOptions,
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
18
19
|
osm: (_options) => 'OSM',
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
19
21
|
tiledebug: (_options) => 'tiledebug'
|
|
20
22
|
};
|
|
21
23
|
const generator = generators[options.type] || generateId;
|
|
@@ -60,7 +62,7 @@ export function generateXYZIdFromSourceOptions(options) {
|
|
|
60
62
|
*/
|
|
61
63
|
export function generateFeatureIdFromSourceOptions(options) {
|
|
62
64
|
if (!options.url) {
|
|
63
|
-
return generateId(
|
|
65
|
+
return generateId();
|
|
64
66
|
}
|
|
65
67
|
const url = standardizeUrl(options.url);
|
|
66
68
|
const chain = 'feature' + url;
|
|
@@ -73,7 +75,7 @@ export function generateFeatureIdFromSourceOptions(options) {
|
|
|
73
75
|
*/
|
|
74
76
|
export function generateWfsIdFromSourceOptions(options) {
|
|
75
77
|
if (!options.url || !options.params) {
|
|
76
|
-
return generateId(
|
|
78
|
+
return generateId();
|
|
77
79
|
}
|
|
78
80
|
const url = standardizeUrl(options.url);
|
|
79
81
|
const chain = 'wfs' + url + options.params.featureTypes;
|
|
@@ -94,7 +96,7 @@ export function generateArcgisRestIdFromSourceOptions(options) {
|
|
|
94
96
|
* Generate a unique id
|
|
95
97
|
* @returns A uuid
|
|
96
98
|
*/
|
|
97
|
-
export function generateId(
|
|
99
|
+
export function generateId() {
|
|
98
100
|
return uuid();
|
|
99
101
|
}
|
|
100
102
|
export function standardizeUrl(url) {
|
|
@@ -107,4 +109,4 @@ export function standardizeUrl(url) {
|
|
|
107
109
|
}
|
|
108
110
|
return urlStandardized;
|
|
109
111
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvdXRpbHMvaWQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVM3Qjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUN6QyxPQUEwQjtJQUUxQixNQUFNLFVBQVUsR0FBRztRQUNqQixHQUFHLEVBQUUsOEJBQThCO1FBQ25DLElBQUksRUFBRSwrQkFBK0I7UUFDckMsR0FBRyxFQUFFLDhCQUE4QjtRQUNuQyxPQUFPLEVBQUUsa0NBQWtDO1FBQzNDLEdBQUcsRUFBRSw4QkFBOEI7UUFDbkMsVUFBVSxFQUFFLHFDQUFxQztRQUNqRCxlQUFlLEVBQUUscUNBQXFDO1FBQ3RELGNBQWMsRUFBRSxxQ0FBcUM7UUFDckQsR0FBRyxFQUFFLENBQUMsUUFBOEIsRUFBRSxFQUFFLENBQUMsS0FBSztRQUM5QyxTQUFTLEVBQUUsQ0FBQyxRQUE4QixFQUFFLEVBQUUsQ0FBQyxXQUFXO0tBQzNELENBQUM7SUFDRixNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQztJQUN6RCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxPQUE2QjtJQUMxRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNyQyxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sS0FBSyxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsTUFBTSxD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QUFDLE1BQU0sQ0FDdkMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUM3QyxDQUFDO0lBQ0YsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsZUFBZSxJQUFJLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgTWQ1IH0gZnJvbSAndHMtbWQ1JztcblxuaW1wb3J0IHsgV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcyc7XG5pbXBvcnQgeyBBbnlEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2FueS1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdNVFNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtdHMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hcmNnaXNyZXN0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGlkIGZyb20gaXQncyBkYXRhc291cmNlIG9wdGlvbnMuXG4gKiBAcGFyYW0gb3B0aW9ucyBEYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcmV0dXJucyBBIGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUlkRnJvbVNvdXJjZU9wdGlvbnMoXG4gIG9wdGlvbnM6IERhdGFTb3VyY2VPcHRpb25zXG4pOiBzdHJpbmcge1xuICBjb25zdCBnZW5lcmF0b3JzID0ge1xuICAgIHdtczogZ2VuZXJhdGVXTVNJZEZyb21Tb3VyY2VPcHRpb25zLFxuICAgIHdtdHM6IGdlbmVyYXRlV01UU0lkRnJvbVNvdXJjZU9wdGlvbnMsXG4gICAgeHl6OiBnZW5lcmF0ZVhZWklkRnJvbVNvdXJjZU9wdGlvbnMsXG4gICAgZmVhdHVyZTogZ2VuZXJhdGVGZWF0dXJlSWRGcm9tU291cmNlT3B0aW9ucyxcbiAgICB3ZnM6IGdlbmVyYXRlV2ZzSWRGcm9tU291cmNlT3B0aW9ucyxcbiAgICBhcmNnaXNyZXN0OiBnZW5lcmF0ZUFyY2dpc1Jlc3RJZEZyb21Tb3VyY2VPcHRpb25zLFxuICAgIGltYWdlYXJjZ2lzcmVzdDogZ2VuZXJhdGVBcmNnaXNSZXN0SWRGcm9tU291cmNlT3B0aW9ucyxcbiAgICB0aWxlYXJjZ2lzcmVzdDogZ2VuZXJhdGVBcmNnaXNSZXN0SWRGcm9tU291cmNlT3B0aW9ucyxcbiAgICBvc206IChfb3B0aW9uczogQW55RGF0YVNvdXJjZU9wdGlvbnMpID0+ICdPU00nLFxuICAgIHRpbGVkZWJ1ZzogKF9vcHRpb25zOiBBbnlEYXRhU291cmNlT3B0aW9ucykgPT4gJ3RpbGVkZWJ1ZydcbiAgfTtcbiAgY29uc3QgZ2VuZXJhdG9yID0gZ2VuZXJhdG9yc1tvcHRpb25zLnR5cGVdIHx8IGdlbmVyYXRlSWQ7XG4gIHJldHVybiBnZW5lcmF0b3Iob3B0aW9ucyk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBpZCBmcm9tIFdNUyBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcGFyYW0gb3B0aW9ucyBXTVMgZGF0YSBzb3VyY2Ugb3B0aW9uc1xuICogQHJldHVybnMgQSBtZDUgaGFzaCBvZiB0aGUgdGhlIHVybCBhbmQgbGF5ZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVdNU0lkRnJvbVNvdXJjZU9wdGlvbnMob3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMpIHtcbiAgY29uc3QgbGF5ZXJzID0gb3B0aW9ucy5wYXJhbXMuTEFZRVJTO1xuICBjb25zdCB1cmwgPSBzdGFuZGFyZGl6ZVVybChvcHRpb25zLnVybCk7XG4gIGNvbnN0IGNoYWluID0gJ3dtcycgKyB1cmwgKyBsYXllcnM7XG4gIHJldHVybiBNZDUuaGFzaFN0cihjaGFpbikgYXMgc3RyaW5nO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgaWQgZnJvbSBXTVRTIGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEBwYXJhbSBvcHRpb25zIFdNVFMgZGF0YSBzb3VyY2Ugb3B0aW9uc1xuICogQHJldHVybnMgQSBtZDUgaGFzaCBvZiB0aGUgdGhlIHVybCBhbmQgbGF5ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlV01UU0lkRnJvbVNvdXJjZU9wdGlvbnMoXG4gIG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9uc1xuKSB7XG4gIGNvbnN0IGxheWVyID0gb3B0aW9ucy5sYXllcjtcbiAgY29uc3QgdXJsID0gc3RhbmRhcmRpemVVcmwob3B0aW9ucy51cmwpO1xuICBjb25zdCBjaGFpbiA9ICd3bXRzJyArIHVybCArIGxheWVyO1xuICByZXR1cm4gTWQ1Lmhhc2hTdHIoY2hhaW4pIGFzIHN0cmluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGlkIGZyb20gWFlaIGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEBwYXJhbSBvcHRpb25zIFhZWiBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcmV0dXJucyBBIG1kNSBoYXNoIG9mIHRoZSB0aGUgdXJsIGFuZCBsYXllclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVYWVpJZEZyb21Tb3VyY2VPcHRpb25zKG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucykge1xuICBjb25zdCB1cmwgPSBzdGFuZGFyZGl6ZVVybChvcHRpb25zLnVybCk7XG4gIGNvbnN0IGNoYWluID0gJ3h5eicgKyB1cmw7XG4gIHJldHVybiBNZDUuaGFzaFN0cihjaGFpbikgYXMgc3RyaW5nO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgaWQgZnJvbSBmZWF0dXJlIGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEBwYXJhbSBvcHRpb25zIFhZWiBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcmV0dXJucyBBIG1kNSBoYXNoIG9mIHRoZSB0aGUgdXJsIGFuZCBsYXllclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVGZWF0dXJlSWRGcm9tU291cmNlT3B0aW9ucyhcbiAgb3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zXG4pIHtcbiAgaWYgKCFvcHRpb25zLnVybCkge1xuICAgIHJldHVybiBnZW5lcmF0ZUlkKG9wdGlvbnMpO1xuICB9XG4gIGNvbnN0IHVybCA9IHN0YW5kYXJkaXplVXJsKG9wdGlvbnMudXJsKTtcbiAgY29uc3QgY2hhaW4gPSAnZmVhdHVyZScgKyB1cmw7XG4gIHJldHVybiBNZDUuaGFzaFN0cihjaGFpbikgYXMgc3RyaW5nO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgaWQgZnJvbSBmZWF0dXJlIGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEBwYXJhbSBvcHRpb25zIFhZWiBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcmV0dXJucyBBIG1kNSBoYXNoIG9mIHRoZSB0aGUgdXJsIGFuZCBsYXllclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVXZnNJZEZyb21Tb3VyY2VPcHRpb25zKG9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucy51cmwgfHwgIW9wdGlvbnMucGFyYW1zKSB7XG4gICAgcmV0dXJuIGdlbmVyYXRlSWQob3B0aW9ucyk7XG4gIH1cbiAgY29uc3QgdXJsID0gc3RhbmRhcmRpemVVcmwob3B0aW9ucy51cmwpO1xuICBjb25zdCBjaGFpbiA9ICd3ZnMnICsgdXJsICsgb3B0aW9ucy5wYXJhbXMuZmVhdHVyZVR5cGVzO1xuICByZXR1cm4gTWQ1Lmhhc2hTdHIoY2hhaW4pIGFzIHN0cmluZztcbn1cbi8qKlxuICogR2VuZXJhdGUgYSBpZCBmcm9tIEFyY0dJUyBSZXN0IGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEBwYXJhbSBvcHRpb25zIEFyY0dJUyBSZXN0IGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEByZXR1cm5zIEEgbWQ1IGhhc2ggb2YgdGhlIHVybCBhbmQgbGF5ZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUFyY2dpc1Jlc3RJZEZyb21Tb3VyY2VPcHRpb25zKFxuICBvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbikge1xuICBjb25zdCBsYXllcnMgPSBvcHRpb25zLmxheWVyO1xuICBjb25zdCB1cmwgPSBzdGFuZGFyZGl6ZVVybChvcHRpb25zLnVybCk7XG4gIGNvbnN0IGNoYWluID0gKG9wdGlvbnMudHlwZSB8fCAnYXJjZ2lzJykgKyB1cmwgKyBsYXllcnM7XG4gIHJldHVybiBNZDUuaGFzaFN0cihjaGFpbikgYXMgc3RyaW5nO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgdW5pcXVlIGlkXG4gKiBAcmV0dXJucyBBIHV1aWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSWQoX29wdGlvbnM6IEFueURhdGFTb3VyY2VPcHRpb25zKSB7XG4gIHJldHVybiB1dWlkKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFuZGFyZGl6ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGFic1VybCA9IHVybC5jaGFyQXQoMCkgPT09ICcvJyA/IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB1cmwgOiB1cmw7XG4gIGNvbnN0IHVybERlY29tcG9zZWQgPSBhYnNVcmwuc3BsaXQoL1s/Jl0vKTtcbiAgbGV0IHVybFN0YW5kYXJkaXplZCA9IHVybERlY29tcG9zZWQuc2hpZnQoKTtcbiAgY29uc3QgcGFyYW1zVG9LZWVwID0gdXJsRGVjb21wb3NlZC5maWx0ZXIoXG4gICAgKHApID0+IHAubGVuZ3RoICE9PSAwICYmIHAuY2hhckF0KDApICE9PSAnXydcbiAgKTtcbiAgaWYgKHBhcmFtc1RvS2VlcC5sZW5ndGgpIHtcbiAgICB1cmxTdGFuZGFyZGl6ZWQgKz0gJz8nICsgcGFyYW1zVG9LZWVwLmpvaW4oJyYnKTtcbiAgfVxuICByZXR1cm4gdXJsU3RhbmRhcmRpemVkO1xufVxuIl19
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvdXRpbHMvaWQtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVM3Qjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUN6QyxPQUEwQjtJQUUxQixNQUFNLFVBQVUsR0FBRztRQUNqQixHQUFHLEVBQUUsOEJBQThCO1FBQ25DLElBQUksRUFBRSwrQkFBK0I7UUFDckMsR0FBRyxFQUFFLDhCQUE4QjtRQUNuQyxPQUFPLEVBQUUsa0NBQWtDO1FBQzNDLEdBQUcsRUFBRSw4QkFBOEI7UUFDbkMsVUFBVSxFQUFFLHFDQUFxQztRQUNqRCxlQUFlLEVBQUUscUNBQXFDO1FBQ3RELGNBQWMsRUFBRSxxQ0FBcUM7UUFDckQsNkRBQTZEO1FBQzdELEdBQUcsRUFBRSxDQUFDLFFBQThCLEVBQUUsRUFBRSxDQUFDLEtBQUs7UUFDOUMsNkRBQTZEO1FBQzdELFNBQVMsRUFBRSxDQUFDLFFBQThCLEVBQUUsRUFBRSxDQUFDLFdBQVc7S0FDM0QsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDO0lBQ3pELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLDhCQUE4QixDQUFDLE9BQTZCO0lBQzFFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3JDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsTUFBTSxLQUFLLEdBQUcs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QUFNLENBQ3ZDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FDN0MsQ0FBQztJQUNGLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLGVBQWUsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IE1kNSB9IGZyb20gJ3RzLW1kNSc7XG5cbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMnO1xuaW1wb3J0IHsgQW55RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hbnktZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXTVRTRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXRzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbi8qKlxuICogR2VuZXJhdGUgYSBpZCBmcm9tIGl0J3MgZGF0YXNvdXJjZSBvcHRpb25zLlxuICogQHBhcmFtIG9wdGlvbnMgRGF0YSBzb3VyY2Ugb3B0aW9uc1xuICogQHJldHVybnMgQSBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJZEZyb21Tb3VyY2VPcHRpb25zKFxuICBvcHRpb25zOiBEYXRhU291cmNlT3B0aW9uc1xuKTogc3RyaW5nIHtcbiAgY29uc3QgZ2VuZXJhdG9ycyA9IHtcbiAgICB3bXM6IGdlbmVyYXRlV01TSWRGcm9tU291cmNlT3B0aW9ucyxcbiAgICB3bXRzOiBnZW5lcmF0ZVdNVFNJZEZyb21Tb3VyY2VPcHRpb25zLFxuICAgIHh5ejogZ2VuZXJhdGVYWVpJZEZyb21Tb3VyY2VPcHRpb25zLFxuICAgIGZlYXR1cmU6IGdlbmVyYXRlRmVhdHVyZUlkRnJvbVNvdXJjZU9wdGlvbnMsXG4gICAgd2ZzOiBnZW5lcmF0ZVdmc0lkRnJvbVNvdXJjZU9wdGlvbnMsXG4gICAgYXJjZ2lzcmVzdDogZ2VuZXJhdGVBcmNnaXNSZXN0SWRGcm9tU291cmNlT3B0aW9ucyxcbiAgICBpbWFnZWFyY2dpc3Jlc3Q6IGdlbmVyYXRlQXJjZ2lzUmVzdElkRnJvbVNvdXJjZU9wdGlvbnMsXG4gICAgdGlsZWFyY2dpc3Jlc3Q6IGdlbmVyYXRlQXJjZ2lzUmVzdElkRnJvbVNvdXJjZU9wdGlvbnMsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIG9zbTogKF9vcHRpb25zOiBBbnlEYXRhU291cmNlT3B0aW9ucykgPT4gJ09TTScsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHRpbGVkZWJ1ZzogKF9vcHRpb25zOiBBbnlEYXRhU291cmNlT3B0aW9ucykgPT4gJ3RpbGVkZWJ1ZydcbiAgfTtcbiAgY29uc3QgZ2VuZXJhdG9yID0gZ2VuZXJhdG9yc1tvcHRpb25zLnR5cGVdIHx8IGdlbmVyYXRlSWQ7XG4gIHJldHVybiBnZW5lcmF0b3Iob3B0aW9ucyk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBpZCBmcm9tIFdNUyBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcGFyYW0gb3B0aW9ucyBXTVMgZGF0YSBzb3VyY2Ugb3B0aW9uc1xuICogQHJldHVybnMgQSBtZDUgaGFzaCBvZiB0aGUgdGhlIHVybCBhbmQgbGF5ZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVdNU0lkRnJvbVNvdXJjZU9wdGlvbnMob3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMpIHtcbiAgY29uc3QgbGF5ZXJzID0gb3B0aW9ucy5wYXJhbXMuTEFZRVJTO1xuICBjb25zdCB1cmwgPSBzdGFuZGFyZGl6ZVVybChvcHRpb25zLnVybCk7XG4gIGNvbnN0IGNoYWluID0gJ3dtcycgKyB1cmwgKyBsYXllcnM7XG4gIHJldHVybiBNZDUuaGFzaFN0cihjaGFpbikgYXMgc3RyaW5nO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgaWQgZnJvbSBXTVRTIGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEBwYXJhbSBvcHRpb25zIFdNVFMgZGF0YSBzb3VyY2Ugb3B0aW9uc1xuICogQHJldHVybnMgQSBtZDUgaGFzaCBvZiB0aGUgdGhlIHVybCBhbmQgbGF5ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlV01UU0lkRnJvbVNvdXJjZU9wdGlvbnMoXG4gIG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9uc1xuKSB7XG4gIGNvbnN0IGxheWVyID0gb3B0aW9ucy5sYXllcjtcbiAgY29uc3QgdXJsID0gc3RhbmRhcmRpemVVcmwob3B0aW9ucy51cmwpO1xuICBjb25zdCBjaGFpbiA9ICd3bXRzJyArIHVybCArIGxheWVyO1xuICByZXR1cm4gTWQ1Lmhhc2hTdHIoY2hhaW4pIGFzIHN0cmluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGlkIGZyb20gWFlaIGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEBwYXJhbSBvcHRpb25zIFhZWiBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcmV0dXJucyBBIG1kNSBoYXNoIG9mIHRoZSB0aGUgdXJsIGFuZCBsYXllclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVYWVpJZEZyb21Tb3VyY2VPcHRpb25zKG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucykge1xuICBjb25zdCB1cmwgPSBzdGFuZGFyZGl6ZVVybChvcHRpb25zLnVybCk7XG4gIGNvbnN0IGNoYWluID0gJ3h5eicgKyB1cmw7XG4gIHJldHVybiBNZDUuaGFzaFN0cihjaGFpbikgYXMgc3RyaW5nO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgaWQgZnJvbSBmZWF0dXJlIGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEBwYXJhbSBvcHRpb25zIFhZWiBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcmV0dXJucyBBIG1kNSBoYXNoIG9mIHRoZSB0aGUgdXJsIGFuZCBsYXllclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVGZWF0dXJlSWRGcm9tU291cmNlT3B0aW9ucyhcbiAgb3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zXG4pIHtcbiAgaWYgKCFvcHRpb25zLnVybCkge1xuICAgIHJldHVybiBnZW5lcmF0ZUlkKCk7XG4gIH1cbiAgY29uc3QgdXJsID0gc3RhbmRhcmRpemVVcmwob3B0aW9ucy51cmwpO1xuICBjb25zdCBjaGFpbiA9ICdmZWF0dXJlJyArIHVybDtcbiAgcmV0dXJuIE1kNS5oYXNoU3RyKGNoYWluKSBhcyBzdHJpbmc7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBpZCBmcm9tIGZlYXR1cmUgZGF0YSBzb3VyY2Ugb3B0aW9uc1xuICogQHBhcmFtIG9wdGlvbnMgWFlaIGRhdGEgc291cmNlIG9wdGlvbnNcbiAqIEByZXR1cm5zIEEgbWQ1IGhhc2ggb2YgdGhlIHRoZSB1cmwgYW5kIGxheWVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVdmc0lkRnJvbVNvdXJjZU9wdGlvbnMob3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zLnVybCB8fCAhb3B0aW9ucy5wYXJhbXMpIHtcbiAgICByZXR1cm4gZ2VuZXJhdGVJZCgpO1xuICB9XG4gIGNvbnN0IHVybCA9IHN0YW5kYXJkaXplVXJsKG9wdGlvbnMudXJsKTtcbiAgY29uc3QgY2hhaW4gPSAnd2ZzJyArIHVybCArIG9wdGlvbnMucGFyYW1zLmZlYXR1cmVUeXBlcztcbiAgcmV0dXJuIE1kNS5oYXNoU3RyKGNoYWluKSBhcyBzdHJpbmc7XG59XG4vKipcbiAqIEdlbmVyYXRlIGEgaWQgZnJvbSBBcmNHSVMgUmVzdCBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcGFyYW0gb3B0aW9ucyBBcmNHSVMgUmVzdCBkYXRhIHNvdXJjZSBvcHRpb25zXG4gKiBAcmV0dXJucyBBIG1kNSBoYXNoIG9mIHRoZSB1cmwgYW5kIGxheWVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVBcmNnaXNSZXN0SWRGcm9tU291cmNlT3B0aW9ucyhcbiAgb3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4pIHtcbiAgY29uc3QgbGF5ZXJzID0gb3B0aW9ucy5sYXllcjtcbiAgY29uc3QgdXJsID0gc3RhbmRhcmRpemVVcmwob3B0aW9ucy51cmwpO1xuICBjb25zdCBjaGFpbiA9IChvcHRpb25zLnR5cGUgfHwgJ2FyY2dpcycpICsgdXJsICsgbGF5ZXJzO1xuICByZXR1cm4gTWQ1Lmhhc2hTdHIoY2hhaW4pIGFzIHN0cmluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHVuaXF1ZSBpZFxuICogQHJldHVybnMgQSB1dWlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUlkKCkge1xuICByZXR1cm4gdXVpZCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhbmRhcmRpemVVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBhYnNVcmwgPSB1cmwuY2hhckF0KDApID09PSAnLycgPyB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgdXJsIDogdXJsO1xuICBjb25zdCB1cmxEZWNvbXBvc2VkID0gYWJzVXJsLnNwbGl0KC9bPyZdLyk7XG4gIGxldCB1cmxTdGFuZGFyZGl6ZWQgPSB1cmxEZWNvbXBvc2VkLnNoaWZ0KCk7XG4gIGNvbnN0IHBhcmFtc1RvS2VlcCA9IHVybERlY29tcG9zZWQuZmlsdGVyKFxuICAgIChwKSA9PiBwLmxlbmd0aCAhPT0gMCAmJiBwLmNoYXJBdCgwKSAhPT0gJ18nXG4gICk7XG4gIGlmIChwYXJhbXNUb0tlZXAubGVuZ3RoKSB7XG4gICAgdXJsU3RhbmRhcmRpemVkICs9ICc/JyArIHBhcmFtc1RvS2VlcC5qb2luKCcmJyk7XG4gIH1cbiAgcmV0dXJuIHVybFN0YW5kYXJkaXplZDtcbn1cbiJdfQ==
|
|
@@ -6,4 +6,4 @@ export class OsmLinks {
|
|
|
6
6
|
return `https://openstreetcam.org/map/@${lat},${lon},${zoom}z`;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NtTGlua3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi91dGlscy9vc21MaW5rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUNuQixNQUFNLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEdBQUcsRUFBRTtRQUM3QyxPQUFPLHVDQUF1QyxHQUFHLFNBQVMsR0FBRyxRQUFRLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDNUYsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFO1FBQzdDLE9BQU8sa0NBQWtDLEdBQUcsSUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLENBQUM7SUFDakUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE9zbUxpbmtzIHtcbiAgc3RhdGljIGdldE9wZW5TdHJlZXRNYXBMaW5rKGxvbiwgbGF0LCB6b29tID0gMTcpIHtcbiAgICByZXR1cm4gYGh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnLz9tbGF0PSR7bGF0fSZtbG9uPSR7bG9ufSNtYXA9JHt6b29tfS8ke2xhdH0vJHtsb259YDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRPcGVuU3RyZWV0Q2FtTGluayhsb24sIGxhdCwgem9vbSA9IDE3KSB7XG4gICAgcmV0dXJuIGBodHRwczovL29wZW5zdHJlZXRjYW0ub3JnL21hcC9AJHtsYXR9LCR7bG9ufSwke3pvb219emA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -52,10 +52,10 @@ export class PropertyTypeDetectorService {
|
|
|
52
52
|
return (this.regexService.get('geoservice') ||
|
|
53
53
|
[]);
|
|
54
54
|
}
|
|
55
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
56
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
55
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PropertyTypeDetectorService, deps: [{ token: i1.RegexService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
56
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PropertyTypeDetectorService, providedIn: 'root' });
|
|
57
57
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: PropertyTypeDetectorService, decorators: [{
|
|
59
59
|
type: Injectable,
|
|
60
60
|
args: [{
|
|
61
61
|
providedIn: 'root'
|
|
@@ -3,7 +3,6 @@ import olWKT from 'ol/format/WKT';
|
|
|
3
3
|
import * as olproj from 'ol/proj';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class WktService {
|
|
6
|
-
constructor() { }
|
|
7
6
|
wktToFeature(wkt, wktProj, featureProj) {
|
|
8
7
|
return new olWKT().readFeature(wkt, {
|
|
9
8
|
dataProjection: wktProj,
|
|
@@ -11,8 +10,8 @@ export class WktService {
|
|
|
11
10
|
});
|
|
12
11
|
}
|
|
13
12
|
extentToWkt(epsgTO, extent, extentProj) {
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
const currentExtent = olproj.transformExtent(extent, extentProj, epsgTO);
|
|
14
|
+
this.roundCoordinateArray(currentExtent, epsgTO, 0);
|
|
16
15
|
const wktPoly = `POLYGON((
|
|
17
16
|
${extent[0]} ${extent[1]},
|
|
18
17
|
${extent[0]} ${extent[3]},
|
|
@@ -224,13 +223,13 @@ export class WktService {
|
|
|
224
223
|
};
|
|
225
224
|
}
|
|
226
225
|
}
|
|
227
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
228
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
226
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WktService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
227
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WktService, providedIn: 'root' });
|
|
229
228
|
}
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: WktService, decorators: [{
|
|
231
230
|
type: Injectable,
|
|
232
231
|
args: [{
|
|
233
232
|
providedIn: 'root'
|
|
234
233
|
}]
|
|
235
|
-
}]
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2t0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93a3Qvc2hhcmVkL3drdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDOztBQUtsQyxNQUFNLE9BQU8sVUFBVTtJQUNyQixnQkFBZSxDQUFDO0lBRVQsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsV0FBVztRQUMzQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxjQUFjLEVBQUUsT0FBTztZQUN2QixpQkFBaUIsRUFBRSxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQzNDLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2RSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUc7UUFDWixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFD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QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzNCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUMzQixFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1NBQzdCLENBQUM7UUFDRixNQUFNLEVBQUUsR0FBRztZQUNULENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7U0FDMUIsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHO1lBQ3BC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S0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2lCQUNuQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ1gsR0FBRyxDQUFDO1lBQ04sT0FBTztnQkFDTCxPQUFPO2dCQUNQLE9BQU87Z0JBQ1AsY0FBYzthQUNmLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzt1R0ExUFUsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCBvbFdLVCBmcm9tICdvbC9mb3JtYXQvV0tUJztcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2t0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgd2t0VG9GZWF0dXJlKHdrdCwgd2t0UHJvaiwgZmVhdHVyZVByb2opIHtcbiAgICByZXR1cm4gbmV3IG9sV0tUKCkucmVhZEZlYXR1cmUod2t0LCB7XG4gICAgICBkYXRhUHJvamVjdGlvbjogd2t0UHJvaixcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBmZWF0dXJlUHJvalxuICAgIH0pO1xuICB9XG4gIHB1YmxpYyBleHRlbnRUb1drdChlcHNnVE8sIGV4dGVudCwgZXh0ZW50UHJvaikge1xuICAgIGxldCBjdXJyZW50RXh0ZW50ID0gb2xwcm9qLnRyYW5zZm9ybUV4dGVudChleHRlbnQsIGV4dGVudFByb2osIGVwc2dUTyk7XG4gICAgY3VycmVudEV4dGVudCA9IHRoaXMucm91bmRDb29yZGluYXRlQXJyYXkoY3VycmVudEV4dGVudCwgZXBzZ1RPLCAwKTtcbiAgICBjb25zdCB3a3RQb2x5ID0gYFBPTFlHT04oKFxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFszXX0sXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFsxXX0pKWA7XG4gICAgY29uc3Qgd2t0TGluZSA9IGBMSU5FU1RSSU5HKFxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFszXX0sXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFsxXX0pYDtcbiAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9IGBNVUxUSVBPSU5UKFxuICAgICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19LFxuICAgICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbM119LFxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbMV19KWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdrdFBvbHksXG4gICAgICB3a3RMaW5lLFxuICAgICAgd2t0TXVsdGlQb2ludHNcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByb3VuZENvb3JkaW5hdGVBcnJheShjb29yZGluYXRlQXJyYXksIHByb2plY3Rpb24sIGRlY2ltYWwgPSAwKSB7XG4gICAgY29uc3QgbHByb2ogPSBvbHByb2ouZ2V0KHByb2plY3Rpb24pO1xuICAgIGNvbnN0IHVuaXRzID0gbHByb2ouZ2V0VW5pdHMoKTtcbiAgICBjb25zdCBvbFVuaXRzID0gWydmdCcsICdtJywgJ3VzLWZ0J107XG4gICAgaWYgKG9sVW5pdHMuaW5kZXhPZih1bml0cykgIT09IC0xKSB7XG4gICAgICBjb29yZGluYXRlQXJyYXkgPSB0aGlzLnJvdW5kQXJyYXkoY29vcmRpbmF0ZUFycmF5LCBkZWNpbWFsKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvb3JkaW5hdGVBcnJheTtcbiAgfVxuXG4gIHByaXZhdGUgcm91bmRBcnJheShhcnJheSwgZGVjaW1hbCA9IDApIHtcbiAgICBsZXQgeCA9IDA7XG4gICAgd2hpbGUgKHggPCBhcnJheS5sZW5ndGgpIHtcbiAgICAgIGFycmF5W3hdID0gYXJyYXlbeF0udG9GaXhlZChkZWNpbWFsKTtcbiAgICAgIHgrKztcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgcHVibGljIHNucmNUb1drdChzbnJjLCBlcHNnVE8pIHtcbiAgICBzbnJjID0gc25yYy50b0xvd2VyQ2FzZSgpO1xuICAgIGxldCB3a3RQb2x5O1xuICAgIGNvbnN0IGV3ID0ge1xuICAgICAgMTogeyBmcm9tOiAtNTYsIHRvOiAtNjQgfSxcbiAgICAgIDI6IHsgZnJvbTogLTY0LCB0bzogLTcyIH0sXG4gICAgICAzOiB7IGZyb206IC03MiwgdG86IC04MCB9LFxuICAgICAgNDogeyBmcm9tOiAtODAsIHRvOiAtODggfSxcbiAgICAgIDU6IHsgZnJvbTogLTg4LCB0bzogLTk2IH0sXG4gICAgICA2OiB7IGZyb206IC05NiwgdG86IC0xMDQgfSxcbiAgICAgIDc6IHsgZnJvbTogLTEwNCwgdG86IC0xMTIgfSxcbiAgICAgIDg6IHsgZnJvbTogLTExMiwgdG86IC0xMjAgfSxcbiAgICAgIDk6IHsgZnJvbTogLTEyMCwgdG86IC0xMjggfSxcbiAgICAgIDEwOiB7IGZyb206IC0xMjgsIHRvOiAtMTM2IH1cbiAgICB9O1xuICAgIGNvbnN0IHNuID0ge1xuICAgICAgMTogeyBmcm9tOiA0NCwgdG86IDQ4IH0sXG4gICAgICAyOiB7IGZyb206IDQ4LCB0bzogNTIgfSxcbiAgICAgIDM6IHsgZnJvbTogNTIsIHRvOiA1NiB9LFxuICAgICAgNDogeyBmcm9tOiA1NiwgdG86IDYwIH0sXG4gICAgICA1OiB7IGZyb206IDYwLCB0bzogNjQgfSxcbiAgICAgIDY6IHsgZnJvbTogNjQsIHRvOiA2OCB9LFxuICAgICAgNzogeyBmcm9tOiA2OCwgdG86IDcyIH0sXG4gICAgICA4OiB7IGZyb206IDcyLCB0bzogNzYgfSxcbiAgICAgIDk6IHsgZnJvbTogNzYsIHRvOiAtMTI4IH1cbiAgICB9O1xuICAgIGNvbnN0IHNucmMyNTBrSW5kZXggPSBbXG4gICAgICBbJ20nLCAnbicsICdvJywgJ3AnXSxcbiAgICAgIFsnbCcsICdrJywgJ2onLCAnaSddLFxuICAgICAgWydlJywgJ2YnLCAnZycsICdoJ10sXG4gICAgICBbJ2QnLCAnYycsICdiJywgJ2EnXVxuICAgIF07XG5cbiAgICBjb25zdCBzbnJjNTBrSW5kZXggPSBbXG4gICAgICBbJzEzJywgJzE0JywgJzE1JywgJzE2J10sXG4gICAgICBbJzEyJywgJzExJywgJzEwJywgJzA5J10sXG4gICAgICBbJzA1JywgJzA2JywgJzA3JywgJzA4J10sXG4gICAgICBbJzA0JywgJzAzJywgJzAyJywgJzAxJ11cbiAgICBdO1xuICAgIGNvbnN0IGNoZWNrU05SQzUwayA9IC9cXGR7MiwzfVthLXBdWzAsMV1bMC05XS9naTtcbiAgICBjb25zdCBjaGVja1NOUkMyNTBrID0gL1xcZHsyLDN9W2EtcF0vZ2k7XG4gICAgY29uc3QgY2hlY2tTTlJDMW0gPSAvXFxkezIsM30vZ2k7XG5cbiAgICBsZXQgc25yYzFtID0gZmFsc2U7XG4gICAgbGV0IHNucmMyNTBrID0gZmFsc2U7XG4gICAgbGV0IHNucmM1MGsgPSBmYWxzZTtcblxuICAgIGlmIChjaGVja1NOUkM1MGsudGVzdChzbnJjKSkge1xuICAgICAgc25yYzUwayA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjaGVja1NOUkMyNTBrLnRlc3Qoc25yYykpIHtcbiAgICAgICAgc25yYzI1MGsgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGNoZWNrU05SQzFtLnRlc3Qoc25yYykpIHtcbiAgICAgICAgICBzbnJjMW0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNucmMxbSkge1xuICAgICAgc25yYyArPSAnYTAxJztcbiAgICB9IGVsc2UgaWYgKHNucmMyNTBrKSB7XG4gICAgICBzbnJjICs9ICcwMSc7XG4gICAgfVxuICAgIGlmICgvXFxkezIsM31bYS1wXVswLDFdWzAtOV0vZ2kudGVzdChzbnJjKSkge1xuICAgICAgY29uc3QgcmVnZXgxbSA9IC8oPz1bYS1wXSkvZ2k7XG4gICAgICBjb25zdCBhcjFtID0gc25yYy5zcGxpdChyZWdleDFtKTtcbiAgICAgIGNvbnN0IHBhcnQxbSA9IGFyMW1bMF07XG4gICAgICBjb25zdCBwYXJ0MjUwayA9IGFyMW1bMV1bMF07XG4gICAgICBjb25zdCBwYXJ0NTBrID0gYXIxbVsxXS5zcGxpdChwYXJ0MjUwaylbMV07XG4gICAgICBsZXQgc2VwYXJhdG9yID0gMTtcbiAgICAgIGlmIChwYXJ0MW0ubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIHNlcGFyYXRvciA9IDI7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJ0RVcgPSBwYXJ0MW0uc3Vic3RyaW5nKDAsIHNlcGFyYXRvcik7XG4gICAgICBjb25zdCBwYXJ0U04gPSBwYXJ0MW0uc3Vic3RyaW5nKHNlcGFyYXRvcik7XG4gICAgICBjb25zdCB1bml0MW1FVyA9IDg7XG4gICAgICBjb25zdCB1bml0MW1TTiA9IDQ7XG4gICAgICBjb25zdCB1bml0MjUwa0VXID0gMjtcbiAgICAgIGNvbnN0IHVuaXQyNTBrU04gPSAxO1xuICAgICAgY29uc3QgdW5pdDUwa0VXID0gMC41O1xuICAgICAgY29uc3QgdW5pdDUwa1NOID0gMC4yNTtcbiAgICAgIGxldCBpbmRleDI1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5kZXgyNTBrU04gPSAwO1xuICAgICAgbGV0IGluZGV4NTBrRVcgPSAwO1xuICAgICAgbGV0IGluZGV4NTBrU04gPSAwO1xuICAgICAgc25yYzI1MGtJbmRleC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LmluZGV4T2YocGFydDI1MGspICE9PSAtMSkge1xuICAgICAgICAgIGluZGV4MjUwa1NOID0gc25yYzI1MGtJbmRleC5pbmRleE9mKGVsZW1lbnQpO1xuICAgICAgICAgIGluZGV4MjUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQyNTBrKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBzbnJjNTBrSW5kZXguZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspICE9PSAtMSkge1xuICAgICAgICAgIGluZGV4NTBrU04gPSBzbnJjNTBrSW5kZXguaW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgICBpbmRleDUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGV0IGluY3JlbWVudDI1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5jcmVtZW50MjUwa1NOID0gMDtcbiAgICAgIGxldCBpbmNyZW1lbnQ1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5jcmVtZW50NTBrU04gPSAwO1xuICAgICAgbGV0IHVuaXRQZXJUeXBlRVcgPSB1bml0MW1FVztcbiAgICAgIGxldCB1bml0UGVyVHlwZVNOID0gdW5pdDFtU047XG4gICAgICBpZiAoc25yYzI1MGspIHtcbiAgICAgICAgaW5jcmVtZW50MjUwa0VXID0gaW5kZXgyNTBrRVcgKiB1bml0MjUwa0VXO1xuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XG4gICAgICAgIGluY3JlbWVudDUwa0VXID0gMDtcbiAgICAgICAgaW5jcmVtZW50NTBrU04gPSAwO1xuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDI1MGtFVztcbiAgICAgICAgdW5pdFBlclR5cGVTTiA9IHVuaXQyNTBrU047XG4gICAgICB9IGVsc2UgaWYgKHNucmM1MGspIHtcbiAgICAgICAgaW5jcmVtZW50MjUwa0VXID0gaW5kZXgyNTBrRVcgKiB1bml0MjUwa0VXO1xuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XG4gICAgICAgIGluY3JlbWVudDUwa0VXID0gaW5kZXg1MGtFVyAqIHVuaXQ1MGtFVztcbiAgICAgICAgaW5jcmVtZW50NTBrU04gPSBpbmRleDUwa1NOICogdW5pdDUwa1NOO1xuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDUwa0VXO1xuICAgICAgICB1bml0UGVyVHlwZVNOID0gdW5pdDUwa1NOO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb29yZDogeyB1bD86IGFueTsgbHI/OiBhbnk7IHVyPzogYW55OyBsbD86IGFueSB9ID0ge1xuICAgICAgICB1bDogW1xuICAgICAgICAgIGV3W3BhcnRFV10udG8gKyBpbmNyZW1lbnQyNTBrRVcgKyBpbmNyZW1lbnQ1MGtFVyxcbiAgICAgICAgICBzbltwYXJ0U05dLnRvIC0gaW5jcmVtZW50MjUwa1NOIC0gaW5jcmVtZW50NTBrU05cbiAgICAgICAgXVxuICAgICAgfTtcblxuICAgICAgY29vcmQubHIgPSBbY29vcmQudWxbMF0gKyB1bml0UGVyVHlwZUVXLCBjb29yZC51bFsxXSAtIHVuaXRQZXJUeXBlU05dO1xuICAgICAgY29vcmQudXIgPSBbY29vcmQudWxbMF0sIGNvb3JkLnVsWzFdIC0gdW5pdFBlclR5cGVTTl07XG4gICAgICBjb29yZC5sbCA9IFtjb29yZC51bFswXSArIHVuaXRQZXJUeXBlRVcsIGNvb3JkLnVsWzFdXTtcblxuICAgICAgY29vcmQudWwgPSBvbHByb2oudHJhbnNmb3JtKFxuICAgICAgICBbY29vcmQudWxbMF0sIGNvb3JkLnVsWzFdXSxcbiAgICAgICAgJ0VQU0c6NDMyNicsXG4gICAgICAgIGVwc2dUT1xuICAgICAgKTtcbiAgICAgIGNvb3JkLmxyID0gb2xwcm9qLnRyYW5zZm9ybShcbiAgICAgICAgW2Nvb3JkLmxyWzBdLCBjb29yZC5sclsxXV0sXG4gICAgICAgICdFUFNHOjQzMjYnLFxuICAgICAgICBlcHNnVE9cbiAgICAgICk7XG4gICAgICBjb29yZC51ciA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICAgIFtjb29yZC51clswXSwgY29vcmQudXJbMV1dLFxuICAgICAgICAnRVBTRzo0MzI2JyxcbiAgICAgICAgZXBzZ1RPXG4gICAgICApO1xuICAgICAgY29vcmQubGwgPSBvbHByb2oudHJhbnNmb3JtKFxuICAgICAgICBbY29vcmQubGxbMF0sIGNvb3JkLmxsWzFdXSxcbiAgICAgICAgJ0VQU0c6NDMyNicsXG4gICAgICAgIGVwc2dUT1xuICAgICAgKTtcblxuICAgICAgLy8gUm91bmRlZCBjb29yZGluYXRlIHRvIHNob3J0ZW4gdXJsIGluIGdldFxuICAgICAgY29vcmQudWwgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLnVsLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQubHIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLmxyLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQudXIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLnVyLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQubGwgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLmxsLCBlcHNnVE8sIDApO1xuXG4gICAgICB3a3RQb2x5ID1cbiAgICAgICAgJ1BPTFlHT04oKCcgK1xuICAgICAgICBbXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVsLmpvaW4oJyAnKVxuICAgICAgICBdLmpvaW4oJywnKSArXG4gICAgICAgICcpKSc7XG4gICAgICBjb25zdCB3a3RMaW5lID1cbiAgICAgICAgJ0xJTkVTVFJJTkcoJyArXG4gICAgICAgIFtcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQudXIuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLmxyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sbC5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpXG4gICAgICAgIF0uam9pbignLCcpICtcbiAgICAgICAgJyknO1xuXG4gICAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9XG4gICAgICAgICdNVUxUSVBPSU5UKCcgK1xuICAgICAgICBbXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpXG4gICAgICAgIF0uam9pbignLCcpICtcbiAgICAgICAgJyknO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2t0UG9seSxcbiAgICAgICAgd2t0TGluZSxcbiAgICAgICAgd2t0TXVsdGlQb2ludHNcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
234
|
+
}] });
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2t0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93a3Qvc2hhcmVkL3drdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDOztBQUtsQyxNQUFNLE9BQU8sVUFBVTtJQUNkLFlBQVksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFdBQVc7UUFDM0MsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsY0FBYyxFQUFFLE9BQU87WUFDdkIsaUJBQWlCLEVBQUUsV0FBVztTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ00sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVTtRQUMzQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUc7UUFDWixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJ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Q0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzNCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUMzQixFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1NBQzdCLENBQUM7UUFDRixNQUFNLEVBQUUsR0FBRztZQUNULENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7U0FDMUIsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHO1lBQ3BCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxH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QUMsR0FBRyxDQUFDO2lCQUNuQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ1gsR0FBRyxDQUFDO1lBQ04sT0FBTztnQkFDTCxPQUFPO2dCQUNQLE9BQU87Z0JBQ1AsY0FBYzthQUNmLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzt1R0F4UFUsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCBvbFdLVCBmcm9tICdvbC9mb3JtYXQvV0tUJztcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2t0U2VydmljZSB7XG4gIHB1YmxpYyB3a3RUb0ZlYXR1cmUod2t0LCB3a3RQcm9qLCBmZWF0dXJlUHJvaikge1xuICAgIHJldHVybiBuZXcgb2xXS1QoKS5yZWFkRmVhdHVyZSh3a3QsIHtcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiB3a3RQcm9qLFxuICAgICAgZmVhdHVyZVByb2plY3Rpb246IGZlYXR1cmVQcm9qXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGV4dGVudFRvV2t0KGVwc2dUTywgZXh0ZW50LCBleHRlbnRQcm9qKSB7XG4gICAgY29uc3QgY3VycmVudEV4dGVudCA9IG9scHJvai50cmFuc2Zvcm1FeHRlbnQoZXh0ZW50LCBleHRlbnRQcm9qLCBlcHNnVE8pO1xuICAgIHRoaXMucm91bmRDb29yZGluYXRlQXJyYXkoY3VycmVudEV4dGVudCwgZXBzZ1RPLCAwKTtcbiAgICBjb25zdCB3a3RQb2x5ID0gYFBPTFlHT04oKFxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFszXX0sXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFsxXX0pKWA7XG4gICAgY29uc3Qgd2t0TGluZSA9IGBMSU5FU1RSSU5HKFxuICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFszXX0sXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgJHtleHRlbnRbMl19ICR7ZXh0ZW50WzFdfSxcbiAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFsxXX0pYDtcbiAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9IGBNVUxUSVBPSU5UKFxuICAgICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19LFxuICAgICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbM119LFxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbMV19KWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdrdFBvbHksXG4gICAgICB3a3RMaW5lLFxuICAgICAgd2t0TXVsdGlQb2ludHNcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByb3VuZENvb3JkaW5hdGVBcnJheShjb29yZGluYXRlQXJyYXksIHByb2plY3Rpb24sIGRlY2ltYWwgPSAwKSB7XG4gICAgY29uc3QgbHByb2ogPSBvbHByb2ouZ2V0KHByb2plY3Rpb24pO1xuICAgIGNvbnN0IHVuaXRzID0gbHByb2ouZ2V0VW5pdHMoKTtcbiAgICBjb25zdCBvbFVuaXRzID0gWydmdCcsICdtJywgJ3VzLWZ0J107XG4gICAgaWYgKG9sVW5pdHMuaW5kZXhPZih1bml0cykgIT09IC0xKSB7XG4gICAgICBjb29yZGluYXRlQXJyYXkgPSB0aGlzLnJvdW5kQXJyYXkoY29vcmRpbmF0ZUFycmF5LCBkZWNpbWFsKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvb3JkaW5hdGVBcnJheTtcbiAgfVxuXG4gIHByaXZhdGUgcm91bmRBcnJheShhcnJheSwgZGVjaW1hbCA9IDApIHtcbiAgICBsZXQgeCA9IDA7XG4gICAgd2hpbGUgKHggPCBhcnJheS5sZW5ndGgpIHtcbiAgICAgIGFycmF5W3hdID0gYXJyYXlbeF0udG9GaXhlZChkZWNpbWFsKTtcbiAgICAgIHgrKztcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG5cbiAgcHVibGljIHNucmNUb1drdChzbnJjLCBlcHNnVE8pIHtcbiAgICBzbnJjID0gc25yYy50b0xvd2VyQ2FzZSgpO1xuICAgIGxldCB3a3RQb2x5O1xuICAgIGNvbnN0IGV3ID0ge1xuICAgICAgMTogeyBmcm9tOiAtNTYsIHRvOiAtNjQgfSxcbiAgICAgIDI6IHsgZnJvbTogLTY0LCB0bzogLTcyIH0sXG4gICAgICAzOiB7IGZyb206IC03MiwgdG86IC04MCB9LFxuICAgICAgNDogeyBmcm9tOiAtODAsIHRvOiAtODggfSxcbiAgICAgIDU6IHsgZnJvbTogLTg4LCB0bzogLTk2IH0sXG4gICAgICA2OiB7IGZyb206IC05NiwgdG86IC0xMDQgfSxcbiAgICAgIDc6IHsgZnJvbTogLTEwNCwgdG86IC0xMTIgfSxcbiAgICAgIDg6IHsgZnJvbTogLTExMiwgdG86IC0xMjAgfSxcbiAgICAgIDk6IHsgZnJvbTogLTEyMCwgdG86IC0xMjggfSxcbiAgICAgIDEwOiB7IGZyb206IC0xMjgsIHRvOiAtMTM2IH1cbiAgICB9O1xuICAgIGNvbnN0IHNuID0ge1xuICAgICAgMTogeyBmcm9tOiA0NCwgdG86IDQ4IH0sXG4gICAgICAyOiB7IGZyb206IDQ4LCB0bzogNTIgfSxcbiAgICAgIDM6IHsgZnJvbTogNTIsIHRvOiA1NiB9LFxuICAgICAgNDogeyBmcm9tOiA1NiwgdG86IDYwIH0sXG4gICAgICA1OiB7IGZyb206IDYwLCB0bzogNjQgfSxcbiAgICAgIDY6IHsgZnJvbTogNjQsIHRvOiA2OCB9LFxuICAgICAgNzogeyBmcm9tOiA2OCwgdG86IDcyIH0sXG4gICAgICA4OiB7IGZyb206IDcyLCB0bzogNzYgfSxcbiAgICAgIDk6IHsgZnJvbTogNzYsIHRvOiAtMTI4IH1cbiAgICB9O1xuICAgIGNvbnN0IHNucmMyNTBrSW5kZXggPSBbXG4gICAgICBbJ20nLCAnbicsICdvJywgJ3AnXSxcbiAgICAgIFsnbCcsICdrJywgJ2onLCAnaSddLFxuICAgICAgWydlJywgJ2YnLCAnZycsICdoJ10sXG4gICAgICBbJ2QnLCAnYycsICdiJywgJ2EnXVxuICAgIF07XG5cbiAgICBjb25zdCBzbnJjNTBrSW5kZXggPSBbXG4gICAgICBbJzEzJywgJzE0JywgJzE1JywgJzE2J10sXG4gICAgICBbJzEyJywgJzExJywgJzEwJywgJzA5J10sXG4gICAgICBbJzA1JywgJzA2JywgJzA3JywgJzA4J10sXG4gICAgICBbJzA0JywgJzAzJywgJzAyJywgJzAxJ11cbiAgICBdO1xuICAgIGNvbnN0IGNoZWNrU05SQzUwayA9IC9cXGR7MiwzfVthLXBdWzAsMV1bMC05XS9naTtcbiAgICBjb25zdCBjaGVja1NOUkMyNTBrID0gL1xcZHsyLDN9W2EtcF0vZ2k7XG4gICAgY29uc3QgY2hlY2tTTlJDMW0gPSAvXFxkezIsM30vZ2k7XG5cbiAgICBsZXQgc25yYzFtID0gZmFsc2U7XG4gICAgbGV0IHNucmMyNTBrID0gZmFsc2U7XG4gICAgbGV0IHNucmM1MGsgPSBmYWxzZTtcblxuICAgIGlmIChjaGVja1NOUkM1MGsudGVzdChzbnJjKSkge1xuICAgICAgc25yYzUwayA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjaGVja1NOUkMyNTBrLnRlc3Qoc25yYykpIHtcbiAgICAgICAgc25yYzI1MGsgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGNoZWNrU05SQzFtLnRlc3Qoc25yYykpIHtcbiAgICAgICAgICBzbnJjMW0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNucmMxbSkge1xuICAgICAgc25yYyArPSAnYTAxJztcbiAgICB9IGVsc2UgaWYgKHNucmMyNTBrKSB7XG4gICAgICBzbnJjICs9ICcwMSc7XG4gICAgfVxuICAgIGlmICgvXFxkezIsM31bYS1wXVswLDFdWzAtOV0vZ2kudGVzdChzbnJjKSkge1xuICAgICAgY29uc3QgcmVnZXgxbSA9IC8oPz1bYS1wXSkvZ2k7XG4gICAgICBjb25zdCBhcjFtID0gc25yYy5zcGxpdChyZWdleDFtKTtcbiAgICAgIGNvbnN0IHBhcnQxbSA9IGFyMW1bMF07XG4gICAgICBjb25zdCBwYXJ0MjUwayA9IGFyMW1bMV1bMF07XG4gICAgICBjb25zdCBwYXJ0NTBrID0gYXIxbVsxXS5zcGxpdChwYXJ0MjUwaylbMV07XG4gICAgICBsZXQgc2VwYXJhdG9yID0gMTtcbiAgICAgIGlmIChwYXJ0MW0ubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIHNlcGFyYXRvciA9IDI7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJ0RVcgPSBwYXJ0MW0uc3Vic3RyaW5nKDAsIHNlcGFyYXRvcik7XG4gICAgICBjb25zdCBwYXJ0U04gPSBwYXJ0MW0uc3Vic3RyaW5nKHNlcGFyYXRvcik7XG4gICAgICBjb25zdCB1bml0MW1FVyA9IDg7XG4gICAgICBjb25zdCB1bml0MW1TTiA9IDQ7XG4gICAgICBjb25zdCB1bml0MjUwa0VXID0gMjtcbiAgICAgIGNvbnN0IHVuaXQyNTBrU04gPSAxO1xuICAgICAgY29uc3QgdW5pdDUwa0VXID0gMC41O1xuICAgICAgY29uc3QgdW5pdDUwa1NOID0gMC4yNTtcbiAgICAgIGxldCBpbmRleDI1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5kZXgyNTBrU04gPSAwO1xuICAgICAgbGV0IGluZGV4NTBrRVcgPSAwO1xuICAgICAgbGV0IGluZGV4NTBrU04gPSAwO1xuICAgICAgc25yYzI1MGtJbmRleC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LmluZGV4T2YocGFydDI1MGspICE9PSAtMSkge1xuICAgICAgICAgIGluZGV4MjUwa1NOID0gc25yYzI1MGtJbmRleC5pbmRleE9mKGVsZW1lbnQpO1xuICAgICAgICAgIGluZGV4MjUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQyNTBrKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBzbnJjNTBrSW5kZXguZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspICE9PSAtMSkge1xuICAgICAgICAgIGluZGV4NTBrU04gPSBzbnJjNTBrSW5kZXguaW5kZXhPZihlbGVtZW50KTtcbiAgICAgICAgICBpbmRleDUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgbGV0IGluY3JlbWVudDI1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5jcmVtZW50MjUwa1NOID0gMDtcbiAgICAgIGxldCBpbmNyZW1lbnQ1MGtFVyA9IDA7XG4gICAgICBsZXQgaW5jcmVtZW50NTBrU04gPSAwO1xuICAgICAgbGV0IHVuaXRQZXJUeXBlRVcgPSB1bml0MW1FVztcbiAgICAgIGxldCB1bml0UGVyVHlwZVNOID0gdW5pdDFtU047XG4gICAgICBpZiAoc25yYzI1MGspIHtcbiAgICAgICAgaW5jcmVtZW50MjUwa0VXID0gaW5kZXgyNTBrRVcgKiB1bml0MjUwa0VXO1xuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XG4gICAgICAgIGluY3JlbWVudDUwa0VXID0gMDtcbiAgICAgICAgaW5jcmVtZW50NTBrU04gPSAwO1xuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDI1MGtFVztcbiAgICAgICAgdW5pdFBlclR5cGVTTiA9IHVuaXQyNTBrU047XG4gICAgICB9IGVsc2UgaWYgKHNucmM1MGspIHtcbiAgICAgICAgaW5jcmVtZW50MjUwa0VXID0gaW5kZXgyNTBrRVcgKiB1bml0MjUwa0VXO1xuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XG4gICAgICAgIGluY3JlbWVudDUwa0VXID0gaW5kZXg1MGtFVyAqIHVuaXQ1MGtFVztcbiAgICAgICAgaW5jcmVtZW50NTBrU04gPSBpbmRleDUwa1NOICogdW5pdDUwa1NOO1xuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDUwa0VXO1xuICAgICAgICB1bml0UGVyVHlwZVNOID0gdW5pdDUwa1NOO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb29yZDogeyB1bD86IGFueTsgbHI/OiBhbnk7IHVyPzogYW55OyBsbD86IGFueSB9ID0ge1xuICAgICAgICB1bDogW1xuICAgICAgICAgIGV3W3BhcnRFV10udG8gKyBpbmNyZW1lbnQyNTBrRVcgKyBpbmNyZW1lbnQ1MGtFVyxcbiAgICAgICAgICBzbltwYXJ0U05dLnRvIC0gaW5jcmVtZW50MjUwa1NOIC0gaW5jcmVtZW50NTBrU05cbiAgICAgICAgXVxuICAgICAgfTtcblxuICAgICAgY29vcmQubHIgPSBbY29vcmQudWxbMF0gKyB1bml0UGVyVHlwZUVXLCBjb29yZC51bFsxXSAtIHVuaXRQZXJUeXBlU05dO1xuICAgICAgY29vcmQudXIgPSBbY29vcmQudWxbMF0sIGNvb3JkLnVsWzFdIC0gdW5pdFBlclR5cGVTTl07XG4gICAgICBjb29yZC5sbCA9IFtjb29yZC51bFswXSArIHVuaXRQZXJUeXBlRVcsIGNvb3JkLnVsWzFdXTtcblxuICAgICAgY29vcmQudWwgPSBvbHByb2oudHJhbnNmb3JtKFxuICAgICAgICBbY29vcmQudWxbMF0sIGNvb3JkLnVsWzFdXSxcbiAgICAgICAgJ0VQU0c6NDMyNicsXG4gICAgICAgIGVwc2dUT1xuICAgICAgKTtcbiAgICAgIGNvb3JkLmxyID0gb2xwcm9qLnRyYW5zZm9ybShcbiAgICAgICAgW2Nvb3JkLmxyWzBdLCBjb29yZC5sclsxXV0sXG4gICAgICAgICdFUFNHOjQzMjYnLFxuICAgICAgICBlcHNnVE9cbiAgICAgICk7XG4gICAgICBjb29yZC51ciA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICAgIFtjb29yZC51clswXSwgY29vcmQudXJbMV1dLFxuICAgICAgICAnRVBTRzo0MzI2JyxcbiAgICAgICAgZXBzZ1RPXG4gICAgICApO1xuICAgICAgY29vcmQubGwgPSBvbHByb2oudHJhbnNmb3JtKFxuICAgICAgICBbY29vcmQubGxbMF0sIGNvb3JkLmxsWzFdXSxcbiAgICAgICAgJ0VQU0c6NDMyNicsXG4gICAgICAgIGVwc2dUT1xuICAgICAgKTtcblxuICAgICAgLy8gUm91bmRlZCBjb29yZGluYXRlIHRvIHNob3J0ZW4gdXJsIGluIGdldFxuICAgICAgY29vcmQudWwgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLnVsLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQubHIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLmxyLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQudXIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLnVyLCBlcHNnVE8sIDApO1xuICAgICAgY29vcmQubGwgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLmxsLCBlcHNnVE8sIDApO1xuXG4gICAgICB3a3RQb2x5ID1cbiAgICAgICAgJ1BPTFlHT04oKCcgK1xuICAgICAgICBbXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVsLmpvaW4oJyAnKVxuICAgICAgICBdLmpvaW4oJywnKSArXG4gICAgICAgICcpKSc7XG4gICAgICBjb25zdCB3a3RMaW5lID1cbiAgICAgICAgJ0xJTkVTVFJJTkcoJyArXG4gICAgICAgIFtcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQudXIuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLmxyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sbC5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpXG4gICAgICAgIF0uam9pbignLCcpICtcbiAgICAgICAgJyknO1xuXG4gICAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9XG4gICAgICAgICdNVUxUSVBPSU5UKCcgK1xuICAgICAgICBbXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxuICAgICAgICAgIGNvb3JkLnVyLmpvaW4oJyAnKSxcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpXG4gICAgICAgIF0uam9pbignLCcpICtcbiAgICAgICAgJyknO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgd2t0UG9seSxcbiAgICAgICAgd2t0TGluZSxcbiAgICAgICAgd2t0TXVsdGlQb2ludHNcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -10,11 +10,11 @@ export class IgoWktModule {
|
|
|
10
10
|
providers: []
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
14
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
15
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoWktModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoWktModule });
|
|
15
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoWktModule });
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoWktModule, decorators: [{
|
|
18
18
|
type: NgModule,
|
|
19
19
|
args: [{
|
|
20
20
|
imports: [],
|
|
@@ -23,10 +23,10 @@ export class ConfirmationPopupComponent {
|
|
|
23
23
|
this.data.cancel = false;
|
|
24
24
|
this.dialogRef.close(this.data.cancel);
|
|
25
25
|
}
|
|
26
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
26
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConfirmationPopupComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.LanguageService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ConfirmationPopupComponent, isStandalone: true, selector: "igo-confirmation-popup-component", ngImport: i0, template: "<div mat-dialog-content>\n <p class=\"mat-typography\">\n {{\n data.type === 'add'\n ? languageService.translate.instant('igo.geo.workspace.addConfirmation')\n : languageService.translate.instant(\n 'igo.geo.workspace.deleteConfirmation'\n )\n }}\n </p>\n</div>\n<div mat-dialog-actions>\n <button mat-raised-button color=\"primary\" (click)=\"confirmedAction()\">\n Ok\n </button>\n <button mat-raised-button (click)=\"cancelAction()\">\n {{ languageService.translate.instant('igo.geo.workspace.cancel') }}\n </button>\n</div>\n", styles: ["div.mat-mdc-dialog-actions{justify-content:center}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] });
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConfirmationPopupComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ selector: 'igo-confirmation-popup-component', standalone: true, imports: [MatDialogContent, MatDialogActions, MatButtonModule], template: "<div mat-dialog-content>\n <p class=\"mat-typography\">\n {{\n data.type === 'add'\n ? languageService.translate.instant('igo.geo.workspace.addConfirmation')\n : languageService.translate.instant(\n 'igo.geo.workspace.deleteConfirmation'\n )\n }}\n </p>\n</div>\n<div mat-dialog-actions>\n <button mat-raised-button color=\"primary\" (click)=\"confirmedAction()\">\n Ok\n </button>\n <button mat-raised-button (click)=\"cancelAction()\">\n {{ languageService.translate.instant('igo.geo.workspace.cancel') }}\n </button>\n</div>\n", styles: ["div.mat-mdc-dialog-actions{justify-content:center}\n"] }]
|
|
32
32
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: i2.LanguageService }, { type: undefined, decorators: [{
|
|
@@ -5,11 +5,11 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
* @deprecated import the ConfirmationPopupComponent directly
|
|
6
6
|
*/
|
|
7
7
|
export class IgoConfirmationPopupModule {
|
|
8
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
10
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoConfirmationPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoConfirmationPopupModule, imports: [ConfirmationPopupComponent], exports: [ConfirmationPopupComponent] });
|
|
10
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoConfirmationPopupModule, imports: [ConfirmationPopupComponent] });
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoConfirmationPopupModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
imports: [ConfirmationPopupComponent],
|
|
@@ -296,4 +296,4 @@ export class EditionWorkspace extends Workspace {
|
|
|
296
296
|
});
|
|
297
297
|
}
|
|
298
298
|
}
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL2VkaXRpb24td29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7QUFHckUsT0FBTyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBRzFDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFPaEcsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFxRG5DO0lBQ0E7SUFDQTtJQUNBO0lBQ0U7SUF4REgsa0JBQWtCLEdBQTZCLElBQUksZUFBZSxDQUN6RSxJQUFJLENBQ0wsQ0FBQztJQUVGLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8s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LE1BQU0sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sWUFBWSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksUUFBUSxDQUFDO1lBQ3pCLFFBQVEsRUFBRSxZQUFZO1NBQ3ZCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9CLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUMvRCxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3pELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEVudGl0eVJlY29yZCB9IGZyb20gJ0BpZ28yL2NvbW1vbi9lbnRpdHknO1xuaW1wb3J0IHsgV29ya3NwYWNlLCBXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSAnQGlnbzIvY29tbW9uL3dvcmtzcGFjZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuXG5pbXBvcnQgQ29sbGVjdGlvbiBmcm9tICdvbC9Db2xsZWN0aW9uJztcbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCBPbE1vZGlmeSBmcm9tICdvbC9pbnRlcmFjdGlvbi9Nb2RpZnknO1xuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuaW1wb3J0ICogYXMgT2xTdHlsZSBmcm9tICdvbC9zdHlsZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlLCBSZWxhdGlvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZCc7XG5pbXBvcnQgeyBHZW9tZXRyeVR5cGUsIGNyZWF0ZUludGVyYWN0aW9uU3R5bGUgfSBmcm9tICcuLi8uLi9kcmF3L3NoYXJlZCc7XG5pbXBvcnQgeyBmZWF0dXJlVG9PbCB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkJztcbmltcG9ydCB7IERyYXdDb250cm9sIH0gZnJvbSAnLi4vLi4vZ2VvbWV0cnkvc2hhcmVkJztcbmltcG9ydCB7IEltYWdlTGF5ZXIsIFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybWF0aW9uLXBvcHVwL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRpb25Xb3Jrc3BhY2VPcHRpb25zIGV4dGVuZHMgV29ya3NwYWNlT3B0aW9ucyB7XG4gIGxheWVyOiBJbWFnZUxheWVyIHwgVmVjdG9yTGF5ZXI7XG4gIG1hcDogSWdvTWFwO1xufVxuXG5leHBvcnQgY2xhc3MgRWRpdGlvbldvcmtzcGFjZSBleHRlbmRzIFdvcmtzcGFjZSB7XG4gIHJlYWRvbmx5IGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICB0cnVlXG4gICk7XG5cbiAgZ2V0IGxheWVyKCk6IEltYWdlTGF5ZXIgfCBWZWN0b3JMYXllciB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5sYXllcjtcbiAgfVxuXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcDtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0NvbnRyb2w6IERyYXdDb250cm9sO1xuICBwcml2YXRlIGRyYXdFbmQkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG9sRHJhd2luZ0xheWVyU291cmNlID0gbmV3IE9sVmVjdG9yU291cmNlKCk7XG4gIHByaXZhdGUgb2xEcmF3aW5nTGF5ZXI6IFZlY3RvckxheWVyO1xuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlOyAvLyBSZWZlcmVuY2UgdG8gdGhlIEdlb21ldHJ5VHlwZSBlbnVtXG4gIHB1YmxpYyBtb2RpZnk7IC8vIFJlZmVyZW5jZSB0byB0aGUgb2wgaW50ZXJhY3Rpb25cblxuICBwdWJsaWMgbW9kaWZ5U3R5bGUgPSBuZXcgT2xTdHlsZS5TdHlsZSh7XG4gICAgc3Ryb2tlOiBuZXcgT2xTdHlsZS5TdHJva2Uoe1xuICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgIHdpZHRoOiAxXG4gICAgfSksXG4gICAgZmlsbDogbmV3IE9sU3R5bGUuRmlsbCh7XG4gICAgICBjb2xvcjogJ3JnYmEoMCwxNjEsMjIyLDEpJ1xuICAgIH0pLFxuICAgIGltYWdlOiBuZXcgT2xTdHlsZS5DaXJjbGUoe1xuICAgICAgcmFkaXVzOiA3LFxuICAgICAgc3Ryb2tlOiBuZXcgT2xTdHlsZS5TdHJva2Uoe1xuICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICB3aWR0aDogMVxuICAgICAgfSksXG4gICAgICBmaWxsOiBuZXcgT2xTdHlsZS5GaWxsKHtcbiAgICAgICAgY29sb3I6ICdyZ2JhKDAsMTYxLDIyMiwxKSdcbiAgICAgIH0pXG4gICAgfSlcbiAgfSk7XG5cbiAgcHJpdmF0ZSBuZXdGZWF0dXJlZmlsdGVyQ2xhdXNlRnVuYyA9IChyZWNvcmQ6IEVudGl0eVJlY29yZDxvYmplY3Q+KSA9PiB7XG4gICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5uZXdGZWF0dXJlID09PSB0cnVlO1xuICB9O1xuXG4gIHByaXZhdGUgZWRpdEZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jID0gKHJlY29yZDogRW50aXR5UmVjb3JkPG9iamVjdD4pID0+IHtcbiAgICByZXR1cm4gcmVjb3JkLnN0YXRlLmVkaXQgPT09IHRydWU7XG4gIH07XG5cbiAgcHVibGljIGZpbGxDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgc3Ryb2tlQ29sb3I6IHN0cmluZztcbiAgcHVibGljIHN0cm9rZVdpZHRoOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhZGRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4sXG4gICAgcHJpdmF0ZSBnZXREb21haW5WYWx1ZXM6IChyZWxhdGlvbjogUmVsYXRpb25PcHRpb25zKSA9PiBPYnNlcnZhYmxlPGFueT4sXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IEVkaXRpb25Xb3Jrc3BhY2VPcHRpb25zXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kLnN1YnNjcmliZSgobWFwUmVzb2x1dGlvbikgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBtYXBSZXNvbHV0aW9uID4gdGhpcy5sYXllci5taW5SZXNvbHV0aW9uICYmXG4gICAgICAgIG1hcFJlc29sdXRpb24gPCB0aGlzLmxheWVyLm1heFJlc29sdXRpb25cbiAgICAgICkge1xuICAgICAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dChmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmRyYXdDb250cm9sID0gdGhpcy5jcmVhdGVEcmF3Q29udHJvbCgpO1xuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0R2VvbWV0cnlUeXBlKHRoaXMuZ2VvbWV0cnlUeXBlLlBvaW50IGFzIGFueSk7XG5cbiAgICB0aGlzLm1hcC5yZW1vdmVMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcblxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgaWQ6ICdpZ28tZHJhdy1sYXllcicsXG4gICAgICB0aXRsZTogJ2VkaXRpb24nLFxuICAgICAgekluZGV4OiAzMDAsXG4gICAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxuICAgICAgYnJvd3NhYmxlOiBmYWxzZSxcbiAgICAgIHdvcmtzcGFjZToge1xuICAgICAgICBlbmFibGVkOiBmYWxzZVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlRmVhdHVyZShmZWF0dXJlLCB3b3Jrc3BhY2UpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQsIHtcbiAgICAgICAgZGlzYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgICAgZGF0YTogeyB0eXBlOiAnZGVsZXRlJyB9XG4gICAgICB9KTtcblxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBsZXQgaWQsIHVybDtcbiAgICAgICAgICBjb25zdCBiYXNlVXJsID0gd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmJhc2VVcmw7XG4gICAgICAgICAgY29uc3QgZGVsZXRlVXJsID1cbiAgICAgICAgICAgIHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5kZWxldGVVcmw7XG4gICAgICAgICAgaWYgKGJhc2VVcmwubGVuZ3RoKSB7XG4gICAgICAgICAgICB1cmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpXG4gICAgICAgICAgICAgID8gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKSArXG4gICAgICAgICAgICAgICAgYmFzZVVybCArXG4gICAgICAgICAgICAgICAgJz8nICtcbiAgICAgICAgICAgICAgICBkZWxldGVVcmxcbiAgICAgICAgICAgICAgOiBiYXNlVXJsICsgJz8nICsgZGVsZXRlVXJsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpXG4gICAgICAgICAgICAgID8gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZWRpdGlvbi51cmwnKSArIGRlbGV0ZVVybFxuICAgICAgICAgICAgICA6IGRlbGV0ZVVybDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gZmVhdHVyZS5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgIGxldCBjb2x1bW5OYW1lID0gY29sdW1uLm5hbWU7XG4gICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XG4gICAgICAgICAgICAgICAgY29sdW1uTmFtZSA9IGNvbHVtbk5hbWUuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBpZCA9IGZlYXR1cmUucHJvcGVydGllc1twcm9wZXJ0eV07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAgdXJsICs9IGlkO1xuICAgICAgICAgICAgdGhpcy5kZWxldGVGZWF0dXJlKHdvcmtzcGFjZSwgdXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIDI1MCk7XG4gIH1cblxuICBlZGl0RmVhdHVyZShmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcbiAgICBmZWF0dXJlLmVkaXRpb24gPSB0cnVlO1xuICAgIGxldCBpZDtcbiAgICBsZXQgZmluZCA9IGZhbHNlO1xuICAgIGNvbnN0IGVkaXRpb25PcHQgPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb247XG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2Ygd29ya3NwYWNlLm1ldGEudGFibGVUZW1wbGF0ZS5jb2x1bW5zKSB7XG4gICAgICAvLyBVcGRhdGUgZG9tYWluIGxpc3RcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2xpc3QnIHx8IGNvbHVtbi50eXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgICB0aGlzLmdldERvbWFpblZhbHVlcyhjb2x1bW4ucmVsYXRpb24pLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgY29sdW1uLmRvbWFpblZhbHVlcyA9IHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoZmluZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICBsZXQgY29sdW1uTmFtZSA9IGNvbHVtbi5uYW1lO1xuICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XG4gICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGZpbmQgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpZCkge1xuICAgICAgZmVhdHVyZS5vcmlnaW5hbF9wcm9wZXJ0aWVzID0gSlNPTi5wYXJzZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoZmVhdHVyZS5wcm9wZXJ0aWVzKVxuICAgICAgKTtcbiAgICAgIGZlYXR1cmUub3JpZ2luYWxfZ2VvbWV0cnkgPSBmZWF0dXJlLmdlb21ldHJ5O1xuICAgICAgZmVhdHVyZS5pZGtleSA9IGlkO1xuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IGVkaXQ6IGZhbHNlIH0pO1xuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlVmlldy5maWx0ZXIodGhpcy5lZGl0RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMpO1xuICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPbmx5IGZvciBlZGl0aW9uIHdpdGggaXQncyBvd24gZ2VvbWV0cnlcbiAgICAgIGlmICghZmVhdHVyZS5uZXdGZWF0dXJlICYmIGVkaXRpb25PcHQuZ2VvbVR5cGUpIHtcbiAgICAgICAgZmVhdHVyZS5uZXdGZWF0dXJlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZGRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBuZXdGZWF0dXJlOiBmYWxzZSB9KTtcbiAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlVmlldy5maWx0ZXIodGhpcy5uZXdGZWF0dXJlZmlsdGVyQ2xhdXNlRnVuYyk7XG4gICAgICAgIGlmIChlZGl0aW9uT3B0LmFkZFdpdGhEcmF3KSB7XG4gICAgICAgICAgY29uc3QgZ2VvbWV0cnlUeXBlID0gZWRpdGlvbk9wdC5nZW9tVHlwZTtcbiAgICAgICAgICB0aGlzLm9uR2VvbWV0cnlUeXBlQ2hhbmdlKGdlb21ldHJ5VHlwZSwgZmVhdHVyZSwgd29ya3NwYWNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xuICAgICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGUoXG4gICAgICAgICAgICBmZWF0dXJlLFxuICAgICAgICAgICAgeyBuZXdGZWF0dXJlOiB0cnVlIH0sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBEcmF3IENvbnRyb2xcbiAgICogQHBhcmFtIGZpbGxDb2xvciB0aGUgZmlsbCBjb2xvclxuICAgKiBAcGFyYW0gc3Ryb2tlQ29sb3IgdGhlIHN0cm9rZSBjb2xvclxuICAgKiBAcGFyYW0gc3Ryb2tlV2lkdGggdGhlIHN0cm9rZSB3aWR0aFxuICAgKiBAcmV0dXJucyBhIERyYXcgQ29udHJvbFxuICAgKi9cbiAgY3JlYXRlRHJhd0NvbnRyb2woXG4gICAgZmlsbENvbG9yPzogc3RyaW5nLFxuICAgIHN0cm9rZUNvbG9yPzogc3RyaW5nLFxuICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyXG4gICkge1xuICAgIGNvbnN0IGRyYXdDb250cm9sID0gbmV3IERyYXdDb250cm9sKHtcbiAgICAgIGdlb21ldHJ5VHlwZTogdW5kZWZpbmVkLFxuICAgICAgZHJhd2luZ0xheWVyU291cmNlOiB0aGlzLm9sRHJhd2luZ0xheWVyU291cmNlLFxuICAgICAgZHJhd2luZ0xheWVyU3R5bGU6IG5ldyBPbFN0eWxlLlN0eWxlKHt9KSxcbiAgICAgIGludGVyYWN0aW9uU3R5bGU6IGNyZWF0ZUludGVyYWN0aW9uU3R5bGUoXG4gICAgICAgIGZpbGxDb2xvcixcbiAgICAgICAgc3Ryb2tlQ29sb3IsXG4gICAgICAgIHN0cm9rZVdpZHRoXG4gICAgICApXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZHJhd0NvbnRyb2w7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIG5ldyBnZW9tZXRyeSB0eXBlXG4gICAqIEBwYXJhbSBnZW9tZXRyeVR5cGUgdGhlIGdlb21ldHJ5IHR5cGUgc2VsZWN0ZWQgYnkgdGhlIHVzZXJcbiAgICovXG4gIG9uR2VvbWV0cnlUeXBlQ2hhbmdlKFxuICAgIGdlb21ldHJ5VHlwZTogVHlwZSxcbiAgICBmZWF0dXJlLFxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZVxuICApIHtcbiAgICB0aGlzLmRyYXdDb250cm9sLnNldEdlb21ldHJ5VHlwZShnZW9tZXRyeVR5cGUpO1xuICAgIHRoaXMudG9nZ2xlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZSB0aGUgY29ycmVjdCBjb250cm9sXG4gICAqL1xuICBwcml2YXRlIHRvZ2dsZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSkge1xuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdDb250cm9sKCk7XG4gICAgdGhpcy5hY3RpdmF0ZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZSB0aGUgYWN0aXZlIGRyYXcgY29udHJvbFxuICAgKi9cbiAgcHVibGljIGRlYWN0aXZhdGVEcmF3Q29udHJvbCgpIHtcbiAgICBpZiAoIXRoaXMuZHJhd0NvbnRyb2wpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kcmF3RW5kJCQpIHtcbiAgICAgIHRoaXMuZHJhd0VuZCQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRPbE1hcCh1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIGEgZ2l2ZW4gY29udHJvbFxuICAgKi9cbiAgcHJpdmF0ZSBhY3RpdmF0ZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSkge1xuICAgIHRoaXMuZHJhd0VuZCQkID0gdGhpcy5kcmF3Q29udHJvbC5lbmQkLnN1YnNjcmliZShcbiAgICAgIChvbEdlb21ldHJ5OiBPbEdlb21ldHJ5KSA9PiB7XG4gICAgICAgIHRoaXMuYWRkRmVhdHVyZVRvU3RvcmUoZmVhdHVyZSwgd29ya3NwYWNlLCBvbEdlb21ldHJ5KTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRPbE1hcCh0aGlzLm1hcC5vbCwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZmVhdHVyZSB0byBsYXllci4gVGhlIGxvYWRpbmcgc3RyYXRlZ3kgb2YgdGhlIGxheWVyXG4gICAqIHdpbGwgdHJpZ2dlciBhbmQgYWRkIHRoZSBmZWF0dXJlIHRvIHRoZSB3b3Jrc3BhY2Ugc3RvcmUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBhZGRGZWF0dXJlVG9TdG9yZShcbiAgICBmZWF0dXJlLFxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSxcbiAgICBvbEdlb21ldHJ5PzogT2xHZW9tZXRyeVxuICApIHtcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gdGhpcy5tYXAub2wuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKTtcbiAgICBsZXQgZ2VvbWV0cnkgPSBmZWF0dXJlLmdlb21ldHJ5O1xuXG4gICAgLy8gSWYgYW4gb2xHZW9tZXRyeSBpcyBwYXNzZWQsIGl0IG1lYW5zIHRoYXQgaXQgaXMgYSBuZXcgZmVhdHVyZVxuICAgIGlmIChvbEdlb21ldHJ5KSB7XG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShmZWF0dXJlLCB7IG5ld0ZlYXR1cmU6IHRydWUgfSwgdHJ1ZSk7XG4gICAgICBnZW9tZXRyeSA9IG5ldyBPbEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KG9sR2VvbWV0cnksIHtcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb24sXG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2J1xuICAgICAgfSkgYXMgYW55O1xuXG4gICAgICBmZWF0dXJlLmdlb21ldHJ5ID0gZ2VvbWV0cnk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGUoZmVhdHVyZSwgeyBlZGl0OiB0cnVlIH0sIHRydWUpO1xuICAgIH1cblxuICAgIGZlYXR1cmUucHJvamVjdGlvbiA9ICdFUFNHOjQzMjYnO1xuXG4gICAgY29uc3QgZmVhdHVyZU9sID0gZmVhdHVyZVRvT2woZmVhdHVyZSwgcHJvamVjdGlvbi5nZXRDb2RlKCkpO1xuXG4gICAgdGhpcy5vbERyYXdpbmdMYXllci5kYXRhU291cmNlLm9sLmNsZWFyKCk7XG4gICAgdGhpcy5vbERyYXdpbmdMYXllci5kYXRhU291cmNlLm9sLmFkZEZlYXR1cmUoZmVhdHVyZU9sKTtcbiAgICB0aGlzLm1hcC5hZGRMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcblxuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdDb250cm9sKCk7XG4gICAgdGhpcy5jcmVhdGVNb2RpZnlJbnRlcmFjdGlvbihmZWF0dXJlT2wsIGZlYXR1cmUsIHdvcmtzcGFjZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGRyYXdpbmdzIGxheWVyIGFuZCBzb3VyY2UgZnJvbSB0aGUgbWFwIEFORCBmZWF0dXJlIGZyb20gdGhlIGVudGl0eSBzdG9yZS5cbiAgICogTGF5ZXIgcmVmcmVzaCB3aWxsIGF1dG9tYXRpY2FsbHkgYWRkIHRoZSBuZXcgZmVhdHVyZSBpbnRvIHRoZSBzdG9yZS5cbiAgICovXG4gIGRlbGV0ZURyYXdpbmdzKCkge1xuICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2UuY2xlYXIoKTtcbiAgICB0aGlzLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbW9kaWZ5IGludGVyYWN0aW9uIHRvIGFsbG93IGEgZ2VvbWV0cnkgY2hhbmdlIG9uZSBmZWF0dXJlIGF0IHRoZSB0aW1lIChkcmFnIGFuZCBkcm9wKVxuICAgKi9cbiAgY3JlYXRlTW9kaWZ5SW50ZXJhY3Rpb24oXG4gICAgb2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sXG4gICAgZmVhdHVyZSxcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2VcbiAgKSB7XG4gICAgdGhpcy5tYXAub2wucmVtb3ZlSW50ZXJhY3Rpb24odGhpcy5tb2RpZnkpO1xuICAgIGNvbnN0IG9sQ29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uKFtvbEZlYXR1cmVdLCB7IHVuaXF1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLm1vZGlmeSA9IG5ldyBPbE1vZGlmeSh7XG4gICAgICBmZWF0dXJlczogb2xDb2xsZWN0aW9uXG4gICAgfSk7XG5cbiAgICB0aGlzLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XG4gICAgb2xDb2xsZWN0aW9uLmZvckVhY2goKGZlYXR1cmUpID0+IHtcbiAgICAgIGZlYXR1cmUuc2V0U3R5bGUodGhpcy5tb2RpZnlTdHlsZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm1vZGlmeS5vbignbW9kaWZ5ZW5kJywgKGV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBvbEdlb21ldHJ5ID0gZXZlbnQuZmVhdHVyZXMuZ2V0QXJyYXkoKVswXT8uZ2V0R2VvbWV0cnkoKTtcbiAgICAgIGlmIChvbEdlb21ldHJ5KSB7XG4gICAgICAgIHRoaXMuYWRkRmVhdHVyZVRvU3RvcmUoZmVhdHVyZSwgd29ya3NwYWNlLCBvbEdlb21ldHJ5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL2VkaXRpb24td29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7QUFHckUsT0FBTyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBRzFDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFPaEcsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFtRG5DO0lBQ0E7SUFDQTtJQUNBO0lBQ0U7SUF0REgsa0JBQWtCLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7SUFFakUsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVyxDQUFjO0lBQ3pCLFNBQVMsQ0FBZTtJQUN4QixvQkFBb0IsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQzVDLGNBQWMsQ0FBYztJQUM3QixZQUFZLEdBQUcsWUFBWSxDQUFDLENBQUMscUNBQXFDO0lBQ2xFLE1BQU0sQ0FBQyxDQUFDLGtDQUFrQztJQUUxQyxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDekIsS0FBSyxFQUFFLHFCQUFxQjtZQUM1QixLQUFLLEVBQUUsQ0FBQztTQUNULENBQUM7UUFDRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3JCLEtBQUssRUFBRSxtQkFBbUI7U0FDM0IsQ0FBQztRQUNGLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDeEIsTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUN6QixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixLQUFLLEVBQUUsQ0FBQzthQUNULENBQUM7WUFDRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNyQixLQUFLLEVBQUUsbUJBQW1CO2FBQzNCLENBQUM7U0FDSCxDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBRUssMEJBQTBCLEdBQUcsQ0FBQyxNQUE0QixFQUFFLEVBQUU7UUFDcEUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7SUFDMUMsQ0FBQyxDQUFDO0lBRU0sMkJBQTJCLEdBQUcsQ0FBQyxNQUE0QixFQUFFLEVBQUU7UUFDckUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDcEMsQ0FBQyxDQUFDO0lBRUssU0FBUyxDQUFTO0lBQ2xCLFdBQVcsQ0FBUztJQUNwQixXQUFXLENBQVM7SUFFM0IsWUFDVSxNQUFpQixFQUNqQixhQUE0QixFQUM1QixPQUFpQyxFQUNqQyxlQUErRCxFQUM3RCxPQUFnQztRQUUxQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFOUCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLG9CQUFlLEdBQWYsZUFBZSxDQUFnRDtRQUM3RCxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUcxQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDOUQsSUFDRSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2dCQUN4QyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQ3hDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBWSxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxXQUFXLENBQUM7WUFDcEMsRUFBRSxFQUFFLGdCQUFnQjtZQUNwQixLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsR0FBRztZQUNYLE1BQU0sRUFBRSxJQUFJLGlCQUFpQixFQUFFO1lBQy9CLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFNBQVMsRUFBRTtnQkFDVCxPQUFPLEVBQUUsS0FBSzthQUNmO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFPLEVBQUUsU0FBUztRQUM5QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUU7Z0JBQzdELFlBQVksRUFBRSxLQUFLO2dCQUNuQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2FBQ3pCLENBQUMsQ0FBQztZQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDM0MsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ3JCLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQztvQkFDWixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztvQkFDbkUsTUFBTSxTQUFTLEdBQ2IsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7b0JBQ3ZELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO3dCQUNuQixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDOzRCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2dDQUMzQyxPQUFPO2dDQUNQLEdBQUc7Z0NBQ0gsU0FBUzs0QkFDWCxDQUFDLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxTQUFTLENBQUM7b0JBQ2hDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDOzRCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsU0FBUzs0QkFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDaEIsQ0FBQztvQkFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUMxRCxLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQzs0QkFDMUMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQzs0QkFDN0IsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0NBQ3ZDLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUN4QyxDQUFDOzRCQUNELElBQUksVUFBVSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO2dDQUN2RCxFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDcEMsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7b0JBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDUixHQUFHLElBQUksRUFBRSxDQUFDO3dCQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNyQyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQTJCO1FBQzlDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksRUFBRSxDQUFDO1FBQ1AsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDOUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxRCxxQkFBcUI7WUFDckIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO2dCQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDekQsTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNuQixLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDMUMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDN0IsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZDLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN4QyxDQUFDO29CQUNELElBQUksVUFBVSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDO3dCQUN2RCxFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDbEMsSUFBSSxHQUFHLElBQUksQ0FBQzt3QkFDWixNQUFNO29CQUNSLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNQLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FDbkMsQ0FBQztZQUNGLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQzdDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ25CLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sMENBQTBDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4QixTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDN0QsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztvQkFDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQzlELENBQUM7cUJBQU0sQ0FBQztvQkFDTixTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDdEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUNoQyxPQUFPLEVBQ1AsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQ3BCLElBQUksQ0FDTCxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsQ0FDZixTQUFrQixFQUNsQixXQUFvQixFQUNwQixXQUFvQjtRQUVwQixNQUFNLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUNsQyxZQUFZLEVBQUUsU0FBUztZQUN2QixrQkFBa0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQzdDLGlCQUFpQixFQUFFLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQ3RDLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxDQUNaO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQixDQUNsQixZQUFrQixFQUNsQixPQUFPLEVBQ1AsU0FBMkI7UUFFM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsU0FBMkI7UUFDNUQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUEyQjtRQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDOUMsQ0FBQyxVQUFzQixFQUFFLEVBQUU7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGlCQUFpQixDQUN2QixPQUFPLEVBQ1AsU0FBMkIsRUFDM0IsVUFBdUI7UUFFdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekQsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUVoQyxnRUFBZ0U7UUFDaEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEUsUUFBUSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFO2dCQUN6RCxpQkFBaUIsRUFBRSxVQUFVO2dCQUM3QixjQUFjLEVBQUUsV0FBVzthQUM1QixDQUFRLENBQUM7WUFFVixPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM5QixDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELE9BQU8sQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1FBRWpDLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjO1FBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCLENBQ3JCLFNBQWdDLEVBQ2hDLE9BQU8sRUFDUCxTQUEyQjtRQUUzQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxRQUFRLENBQUM7WUFDekIsUUFBUSxFQUFFLFlBQVk7U0FDdkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQy9ELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRW50aXR5UmVjb3JkIH0gZnJvbSAnQGlnbzIvY29tbW9uL2VudGl0eSc7XG5pbXBvcnQgeyBXb3Jrc3BhY2UsIFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tICdAaWdvMi9jb21tb24vd29ya3NwYWNlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5cbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gJ29sL0NvbGxlY3Rpb24nO1xuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0IE9sTW9kaWZ5IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XG5pbXBvcnQgT2xWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5pbXBvcnQgKiBhcyBPbFN0eWxlIGZyb20gJ29sL3N0eWxlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UsIFJlbGF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkJztcbmltcG9ydCB7IEdlb21ldHJ5VHlwZSwgY3JlYXRlSW50ZXJhY3Rpb25TdHlsZSB9IGZyb20gJy4uLy4uL2RyYXcvc2hhcmVkJztcbmltcG9ydCB7IGZlYXR1cmVUb09sIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQnO1xuaW1wb3J0IHsgRHJhd0NvbnRyb2wgfSBmcm9tICcuLi8uLi9nZW9tZXRyeS9zaGFyZWQnO1xuaW1wb3J0IHsgSW1hZ2VMYXllciwgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdGlvbldvcmtzcGFjZU9wdGlvbnMgZXh0ZW5kcyBXb3Jrc3BhY2VPcHRpb25zIHtcbiAgbGF5ZXI6IEltYWdlTGF5ZXIgfCBWZWN0b3JMYXllcjtcbiAgbWFwOiBJZ29NYXA7XG59XG5cbmV4cG9ydCBjbGFzcyBFZGl0aW9uV29ya3NwYWNlIGV4dGVuZHMgV29ya3NwYWNlIHtcbiAgcmVhZG9ubHkgaW5SZXNvbHV0aW9uUmFuZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICBnZXQgbGF5ZXIoKTogSW1hZ2VMYXllciB8IFZlY3RvckxheWVyIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmxheWVyO1xuICB9XG5cbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubWFwO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3Q29udHJvbDogRHJhd0NvbnRyb2w7XG4gIHByaXZhdGUgZHJhd0VuZCQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb2xEcmF3aW5nTGF5ZXJTb3VyY2UgPSBuZXcgT2xWZWN0b3JTb3VyY2UoKTtcbiAgcHJpdmF0ZSBvbERyYXdpbmdMYXllcjogVmVjdG9yTGF5ZXI7XG4gIHB1YmxpYyBnZW9tZXRyeVR5cGUgPSBHZW9tZXRyeVR5cGU7IC8vIFJlZmVyZW5jZSB0byB0aGUgR2VvbWV0cnlUeXBlIGVudW1cbiAgcHVibGljIG1vZGlmeTsgLy8gUmVmZXJlbmNlIHRvIHRoZSBvbCBpbnRlcmFjdGlvblxuXG4gIHB1YmxpYyBtb2RpZnlTdHlsZSA9IG5ldyBPbFN0eWxlLlN0eWxlKHtcbiAgICBzdHJva2U6IG5ldyBPbFN0eWxlLlN0cm9rZSh7XG4gICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgd2lkdGg6IDFcbiAgICB9KSxcbiAgICBmaWxsOiBuZXcgT2xTdHlsZS5GaWxsKHtcbiAgICAgIGNvbG9yOiAncmdiYSgwLDE2MSwyMjIsMSknXG4gICAgfSksXG4gICAgaW1hZ2U6IG5ldyBPbFN0eWxlLkNpcmNsZSh7XG4gICAgICByYWRpdXM6IDcsXG4gICAgICBzdHJva2U6IG5ldyBPbFN0eWxlLlN0cm9rZSh7XG4gICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgIHdpZHRoOiAxXG4gICAgICB9KSxcbiAgICAgIGZpbGw6IG5ldyBPbFN0eWxlLkZpbGwoe1xuICAgICAgICBjb2xvcjogJ3JnYmEoMCwxNjEsMjIyLDEpJ1xuICAgICAgfSlcbiAgICB9KVxuICB9KTtcblxuICBwcml2YXRlIG5ld0ZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jID0gKHJlY29yZDogRW50aXR5UmVjb3JkPG9iamVjdD4pID0+IHtcbiAgICByZXR1cm4gcmVjb3JkLnN0YXRlLm5ld0ZlYXR1cmUgPT09IHRydWU7XG4gIH07XG5cbiAgcHJpdmF0ZSBlZGl0RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMgPSAocmVjb3JkOiBFbnRpdHlSZWNvcmQ8b2JqZWN0PikgPT4ge1xuICAgIHJldHVybiByZWNvcmQuc3RhdGUuZWRpdCA9PT0gdHJ1ZTtcbiAgfTtcblxuICBwdWJsaWMgZmlsbENvbG9yOiBzdHJpbmc7XG4gIHB1YmxpYyBzdHJva2VDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgc3Ryb2tlV2lkdGg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGFkZGluZyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPixcbiAgICBwcml2YXRlIGdldERvbWFpblZhbHVlczogKHJlbGF0aW9uOiBSZWxhdGlvbk9wdGlvbnMpID0+IE9ic2VydmFibGU8YW55PixcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogRWRpdGlvbldvcmtzcGFjZU9wdGlvbnNcbiAgKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQuc3Vic2NyaWJlKChtYXBSZXNvbHV0aW9uKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIG1hcFJlc29sdXRpb24gPiB0aGlzLmxheWVyLm1pblJlc29sdXRpb24gJiZcbiAgICAgICAgbWFwUmVzb2x1dGlvbiA8IHRoaXMubGF5ZXIubWF4UmVzb2x1dGlvblxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZHJhd0NvbnRyb2wgPSB0aGlzLmNyZWF0ZURyYXdDb250cm9sKCk7XG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRHZW9tZXRyeVR5cGUodGhpcy5nZW9tZXRyeVR5cGUuUG9pbnQgYXMgYW55KTtcblxuICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xuXG4gICAgdGhpcy5vbERyYXdpbmdMYXllciA9IG5ldyBWZWN0b3JMYXllcih7XG4gICAgICBpZDogJ2lnby1kcmF3LWxheWVyJyxcbiAgICAgIHRpdGxlOiAnZWRpdGlvbicsXG4gICAgICB6SW5kZXg6IDMwMCxcbiAgICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXG4gICAgICBzaG93SW5MYXllckxpc3Q6IGZhbHNlLFxuICAgICAgZXhwb3J0YWJsZTogZmFsc2UsXG4gICAgICBicm93c2FibGU6IGZhbHNlLFxuICAgICAgd29ya3NwYWNlOiB7XG4gICAgICAgIGVuYWJsZWQ6IGZhbHNlXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihDb25maXJtYXRpb25Qb3B1cENvbXBvbmVudCwge1xuICAgICAgICBkaXNhYmxlQ2xvc2U6IGZhbHNlLFxuICAgICAgICBkYXRhOiB7IHR5cGU6ICdkZWxldGUnIH1cbiAgICAgIH0pO1xuXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuICAgICAgICAgIGxldCBpZCwgdXJsO1xuICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb24uYmFzZVVybDtcbiAgICAgICAgICBjb25zdCBkZWxldGVVcmwgPVxuICAgICAgICAgICAgd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmRlbGV0ZVVybDtcbiAgICAgICAgICBpZiAoYmFzZVVybC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJylcbiAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpICtcbiAgICAgICAgICAgICAgICBiYXNlVXJsICtcbiAgICAgICAgICAgICAgICAnPycgK1xuICAgICAgICAgICAgICAgIGRlbGV0ZVVybFxuICAgICAgICAgICAgICA6IGJhc2VVcmwgKyAnPycgKyBkZWxldGVVcmw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJylcbiAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpICsgZGVsZXRlVXJsXG4gICAgICAgICAgICAgIDogZGVsZXRlVXJsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3QgY29sdW1uIG9mIHdvcmtzcGFjZS5tZXRhLnRhYmxlVGVtcGxhdGUuY29sdW1ucykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgbGV0IGNvbHVtbk5hbWUgPSBjb2x1bW4ubmFtZTtcbiAgICAgICAgICAgICAgaWYgKGNvbHVtbk5hbWUuaW5jbHVkZXMoJ3Byb3BlcnRpZXMuJykpIHtcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lID09PSBwcm9wZXJ0eSAmJiBjb2x1bW4ucHJpbWFyeSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgICB1cmwgKz0gaWQ7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUZlYXR1cmUod29ya3NwYWNlLCB1cmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgMjUwKTtcbiAgfVxuXG4gIGVkaXRGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSkge1xuICAgIGZlYXR1cmUuZWRpdGlvbiA9IHRydWU7XG4gICAgbGV0IGlkO1xuICAgIGxldCBmaW5kID0gZmFsc2U7XG4gICAgY29uc3QgZWRpdGlvbk9wdCA9IHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbjtcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcbiAgICAgIC8vIFVwZGF0ZSBkb21haW4gbGlzdFxuICAgICAgaWYgKGNvbHVtbi50eXBlID09PSAnbGlzdCcgfHwgY29sdW1uLnR5cGUgPT09ICdhdXRvY29tcGxldGUnKSB7XG4gICAgICAgIHRoaXMuZ2V0RG9tYWluVmFsdWVzKGNvbHVtbi5yZWxhdGlvbikuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBjb2x1bW4uZG9tYWluVmFsdWVzID0gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChmaW5kID09PSBmYWxzZSkge1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGZlYXR1cmUucHJvcGVydGllcykge1xuICAgICAgICAgIGxldCBjb2x1bW5OYW1lID0gY29sdW1uLm5hbWU7XG4gICAgICAgICAgaWYgKGNvbHVtbk5hbWUuaW5jbHVkZXMoJ3Byb3BlcnRpZXMuJykpIHtcbiAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBjb2x1bW5OYW1lLnNwbGl0KCcuJylbMV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjb2x1bW5OYW1lID09PSBwcm9wZXJ0eSAmJiBjb2x1bW4ucHJpbWFyeSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWQgPSBmZWF0dXJlLnByb3BlcnRpZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgZmluZCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlkKSB7XG4gICAgICBmZWF0dXJlLm9yaWdpbmFsX3Byb3BlcnRpZXMgPSBKU09OLnBhcnNlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeShmZWF0dXJlLnByb3BlcnRpZXMpXG4gICAgICApO1xuICAgICAgZmVhdHVyZS5vcmlnaW5hbF9nZW9tZXRyeSA9IGZlYXR1cmUuZ2VvbWV0cnk7XG4gICAgICBmZWF0dXJlLmlka2V5ID0gaWQ7XG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgZWRpdDogZmFsc2UgfSk7XG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGVWaWV3LmZpbHRlcih0aGlzLmVkaXRGZWF0dXJlZmlsdGVyQ2xhdXNlRnVuYyk7XG4gICAgICB0aGlzLmFkZEZlYXR1cmVUb1N0b3JlKGZlYXR1cmUsIHdvcmtzcGFjZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE9ubHkgZm9yIGVkaXRpb24gd2l0aCBpdCdzIG93biBnZW9tZXRyeVxuICAgICAgaWYgKCFmZWF0dXJlLm5ld0ZlYXR1cmUgJiYgZWRpdGlvbk9wdC5nZW9tVHlwZSkge1xuICAgICAgICBmZWF0dXJlLm5ld0ZlYXR1cmUgPSB0cnVlO1xuICAgICAgICB0aGlzLmFkZGluZyQubmV4dCh0cnVlKTtcbiAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IG5ld0ZlYXR1cmU6IGZhbHNlIH0pO1xuICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGVWaWV3LmZpbHRlcih0aGlzLm5ld0ZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jKTtcbiAgICAgICAgaWYgKGVkaXRpb25PcHQuYWRkV2l0aERyYXcpIHtcbiAgICAgICAgICBjb25zdCBnZW9tZXRyeVR5cGUgPSBlZGl0aW9uT3B0Lmdlb21UeXBlO1xuICAgICAgICAgIHRoaXMub25HZW9tZXRyeVR5cGVDaGFuZ2UoZ2VvbWV0cnlUeXBlLCBmZWF0dXJlLCB3b3Jrc3BhY2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5pbnNlcnQoZmVhdHVyZSk7XG4gICAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShcbiAgICAgICAgICAgIGZlYXR1cmUsXG4gICAgICAgICAgICB7IG5ld0ZlYXR1cmU6IHRydWUgfSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIERyYXcgQ29udHJvbFxuICAgKiBAcGFyYW0gZmlsbENvbG9yIHRoZSBmaWxsIGNvbG9yXG4gICAqIEBwYXJhbSBzdHJva2VDb2xvciB0aGUgc3Ryb2tlIGNvbG9yXG4gICAqIEBwYXJhbSBzdHJva2VXaWR0aCB0aGUgc3Ryb2tlIHdpZHRoXG4gICAqIEByZXR1cm5zIGEgRHJhdyBDb250cm9sXG4gICAqL1xuICBjcmVhdGVEcmF3Q29udHJvbChcbiAgICBmaWxsQ29sb3I/OiBzdHJpbmcsXG4gICAgc3Ryb2tlQ29sb3I/OiBzdHJpbmcsXG4gICAgc3Ryb2tlV2lkdGg/OiBudW1iZXJcbiAgKSB7XG4gICAgY29uc3QgZHJhd0NvbnRyb2wgPSBuZXcgRHJhd0NvbnRyb2woe1xuICAgICAgZ2VvbWV0cnlUeXBlOiB1bmRlZmluZWQsXG4gICAgICBkcmF3aW5nTGF5ZXJTb3VyY2U6IHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2UsXG4gICAgICBkcmF3aW5nTGF5ZXJTdHlsZTogbmV3IE9sU3R5bGUuU3R5bGUoe30pLFxuICAgICAgaW50ZXJhY3Rpb25TdHlsZTogY3JlYXRlSW50ZXJhY3Rpb25TdHlsZShcbiAgICAgICAgZmlsbENvbG9yLFxuICAgICAgICBzdHJva2VDb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGhcbiAgICAgIClcbiAgICB9KTtcblxuICAgIHJldHVybiBkcmF3Q29udHJvbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgbmV3IGdlb21ldHJ5IHR5cGVcbiAgICogQHBhcmFtIGdlb21ldHJ5VHlwZSB0aGUgZ2VvbWV0cnkgdHlwZSBzZWxlY3RlZCBieSB0aGUgdXNlclxuICAgKi9cbiAgb25HZW9tZXRyeVR5cGVDaGFuZ2UoXG4gICAgZ2VvbWV0cnlUeXBlOiBUeXBlLFxuICAgIGZlYXR1cmUsXG4gICAgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlXG4gICkge1xuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0R2VvbWV0cnlUeXBlKGdlb21ldHJ5VHlwZSk7XG4gICAgdGhpcy50b2dnbGVEcmF3Q29udHJvbChmZWF0dXJlLCB3b3Jrc3BhY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIHRoZSBjb3JyZWN0IGNvbnRyb2xcbiAgICovXG4gIHByaXZhdGUgdG9nZ2xlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XG4gICAgdGhpcy5kZWFjdGl2YXRlRHJhd0NvbnRyb2woKTtcbiAgICB0aGlzLmFjdGl2YXRlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIHRoZSBhY3RpdmUgZHJhdyBjb250cm9sXG4gICAqL1xuICBwdWJsaWMgZGVhY3RpdmF0ZURyYXdDb250cm9sKCkge1xuICAgIGlmICghdGhpcy5kcmF3Q29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRyYXdFbmQkJCkge1xuICAgICAgdGhpcy5kcmF3RW5kJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmRyYXdDb250cm9sLnNldE9sTWFwKHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgYSBnaXZlbiBjb250cm9sXG4gICAqL1xuICBwcml2YXRlIGFjdGl2YXRlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XG4gICAgdGhpcy5kcmF3RW5kJCQgPSB0aGlzLmRyYXdDb250cm9sLmVuZCQuc3Vic2NyaWJlKFxuICAgICAgKG9sR2VvbWV0cnk6IE9sR2VvbWV0cnkpID0+IHtcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UsIG9sR2VvbWV0cnkpO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLmRyYXdDb250cm9sLnNldE9sTWFwKHRoaXMubWFwLm9sLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIGxheWVyLiBUaGUgbG9hZGluZyBzdHJhdGVneSBvZiB0aGUgbGF5ZXJcbiAgICogd2lsbCB0cmlnZ2VyIGFuZCBhZGQgdGhlIGZlYXR1cmUgdG8gdGhlIHdvcmtzcGFjZSBzdG9yZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIGFkZEZlYXR1cmVUb1N0b3JlKFxuICAgIGZlYXR1cmUsXG4gICAgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlLFxuICAgIG9sR2VvbWV0cnk/OiBPbEdlb21ldHJ5XG4gICkge1xuICAgIGNvbnN0IHByb2plY3Rpb24gPSB0aGlzLm1hcC5vbC5nZXRWaWV3KCkuZ2V0UHJvamVjdGlvbigpO1xuICAgIGxldCBnZW9tZXRyeSA9IGZlYXR1cmUuZ2VvbWV0cnk7XG5cbiAgICAvLyBJZiBhbiBvbEdlb21ldHJ5IGlzIHBhc3NlZCwgaXQgbWVhbnMgdGhhdCBpdCBpcyBhIG5ldyBmZWF0dXJlXG4gICAgaWYgKG9sR2VvbWV0cnkpIHtcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5pbnNlcnQoZmVhdHVyZSk7XG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlKGZlYXR1cmUsIHsgbmV3RmVhdHVyZTogdHJ1ZSB9LCB0cnVlKTtcbiAgICAgIGdlb21ldHJ5ID0gbmV3IE9sR2VvSlNPTigpLndyaXRlR2VvbWV0cnlPYmplY3Qob2xHZW9tZXRyeSwge1xuICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvbixcbiAgICAgICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnXG4gICAgICB9KSBhcyBhbnk7XG5cbiAgICAgIGZlYXR1cmUuZ2VvbWV0cnkgPSBnZW9tZXRyeTtcbiAgICB9IGVsc2Uge1xuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShmZWF0dXJlLCB7IGVkaXQ6IHRydWUgfSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgZmVhdHVyZS5wcm9qZWN0aW9uID0gJ0VQU0c6NDMyNic7XG5cbiAgICBjb25zdCBmZWF0dXJlT2wgPSBmZWF0dXJlVG9PbChmZWF0dXJlLCBwcm9qZWN0aW9uLmdldENvZGUoKSk7XG5cbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyLmRhdGFTb3VyY2Uub2wuY2xlYXIoKTtcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyLmRhdGFTb3VyY2Uub2wuYWRkRmVhdHVyZShmZWF0dXJlT2wpO1xuICAgIHRoaXMubWFwLmFkZExheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xuXG4gICAgdGhpcy5kZWFjdGl2YXRlRHJhd0NvbnRyb2woKTtcbiAgICB0aGlzLmNyZWF0ZU1vZGlmeUludGVyYWN0aW9uKGZlYXR1cmVPbCwgZmVhdHVyZSwgd29ya3NwYWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgZHJhd2luZ3MgbGF5ZXIgYW5kIHNvdXJjZSBmcm9tIHRoZSBtYXAgQU5EIGZlYXR1cmUgZnJvbSB0aGUgZW50aXR5IHN0b3JlLlxuICAgKiBMYXllciByZWZyZXNoIHdpbGwgYXV0b21hdGljYWxseSBhZGQgdGhlIG5ldyBmZWF0dXJlIGludG8gdGhlIHN0b3JlLlxuICAgKi9cbiAgZGVsZXRlRHJhd2luZ3MoKSB7XG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XG4gICAgdGhpcy5vbERyYXdpbmdMYXllclNvdXJjZS5jbGVhcigpO1xuICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBtb2RpZnkgaW50ZXJhY3Rpb24gdG8gYWxsb3cgYSBnZW9tZXRyeSBjaGFuZ2Ugb25lIGZlYXR1cmUgYXQgdGhlIHRpbWUgKGRyYWcgYW5kIGRyb3ApXG4gICAqL1xuICBjcmVhdGVNb2RpZnlJbnRlcmFjdGlvbihcbiAgICBvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PixcbiAgICBmZWF0dXJlLFxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZVxuICApIHtcbiAgICB0aGlzLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XG4gICAgY29uc3Qgb2xDb2xsZWN0aW9uID0gbmV3IENvbGxlY3Rpb24oW29sRmVhdHVyZV0sIHsgdW5pcXVlOiB0cnVlIH0pO1xuICAgIHRoaXMubW9kaWZ5ID0gbmV3IE9sTW9kaWZ5KHtcbiAgICAgIGZlYXR1cmVzOiBvbENvbGxlY3Rpb25cbiAgICB9KTtcblxuICAgIHRoaXMubWFwLm9sLmFkZEludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcbiAgICBvbENvbGxlY3Rpb24uZm9yRWFjaCgoZmVhdHVyZSkgPT4ge1xuICAgICAgZmVhdHVyZS5zZXRTdHlsZSh0aGlzLm1vZGlmeVN0eWxlKTtcbiAgICB9KTtcblxuICAgIHRoaXMubW9kaWZ5Lm9uKCdtb2RpZnllbmQnLCAoZXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IG9sR2VvbWV0cnkgPSBldmVudC5mZWF0dXJlcy5nZXRBcnJheSgpWzBdPy5nZXRHZW9tZXRyeSgpO1xuICAgICAgaWYgKG9sR2VvbWV0cnkpIHtcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UsIG9sR2VvbWV0cnkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|