@igo2/geo 1.14.2 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/icons/cross_black_18px.svg +88 -88
- package/assets/icons/place_blue_36px.svg +55 -55
- package/assets/icons/place_green_36px.svg +55 -55
- package/assets/icons/place_red_36px.svg +55 -55
- package/assets/icons/place_yellow_36px.svg +55 -55
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +13 -11
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +10 -10
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +20 -17
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
- package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
- package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
- package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +7 -12
- package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
- package/esm2020/lib/catalog/catalog.module.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.service.mjs +3 -5
- package/esm2020/lib/datasource/datasource.module.mjs +1 -1
- package/esm2020/lib/datasource/shared/capabilities.service.mjs +2 -2
- package/esm2020/lib/datasource/shared/datasource.service.mjs +27 -31
- package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/data.service.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +1 -1
- package/esm2020/lib/datasource/shared/options/options-api.service.mjs +1 -1
- package/esm2020/lib/datasource/shared/options/options.service.mjs +1 -1
- package/esm2020/lib/datasource/utils/index.mjs +1 -2
- package/esm2020/lib/datasource/utils/tilegrid.mjs +1 -1
- package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -10
- package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
- package/esm2020/lib/directions/directions-results/directions-results.component.mjs +2 -2
- package/esm2020/lib/directions/directions-sources/directions-source.mjs +1 -1
- package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
- package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
- package/esm2020/lib/directions/directions.component.mjs +2 -2
- package/esm2020/lib/directions/directions.module.mjs +1 -1
- package/esm2020/lib/directions/shared/directions-source.service.mjs +1 -1
- package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2020/lib/directions/shared/directions.service.mjs +1 -1
- package/esm2020/lib/directions/shared/directions.utils.mjs +2 -2
- package/esm2020/lib/directions/shared/store.mjs +1 -1
- package/esm2020/lib/download/download-button/download-button.component.mjs +2 -2
- package/esm2020/lib/download/download.module.mjs +1 -1
- package/esm2020/lib/download/shared/download.interface.mjs +1 -1
- package/esm2020/lib/download/shared/download.service.mjs +5 -8
- package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
- package/esm2020/lib/draw/draw/draw-popup.component.mjs +3 -3
- package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
- package/esm2020/lib/draw/draw/draw.component.mjs +11 -10
- package/esm2020/lib/draw/draw/draw.module.mjs +1 -1
- package/esm2020/lib/draw/drawingTool.module.mjs +1 -1
- package/esm2020/lib/draw/shared/draw-icon.service.mjs +1 -1
- package/esm2020/lib/draw/shared/draw.enum.mjs +1 -17
- package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2020/lib/draw/shared/draw.utils.mjs +1 -1
- package/esm2020/lib/draw/shared/index.mjs +1 -2
- package/esm2020/lib/feature/feature-details/feature-details.component.mjs +4 -5
- package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +1 -1
- package/esm2020/lib/feature/feature-details/feature-details.module.mjs +1 -1
- package/esm2020/lib/feature/feature-form/feature-form.component.mjs +2 -2
- package/esm2020/lib/feature/feature-form/feature-form.module.mjs +1 -1
- package/esm2020/lib/feature/feature.module.mjs +1 -1
- package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2020/lib/feature/shared/feature.utils.mjs +7 -5
- package/esm2020/lib/feature/shared/store.mjs +10 -1
- package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies/index.mjs +2 -1
- package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies/loading.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies/search.mjs +150 -0
- package/esm2020/lib/feature/shared/strategies/selection.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies.utils.mjs +1 -1
- package/esm2020/lib/filter/filter.module.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
- package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.service.mjs +1 -1
- package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +1 -1
- package/esm2020/lib/filter/shared/spatial-filter.service.mjs +1 -1
- package/esm2020/lib/filter/shared/time-filter.enum.mjs +1 -1
- package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/time-filter.service.mjs +1 -1
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +5 -5
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +6 -7
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
- package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
- package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
- package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
- package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
- package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
- package/esm2020/lib/geo.module.mjs +5 -1
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +13 -12
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
- package/esm2020/lib/geometry/geometry.module.mjs +1 -1
- package/esm2020/lib/geometry/shared/controls/draw.mjs +1 -1
- package/esm2020/lib/geometry/shared/controls/modify.mjs +1 -1
- package/esm2020/lib/geometry/shared/controls/slice.mjs +1 -1
- package/esm2020/lib/geometry/shared/geometry.errors.mjs +1 -1
- package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2020/lib/geometry/shared/geometry.utils.mjs +1 -1
- package/esm2020/lib/import-export/export-button/export-button.component.mjs +2 -2
- package/esm2020/lib/import-export/import-export/import-export.component.mjs +53 -45
- package/esm2020/lib/import-export/import-export.module.mjs +5 -9
- package/esm2020/lib/import-export/index.mjs +1 -2
- package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +31 -14
- package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/export.service.mjs +1 -1
- package/esm2020/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2020/lib/import-export/shared/export.utils.mjs +8 -17
- package/esm2020/lib/import-export/shared/import.errors.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.service.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.utils.mjs +58 -91
- package/esm2020/lib/layer/index.mjs +1 -2
- package/esm2020/lib/layer/layer-item/layer-item.component.mjs +2 -2
- package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
- package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
- package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
- package/esm2020/lib/layer/layer-list/layer-list.component.mjs +2 -2
- package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +1 -1
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
- package/esm2020/lib/layer/layer.module.mjs +6 -11
- package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2020/lib/layer/shared/index.mjs +1 -3
- package/esm2020/lib/layer/shared/layer.service.mjs +80 -29
- package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/image-layer.mjs +6 -7
- package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/layer.mjs +5 -3
- package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vector-layer.mjs +153 -6
- package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
- package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
- package/esm2020/lib/layer/utils/image-watcher.mjs +3 -6
- package/esm2020/lib/layer/utils/layer.utils.mjs +2 -2
- package/esm2020/lib/layer/utils/outputLegend.mjs +3 -2
- package/esm2020/lib/layer/utils/tile-watcher.mjs +1 -1
- package/esm2020/lib/layer/utils/vector-watcher.mjs +1 -1
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
- package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
- package/esm2020/lib/map/info-section/info-section.component.mjs +2 -2
- package/esm2020/lib/map/map-browser/map-browser.component.mjs +3 -3
- package/esm2020/lib/map/map-center/map-center.component.mjs +2 -2
- package/esm2020/lib/map/map.module.mjs +1 -1
- package/esm2020/lib/map/menu-button/menu-button.component.mjs +3 -3
- package/esm2020/lib/map/offline-button/offline-button.component.mjs +34 -57
- package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +2 -2
- package/esm2020/lib/map/shared/controllers/controller.mjs +1 -1
- package/esm2020/lib/map/shared/controllers/geolocation.mjs +151 -36
- package/esm2020/lib/map/shared/controllers/view.mjs +1 -1
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +24 -73
- package/esm2020/lib/map/shared/linkedLayers.utils.mjs +3 -3
- package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +1 -1
- package/esm2020/lib/map/shared/map.interface.mjs +1 -1
- package/esm2020/lib/map/shared/map.mjs +7 -5
- package/esm2020/lib/map/shared/map.service.mjs +1 -1
- package/esm2020/lib/map/shared/map.utils.mjs +1 -1
- package/esm2020/lib/map/shared/mapOffline.directive.mjs +50 -115
- package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
- package/esm2020/lib/map/shared/projection.service.mjs +1 -1
- package/esm2020/lib/map/shared/projection.utils.mjs +1 -1
- package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +3 -3
- package/esm2020/lib/map/utils/layer-watcher.mjs +1 -1
- package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +24 -35
- package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +2 -2
- package/esm2020/lib/measure/measure.module.mjs +1 -1
- package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +1 -1
- package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
- package/esm2020/lib/measure/measurer/measurer-item.component.mjs +2 -2
- package/esm2020/lib/measure/measurer/measurer.component.mjs +2 -2
- package/esm2020/lib/measure/measurer/measurer.module.mjs +1 -1
- package/esm2020/lib/measure/shared/measure.enum.mjs +1 -1
- package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2020/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
- package/esm2020/lib/metadata/metadata.module.mjs +1 -1
- package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2020/lib/metadata/shared/metadata.service.mjs +1 -1
- package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +4 -4
- package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +1 -1
- package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2020/lib/offline/geoDB/geoDB.service.mjs +2 -2
- package/esm2020/lib/offline/index.mjs +2 -1
- package/esm2020/lib/offline/layerDB/index.mjs +3 -0
- package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +2 -0
- package/esm2020/lib/offline/layerDB/layerDB.service.mjs +76 -0
- package/esm2020/lib/offline/shared/geo-network.service.mjs +1 -1
- package/esm2020/lib/overlay/overlay.module.mjs +1 -1
- package/esm2020/lib/overlay/shared/index.mjs +1 -2
- package/esm2020/lib/overlay/shared/overlay.directive.mjs +1 -1
- package/esm2020/lib/overlay/shared/overlay.enum.mjs +1 -1
- package/esm2020/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2020/lib/overlay/shared/overlay.service.mjs +1 -1
- package/esm2020/lib/overlay/shared/overlay.utils.mjs +2 -88
- package/esm2020/lib/print/print/print.component.mjs +6 -20
- package/esm2020/lib/print/print-form/print-form.component.mjs +197 -111
- package/esm2020/lib/print/print.module.mjs +1 -1
- package/esm2020/lib/print/shared/geopdf.mjs +1 -1
- package/esm2020/lib/print/shared/index.mjs +1 -1
- package/esm2020/lib/print/shared/print.interface.mjs +1 -1
- package/esm2020/lib/print/shared/print.service.mjs +85 -35
- package/esm2020/lib/print/shared/print.type.mjs +1 -1
- package/esm2020/lib/query/query.module.mjs +1 -1
- package/esm2020/lib/query/shared/query-search-source.mjs +1 -1
- package/esm2020/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2020/lib/query/shared/query.directive.mjs +1 -1
- package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2020/lib/query/shared/query.service.mjs +3 -5
- package/esm2020/lib/query/shared/query.utils.mjs +1 -1
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +3 -3
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
- package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +1 -1
- package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +4 -4
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +88 -31
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +36 -13
- package/esm2020/lib/search/search-results/search-results.component.mjs +172 -58
- package/esm2020/lib/search/search-results/search-results.module.mjs +5 -1
- package/esm2020/lib/search/search-selector/search-selector.component.mjs +2 -2
- package/esm2020/lib/search/search-selector/search-selector.module.mjs +1 -1
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +2 -2
- package/esm2020/lib/search/search-settings/search-settings.module.mjs +1 -1
- package/esm2020/lib/search/search.module.mjs +1 -1
- package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +3 -30
- package/esm2020/lib/search/shared/search-source-service.providers.mjs +1 -1
- package/esm2020/lib/search/shared/search-source.service.mjs +9 -1
- package/esm2020/lib/search/shared/search.enums.mjs +1 -1
- package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/search.service.mjs +1 -1
- package/esm2020/lib/search/shared/search.utils.mjs +3 -3
- package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/coordinates.mjs +1 -1
- package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +4 -4
- package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/icherche.mjs +1 -1
- package/esm2020/lib/search/shared/sources/icherche.providers.mjs +1 -1
- package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/ilayer.mjs +1 -1
- package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +1 -1
- package/esm2020/lib/search/shared/sources/index.mjs +4 -1
- package/esm2020/lib/search/shared/sources/nominatim.mjs +2 -2
- package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +1 -1
- package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/source.mjs +31 -1
- package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/storedqueries.mjs +1 -1
- package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
- package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/sources/workspace.mjs +186 -0
- package/esm2020/lib/search/shared/sources/workspace.providers.mjs +26 -0
- package/esm2020/lib/style/index.mjs +5 -0
- package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +357 -0
- package/esm2020/lib/style/shared/datasource/index.mjs +2 -0
- package/esm2020/lib/style/shared/feature/feature-style.mjs +141 -0
- package/esm2020/lib/style/shared/feature/index.mjs +2 -0
- package/esm2020/lib/style/shared/font.enum.mjs +17 -0
- package/esm2020/lib/style/shared/index.mjs +5 -0
- package/esm2020/lib/style/shared/overlay/index.mjs +3 -0
- package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +43 -0
- package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
- package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +75 -0
- package/esm2020/lib/style/shared/vector/conversion.utils.mjs +27 -0
- package/esm2020/lib/style/shared/vector/index.mjs +4 -0
- package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +2 -0
- package/esm2020/lib/style/style-list/index.mjs +5 -0
- package/esm2020/lib/style/style-list/style-list.interface.mjs +2 -0
- package/esm2020/lib/style/style-list/style-list.module.mjs +23 -0
- package/esm2020/lib/style/style-list/style-list.provider.mjs +21 -0
- package/esm2020/lib/style/style-list/style-list.service.mjs +51 -0
- package/esm2020/lib/style/style-modal/drawing/index.mjs +2 -0
- package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +288 -0
- package/esm2020/lib/style/style-modal/index.mjs +5 -0
- package/esm2020/lib/style/style-modal/layer/index.mjs +2 -0
- package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +187 -0
- package/esm2020/lib/style/style-modal/layer-button/index.mjs +2 -0
- package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +44 -0
- package/esm2020/lib/style/style-modal/shared/index.mjs +2 -0
- package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
- package/esm2020/lib/style/style-service/draw-style.service.mjs +187 -0
- package/esm2020/lib/style/style-service/index.mjs +3 -0
- package/esm2020/lib/style/style-service/style.service.mjs +356 -0
- package/esm2020/lib/style/style.module.mjs +74 -0
- package/esm2020/lib/toast/toast.component.mjs +3 -3
- package/esm2020/lib/toast/toast.module.mjs +1 -1
- package/esm2020/lib/utils/id-generator.mjs +1 -1
- package/esm2020/lib/utils/index.mjs +1 -3
- package/esm2020/lib/wkt/shared/wkt.service.mjs +15 -15
- package/esm2020/lib/wkt/wkt.module.mjs +1 -1
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
- package/esm2020/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2020/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +19 -34
- package/esm2020/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +10 -3
- package/esm2020/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +2 -2
- package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +3 -3
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
- package/esm2020/lib/workspace/widgets/widgets.mjs +1 -1
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
- package/esm2020/lib/workspace/workspace.module.mjs +1 -1
- package/esm2020/public_api.mjs +3 -1
- package/fesm2015/igo2-geo.mjs +6644 -5300
- package/fesm2015/igo2-geo.mjs.map +1 -1
- package/fesm2020/igo2-geo.mjs +7429 -6157
- package/fesm2020/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +5 -14
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +2 -5
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +3 -9
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -3
- package/lib/catalog/shared/catalog.interface.d.ts +10 -0
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +13 -0
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +5 -0
- package/lib/datasource/utils/index.d.ts +0 -1
- package/lib/download/shared/download.service.d.ts +2 -3
- package/lib/draw/draw/draw.component.d.ts +3 -2
- package/lib/draw/shared/draw.enum.d.ts +0 -15
- package/lib/draw/shared/index.d.ts +0 -1
- package/lib/feature/shared/feature.interfaces.d.ts +5 -0
- package/lib/feature/shared/feature.utils.d.ts +4 -2
- package/lib/feature/shared/store.d.ts +7 -0
- package/lib/feature/shared/strategies/index.d.ts +1 -0
- package/lib/feature/shared/strategies/search.d.ts +55 -0
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +2 -3
- package/lib/geo.module.d.ts +3 -2
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +5 -9
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +3 -3
- package/lib/import-export/import-export/import-export.component.d.ts +9 -4
- package/lib/import-export/import-export.module.d.ts +1 -2
- package/lib/import-export/index.d.ts +0 -1
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +10 -7
- package/lib/import-export/shared/export.utils.d.ts +4 -4
- package/lib/import-export/shared/import.interface.d.ts +2 -0
- package/lib/import-export/shared/import.utils.d.ts +14 -12
- package/lib/layer/index.d.ts +0 -1
- package/lib/layer/layer.module.d.ts +19 -20
- package/lib/layer/shared/index.d.ts +0 -2
- package/lib/layer/shared/layer.service.d.ts +8 -5
- package/lib/layer/shared/layers/image-layer.d.ts +2 -3
- package/lib/layer/shared/layers/layer.d.ts +5 -1
- package/lib/layer/shared/layers/layer.interface.d.ts +2 -0
- package/lib/layer/shared/layers/vector-layer.d.ts +18 -2
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +8 -7
- package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +2 -4
- package/lib/layer/utils/image-watcher.d.ts +2 -3
- package/lib/map/offline-button/offline-button.component.d.ts +10 -18
- package/lib/map/shared/controllers/geolocation.d.ts +17 -2
- package/lib/map/shared/hover-feature.directive.d.ts +2 -10
- package/lib/map/shared/map.d.ts +2 -2
- package/lib/map/shared/mapOffline.directive.d.ts +4 -7
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +3 -6
- package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
- package/lib/offline/index.d.ts +1 -0
- package/lib/offline/layerDB/index.d.ts +2 -0
- package/lib/offline/layerDB/layerDB.interface.d.ts +7 -0
- package/lib/offline/layerDB/layerDB.service.d.ts +36 -0
- package/lib/overlay/shared/index.d.ts +0 -1
- package/lib/overlay/shared/overlay.utils.d.ts +0 -11
- package/lib/print/print-form/print-form.component.d.ts +2 -0
- package/lib/print/shared/print.service.d.ts +6 -0
- package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
- package/lib/search/search-results/search-results-add-button.component.d.ts +10 -2
- package/lib/search/search-results/search-results-item.component.d.ts +5 -0
- package/lib/search/search-results/search-results.component.d.ts +5 -1
- package/lib/search/search-results/search-results.module.d.ts +11 -10
- package/lib/search/shared/search-pointer-summary.directive.d.ts +0 -9
- package/lib/search/shared/search-source.service.d.ts +7 -0
- package/lib/search/shared/search.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/coordinates.providers.d.ts +3 -3
- package/lib/search/shared/sources/index.d.ts +3 -0
- package/lib/search/shared/sources/source.d.ts +6 -0
- package/lib/search/shared/sources/workspace.d.ts +33 -0
- package/lib/search/shared/sources/workspace.interfaces.d.ts +9 -0
- package/lib/search/shared/sources/workspace.providers.d.ts +17 -0
- package/lib/style/index.d.ts +4 -0
- package/lib/style/shared/datasource/index.d.ts +1 -0
- package/lib/style/shared/feature/feature-style.d.ts +18 -0
- package/lib/style/shared/feature/index.d.ts +1 -0
- package/lib/style/shared/font.enum.d.ts +15 -0
- package/lib/style/shared/index.d.ts +4 -0
- package/lib/style/shared/overlay/index.d.ts +2 -0
- package/lib/style/shared/overlay/overlay-style.utils.d.ts +19 -0
- package/lib/{utils → style/shared/vector}/commonVectorStyle.d.ts +4 -4
- package/lib/style/shared/vector/conversion.utils.d.ts +22 -0
- package/lib/style/shared/vector/index.d.ts +3 -0
- package/lib/style/shared/vector/vector-style.interface.d.ts +69 -0
- package/lib/style/style-modal/drawing/index.d.ts +1 -0
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +31 -0
- package/lib/style/style-modal/index.d.ts +4 -0
- package/lib/style/style-modal/layer/index.d.ts +1 -0
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +30 -0
- package/lib/style/style-modal/layer-button/index.d.ts +1 -0
- package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +14 -0
- package/lib/style/style-modal/shared/index.d.ts +1 -0
- package/lib/style/style-modal/shared/style-modal.interface.d.ts +17 -0
- package/lib/{draw/shared → style/style-service}/draw-style.service.d.ts +3 -4
- package/lib/style/style-service/index.d.ts +2 -0
- package/lib/{layer/shared → style/style-service}/style.service.d.ts +5 -5
- package/lib/style/style.module.d.ts +22 -0
- package/lib/utils/index.d.ts +0 -2
- package/lib/workspace/shared/edition-workspace.service.d.ts +3 -4
- package/lib/workspace/shared/wms-workspace.service.d.ts +1 -1
- package/ngcc.config.js +3 -3
- package/package.json +17 -11
- package/public_api.d.ts +2 -0
- package/style/geo.theming.scss +12 -12
- package/esm2020/lib/datasource/utils/esri-style-generator.mjs +0 -357
- package/esm2020/lib/draw/shared/draw-style.service.mjs +0 -190
- package/esm2020/lib/import-export/style-list/index.mjs +0 -5
- package/esm2020/lib/import-export/style-list/style-list.interface.mjs +0 -2
- package/esm2020/lib/import-export/style-list/style-list.module.mjs +0 -23
- package/esm2020/lib/import-export/style-list/style-list.provider.mjs +0 -21
- package/esm2020/lib/import-export/style-list/style-list.service.mjs +0 -51
- package/esm2020/lib/layer/shared/style.service.mjs +0 -356
- package/esm2020/lib/layer/shared/vector-style.interface.mjs +0 -2
- package/esm2020/lib/layer/style-modal/index.mjs +0 -2
- package/esm2020/lib/layer/style-modal/style-modal.component.mjs +0 -288
- package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +0 -69
- package/esm2020/lib/utils/commonVectorStyle.interface.mjs +0 -2
- package/esm2020/lib/utils/commonVectorStyle.mjs +0 -75
- package/lib/layer/shared/vector-style.interface.d.ts +0 -38
- package/lib/layer/style-modal/index.d.ts +0 -1
- package/lib/layer/style-modal/style-modal.component.d.ts +0 -42
- package/lib/utils/commonVectorStyle.interface.d.ts +0 -16
- /package/lib/{datasource/utils → style/shared/datasource}/esri-style-generator.d.ts +0 -0
- /package/lib/{overlay/shared → style/shared/overlay}/overlay-marker-style.utils.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/index.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/style-list.interface.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/style-list.module.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/style-list.provider.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/style-list.service.d.ts +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZXMuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zaGFyZWQvc291cmNlcy9jb29yZGluYXRlcy5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGludGVyZmFjZSBDb29yZGluYXRlc0RhdGEge1xyXG4gIGNvb3JkOiBbbnVtYmVyLCBudW1iZXJdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvb3JkaW5hdGVzUmVzcG9uc2Uge1xyXG4gIGZlYXR1cmVzOiBDb29yZGluYXRlc0RhdGFbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb29yZGluYXRlc1JldmVyc2VEYXRhIHtcclxuICBjb29yZDogW251bWJlciwgbnVtYmVyXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb29yZGluYXRlc1JldmVyc2VSZXNwb25zZSB7XHJcbiAgZmVhdHVyZXM6IENvb3JkaW5hdGVzRGF0YVtdO1xyXG59XHJcbiJdfQ==
|
|
@@ -150,4 +150,4 @@ __decorate([
|
|
|
150
150
|
type: Inject,
|
|
151
151
|
args: ['projections']
|
|
152
152
|
}] }]; }, { reverseSearch: [] }); })();
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvY29vcmRpbmF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsT0FBTyxFQUE0QixNQUFNLGtCQUFrQixDQUFDO0FBR3JFLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sVUFBVSxDQUFDO0FBSXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHekMsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBRyxDQUFDO0lBRXhELFlBQVksQ0FBQyxNQUE2QjtRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztnSEFMVSxnQ0FBZ0M7c0ZBQWhDLGdDQUFnQyxXQUFoQyxnQ0FBZ0M7dUZBQWhDLGdDQUFnQztjQUQ1QyxVQUFVOztB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QUFDLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ2xFLEtBQUssRUFBRSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxjQUFjO2lCQUNwSCxDQUNGO2dCQUNELElBQUksRUFBRTtvQkFDSixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO29CQUNqRCxLQUFLLEVBQUUsa0JBQWtCO2lCQUMxQjthQUNGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNqRCxLQUFLLEVBQUUsa0JBQWtCO2dCQUN6QixTQUFTLEVBQUUsa0JBQWtCLEdBQUcsWUFBWTtnQkFDNUMsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxHQUFHLEVBQUUscUJBQXFCO2FBQ2xDO1NBQ0YsQ0FBQztJQUNKLENBQUM7O0FBOUlNLGlDQUFFLEdBQUcsb0JBQW9CLENBQUM7QUFDMUIsbUNBQUksR0FBRyxPQUFPLENBQUM7NEdBSFgsOEJBQThCLGNBYy9CLFNBQVMsZ0ZBR1QsYUFBYTtvRkFqQlosOEJBQThCLFdBQTlCLDhCQUE4QjtBQW1EekM7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDO21FQU9EO3VGQXpEVSw4QkFBOEI7Y0FEMUMsVUFBVTs7c0JBZU4sTUFBTTt1QkFBQyxTQUFTOztzQkFHaEIsTUFBTTt1QkFBQyxhQUFhO3dCQWtDdkIsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IHsgZnJvbUNpcmNsZSB9IGZyb20gJ29sL2dlb20vUG9seWdvbic7XG5pbXBvcnQgT2xDaXJjbGUgZnJvbSAnb2wvZ2VvbS9DaXJjbGUnO1xuaW1wb3J0ICogYXMgb2xmb3JtYXQgZnJvbSAnb2wvZm9ybWF0JztcblxuaW1wb3J0IHsgRkVBVFVSRSwgRmVhdHVyZSwgRmVhdHVyZUdlb21ldHJ5IH0gZnJvbSAnLi4vLi4vLi4vZmVhdHVyZSc7XG5cbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSwgUmV2ZXJzZVNlYXJjaCB9IGZyb20gJy4vc291cmNlJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZU9wdGlvbnMsIFJldmVyc2VTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi9zb3VyY2UuaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSwgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcbmltcG9ydCB7IEdvb2dsZUxpbmtzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZ29vZ2xlTGlua3MnO1xuaW1wb3J0IHsgUHJvamVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvcHJvamVjdGlvbi5pbnRlcmZhY2VzJztcbmltcG9ydCB7IGxvbkxhdENvbnZlcnNpb24sIHJvdW5kQ29vcmRUbywgY29udmVydEREVG9ETVMgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XG5pbXBvcnQgeyBPc21MaW5rcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IENhY2hlYWJsZSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlc1NlYXJjaFJlc3VsdEZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHt9XG5cbiAgZm9ybWF0UmVzdWx0KHJlc3VsdDogU2VhcmNoUmVzdWx0PEZlYXR1cmU+KTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+IHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4vKipcbiAqIENvb3JkaW5hdGVzUmV2ZXJzZSBzZWFyY2ggc291cmNlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlc1JldmVyc2VTZWFyY2hTb3VyY2UgZXh0ZW5kcyBTZWFyY2hTb3VyY2VcbiAgaW1wbGVtZW50cyBSZXZlcnNlU2VhcmNoIHtcbiAgc3RhdGljIGlkID0gJ2Nvb3JkaW5hdGVzcmV2ZXJzZSc7XG4gIHN0YXRpYyB0eXBlID0gRkVBVFVSRTtcblxuICBwcml2YXRlIHByb2plY3Rpb25zO1xuXG4gIHRpdGxlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRpdGxlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnb3B0aW9ucycpIG9wdGlvbnM6IFNlYXJjaFNvdXJjZU9wdGlvbnMsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgQEluamVjdCgncHJvamVjdGlvbnMnKSBwcm9qZWN0aW9uczogUHJvamVjdGlvbltdXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMsIHN0b3JhZ2VTZXJ2aWNlKTtcbiAgICB0aGlzLnByb2plY3Rpb25zID0gcHJvamVjdGlvbnM7XG4gICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UubGFuZ3VhZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnRpdGxlJC5uZXh0KHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMub3B0aW9ucy50aXRsZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ29vcmRpbmF0ZXNSZXZlcnNlU2VhcmNoU291cmNlLmlkO1xuICB9XG5cbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBDb29yZGluYXRlc1JldmVyc2VTZWFyY2hTb3VyY2UudHlwZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0T3B0aW9ucygpOiBTZWFyY2hTb3VyY2VPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5jb29yZGluYXRlcy5uYW1lJyxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgc2hvd0luU2V0dGluZ3M6IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2ggYSBsb2NhdGlvbiBieSBjb29yZGluYXRlc1xuICAgKiBAcGFyYW0gbG9uTGF0IExvY2F0aW9uIGNvb3JkaW5hdGVzXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgb2YgUmV2ZXJzZVNlYXJjaE9wdGlvbnMgKGRpc3RhbmNlLCBjb25mLCB6b29tLCBwYXJhbXMpXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgPFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdXG4gICAqL1xuICBAQ2FjaGVhYmxlKHtcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxuICB9KVxuICByZXZlcnNlU2VhcmNoKFxuICAgIGxvbkxhdDogW251bWJlciwgbnVtYmVyXSxcbiAgICBvcHRpb25zPzogUmV2ZXJzZVNlYXJjaE9wdGlvbnMsXG4gICAgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQ/OiBib29sZWFuXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PEZlYXR1cmU+W10+IHtcbiAgICByZXR1cm4gb2YoW3RoaXMuZGF0YVRvUmVzdWx0KGxvbkxhdCwgb3B0aW9ucywgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQpXSk7XG4gIH1cblxuICBwcml2YXRlIGRhdGFUb1Jlc3VsdChkYXRhOiBbbnVtYmVyLCBudW1iZXJdLCBvcHRpb25zOiBSZXZlcnNlU2VhcmNoT3B0aW9ucyxcbiAgICByZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZDogYm9vbGVhbik6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPiB7XG5cbiAgICBjb25zdCBkYXRhRE1TID0gY29udmVydEREVG9ETVMoZGF0YSk7XG4gICAgY29uc3QgY29udmVydGVkQ29vcmQgPSBsb25MYXRDb252ZXJzaW9uKGRhdGEsIHRoaXMucHJvamVjdGlvbnMpO1xuICAgIGNvbnN0IGNvb3JkcyA9IGNvbnZlcnRlZENvb3JkLnJlZHVjZSgob2JqLCBpdGVtKSA9PiAoXG4gICAgICBvYmpbaXRlbS5hbGlhc10gPSBpdGVtLmlnbzJDb29yZEZvcm1hdCwgb2JqKSwge30pO1xuXG4gICAgY29uc3Qgcm91bmRlZENvb3JkU3RyaW5nID0gKCFyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCkgP1xuICAgICAgcm91bmRDb29yZFRvKGRhdGEsIDYpLmpvaW4oJywgJykgOiByb3VuZENvb3JkVG8oZGF0YSwgNikucmV2ZXJzZSgpLmpvaW4oJywgJyk7XG5cbiAgICBjb25zdCByb3VuZGVkQ29vcmRTdHJpbmdETVMgPSAoIXJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkKSA/XG4gICAgICBkYXRhRE1TLmpvaW4oJywgJykgOiBkYXRhRE1TLnJldmVyc2UoKS5qb2luKCcsICcpO1xuXG4gICAgbGV0IGdlb21ldHJ5OiBGZWF0dXJlR2VvbWV0cnkgPSB7XG4gICAgICB0eXBlOiAnUG9pbnQnLFxuICAgICAgY29vcmRpbmF0ZXM6IFtkYXRhWzBdLCBkYXRhWzFdXVxuICAgIH07XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0ge307XG4gICAgbGV0IHN1YnRpdGxlSHRtbCA9ICcnO1xuICAgIGlmIChvcHRpb25zLmRpc3RhbmNlKSB7XG4gICAgICBjb25zdCByYWRpdXNLZXkgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWFyY2guY29vcmRpbmF0ZXMucmFkaXVzJyk7XG4gICAgICBwcm9wZXJ0aWVzW3JhZGl1c0tleV0gPSBvcHRpb25zLmRpc3RhbmNlO1xuICAgICAgc3VidGl0bGVIdG1sID0gJzxicj48c21hbGw+UmF5b246ICcgKyBvcHRpb25zLmRpc3RhbmNlICsgJyBtPC9zbWFsbD4nO1xuXG4gICAgICAvLyBDcmVhdGUgcG9seWdvblxuICAgICAgY29uc3QgY2VudGVyID0gb2xwcm9qLnRyYW5zZm9ybShbZGF0YVswXSwgZGF0YVsxXV0sICdFUFNHOjQzMjYnLCAnRVBTRzozODU3Jyk7XG4gICAgICBjb25zdCBjaXJjbGVHZW9tZXRyeSA9IG5ldyBPbENpcmNsZShjZW50ZXIsIG9wdGlvbnMuZGlzdGFuY2UpO1xuICAgICAgY29uc3QgcG9seWdvbkdlb21ldHJ5ID0gZnJvbUNpcmNsZShjaXJjbGVHZW9tZXRyeSk7XG4gICAgICBjb25zdCB3cml0ZXIgPSBuZXcgb2xmb3JtYXQuR2VvSlNPTigpO1xuICAgICAgZ2VvbWV0cnkgPSBKU09OLnBhcnNlKHdyaXRlci53cml0ZUdlb21ldHJ5KHBvbHlnb25HZW9tZXRyeS50cmFuc2Zvcm0oJ0VQU0c6Mzg1NycsICdFUFNHOjQzMjYnKSkpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmNvbmYpIHtcbiAgICAgIGNvbnN0IGNvbmZLZXkgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWFyY2guY29vcmRpbmF0ZXMuY29uZicpO1xuICAgICAgcHJvcGVydGllc1tjb25mS2V5XSA9IG9wdGlvbnMuY29uZjtcbiAgICAgIHN1YnRpdGxlSHRtbCArPSBzdWJ0aXRsZUh0bWwgPT09ICcnID8gJzxicj4nIDogJzxzbWFsbD4gLSA8L3NtYWxsPic7XG4gICAgICBzdWJ0aXRsZUh0bWwgKz0gJzxzbWFsbD5Db25maWFuY2U6ICcgKyBvcHRpb25zLmNvbmYgKyAnJTwvc21hbGw+JztcbiAgICB9XG5cbiAgICBjb25zdCBjb29yZEtleSA9ICghcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQpID9cbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlYXJjaC5jb29yZGluYXRlcy5jb29yZCcpOlxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJldmVyc2VkQ29vcmQnKTtcbiAgICBwcm9wZXJ0aWVzW2Nvb3JkS2V5XSA9IHJvdW5kZWRDb29yZFN0cmluZztcblxuICAgIGNvbnN0IGNvb3JkS2V5RE1TID0gKCFyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCkgP1xuICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWFyY2guY29vcmRpbmF0ZXMuY29vcmRETVMnKTpcbiAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJldmVyc2VkQ29vcmRETVMnKTtcbiAgICBwcm9wZXJ0aWVzW2Nvb3JkS2V5RE1TXSA9IHJvdW5kZWRDb29yZFN0cmluZ0RNUztcblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6IHRoaXMsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHR5cGU6IEZFQVRVUkUsXG4gICAgICAgIHByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgICAgICBnZW9tZXRyeSxcbiAgICAgICAgZXh0ZW50OiB1bmRlZmluZWQsXG4gICAgICAgIHByb3BlcnRpZXM6IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICBjb29yZHMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgR29vZ2xlTWFwczogR29vZ2xlTGlua3MuZ2V0R29vZ2xlTWFwc0Nvb3JkTGluayhkYXRhWzBdLCBkYXRhWzFdKSxcbiAgICAgICAgICAgIEdvb2dsZVN0cmVldFZpZXc6IEdvb2dsZUxpbmtzLmdldEdvb2dsZVN0cmVldFZpZXdMaW5rKFxuICAgICAgICAgICAgICBkYXRhWzBdLFxuICAgICAgICAgICAgICBkYXRhWzFdXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgT3BlblN0cmVldE1hcDogT3NtTGlua3MuZ2V0T3BlblN0cmVldE1hcExpbmsoZGF0YVswXSwgZGF0YVsxXSwgMTQpLFxuICAgICAgICAgICAgUm91dGU6ICc8c3BhbiBjbGFzcz1cInJvdXRpbmdcIj4gPHU+JyArIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlZVJvdXRpbmcnKSArICc8L3U+IDwvc3Bhbj4nXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgaWQ6IGRhdGFbMF0udG9TdHJpbmcoKSArICcsJyArIGRhdGFbMV0udG9TdHJpbmcoKSxcbiAgICAgICAgICB0aXRsZTogcm91bmRlZENvb3JkU3RyaW5nXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBtZXRhOiB7XG4gICAgICAgIGRhdGFUeXBlOiBGRUFUVVJFLFxuICAgICAgICBpZDogZGF0YVswXS50b1N0cmluZygpICsgJywnICsgZGF0YVsxXS50b1N0cmluZygpLFxuICAgICAgICB0aXRsZTogcm91bmRlZENvb3JkU3RyaW5nLFxuICAgICAgICB0aXRsZUh0bWw6IHJvdW5kZWRDb29yZFN0cmluZyArIHN1YnRpdGxlSHRtbCxcbiAgICAgICAgaWNvbjogJ21hcC1tYXJrZXInLFxuICAgICAgICBzY29yZTogMTAwLCAvLyBldmVyeSBjb29yZCBleGlzdHNcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvY29vcmRpbmF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLFFBQVEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsT0FBTyxFQUE0QixNQUFNLGtCQUFrQixDQUFDO0FBR3JFLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sVUFBVSxDQUFDO0FBSXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFHekMsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBRyxDQUFDO0lBRXhELFlBQVksQ0FBQyxNQUE2QjtRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztnSEFMVSxnQ0FBZ0M7c0ZBQWhDLGdDQUFnQyxXQUFoQyxnQ0FBZ0M7dUZBQWhDLGdDQUFnQztjQUQ1QyxVQUFVOztB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QUFDLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ2xFLEtBQUssRUFBRSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsR0FBRyxjQUFjO2lCQUNwSCxDQUNGO2dCQUNELElBQUksRUFBRTtvQkFDSixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO29CQUNqRCxLQUFLLEVBQUUsa0JBQWtCO2lCQUMxQjthQUNGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNqRCxLQUFLLEVBQUUsa0JBQWtCO2dCQUN6QixTQUFTLEVBQUUsa0JBQWtCLEdBQUcsWUFBWTtnQkFDNUMsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxHQUFHLEVBQUUscUJBQXFCO2FBQ2xDO1NBQ0YsQ0FBQztJQUNKLENBQUM7O0FBOUlNLGlDQUFFLEdBQUcsb0JBQW9CLENBQUM7QUFDMUIsbUNBQUksR0FBRyxPQUFPLENBQUM7NEdBSFgsOEJBQThCLGNBYy9CLFNBQVMsZ0ZBR1QsYUFBYTtvRkFqQlosOEJBQThCLFdBQTlCLDhCQUE4Qjs7SUFnRHhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7bUVBT0Q7dUZBekRVLDhCQUE4QjtjQUQxQyxVQUFVOztzQkFlTixNQUFNO3VCQUFDLFNBQVM7O3NCQUdoQixNQUFNO3VCQUFDLGFBQWE7d0JBa0N2QixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgeyBmcm9tQ2lyY2xlIH0gZnJvbSAnb2wvZ2VvbS9Qb2x5Z29uJztcclxuaW1wb3J0IE9sQ2lyY2xlIGZyb20gJ29sL2dlb20vQ2lyY2xlJztcclxuaW1wb3J0ICogYXMgb2xmb3JtYXQgZnJvbSAnb2wvZm9ybWF0JztcclxuXHJcbmltcG9ydCB7IEZFQVRVUkUsIEZlYXR1cmUsIEZlYXR1cmVHZW9tZXRyeSB9IGZyb20gJy4uLy4uLy4uL2ZlYXR1cmUnO1xyXG5cclxuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vc2VhcmNoLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UsIFJldmVyc2VTZWFyY2ggfSBmcm9tICcuL3NvdXJjZSc7XHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZU9wdGlvbnMsIFJldmVyc2VTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi9zb3VyY2UuaW50ZXJmYWNlcyc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IEdvb2dsZUxpbmtzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZ29vZ2xlTGlua3MnO1xyXG5pbXBvcnQgeyBQcm9qZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9wcm9qZWN0aW9uLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBsb25MYXRDb252ZXJzaW9uLCByb3VuZENvb3JkVG8sIGNvbnZlcnRERFRvRE1TIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xyXG5pbXBvcnQgeyBPc21MaW5rcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQ2FjaGVhYmxlIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGVzU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7fVxyXG5cclxuICBmb3JtYXRSZXN1bHQocmVzdWx0OiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4pOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4ge1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuLyoqXHJcbiAqIENvb3JkaW5hdGVzUmV2ZXJzZSBzZWFyY2ggc291cmNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlc1JldmVyc2VTZWFyY2hTb3VyY2UgZXh0ZW5kcyBTZWFyY2hTb3VyY2VcclxuICBpbXBsZW1lbnRzIFJldmVyc2VTZWFyY2gge1xyXG4gIHN0YXRpYyBpZCA9ICdjb29yZGluYXRlc3JldmVyc2UnO1xyXG4gIHN0YXRpYyB0eXBlID0gRkVBVFVSRTtcclxuXHJcbiAgcHJpdmF0ZSBwcm9qZWN0aW9ucztcclxuXHJcbiAgdGl0bGUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcblxyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGl0bGUkLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ29wdGlvbnMnKSBvcHRpb25zOiBTZWFyY2hTb3VyY2VPcHRpb25zLFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIEBJbmplY3QoJ3Byb2plY3Rpb25zJykgcHJvamVjdGlvbnM6IFByb2plY3Rpb25bXVxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucywgc3RvcmFnZVNlcnZpY2UpO1xyXG4gICAgdGhpcy5wcm9qZWN0aW9ucyA9IHByb2plY3Rpb25zO1xyXG4gICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UubGFuZ3VhZ2UkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMudGl0bGUkLm5leHQodGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQodGhpcy5vcHRpb25zLnRpdGxlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQ29vcmRpbmF0ZXNSZXZlcnNlU2VhcmNoU291cmNlLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIENvb3JkaW5hdGVzUmV2ZXJzZVNlYXJjaFNvdXJjZS50eXBlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRPcHRpb25zKCk6IFNlYXJjaFNvdXJjZU9wdGlvbnMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5jb29yZGluYXRlcy5uYW1lJyxcclxuICAgICAgb3JkZXI6IDEsXHJcbiAgICAgIHNob3dJblNldHRpbmdzOiBmYWxzZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCBhIGxvY2F0aW9uIGJ5IGNvb3JkaW5hdGVzXHJcbiAgICogQHBhcmFtIGxvbkxhdCBMb2NhdGlvbiBjb29yZGluYXRlc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgb2YgUmV2ZXJzZVNlYXJjaE9wdGlvbnMgKGRpc3RhbmNlLCBjb25mLCB6b29tLCBwYXJhbXMpXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiA8U2VhcmNoUmVzdWx0PEZlYXR1cmU+W11cclxuICAgKi9cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwXHJcbiAgfSlcclxuICByZXZlcnNlU2VhcmNoKFxyXG4gICAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdLFxyXG4gICAgb3B0aW9ucz86IFJldmVyc2VTZWFyY2hPcHRpb25zLFxyXG4gICAgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQ/OiBib29sZWFuXHJcbiAgKTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXT4ge1xyXG4gICAgcmV0dXJuIG9mKFt0aGlzLmRhdGFUb1Jlc3VsdChsb25MYXQsIG9wdGlvbnMsIHJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkKV0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkYXRhVG9SZXN1bHQoZGF0YTogW251bWJlciwgbnVtYmVyXSwgb3B0aW9uczogUmV2ZXJzZVNlYXJjaE9wdGlvbnMsXHJcbiAgICByZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZDogYm9vbGVhbik6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPiB7XHJcblxyXG4gICAgY29uc3QgZGF0YURNUyA9IGNvbnZlcnRERFRvRE1TKGRhdGEpO1xyXG4gICAgY29uc3QgY29udmVydGVkQ29vcmQgPSBsb25MYXRDb252ZXJzaW9uKGRhdGEsIHRoaXMucHJvamVjdGlvbnMpO1xyXG4gICAgY29uc3QgY29vcmRzID0gY29udmVydGVkQ29vcmQucmVkdWNlKChvYmosIGl0ZW0pID0+IChcclxuICAgICAgb2JqW2l0ZW0uYWxpYXNdID0gaXRlbS5pZ28yQ29vcmRGb3JtYXQsIG9iaiksIHt9KTtcclxuXHJcbiAgICBjb25zdCByb3VuZGVkQ29vcmRTdHJpbmcgPSAoIXJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkKSA/XHJcbiAgICAgIHJvdW5kQ29vcmRUbyhkYXRhLCA2KS5qb2luKCcsICcpIDogcm91bmRDb29yZFRvKGRhdGEsIDYpLnJldmVyc2UoKS5qb2luKCcsICcpO1xyXG5cclxuICAgIGNvbnN0IHJvdW5kZWRDb29yZFN0cmluZ0RNUyA9ICghcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQpID9cclxuICAgICAgZGF0YURNUy5qb2luKCcsICcpIDogZGF0YURNUy5yZXZlcnNlKCkuam9pbignLCAnKTtcclxuXHJcbiAgICBsZXQgZ2VvbWV0cnk6IEZlYXR1cmVHZW9tZXRyeSA9IHtcclxuICAgICAgdHlwZTogJ1BvaW50JyxcclxuICAgICAgY29vcmRpbmF0ZXM6IFtkYXRhWzBdLCBkYXRhWzFdXVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0ge307XHJcbiAgICBsZXQgc3VidGl0bGVIdG1sID0gJyc7XHJcbiAgICBpZiAob3B0aW9ucy5kaXN0YW5jZSkge1xyXG4gICAgICBjb25zdCByYWRpdXNLZXkgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWFyY2guY29vcmRpbmF0ZXMucmFkaXVzJyk7XHJcbiAgICAgIHByb3BlcnRpZXNbcmFkaXVzS2V5XSA9IG9wdGlvbnMuZGlzdGFuY2U7XHJcbiAgICAgIHN1YnRpdGxlSHRtbCA9ICc8YnI+PHNtYWxsPlJheW9uOiAnICsgb3B0aW9ucy5kaXN0YW5jZSArICcgbTwvc21hbGw+JztcclxuXHJcbiAgICAgIC8vIENyZWF0ZSBwb2x5Z29uXHJcbiAgICAgIGNvbnN0IGNlbnRlciA9IG9scHJvai50cmFuc2Zvcm0oW2RhdGFbMF0sIGRhdGFbMV1dLCAnRVBTRzo0MzI2JywgJ0VQU0c6Mzg1NycpO1xyXG4gICAgICBjb25zdCBjaXJjbGVHZW9tZXRyeSA9IG5ldyBPbENpcmNsZShjZW50ZXIsIG9wdGlvbnMuZGlzdGFuY2UpO1xyXG4gICAgICBjb25zdCBwb2x5Z29uR2VvbWV0cnkgPSBmcm9tQ2lyY2xlKGNpcmNsZUdlb21ldHJ5KTtcclxuICAgICAgY29uc3Qgd3JpdGVyID0gbmV3IG9sZm9ybWF0Lkdlb0pTT04oKTtcclxuICAgICAgZ2VvbWV0cnkgPSBKU09OLnBhcnNlKHdyaXRlci53cml0ZUdlb21ldHJ5KHBvbHlnb25HZW9tZXRyeS50cmFuc2Zvcm0oJ0VQU0c6Mzg1NycsICdFUFNHOjQzMjYnKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zLmNvbmYpIHtcclxuICAgICAgY29uc3QgY29uZktleSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlYXJjaC5jb29yZGluYXRlcy5jb25mJyk7XHJcbiAgICAgIHByb3BlcnRpZXNbY29uZktleV0gPSBvcHRpb25zLmNvbmY7XHJcbiAgICAgIHN1YnRpdGxlSHRtbCArPSBzdWJ0aXRsZUh0bWwgPT09ICcnID8gJzxicj4nIDogJzxzbWFsbD4gLSA8L3NtYWxsPic7XHJcbiAgICAgIHN1YnRpdGxlSHRtbCArPSAnPHNtYWxsPkNvbmZpYW5jZTogJyArIG9wdGlvbnMuY29uZiArICclPC9zbWFsbD4nO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvb3JkS2V5ID0gKCFyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCkgP1xyXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWFyY2guY29vcmRpbmF0ZXMuY29vcmQnKTpcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoLmNvb3JkaW5hdGVzLnJldmVyc2VkQ29vcmQnKTtcclxuICAgIHByb3BlcnRpZXNbY29vcmRLZXldID0gcm91bmRlZENvb3JkU3RyaW5nO1xyXG5cclxuICAgIGNvbnN0IGNvb3JkS2V5RE1TID0gKCFyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCkgP1xyXG4gICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlYXJjaC5jb29yZGluYXRlcy5jb29yZERNUycpOlxyXG4gICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlYXJjaC5jb29yZGluYXRlcy5yZXZlcnNlZENvb3JkRE1TJyk7XHJcbiAgICBwcm9wZXJ0aWVzW2Nvb3JkS2V5RE1TXSA9IHJvdW5kZWRDb29yZFN0cmluZ0RNUztcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzb3VyY2U6IHRoaXMsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB0eXBlOiBGRUFUVVJFLFxyXG4gICAgICAgIHByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxyXG4gICAgICAgIGdlb21ldHJ5LFxyXG4gICAgICAgIGV4dGVudDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHByb3BlcnRpZXM6IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAgICBwcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY29vcmRzLFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBHb29nbGVNYXBzOiBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzQ29vcmRMaW5rKGRhdGFbMF0sIGRhdGFbMV0pLFxyXG4gICAgICAgICAgICBHb29nbGVTdHJlZXRWaWV3OiBHb29nbGVMaW5rcy5nZXRHb29nbGVTdHJlZXRWaWV3TGluayhcclxuICAgICAgICAgICAgICBkYXRhWzBdLFxyXG4gICAgICAgICAgICAgIGRhdGFbMV1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgT3BlblN0cmVldE1hcDogT3NtTGlua3MuZ2V0T3BlblN0cmVldE1hcExpbmsoZGF0YVswXSwgZGF0YVsxXSwgMTQpLFxyXG4gICAgICAgICAgICBSb3V0ZTogJzxzcGFuIGNsYXNzPVwicm91dGluZ1wiPiA8dT4nICsgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VlUm91dGluZycpICsgJzwvdT4gPC9zcGFuPidcclxuICAgICAgICAgIH1cclxuICAgICAgICApLFxyXG4gICAgICAgIG1ldGE6IHtcclxuICAgICAgICAgIGlkOiBkYXRhWzBdLnRvU3RyaW5nKCkgKyAnLCcgKyBkYXRhWzFdLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICB0aXRsZTogcm91bmRlZENvb3JkU3RyaW5nXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBtZXRhOiB7XHJcbiAgICAgICAgZGF0YVR5cGU6IEZFQVRVUkUsXHJcbiAgICAgICAgaWQ6IGRhdGFbMF0udG9TdHJpbmcoKSArICcsJyArIGRhdGFbMV0udG9TdHJpbmcoKSxcclxuICAgICAgICB0aXRsZTogcm91bmRlZENvb3JkU3RyaW5nLFxyXG4gICAgICAgIHRpdGxlSHRtbDogcm91bmRlZENvb3JkU3RyaW5nICsgc3VidGl0bGVIdG1sLFxyXG4gICAgICAgIGljb246ICdtYXAtbWFya2VyJyxcclxuICAgICAgICBzY29yZTogMTAwLCAvLyBldmVyeSBjb29yZCBleGlzdHNcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -3,14 +3,14 @@ import { SearchSource } from './source';
|
|
|
3
3
|
import { CoordinatesReverseSearchSource, CoordinatesSearchResultFormatter } from './coordinates';
|
|
4
4
|
import { ProjectionService } from '../../../map/shared/projection.service';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Coordinate search result formatter factory
|
|
7
7
|
* @ignore
|
|
8
8
|
*/
|
|
9
9
|
export function defaultCoordinatesSearchResultFormatterFactory(languageService) {
|
|
10
10
|
return new CoordinatesSearchResultFormatter(languageService);
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Function that returns a provider for the
|
|
13
|
+
* Function that returns a provider for the Coordinates search result formatter
|
|
14
14
|
*/
|
|
15
15
|
export function provideDefaultCoordinatesSearchResultFormatter() {
|
|
16
16
|
return {
|
|
@@ -27,7 +27,7 @@ export function CoordinatesReverseSearchSourceFactory(config, languageService, s
|
|
|
27
27
|
return new CoordinatesReverseSearchSource(config.getConfig(`searchSources.${CoordinatesReverseSearchSource.id}`), languageService, storageService, config.getConfig('projections') || []);
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
* Function that returns a provider for the
|
|
30
|
+
* Function that returns a provider for the Coordinate search source
|
|
31
31
|
*/
|
|
32
32
|
export function provideCoordinatesReverseSearchSource() {
|
|
33
33
|
return {
|
|
@@ -37,4 +37,4 @@ export function provideCoordinatesReverseSearchSource() {
|
|
|
37
37
|
deps: [ConfigService, LanguageService, StorageService, ProjectionService]
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZXMucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NoYXJlZC9zb3VyY2VzL2Nvb3JkaW5hdGVzLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLGdDQUFnQyxFQUNqQyxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUzRTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsOENBQThDLENBQzVELGVBQWdDO0lBRWhDLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsOENBQThDO0lBQzVELE9BQU87UUFDTCxPQUFPLEVBQUUsZ0NBQWdDO1FBQ3pDLFVBQVUsRUFBRSw4Q0FBOEM7UUFDMUQsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDO0tBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHFDQUFxQyxDQUNuRCxNQUFxQixFQUNyQixlQUFnQyxFQUNoQyxjQUE4QixFQUM5QixrQkFBcUM7SUFFckMsT0FBTyxJQUFJLDhCQUE4QixDQUN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQiw4QkFBOEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUN0RSxlQUFlLEVBQ2YsY0FBYyxFQUNiLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFrQixJQUFJLEVBQUUsQ0FDeEQsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxxQ0FBcUM7SUFDbkQsT0FBTztRQUNMLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFVBQVUsRUFBRSxxQ0FBcUM7UUFDakQsS0FBSyxFQUFFLElBQUk7UUFDWCxJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQztLQUMxRSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1NlcnZpY2UsIExhbmd1YWdlU2VydmljZSwgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4vc291cmNlJztcclxuaW1wb3J0IHtcclxuICBDb29yZGluYXRlc1JldmVyc2VTZWFyY2hTb3VyY2UsXHJcbiAgQ29vcmRpbmF0ZXNTZWFyY2hSZXN1bHRGb3JtYXR0ZXJcclxufSBmcm9tICcuL2Nvb3JkaW5hdGVzJztcclxuaW1wb3J0IHsgUHJvamVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvcHJvamVjdGlvbi5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgUHJvamVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL3Byb2plY3Rpb24uc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQ29vcmRpbmF0ZSBzZWFyY2ggcmVzdWx0IGZvcm1hdHRlciBmYWN0b3J5XHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0Q29vcmRpbmF0ZXNTZWFyY2hSZXN1bHRGb3JtYXR0ZXJGYWN0b3J5KFxyXG4gIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlXHJcbikge1xyXG4gIHJldHVybiBuZXcgQ29vcmRpbmF0ZXNTZWFyY2hSZXN1bHRGb3JtYXR0ZXIobGFuZ3VhZ2VTZXJ2aWNlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb3ZpZGVyIGZvciB0aGUgQ29vcmRpbmF0ZXMgc2VhcmNoIHJlc3VsdCBmb3JtYXR0ZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGVmYXVsdENvb3JkaW5hdGVzU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKCkge1xyXG4gIHJldHVybiB7XHJcbiAgICBwcm92aWRlOiBDb29yZGluYXRlc1NlYXJjaFJlc3VsdEZvcm1hdHRlcixcclxuICAgIHVzZUZhY3Rvcnk6IGRlZmF1bHRDb29yZGluYXRlc1NlYXJjaFJlc3VsdEZvcm1hdHRlckZhY3RvcnksXHJcbiAgICBkZXBzOiBbTGFuZ3VhZ2VTZXJ2aWNlXVxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb29yZGluYXRlc1JldmVyc2Ugc2VhcmNoIHNvdXJjZSBmYWN0b3J5XHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBDb29yZGluYXRlc1JldmVyc2VTZWFyY2hTb3VyY2VGYWN0b3J5KFxyXG4gIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgX3Byb2plY3Rpb25TZXJ2aWNlOiBQcm9qZWN0aW9uU2VydmljZVxyXG4pIHtcclxuICByZXR1cm4gbmV3IENvb3JkaW5hdGVzUmV2ZXJzZVNlYXJjaFNvdXJjZShcclxuICAgIGNvbmZpZy5nZXRDb25maWcoYHNlYXJjaFNvdXJjZXMuJHtDb29yZGluYXRlc1JldmVyc2VTZWFyY2hTb3VyY2UuaWR9YCksXHJcbiAgICBsYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBzdG9yYWdlU2VydmljZSxcclxuICAgIChjb25maWcuZ2V0Q29uZmlnKCdwcm9qZWN0aW9ucycpIGFzIFByb2plY3Rpb25bXSkgfHwgW11cclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogRnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvdmlkZXIgZm9yIHRoZSBDb29yZGluYXRlIHNlYXJjaCBzb3VyY2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ29vcmRpbmF0ZXNSZXZlcnNlU2VhcmNoU291cmNlKCkge1xyXG4gIHJldHVybiB7XHJcbiAgICBwcm92aWRlOiBTZWFyY2hTb3VyY2UsXHJcbiAgICB1c2VGYWN0b3J5OiBDb29yZGluYXRlc1JldmVyc2VTZWFyY2hTb3VyY2VGYWN0b3J5LFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgICBkZXBzOiBbQ29uZmlnU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSwgUHJvamVjdGlvblNlcnZpY2VdXHJcbiAgfTtcclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoZXJjaGUuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zaGFyZWQvc291cmNlcy9pY2hlcmNoZS5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlR2VvbWV0cnkgfSBmcm9tICcuLi8uLi8uLi9mZWF0dXJlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNoZXJjaGVEYXRhIHtcclxuICBpbmRleDogc3RyaW5nO1xyXG4gIGdlb21ldHJ5OiBGZWF0dXJlR2VvbWV0cnk7XHJcbiAgYmJveDogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XHJcbiAgcHJvcGVydGllczogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGhpZ2hsaWdodDoge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHRpdGxlMj86IHN0cmluZztcclxuICAgIHRpdGxlMz86IHN0cmluZztcclxuICB9O1xyXG4gIHNjb3JlPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDaGVyY2hlUmVzcG9uc2Uge1xyXG4gIGZlYXR1cmVzOiBJQ2hlcmNoZURhdGFbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2hlcmNoZVJldmVyc2VEYXRhIHtcclxuICBnZW9tZXRyeTogRmVhdHVyZUdlb21ldHJ5O1xyXG4gIGJib3g6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgcHJvcGVydGllczogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2hlcmNoZVJldmVyc2VSZXNwb25zZSB7XHJcbiAgZmVhdHVyZXM6IElDaGVyY2hlUmV2ZXJzZURhdGFbXTtcclxufVxyXG4iXX0=
|
|
@@ -764,4 +764,4 @@ __decorate([
|
|
|
764
764
|
type: Inject,
|
|
765
765
|
args: ['options']
|
|
766
766
|
}] }, { type: i0.Injector }]; }, { reverseSearch: [] }); })();
|
|
767
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoZXJjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvaWNoZXJjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxVQUFVLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7QUFFbEYsT0FBTyxFQUFjLEVBQUUsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxjQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBVyxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUE2QixNQUFNLFVBQVUsQ0FBQztBQVluRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBR3pDLE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4RCxZQUFZLENBQUMsTUFBNkI7UUFDeEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7MEdBTFUsNkJBQTZCO21GQUE3Qiw2QkFBNkIsV0FBN0IsNkJBQTZCO3VGQUE3Qiw2QkFBNkI7Y0FEekMsVUFBVTs7QUFTWCwy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LENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDOztBQWhSTSw4QkFBRSxHQUFHLGlCQUFpQixDQUFDO0FBQ3ZCLGdDQUFJLEdBQUcsT0FBTyxDQUFDO0FBQ2YsK0NBQW1CLEdBQWEsRUFBRyxDQUFBO3NHQUovQiwyQkFBMkIsMkdBZ0I1QixTQUFTO2lGQWhCUiwyQkFBMkIsV0FBM0IsMkJBQTJCO0FBMEl0QztJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7Z0VBY0Q7dUZBdkpVLDJCQUEyQjtjQUR2QyxVQUFVOztzQkFpQk4sTUFBTTt1QkFBQyxTQUFTOytDQTBIbkIsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBQYXJhbWV0ZXJDb2RlYyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BpZ28yL2F1dGgnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcblxuaW1wb3J0IHsgRkVBVFVSRSwgRmVhdHVyZSB9IGZyb20gJy4uLy4uLy4uL2ZlYXR1cmUnO1xuaW1wb3J0IHsgR29vZ2xlTGlua3MgfSBmcm9tICcuLy4uLy4uLy4uL3V0aWxzL2dvb2dsZUxpbmtzJztcblxuaW1wb3J0IHsgU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vc2VhcmNoLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2VhcmNoU291cmNlLCBUZXh0U2VhcmNoLCBSZXZlcnNlU2VhcmNoIH0gZnJvbSAnLi9zb3VyY2UnO1xuaW1wb3J0IHtcbiAgU2VhcmNoU291cmNlT3B0aW9ucyxcbiAgVGV4dFNlYXJjaE9wdGlvbnMsXG4gIFJldmVyc2VTZWFyY2hPcHRpb25zXG59IGZyb20gJy4vc291cmNlLmludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgSUNoZXJjaGVEYXRhLFxuICBJQ2hlcmNoZVJlc3BvbnNlLFxuICBJQ2hlcmNoZVJldmVyc2VEYXRhLFxuICBJQ2hlcmNoZVJldmVyc2VSZXNwb25zZVxufSBmcm9tICcuL2ljaGVyY2hlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgY29tcHV0ZVRlcm1TaW1pbGFyaXR5IH0gZnJvbSAnLi4vc2VhcmNoLnV0aWxzJztcbmltcG9ydCB7IENhY2hlYWJsZSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHt9XG5cbiAgZm9ybWF0UmVzdWx0KHJlc3VsdDogU2VhcmNoUmVzdWx0PEZlYXR1cmU+KTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+IHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbi8vIEZpeCB0aGUgXCIrXCIgaXMgcmVwbGFjZWQgd2l0aCBzcGFjZSBcIiBcIiBpbiBhIHF1ZXJ5IHN0cmluZ1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTEwNThcbmV4cG9ydCBjbGFzcyBJZ29IdHRwUGFyYW1ldGVyQ29kZWMgaW1wbGVtZW50cyBIdHRwUGFyYW1ldGVyQ29kZWMge1xuICBlbmNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoa2V5KTtcbiAgfVxuXG4gIGVuY29kZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICB9XG5cbiAgZGVjb2RlS2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XG4gIH1cblxuICBkZWNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgfVxufVxuXG4vKipcbiAqIElDaGVyY2hlIHNlYXJjaCBzb3VyY2VcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElDaGVyY2hlU2VhcmNoU291cmNlIGV4dGVuZHMgU2VhcmNoU291cmNlIGltcGxlbWVudHMgVGV4dFNlYXJjaCB7XG4gIHN0YXRpYyBpZCA9ICdpY2hlcmNoZSc7XG4gIHN0YXRpYyB0eXBlID0gRkVBVFVSRTtcbiAgc3RhdGljIHByb3BlcnRpZXNCbGFja2xpc3Q6IHN0cmluZ1tdID0gW107XG4gIHRpdGxlJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHByaXZhdGUgaGFzaHRhZ3NMaWV1eFRvS2VlcCA9IFtdO1xuXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRpdGxlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIEBJbmplY3QoJ29wdGlvbnMnKSBvcHRpb25zOiBTZWFyY2hTb3VyY2VPcHRpb25zLFxuICAgIEBJbmplY3QoSUNoZXJjaGVTZWFyY2hSZXN1bHRGb3JtYXR0ZXIpXG4gICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihvcHRpb25zLCBzdG9yYWdlU2VydmljZSk7XG5cbiAgICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdG9yLmdldChBdXRoU2VydmljZSk7XG4gICAgaWYgKHRoaXMuc2V0dGluZ3MubGVuZ3RoKSB7XG4gICAgICBpZiAoIWF1dGhTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuZ2V0QWxsb3dlZFR5cGVzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdXRoU2VydmljZS5hdXRoZW50aWNhdGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5nZXRBbGxvd2VkVHlwZXMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UubGFuZ3VhZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnRpdGxlJC5uZXh0KHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMub3B0aW9ucy50aXRsZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSUNoZXJjaGVTZWFyY2hTb3VyY2UuaWQ7XG4gIH1cblxuICBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIElDaGVyY2hlU2VhcmNoU291cmNlLnR5cGU7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdE9wdGlvbnMoKTogU2VhcmNoU291cmNlT3B0aW9ucyB7XG4gICAgY29uc3QgbGltaXQgPVxuICAgICAgdGhpcy5vcHRpb25zLnBhcmFtcyAmJiB0aGlzLm9wdGlvbnMucGFyYW1zLmxpbWl0XG4gICAgICAgID8gTnVtYmVyKHRoaXMub3B0aW9ucy5wYXJhbXMubGltaXQpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGVjbWF4ID1cbiAgICAgIHRoaXMub3B0aW9ucy5wYXJhbXMgJiYgdGhpcy5vcHRpb25zLnBhcmFtcy5lY21heFxuICAgICAgICA/IE51bWJlcih0aGlzLm9wdGlvbnMucGFyYW1zLmVjbWF4KVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5vcHRpb25zLnBhcmFtcz8udHlwZVxuICAgICAgICA/IHRoaXMub3B0aW9ucy5wYXJhbXMudHlwZS5yZXBsYWNlKC9cXHMvZywgJycpLnRvTG93ZXJDYXNlKCkuc3BsaXQoJywnKVxuICAgICAgICA6IFtcbiAgICAgICAgICAgICdhZHJlc3NlcycsXG4gICAgICAgICAgICAnY29kZXMtcG9zdGF1eCcsXG4gICAgICAgICAgICAncm91dGVzJyxcbiAgICAgICAgICAgICdpbnRlcnNlY3Rpb25zJyxcbiAgICAgICAgICAgICdtdW5pY2lwYWxpdGVzJyxcbiAgICAgICAgICAgICdtcmMnLFxuICAgICAgICAgICAgJ3JlZ2FkbWluJyxcbiAgICAgICAgICAgICdsaWV1eCdcbiAgICAgICAgICBdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUubmFtZScsXG4gICAgICBzZWFyY2hVcmw6ICdodHRwczovL2dlb2VnbC5tc3AuZ291di5xYy5jYS9hcGlzL2ljaGVyY2hlJyxcbiAgICAgIHNldHRpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIHRpdGxlOiAncmVzdWx0cyB0eXBlJyxcbiAgICAgICAgICBuYW1lOiAndHlwZScsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5hZGRyZXNzJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdhZHJlc3NlcycsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FkcmVzc2VzJykgIT09IC0xLFxuICAgICAgICAgICAgICBoYXNodGFnczogWydhZHJlc3NlJ11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5vbGRBZGRyZXNzJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdhbmNpZW5uZXMtYWRyZXNzZXMnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdhbmNpZW5uZXMtYWRyZXNzZXMnKSAhPT0gLTEsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2FuY2llbm5lcy1hZHJlc3NlcyddXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUub2xkQ2l0eScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnYW5jaWVubmVzLW11bmljaXBhbGl0ZXMnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdhbmNpZW5uZXMtbXVuaWNpcGFsaXRlcycpICE9PSAtMSxcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYW5jaWVubmVzLW11bmljaXBhbGl0ZXMnXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmNuJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdib3JuZXMtY24nLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdib3JuZXMtY24nKSAhPT0gLTEsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2Jvcm5lJywgJ2Jvcm5lcycsICdjbiddXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuc3VtaScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnYm9ybmVzLXN1bWknLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdib3JuZXMtc3VtaScpICE9PSAtMSxcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3N1bWknXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmNhZGFzdHJlJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdjYWRhc3RyZScsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2NhZGFzdHJlJykgIT09IC0xLFxuICAgICAgICAgICAgICBoYXNodGFnczogWydjYWRhc3RyZSddXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUucG9zdGFsQ29kZScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnY29kZXMtcG9zdGF1eCcsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2NvZGVzLXBvc3RhdXgnKSAhPT0gLTEsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2NvZGUtcG9zdGFsJ11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5lbnRyZXByaXNlJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdlbnRyZXByaXNlcycsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2VudHJlcHJpc2VzJykgIT09IC0xLFxuICAgICAgICAgICAgICBhdmFpbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBoYXNodGFnczogWydlbnRyZXByaXNlJ11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jeWNsZVN0b3AnLFxuICAgICAgICAgICAgICB2YWx1ZTogJ2hhbHRlc19jeWNsYWJsZXMnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdoYWx0ZXNfY3ljbGFibGVzJykgIT09IC0xLFxuICAgICAgICAgICAgICBoYXNodGFnczogWydoYWx0ZXZlbG8nLCdoYWx0ZXNfY3ljbGFibGVzJ11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZXN0QXJlYScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnaGFsdGVzX3JvdXRpZXJlcycsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2hhbHRlc19yb3V0aWVyZXMnKSAhPT0gLTEsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2hhbHRlcm91dGUnLCdoYWx0ZXNfcm91dGllcmVzJ11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5ocScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnaHEnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdocScpICE9PSAtMSxcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnaHEnXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmludGVyc2VjdGlvbicsXG4gICAgICAgICAgICAgIHZhbHVlOiAnaW50ZXJzZWN0aW9ucycsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2ludGVyc2VjdGlvbnMnKSAhPT0gLTEsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2ludGVyc2VjdGlvbicsICcrJ11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5wbGFjZScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnbGlldXgnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdsaWV1eCcpICE9PSAtMSxcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnbGlldSddXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUubXJjJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdtcmMnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtcmMnKSAhPT0gLTEsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ21yYyddXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuY2l0eScsXG4gICAgICAgICAgICAgIHZhbHVlOiAnbXVuaWNpcGFsaXRlcycsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ211bmljaXBhbGl0ZXMnKSAhPT0gLTEsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ211bmljaXBhbGl0w6knLCAnbXVuJ11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZWdhZG1pbicsXG4gICAgICAgICAgICAgIHZhbHVlOiAncmVnYWRtaW4nLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdyZWdhZG1pbicpICE9PSAtMSxcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsncsOpZ2lvbi1hZG1pbmlzdHJhdGl2ZScsICdyZWdhZG1pbiddXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZ2NjJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdib3JuZXMtZ2NjJyxcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignYm9ybmVzLWdjYycpICE9PSAtMSxcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3JlcMOocmUnLCAnZ2NjJywgJ2NjZyddXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUua20nLFxuICAgICAgICAgICAgICB2YWx1ZTogJ2Jvcm5lcy1rbScsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Jvcm5lcy1rbScpICE9PSAtMSxcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3JlcMOocmUnLCAna20nXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnJvYWQnLFxuICAgICAgICAgICAgICB2YWx1ZTogJ3JvdXRlcycsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ3JvdXRlcycpICE9PSAtMSxcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsncm91dGUnXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmV4aXQnLFxuICAgICAgICAgICAgICB2YWx1ZTogJ3NvcnRpZXMtYXV0b3JvdXRlJyxcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignc29ydGllcy1hdXRvcm91dGUnKSAhPT0gLTEsXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ3NvcnRpZScsICdzb3J0aWVzJywgJ2V4aXQnXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdyYWRpb2J1dHRvbicsXG4gICAgICAgICAgdGl0bGU6ICdyZXN1bHRzIGxpbWl0JyxcbiAgICAgICAgICBuYW1lOiAnbGltaXQnLFxuICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzEnLFxuICAgICAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnNScsXG4gICAgICAgICAgICAgIHZhbHVlOiA1LFxuICAgICAgICAgICAgICBlbmFibGVkOiBsaW1pdCA9PT0gNSB8fCAhbGltaXRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAnLFxuICAgICAgICAgICAgICB2YWx1ZTogMTAsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGxpbWl0ID09PSAxMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICcyNScsXG4gICAgICAgICAgICAgIHZhbHVlOiAyNSxcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDI1XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzUwJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDUwLFxuICAgICAgICAgICAgICBlbmFibGVkOiBsaW1pdCA9PT0gNTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAncmFkaW9idXR0b24nLFxuICAgICAgICAgIHRpdGxlOiAnZWNtYXgnLFxuICAgICAgICAgIG5hbWU6ICdlY21heCcsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAgJScsXG4gICAgICAgICAgICAgIHZhbHVlOiAxMCxcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDEwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzMwICUnLFxuICAgICAgICAgICAgICB2YWx1ZTogMzAsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSAzMCB8fCAhZWNtYXhcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnNTAgJScsXG4gICAgICAgICAgICAgIHZhbHVlOiA1MCxcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDUwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzc1ICUnLFxuICAgICAgICAgICAgICB2YWx1ZTogNzUsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSA3NVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICcxMDAgJScsXG4gICAgICAgICAgICAgIHZhbHVlOiAxMDAsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSAxMDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAncmFkaW9idXR0b24nLFxuICAgICAgICAgIHRpdGxlOiAncmVzdHJpY3RFeHRlbnQnLFxuICAgICAgICAgIG5hbWU6ICdsb2MnLFxuICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnJlc3RyaWN0RXh0ZW50Lm1hcCcsXG4gICAgICAgICAgICAgIHZhbHVlOiAndHJ1ZScsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnJlc3RyaWN0RXh0ZW50LnF1ZWJlYycsXG4gICAgICAgICAgICAgIHZhbHVlOiAnZmFsc2UnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2ggYSBsb2NhdGlvbiBieSBuYW1lIG9yIGtleXdvcmRcbiAgICogQHBhcmFtIHRlcm0gTG9jYXRpb24gbmFtZSBvciBrZXl3b3JkXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgPFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdXG4gICAqL1xuICBAQ2FjaGVhYmxlKHtcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxuICB9KVxuICBzZWFyY2goXG4gICAgdGVybTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBUZXh0U2VhcmNoT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5jb21wdXRlUmVxdWVzdFBhcmFtcyh0ZXJtLCBvcHRpb25zIHx8IHt9KTtcbiAgICBpZiAoIXBhcmFtcy5nZXQoJ3R5cGUnKS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucy5wYXJhbXMucGFnZSA9IHBhcmFtcy5nZXQoJ3BhZ2UnKSB8fCAnMSc7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnNlYXJjaFVybH0vZ2VvY29kZWAsIHsgcGFyYW1zIH0pLnBpcGUoXG4gICAgICBtYXAoKHJlc3BvbnNlOiBJQ2hlcmNoZVJlc3BvbnNlKSA9PiB0aGlzLmV4dHJhY3RSZXN1bHRzKHJlc3BvbnNlLCB0ZXJtKSksXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgZXJyLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XG4gICAgICAgIGVyci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgIHRoaXMuZ2V0RGVmYXVsdE9wdGlvbnMoKS50aXRsZVxuICAgICAgICApO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEFsbG93ZWRUeXBlcygpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KGAke3RoaXMuc2VhcmNoVXJsfS90eXBlc2ApXG4gICAgICAuc3Vic2NyaWJlKCh0eXBlczogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZVNldHRpbmcgPSB0aGlzLnNldHRpbmdzLmZpbmQoKHMpID0+IHMubmFtZSA9PT0gJ3R5cGUnKTtcbiAgICAgICAgdHlwZVNldHRpbmcudmFsdWVzLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke3YudmFsdWV9KFxcXFwufCQpYCk7XG4gICAgICAgICAgY29uc3QgdHlwZXNNYXRjaGVkID0gdHlwZXMuZmlsdGVyKCh2YWx1ZSkgPT4gcmVnZXgudGVzdCh2YWx1ZSkpO1xuICAgICAgICAgIHYuYXZhaWxhYmxlID0gdHlwZXNNYXRjaGVkLmxlbmd0aCA+IDA7XG4gICAgICAgICAgaWYgKHYudmFsdWUgPT09ICdsaWV1eCcpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzaHRhZ3NMaWV1eFRvS2VlcCA9IFtcbiAgICAgICAgICAgICAgLi4uKG5ldyBTZXQoXG4gICAgICAgICAgICAgICAgdHlwZXNNYXRjaGVkXG4gICAgICAgICAgICAgICAgICAubWFwKCh0KSA9PiB0LnNwbGl0KCcuJykpXG4gICAgICAgICAgICAgICAgICAucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSlcbiAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHQpID0+IHQgIT09ICdsaWV1eCcpXG4gICAgICAgICAgICAgICkgYXMgYW55KVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldFBhcmFtRnJvbVNldHRpbmcodHlwZVNldHRpbmcsIGZhbHNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wdXRlUmVxdWVzdFBhcmFtcyhcbiAgICB0ZXJtOiBzdHJpbmcsXG4gICAgb3B0aW9uczogVGV4dFNlYXJjaE9wdGlvbnNcbiAgKTogSHR0cFBhcmFtcyB7XG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IGFueSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7XG4gICAgICAgIGdlb21ldHJ5OiB0cnVlLFxuICAgICAgICBiYm94OiB0cnVlLFxuICAgICAgICBpY29uOiB0cnVlLFxuICAgICAgICB0eXBlOlxuICAgICAgICAgICdhZHJlc3Nlcyxjb2Rlcy1wb3N0YXV4LG11bmljaXBhbGl0ZXMsbXJjLHJlZ2FkbWluLGxpZXV4LGVudHJlcHJpc2VzLGJvcm5lcy1zdW1pJ1xuICAgICAgfSxcbiAgICAgIHRoaXMucGFyYW1zLFxuICAgICAgdGhpcy5jb21wdXRlT3B0aW9uc1BhcmFtKHRlcm0sIG9wdGlvbnMgfHwge30pLnBhcmFtcyxcbiAgICAgIHtcbiAgICAgICAgcTogdGhpcy5jb21wdXRlVGVybSh0ZXJtKSxcbiAgICAgICAgcGFnZTogb3B0aW9ucy5wYWdlXG4gICAgICB9XG4gICAgKTtcblxuICAgIGlmIChxdWVyeVBhcmFtcy5sb2MgPT09ICd0cnVlJykge1xuICAgICAgY29uc3QgW3hNaW4sIHlNaW4sIHhNYXgsIHlNYXhdID0gb3B0aW9ucy5leHRlbnQ7XG4gICAgICBxdWVyeVBhcmFtcy5sb2MgPSBgJHt4TWlufSwke3lNaW59OyR7eE1heH0sJHt5TWlufTske3hNYXh9LCR7eU1heH07JHt4TWlufSwke3lNYXh9OyR7eE1pbn0sJHt5TWlufWA7XG4gICAgfSBlbHNlIGlmIChxdWVyeVBhcmFtcy5sb2MgPT09ICdmYWxzZScpIHtcbiAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtcy5sb2M7XG4gICAgfVxuXG4gICAgaWYgKC8jW0EtWmEtel0rLy50ZXN0KHF1ZXJ5UGFyYW1zLnEpKSB7XG4gICAgICBxdWVyeVBhcmFtcy50eXBlID0gJ2xpZXV4JztcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgZnJvbU9iamVjdDogT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHF1ZXJ5UGFyYW1zKSxcbiAgICAgIGVuY29kZXI6IG5ldyBJZ29IdHRwUGFyYW1ldGVyQ29kZWMoKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UmVzdWx0cyhyZXNwb25zZTogSUNoZXJjaGVSZXNwb25zZSwgdGVybTogc3RyaW5nKTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+W10ge1xuICAgIHJldHVybiByZXNwb25zZS5mZWF0dXJlcy5tYXAoKGRhdGE6IElDaGVyY2hlRGF0YSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVyLmZvcm1hdFJlc3VsdCh0aGlzLmRhdGFUb1Jlc3VsdChkYXRhLCB0ZXJtLCByZXNwb25zZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRhVG9SZXN1bHQoXG4gICAgZGF0YTogSUNoZXJjaGVEYXRhLFxuICAgIHRlcm06IHN0cmluZyxcbiAgICByZXNwb25zZT86IElDaGVyY2hlUmVzcG9uc2VcbiAgKTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+IHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5jb21wdXRlUHJvcGVydGllcyhkYXRhKTtcbiAgICBjb25zdCBpZCA9IFt0aGlzLmdldElkKCksIHByb3BlcnRpZXMudHlwZSwgcHJvcGVydGllcy5jb2RlXS5qb2luKCcuJyk7XG5cbiAgICBjb25zdCB0aXRsZUh0bWwgPSBkYXRhLmhpZ2hsaWdodC50aXRsZSB8fCBkYXRhLnByb3BlcnRpZXMubm9tO1xuICAgIGNvbnN0IHN1YnRpdGxlSHRtbCA9IGRhdGEuaGlnaGxpZ2h0LnRpdGxlMlxuICAgICAgPyAnIDxzbWFsbD4gJyArIGRhdGEuaGlnaGxpZ2h0LnRpdGxlMiArICc8L3NtYWxsPidcbiAgICAgIDogJyc7XG4gICAgY29uc3Qgc3VidGl0bGVIdG1sMiA9IGRhdGEuaGlnaGxpZ2h0LnRpdGxlM1xuICAgICAgPyAnPGJyPjxzbWFsbD4gJyArIGRhdGEuaGlnaGxpZ2h0LnRpdGxlMyArICc8L3NtYWxsPidcbiAgICAgIDogJyc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc291cmNlOiB0aGlzLFxuICAgICAgZGF0YToge1xuICAgICAgICB0eXBlOiBGRUFUVVJFLFxuICAgICAgICBwcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgZ2VvbWV0cnk6IGRhdGEuZ2VvbWV0cnksXG4gICAgICAgIGV4dGVudDogZGF0YS5iYm94LFxuICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICBtZXRhOiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgdGl0bGU6IGRhdGEucHJvcGVydGllcy5ub21cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgZGF0YVR5cGU6IEZFQVRVUkUsXG4gICAgICAgIGlkLFxuICAgICAgICB0aXRsZTogZGF0YS5wcm9wZXJ0aWVzLm5vbSxcbiAgICAgICAgdGl0bGVIdG1sOiB0aXRsZUh0bWwgKyBzdWJ0aXRsZUh0bWwgKyBzdWJ0aXRsZUh0bWwyLFxuICAgICAgICBpY29uOiBkYXRhLmljb24gfHwgJ21hcC1tYXJrZXInLFxuICAgICAgICBzY29yZTogZGF0YS5zY29yZSB8fCBjb21wdXRlVGVybVNpbWlsYXJpdHkodGVybS50cmltKCksIGRhdGEucHJvcGVydGllcy5ub20pLFxuICAgICAgICBuZXh0UGFnZTpcbiAgICAgICAgICByZXNwb25zZS5mZWF0dXJlcy5sZW5ndGggJSArdGhpcy5vcHRpb25zLnBhcmFtcy5saW1pdCA9PT0gMCAmJlxuICAgICAgICAgICt0aGlzLm9wdGlvbnMucGFyYW1zLnBhZ2UgPCAxMFxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVQcm9wZXJ0aWVzKGRhdGE6IElDaGVyY2hlRGF0YSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3RVdGlscy5yZW1vdmVLZXlzKFxuICAgICAgZGF0YS5wcm9wZXJ0aWVzLFxuICAgICAgSUNoZXJjaGVTZWFyY2hTb3VyY2UucHJvcGVydGllc0JsYWNrbGlzdFxuICAgICk7XG5cbiAgICBpZiAoIWRhdGEuZ2VvbWV0cnkpIHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHsgdHlwZTogZGF0YS5pbmRleCB9LCBwcm9wZXJ0aWVzKTtcbiAgICB9XG5cbiAgICBjb25zdCBnb29nbGVMaW5rc1Byb3BlcnRpZXM6IHtcbiAgICAgIEdvb2dsZU1hcHM6IHN0cmluZztcbiAgICAgIEdvb2dsZVN0cmVldFZpZXc/OiBzdHJpbmc7XG4gICAgfSA9IHtcbiAgICAgIEdvb2dsZU1hcHM6ICcnXG4gICAgfTtcblxuICAgIGxldCBnb29nbGVNYXBzO1xuICAgIGlmIChkYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcpIHtcbiAgICAgIGdvb2dsZU1hcHMgPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzQ29vcmRMaW5rKFxuICAgICAgICBkYXRhLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxuICAgICAgICBkYXRhLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwb2ludCA9IHBvaW50T25GZWF0dXJlKGRhdGEuZ2VvbWV0cnkpO1xuICAgICAgZ29vZ2xlTWFwcyA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZU1hcHNDb29yZExpbmsoXG4gICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxuICAgICAgICBwb2ludC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgZ29vZ2xlTWFwc05vbTtcbiAgICBpZiAoZGF0YS5pbmRleCA9PT0gJ3JvdXRlcycpIHtcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXG4gICAgICAgIGRhdGEucHJvcGVydGllcy5ub20gKyAnLCAnICsgZGF0YS5wcm9wZXJ0aWVzLm11bmljaXBhbGl0ZVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGRhdGEuaW5kZXggPT09ICdtdW5pY2lwYWxpdGVzJykge1xuICAgICAgZ29vZ2xlTWFwc05vbSA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZU1hcHNOYW1lTGluayhcbiAgICAgICAgZGF0YS5wcm9wZXJ0aWVzLm5vbSArICcsICcgKyAndmlsbGUnXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoZGF0YS5pbmRleCA9PT0gJ21yYycpIHtcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXG4gICAgICAgICdtcmMrJyArIGRhdGEucHJvcGVydGllcy5ub21cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChkYXRhLmluZGV4ID09PSAncmVnYWRtaW4nKSB7XG4gICAgICBnb29nbGVNYXBzTm9tID0gR29vZ2xlTGlua3MuZ2V0R29vZ2xlTWFwc05hbWVMaW5rKFxuICAgICAgICBkYXRhLnByb3BlcnRpZXMubm9tICsgJywrUUMnXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBnb29nbGVNYXBzTm9tID0gR29vZ2xlTGlua3MuZ2V0R29vZ2xlTWFwc05hbWVMaW5rKFxuICAgICAgICBkYXRhLnByb3BlcnRpZXMubm9tIHx8IGRhdGEuaGlnaGxpZ2h0LnRpdGxlXG4gICAgICApO1xuICAgIH1cblxuICAgIGdvb2dsZUxpbmtzUHJvcGVydGllcy5Hb29nbGVNYXBzID1cbiAgICAgICc8YSBocmVmPScgK1xuICAgICAgZ29vZ2xlTWFwcyArXG4gICAgICAnIHRhcmdldD1cIl9ibGFua1wiPicgK1xuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoQnlDb29yZCcpICtcbiAgICAgICc8L2E+IDxiciAvPiA8YSBocmVmPScgK1xuICAgICAgZ29vZ2xlTWFwc05vbSArXG4gICAgICAnIHRhcmdldD1cIl9ibGFua1wiPicgK1xuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoQnlOYW1lJykgK1xuICAgICAgJzwvYT4nO1xuXG4gICAgaWYgKGRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50Jykge1xuICAgICAgZ29vZ2xlTGlua3NQcm9wZXJ0aWVzLkdvb2dsZVN0cmVldFZpZXcgPSBHb29nbGVMaW5rcy5nZXRHb29nbGVTdHJlZXRWaWV3TGluayhcbiAgICAgICAgZGF0YS5nZW9tZXRyeS5jb29yZGluYXRlc1swXSxcbiAgICAgICAgZGF0YS5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCByb3V0aW5nOiB7XG4gICAgICBSb3V0ZTogc3RyaW5nO1xuICAgIH0gPSB7XG4gICAgICBSb3V0ZTpcbiAgICAgICAgJzxzcGFuIGNsYXNzPVwicm91dGluZ1wiPiA8dT4nICtcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VlUm91dGluZycpICtcbiAgICAgICAgJzwvdT4gPC9zcGFuPidcbiAgICB9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7IHR5cGU6IGRhdGEuaW5kZXggfSxcbiAgICAgIHByb3BlcnRpZXMsXG4gICAgICBnb29nbGVMaW5rc1Byb3BlcnRpZXMsXG4gICAgICByb3V0aW5nXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaGFzaHRhZyBmcm9tIHF1ZXJ5XG4gICAqIEBwYXJhbSB0ZXJtIFF1ZXJ5IHdpdGggaGFzaHRhZ1xuICAgKi9cbiAgcHJpdmF0ZSBjb21wdXRlVGVybSh0ZXJtOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIEtlZXAgaGFzaHRhZ3MgZm9yIFwibGlldXhcIlxuICAgIGNvbnN0IGhhc2h0YWdzID0gdGVybS5tYXRjaCgvKCNbQS1aYS16XSspL2cpIHx8IFtdO1xuICAgIGxldCBrZWVwID0gZmFsc2U7XG4gICAga2VlcCA9IGhhc2h0YWdzLnNvbWUoKGhhc2h0YWcpID0+IHtcbiAgICAgIGNvbnN0IGhhc2h0YWdLZXkgPSBoYXNodGFnLnN1YnN0cmluZygxKTtcbiAgICAgIHJldHVybiB0aGlzLmhhc2h0YWdzTGlldXhUb0tlZXAuc29tZShcbiAgICAgICAgKGgpID0+XG4gICAgICAgICAgaFxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpID09PVxuICAgICAgICAgIGhhc2h0YWdLZXlcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGlmICgha2VlcCkge1xuICAgICAgdGVybSA9IHRlcm0ucmVwbGFjZSgvKCNbQS1aYS16XSspL2csICcnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybS5yZXBsYWNlKC9bXlxcd8OALcO/ICFcXC1cXCtcXChcXClcXC5cXC/CvcK8wr4sJyNdKy9nLCAnJyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGhhc2h0YWcgdG8gcGFyYW0gaWYgdmFsaWRcbiAgICogQHBhcmFtIHRlcm0gUXVlcnkgd2l0aCBoYXNodGFnXG4gICAqIEBwYXJhbSBvcHRpb25zIFRleHRTZWFyY2hPcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVPcHRpb25zUGFyYW0oXG4gICAgdGVybTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFRleHRTZWFyY2hPcHRpb25zXG4gICk6IFRleHRTZWFyY2hPcHRpb25zIHtcbiAgICBjb25zdCBoYXNodGFncyA9IHN1cGVyLmdldEhhc2h0YWdzVmFsaWQodGVybSwgJ3R5cGUnKTtcbiAgICBpZiAoaGFzaHRhZ3MpIHtcbiAgICAgIG9wdGlvbnMucGFyYW1zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLnBhcmFtcyB8fCB7fSwge1xuICAgICAgICB0eXBlOiBoYXNodGFncy5qb2luKCcsJylcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG59XG5cbi8qKlxuICogSUNoZXJjaGVSZXZlcnNlIHNlYXJjaCBzb3VyY2VcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElDaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZSBleHRlbmRzIFNlYXJjaFNvdXJjZVxuICBpbXBsZW1lbnRzIFJldmVyc2VTZWFyY2gge1xuICBzdGF0aWMgaWQgPSAnaWNoZXJjaGVyZXZlcnNlJztcbiAgc3RhdGljIHR5cGUgPSBGRUFUVVJFO1xuICBzdGF0aWMgcHJvcGVydGllc0JsYWNrbGlzdDogc3RyaW5nW10gPSBbXTtcblxuICB0aXRsZSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50aXRsZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcbiAgICBASW5qZWN0KCdvcHRpb25zJykgb3B0aW9uczogU2VhcmNoU291cmNlT3B0aW9ucyxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMsIHN0b3JhZ2VTZXJ2aWNlKTtcblxuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy50aXRsZSQubmV4dCh0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0aGlzLm9wdGlvbnMudGl0bGUpKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEF1dGhTZXJ2aWNlKTtcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5sZW5ndGgpIHtcbiAgICAgIGlmICghYXV0aFNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5nZXRBbGxvd2VkVHlwZXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmdldEFsbG93ZWRUeXBlcygpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBJQ2hlcmNoZVJldmVyc2VTZWFyY2hTb3VyY2UuaWQ7XG4gIH1cblxuICBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIElDaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZS50eXBlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRPcHRpb25zKCk6IFNlYXJjaFNvdXJjZU9wdGlvbnMge1xuICAgIGNvbnN0IHR5cGVzID1cbiAgICAgIHRoaXMub3B0aW9ucy5wYXJhbXMgJiYgdGhpcy5vcHRpb25zLnBhcmFtcy50eXBlXG4gICAgICAgID8gdGhpcy5vcHRpb25zLnBhcmFtcy50eXBlLnJlcGxhY2UoL1xccy9nLCAnJykudG9Mb3dlckNhc2UoKS5zcGxpdCgnLCcpXG4gICAgICAgIDogWydhZHJlc3NlcycsICdtdW5pY2lwYWxpdGVzJywgJ21yYycsICdyZWdhZG1pbiddO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGVSZXZlcnNlLm5hbWUnLFxuICAgICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly9nZW9lZ2wubXNwLmdvdXYucWMuY2EvYXBpcy90ZXJyYXBpJyxcbiAgICAgIHNldHRpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIHRpdGxlOiAncmVzdWx0cyB0eXBlJyxcbiAgICAgICAgICBuYW1lOiAndHlwZScsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5hZGRyZXNzJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdhZHJlc3NlcycsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FkcmVzc2VzJykgIT09IC0xXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUucm9hZCcsXG4gICAgICAgICAgICAgIHZhbHVlOiAncm91dGVzJyxcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZigncm91dGVzJykgIT09IC0xLFxuICAgICAgICAgICAgICBhdmFpbGFibGU6IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZGlzdHJpY3QnLFxuICAgICAgICAgICAgICB2YWx1ZTogJ2Fycm9uZGlzc2VtZW50cycsXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Fycm9uZGlzc2VtZW50cycpICE9PSAtMVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmNpdHknLFxuICAgICAgICAgICAgICB2YWx1ZTogJ211bmljaXBhbGl0ZXMnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtdW5pY2lwYWxpdGVzJykgIT09IC0xXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUubXJjJyxcbiAgICAgICAgICAgICAgdmFsdWU6ICdtcmMnLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtcmMnKSAhPT0gLTFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZWdhZG1pbicsXG4gICAgICAgICAgICAgIHZhbHVlOiAncmVnYWRtaW4nLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdyZWdhZG1pbicpICE9PSAtMVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdyYWRpb2J1dHRvbicsXG4gICAgICAgICAgdGl0bGU6ICdyYWRpdXMnLFxuICAgICAgICAgIG5hbWU6ICdidWZmZXJJbnB1dCcsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAwIG0nLFxuICAgICAgICAgICAgICB2YWx1ZTogMTAwLFxuICAgICAgICAgICAgICBlbmFibGVkOiAhdGhpcy5vcHRpb25zLmRpc3RhbmNlIHx8IHRoaXMub3B0aW9ucy5kaXN0YW5jZSA9PT0gMTAwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJzUwMCBtJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDUwMCxcbiAgICAgICAgICAgICAgZW5hYmxlZDogdGhpcy5vcHRpb25zLmRpc3RhbmNlID09PSA1MDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMSBrbScsXG4gICAgICAgICAgICAgIHZhbHVlOiAxMDAwLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDEwMDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnMiBrbScsXG4gICAgICAgICAgICAgIHZhbHVlOiAyMDAwLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDIwMDBcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnNSBrbScsXG4gICAgICAgICAgICAgIHZhbHVlOiA1MDAwLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDUwMDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaCBhIGxvY2F0aW9uIGJ5IGNvb3JkaW5hdGVzXG4gICAqIEBwYXJhbSBsb25MYXQgTG9jYXRpb24gY29vcmRpbmF0ZXNcbiAgICogQHBhcmFtIGRpc3RhbmNlIFNlYXJjaCByYWlkdXMgYXJvdW5kIGxvbkxhdFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIDxTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXVxuICAgKi9cbiAgQENhY2hlYWJsZSh7XG4gICAgbWF4Q2FjaGVDb3VudDogMjBcbiAgfSlcbiAgcmV2ZXJzZVNlYXJjaChcbiAgICBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl0sXG4gICAgb3B0aW9ucz86IFJldmVyc2VTZWFyY2hPcHRpb25zXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PEZlYXR1cmU+W10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbXB1dGVSZXF1ZXN0UGFyYW1zKGxvbkxhdCwgb3B0aW9ucyB8fCB7fSk7XG4gICAgaWYgKCFwYXJhbXMuZ2V0KCd0eXBlJykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnNlYXJjaFVybH0vbG9jYXRlYCwgeyBwYXJhbXMgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IElDaGVyY2hlUmV2ZXJzZVJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RSZXN1bHRzKHJlc3BvbnNlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWxsb3dlZFR5cGVzKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoYCR7dGhpcy5zZWFyY2hVcmx9L3R5cGVzYClcbiAgICAgIC5zdWJzY3JpYmUoKHR5cGVzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICBjb25zdCB0eXBlU2V0dGluZyA9IHRoaXMuc2V0dGluZ3MuZmluZCgocykgPT4gcy5uYW1lID09PSAndHlwZScpO1xuICAgICAgICB0eXBlU2V0dGluZy52YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgIHYuYXZhaWxhYmxlID0gdHlwZXMuaW5kZXhPZih2LnZhbHVlIGFzIHN0cmluZykgPiAtMTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0UGFyYW1Gcm9tU2V0dGluZyh0eXBlU2V0dGluZywgZmFsc2UpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVSZXF1ZXN0UGFyYW1zKFxuICAgIGxvbkxhdDogW251bWJlciwgbnVtYmVyXSxcbiAgICBvcHRpb25zPzogUmV2ZXJzZVNlYXJjaE9wdGlvbnNcbiAgKTogSHR0cFBhcmFtcyB7XG4gICAgaWYgKG9wdGlvbnMuZGlzdGFuY2UgfHwgdGhpcy5vcHRpb25zLmRpc3RhbmNlKSB7XG4gICAgICBvcHRpb25zLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucy5wYXJhbXMgfHwge30sIHtcbiAgICAgICAgYnVmZmVySW5wdXQ6IG9wdGlvbnMuZGlzdGFuY2UgfHwgdGhpcy5vcHRpb25zLmRpc3RhbmNlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgZnJvbU9iamVjdDogT2JqZWN0LmFzc2lnbihcbiAgICAgICAge1xuICAgICAgICAgIGxvYzogbG9uTGF0LmpvaW4oJywnKSxcbiAgICAgICAgICBzb3J0OiAnZGlzdGFuY2UnLFxuICAgICAgICAgIGdlb21ldHJ5OiB0cnVlLFxuICAgICAgICAgIGljb246IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucy5wYXJhbXMgfHwge30sXG4gICAgICAgIHRoaXMucGFyYW1zXG4gICAgICApXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RSZXN1bHRzKFxuICAgIHJlc3BvbnNlOiBJQ2hlcmNoZVJldmVyc2VSZXNwb25zZVxuICApOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXSB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmZlYXR1cmVzLm1hcCgoZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YVRvUmVzdWx0KGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdWJ0aXRsZShkYXRhOiBJQ2hlcmNoZVJldmVyc2VEYXRhKSB7XG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBsZXQgc3VidGl0bGUgPSAnJztcbiAgICBzd2l0Y2ggKGRhdGEucHJvcGVydGllcy50eXBlKSB7XG4gICAgICBjYXNlICdhcnJvbmRpc3NlbWVudHMnOlxuICAgICAgICBzdWJ0aXRsZSA9IGRhdGEucHJvcGVydGllcy5tdW5pY2lwYWxpdGUgKyAnIChBcnJvbmRpc3NlbWVudCknO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnN0IHR5cGVTZXR0aW5nID0gdGhpcy5zZXR0aW5ncy5maW5kKChzKSA9PiBzLm5hbWUgPT09ICd0eXBlJyk7XG4gICAgICAgIGNvbnN0IHR5cGUgPSB0eXBlU2V0dGluZy52YWx1ZXMuZmluZChcbiAgICAgICAgICAodCkgPT4gdC52YWx1ZSA9PT0gZGF0YS5wcm9wZXJ0aWVzLnR5cGVcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICBzdWJ0aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHR5cGUudGl0bGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdWJ0aXRsZTtcbiAgfVxuXG4gIHByaXZhdGUgZGF0YVRvUmVzdWx0KGRhdGE6IElDaGVyY2hlUmV2ZXJzZURhdGEpOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4ge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmNvbXB1dGVQcm9wZXJ0aWVzKGRhdGEpO1xuICAgIGNvbnN0IGV4dGVudCA9IHRoaXMuY29tcHV0ZUV4dGVudChkYXRhKTtcbiAgICBjb25zdCBpZCA9IFt0aGlzLmdldElkKCksIHByb3BlcnRpZXMudHlwZSwgcHJvcGVydGllcy5jb2RlXS5qb2luKCcuJyk7XG5cbiAgICBjb25zdCB0aXRsZUh0bWwgPSBkYXRhLnByb3BlcnRpZXMubm9tO1xuICAgIGNvbnN0IHN1YnRpdGxlSHRtbCA9ICcgPHNtYWxsPiAnICsgdGhpcy5nZXRTdWJ0aXRsZShkYXRhKSArICc8L3NtYWxsPic7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc291cmNlOiB0aGlzLFxuICAgICAgZGF0YToge1xuICAgICAgICB0eXBlOiBGRUFUVVJFLFxuICAgICAgICBwcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgZ2VvbWV0cnk6IGRhdGEuZ2VvbWV0cnksXG4gICAgICAgIGV4dGVudCxcbiAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgbWV0YToge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHRpdGxlOiBkYXRhLnByb3BlcnRpZXMubm9tXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBtZXRhOiB7XG4gICAgICAgIGRhdGFUeXBlOiBGRUFUVVJFLFxuICAgICAgICBpZCxcbiAgICAgICAgdGl0bGU6IGRhdGEucHJvcGVydGllcy5ub20sXG4gICAgICAgIHRpdGxlSHRtbDogdGl0bGVIdG1sICsgc3VidGl0bGVIdG1sLFxuICAgICAgICBpY29uOiBkYXRhLmljb24gfHwgJ21hcC1tYXJrZXInLFxuICAgICAgICBwb2ludGVyU3VtbWFyeVRpdGxlOiB0aGlzLmdldFN1YnRpdGxlKGRhdGEpKyAnOiAnICsgZGF0YS5wcm9wZXJ0aWVzLm5vbVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVQcm9wZXJ0aWVzKGRhdGE6IElDaGVyY2hlUmV2ZXJzZURhdGEpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0VXRpbHMucmVtb3ZlS2V5cyhcbiAgICAgIGRhdGEucHJvcGVydGllcyxcbiAgICAgIElDaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZS5wcm9wZXJ0aWVzQmxhY2tsaXN0XG4gICAgKTtcblxuICAgIGNvbnN0IHJvdXRpbmc6IHtcbiAgICAgIFJvdXRlOiBzdHJpbmc7XG4gICAgfSA9IHtcbiAgICAgIFJvdXRlOlxuICAgICAgICAnPHNwYW4gY2xhc3M9XCJyb3V0aW5nXCI+IDx1PicgK1xuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWVSb3V0aW5nJykgK1xuICAgICAgICAnPC91PiA8L3NwYW4+J1xuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcm9wZXJ0aWVzLCByb3V0aW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZUV4dGVudChcbiAgICBkYXRhOiBJQ2hlcmNoZVJldmVyc2VEYXRhXG4gICk6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZGF0YS5iYm94XG4gICAgICA/IFtkYXRhLmJib3hbMF0sIGRhdGEuYmJveFsyXSwgZGF0YS5iYm94WzFdLCBkYXRhLmJib3hbM11dXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
|
767
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoZXJjaGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvaWNoZXJjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxVQUFVLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7QUFFbEYsT0FBTyxFQUFjLEVBQUUsRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxjQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLE9BQU8sRUFBVyxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUE2QixNQUFNLFVBQVUsQ0FBQztBQVluRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBR3pDLE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQUcsQ0FBQztJQUV4RCxZQUFZLENBQUMsTUFBNkI7UUFDeEMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7MEdBTFUsNkJBQTZCO21GQUE3Qiw2QkFBNkIsV0FBN0IsNkJBQTZCO3VGQUE3Qiw2QkFBNkI7Y0FEekMsVUFBVTs7QUFTWCwy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SUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7O0FBaFJNLDhCQUFFLEdBQUcsaUJBQWlCLENBQUM7QUFDdkIsZ0NBQUksR0FBRyxPQUFPLENBQUM7QUFDZiwrQ0FBbUIsR0FBYSxFQUFHLENBQUE7c0dBSi9CLDJCQUEyQiwyR0FnQjVCLFNBQVM7aUZBaEJSLDJCQUEyQixXQUEzQiwyQkFBMkI7O0lBdUlyQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDO2dFQWNEO3VGQXZKVSwyQkFBMkI7Y0FEdkMsVUFBVTs7c0JBaUJOLE1BQU07dUJBQUMsU0FBUzsrQ0EwSG5CLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBQYXJhbWV0ZXJDb2RlYyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCBwb2ludE9uRmVhdHVyZSBmcm9tICdAdHVyZi9wb2ludC1vbi1mZWF0dXJlJztcclxuXHJcbmltcG9ydCB7IEZFQVRVUkUsIEZlYXR1cmUgfSBmcm9tICcuLi8uLi8uLi9mZWF0dXJlJztcclxuaW1wb3J0IHsgR29vZ2xlTGlua3MgfSBmcm9tICcuLy4uLy4uLy4uL3V0aWxzL2dvb2dsZUxpbmtzJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaC5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2VhcmNoU291cmNlLCBUZXh0U2VhcmNoLCBSZXZlcnNlU2VhcmNoIH0gZnJvbSAnLi9zb3VyY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaFNvdXJjZU9wdGlvbnMsXHJcbiAgVGV4dFNlYXJjaE9wdGlvbnMsXHJcbiAgUmV2ZXJzZVNlYXJjaE9wdGlvbnNcclxufSBmcm9tICcuL3NvdXJjZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBJQ2hlcmNoZURhdGEsXHJcbiAgSUNoZXJjaGVSZXNwb25zZSxcclxuICBJQ2hlcmNoZVJldmVyc2VEYXRhLFxyXG4gIElDaGVyY2hlUmV2ZXJzZVJlc3BvbnNlXHJcbn0gZnJvbSAnLi9pY2hlcmNoZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgY29tcHV0ZVRlcm1TaW1pbGFyaXR5IH0gZnJvbSAnLi4vc2VhcmNoLnV0aWxzJztcclxuaW1wb3J0IHsgQ2FjaGVhYmxlIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlKSB7fVxyXG5cclxuICBmb3JtYXRSZXN1bHQocmVzdWx0OiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4pOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4ge1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuXHJcbi8vIEZpeCB0aGUgXCIrXCIgaXMgcmVwbGFjZWQgd2l0aCBzcGFjZSBcIiBcIiBpbiBhIHF1ZXJ5IHN0cmluZ1xyXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMTA1OFxyXG5leHBvcnQgY2xhc3MgSWdvSHR0cFBhcmFtZXRlckNvZGVjIGltcGxlbWVudHMgSHR0cFBhcmFtZXRlckNvZGVjIHtcclxuICBlbmNvZGVLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChrZXkpO1xyXG4gIH1cclxuXHJcbiAgZW5jb2RlVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGRlY29kZUtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XHJcbiAgfVxyXG5cclxuICBkZWNvZGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIElDaGVyY2hlIHNlYXJjaCBzb3VyY2VcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIElDaGVyY2hlU2VhcmNoU291cmNlIGV4dGVuZHMgU2VhcmNoU291cmNlIGltcGxlbWVudHMgVGV4dFNlYXJjaCB7XHJcbiAgc3RhdGljIGlkID0gJ2ljaGVyY2hlJztcclxuICBzdGF0aWMgdHlwZSA9IEZFQVRVUkU7XHJcbiAgc3RhdGljIHByb3BlcnRpZXNCbGFja2xpc3Q6IHN0cmluZ1tdID0gW107XHJcbiAgdGl0bGUkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcblxyXG4gIHByaXZhdGUgaGFzaHRhZ3NMaWV1eFRvS2VlcCA9IFtdO1xyXG5cclxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRpdGxlJC5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnb3B0aW9ucycpIG9wdGlvbnM6IFNlYXJjaFNvdXJjZU9wdGlvbnMsXHJcbiAgICBASW5qZWN0KElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKVxyXG4gICAgcHJpdmF0ZSBmb3JtYXR0ZXI6IElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgICBzdXBlcihvcHRpb25zLCBzdG9yYWdlU2VydmljZSk7XHJcblxyXG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQXV0aFNlcnZpY2UpO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MubGVuZ3RoKSB7XHJcbiAgICAgIGlmICghYXV0aFNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmdldEFsbG93ZWRUeXBlcygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0QWxsb3dlZFR5cGVzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxhbmd1YWdlU2VydmljZS5sYW5ndWFnZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy50aXRsZSQubmV4dCh0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0aGlzLm9wdGlvbnMudGl0bGUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBJQ2hlcmNoZVNlYXJjaFNvdXJjZS5pZDtcclxuICB9XHJcblxyXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBJQ2hlcmNoZVNlYXJjaFNvdXJjZS50eXBlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRPcHRpb25zKCk6IFNlYXJjaFNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgbGltaXQgPVxyXG4gICAgICB0aGlzLm9wdGlvbnMucGFyYW1zICYmIHRoaXMub3B0aW9ucy5wYXJhbXMubGltaXRcclxuICAgICAgICA/IE51bWJlcih0aGlzLm9wdGlvbnMucGFyYW1zLmxpbWl0KVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgZWNtYXggPVxyXG4gICAgICB0aGlzLm9wdGlvbnMucGFyYW1zICYmIHRoaXMub3B0aW9ucy5wYXJhbXMuZWNtYXhcclxuICAgICAgICA/IE51bWJlcih0aGlzLm9wdGlvbnMucGFyYW1zLmVjbWF4KVxyXG4gICAgICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbnN0IHR5cGVzID0gdGhpcy5vcHRpb25zLnBhcmFtcz8udHlwZVxyXG4gICAgICAgID8gdGhpcy5vcHRpb25zLnBhcmFtcy50eXBlLnJlcGxhY2UoL1xccy9nLCAnJykudG9Mb3dlckNhc2UoKS5zcGxpdCgnLCcpXHJcbiAgICAgICAgOiBbXHJcbiAgICAgICAgICAgICdhZHJlc3NlcycsXHJcbiAgICAgICAgICAgICdjb2Rlcy1wb3N0YXV4JyxcclxuICAgICAgICAgICAgJ3JvdXRlcycsXHJcbiAgICAgICAgICAgICdpbnRlcnNlY3Rpb25zJyxcclxuICAgICAgICAgICAgJ211bmljaXBhbGl0ZXMnLFxyXG4gICAgICAgICAgICAnbXJjJyxcclxuICAgICAgICAgICAgJ3JlZ2FkbWluJyxcclxuICAgICAgICAgICAgJ2xpZXV4J1xyXG4gICAgICAgICAgXTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLm5hbWUnLFxyXG4gICAgICBzZWFyY2hVcmw6ICdodHRwczovL2dlb2VnbC5tc3AuZ291di5xYy5jYS9hcGlzL2ljaGVyY2hlJyxcclxuICAgICAgc2V0dGluZ3M6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxyXG4gICAgICAgICAgdGl0bGU6ICdyZXN1bHRzIHR5cGUnLFxyXG4gICAgICAgICAgbmFtZTogJ3R5cGUnLFxyXG4gICAgICAgICAgdmFsdWVzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuYWRkcmVzcycsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdhZHJlc3NlcycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignYWRyZXNzZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYWRyZXNzZSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUub2xkQWRkcmVzcycsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdhbmNpZW5uZXMtYWRyZXNzZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FuY2llbm5lcy1hZHJlc3NlcycpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydhbmNpZW5uZXMtYWRyZXNzZXMnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLm9sZENpdHknLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYW5jaWVubmVzLW11bmljaXBhbGl0ZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FuY2llbm5lcy1tdW5pY2lwYWxpdGVzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2FuY2llbm5lcy1tdW5pY2lwYWxpdGVzJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdib3JuZXMtY24nLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Jvcm5lcy1jbicpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydib3JuZScsICdib3JuZXMnLCAnY24nXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnN1bWknLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYm9ybmVzLXN1bWknLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Jvcm5lcy1zdW1pJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2Jvcm5lJywgJ2Jvcm5lcycsICdzdW1pJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jYWRhc3RyZScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdjYWRhc3RyZScsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignY2FkYXN0cmUnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnY2FkYXN0cmUnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnBvc3RhbENvZGUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnY29kZXMtcG9zdGF1eCcsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignY29kZXMtcG9zdGF1eCcpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydjb2RlLXBvc3RhbCddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZW50cmVwcmlzZScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdlbnRyZXByaXNlcycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignZW50cmVwcmlzZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgYXZhaWxhYmxlOiBmYWxzZSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydlbnRyZXByaXNlJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jeWNsZVN0b3AnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnaGFsdGVzX2N5Y2xhYmxlcycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignaGFsdGVzX2N5Y2xhYmxlcycpICE9PSAtMSxcclxuICAgICAgICAgICAgICBoYXNodGFnczogWydoYWx0ZXZlbG8nLCdoYWx0ZXNfY3ljbGFibGVzJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZXN0QXJlYScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdoYWx0ZXNfcm91dGllcmVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdoYWx0ZXNfcm91dGllcmVzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2hhbHRlcm91dGUnLCdoYWx0ZXNfcm91dGllcmVzJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5ocScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdocScsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignaHEnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnaHEnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmludGVyc2VjdGlvbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdpbnRlcnNlY3Rpb25zJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdpbnRlcnNlY3Rpb25zJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ2ludGVyc2VjdGlvbicsICcrJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5wbGFjZScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdsaWV1eCcsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignbGlldXgnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnbGlldSddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUubXJjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ21yYycsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZignbXJjJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ21yYyddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuY2l0eScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdtdW5pY2lwYWxpdGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtdW5pY2lwYWxpdGVzJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ211bmljaXBhbGl0w6knLCAnbXVuJ11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdyZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZigncmVnYWRtaW4nKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsncsOpZ2lvbi1hZG1pbmlzdHJhdGl2ZScsICdyZWdhZG1pbiddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZ2NjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2Jvcm5lcy1nY2MnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2Jvcm5lcy1nY2MnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3JlcMOocmUnLCAnZ2NjJywgJ2NjZyddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUua20nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYm9ybmVzLWttJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdib3JuZXMta20nKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsnYm9ybmUnLCAnYm9ybmVzJywgJ3JlcMOocmUnLCAna20nXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLnJvYWQnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAncm91dGVzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdyb3V0ZXMnKSAhPT0gLTEsXHJcbiAgICAgICAgICAgICAgaGFzaHRhZ3M6IFsncm91dGUnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmV4aXQnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnc29ydGllcy1hdXRvcm91dGUnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ3NvcnRpZXMtYXV0b3JvdXRlJykgIT09IC0xLFxyXG4gICAgICAgICAgICAgIGhhc2h0YWdzOiBbJ3NvcnRpZScsICdzb3J0aWVzJywgJ2V4aXQnXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiAncmFkaW9idXR0b24nLFxyXG4gICAgICAgICAgdGl0bGU6ICdyZXN1bHRzIGxpbWl0JyxcclxuICAgICAgICAgIG5hbWU6ICdsaW1pdCcsXHJcbiAgICAgICAgICB2YWx1ZXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnNScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDUsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDUgfHwgIWxpbWl0XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzEwJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMTAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDEwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzI1JyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMjUsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDI1XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzUwJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogNTAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogbGltaXQgPT09IDUwXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6ICdyYWRpb2J1dHRvbicsXHJcbiAgICAgICAgICB0aXRsZTogJ2VjbWF4JyxcclxuICAgICAgICAgIG5hbWU6ICdlY21heCcsXHJcbiAgICAgICAgICB2YWx1ZXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAgJScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDEwLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGVjbWF4ID09PSAxMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICczMCAlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMzAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDMwIHx8ICFlY21heFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICc1MCAlJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogNTAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDUwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzc1ICUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiA3NSxcclxuICAgICAgICAgICAgICBlbmFibGVkOiBlY21heCA9PT0gNzVcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAwICUnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAxMDAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZWNtYXggPT09IDEwMFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiAncmFkaW9idXR0b24nLFxyXG4gICAgICAgICAgdGl0bGU6ICdyZXN0cmljdEV4dGVudCcsXHJcbiAgICAgICAgICBuYW1lOiAnbG9jJyxcclxuICAgICAgICAgIHZhbHVlczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS5yZXN0cmljdEV4dGVudC5tYXAnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAndHJ1ZScsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2VcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUucmVzdHJpY3RFeHRlbnQucXVlYmVjJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2ZhbHNlJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWFyY2ggYSBsb2NhdGlvbiBieSBuYW1lIG9yIGtleXdvcmRcclxuICAgKiBAcGFyYW0gdGVybSBMb2NhdGlvbiBuYW1lIG9yIGtleXdvcmRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIDxTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXVxyXG4gICAqL1xyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjBcclxuICB9KVxyXG4gIHNlYXJjaChcclxuICAgIHRlcm06IHN0cmluZyxcclxuICAgIG9wdGlvbnM/OiBUZXh0U2VhcmNoT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PEZlYXR1cmU+W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tcHV0ZVJlcXVlc3RQYXJhbXModGVybSwgb3B0aW9ucyB8fCB7fSk7XHJcbiAgICBpZiAoIXBhcmFtcy5nZXQoJ3R5cGUnKS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgIH1cclxuICAgIHRoaXMub3B0aW9ucy5wYXJhbXMucGFnZSA9IHBhcmFtcy5nZXQoJ3BhZ2UnKSB8fCAnMSc7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zZWFyY2hVcmx9L2dlb2NvZGVgLCB7IHBhcmFtcyB9KS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOiBJQ2hlcmNoZVJlc3BvbnNlKSA9PiB0aGlzLmV4dHJhY3RSZXN1bHRzKHJlc3BvbnNlLCB0ZXJtKSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGVyci5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgIGVyci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgdGhpcy5nZXREZWZhdWx0T3B0aW9ucygpLnRpdGxlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBbGxvd2VkVHlwZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy5zZWFyY2hVcmx9L3R5cGVzYClcclxuICAgICAgLnN1YnNjcmliZSgodHlwZXM6IHN0cmluZ1tdKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdHlwZVNldHRpbmcgPSB0aGlzLnNldHRpbmdzLmZpbmQoKHMpID0+IHMubmFtZSA9PT0gJ3R5cGUnKTtcclxuICAgICAgICB0eXBlU2V0dGluZy52YWx1ZXMuZm9yRWFjaCgodikgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeJHt2LnZhbHVlfShcXFxcLnwkKWApO1xyXG4gICAgICAgICAgY29uc3QgdHlwZXNNYXRjaGVkID0gdHlwZXMuZmlsdGVyKCh2YWx1ZSkgPT4gcmVnZXgudGVzdCh2YWx1ZSkpO1xyXG4gICAgICAgICAgdi5hdmFpbGFibGUgPSB0eXBlc01hdGNoZWQubGVuZ3RoID4gMDtcclxuICAgICAgICAgIGlmICh2LnZhbHVlID09PSAnbGlldXgnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzaHRhZ3NMaWV1eFRvS2VlcCA9IFtcclxuICAgICAgICAgICAgICAuLi4obmV3IFNldChcclxuICAgICAgICAgICAgICAgIHR5cGVzTWF0Y2hlZFxyXG4gICAgICAgICAgICAgICAgICAubWFwKCh0KSA9PiB0LnNwbGl0KCcuJykpXHJcbiAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpKVxyXG4gICAgICAgICAgICAgICAgICAuZmlsdGVyKCh0KSA9PiB0ICE9PSAnbGlldXgnKVxyXG4gICAgICAgICAgICAgICkgYXMgYW55KVxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2V0UGFyYW1Gcm9tU2V0dGluZyh0eXBlU2V0dGluZywgZmFsc2UpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZVJlcXVlc3RQYXJhbXMoXHJcbiAgICB0ZXJtOiBzdHJpbmcsXHJcbiAgICBvcHRpb25zOiBUZXh0U2VhcmNoT3B0aW9uc1xyXG4gICk6IEh0dHBQYXJhbXMge1xyXG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IGFueSA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHtcclxuICAgICAgICBnZW9tZXRyeTogdHJ1ZSxcclxuICAgICAgICBiYm94OiB0cnVlLFxyXG4gICAgICAgIGljb246IHRydWUsXHJcbiAgICAgICAgdHlwZTpcclxuICAgICAgICAgICdhZHJlc3Nlcyxjb2Rlcy1wb3N0YXV4LG11bmljaXBhbGl0ZXMsbXJjLHJlZ2FkbWluLGxpZXV4LGVudHJlcHJpc2VzLGJvcm5lcy1zdW1pJ1xyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLnBhcmFtcyxcclxuICAgICAgdGhpcy5jb21wdXRlT3B0aW9uc1BhcmFtKHRlcm0sIG9wdGlvbnMgfHwge30pLnBhcmFtcyxcclxuICAgICAge1xyXG4gICAgICAgIHE6IHRoaXMuY29tcHV0ZVRlcm0odGVybSksXHJcbiAgICAgICAgcGFnZTogb3B0aW9ucy5wYWdlXHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgaWYgKHF1ZXJ5UGFyYW1zLmxvYyA9PT0gJ3RydWUnKSB7XHJcbiAgICAgIGNvbnN0IFt4TWluLCB5TWluLCB4TWF4LCB5TWF4XSA9IG9wdGlvbnMuZXh0ZW50O1xyXG4gICAgICBxdWVyeVBhcmFtcy5sb2MgPSBgJHt4TWlufSwke3lNaW59OyR7eE1heH0sJHt5TWlufTske3hNYXh9LCR7eU1heH07JHt4TWlufSwke3lNYXh9OyR7eE1pbn0sJHt5TWlufWA7XHJcbiAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLmxvYyA9PT0gJ2ZhbHNlJykge1xyXG4gICAgICBkZWxldGUgcXVlcnlQYXJhbXMubG9jO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgvI1tBLVphLXpdKy8udGVzdChxdWVyeVBhcmFtcy5xKSkge1xyXG4gICAgICBxdWVyeVBhcmFtcy50eXBlID0gJ2xpZXV4JztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICBmcm9tT2JqZWN0OiBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQocXVlcnlQYXJhbXMpLFxyXG4gICAgICBlbmNvZGVyOiBuZXcgSWdvSHR0cFBhcmFtZXRlckNvZGVjKClcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0UmVzdWx0cyhyZXNwb25zZTogSUNoZXJjaGVSZXNwb25zZSwgdGVybTogc3RyaW5nKTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+W10ge1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmZlYXR1cmVzLm1hcCgoZGF0YTogSUNoZXJjaGVEYXRhKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5mb3JtYXRSZXN1bHQodGhpcy5kYXRhVG9SZXN1bHQoZGF0YSwgdGVybSwgcmVzcG9uc2UpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkYXRhVG9SZXN1bHQoXHJcbiAgICBkYXRhOiBJQ2hlcmNoZURhdGEsXHJcbiAgICB0ZXJtOiBzdHJpbmcsXHJcbiAgICByZXNwb25zZT86IElDaGVyY2hlUmVzcG9uc2VcclxuICApOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT4ge1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuY29tcHV0ZVByb3BlcnRpZXMoZGF0YSk7XHJcbiAgICBjb25zdCBpZCA9IFt0aGlzLmdldElkKCksIHByb3BlcnRpZXMudHlwZSwgcHJvcGVydGllcy5jb2RlXS5qb2luKCcuJyk7XHJcblxyXG4gICAgY29uc3QgdGl0bGVIdG1sID0gZGF0YS5oaWdobGlnaHQudGl0bGUgfHwgZGF0YS5wcm9wZXJ0aWVzLm5vbTtcclxuICAgIGNvbnN0IHN1YnRpdGxlSHRtbCA9IGRhdGEuaGlnaGxpZ2h0LnRpdGxlMlxyXG4gICAgICA/ICcgPHNtYWxsPiAnICsgZGF0YS5oaWdobGlnaHQudGl0bGUyICsgJzwvc21hbGw+J1xyXG4gICAgICA6ICcnO1xyXG4gICAgY29uc3Qgc3VidGl0bGVIdG1sMiA9IGRhdGEuaGlnaGxpZ2h0LnRpdGxlM1xyXG4gICAgICA/ICc8YnI+PHNtYWxsPiAnICsgZGF0YS5oaWdobGlnaHQudGl0bGUzICsgJzwvc21hbGw+J1xyXG4gICAgICA6ICcnO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNvdXJjZTogdGhpcyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICAgICAgcHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZ2VvbWV0cnk6IGRhdGEuZ2VvbWV0cnksXHJcbiAgICAgICAgZXh0ZW50OiBkYXRhLmJib3gsXHJcbiAgICAgICAgcHJvcGVydGllcyxcclxuICAgICAgICBtZXRhOiB7XHJcbiAgICAgICAgICBpZCxcclxuICAgICAgICAgIHRpdGxlOiBkYXRhLnByb3BlcnRpZXMubm9tXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBtZXRhOiB7XHJcbiAgICAgICAgZGF0YVR5cGU6IEZFQVRVUkUsXHJcbiAgICAgICAgaWQsXHJcbiAgICAgICAgdGl0bGU6IGRhdGEucHJvcGVydGllcy5ub20sXHJcbiAgICAgICAgdGl0bGVIdG1sOiB0aXRsZUh0bWwgKyBzdWJ0aXRsZUh0bWwgKyBzdWJ0aXRsZUh0bWwyLFxyXG4gICAgICAgIGljb246IGRhdGEuaWNvbiB8fCAnbWFwLW1hcmtlcicsXHJcbiAgICAgICAgc2NvcmU6IGRhdGEuc2NvcmUgfHwgY29tcHV0ZVRlcm1TaW1pbGFyaXR5KHRlcm0udHJpbSgpLCBkYXRhLnByb3BlcnRpZXMubm9tKSxcclxuICAgICAgICBuZXh0UGFnZTpcclxuICAgICAgICAgIHJlc3BvbnNlLmZlYXR1cmVzLmxlbmd0aCAlICt0aGlzLm9wdGlvbnMucGFyYW1zLmxpbWl0ID09PSAwICYmXHJcbiAgICAgICAgICArdGhpcy5vcHRpb25zLnBhcmFtcy5wYWdlIDwgMTBcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZVByb3BlcnRpZXMoZGF0YTogSUNoZXJjaGVEYXRhKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0VXRpbHMucmVtb3ZlS2V5cyhcclxuICAgICAgZGF0YS5wcm9wZXJ0aWVzLFxyXG4gICAgICBJQ2hlcmNoZVNlYXJjaFNvdXJjZS5wcm9wZXJ0aWVzQmxhY2tsaXN0XHJcbiAgICApO1xyXG5cclxuICAgIGlmICghZGF0YS5nZW9tZXRyeSkge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IHR5cGU6IGRhdGEuaW5kZXggfSwgcHJvcGVydGllcyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZ29vZ2xlTGlua3NQcm9wZXJ0aWVzOiB7XHJcbiAgICAgIEdvb2dsZU1hcHM6IHN0cmluZztcclxuICAgICAgR29vZ2xlU3RyZWV0Vmlldz86IHN0cmluZztcclxuICAgIH0gPSB7XHJcbiAgICAgIEdvb2dsZU1hcHM6ICcnXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBnb29nbGVNYXBzO1xyXG4gICAgaWYgKGRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50Jykge1xyXG4gICAgICBnb29nbGVNYXBzID0gR29vZ2xlTGlua3MuZ2V0R29vZ2xlTWFwc0Nvb3JkTGluayhcclxuICAgICAgICBkYXRhLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxyXG4gICAgICAgIGRhdGEuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBvaW50ID0gcG9pbnRPbkZlYXR1cmUoZGF0YS5nZW9tZXRyeSk7XHJcbiAgICAgIGdvb2dsZU1hcHMgPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzQ29vcmRMaW5rKFxyXG4gICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLFxyXG4gICAgICAgIHBvaW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGdvb2dsZU1hcHNOb207XHJcbiAgICBpZiAoZGF0YS5pbmRleCA9PT0gJ3JvdXRlcycpIHtcclxuICAgICAgZ29vZ2xlTWFwc05vbSA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZU1hcHNOYW1lTGluayhcclxuICAgICAgICBkYXRhLnByb3BlcnRpZXMubm9tICsgJywgJyArIGRhdGEucHJvcGVydGllcy5tdW5pY2lwYWxpdGVcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0YS5pbmRleCA9PT0gJ211bmljaXBhbGl0ZXMnKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgZGF0YS5wcm9wZXJ0aWVzLm5vbSArICcsICcgKyAndmlsbGUnXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKGRhdGEuaW5kZXggPT09ICdtcmMnKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgJ21yYysnICsgZGF0YS5wcm9wZXJ0aWVzLm5vbVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhLmluZGV4ID09PSAncmVnYWRtaW4nKSB7XHJcbiAgICAgIGdvb2dsZU1hcHNOb20gPSBHb29nbGVMaW5rcy5nZXRHb29nbGVNYXBzTmFtZUxpbmsoXHJcbiAgICAgICAgZGF0YS5wcm9wZXJ0aWVzLm5vbSArICcsK1FDJ1xyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZ29vZ2xlTWFwc05vbSA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZU1hcHNOYW1lTGluayhcclxuICAgICAgICBkYXRhLnByb3BlcnRpZXMubm9tIHx8IGRhdGEuaGlnaGxpZ2h0LnRpdGxlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ29vZ2xlTGlua3NQcm9wZXJ0aWVzLkdvb2dsZU1hcHMgPVxyXG4gICAgICAnPGEgaHJlZj0nICtcclxuICAgICAgZ29vZ2xlTWFwcyArXHJcbiAgICAgICcgdGFyZ2V0PVwiX2JsYW5rXCI+JyArXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLnNlYXJjaEJ5Q29vcmQnKSArXHJcbiAgICAgICc8L2E+IDxiciAvPiA8YSBocmVmPScgK1xyXG4gICAgICBnb29nbGVNYXBzTm9tICtcclxuICAgICAgJyB0YXJnZXQ9XCJfYmxhbmtcIj4nICtcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VhcmNoQnlOYW1lJykgK1xyXG4gICAgICAnPC9hPic7XHJcblxyXG4gICAgaWYgKGRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50Jykge1xyXG4gICAgICBnb29nbGVMaW5rc1Byb3BlcnRpZXMuR29vZ2xlU3RyZWV0VmlldyA9IEdvb2dsZUxpbmtzLmdldEdvb2dsZVN0cmVldFZpZXdMaW5rKFxyXG4gICAgICAgIGRhdGEuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0sXHJcbiAgICAgICAgZGF0YS5nZW9tZXRyeS5jb29yZGluYXRlc1sxXVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJvdXRpbmc6IHtcclxuICAgICAgUm91dGU6IHN0cmluZztcclxuICAgIH0gPSB7XHJcbiAgICAgIFJvdXRlOlxyXG4gICAgICAgICc8c3BhbiBjbGFzcz1cInJvdXRpbmdcIj4gPHU+JyArXHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uc2VlUm91dGluZycpICtcclxuICAgICAgICAnPC91PiA8L3NwYW4+J1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcclxuICAgICAgeyB0eXBlOiBkYXRhLmluZGV4IH0sXHJcbiAgICAgIHByb3BlcnRpZXMsXHJcbiAgICAgIGdvb2dsZUxpbmtzUHJvcGVydGllcyxcclxuICAgICAgcm91dGluZ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBoYXNodGFnIGZyb20gcXVlcnlcclxuICAgKiBAcGFyYW0gdGVybSBRdWVyeSB3aXRoIGhhc2h0YWdcclxuICAgKi9cclxuICBwcml2YXRlIGNvbXB1dGVUZXJtKHRlcm06IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBLZWVwIGhhc2h0YWdzIGZvciBcImxpZXV4XCJcclxuICAgIGNvbnN0IGhhc2h0YWdzID0gdGVybS5tYXRjaCgvKCNbQS1aYS16XSspL2cpIHx8IFtdO1xyXG4gICAgbGV0IGtlZXAgPSBmYWxzZTtcclxuICAgIGtlZXAgPSBoYXNodGFncy5zb21lKChoYXNodGFnKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhc2h0YWdLZXkgPSBoYXNodGFnLnN1YnN0cmluZygxKTtcclxuICAgICAgcmV0dXJuIHRoaXMuaGFzaHRhZ3NMaWV1eFRvS2VlcC5zb21lKFxyXG4gICAgICAgIChoKSA9PlxyXG4gICAgICAgICAgaFxyXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpID09PVxyXG4gICAgICAgICAgaGFzaHRhZ0tleVxyXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoIWtlZXApIHtcclxuICAgICAgdGVybSA9IHRlcm0ucmVwbGFjZSgvKCNbQS1aYS16XSspL2csICcnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGVybS5yZXBsYWNlKC9bXlxcd8OALcO/ICFcXC1cXCtcXChcXClcXC5cXC/CvcK8wr4sJyNdKy9nLCAnJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgaGFzaHRhZyB0byBwYXJhbSBpZiB2YWxpZFxyXG4gICAqIEBwYXJhbSB0ZXJtIFF1ZXJ5IHdpdGggaGFzaHRhZ1xyXG4gICAqIEBwYXJhbSBvcHRpb25zIFRleHRTZWFyY2hPcHRpb25zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb21wdXRlT3B0aW9uc1BhcmFtKFxyXG4gICAgdGVybTogc3RyaW5nLFxyXG4gICAgb3B0aW9uczogVGV4dFNlYXJjaE9wdGlvbnNcclxuICApOiBUZXh0U2VhcmNoT3B0aW9ucyB7XHJcbiAgICBjb25zdCBoYXNodGFncyA9IHN1cGVyLmdldEhhc2h0YWdzVmFsaWQodGVybSwgJ3R5cGUnKTtcclxuICAgIGlmIChoYXNodGFncykge1xyXG4gICAgICBvcHRpb25zLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucy5wYXJhbXMgfHwge30sIHtcclxuICAgICAgICB0eXBlOiBoYXNodGFncy5qb2luKCcsJylcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogSUNoZXJjaGVSZXZlcnNlIHNlYXJjaCBzb3VyY2VcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIElDaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZSBleHRlbmRzIFNlYXJjaFNvdXJjZVxyXG4gIGltcGxlbWVudHMgUmV2ZXJzZVNlYXJjaCB7XHJcbiAgc3RhdGljIGlkID0gJ2ljaGVyY2hlcmV2ZXJzZSc7XHJcbiAgc3RhdGljIHR5cGUgPSBGRUFUVVJFO1xyXG4gIHN0YXRpYyBwcm9wZXJ0aWVzQmxhY2tsaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICB0aXRsZSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50aXRsZSQuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIEBJbmplY3QoJ29wdGlvbnMnKSBvcHRpb25zOiBTZWFyY2hTb3VyY2VPcHRpb25zLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucywgc3RvcmFnZVNlcnZpY2UpO1xyXG5cclxuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRpdGxlJC5uZXh0KHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMub3B0aW9ucy50aXRsZSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQXV0aFNlcnZpY2UpO1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MubGVuZ3RoKSB7XHJcbiAgICAgIGlmICghYXV0aFNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmdldEFsbG93ZWRUeXBlcygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ2V0QWxsb3dlZFR5cGVzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gSUNoZXJjaGVSZXZlcnNlU2VhcmNoU291cmNlLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHlwZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIElDaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZS50eXBlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldERlZmF1bHRPcHRpb25zKCk6IFNlYXJjaFNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgdHlwZXMgPVxyXG4gICAgICB0aGlzLm9wdGlvbnMucGFyYW1zICYmIHRoaXMub3B0aW9ucy5wYXJhbXMudHlwZVxyXG4gICAgICAgID8gdGhpcy5vcHRpb25zLnBhcmFtcy50eXBlLnJlcGxhY2UoL1xccy9nLCAnJykudG9Mb3dlckNhc2UoKS5zcGxpdCgnLCcpXHJcbiAgICAgICAgOiBbJ2FkcmVzc2VzJywgJ211bmljaXBhbGl0ZXMnLCAnbXJjJywgJ3JlZ2FkbWluJ107XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZVJldmVyc2UubmFtZScsXHJcbiAgICAgIHNlYXJjaFVybDogJ2h0dHBzOi8vZ2VvZWdsLm1zcC5nb3V2LnFjLmNhL2FwaXMvdGVycmFwaScsXHJcbiAgICAgIHNldHRpbmdzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcclxuICAgICAgICAgIHRpdGxlOiAncmVzdWx0cyB0eXBlJyxcclxuICAgICAgICAgIG5hbWU6ICd0eXBlJyxcclxuICAgICAgICAgIHZhbHVlczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICdpZ28uZ2VvLnNlYXJjaC5pY2hlcmNoZS50eXBlLmFkZHJlc3MnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYWRyZXNzZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ2FkcmVzc2VzJykgIT09IC0xXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUucm9hZCcsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdyb3V0ZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ3JvdXRlcycpICE9PSAtMSxcclxuICAgICAgICAgICAgICBhdmFpbGFibGU6IGZhbHNlXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJ2lnby5nZW8uc2VhcmNoLmljaGVyY2hlLnR5cGUuZGlzdHJpY3QnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnYXJyb25kaXNzZW1lbnRzJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdhcnJvbmRpc3NlbWVudHMnKSAhPT0gLTFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5jaXR5JyxcclxuICAgICAgICAgICAgICB2YWx1ZTogJ211bmljaXBhbGl0ZXMnLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHR5cGVzLmluZGV4T2YoJ211bmljaXBhbGl0ZXMnKSAhPT0gLTFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5tcmMnLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnbXJjJyxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0eXBlcy5pbmRleE9mKCdtcmMnKSAhPT0gLTFcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnaWdvLmdlby5zZWFyY2guaWNoZXJjaGUudHlwZS5yZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdyZWdhZG1pbicsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHlwZXMuaW5kZXhPZigncmVnYWRtaW4nKSAhPT0gLTFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdHlwZTogJ3JhZGlvYnV0dG9uJyxcclxuICAgICAgICAgIHRpdGxlOiAncmFkaXVzJyxcclxuICAgICAgICAgIG5hbWU6ICdidWZmZXJJbnB1dCcsXHJcbiAgICAgICAgICB2YWx1ZXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMTAwIG0nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAxMDAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogIXRoaXMub3B0aW9ucy5kaXN0YW5jZSB8fCB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDEwMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICc1MDAgbScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDUwMCxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDUwMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6ICcxIGttJyxcclxuICAgICAgICAgICAgICB2YWx1ZTogMTAwMCxcclxuICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLm9wdGlvbnMuZGlzdGFuY2UgPT09IDEwMDBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiAnMiBrbScsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IDIwMDAsXHJcbiAgICAgICAgICAgICAgZW5hYmxlZDogdGhpcy5vcHRpb25zLmRpc3RhbmNlID09PSAyMDAwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aXRsZTogJzUga20nLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiA1MDAwLFxyXG4gICAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMub3B0aW9ucy5kaXN0YW5jZSA9PT0gNTAwMFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VhcmNoIGEgbG9jYXRpb24gYnkgY29vcmRpbmF0ZXNcclxuICAgKiBAcGFyYW0gbG9uTGF0IExvY2F0aW9uIGNvb3JkaW5hdGVzXHJcbiAgICogQHBhcmFtIGRpc3RhbmNlIFNlYXJjaCByYWlkdXMgYXJvdW5kIGxvbkxhdFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgPFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdXHJcbiAgICovXHJcbiAgQENhY2hlYWJsZSh7XHJcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxyXG4gIH0pXHJcbiAgcmV2ZXJzZVNlYXJjaChcclxuICAgIGxvbkxhdDogW251bWJlciwgbnVtYmVyXSxcclxuICAgIG9wdGlvbnM/OiBSZXZlcnNlU2VhcmNoT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PEZlYXR1cmU+W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29tcHV0ZVJlcXVlc3RQYXJhbXMobG9uTGF0LCBvcHRpb25zIHx8IHt9KTtcclxuICAgIGlmICghcGFyYW1zLmdldCgndHlwZScpLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zZWFyY2hVcmx9L2xvY2F0ZWAsIHsgcGFyYW1zIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2U6IElDaGVyY2hlUmV2ZXJzZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFJlc3VsdHMocmVzcG9uc2UpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWxsb3dlZFR5cGVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KGAke3RoaXMuc2VhcmNoVXJsfS90eXBlc2ApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHR5cGVzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHR5cGVTZXR0aW5nID0gdGhpcy5zZXR0aW5ncy5maW5kKChzKSA9PiBzLm5hbWUgPT09ICd0eXBlJyk7XHJcbiAgICAgICAgdHlwZVNldHRpbmcudmFsdWVzLmZvckVhY2goKHYpID0+IHtcclxuICAgICAgICAgIHYuYXZhaWxhYmxlID0gdHlwZXMuaW5kZXhPZih2LnZhbHVlIGFzIHN0cmluZykgPiAtMTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNldFBhcmFtRnJvbVNldHRpbmcodHlwZVNldHRpbmcsIGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbXB1dGVSZXF1ZXN0UGFyYW1zKFxyXG4gICAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdLFxyXG4gICAgb3B0aW9ucz86IFJldmVyc2VTZWFyY2hPcHRpb25zXHJcbiAgKTogSHR0cFBhcmFtcyB7XHJcbiAgICBpZiAob3B0aW9ucy5kaXN0YW5jZSB8fCB0aGlzLm9wdGlvbnMuZGlzdGFuY2UpIHtcclxuICAgICAgb3B0aW9ucy5wYXJhbXMgPSBPYmplY3QuYXNzaWduKG9wdGlvbnMucGFyYW1zIHx8IHt9LCB7XHJcbiAgICAgICAgYnVmZmVySW5wdXQ6IG9wdGlvbnMuZGlzdGFuY2UgfHwgdGhpcy5vcHRpb25zLmRpc3RhbmNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbG9jOiBsb25MYXQuam9pbignLCcpLFxyXG4gICAgICAgICAgc29ydDogJ2Rpc3RhbmNlJyxcclxuICAgICAgICAgIGdlb21ldHJ5OiB0cnVlLFxyXG4gICAgICAgICAgaWNvbjogdHJ1ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb3B0aW9ucy5wYXJhbXMgfHwge30sXHJcbiAgICAgICAgdGhpcy5wYXJhbXNcclxuICAgICAgKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RSZXN1bHRzKFxyXG4gICAgcmVzcG9uc2U6IElDaGVyY2hlUmV2ZXJzZVJlc3BvbnNlXHJcbiAgKTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+W10ge1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlLmZlYXR1cmVzLm1hcCgoZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRhVG9SZXN1bHQoZGF0YSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3VidGl0bGUoZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YSkge1xyXG4gICAgaWYgKCF0aGlzLnNldHRpbmdzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBsZXQgc3VidGl0bGUgPSAnJztcclxuICAgIHN3aXRjaCAoZGF0YS5wcm9wZXJ0aWVzLnR5cGUpIHtcclxuICAgICAgY2FzZSAnYXJyb25kaXNzZW1lbnRzJzpcclxuICAgICAgICBzdWJ0aXRsZSA9IGRhdGEucHJvcGVydGllcy5tdW5pY2lwYWxpdGUgKyAnIChBcnJvbmRpc3NlbWVudCknO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnN0IHR5cGVTZXR0aW5nID0gdGhpcy5zZXR0aW5ncy5maW5kKChzKSA9PiBzLm5hbWUgPT09ICd0eXBlJyk7XHJcbiAgICAgICAgY29uc3QgdHlwZSA9IHR5cGVTZXR0aW5nLnZhbHVlcy5maW5kKFxyXG4gICAgICAgICAgKHQpID0+IHQudmFsdWUgPT09IGRhdGEucHJvcGVydGllcy50eXBlXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAodHlwZSkge1xyXG4gICAgICAgICAgc3VidGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCh0eXBlLnRpdGxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VidGl0bGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRhdGFUb1Jlc3VsdChkYXRhOiBJQ2hlcmNoZVJldmVyc2VEYXRhKTogU2VhcmNoUmVzdWx0PEZlYXR1cmU+IHtcclxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLmNvbXB1dGVQcm9wZXJ0aWVzKGRhdGEpO1xyXG4gICAgY29uc3QgZXh0ZW50ID0gdGhpcy5jb21wdXRlRXh0ZW50KGRhdGEpO1xyXG4gICAgY29uc3QgaWQgPSBbdGhpcy5nZXRJZCgpLCBwcm9wZXJ0aWVzLnR5cGUsIHByb3BlcnRpZXMuY29kZV0uam9pbignLicpO1xyXG5cclxuICAgIGNvbnN0IHRpdGxlSHRtbCA9IGRhdGEucHJvcGVydGllcy5ub207XHJcbiAgICBjb25zdCBzdWJ0aXRsZUh0bWwgPSAnIDxzbWFsbD4gJyArIHRoaXMuZ2V0U3VidGl0bGUoZGF0YSkgKyAnPC9zbWFsbD4nO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNvdXJjZTogdGhpcyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICAgICAgcHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZ2VvbWV0cnk6IGRhdGEuZ2VvbWV0cnksXHJcbiAgICAgICAgZXh0ZW50LFxyXG4gICAgICAgIHByb3BlcnRpZXMsXHJcbiAgICAgICAgbWV0YToge1xyXG4gICAgICAgICAgaWQsXHJcbiAgICAgICAgICB0aXRsZTogZGF0YS5wcm9wZXJ0aWVzLm5vbVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbWV0YToge1xyXG4gICAgICAgIGRhdGFUeXBlOiBGRUFUVVJFLFxyXG4gICAgICAgIGlkLFxyXG4gICAgICAgIHRpdGxlOiBkYXRhLnByb3BlcnRpZXMubm9tLFxyXG4gICAgICAgIHRpdGxlSHRtbDogdGl0bGVIdG1sICsgc3VidGl0bGVIdG1sLFxyXG4gICAgICAgIGljb246IGRhdGEuaWNvbiB8fCAnbWFwLW1hcmtlcicsXHJcbiAgICAgICAgcG9pbnRlclN1bW1hcnlUaXRsZTogdGhpcy5nZXRTdWJ0aXRsZShkYXRhKSsgJzogJyArIGRhdGEucHJvcGVydGllcy5ub21cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZVByb3BlcnRpZXMoZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdFV0aWxzLnJlbW92ZUtleXMoXHJcbiAgICAgIGRhdGEucHJvcGVydGllcyxcclxuICAgICAgSUNoZXJjaGVSZXZlcnNlU2VhcmNoU291cmNlLnByb3BlcnRpZXNCbGFja2xpc3RcclxuICAgICk7XHJcblxyXG4gICAgY29uc3Qgcm91dGluZzoge1xyXG4gICAgICBSb3V0ZTogc3RyaW5nO1xyXG4gICAgfSA9IHtcclxuICAgICAgUm91dGU6XHJcbiAgICAgICAgJzxzcGFuIGNsYXNzPVwicm91dGluZ1wiPiA8dT4nICtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5zZWVSb3V0aW5nJykgK1xyXG4gICAgICAgICc8L3U+IDwvc3Bhbj4nXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHByb3BlcnRpZXMsIHJvdXRpbmcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlRXh0ZW50KFxyXG4gICAgZGF0YTogSUNoZXJjaGVSZXZlcnNlRGF0YVxyXG4gICk6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBkYXRhLmJib3hcclxuICAgICAgPyBbZGF0YS5iYm94WzBdLCBkYXRhLmJib3hbMl0sIGRhdGEuYmJveFsxXSwgZGF0YS5iYm94WzNdXVxyXG4gICAgICA6IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -63,4 +63,4 @@ export function provideIChercheReverseSearchSource() {
|
|
|
63
63
|
deps: [HttpClient, LanguageService, StorageService, ConfigService, Injector]
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNoZXJjaGUucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NoYXJlZC9zb3VyY2VzL2ljaGVyY2hlLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDZCQUE2QixFQUM3QiwyQkFBMkIsRUFDNUIsTUFBTSxZQUFZLENBQUM7QUFFcEI7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDJDQUEyQyxDQUN6RCxlQUFnQztJQUVoQyxPQUFPLElBQUksNkJBQTZCLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLDJDQUEyQztJQUN6RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLDZCQUE2QjtRQUN0QyxVQUFVLEVBQUUsMkNBQTJDO1FBQ3ZELElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQztLQUN4QixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsSUFBZ0IsRUFDaEIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsTUFBcUIsRUFDckIsU0FBd0MsRUFDeEMsUUFBa0I7SUFFbEIsT0FBTyxJQUFJLG9CQUFvQixDQUM3QixJQUFJLEVBQ0osZUFBZSxFQUNmLGNBQWMsRUFDZCxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQixvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUM1RCxTQUFTLEVBQ1QsUUFBUSxDQUNULENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE9BQU87UUFDTCxPQUFPLEVBQUUsWUFBWTtRQUNyQixVQUFVLEVBQUUsMkJBQTJCO1FBQ3ZDLEtBQUssRUFBRSxJQUFJO1FBQ1gsSUFBSSxFQUFFO1lBQ0osVUFBVTtZQUNWLGVBQWU7WUFDZixjQUFjO1lBQ2QsYUFBYTtZQUNiLDZCQUE2QjtZQUM3QixRQUFRO1NBQ1Q7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQ0FBa0MsQ0FDaEQsSUFBZ0IsRUFDaEIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsTUFBcUIsRUFDckIsUUFBa0I7SUFFbEIsT0FBTyxJQUFJLDJCQUEyQixDQUNwQyxJQUFJLEVBQ0osZUFBZSxFQUNmLGNBQWMsRUFDZCxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQiwyQkFBMkIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNuRSxRQUFRLENBQ1QsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQ0FBa0M7SUFDaEQsT0FBTztRQUNMLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFVBQVUsRUFBRSxrQ0FBa0M7UUFDOUMsS0FBSyxFQUFFLElBQUk7UUFDWCxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDO0tBQzdFLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UsIExhbmd1YWdlU2VydmljZSwgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4vc291cmNlJztcclxuaW1wb3J0IHtcclxuICBJQ2hlcmNoZVNlYXJjaFNvdXJjZSxcclxuICBJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcixcclxuICBJQ2hlcmNoZVJldmVyc2VTZWFyY2hTb3VyY2VcclxufSBmcm9tICcuL2ljaGVyY2hlJztcclxuXHJcbi8qKlxyXG4gKiBJQ2hlcmNoZSBzZWFyY2ggcmVzdWx0IGZvcm1hdHRlciBmYWN0b3J5XHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SUNoZXJjaGVTZWFyY2hSZXN1bHRGb3JtYXR0ZXJGYWN0b3J5KFxyXG4gIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlXHJcbikge1xyXG4gIHJldHVybiBuZXcgSUNoZXJjaGVTZWFyY2hSZXN1bHRGb3JtYXR0ZXIobGFuZ3VhZ2VTZXJ2aWNlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb3ZpZGVyIGZvciB0aGUgSUNoZXJjaGUgc2VhcmNoIHJlc3VsdCBmb3JtYXR0ZXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGVmYXVsdElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKCkge1xyXG4gIHJldHVybiB7XHJcbiAgICBwcm92aWRlOiBJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcixcclxuICAgIHVzZUZhY3Rvcnk6IGRlZmF1bHRJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlckZhY3RvcnksXHJcbiAgICBkZXBzOiBbTGFuZ3VhZ2VTZXJ2aWNlXVxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJQ2hlcmNoZSBzZWFyY2ggc291cmNlIGZhY3RvcnlcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGljaGVyY2hlU2VhcmNoU291cmNlRmFjdG9yeShcclxuICBodHRwOiBIdHRwQ2xpZW50LFxyXG4gIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICBjb25maWc6IENvbmZpZ1NlcnZpY2UsXHJcbiAgZm9ybWF0dGVyOiBJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcixcclxuICBpbmplY3RvcjogSW5qZWN0b3JcclxuKSB7XHJcbiAgcmV0dXJuIG5ldyBJQ2hlcmNoZVNlYXJjaFNvdXJjZShcclxuICAgIGh0dHAsXHJcbiAgICBsYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBzdG9yYWdlU2VydmljZSxcclxuICAgIGNvbmZpZy5nZXRDb25maWcoYHNlYXJjaFNvdXJjZXMuJHtJQ2hlcmNoZVNlYXJjaFNvdXJjZS5pZH1gKSxcclxuICAgIGZvcm1hdHRlcixcclxuICAgIGluamVjdG9yXHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb3ZpZGVyIGZvciB0aGUgSUNoZXJjaGUgc2VhcmNoIHNvdXJjZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVJQ2hlcmNoZVNlYXJjaFNvdXJjZSgpIHtcclxuICByZXR1cm4ge1xyXG4gICAgcHJvdmlkZTogU2VhcmNoU291cmNlLFxyXG4gICAgdXNlRmFjdG9yeTogaWNoZXJjaGVTZWFyY2hTb3VyY2VGYWN0b3J5LFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgICBkZXBzOiBbXHJcbiAgICAgIEh0dHBDbGllbnQsXHJcbiAgICAgIExhbmd1YWdlU2VydmljZSxcclxuICAgICAgU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgIENvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyLFxyXG4gICAgICBJbmplY3RvclxyXG4gICAgXVxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJQ2hlcmNoZVJldmVyc2Ugc2VhcmNoIHNvdXJjZSBmYWN0b3J5XHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpY2hlcmNoZVJldmVyc2VTZWFyY2hTb3VyY2VGYWN0b3J5KFxyXG4gIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICBpbmplY3RvcjogSW5qZWN0b3JcclxuKSB7XHJcbiAgcmV0dXJuIG5ldyBJQ2hlcmNoZVJldmVyc2VTZWFyY2hTb3VyY2UoXHJcbiAgICBodHRwLFxyXG4gICAgbGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgc3RvcmFnZVNlcnZpY2UsXHJcbiAgICBjb25maWcuZ2V0Q29uZmlnKGBzZWFyY2hTb3VyY2VzLiR7SUNoZXJjaGVSZXZlcnNlU2VhcmNoU291cmNlLmlkfWApLFxyXG4gICAgaW5qZWN0b3JcclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogRnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvdmlkZXIgZm9yIHRoZSBJQ2hlcmNoZVJldmVyc2Ugc2VhcmNoIHNvdXJjZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVJQ2hlcmNoZVJldmVyc2VTZWFyY2hTb3VyY2UoKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHByb3ZpZGU6IFNlYXJjaFNvdXJjZSxcclxuICAgIHVzZUZhY3Rvcnk6IGljaGVyY2hlUmV2ZXJzZVNlYXJjaFNvdXJjZUZhY3RvcnksXHJcbiAgICBtdWx0aTogdHJ1ZSxcclxuICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBMYW5ndWFnZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlLCBDb25maWdTZXJ2aWNlLCBJbmplY3Rvcl1cclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWxheWVyLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NvdXJjZXMvaWxheWVyLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi8uLi8uLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSW1hZ2VMYXllck9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2ltYWdlLWxheWVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3NvdXJjZS5pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUxheWVyU2VhcmNoU291cmNlT3B0aW9ucyBleHRlbmRzIFNlYXJjaFNvdXJjZU9wdGlvbnMge1xyXG4gIHF1ZXJ5Rm9ybWF0Pzoge1trZXk6IHN0cmluZ106IHN0cmluZyB8IHt1cmxzOiBzdHJpbmdbXX19O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElMYXllclNlcnZpY2VSZXNwb25zZSB7XHJcbiAgaXRlbXM6IElMYXllckRhdGFbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTGF5ZXJEYXRhIHtcclxuICBzY29yZTogbnVtYmVyO1xyXG4gIHByb3BlcnRpZXM6IElMYXllckRhdGFTb3VyY2U7XHJcbiAgaGlnaGxpZ2h0OiBJTGF5ZXJEYXRhSGlnaGxpZ2h0O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElMYXllckRhdGFTb3VyY2Uge1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZ3JvdXBUaXRsZTogc3RyaW5nO1xyXG4gIGFic3RyYWN0OiBzdHJpbmc7XHJcbiAgZm9ybWF0PzogJ3dtcycgfCAnd2ZzJztcclxuICB1cmw/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHF1ZXJ5YWJsZT86IGJvb2xlYW47XHJcbiAgbWV0YWRhdGFVcmw/OiBzdHJpbmc7XHJcbiAgbWF4U2NhbGVEZW5vbT86IHN0cmluZztcclxuICBtaW5TY2FsZURlbm9tPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElMYXllckRhdGFIaWdobGlnaHQge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGdyb3VwVGl0bGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBRdWVyeVdNU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgIGV4dGVuZHMgV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMge31cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUxheWVySXRlbVJlc3BvbnNlIGV4dGVuZHMgSW1hZ2VMYXllck9wdGlvbnMge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgc291cmNlT3B0aW9uczogUXVlcnlXTVNEYXRhU291cmNlT3B0aW9ucztcclxuICBwcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcbiJdfQ==
|