@igo2/geo 16.0.0-rc.0 → 16.0.0-rc.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 +7 -7
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +7 -7
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +4 -4
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +6 -6
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +5 -5
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +13 -13
- package/esm2022/lib/catalog/catalog.module.mjs +3 -3
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +7 -8
- package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
- package/esm2022/lib/datasource/datasource.module.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -10
- package/esm2022/lib/datasource/shared/datasource.service.mjs +9 -9
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/data.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +4 -4
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +4 -19
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +7 -7
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +2 -2
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +2 -2
- package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
- package/esm2022/lib/datasource/utils/tilegrid.mjs +3 -3
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -4
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +6 -6
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +5 -5
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +4 -4
- package/esm2022/lib/directions/directions.component.mjs +50 -25
- package/esm2022/lib/directions/directions.module.mjs +10 -6
- package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.service.mjs +10 -11
- package/esm2022/lib/directions/shared/directions.utils.mjs +7 -7
- 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 +2 -2
- package/esm2022/lib/download/shared/download.service.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +9 -9
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
- package/esm2022/lib/draw/draw/draw.component.mjs +28 -28
- package/esm2022/lib/draw/draw/draw.module.mjs +15 -15
- package/esm2022/lib/draw/drawingTool.module.mjs +1 -1
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.utils.mjs +6 -6
- package/esm2022/lib/environment/environment.interface.mjs +2 -0
- package/esm2022/lib/environment/index.mjs +2 -0
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +8 -8
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +3 -3
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +3 -3
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +4 -4
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +2 -2
- package/esm2022/lib/feature/feature.module.mjs +2 -2
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +7 -7
- package/esm2022/lib/feature/shared/store.mjs +3 -3
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +4 -4
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +10 -22
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +5 -2
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/search.mjs +2 -2
- package/esm2022/lib/feature/shared/strategies/selection.mjs +5 -5
- package/esm2022/lib/feature/shared/strategies.utils.mjs +2 -2
- package/esm2022/lib/filter/filter.module.mjs +21 -21
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
- 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 +8 -8
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +6 -6
- 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 +24 -4
- 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 +1 -1
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +3 -3
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.mjs +5 -5
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +2 -2
- package/esm2022/lib/filter/shared/time-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/time-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/shared/time-filter.service.mjs +2 -2
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +14 -14
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +7 -7
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +4 -4
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
- package/esm2022/lib/geo.module.mjs +4 -4
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +8 -8
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +3 -3
- package/esm2022/lib/geometry/geometry.module.mjs +2 -2
- package/esm2022/lib/geometry/shared/controls/draw.mjs +6 -6
- package/esm2022/lib/geometry/shared/controls/modify.mjs +8 -8
- package/esm2022/lib/geometry/shared/controls/slice.mjs +2 -2
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +5 -5
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +4 -4
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +38 -38
- package/esm2022/lib/import-export/import-export.module.mjs +3 -3
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +10 -21
- package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.service.mjs +4 -4
- package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.utils.mjs +2 -2
- package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +4 -4
- package/esm2022/lib/import-export/shared/import.utils.mjs +5 -5
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
- 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 +2 -2
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +4 -4
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +4 -4
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +9 -9
- package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
- package/esm2022/lib/layer/layer.module.mjs +9 -9
- package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2022/lib/layer/shared/layer.service.mjs +11 -11
- package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/any-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +44 -33
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
- package/esm2022/lib/layer/utils/image-watcher.mjs +2 -2
- package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
- package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
- package/esm2022/lib/layer/utils/tile-watcher.mjs +2 -2
- package/esm2022/lib/layer/utils/vector-watcher.mjs +2 -2
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +2 -2
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +4 -4
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +3 -3
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +3 -3
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +8 -10
- package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +2 -0
- package/esm2022/lib/map/home-extent-button/index.mjs +2 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +2 -2
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +2 -2
- package/esm2022/lib/map/map-center/map-center.component.mjs +2 -2
- package/esm2022/lib/map/map.module.mjs +14 -14
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +9 -20
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +2 -2
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +3 -3
- package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +8 -8
- package/esm2022/lib/map/shared/controllers/view.mjs +3 -3
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +15 -15
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +2 -2
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +4 -4
- package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
- package/esm2022/lib/map/shared/map.interface.mjs +1 -1
- package/esm2022/lib/map/shared/map.mjs +9 -6
- package/esm2022/lib/map/shared/map.utils.mjs +3 -3
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +3 -3
- package/esm2022/lib/map/shared/projection.interfaces.mjs +1 -1
- package/esm2022/lib/map/shared/projection.service.mjs +3 -3
- package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +3 -3
- package/esm2022/lib/map/utils/layer-watcher.mjs +2 -2
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +4 -4
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +2 -2
- package/esm2022/lib/measure/measure.module.mjs +1 -1
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +2 -2
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +4 -4
- package/esm2022/lib/measure/measurer/measurer.component.mjs +11 -11
- package/esm2022/lib/measure/measurer/measurer.module.mjs +6 -6
- package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.utils.mjs +7 -7
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +4 -4
- package/esm2022/lib/metadata/metadata.module.mjs +4 -4
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +3 -3
- package/esm2022/lib/offline/layerDB/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +2 -2
- package/esm2022/lib/offline/shared/geo-network.service.mjs +1 -8
- package/esm2022/lib/overlay/overlay.module.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.service.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
- package/esm2022/lib/print/print/print.component.mjs +3 -3
- package/esm2022/lib/print/print-form/print-form.component.mjs +4 -4
- package/esm2022/lib/print/print.module.mjs +4 -4
- package/esm2022/lib/print/shared/geopdf.mjs +1 -1
- package/esm2022/lib/print/shared/print.interface.mjs +1 -1
- package/esm2022/lib/print/shared/print.service.mjs +9 -9
- package/esm2022/lib/query/query.module.mjs +3 -3
- package/esm2022/lib/query/shared/query-search-source.mjs +2 -2
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2022/lib/query/shared/query.directive.mjs +7 -7
- package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2022/lib/query/shared/query.service.mjs +10 -10
- package/esm2022/lib/query/shared/query.utils.mjs +1 -1
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +6 -6
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +2 -2
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +2 -2
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +5 -5
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +15 -15
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +5 -5
- package/esm2022/lib/search/search-results/search-results.component.mjs +7 -7
- package/esm2022/lib/search/search-results/search-results.module.mjs +11 -11
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +4 -4
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +2 -2
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +4 -4
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +3 -3
- package/esm2022/lib/search/search.module.mjs +8 -8
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +14 -14
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +2 -2
- package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +3 -3
- package/esm2022/lib/search/shared/search.utils.mjs +1 -1
- package/esm2022/lib/search/shared/sources/cadastre.mjs +7 -7
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.mjs +11 -11
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +3 -3
- package/esm2022/lib/search/shared/sources/icherche.mjs +6 -6
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +3 -3
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.mjs +8 -8
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/nominatim.mjs +6 -6
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +7 -7
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +2 -2
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.mjs +6 -6
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +2 -2
- package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
- package/esm2022/lib/style/shared/font.enum.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +2 -2
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +2 -2
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +2 -2
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.module.mjs +2 -2
- package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.service.mjs +3 -3
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +24 -33
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +17 -25
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
- package/esm2022/lib/style/style-service/draw-style.service.mjs +2 -2
- package/esm2022/lib/style/style-service/style.service.mjs +3 -3
- package/esm2022/lib/style/style.module.mjs +4 -4
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +3 -3
- package/esm2022/lib/utils/googleLinks.mjs +1 -1
- package/esm2022/lib/utils/id-generator.mjs +2 -2
- package/esm2022/lib/utils/osmLinks.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +1 -1
- package/esm2022/lib/wkt/shared/wkt.service.mjs +2 -2
- package/esm2022/lib/wkt/wkt.module.mjs +1 -1
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +4 -4
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +2 -2
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +10 -15
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +7 -7
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +6 -6
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +6 -6
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +5 -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 +2 -2
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +7 -7
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +2 -2
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +5 -5
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +2 -2
- package/esm2022/lib/workspace/workspace.module.mjs +4 -4
- package/esm2022/public_api.mjs +2 -1
- package/fesm2022/igo2-geo.mjs +34336 -34355
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/geo-theme.scss +23 -21
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +3 -3
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +2 -2
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +3 -3
- package/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -0
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +4 -4
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
- package/lib/catalog/catalog.theming.scss +5 -0
- package/lib/catalog/shared/catalog.abstract.d.ts +2 -2
- package/lib/catalog/shared/catalog.enum.d.ts +4 -0
- package/lib/catalog/shared/catalog.interface.d.ts +10 -5
- package/lib/catalog/shared/catalog.service.d.ts +2 -2
- package/lib/datasource/shared/capabilities.service.d.ts +2 -2
- package/lib/datasource/shared/datasource.service.d.ts +6 -6
- package/lib/datasource/shared/datasources/any-datasource.d.ts +11 -11
- package/lib/datasource/shared/datasources/any-datasource.interface.d.ts +10 -10
- package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -2
- package/lib/datasource/shared/datasources/carto-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/cluster-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/datasources/datasource.d.ts +4 -4
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/feature-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/datasources/tiledebug-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/datasources/websocket-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/wfs-datasource.d.ts +3 -4
- package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/wfs.service.d.ts +1 -1
- package/lib/datasource/shared/datasources/wms-datasource.d.ts +5 -5
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +2 -2
- package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +4 -3
- package/lib/datasource/shared/options/options-api.providers.d.ts +1 -1
- package/lib/datasource/shared/options/options-api.service.d.ts +1 -1
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +2 -2
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +3 -3
- package/lib/directions/directions-sources/directions-source.interface.d.ts +12 -8
- package/lib/directions/directions-sources/osrm-directions-source.d.ts +1 -1
- package/lib/directions/directions.component.d.ts +11 -3
- package/lib/directions/directions.module.d.ts +5 -4
- package/lib/directions/directions.theming.scss +6 -6
- package/lib/directions/shared/directions.interface.d.ts +1 -1
- package/lib/directions/shared/directions.service.d.ts +5 -5
- package/lib/directions/shared/directions.utils.d.ts +3 -3
- package/lib/draw/draw/draw-popup.component.d.ts +3 -3
- package/lib/draw/draw/draw.component.d.ts +12 -12
- package/lib/draw/draw.theming.scss +32 -32
- package/lib/draw/shared/draw-icon.service.d.ts +1 -1
- package/lib/draw/shared/draw.interface.d.ts +3 -3
- package/lib/draw/shared/draw.utils.d.ts +4 -4
- package/lib/environment/environment.interface.d.ts +48 -0
- package/lib/environment/index.d.ts +1 -0
- package/lib/feature/feature-details/feature-details.component.d.ts +6 -6
- package/lib/feature/feature-details/feature-details.directive.d.ts +2 -2
- package/lib/feature/feature-details/feature-details.theming.scss +16 -16
- package/lib/feature/feature-form/feature-form.component.d.ts +1 -1
- package/lib/feature/shared/feature.interfaces.d.ts +5 -5
- package/lib/feature/shared/feature.utils.d.ts +4 -4
- package/lib/feature/shared/store.d.ts +1 -1
- package/lib/feature/shared/strategies/geo-properties.d.ts +2 -2
- package/lib/feature/shared/strategies/in-map-extent.d.ts +1 -1
- package/lib/feature/shared/strategies/in-map-resolution.d.ts +1 -1
- package/lib/feature/shared/strategies/loading-layer.d.ts +1 -1
- package/lib/feature/shared/strategies/search.d.ts +1 -1
- package/lib/feature/shared/strategies/selection.d.ts +2 -2
- package/lib/feature/shared/strategies.utils.d.ts +1 -1
- package/lib/filter/filter.theming.scss +0 -3
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +3 -3
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +5 -5
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +2 -2
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
- package/lib/filter/shared/ogc-filter.d.ts +5 -4
- package/lib/filter/shared/ogc-filter.interface.d.ts +3 -3
- package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
- package/lib/filter/shared/time-filter.interface.d.ts +1 -1
- package/lib/filter/shared/time-filter.service.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +13 -13
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +6 -6
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -3
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +2 -2
- package/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +2 -2
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +4 -4
- package/lib/geometry/shared/controls/draw.d.ts +4 -4
- package/lib/geometry/shared/controls/modify.d.ts +4 -4
- package/lib/geometry/shared/controls/slice.d.ts +3 -3
- package/lib/geometry/shared/geometry.interfaces.d.ts +1 -1
- package/lib/geometry/shared/geometry.utils.d.ts +2 -2
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +14 -14
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +6 -6
- package/lib/import-export/shared/export.interface.d.ts +1 -1
- package/lib/import-export/shared/export.service.d.ts +2 -2
- package/lib/import-export/shared/import.interface.d.ts +1 -0
- package/lib/import-export/shared/import.utils.d.ts +3 -3
- package/lib/layer/layer-item/layer-item.component.d.ts +2 -2
- package/lib/layer/layer-legend/layer-legend.component.d.ts +3 -3
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +2 -2
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +2 -2
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +2 -2
- package/lib/layer/layer-list/layer-list.component.d.ts +5 -5
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
- package/lib/layer/layer.theming.scss +0 -7
- package/lib/layer/shared/layer.service.d.ts +5 -5
- package/lib/layer/shared/layers/any-layer.d.ts +1 -1
- package/lib/layer/shared/layers/any-layer.interface.d.ts +1 -1
- package/lib/layer/shared/layers/image-layer.d.ts +5 -5
- package/lib/layer/shared/layers/image-layer.interface.d.ts +3 -3
- package/lib/layer/shared/layers/layer.d.ts +6 -6
- package/lib/layer/shared/layers/layer.interface.d.ts +2 -2
- package/lib/layer/shared/layers/tile-layer.d.ts +6 -6
- package/lib/layer/shared/layers/tile-layer.interface.d.ts +8 -8
- package/lib/layer/shared/layers/vector-layer.d.ts +18 -11
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +13 -13
- package/lib/layer/shared/layers/vectortile-layer.d.ts +3 -3
- package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +4 -4
- package/lib/layer/utils/image-watcher.d.ts +1 -1
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.interface.d.ts +6 -0
- package/lib/map/home-extent-button/index.d.ts +1 -0
- package/lib/map/map-browser/map-browser.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.theming.scss +46 -46
- package/lib/map/menu-button/menu-button.component.d.ts +1 -1
- package/lib/map/menu-button/menu-button.theming.scss +20 -24
- package/lib/map/shared/controllers/controller.d.ts +1 -1
- package/lib/map/shared/controllers/geolocation.d.ts +5 -5
- package/lib/map/shared/controllers/geolocation.interface.d.ts +8 -0
- package/lib/map/shared/controllers/view.d.ts +2 -2
- package/lib/map/shared/hover-feature.directive.d.ts +8 -8
- package/lib/map/shared/map-pointer-position.directive.d.ts +2 -2
- package/lib/map/shared/map.abstract.d.ts +5 -5
- package/lib/map/shared/map.d.ts +14 -10
- package/lib/map/shared/mapOffline.directive.d.ts +2 -2
- package/lib/map/shared/projection.interfaces.d.ts +1 -3
- package/lib/map/utils/layer-watcher.d.ts +2 -2
- package/lib/map/zoom-button/zoom-button.theming.scss +32 -32
- package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
- package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
- package/lib/measure/measurer/measurer.component.d.ts +5 -5
- package/lib/measure/shared/measure.utils.d.ts +5 -5
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +1 -1
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -1
- package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
- package/lib/offline/shared/geo-network.service.d.ts +2 -1
- package/lib/overlay/shared/overlay.d.ts +1 -1
- package/lib/overlay/shared/overlay.directive.d.ts +2 -2
- package/lib/print/print/print.component.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +2 -2
- package/lib/print/shared/print.interface.d.ts +1 -1
- package/lib/print/shared/print.service.d.ts +2 -2
- package/lib/query/shared/query.directive.d.ts +4 -4
- package/lib/query/shared/query.interfaces.d.ts +3 -3
- package/lib/query/shared/query.service.d.ts +3 -3
- package/lib/search/search-bar/search-bar.component.d.ts +5 -5
- package/lib/search/search-bar/search-bar.theming.scss +36 -36
- package/lib/search/search-bar/search-url-param.directive.d.ts +1 -1
- package/lib/search/search-results/save-feature-dialog.component.d.ts +3 -3
- package/lib/search/search-results/search-results-add-button.component.d.ts +7 -7
- package/lib/search/search-results/search-results-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +4 -4
- package/lib/search/search-selector/search-selector.component.d.ts +1 -1
- package/lib/search/search-settings/search-settings.component.d.ts +2 -2
- package/lib/search/search.theming.scss +5 -5
- package/lib/search/shared/search-pointer-summary.directive.d.ts +5 -5
- package/lib/search/shared/search-source-service.providers.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +1 -1
- package/lib/search/shared/search.service.d.ts +2 -2
- package/lib/search/shared/search.utils.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.providers.d.ts +1 -1
- package/lib/search/shared/sources/coordinates.d.ts +5 -5
- package/lib/search/shared/sources/coordinates.providers.d.ts +2 -2
- package/lib/search/shared/sources/icherche.d.ts +4 -4
- package/lib/search/shared/sources/icherche.providers.d.ts +2 -2
- package/lib/search/shared/sources/ilayer.d.ts +2 -2
- package/lib/search/shared/sources/ilayer.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/ilayer.providers.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.providers.d.ts +1 -1
- package/lib/search/shared/sources/source.d.ts +2 -2
- package/lib/search/shared/sources/storedqueries.d.ts +4 -4
- package/lib/search/shared/sources/storedqueries.providers.d.ts +1 -1
- package/lib/search/shared/sources/workspace.d.ts +1 -1
- package/lib/style/shared/feature/feature-style.d.ts +2 -2
- package/lib/style/shared/overlay/overlay-style.utils.d.ts +1 -1
- package/lib/style/shared/vector/conversion.utils.d.ts +1 -1
- package/lib/style/shared/vector/vector-style.interface.d.ts +6 -1
- package/lib/style/style-list/style-list.provider.d.ts +1 -1
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +3 -3
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +3 -3
- package/lib/style/style-service/draw-style.service.d.ts +1 -1
- package/lib/style/style-service/style.service.d.ts +3 -3
- package/lib/utils/id-generator.d.ts +2 -2
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
- package/lib/workspace/shared/edition-workspace.d.ts +7 -9
- package/lib/workspace/shared/edition-workspace.service.d.ts +5 -5
- package/lib/workspace/shared/feature-workspace.service.d.ts +3 -3
- package/lib/workspace/shared/wfs-workspace.service.d.ts +3 -3
- package/lib/workspace/shared/wms-workspace.service.d.ts +4 -4
- package/lib/workspace/shared/workspace.utils.d.ts +4 -4
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +4 -4
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +3 -3
- package/lib/workspace/workspace.theming.scss +6 -6
- package/locale/en.geo.json +11 -4
- package/locale/fr.geo.json +11 -4
- package/package.json +5 -5
- package/public_api.d.ts +1 -0
- package/style/style.css +0 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.theming.scss +0 -15
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as olproj from 'ol/proj';
|
|
3
2
|
import olWKT from 'ol/format/WKT';
|
|
3
|
+
import * as olproj from 'ol/proj';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class WktService {
|
|
6
6
|
constructor() { }
|
|
@@ -233,4 +233,4 @@ export class WktService {
|
|
|
233
233
|
providedIn: 'root'
|
|
234
234
|
}]
|
|
235
235
|
}], function () { return []; }, null); })();
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2t0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93a3Qvc2hhcmVkL3drdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxLQUFLLE1BQU0sZUFBZSxDQUFDOztBQUtsQyxNQUFNLE9BQU8sVUFBVTtJQUNyQixnQkFBZSxDQUFDO0lBRVQsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsV0FBVztRQUMzQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxjQUFjLEVBQUUsT0FBTztZQUN2QixpQkFBaUIsRUFBRSxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQzNDLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2RSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUc7UUFDWixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFD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SSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUMzQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzNCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtTQUM3QixDQUFDO1FBQ0YsTUFBTSxFQUFFLEdBQUc7WUFDVCxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1NBQzFCLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRztZQUNwQixDQUFDLEdBQUcsRUFBRSxHQUFH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Q0gsQ0FBQztvRUExUFUsVUFBVTtnRUFBVixVQUFVLFdBQVYsVUFBVSxtQkFGVCxNQUFNOzt1RkFFUCxVQUFVO2NBSHRCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuaW1wb3J0IG9sV0tUIGZyb20gJ29sL2Zvcm1hdC9XS1QnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2t0U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBwdWJsaWMgd2t0VG9GZWF0dXJlKHdrdCwgd2t0UHJvaiwgZmVhdHVyZVByb2opIHtcclxuICAgIHJldHVybiBuZXcgb2xXS1QoKS5yZWFkRmVhdHVyZSh3a3QsIHtcclxuICAgICAgZGF0YVByb2plY3Rpb246IHdrdFByb2osXHJcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBmZWF0dXJlUHJvalxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBleHRlbnRUb1drdChlcHNnVE8sIGV4dGVudCwgZXh0ZW50UHJvaikge1xyXG4gICAgbGV0IGN1cnJlbnRFeHRlbnQgPSBvbHByb2oudHJhbnNmb3JtRXh0ZW50KGV4dGVudCwgZXh0ZW50UHJvaiwgZXBzZ1RPKTtcclxuICAgIGN1cnJlbnRFeHRlbnQgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGN1cnJlbnRFeHRlbnQsIGVwc2dUTywgMCk7XHJcbiAgICBjb25zdCB3a3RQb2x5ID0gYFBPTFlHT04oKFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19KSlgO1xyXG4gICAgY29uc3Qgd2t0TGluZSA9IGBMSU5FU1RSSU5HKFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19KWA7XHJcbiAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9IGBNVUxUSVBPSU5UKFxyXG4gICAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFsxXX0sXHJcbiAgICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzNdfSxcclxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAgICR7ZXh0ZW50WzJdfSAke2V4dGVudFsxXX0pYDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdrdFBvbHksXHJcbiAgICAgIHdrdExpbmUsXHJcbiAgICAgIHdrdE11bHRpUG9pbnRzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZENvb3JkaW5hdGVBcnJheShjb29yZGluYXRlQXJyYXksIHByb2plY3Rpb24sIGRlY2ltYWwgPSAwKSB7XHJcbiAgICBjb25zdCBscHJvaiA9IG9scHJvai5nZXQocHJvamVjdGlvbik7XHJcbiAgICBjb25zdCB1bml0cyA9IGxwcm9qLmdldFVuaXRzKCk7XHJcbiAgICBjb25zdCBvbFVuaXRzID0gWydmdCcsICdtJywgJ3VzLWZ0J107XHJcbiAgICBpZiAob2xVbml0cy5pbmRleE9mKHVuaXRzKSAhPT0gLTEpIHtcclxuICAgICAgY29vcmRpbmF0ZUFycmF5ID0gdGhpcy5yb3VuZEFycmF5KGNvb3JkaW5hdGVBcnJheSwgZGVjaW1hbCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29vcmRpbmF0ZUFycmF5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZEFycmF5KGFycmF5LCBkZWNpbWFsID0gMCkge1xyXG4gICAgbGV0IHggPSAwO1xyXG4gICAgd2hpbGUgKHggPCBhcnJheS5sZW5ndGgpIHtcclxuICAgICAgYXJyYXlbeF0gPSBhcnJheVt4XS50b0ZpeGVkKGRlY2ltYWwpO1xyXG4gICAgICB4Kys7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc25yY1RvV2t0KHNucmMsIGVwc2dUTykge1xyXG4gICAgc25yYyA9IHNucmMudG9Mb3dlckNhc2UoKTtcclxuICAgIGxldCB3a3RQb2x5O1xyXG4gICAgY29uc3QgZXcgPSB7XHJcbiAgICAgIDE6IHsgZnJvbTogLTU2LCB0bzogLTY0IH0sXHJcbiAgICAgIDI6IHsgZnJvbTogLTY0LCB0bzogLTcyIH0sXHJcbiAgICAgIDM6IHsgZnJvbTogLTcyLCB0bzogLTgwIH0sXHJcbiAgICAgIDQ6IHsgZnJvbTogLTgwLCB0bzogLTg4IH0sXHJcbiAgICAgIDU6IHsgZnJvbTogLTg4LCB0bzogLTk2IH0sXHJcbiAgICAgIDY6IHsgZnJvbTogLTk2LCB0bzogLTEwNCB9LFxyXG4gICAgICA3OiB7IGZyb206IC0xMDQsIHRvOiAtMTEyIH0sXHJcbiAgICAgIDg6IHsgZnJvbTogLTExMiwgdG86IC0xMjAgfSxcclxuICAgICAgOTogeyBmcm9tOiAtMTIwLCB0bzogLTEyOCB9LFxyXG4gICAgICAxMDogeyBmcm9tOiAtMTI4LCB0bzogLTEzNiB9XHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc24gPSB7XHJcbiAgICAgIDE6IHsgZnJvbTogNDQsIHRvOiA0OCB9LFxyXG4gICAgICAyOiB7IGZyb206IDQ4LCB0bzogNTIgfSxcclxuICAgICAgMzogeyBmcm9tOiA1MiwgdG86IDU2IH0sXHJcbiAgICAgIDQ6IHsgZnJvbTogNTYsIHRvOiA2MCB9LFxyXG4gICAgICA1OiB7IGZyb206IDYwLCB0bzogNjQgfSxcclxuICAgICAgNjogeyBmcm9tOiA2NCwgdG86IDY4IH0sXHJcbiAgICAgIDc6IHsgZnJvbTogNjgsIHRvOiA3MiB9LFxyXG4gICAgICA4OiB7IGZyb206IDcyLCB0bzogNzYgfSxcclxuICAgICAgOTogeyBmcm9tOiA3NiwgdG86IC0xMjggfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHNucmMyNTBrSW5kZXggPSBbXHJcbiAgICAgIFsnbScsICduJywgJ28nLCAncCddLFxyXG4gICAgICBbJ2wnLCAnaycsICdqJywgJ2knXSxcclxuICAgICAgWydlJywgJ2YnLCAnZycsICdoJ10sXHJcbiAgICAgIFsnZCcsICdjJywgJ2InLCAnYSddXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IHNucmM1MGtJbmRleCA9IFtcclxuICAgICAgWycxMycsICcxNCcsICcxNScsICcxNiddLFxyXG4gICAgICBbJzEyJywgJzExJywgJzEwJywgJzA5J10sXHJcbiAgICAgIFsnMDUnLCAnMDYnLCAnMDcnLCAnMDgnXSxcclxuICAgICAgWycwNCcsICcwMycsICcwMicsICcwMSddXHJcbiAgICBdO1xyXG4gICAgY29uc3QgY2hlY2tTTlJDNTBrID0gL1xcZHsyLDN9W2EtcF1bMCwxXVswLTldL2dpO1xyXG4gICAgY29uc3QgY2hlY2tTTlJDMjUwayA9IC9cXGR7MiwzfVthLXBdL2dpO1xyXG4gICAgY29uc3QgY2hlY2tTTlJDMW0gPSAvXFxkezIsM30vZ2k7XHJcblxyXG4gICAgbGV0IHNucmMxbSA9IGZhbHNlO1xyXG4gICAgbGV0IHNucmMyNTBrID0gZmFsc2U7XHJcbiAgICBsZXQgc25yYzUwayA9IGZhbHNlO1xyXG5cclxuICAgIGlmIChjaGVja1NOUkM1MGsudGVzdChzbnJjKSkge1xyXG4gICAgICBzbnJjNTBrID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChjaGVja1NOUkMyNTBrLnRlc3Qoc25yYykpIHtcclxuICAgICAgICBzbnJjMjUwayA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGNoZWNrU05SQzFtLnRlc3Qoc25yYykpIHtcclxuICAgICAgICAgIHNucmMxbSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNucmMxbSkge1xyXG4gICAgICBzbnJjICs9ICdhMDEnO1xyXG4gICAgfSBlbHNlIGlmIChzbnJjMjUwaykge1xyXG4gICAgICBzbnJjICs9ICcwMSc7XHJcbiAgICB9XHJcbiAgICBpZiAoL1xcZHsyLDN9W2EtcF1bMCwxXVswLTldL2dpLnRlc3Qoc25yYykpIHtcclxuICAgICAgY29uc3QgcmVnZXgxbSA9IC8oPz1bYS1wXSkvZ2k7XHJcbiAgICAgIGNvbnN0IGFyMW0gPSBzbnJjLnNwbGl0KHJlZ2V4MW0pO1xyXG4gICAgICBjb25zdCBwYXJ0MW0gPSBhcjFtWzBdO1xyXG4gICAgICBjb25zdCBwYXJ0MjUwayA9IGFyMW1bMV1bMF07XHJcbiAgICAgIGNvbnN0IHBhcnQ1MGsgPSBhcjFtWzFdLnNwbGl0KHBhcnQyNTBrKVsxXTtcclxuICAgICAgbGV0IHNlcGFyYXRvciA9IDE7XHJcbiAgICAgIGlmIChwYXJ0MW0ubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgICAgc2VwYXJhdG9yID0gMjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwYXJ0RVcgPSBwYXJ0MW0uc3Vic3RyaW5nKDAsIHNlcGFyYXRvcik7XHJcbiAgICAgIGNvbnN0IHBhcnRTTiA9IHBhcnQxbS5zdWJzdHJpbmcoc2VwYXJhdG9yKTtcclxuICAgICAgY29uc3QgdW5pdDFtRVcgPSA4O1xyXG4gICAgICBjb25zdCB1bml0MW1TTiA9IDQ7XHJcbiAgICAgIGNvbnN0IHVuaXQyNTBrRVcgPSAyO1xyXG4gICAgICBjb25zdCB1bml0MjUwa1NOID0gMTtcclxuICAgICAgY29uc3QgdW5pdDUwa0VXID0gMC41O1xyXG4gICAgICBjb25zdCB1bml0NTBrU04gPSAwLjI1O1xyXG4gICAgICBsZXQgaW5kZXgyNTBrRVcgPSAwO1xyXG4gICAgICBsZXQgaW5kZXgyNTBrU04gPSAwO1xyXG4gICAgICBsZXQgaW5kZXg1MGtFVyA9IDA7XHJcbiAgICAgIGxldCBpbmRleDUwa1NOID0gMDtcclxuICAgICAgc25yYzI1MGtJbmRleC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaW5kZXhPZihwYXJ0MjUwaykgIT09IC0xKSB7XHJcbiAgICAgICAgICBpbmRleDI1MGtTTiA9IHNucmMyNTBrSW5kZXguaW5kZXhPZihlbGVtZW50KTtcclxuICAgICAgICAgIGluZGV4MjUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQyNTBrKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBzbnJjNTBrSW5kZXguZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmluZGV4T2YocGFydDUwaykgIT09IC0xKSB7XHJcbiAgICAgICAgICBpbmRleDUwa1NOID0gc25yYzUwa0luZGV4LmluZGV4T2YoZWxlbWVudCk7XHJcbiAgICAgICAgICBpbmRleDUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBsZXQgaW5jcmVtZW50MjUwa0VXID0gMDtcclxuICAgICAgbGV0IGluY3JlbWVudDI1MGtTTiA9IDA7XHJcbiAgICAgIGxldCBpbmNyZW1lbnQ1MGtFVyA9IDA7XHJcbiAgICAgIGxldCBpbmNyZW1lbnQ1MGtTTiA9IDA7XHJcbiAgICAgIGxldCB1bml0UGVyVHlwZUVXID0gdW5pdDFtRVc7XHJcbiAgICAgIGxldCB1bml0UGVyVHlwZVNOID0gdW5pdDFtU047XHJcbiAgICAgIGlmIChzbnJjMjUwaykge1xyXG4gICAgICAgIGluY3JlbWVudDI1MGtFVyA9IGluZGV4MjUwa0VXICogdW5pdDI1MGtFVztcclxuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XHJcbiAgICAgICAgaW5jcmVtZW50NTBrRVcgPSAwO1xyXG4gICAgICAgIGluY3JlbWVudDUwa1NOID0gMDtcclxuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDI1MGtFVztcclxuICAgICAgICB1bml0UGVyVHlwZVNOID0gdW5pdDI1MGtTTjtcclxuICAgICAgfSBlbHNlIGlmIChzbnJjNTBrKSB7XHJcbiAgICAgICAgaW5jcmVtZW50MjUwa0VXID0gaW5kZXgyNTBrRVcgKiB1bml0MjUwa0VXO1xyXG4gICAgICAgIGluY3JlbWVudDI1MGtTTiA9IGluZGV4MjUwa1NOICogdW5pdDI1MGtTTjtcclxuICAgICAgICBpbmNyZW1lbnQ1MGtFVyA9IGluZGV4NTBrRVcgKiB1bml0NTBrRVc7XHJcbiAgICAgICAgaW5jcmVtZW50NTBrU04gPSBpbmRleDUwa1NOICogdW5pdDUwa1NOO1xyXG4gICAgICAgIHVuaXRQZXJUeXBlRVcgPSB1bml0NTBrRVc7XHJcbiAgICAgICAgdW5pdFBlclR5cGVTTiA9IHVuaXQ1MGtTTjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgY29vcmQ6IHsgdWw/OiBhbnk7IGxyPzogYW55OyB1cj86IGFueTsgbGw/OiBhbnkgfSA9IHtcclxuICAgICAgICB1bDogW1xyXG4gICAgICAgICAgZXdbcGFydEVXXS50byArIGluY3JlbWVudDI1MGtFVyArIGluY3JlbWVudDUwa0VXLFxyXG4gICAgICAgICAgc25bcGFydFNOXS50byAtIGluY3JlbWVudDI1MGtTTiAtIGluY3JlbWVudDUwa1NOXHJcbiAgICAgICAgXVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgY29vcmQubHIgPSBbY29vcmQudWxbMF0gKyB1bml0UGVyVHlwZUVXLCBjb29yZC51bFsxXSAtIHVuaXRQZXJUeXBlU05dO1xyXG4gICAgICBjb29yZC51ciA9IFtjb29yZC51bFswXSwgY29vcmQudWxbMV0gLSB1bml0UGVyVHlwZVNOXTtcclxuICAgICAgY29vcmQubGwgPSBbY29vcmQudWxbMF0gKyB1bml0UGVyVHlwZUVXLCBjb29yZC51bFsxXV07XHJcblxyXG4gICAgICBjb29yZC51bCA9IG9scHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgW2Nvb3JkLnVsWzBdLCBjb29yZC51bFsxXV0sXHJcbiAgICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZXBzZ1RPXHJcbiAgICAgICk7XHJcbiAgICAgIGNvb3JkLmxyID0gb2xwcm9qLnRyYW5zZm9ybShcclxuICAgICAgICBbY29vcmQubHJbMF0sIGNvb3JkLmxyWzFdXSxcclxuICAgICAgICAnRVBTRzo0MzI2JyxcclxuICAgICAgICBlcHNnVE9cclxuICAgICAgKTtcclxuICAgICAgY29vcmQudXIgPSBvbHByb2oudHJhbnNmb3JtKFxyXG4gICAgICAgIFtjb29yZC51clswXSwgY29vcmQudXJbMV1dLFxyXG4gICAgICAgICdFUFNHOjQzMjYnLFxyXG4gICAgICAgIGVwc2dUT1xyXG4gICAgICApO1xyXG4gICAgICBjb29yZC5sbCA9IG9scHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgW2Nvb3JkLmxsWzBdLCBjb29yZC5sbFsxXV0sXHJcbiAgICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZXBzZ1RPXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBSb3VuZGVkIGNvb3JkaW5hdGUgdG8gc2hvcnRlbiB1cmwgaW4gZ2V0XHJcbiAgICAgIGNvb3JkLnVsID0gdGhpcy5yb3VuZENvb3JkaW5hdGVBcnJheShjb29yZC51bCwgZXBzZ1RPLCAwKTtcclxuICAgICAgY29vcmQubHIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLmxyLCBlcHNnVE8sIDApO1xyXG4gICAgICBjb29yZC51ciA9IHRoaXMucm91bmRDb29yZGluYXRlQXJyYXkoY29vcmQudXIsIGVwc2dUTywgMCk7XHJcbiAgICAgIGNvb3JkLmxsID0gdGhpcy5yb3VuZENvb3JkaW5hdGVBcnJheShjb29yZC5sbCwgZXBzZ1RPLCAwKTtcclxuXHJcbiAgICAgIHdrdFBvbHkgPVxyXG4gICAgICAgICdQT0xZR09OKCgnICtcclxuICAgICAgICBbXHJcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC51ci5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC5sbC5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJylcclxuICAgICAgICBdLmpvaW4oJywnKSArXHJcbiAgICAgICAgJykpJztcclxuICAgICAgY29uc3Qgd2t0TGluZSA9XHJcbiAgICAgICAgJ0xJTkVTVFJJTkcoJyArXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQudXIuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQubHIuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpXHJcbiAgICAgICAgXS5qb2luKCcsJykgK1xyXG4gICAgICAgICcpJztcclxuXHJcbiAgICAgIGNvbnN0IHdrdE11bHRpUG9pbnRzID1cclxuICAgICAgICAnTVVMVElQT0lOVCgnICtcclxuICAgICAgICBbXHJcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC51ci5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC5sbC5qb2luKCcgJylcclxuICAgICAgICBdLmpvaW4oJywnKSArXHJcbiAgICAgICAgJyknO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHdrdFBvbHksXHJcbiAgICAgICAgd2t0TGluZSxcclxuICAgICAgICB3a3RNdWx0aVBvaW50c1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2t0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93a3Qvc2hhcmVkL3drdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE1BQU0sZUFBZSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDOztBQUtsQyxNQUFNLE9BQU8sVUFBVTtJQUNyQixnQkFBZSxDQUFDO0lBRVQsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsV0FBVztRQUMzQyxPQUFPLElBQUksS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxjQUFjLEVBQUUsT0FBTztZQUN2QixpQkFBaUIsRUFBRSxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVO1FBQzNDLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2RSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUc7UUFDWixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsQ0FBQyxDQUFD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SSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUMzQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzNCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtTQUM3QixDQUFDO1FBQ0YsTUFBTSxFQUFFLEdBQUc7WUFDVCxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1NBQzFCLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRztZQUNwQixDQUFDLEdBQUcsRUFBRSxHQUFH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Q0gsQ0FBQztvRUExUFUsVUFBVTtnRUFBVixVQUFVLFdBQVYsVUFBVSxtQkFGVCxNQUFNOzt1RkFFUCxVQUFVO2NBSHRCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCBvbFdLVCBmcm9tICdvbC9mb3JtYXQvV0tUJztcclxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2t0U2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBwdWJsaWMgd2t0VG9GZWF0dXJlKHdrdCwgd2t0UHJvaiwgZmVhdHVyZVByb2opIHtcclxuICAgIHJldHVybiBuZXcgb2xXS1QoKS5yZWFkRmVhdHVyZSh3a3QsIHtcclxuICAgICAgZGF0YVByb2plY3Rpb246IHdrdFByb2osXHJcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBmZWF0dXJlUHJvalxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBleHRlbnRUb1drdChlcHNnVE8sIGV4dGVudCwgZXh0ZW50UHJvaikge1xyXG4gICAgbGV0IGN1cnJlbnRFeHRlbnQgPSBvbHByb2oudHJhbnNmb3JtRXh0ZW50KGV4dGVudCwgZXh0ZW50UHJvaiwgZXBzZ1RPKTtcclxuICAgIGN1cnJlbnRFeHRlbnQgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGN1cnJlbnRFeHRlbnQsIGVwc2dUTywgMCk7XHJcbiAgICBjb25zdCB3a3RQb2x5ID0gYFBPTFlHT04oKFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19KSlgO1xyXG4gICAgY29uc3Qgd2t0TGluZSA9IGBMSU5FU1RSSU5HKFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbMV19LFxyXG4gICAgICAke2V4dGVudFswXX0gJHtleHRlbnRbMV19KWA7XHJcbiAgICBjb25zdCB3a3RNdWx0aVBvaW50cyA9IGBNVUxUSVBPSU5UKFxyXG4gICAgICAgICR7ZXh0ZW50WzBdfSAke2V4dGVudFsxXX0sXHJcbiAgICAgICAgJHtleHRlbnRbMF19ICR7ZXh0ZW50WzNdfSxcclxuICAgICAgICAke2V4dGVudFsyXX0gJHtleHRlbnRbM119LFxyXG4gICAgICAgICR7ZXh0ZW50WzJdfSAke2V4dGVudFsxXX0pYDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdrdFBvbHksXHJcbiAgICAgIHdrdExpbmUsXHJcbiAgICAgIHdrdE11bHRpUG9pbnRzXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZENvb3JkaW5hdGVBcnJheShjb29yZGluYXRlQXJyYXksIHByb2plY3Rpb24sIGRlY2ltYWwgPSAwKSB7XHJcbiAgICBjb25zdCBscHJvaiA9IG9scHJvai5nZXQocHJvamVjdGlvbik7XHJcbiAgICBjb25zdCB1bml0cyA9IGxwcm9qLmdldFVuaXRzKCk7XHJcbiAgICBjb25zdCBvbFVuaXRzID0gWydmdCcsICdtJywgJ3VzLWZ0J107XHJcbiAgICBpZiAob2xVbml0cy5pbmRleE9mKHVuaXRzKSAhPT0gLTEpIHtcclxuICAgICAgY29vcmRpbmF0ZUFycmF5ID0gdGhpcy5yb3VuZEFycmF5KGNvb3JkaW5hdGVBcnJheSwgZGVjaW1hbCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29vcmRpbmF0ZUFycmF5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByb3VuZEFycmF5KGFycmF5LCBkZWNpbWFsID0gMCkge1xyXG4gICAgbGV0IHggPSAwO1xyXG4gICAgd2hpbGUgKHggPCBhcnJheS5sZW5ndGgpIHtcclxuICAgICAgYXJyYXlbeF0gPSBhcnJheVt4XS50b0ZpeGVkKGRlY2ltYWwpO1xyXG4gICAgICB4Kys7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc25yY1RvV2t0KHNucmMsIGVwc2dUTykge1xyXG4gICAgc25yYyA9IHNucmMudG9Mb3dlckNhc2UoKTtcclxuICAgIGxldCB3a3RQb2x5O1xyXG4gICAgY29uc3QgZXcgPSB7XHJcbiAgICAgIDE6IHsgZnJvbTogLTU2LCB0bzogLTY0IH0sXHJcbiAgICAgIDI6IHsgZnJvbTogLTY0LCB0bzogLTcyIH0sXHJcbiAgICAgIDM6IHsgZnJvbTogLTcyLCB0bzogLTgwIH0sXHJcbiAgICAgIDQ6IHsgZnJvbTogLTgwLCB0bzogLTg4IH0sXHJcbiAgICAgIDU6IHsgZnJvbTogLTg4LCB0bzogLTk2IH0sXHJcbiAgICAgIDY6IHsgZnJvbTogLTk2LCB0bzogLTEwNCB9LFxyXG4gICAgICA3OiB7IGZyb206IC0xMDQsIHRvOiAtMTEyIH0sXHJcbiAgICAgIDg6IHsgZnJvbTogLTExMiwgdG86IC0xMjAgfSxcclxuICAgICAgOTogeyBmcm9tOiAtMTIwLCB0bzogLTEyOCB9LFxyXG4gICAgICAxMDogeyBmcm9tOiAtMTI4LCB0bzogLTEzNiB9XHJcbiAgICB9O1xyXG4gICAgY29uc3Qgc24gPSB7XHJcbiAgICAgIDE6IHsgZnJvbTogNDQsIHRvOiA0OCB9LFxyXG4gICAgICAyOiB7IGZyb206IDQ4LCB0bzogNTIgfSxcclxuICAgICAgMzogeyBmcm9tOiA1MiwgdG86IDU2IH0sXHJcbiAgICAgIDQ6IHsgZnJvbTogNTYsIHRvOiA2MCB9LFxyXG4gICAgICA1OiB7IGZyb206IDYwLCB0bzogNjQgfSxcclxuICAgICAgNjogeyBmcm9tOiA2NCwgdG86IDY4IH0sXHJcbiAgICAgIDc6IHsgZnJvbTogNjgsIHRvOiA3MiB9LFxyXG4gICAgICA4OiB7IGZyb206IDcyLCB0bzogNzYgfSxcclxuICAgICAgOTogeyBmcm9tOiA3NiwgdG86IC0xMjggfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHNucmMyNTBrSW5kZXggPSBbXHJcbiAgICAgIFsnbScsICduJywgJ28nLCAncCddLFxyXG4gICAgICBbJ2wnLCAnaycsICdqJywgJ2knXSxcclxuICAgICAgWydlJywgJ2YnLCAnZycsICdoJ10sXHJcbiAgICAgIFsnZCcsICdjJywgJ2InLCAnYSddXHJcbiAgICBdO1xyXG5cclxuICAgIGNvbnN0IHNucmM1MGtJbmRleCA9IFtcclxuICAgICAgWycxMycsICcxNCcsICcxNScsICcxNiddLFxyXG4gICAgICBbJzEyJywgJzExJywgJzEwJywgJzA5J10sXHJcbiAgICAgIFsnMDUnLCAnMDYnLCAnMDcnLCAnMDgnXSxcclxuICAgICAgWycwNCcsICcwMycsICcwMicsICcwMSddXHJcbiAgICBdO1xyXG4gICAgY29uc3QgY2hlY2tTTlJDNTBrID0gL1xcZHsyLDN9W2EtcF1bMCwxXVswLTldL2dpO1xyXG4gICAgY29uc3QgY2hlY2tTTlJDMjUwayA9IC9cXGR7MiwzfVthLXBdL2dpO1xyXG4gICAgY29uc3QgY2hlY2tTTlJDMW0gPSAvXFxkezIsM30vZ2k7XHJcblxyXG4gICAgbGV0IHNucmMxbSA9IGZhbHNlO1xyXG4gICAgbGV0IHNucmMyNTBrID0gZmFsc2U7XHJcbiAgICBsZXQgc25yYzUwayA9IGZhbHNlO1xyXG5cclxuICAgIGlmIChjaGVja1NOUkM1MGsudGVzdChzbnJjKSkge1xyXG4gICAgICBzbnJjNTBrID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChjaGVja1NOUkMyNTBrLnRlc3Qoc25yYykpIHtcclxuICAgICAgICBzbnJjMjUwayA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGNoZWNrU05SQzFtLnRlc3Qoc25yYykpIHtcclxuICAgICAgICAgIHNucmMxbSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNucmMxbSkge1xyXG4gICAgICBzbnJjICs9ICdhMDEnO1xyXG4gICAgfSBlbHNlIGlmIChzbnJjMjUwaykge1xyXG4gICAgICBzbnJjICs9ICcwMSc7XHJcbiAgICB9XHJcbiAgICBpZiAoL1xcZHsyLDN9W2EtcF1bMCwxXVswLTldL2dpLnRlc3Qoc25yYykpIHtcclxuICAgICAgY29uc3QgcmVnZXgxbSA9IC8oPz1bYS1wXSkvZ2k7XHJcbiAgICAgIGNvbnN0IGFyMW0gPSBzbnJjLnNwbGl0KHJlZ2V4MW0pO1xyXG4gICAgICBjb25zdCBwYXJ0MW0gPSBhcjFtWzBdO1xyXG4gICAgICBjb25zdCBwYXJ0MjUwayA9IGFyMW1bMV1bMF07XHJcbiAgICAgIGNvbnN0IHBhcnQ1MGsgPSBhcjFtWzFdLnNwbGl0KHBhcnQyNTBrKVsxXTtcclxuICAgICAgbGV0IHNlcGFyYXRvciA9IDE7XHJcbiAgICAgIGlmIChwYXJ0MW0ubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgICAgc2VwYXJhdG9yID0gMjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwYXJ0RVcgPSBwYXJ0MW0uc3Vic3RyaW5nKDAsIHNlcGFyYXRvcik7XHJcbiAgICAgIGNvbnN0IHBhcnRTTiA9IHBhcnQxbS5zdWJzdHJpbmcoc2VwYXJhdG9yKTtcclxuICAgICAgY29uc3QgdW5pdDFtRVcgPSA4O1xyXG4gICAgICBjb25zdCB1bml0MW1TTiA9IDQ7XHJcbiAgICAgIGNvbnN0IHVuaXQyNTBrRVcgPSAyO1xyXG4gICAgICBjb25zdCB1bml0MjUwa1NOID0gMTtcclxuICAgICAgY29uc3QgdW5pdDUwa0VXID0gMC41O1xyXG4gICAgICBjb25zdCB1bml0NTBrU04gPSAwLjI1O1xyXG4gICAgICBsZXQgaW5kZXgyNTBrRVcgPSAwO1xyXG4gICAgICBsZXQgaW5kZXgyNTBrU04gPSAwO1xyXG4gICAgICBsZXQgaW5kZXg1MGtFVyA9IDA7XHJcbiAgICAgIGxldCBpbmRleDUwa1NOID0gMDtcclxuICAgICAgc25yYzI1MGtJbmRleC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaW5kZXhPZihwYXJ0MjUwaykgIT09IC0xKSB7XHJcbiAgICAgICAgICBpbmRleDI1MGtTTiA9IHNucmMyNTBrSW5kZXguaW5kZXhPZihlbGVtZW50KTtcclxuICAgICAgICAgIGluZGV4MjUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQyNTBrKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBzbnJjNTBrSW5kZXguZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmluZGV4T2YocGFydDUwaykgIT09IC0xKSB7XHJcbiAgICAgICAgICBpbmRleDUwa1NOID0gc25yYzUwa0luZGV4LmluZGV4T2YoZWxlbWVudCk7XHJcbiAgICAgICAgICBpbmRleDUwa0VXID0gZWxlbWVudC5pbmRleE9mKHBhcnQ1MGspO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBsZXQgaW5jcmVtZW50MjUwa0VXID0gMDtcclxuICAgICAgbGV0IGluY3JlbWVudDI1MGtTTiA9IDA7XHJcbiAgICAgIGxldCBpbmNyZW1lbnQ1MGtFVyA9IDA7XHJcbiAgICAgIGxldCBpbmNyZW1lbnQ1MGtTTiA9IDA7XHJcbiAgICAgIGxldCB1bml0UGVyVHlwZUVXID0gdW5pdDFtRVc7XHJcbiAgICAgIGxldCB1bml0UGVyVHlwZVNOID0gdW5pdDFtU047XHJcbiAgICAgIGlmIChzbnJjMjUwaykge1xyXG4gICAgICAgIGluY3JlbWVudDI1MGtFVyA9IGluZGV4MjUwa0VXICogdW5pdDI1MGtFVztcclxuICAgICAgICBpbmNyZW1lbnQyNTBrU04gPSBpbmRleDI1MGtTTiAqIHVuaXQyNTBrU047XHJcbiAgICAgICAgaW5jcmVtZW50NTBrRVcgPSAwO1xyXG4gICAgICAgIGluY3JlbWVudDUwa1NOID0gMDtcclxuICAgICAgICB1bml0UGVyVHlwZUVXID0gdW5pdDI1MGtFVztcclxuICAgICAgICB1bml0UGVyVHlwZVNOID0gdW5pdDI1MGtTTjtcclxuICAgICAgfSBlbHNlIGlmIChzbnJjNTBrKSB7XHJcbiAgICAgICAgaW5jcmVtZW50MjUwa0VXID0gaW5kZXgyNTBrRVcgKiB1bml0MjUwa0VXO1xyXG4gICAgICAgIGluY3JlbWVudDI1MGtTTiA9IGluZGV4MjUwa1NOICogdW5pdDI1MGtTTjtcclxuICAgICAgICBpbmNyZW1lbnQ1MGtFVyA9IGluZGV4NTBrRVcgKiB1bml0NTBrRVc7XHJcbiAgICAgICAgaW5jcmVtZW50NTBrU04gPSBpbmRleDUwa1NOICogdW5pdDUwa1NOO1xyXG4gICAgICAgIHVuaXRQZXJUeXBlRVcgPSB1bml0NTBrRVc7XHJcbiAgICAgICAgdW5pdFBlclR5cGVTTiA9IHVuaXQ1MGtTTjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgY29vcmQ6IHsgdWw/OiBhbnk7IGxyPzogYW55OyB1cj86IGFueTsgbGw/OiBhbnkgfSA9IHtcclxuICAgICAgICB1bDogW1xyXG4gICAgICAgICAgZXdbcGFydEVXXS50byArIGluY3JlbWVudDI1MGtFVyArIGluY3JlbWVudDUwa0VXLFxyXG4gICAgICAgICAgc25bcGFydFNOXS50byAtIGluY3JlbWVudDI1MGtTTiAtIGluY3JlbWVudDUwa1NOXHJcbiAgICAgICAgXVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgY29vcmQubHIgPSBbY29vcmQudWxbMF0gKyB1bml0UGVyVHlwZUVXLCBjb29yZC51bFsxXSAtIHVuaXRQZXJUeXBlU05dO1xyXG4gICAgICBjb29yZC51ciA9IFtjb29yZC51bFswXSwgY29vcmQudWxbMV0gLSB1bml0UGVyVHlwZVNOXTtcclxuICAgICAgY29vcmQubGwgPSBbY29vcmQudWxbMF0gKyB1bml0UGVyVHlwZUVXLCBjb29yZC51bFsxXV07XHJcblxyXG4gICAgICBjb29yZC51bCA9IG9scHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgW2Nvb3JkLnVsWzBdLCBjb29yZC51bFsxXV0sXHJcbiAgICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZXBzZ1RPXHJcbiAgICAgICk7XHJcbiAgICAgIGNvb3JkLmxyID0gb2xwcm9qLnRyYW5zZm9ybShcclxuICAgICAgICBbY29vcmQubHJbMF0sIGNvb3JkLmxyWzFdXSxcclxuICAgICAgICAnRVBTRzo0MzI2JyxcclxuICAgICAgICBlcHNnVE9cclxuICAgICAgKTtcclxuICAgICAgY29vcmQudXIgPSBvbHByb2oudHJhbnNmb3JtKFxyXG4gICAgICAgIFtjb29yZC51clswXSwgY29vcmQudXJbMV1dLFxyXG4gICAgICAgICdFUFNHOjQzMjYnLFxyXG4gICAgICAgIGVwc2dUT1xyXG4gICAgICApO1xyXG4gICAgICBjb29yZC5sbCA9IG9scHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgW2Nvb3JkLmxsWzBdLCBjb29yZC5sbFsxXV0sXHJcbiAgICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZXBzZ1RPXHJcbiAgICAgICk7XHJcblxyXG4gICAgICAvLyBSb3VuZGVkIGNvb3JkaW5hdGUgdG8gc2hvcnRlbiB1cmwgaW4gZ2V0XHJcbiAgICAgIGNvb3JkLnVsID0gdGhpcy5yb3VuZENvb3JkaW5hdGVBcnJheShjb29yZC51bCwgZXBzZ1RPLCAwKTtcclxuICAgICAgY29vcmQubHIgPSB0aGlzLnJvdW5kQ29vcmRpbmF0ZUFycmF5KGNvb3JkLmxyLCBlcHNnVE8sIDApO1xyXG4gICAgICBjb29yZC51ciA9IHRoaXMucm91bmRDb29yZGluYXRlQXJyYXkoY29vcmQudXIsIGVwc2dUTywgMCk7XHJcbiAgICAgIGNvb3JkLmxsID0gdGhpcy5yb3VuZENvb3JkaW5hdGVBcnJheShjb29yZC5sbCwgZXBzZ1RPLCAwKTtcclxuXHJcbiAgICAgIHdrdFBvbHkgPVxyXG4gICAgICAgICdQT0xZR09OKCgnICtcclxuICAgICAgICBbXHJcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC51ci5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC5sbC5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJylcclxuICAgICAgICBdLmpvaW4oJywnKSArXHJcbiAgICAgICAgJykpJztcclxuICAgICAgY29uc3Qgd2t0TGluZSA9XHJcbiAgICAgICAgJ0xJTkVTVFJJTkcoJyArXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQudXIuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQubHIuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQubGwuam9pbignICcpLFxyXG4gICAgICAgICAgY29vcmQudWwuam9pbignICcpXHJcbiAgICAgICAgXS5qb2luKCcsJykgK1xyXG4gICAgICAgICcpJztcclxuXHJcbiAgICAgIGNvbnN0IHdrdE11bHRpUG9pbnRzID1cclxuICAgICAgICAnTVVMVElQT0lOVCgnICtcclxuICAgICAgICBbXHJcbiAgICAgICAgICBjb29yZC51bC5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC51ci5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC5sci5qb2luKCcgJyksXHJcbiAgICAgICAgICBjb29yZC5sbC5qb2luKCcgJylcclxuICAgICAgICBdLmpvaW4oJywnKSArXHJcbiAgICAgICAgJyknO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHdrdFBvbHksXHJcbiAgICAgICAgd2t0TGluZSxcclxuICAgICAgICB3a3RNdWx0aVBvaW50c1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -19,4 +19,4 @@ export class IgoWktModule {
|
|
|
19
19
|
declarations: []
|
|
20
20
|
}]
|
|
21
21
|
}], null, null); })();
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2t0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3drdC93a3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU85RCxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUUsRUFBRTtTQUNkLENBQUM7SUFDSixDQUFDO3NFQU5VLFlBQVk7NERBQVosWUFBWTs7O3VGQUFaLFlBQVk7Y0FMeEIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxFQUFFO2dCQUNYLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFlBQVksRUFBRSxFQUFFO2FBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW10sXHJcbiAgZXhwb3J0czogW10sXHJcbiAgZGVjbGFyYXRpb25zOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvV2t0TW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb1drdE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IElnb1drdE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { LanguageService } from '@igo2/core';
|
|
2
1
|
import { Component, Inject } from '@angular/core';
|
|
3
|
-
import {
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
3
|
+
import { LanguageService } from '@igo2/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/material/dialog";
|
|
6
6
|
import * as i2 from "@igo2/core";
|
|
@@ -44,9 +44,9 @@ export class ConfirmationPopupComponent {
|
|
|
44
44
|
}
|
|
45
45
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConfirmationPopupComponent, [{
|
|
46
46
|
type: Component,
|
|
47
|
-
args: [{ selector: 'igo-confirmation-popup-component', template: "<div mat-dialog-content>\
|
|
47
|
+
args: [{ selector: 'igo-confirmation-popup-component', 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"] }]
|
|
48
48
|
}], function () { return [{ type: i1.MatDialogRef }, { type: i2.LanguageService }, { type: undefined, decorators: [{
|
|
49
49
|
type: Inject,
|
|
50
50
|
args: [MAT_DIALOG_DATA]
|
|
51
51
|
}] }]; }, null); })();
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7QUFZN0MsTUFBTSxPQUFPLDBCQUEwQjtJQUU1QjtJQUNBO0lBQ3lCO0lBSGxDLFlBQ1MsU0FBbUQsRUFDbkQsZUFBZ0MsRUFDUCxJQUF1QztRQUZoRSxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUNuRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDUCxTQUFJLEdBQUosSUFBSSxDQUFtQztJQUN0RSxDQUFDO0lBRUosWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztvRkFmVSwwQkFBMEIsd0dBSTNCLGVBQWU7NkRBSmQsMEJBQTBCO1lDZnZDLDhCQUF3QixXQUFBO1lBRXBCLFlBT0Y7WUFBQSxpQkFBSSxFQUFBO1lBRU4sOEJBQXdCLGdCQUFBO1lBQ29CLHVHQUFTLHFCQUFpQixJQUFDO1lBQ25FLG9CQUNGO1lBQUEsaUJBQVM7WUFDVCxpQ0FBbUQ7WUFBekIsdUdBQVMsa0JBQWMsSUFBQztZQUNoRCxZQUNGO1lBQUEsaUJBQVMsRUFBQTs7WUFmUCxlQU9GO1lBUEUscU5BT0Y7WUFPRSxlQUNGO1lBREUsa0dBQ0Y7Ozt1RkRGVywwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSxrQ0FBa0M7O3NCQVF6QyxNQUFNO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YSB7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGNhbmNlbDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tY29uZmlybWF0aW9uLXBvcHVwLWNvbXBvbmVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb25maXJtYXRpb25Qb3B1cENvbXBvbmVudD4sXHJcbiAgICBwdWJsaWMgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IHsgdHlwZTogc3RyaW5nOyBjYW5jZWw6IGJvb2xlYW4gfVxyXG4gICkge31cclxuXHJcbiAgY2FuY2VsQWN0aW9uKCkge1xyXG4gICAgdGhpcy5kYXRhLmNhbmNlbCA9IHRydWU7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmRhdGEuY2FuY2VsKTtcclxuICB9XHJcblxyXG4gIGNvbmZpcm1lZEFjdGlvbigpIHtcclxuICAgIHRoaXMuZGF0YS5jYW5jZWwgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZGF0YS5jYW5jZWwpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgPHAgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgIHt7XG4gICAgICBkYXRhLnR5cGUgPT09ICdhZGQnXG4gICAgICAgID8gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLndvcmtzcGFjZS5hZGRDb25maXJtYXRpb24nKVxuICAgICAgICA6IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdpZ28uZ2VvLndvcmtzcGFjZS5kZWxldGVDb25maXJtYXRpb24nXG4gICAgICAgICAgKVxuICAgIH19XG4gIDwvcD5cbjwvZGl2PlxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm1lZEFjdGlvbigpXCI+XG4gICAgT2tcbiAgPC9idXR0b24+XG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbEFjdGlvbigpXCI+XG4gICAge3sgbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLndvcmtzcGFjZS5jYW5jZWwnKSB9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
3
|
import { MatButtonModule } from '@angular/material/button';
|
|
4
4
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
5
5
|
import { MatDialogModule } from '@angular/material/dialog';
|
|
@@ -33,4 +33,4 @@ export class IgoConfirmationPopupModule {
|
|
|
33
33
|
MatButtonModule,
|
|
34
34
|
MatDialogModule,
|
|
35
35
|
MatButtonToggleModule], exports: [ConfirmationPopupComponent] }); })();
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLXBvcHVwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3dvcmtzcGFjZS9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUU1RTs7R0FFRztBQVdILE1BQU0sT0FBTywwQkFBMEI7b0ZBQTFCLDBCQUEwQjs0REFBMUIsMEJBQTBCO2dFQVJuQyxZQUFZO1lBQ1osZUFBZTtZQUNmLGVBQWU7WUFDZixxQkFBcUI7O3VGQUtaLDBCQUEwQjtjQVZ0QyxRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZUFBZTtvQkFDZixlQUFlO29CQUNmLHFCQUFxQjtpQkFDdEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3JDLFlBQVksRUFBRSxDQUFDLDBCQUEwQixDQUFDO2FBQzNDOzt3RkFDWSwwQkFBMEIsbUJBRnRCLDBCQUEwQixhQU52QyxZQUFZO1FBQ1osZUFBZTtRQUNmLGVBQWU7UUFDZixxQkFBcUIsYUFFYiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9jb25maXJtYXRpb24tcG9wdXAuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0NvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50XSxcclxuICBkZWNsYXJhdGlvbnM6IFtDb25maXJtYXRpb25Qb3B1cENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElnb0NvbmZpcm1hdGlvblBvcHVwTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './confirmation-popup.component';
|
|
2
2
|
export * from './confirmation-popup.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2UvY29uZmlybWF0aW9uLXBvcHVwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpcm1hdGlvbi1wb3B1cC5tb2R1bGUnO1xuIl19
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { Workspace } from '@igo2/common';
|
|
2
|
-
import
|
|
3
|
-
import { VectorLayer } from '../../layer/shared';
|
|
4
|
-
import { ConfirmationPopupComponent } from '../confirmation-popup/confirmation-popup.component';
|
|
5
|
-
import { DrawControl } from '../../geometry';
|
|
6
|
-
import { createInteractionStyle, GeometryType } from '../../draw';
|
|
7
|
-
import { featureToOl } from '../../feature';
|
|
2
|
+
import Collection from 'ol/Collection';
|
|
8
3
|
import OlGeoJSON from 'ol/format/GeoJSON';
|
|
4
|
+
import OlModify from 'ol/interaction/Modify';
|
|
9
5
|
import OlVectorSource from 'ol/source/Vector';
|
|
10
6
|
import * as OlStyle from 'ol/style';
|
|
11
|
-
import
|
|
12
|
-
import Collection from 'ol/Collection';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
13
8
|
import { FeatureDataSource } from '../../datasource/shared';
|
|
9
|
+
import { GeometryType, createInteractionStyle } from '../../draw';
|
|
10
|
+
import { featureToOl } from '../../feature';
|
|
11
|
+
import { DrawControl } from '../../geometry';
|
|
12
|
+
import { VectorLayer } from '../../layer/shared';
|
|
13
|
+
import { ConfirmationPopupComponent } from '../confirmation-popup/confirmation-popup.component';
|
|
14
14
|
export class EditionWorkspace extends Workspace {
|
|
15
15
|
dialog;
|
|
16
16
|
configService;
|
|
17
17
|
adding$;
|
|
18
|
-
_deleteFeature;
|
|
19
18
|
getDomainValues;
|
|
20
19
|
options;
|
|
21
20
|
inResolutionRange$ = new BehaviorSubject(true);
|
|
@@ -59,12 +58,11 @@ export class EditionWorkspace extends Workspace {
|
|
|
59
58
|
fillColor;
|
|
60
59
|
strokeColor;
|
|
61
60
|
strokeWidth;
|
|
62
|
-
constructor(dialog, configService, adding$,
|
|
61
|
+
constructor(dialog, configService, adding$, getDomainValues, options) {
|
|
63
62
|
super(options);
|
|
64
63
|
this.dialog = dialog;
|
|
65
64
|
this.configService = configService;
|
|
66
65
|
this.adding$ = adding$;
|
|
67
|
-
this._deleteFeature = _deleteFeature;
|
|
68
66
|
this.getDomainValues = getDomainValues;
|
|
69
67
|
this.options = options;
|
|
70
68
|
this.map.viewController.resolution$.subscribe((mapResolution) => {
|
|
@@ -92,9 +90,6 @@ export class EditionWorkspace extends Workspace {
|
|
|
92
90
|
}
|
|
93
91
|
});
|
|
94
92
|
}
|
|
95
|
-
getInResolutionRange() {
|
|
96
|
-
return this.inResolutionRange$.value;
|
|
97
|
-
}
|
|
98
93
|
deleteFeature(feature, workspace) {
|
|
99
94
|
setTimeout(() => {
|
|
100
95
|
const dialogRef = this.dialog.open(ConfirmationPopupComponent, {
|
|
@@ -301,4 +296,4 @@ export class EditionWorkspace extends Workspace {
|
|
|
301
296
|
});
|
|
302
297
|
}
|
|
303
298
|
}
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL2VkaXRpb24td29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWtDLE1BQU0sY0FBYyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBRWpFLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTVDLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFPN0UsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFxRG5DO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDRTtJQXpESCxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQ3pFLElBQUksQ0FDTCxDQUFDO0lBRUYsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJ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QztZQUN6QixRQUFRLEVBQUUsWUFBWTtTQUN2QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMvQixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDL0QsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDeEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZSwgV29ya3NwYWNlT3B0aW9ucywgRW50aXR5UmVjb3JkIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSW1hZ2VMYXllciwgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQnO1xyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtYXRpb24tcG9wdXAvY29uZmlybWF0aW9uLXBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyYXdDb250cm9sIH0gZnJvbSAnLi4vLi4vZ2VvbWV0cnknO1xyXG5pbXBvcnQgeyBjcmVhdGVJbnRlcmFjdGlvblN0eWxlLCBHZW9tZXRyeVR5cGUgfSBmcm9tICcuLi8uLi9kcmF3JztcclxuaW1wb3J0IHsgZmVhdHVyZVRvT2wgfSBmcm9tICcuLi8uLi9mZWF0dXJlJztcclxuXHJcbmltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcclxuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xyXG5pbXBvcnQgKiBhcyBPbFN0eWxlIGZyb20gJ29sL3N0eWxlJztcclxuaW1wb3J0IE9sTW9kaWZ5IGZyb20gJ29sL2ludGVyYWN0aW9uL01vZGlmeSc7XHJcbmltcG9ydCBDb2xsZWN0aW9uIGZyb20gJ29sL0NvbGxlY3Rpb24nO1xyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSwgUmVsYXRpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFZGl0aW9uV29ya3NwYWNlT3B0aW9ucyBleHRlbmRzIFdvcmtzcGFjZU9wdGlvbnMge1xyXG4gIGxheWVyOiBJbWFnZUxheWVyIHwgVmVjdG9yTGF5ZXI7XHJcbiAgbWFwOiBJZ29NYXA7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFZGl0aW9uV29ya3NwYWNlIGV4dGVuZHMgV29ya3NwYWNlIHtcclxuICByZWFkb25seSBpblJlc29sdXRpb25SYW5nZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICB0cnVlXHJcbiAgKTtcclxuXHJcbiAgZ2V0IGxheWVyKCk6IEltYWdlTGF5ZXIgfCBWZWN0b3JMYXllciB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmxheWVyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXdDb250cm9sOiBEcmF3Q29udHJvbDtcclxuICBwcml2YXRlIGRyYXdFbmQkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgb2xEcmF3aW5nTGF5ZXJTb3VyY2UgPSBuZXcgT2xWZWN0b3JTb3VyY2UoKTtcclxuICBwcml2YXRlIG9sRHJhd2luZ0xheWVyOiBWZWN0b3JMYXllcjtcclxuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlOyAvLyBSZWZlcmVuY2UgdG8gdGhlIEdlb21ldHJ5VHlwZSBlbnVtXHJcbiAgcHVibGljIG1vZGlmeTsgLy8gUmVmZXJlbmNlIHRvIHRoZSBvbCBpbnRlcmFjdGlvblxyXG5cclxuICBwdWJsaWMgbW9kaWZ5U3R5bGUgPSBuZXcgT2xTdHlsZS5TdHlsZSh7XHJcbiAgICBzdHJva2U6IG5ldyBPbFN0eWxlLlN0cm9rZSh7XHJcbiAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXHJcbiAgICAgIHdpZHRoOiAxXHJcbiAgICB9KSxcclxuICAgIGZpbGw6IG5ldyBPbFN0eWxlLkZpbGwoe1xyXG4gICAgICBjb2xvcjogJ3JnYmEoMCwxNjEsMjIyLDEpJ1xyXG4gICAgfSksXHJcbiAgICBpbWFnZTogbmV3IE9sU3R5bGUuQ2lyY2xlKHtcclxuICAgICAgcmFkaXVzOiA3LFxyXG4gICAgICBzdHJva2U6IG5ldyBPbFN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcclxuICAgICAgICB3aWR0aDogMVxyXG4gICAgICB9KSxcclxuICAgICAgZmlsbDogbmV3IE9sU3R5bGUuRmlsbCh7XHJcbiAgICAgICAgY29sb3I6ICdyZ2JhKDAsMTYxLDIyMiwxKSdcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgbmV3RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMgPSAocmVjb3JkOiBFbnRpdHlSZWNvcmQ8b2JqZWN0PikgPT4ge1xyXG4gICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5uZXdGZWF0dXJlID09PSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgZWRpdEZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jID0gKHJlY29yZDogRW50aXR5UmVjb3JkPG9iamVjdD4pID0+IHtcclxuICAgIHJldHVybiByZWNvcmQuc3RhdGUuZWRpdCA9PT0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZmlsbENvbG9yOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0cm9rZUNvbG9yOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0cm9rZVdpZHRoOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgYWRkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxyXG4gICAgcHJpdmF0ZSBfZGVsZXRlRmVhdHVyZTogKHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSwgdXJsOiBzdHJpbmcpID0+IHZvaWQsXHJcbiAgICBwcml2YXRlIGdldERvbWFpblZhbHVlczogKHJlbGF0aW9uOiBSZWxhdGlvbk9wdGlvbnMpID0+IE9ic2VydmFibGU8YW55PixcclxuICAgIHByb3RlY3RlZCBvcHRpb25zOiBFZGl0aW9uV29ya3NwYWNlT3B0aW9uc1xyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJC5zdWJzY3JpYmUoKG1hcFJlc29sdXRpb24pID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIG1hcFJlc29sdXRpb24gPiB0aGlzLmxheWVyLm1pblJlc29sdXRpb24gJiZcclxuICAgICAgICBtYXBSZXNvbHV0aW9uIDwgdGhpcy5sYXllci5tYXhSZXNvbHV0aW9uXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQodHJ1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZHJhd0NvbnRyb2wgPSB0aGlzLmNyZWF0ZURyYXdDb250cm9sKCk7XHJcbiAgICB0aGlzLmRyYXdDb250cm9sLnNldEdlb21ldHJ5VHlwZSh0aGlzLmdlb21ldHJ5VHlwZS5Qb2ludCBhcyBhbnkpO1xyXG5cclxuICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKHRoaXMub2xEcmF3aW5nTGF5ZXIpO1xyXG5cclxuICAgIHRoaXMub2xEcmF3aW5nTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICBpZDogJ2lnby1kcmF3LWxheWVyJyxcclxuICAgICAgdGl0bGU6ICdlZGl0aW9uJyxcclxuICAgICAgekluZGV4OiAzMDAsXHJcbiAgICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXHJcbiAgICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXHJcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxyXG4gICAgICBicm93c2FibGU6IGZhbHNlLFxyXG4gICAgICB3b3Jrc3BhY2U6IHtcclxuICAgICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SW5SZXNvbHV0aW9uUmFuZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pblJlc29sdXRpb25SYW5nZSQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IGZhbHNlLFxyXG4gICAgICAgIGRhdGE6IHsgdHlwZTogJ2RlbGV0ZScgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgIGxldCBpZCwgdXJsO1xyXG4gICAgICAgICAgY29uc3QgYmFzZVVybCA9IHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5iYXNlVXJsO1xyXG4gICAgICAgICAgY29uc3QgZGVsZXRlVXJsID1cclxuICAgICAgICAgICAgd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmRlbGV0ZVVybDtcclxuICAgICAgICAgIGlmIChiYXNlVXJsLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB1cmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpXHJcbiAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpICtcclxuICAgICAgICAgICAgICAgIGJhc2VVcmwgK1xyXG4gICAgICAgICAgICAgICAgJz8nICtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZVVybFxyXG4gICAgICAgICAgICAgIDogYmFzZVVybCArICc/JyArIGRlbGV0ZVVybDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJylcclxuICAgICAgICAgICAgICA/IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJykgKyBkZWxldGVVcmxcclxuICAgICAgICAgICAgICA6IGRlbGV0ZVVybDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICBsZXQgY29sdW1uTmFtZSA9IGNvbHVtbi5uYW1lO1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgdXJsICs9IGlkO1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUZlYXR1cmUod29ya3NwYWNlLCB1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LCAyNTApO1xyXG4gIH1cclxuXHJcbiAgZWRpdEZlYXR1cmUoZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XHJcbiAgICBmZWF0dXJlLmVkaXRpb24gPSB0cnVlO1xyXG4gICAgbGV0IGlkO1xyXG4gICAgbGV0IGZpbmQgPSBmYWxzZTtcclxuICAgIGNvbnN0IGVkaXRpb25PcHQgPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb247XHJcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcclxuICAgICAgLy8gVXBkYXRlIGRvbWFpbiBsaXN0XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2xpc3QnIHx8IGNvbHVtbi50eXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xyXG4gICAgICAgIHRoaXMuZ2V0RG9tYWluVmFsdWVzKGNvbHVtbi5yZWxhdGlvbikuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5kb21haW5WYWx1ZXMgPSByZXN1bHQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZpbmQgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcclxuICAgICAgICAgIGxldCBjb2x1bW5OYW1lID0gY29sdW1uLm5hbWU7XHJcbiAgICAgICAgICBpZiAoY29sdW1uTmFtZS5pbmNsdWRlcygncHJvcGVydGllcy4nKSkge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGNvbHVtbk5hbWUgPT09IHByb3BlcnR5ICYmIGNvbHVtbi5wcmltYXJ5ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgZmluZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIGZlYXR1cmUub3JpZ2luYWxfcHJvcGVydGllcyA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoZmVhdHVyZS5wcm9wZXJ0aWVzKVxyXG4gICAgICApO1xyXG4gICAgICBmZWF0dXJlLm9yaWdpbmFsX2dlb21ldHJ5ID0gZmVhdHVyZS5nZW9tZXRyeTtcclxuICAgICAgZmVhdHVyZS5pZGtleSA9IGlkO1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgZWRpdDogZmFsc2UgfSk7XHJcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZVZpZXcuZmlsdGVyKHRoaXMuZWRpdEZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jKTtcclxuICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gT25seSBmb3IgZWRpdGlvbiB3aXRoIGl0J3Mgb3duIGdlb21ldHJ5XHJcbiAgICAgIGlmICghZmVhdHVyZS5uZXdGZWF0dXJlICYmIGVkaXRpb25PcHQuZ2VvbVR5cGUpIHtcclxuICAgICAgICBmZWF0dXJlLm5ld0ZlYXR1cmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWRkaW5nJC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBuZXdGZWF0dXJlOiBmYWxzZSB9KTtcclxuICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGVWaWV3LmZpbHRlcih0aGlzLm5ld0ZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jKTtcclxuICAgICAgICBpZiAoZWRpdGlvbk9wdC5hZGRXaXRoRHJhdykge1xyXG4gICAgICAgICAgY29uc3QgZ2VvbWV0cnlUeXBlID0gZWRpdGlvbk9wdC5nZW9tVHlwZTtcclxuICAgICAgICAgIHRoaXMub25HZW9tZXRyeVR5cGVDaGFuZ2UoZ2VvbWV0cnlUeXBlLCBmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xyXG4gICAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShcclxuICAgICAgICAgICAgZmVhdHVyZSxcclxuICAgICAgICAgICAgeyBuZXdGZWF0dXJlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBEcmF3IENvbnRyb2xcclxuICAgKiBAcGFyYW0gZmlsbENvbG9yIHRoZSBmaWxsIGNvbG9yXHJcbiAgICogQHBhcmFtIHN0cm9rZUNvbG9yIHRoZSBzdHJva2UgY29sb3JcclxuICAgKiBAcGFyYW0gc3Ryb2tlV2lkdGggdGhlIHN0cm9rZSB3aWR0aFxyXG4gICAqIEByZXR1cm5zIGEgRHJhdyBDb250cm9sXHJcbiAgICovXHJcbiAgY3JlYXRlRHJhd0NvbnRyb2woXHJcbiAgICBmaWxsQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBzdHJva2VDb2xvcj86IHN0cmluZyxcclxuICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICBjb25zdCBkcmF3Q29udHJvbCA9IG5ldyBEcmF3Q29udHJvbCh7XHJcbiAgICAgIGdlb21ldHJ5VHlwZTogdW5kZWZpbmVkLFxyXG4gICAgICBkcmF3aW5nTGF5ZXJTb3VyY2U6IHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2UsXHJcbiAgICAgIGRyYXdpbmdMYXllclN0eWxlOiBuZXcgT2xTdHlsZS5TdHlsZSh7fSksXHJcbiAgICAgIGludGVyYWN0aW9uU3R5bGU6IGNyZWF0ZUludGVyYWN0aW9uU3R5bGUoXHJcbiAgICAgICAgZmlsbENvbG9yLFxyXG4gICAgICAgIHN0cm9rZUNvbG9yLFxyXG4gICAgICAgIHN0cm9rZVdpZHRoXHJcbiAgICAgIClcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkcmF3Q29udHJvbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBuZXcgZ2VvbWV0cnkgdHlwZVxyXG4gICAqIEBwYXJhbSBnZW9tZXRyeVR5cGUgdGhlIGdlb21ldHJ5IHR5cGUgc2VsZWN0ZWQgYnkgdGhlIHVzZXJcclxuICAgKi9cclxuICBvbkdlb21ldHJ5VHlwZUNoYW5nZShcclxuICAgIGdlb21ldHJ5VHlwZTogVHlwZSxcclxuICAgIGZlYXR1cmUsXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2VcclxuICApIHtcclxuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0R2VvbWV0cnlUeXBlKGdlb21ldHJ5VHlwZSk7XHJcbiAgICB0aGlzLnRvZ2dsZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSB0aGUgY29ycmVjdCBjb250cm9sXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0b2dnbGVEcmF3Q29udHJvbChmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcclxuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdDb250cm9sKCk7XHJcbiAgICB0aGlzLmFjdGl2YXRlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlYWN0aXZhdGUgdGhlIGFjdGl2ZSBkcmF3IGNvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgZGVhY3RpdmF0ZURyYXdDb250cm9sKCkge1xyXG4gICAgaWYgKCF0aGlzLmRyYXdDb250cm9sKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kcmF3RW5kJCQpIHtcclxuICAgICAgdGhpcy5kcmF3RW5kJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRyYXdDb250cm9sLnNldE9sTWFwKHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSBhIGdpdmVuIGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIGFjdGl2YXRlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XHJcbiAgICB0aGlzLmRyYXdFbmQkJCA9IHRoaXMuZHJhd0NvbnRyb2wuZW5kJC5zdWJzY3JpYmUoXHJcbiAgICAgIChvbEdlb21ldHJ5OiBPbEdlb21ldHJ5KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UsIG9sR2VvbWV0cnkpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0T2xNYXAodGhpcy5tYXAub2wsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgZmVhdHVyZSB0byBsYXllci4gVGhlIGxvYWRpbmcgc3RyYXRlZ3kgb2YgdGhlIGxheWVyXHJcbiAgICogd2lsbCB0cmlnZ2VyIGFuZCBhZGQgdGhlIGZlYXR1cmUgdG8gdGhlIHdvcmtzcGFjZSBzdG9yZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcml2YXRlIGFkZEZlYXR1cmVUb1N0b3JlKFxyXG4gICAgZmVhdHVyZSxcclxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSxcclxuICAgIG9sR2VvbWV0cnk/OiBPbEdlb21ldHJ5XHJcbiAgKSB7XHJcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gdGhpcy5tYXAub2wuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKTtcclxuICAgIGxldCBnZW9tZXRyeSA9IGZlYXR1cmUuZ2VvbWV0cnk7XHJcblxyXG4gICAgLy8gSWYgYW4gb2xHZW9tZXRyeSBpcyBwYXNzZWQsIGl0IG1lYW5zIHRoYXQgaXQgaXMgYSBuZXcgZmVhdHVyZVxyXG4gICAgaWYgKG9sR2VvbWV0cnkpIHtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLmluc2VydChmZWF0dXJlKTtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShmZWF0dXJlLCB7IG5ld0ZlYXR1cmU6IHRydWUgfSwgdHJ1ZSk7XHJcbiAgICAgIGdlb21ldHJ5ID0gbmV3IE9sR2VvSlNPTigpLndyaXRlR2VvbWV0cnlPYmplY3Qob2xHZW9tZXRyeSwge1xyXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uLFxyXG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2J1xyXG4gICAgICB9KSBhcyBhbnk7XHJcblxyXG4gICAgICBmZWF0dXJlLmdlb21ldHJ5ID0gZ2VvbWV0cnk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlKGZlYXR1cmUsIHsgZWRpdDogdHJ1ZSB9LCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBmZWF0dXJlLnByb2plY3Rpb24gPSAnRVBTRzo0MzI2JztcclxuXHJcbiAgICBjb25zdCBmZWF0dXJlT2wgPSBmZWF0dXJlVG9PbChmZWF0dXJlLCBwcm9qZWN0aW9uLmdldENvZGUoKSk7XHJcblxyXG4gICAgdGhpcy5vbERyYXdpbmdMYXllci5kYXRhU291cmNlLm9sLmNsZWFyKCk7XHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyLmRhdGFTb3VyY2Uub2wuYWRkRmVhdHVyZShmZWF0dXJlT2wpO1xyXG4gICAgdGhpcy5tYXAuYWRkTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XHJcblxyXG4gICAgdGhpcy5kZWFjdGl2YXRlRHJhd0NvbnRyb2woKTtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5SW50ZXJhY3Rpb24oZmVhdHVyZU9sLCBmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGRyYXdpbmdzIGxheWVyIGFuZCBzb3VyY2UgZnJvbSB0aGUgbWFwIEFORCBmZWF0dXJlIGZyb20gdGhlIGVudGl0eSBzdG9yZS5cclxuICAgKiBMYXllciByZWZyZXNoIHdpbGwgYXV0b21hdGljYWxseSBhZGQgdGhlIG5ldyBmZWF0dXJlIGludG8gdGhlIHN0b3JlLlxyXG4gICAqL1xyXG4gIGRlbGV0ZURyYXdpbmdzKCkge1xyXG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyU291cmNlLmNsZWFyKCk7XHJcbiAgICB0aGlzLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBtb2RpZnkgaW50ZXJhY3Rpb24gdG8gYWxsb3cgYSBnZW9tZXRyeSBjaGFuZ2Ugb25lIGZlYXR1cmUgYXQgdGhlIHRpbWUgKGRyYWcgYW5kIGRyb3ApXHJcbiAgICovXHJcbiAgY3JlYXRlTW9kaWZ5SW50ZXJhY3Rpb24oXHJcbiAgICBvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PixcclxuICAgIGZlYXR1cmUsXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2VcclxuICApIHtcclxuICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcclxuICAgIGNvbnN0IG9sQ29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uKFtvbEZlYXR1cmVdLCB7IHVuaXF1ZTogdHJ1ZSB9KTtcclxuICAgIHRoaXMubW9kaWZ5ID0gbmV3IE9sTW9kaWZ5KHtcclxuICAgICAgZmVhdHVyZXM6IG9sQ29sbGVjdGlvblxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5tb2RpZnkpO1xyXG4gICAgb2xDb2xsZWN0aW9uLmZvckVhY2goKGZlYXR1cmUpID0+IHtcclxuICAgICAgZmVhdHVyZS5zZXRTdHlsZSh0aGlzLm1vZGlmeVN0eWxlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubW9kaWZ5Lm9uKCdtb2RpZnllbmQnLCAoZXZlbnQpID0+IHtcclxuICAgICAgY29uc3Qgb2xHZW9tZXRyeSA9IGV2ZW50LmZlYXR1cmVzLmdldEFycmF5KClbMF0/LmdldEdlb21ldHJ5KCk7XHJcbiAgICAgIGlmIChvbEdlb21ldHJ5KSB7XHJcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UsIG9sR2VvbWV0cnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi93b3Jrc3BhY2Uvc2hhcmVkL2VkaXRpb24td29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBZ0IsU0FBUyxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUd6RSxPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxTQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFHMUMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFtQixNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBT2hHLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUFTO0lBcURuQztJQUNBO0lBQ0E7SUFDQTtJQUNFO0lBeERILGtCQUFrQixHQUE2QixJQUFJLGVBQWUsQ0FDekUsSUFBSSxDQUNMLENBQUM7SUFFRixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUks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QUN4QyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQy9ELElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3hEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgRW50aXR5UmVjb3JkLCBXb3Jrc3BhY2UsIFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgQ29sbGVjdGlvbiBmcm9tICdvbC9Db2xsZWN0aW9uJztcclxuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcclxuaW1wb3J0IE9sR2VvSlNPTiBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTic7XHJcbmltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgT2xNb2RpZnkgZnJvbSAnb2wvaW50ZXJhY3Rpb24vTW9kaWZ5JztcclxuaW1wb3J0IE9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xyXG5pbXBvcnQgKiBhcyBPbFN0eWxlIGZyb20gJ29sL3N0eWxlJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSwgUmVsYXRpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQnO1xyXG5pbXBvcnQgeyBHZW9tZXRyeVR5cGUsIGNyZWF0ZUludGVyYWN0aW9uU3R5bGUgfSBmcm9tICcuLi8uLi9kcmF3JztcclxuaW1wb3J0IHsgZmVhdHVyZVRvT2wgfSBmcm9tICcuLi8uLi9mZWF0dXJlJztcclxuaW1wb3J0IHsgRHJhd0NvbnRyb2wgfSBmcm9tICcuLi8uLi9nZW9tZXRyeSc7XHJcbmltcG9ydCB7IEltYWdlTGF5ZXIsIFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkJztcclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZCc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZmlybWF0aW9uLXBvcHVwL2NvbmZpcm1hdGlvbi1wb3B1cC5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFZGl0aW9uV29ya3NwYWNlT3B0aW9ucyBleHRlbmRzIFdvcmtzcGFjZU9wdGlvbnMge1xyXG4gIGxheWVyOiBJbWFnZUxheWVyIHwgVmVjdG9yTGF5ZXI7XHJcbiAgbWFwOiBJZ29NYXA7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFZGl0aW9uV29ya3NwYWNlIGV4dGVuZHMgV29ya3NwYWNlIHtcclxuICByZWFkb25seSBpblJlc29sdXRpb25SYW5nZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICB0cnVlXHJcbiAgKTtcclxuXHJcbiAgZ2V0IGxheWVyKCk6IEltYWdlTGF5ZXIgfCBWZWN0b3JMYXllciB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmxheWVyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXdDb250cm9sOiBEcmF3Q29udHJvbDtcclxuICBwcml2YXRlIGRyYXdFbmQkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgb2xEcmF3aW5nTGF5ZXJTb3VyY2UgPSBuZXcgT2xWZWN0b3JTb3VyY2UoKTtcclxuICBwcml2YXRlIG9sRHJhd2luZ0xheWVyOiBWZWN0b3JMYXllcjtcclxuICBwdWJsaWMgZ2VvbWV0cnlUeXBlID0gR2VvbWV0cnlUeXBlOyAvLyBSZWZlcmVuY2UgdG8gdGhlIEdlb21ldHJ5VHlwZSBlbnVtXHJcbiAgcHVibGljIG1vZGlmeTsgLy8gUmVmZXJlbmNlIHRvIHRoZSBvbCBpbnRlcmFjdGlvblxyXG5cclxuICBwdWJsaWMgbW9kaWZ5U3R5bGUgPSBuZXcgT2xTdHlsZS5TdHlsZSh7XHJcbiAgICBzdHJva2U6IG5ldyBPbFN0eWxlLlN0cm9rZSh7XHJcbiAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXHJcbiAgICAgIHdpZHRoOiAxXHJcbiAgICB9KSxcclxuICAgIGZpbGw6IG5ldyBPbFN0eWxlLkZpbGwoe1xyXG4gICAgICBjb2xvcjogJ3JnYmEoMCwxNjEsMjIyLDEpJ1xyXG4gICAgfSksXHJcbiAgICBpbWFnZTogbmV3IE9sU3R5bGUuQ2lyY2xlKHtcclxuICAgICAgcmFkaXVzOiA3LFxyXG4gICAgICBzdHJva2U6IG5ldyBPbFN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcclxuICAgICAgICB3aWR0aDogMVxyXG4gICAgICB9KSxcclxuICAgICAgZmlsbDogbmV3IE9sU3R5bGUuRmlsbCh7XHJcbiAgICAgICAgY29sb3I6ICdyZ2JhKDAsMTYxLDIyMiwxKSdcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgbmV3RmVhdHVyZWZpbHRlckNsYXVzZUZ1bmMgPSAocmVjb3JkOiBFbnRpdHlSZWNvcmQ8b2JqZWN0PikgPT4ge1xyXG4gICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5uZXdGZWF0dXJlID09PSB0cnVlO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgZWRpdEZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jID0gKHJlY29yZDogRW50aXR5UmVjb3JkPG9iamVjdD4pID0+IHtcclxuICAgIHJldHVybiByZWNvcmQuc3RhdGUuZWRpdCA9PT0gdHJ1ZTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgZmlsbENvbG9yOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0cm9rZUNvbG9yOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0cm9rZVdpZHRoOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgYWRkaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+LFxyXG4gICAgcHJpdmF0ZSBnZXREb21haW5WYWx1ZXM6IChyZWxhdGlvbjogUmVsYXRpb25PcHRpb25zKSA9PiBPYnNlcnZhYmxlPGFueT4sXHJcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogRWRpdGlvbldvcmtzcGFjZU9wdGlvbnNcclxuICApIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQuc3Vic2NyaWJlKChtYXBSZXNvbHV0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBtYXBSZXNvbHV0aW9uID4gdGhpcy5sYXllci5taW5SZXNvbHV0aW9uICYmXHJcbiAgICAgICAgbWFwUmVzb2x1dGlvbiA8IHRoaXMubGF5ZXIubWF4UmVzb2x1dGlvblxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KHRydWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLm5leHQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmRyYXdDb250cm9sID0gdGhpcy5jcmVhdGVEcmF3Q29udHJvbCgpO1xyXG4gICAgdGhpcy5kcmF3Q29udHJvbC5zZXRHZW9tZXRyeVR5cGUodGhpcy5nZW9tZXRyeVR5cGUuUG9pbnQgYXMgYW55KTtcclxuXHJcbiAgICB0aGlzLm1hcC5yZW1vdmVMYXllcih0aGlzLm9sRHJhd2luZ0xheWVyKTtcclxuXHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyID0gbmV3IFZlY3RvckxheWVyKHtcclxuICAgICAgaWQ6ICdpZ28tZHJhdy1sYXllcicsXHJcbiAgICAgIHRpdGxlOiAnZWRpdGlvbicsXHJcbiAgICAgIHpJbmRleDogMzAwLFxyXG4gICAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxyXG4gICAgICBzaG93SW5MYXllckxpc3Q6IGZhbHNlLFxyXG4gICAgICBleHBvcnRhYmxlOiBmYWxzZSxcclxuICAgICAgYnJvd3NhYmxlOiBmYWxzZSxcclxuICAgICAgd29ya3NwYWNlOiB7XHJcbiAgICAgICAgZW5hYmxlZDogZmFsc2VcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGZWF0dXJlKGZlYXR1cmUsIHdvcmtzcGFjZSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oQ29uZmlybWF0aW9uUG9wdXBDb21wb25lbnQsIHtcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IGZhbHNlLFxyXG4gICAgICAgIGRhdGE6IHsgdHlwZTogJ2RlbGV0ZScgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgIGxldCBpZCwgdXJsO1xyXG4gICAgICAgICAgY29uc3QgYmFzZVVybCA9IHdvcmtzcGFjZS5sYXllci5kYXRhU291cmNlLm9wdGlvbnMuZWRpdGlvbi5iYXNlVXJsO1xyXG4gICAgICAgICAgY29uc3QgZGVsZXRlVXJsID1cclxuICAgICAgICAgICAgd29ya3NwYWNlLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5lZGl0aW9uLmRlbGV0ZVVybDtcclxuICAgICAgICAgIGlmIChiYXNlVXJsLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB1cmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpXHJcbiAgICAgICAgICAgICAgPyB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdlZGl0aW9uLnVybCcpICtcclxuICAgICAgICAgICAgICAgIGJhc2VVcmwgK1xyXG4gICAgICAgICAgICAgICAgJz8nICtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZVVybFxyXG4gICAgICAgICAgICAgIDogYmFzZVVybCArICc/JyArIGRlbGV0ZVVybDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHVybCA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJylcclxuICAgICAgICAgICAgICA/IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2VkaXRpb24udXJsJykgKyBkZWxldGVVcmxcclxuICAgICAgICAgICAgICA6IGRlbGV0ZVVybDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICBsZXQgY29sdW1uTmFtZSA9IGNvbHVtbi5uYW1lO1xyXG4gICAgICAgICAgICAgIGlmIChjb2x1bW5OYW1lLmluY2x1ZGVzKCdwcm9wZXJ0aWVzLicpKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoY29sdW1uTmFtZSA9PT0gcHJvcGVydHkgJiYgY29sdW1uLnByaW1hcnkgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgdXJsICs9IGlkO1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUZlYXR1cmUod29ya3NwYWNlLCB1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LCAyNTApO1xyXG4gIH1cclxuXHJcbiAgZWRpdEZlYXR1cmUoZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XHJcbiAgICBmZWF0dXJlLmVkaXRpb24gPSB0cnVlO1xyXG4gICAgbGV0IGlkO1xyXG4gICAgbGV0IGZpbmQgPSBmYWxzZTtcclxuICAgIGNvbnN0IGVkaXRpb25PcHQgPSB3b3Jrc3BhY2UubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLmVkaXRpb247XHJcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiB3b3Jrc3BhY2UubWV0YS50YWJsZVRlbXBsYXRlLmNvbHVtbnMpIHtcclxuICAgICAgLy8gVXBkYXRlIGRvbWFpbiBsaXN0XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2xpc3QnIHx8IGNvbHVtbi50eXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xyXG4gICAgICAgIHRoaXMuZ2V0RG9tYWluVmFsdWVzKGNvbHVtbi5yZWxhdGlvbikuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGNvbHVtbi5kb21haW5WYWx1ZXMgPSByZXN1bHQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZpbmQgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmZWF0dXJlLnByb3BlcnRpZXMpIHtcclxuICAgICAgICAgIGxldCBjb2x1bW5OYW1lID0gY29sdW1uLm5hbWU7XHJcbiAgICAgICAgICBpZiAoY29sdW1uTmFtZS5pbmNsdWRlcygncHJvcGVydGllcy4nKSkge1xyXG4gICAgICAgICAgICBjb2x1bW5OYW1lID0gY29sdW1uTmFtZS5zcGxpdCgnLicpWzFdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGNvbHVtbk5hbWUgPT09IHByb3BlcnR5ICYmIGNvbHVtbi5wcmltYXJ5ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGlkID0gZmVhdHVyZS5wcm9wZXJ0aWVzW3Byb3BlcnR5XTtcclxuICAgICAgICAgICAgZmluZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIGZlYXR1cmUub3JpZ2luYWxfcHJvcGVydGllcyA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoZmVhdHVyZS5wcm9wZXJ0aWVzKVxyXG4gICAgICApO1xyXG4gICAgICBmZWF0dXJlLm9yaWdpbmFsX2dlb21ldHJ5ID0gZmVhdHVyZS5nZW9tZXRyeTtcclxuICAgICAgZmVhdHVyZS5pZGtleSA9IGlkO1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgZWRpdDogZmFsc2UgfSk7XHJcbiAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZVZpZXcuZmlsdGVyKHRoaXMuZWRpdEZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jKTtcclxuICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gT25seSBmb3IgZWRpdGlvbiB3aXRoIGl0J3Mgb3duIGdlb21ldHJ5XHJcbiAgICAgIGlmICghZmVhdHVyZS5uZXdGZWF0dXJlICYmIGVkaXRpb25PcHQuZ2VvbVR5cGUpIHtcclxuICAgICAgICBmZWF0dXJlLm5ld0ZlYXR1cmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWRkaW5nJC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHdvcmtzcGFjZS5lbnRpdHlTdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBuZXdGZWF0dXJlOiBmYWxzZSB9KTtcclxuICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGVWaWV3LmZpbHRlcih0aGlzLm5ld0ZlYXR1cmVmaWx0ZXJDbGF1c2VGdW5jKTtcclxuICAgICAgICBpZiAoZWRpdGlvbk9wdC5hZGRXaXRoRHJhdykge1xyXG4gICAgICAgICAgY29uc3QgZ2VvbWV0cnlUeXBlID0gZWRpdGlvbk9wdC5nZW9tVHlwZTtcclxuICAgICAgICAgIHRoaXMub25HZW9tZXRyeVR5cGVDaGFuZ2UoZ2VvbWV0cnlUeXBlLCBmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuaW5zZXJ0KGZlYXR1cmUpO1xyXG4gICAgICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShcclxuICAgICAgICAgICAgZmVhdHVyZSxcclxuICAgICAgICAgICAgeyBuZXdGZWF0dXJlOiB0cnVlIH0sXHJcbiAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBEcmF3IENvbnRyb2xcclxuICAgKiBAcGFyYW0gZmlsbENvbG9yIHRoZSBmaWxsIGNvbG9yXHJcbiAgICogQHBhcmFtIHN0cm9rZUNvbG9yIHRoZSBzdHJva2UgY29sb3JcclxuICAgKiBAcGFyYW0gc3Ryb2tlV2lkdGggdGhlIHN0cm9rZSB3aWR0aFxyXG4gICAqIEByZXR1cm5zIGEgRHJhdyBDb250cm9sXHJcbiAgICovXHJcbiAgY3JlYXRlRHJhd0NvbnRyb2woXHJcbiAgICBmaWxsQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBzdHJva2VDb2xvcj86IHN0cmluZyxcclxuICAgIHN0cm9rZVdpZHRoPzogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICBjb25zdCBkcmF3Q29udHJvbCA9IG5ldyBEcmF3Q29udHJvbCh7XHJcbiAgICAgIGdlb21ldHJ5VHlwZTogdW5kZWZpbmVkLFxyXG4gICAgICBkcmF3aW5nTGF5ZXJTb3VyY2U6IHRoaXMub2xEcmF3aW5nTGF5ZXJTb3VyY2UsXHJcbiAgICAgIGRyYXdpbmdMYXllclN0eWxlOiBuZXcgT2xTdHlsZS5TdHlsZSh7fSksXHJcbiAgICAgIGludGVyYWN0aW9uU3R5bGU6IGNyZWF0ZUludGVyYWN0aW9uU3R5bGUoXHJcbiAgICAgICAgZmlsbENvbG9yLFxyXG4gICAgICAgIHN0cm9rZUNvbG9yLFxyXG4gICAgICAgIHN0cm9rZVdpZHRoXHJcbiAgICAgIClcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkcmF3Q29udHJvbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBuZXcgZ2VvbWV0cnkgdHlwZVxyXG4gICAqIEBwYXJhbSBnZW9tZXRyeVR5cGUgdGhlIGdlb21ldHJ5IHR5cGUgc2VsZWN0ZWQgYnkgdGhlIHVzZXJcclxuICAgKi9cclxuICBvbkdlb21ldHJ5VHlwZUNoYW5nZShcclxuICAgIGdlb21ldHJ5VHlwZTogVHlwZSxcclxuICAgIGZlYXR1cmUsXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2VcclxuICApIHtcclxuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0R2VvbWV0cnlUeXBlKGdlb21ldHJ5VHlwZSk7XHJcbiAgICB0aGlzLnRvZ2dsZURyYXdDb250cm9sKGZlYXR1cmUsIHdvcmtzcGFjZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSB0aGUgY29ycmVjdCBjb250cm9sXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0b2dnbGVEcmF3Q29udHJvbChmZWF0dXJlLCB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2UpIHtcclxuICAgIHRoaXMuZGVhY3RpdmF0ZURyYXdDb250cm9sKCk7XHJcbiAgICB0aGlzLmFjdGl2YXRlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlYWN0aXZhdGUgdGhlIGFjdGl2ZSBkcmF3IGNvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgZGVhY3RpdmF0ZURyYXdDb250cm9sKCkge1xyXG4gICAgaWYgKCF0aGlzLmRyYXdDb250cm9sKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kcmF3RW5kJCQpIHtcclxuICAgICAgdGhpcy5kcmF3RW5kJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRyYXdDb250cm9sLnNldE9sTWFwKHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSBhIGdpdmVuIGNvbnRyb2xcclxuICAgKi9cclxuICBwcml2YXRlIGFjdGl2YXRlRHJhd0NvbnRyb2woZmVhdHVyZSwgd29ya3NwYWNlOiBFZGl0aW9uV29ya3NwYWNlKSB7XHJcbiAgICB0aGlzLmRyYXdFbmQkJCA9IHRoaXMuZHJhd0NvbnRyb2wuZW5kJC5zdWJzY3JpYmUoXHJcbiAgICAgIChvbEdlb21ldHJ5OiBPbEdlb21ldHJ5KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UsIG9sR2VvbWV0cnkpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuZHJhd0NvbnRyb2wuc2V0T2xNYXAodGhpcy5tYXAub2wsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgZmVhdHVyZSB0byBsYXllci4gVGhlIGxvYWRpbmcgc3RyYXRlZ3kgb2YgdGhlIGxheWVyXHJcbiAgICogd2lsbCB0cmlnZ2VyIGFuZCBhZGQgdGhlIGZlYXR1cmUgdG8gdGhlIHdvcmtzcGFjZSBzdG9yZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcml2YXRlIGFkZEZlYXR1cmVUb1N0b3JlKFxyXG4gICAgZmVhdHVyZSxcclxuICAgIHdvcmtzcGFjZTogRWRpdGlvbldvcmtzcGFjZSxcclxuICAgIG9sR2VvbWV0cnk/OiBPbEdlb21ldHJ5XHJcbiAgKSB7XHJcbiAgICBjb25zdCBwcm9qZWN0aW9uID0gdGhpcy5tYXAub2wuZ2V0VmlldygpLmdldFByb2plY3Rpb24oKTtcclxuICAgIGxldCBnZW9tZXRyeSA9IGZlYXR1cmUuZ2VvbWV0cnk7XHJcblxyXG4gICAgLy8gSWYgYW4gb2xHZW9tZXRyeSBpcyBwYXNzZWQsIGl0IG1lYW5zIHRoYXQgaXQgaXMgYSBuZXcgZmVhdHVyZVxyXG4gICAgaWYgKG9sR2VvbWV0cnkpIHtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLmluc2VydChmZWF0dXJlKTtcclxuICAgICAgd29ya3NwYWNlLmVudGl0eVN0b3JlLnN0YXRlLnVwZGF0ZShmZWF0dXJlLCB7IG5ld0ZlYXR1cmU6IHRydWUgfSwgdHJ1ZSk7XHJcbiAgICAgIGdlb21ldHJ5ID0gbmV3IE9sR2VvSlNPTigpLndyaXRlR2VvbWV0cnlPYmplY3Qob2xHZW9tZXRyeSwge1xyXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uLFxyXG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2J1xyXG4gICAgICB9KSBhcyBhbnk7XHJcblxyXG4gICAgICBmZWF0dXJlLmdlb21ldHJ5ID0gZ2VvbWV0cnk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3b3Jrc3BhY2UuZW50aXR5U3RvcmUuc3RhdGUudXBkYXRlKGZlYXR1cmUsIHsgZWRpdDogdHJ1ZSB9LCB0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBmZWF0dXJlLnByb2plY3Rpb24gPSAnRVBTRzo0MzI2JztcclxuXHJcbiAgICBjb25zdCBmZWF0dXJlT2wgPSBmZWF0dXJlVG9PbChmZWF0dXJlLCBwcm9qZWN0aW9uLmdldENvZGUoKSk7XHJcblxyXG4gICAgdGhpcy5vbERyYXdpbmdMYXllci5kYXRhU291cmNlLm9sLmNsZWFyKCk7XHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyLmRhdGFTb3VyY2Uub2wuYWRkRmVhdHVyZShmZWF0dXJlT2wpO1xyXG4gICAgdGhpcy5tYXAuYWRkTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XHJcblxyXG4gICAgdGhpcy5kZWFjdGl2YXRlRHJhd0NvbnRyb2woKTtcclxuICAgIHRoaXMuY3JlYXRlTW9kaWZ5SW50ZXJhY3Rpb24oZmVhdHVyZU9sLCBmZWF0dXJlLCB3b3Jrc3BhY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGRyYXdpbmdzIGxheWVyIGFuZCBzb3VyY2UgZnJvbSB0aGUgbWFwIEFORCBmZWF0dXJlIGZyb20gdGhlIGVudGl0eSBzdG9yZS5cclxuICAgKiBMYXllciByZWZyZXNoIHdpbGwgYXV0b21hdGljYWxseSBhZGQgdGhlIG5ldyBmZWF0dXJlIGludG8gdGhlIHN0b3JlLlxyXG4gICAqL1xyXG4gIGRlbGV0ZURyYXdpbmdzKCkge1xyXG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIodGhpcy5vbERyYXdpbmdMYXllcik7XHJcbiAgICB0aGlzLm9sRHJhd2luZ0xheWVyU291cmNlLmNsZWFyKCk7XHJcbiAgICB0aGlzLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbih0aGlzLm1vZGlmeSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBtb2RpZnkgaW50ZXJhY3Rpb24gdG8gYWxsb3cgYSBnZW9tZXRyeSBjaGFuZ2Ugb25lIGZlYXR1cmUgYXQgdGhlIHRpbWUgKGRyYWcgYW5kIGRyb3ApXHJcbiAgICovXHJcbiAgY3JlYXRlTW9kaWZ5SW50ZXJhY3Rpb24oXHJcbiAgICBvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PixcclxuICAgIGZlYXR1cmUsXHJcbiAgICB3b3Jrc3BhY2U6IEVkaXRpb25Xb3Jrc3BhY2VcclxuICApIHtcclxuICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMubW9kaWZ5KTtcclxuICAgIGNvbnN0IG9sQ29sbGVjdGlvbiA9IG5ldyBDb2xsZWN0aW9uKFtvbEZlYXR1cmVdLCB7IHVuaXF1ZTogdHJ1ZSB9KTtcclxuICAgIHRoaXMubW9kaWZ5ID0gbmV3IE9sTW9kaWZ5KHtcclxuICAgICAgZmVhdHVyZXM6IG9sQ29sbGVjdGlvblxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5tb2RpZnkpO1xyXG4gICAgb2xDb2xsZWN0aW9uLmZvckVhY2goKGZlYXR1cmUpID0+IHtcclxuICAgICAgZmVhdHVyZS5zZXRTdHlsZSh0aGlzLm1vZGlmeVN0eWxlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubW9kaWZ5Lm9uKCdtb2RpZnllbmQnLCAoZXZlbnQpID0+IHtcclxuICAgICAgY29uc3Qgb2xHZW9tZXRyeSA9IGV2ZW50LmZlYXR1cmVzLmdldEFycmF5KClbMF0/LmdldEdlb21ldHJ5KCk7XHJcbiAgICAgIGlmIChvbEdlb21ldHJ5KSB7XHJcbiAgICAgICAgdGhpcy5hZGRGZWF0dXJlVG9TdG9yZShmZWF0dXJlLCB3b3Jrc3BhY2UsIG9sR2VvbWV0cnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
|