@grafana/scenes 6.8.0 → 6.8.1
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/CHANGELOG.md +20 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
- package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
- package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
- package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
- package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
- package/dist/esm/dist/esm/components/NestedScene.js +0 -95
- package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
- package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
- package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
- package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
- package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
- package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
- package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
- package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
- package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
- package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
- package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
- package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
- package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
- package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
- package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
- package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
- package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
- package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
- package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
- package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
- package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
- package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
- package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
- package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
- package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
- package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
- package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
- package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
- package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
- package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
- package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
- package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
- package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
- package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
- package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
- package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
- package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
- package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
- package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
- package/dist/esm/dist/esm/core/events.js +0 -11
- package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
- package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
- package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
- package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
- package/dist/esm/dist/esm/core/types.js +0 -15
- package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
- package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
- package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
- package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
- package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
- package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
- package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
- package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
- package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
- package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
- package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
- package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
- package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
- package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
- package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
- package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
- package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
- package/dist/esm/dist/esm/services/utils.js +0 -71
- package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
- package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
- package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
- package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
- package/dist/esm/dist/esm/utils/date.js +0 -15
- package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
- package/dist/esm/dist/esm/utils/explore.js +0 -47
- package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
- package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
- package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
- package/dist/esm/dist/esm/utils/metricTree.js +0 -53
- package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
- package/dist/esm/dist/esm/utils/utils.js +0 -11
- package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
- package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
- package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
- package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
- package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
- package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
- package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
- package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
- package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
- package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
- package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
- package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
- package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
- package/dist/esm/dist/esm/variables/constants.js +0 -9
- package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
- package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
- package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
- package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
- package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
- package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
- package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
- package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
- package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
- package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
- package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
- package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
- package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
- package/dist/esm/dist/esm/variables/macros/index.js +0 -26
- package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
- package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
- package/dist/esm/dist/esm/variables/macros/types.js +0 -11
- package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
- package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
- package/dist/esm/dist/esm/variables/types.js +0 -11
- package/dist/esm/dist/esm/variables/utils.js +0 -172
- package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
- package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
- package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
- package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
- package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
- package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
- package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
- package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
- package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
- package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
- package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
- package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
- package/dist/esm/querying/DataProviderSharer.js +0 -39
- package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
- package/dist/esm/src/behaviors/CursorSync.js +0 -76
- package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
- package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
- package/dist/esm/src/behaviors/index.js +0 -5
- package/dist/esm/src/components/EmbeddedScene.js +0 -59
- package/dist/esm/src/components/NestedScene.js +0 -95
- package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
- package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
- package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
- package/dist/esm/src/components/SceneApp/utils.js +0 -42
- package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
- package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
- package/dist/esm/src/components/SceneCanvasText.js +0 -32
- package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
- package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
- package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
- package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
- package/dist/esm/src/components/SceneReactObject.js +0 -34
- package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
- package/dist/esm/src/components/SceneTimePicker.js +0 -139
- package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
- package/dist/esm/src/components/SceneToolbarButton.js +0 -33
- package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
- package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
- package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
- package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
- package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
- package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
- package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
- package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
- package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
- package/dist/esm/src/components/layout/LazyLoader.js +0 -103
- package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
- package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
- package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
- package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
- package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
- package/dist/esm/src/components/layout/grid/constants.js +0 -7
- package/dist/esm/src/components/layout/grid/utils.js +0 -36
- package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
- package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
- package/dist/esm/src/components/layout/split/Splitter.js +0 -386
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
- package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
- package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
- package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
- package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
- package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
- package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
- package/dist/esm/src/core/PanelBuilders/index.js +0 -116
- package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
- package/dist/esm/src/core/SceneDataNode.js +0 -43
- package/dist/esm/src/core/SceneObjectBase.js +0 -286
- package/dist/esm/src/core/SceneObjectRef.js +0 -32
- package/dist/esm/src/core/SceneTimeRange.js +0 -231
- package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
- package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
- package/dist/esm/src/core/events.js +0 -11
- package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
- package/dist/esm/src/core/sceneGraph/index.js +0 -25
- package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
- package/dist/esm/src/core/sceneGraph/utils.js +0 -64
- package/dist/esm/src/core/types.js +0 -15
- package/dist/esm/src/index.js +0 -108
- package/dist/esm/src/querying/DataLayersMerger.js +0 -46
- package/dist/esm/src/querying/DataProviderProxy.js +0 -37
- package/dist/esm/src/querying/DataProviderSharer.js +0 -108
- package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
- package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
- package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
- package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
- package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
- package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
- package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
- package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
- package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
- package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
- package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
- package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
- package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
- package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
- package/dist/esm/src/querying/layers/index.js +0 -2
- package/dist/esm/src/querying/registerQueryWithController.js +0 -41
- package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
- package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
- package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
- package/dist/esm/src/services/UrlSyncManager.js +0 -167
- package/dist/esm/src/services/useUrlSync.js +0 -29
- package/dist/esm/src/services/utils.js +0 -75
- package/dist/esm/src/utils/ControlsLabel.js +0 -107
- package/dist/esm/src/utils/LoadingIndicator.js +0 -19
- package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
- package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
- package/dist/esm/src/utils/date.js +0 -15
- package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
- package/dist/esm/src/utils/explore.js +0 -47
- package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
- package/dist/esm/src/utils/getDataSource.js +0 -18
- package/dist/esm/src/utils/getMessageFromError.js +0 -24
- package/dist/esm/src/utils/metricTree.js +0 -53
- package/dist/esm/src/utils/parseUrlParam.js +0 -41
- package/dist/esm/src/utils/utils.js +0 -11
- package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
- package/dist/esm/src/utils/writeSceneLog.js +0 -12
- package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
- package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
- package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
- package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
- package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
- package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
- package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
- package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
- package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
- package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
- package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
- package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
- package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
- package/dist/esm/src/variables/constants.js +0 -9
- package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
- package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
- package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
- package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
- package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
- package/dist/esm/src/variables/interpolation/defaults.js +0 -21
- package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
- package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
- package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
- package/dist/esm/src/variables/lookupVariable.js +0 -20
- package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
- package/dist/esm/src/variables/macros/contextMacros.js +0 -43
- package/dist/esm/src/variables/macros/dataMacros.js +0 -134
- package/dist/esm/src/variables/macros/index.js +0 -35
- package/dist/esm/src/variables/macros/templateProxies.js +0 -51
- package/dist/esm/src/variables/macros/timeMacros.js +0 -86
- package/dist/esm/src/variables/macros/types.js +0 -11
- package/dist/esm/src/variables/macros/urlMacros.js +0 -56
- package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
- package/dist/esm/src/variables/types.js +0 -11
- package/dist/esm/src/variables/utils.js +0 -172
- package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
- package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
- package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
- package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
- package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
- package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
- package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
- package/dist/esm/src/variables/variants/TestVariable.js +0 -117
- package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
- package/dist/esm/src/variables/variants/guards.js +0 -27
- package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
- package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
- package/dist/esm/src/variables/variants/query/guards.js +0 -28
- package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
- package/dist/esm/src/variables/variants/query/utils.js +0 -124
- package/dist/esm/variables/variants/JsonVariable.js +0 -96
- package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
- package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { isEqual } from 'lodash';
|
|
2
|
-
import { sceneGraph } from '../core/sceneGraph/index.js';
|
|
3
|
-
import { SceneQueryRunner } from '../querying/SceneQueryRunner.js';
|
|
4
|
-
import uFuzzy from '@leeoniya/ufuzzy';
|
|
5
|
-
|
|
6
|
-
function isVariableValueEqual(a, b) {
|
|
7
|
-
if (a === b) {
|
|
8
|
-
return true;
|
|
9
|
-
}
|
|
10
|
-
return isEqual(a, b);
|
|
11
|
-
}
|
|
12
|
-
function safeStringifyValue(value) {
|
|
13
|
-
const getCircularReplacer = () => {
|
|
14
|
-
const seen = /* @__PURE__ */ new WeakSet();
|
|
15
|
-
return (_, value2) => {
|
|
16
|
-
if (typeof value2 === "object" && value2 !== null) {
|
|
17
|
-
if (seen.has(value2)) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
seen.add(value2);
|
|
21
|
-
}
|
|
22
|
-
return value2;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
try {
|
|
26
|
-
return JSON.stringify(value, getCircularReplacer());
|
|
27
|
-
} catch (error) {
|
|
28
|
-
console.error(error);
|
|
29
|
-
}
|
|
30
|
-
return "";
|
|
31
|
-
}
|
|
32
|
-
function renderPrometheusLabelFilters(filters) {
|
|
33
|
-
return filters.map((filter) => renderFilter(filter)).join(",");
|
|
34
|
-
}
|
|
35
|
-
function renderFilter(filter) {
|
|
36
|
-
var _a, _b;
|
|
37
|
-
let value = "";
|
|
38
|
-
let operator = filter.operator;
|
|
39
|
-
if (operator === "=|") {
|
|
40
|
-
operator = "=~";
|
|
41
|
-
value = (_a = filter.values) == null ? void 0 : _a.map(escapeLabelValueInRegexSelector).join("|");
|
|
42
|
-
} else if (operator === "!=|") {
|
|
43
|
-
operator = "!~";
|
|
44
|
-
value = (_b = filter.values) == null ? void 0 : _b.map(escapeLabelValueInRegexSelector).join("|");
|
|
45
|
-
} else if (operator === "=~" || operator === "!~") {
|
|
46
|
-
value = escapeLabelValueInRegexSelector(filter.value);
|
|
47
|
-
} else {
|
|
48
|
-
value = escapeLabelValueInExactSelector(filter.value);
|
|
49
|
-
}
|
|
50
|
-
return `${filter.key}${operator}"${value}"`;
|
|
51
|
-
}
|
|
52
|
-
function escapeLabelValueInExactSelector(labelValue) {
|
|
53
|
-
return labelValue.replace(/\\/g, "\\\\").replace(/\n/g, "\\n").replace(/"/g, '\\"');
|
|
54
|
-
}
|
|
55
|
-
function escapeLabelValueInRegexSelector(labelValue) {
|
|
56
|
-
return escapeLabelValueInExactSelector(escapeLokiRegexp(labelValue));
|
|
57
|
-
}
|
|
58
|
-
const RE2_METACHARACTERS = /[*+?()|\\.\[\]{}^$]/g;
|
|
59
|
-
function escapeLokiRegexp(value) {
|
|
60
|
-
return value.replace(RE2_METACHARACTERS, "\\$&");
|
|
61
|
-
}
|
|
62
|
-
function getQueriesForVariables(sourceObject) {
|
|
63
|
-
const runners = sceneGraph.findAllObjects(
|
|
64
|
-
sourceObject.getRoot(),
|
|
65
|
-
(o) => o instanceof SceneQueryRunner
|
|
66
|
-
);
|
|
67
|
-
const applicableRunners = filterOutInactiveRunnerDuplicates(runners).filter((r) => {
|
|
68
|
-
var _a, _b;
|
|
69
|
-
return ((_a = r.state.datasource) == null ? void 0 : _a.uid) === ((_b = sourceObject.state.datasource) == null ? void 0 : _b.uid);
|
|
70
|
-
});
|
|
71
|
-
if (applicableRunners.length === 0) {
|
|
72
|
-
return [];
|
|
73
|
-
}
|
|
74
|
-
const result = [];
|
|
75
|
-
applicableRunners.forEach((r) => {
|
|
76
|
-
result.push(...r.state.queries);
|
|
77
|
-
});
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
function filterOutInactiveRunnerDuplicates(runners) {
|
|
81
|
-
const groupedItems = {};
|
|
82
|
-
for (const item of runners) {
|
|
83
|
-
if (item.state.key) {
|
|
84
|
-
if (!(item.state.key in groupedItems)) {
|
|
85
|
-
groupedItems[item.state.key] = [];
|
|
86
|
-
}
|
|
87
|
-
groupedItems[item.state.key].push(item);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return Object.values(groupedItems).flatMap((group) => {
|
|
91
|
-
const activeItems = group.filter((item) => item.isActive);
|
|
92
|
-
if (activeItems.length === 0 && group.length === 1) {
|
|
93
|
-
return group;
|
|
94
|
-
}
|
|
95
|
-
return activeItems;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
function escapeUrlPipeDelimiters(value) {
|
|
99
|
-
if (value === null || value === void 0) {
|
|
100
|
-
return "";
|
|
101
|
-
}
|
|
102
|
-
return value = /\|/g[Symbol.replace](value, "__gfp__");
|
|
103
|
-
}
|
|
104
|
-
function escapeUrlCommaDelimiters(value) {
|
|
105
|
-
if (value === null || value === void 0) {
|
|
106
|
-
return "";
|
|
107
|
-
}
|
|
108
|
-
return /,/g[Symbol.replace](value, "__gfc__");
|
|
109
|
-
}
|
|
110
|
-
function unescapeUrlDelimiters(value) {
|
|
111
|
-
if (value === null || value === void 0) {
|
|
112
|
-
return "";
|
|
113
|
-
}
|
|
114
|
-
value = /__gfp__/g[Symbol.replace](value, "|");
|
|
115
|
-
value = /__gfc__/g[Symbol.replace](value, ",");
|
|
116
|
-
return value;
|
|
117
|
-
}
|
|
118
|
-
function toUrlCommaDelimitedString(key, label) {
|
|
119
|
-
if (!label || key === label) {
|
|
120
|
-
return escapeUrlCommaDelimiters(key);
|
|
121
|
-
}
|
|
122
|
-
return [key, label].map(escapeUrlCommaDelimiters).join(",");
|
|
123
|
-
}
|
|
124
|
-
function dataFromResponse(response) {
|
|
125
|
-
return Array.isArray(response) ? response : response.data;
|
|
126
|
-
}
|
|
127
|
-
function responseHasError(response) {
|
|
128
|
-
return !Array.isArray(response) && Boolean(response.error);
|
|
129
|
-
}
|
|
130
|
-
function handleOptionGroups(values) {
|
|
131
|
-
const result = [];
|
|
132
|
-
const groupedResults = /* @__PURE__ */ new Map();
|
|
133
|
-
for (const value of values) {
|
|
134
|
-
const groupLabel = value.group;
|
|
135
|
-
if (groupLabel) {
|
|
136
|
-
let group = groupedResults.get(groupLabel);
|
|
137
|
-
if (!group) {
|
|
138
|
-
group = [];
|
|
139
|
-
groupedResults.set(groupLabel, group);
|
|
140
|
-
result.push({ label: groupLabel, options: group });
|
|
141
|
-
}
|
|
142
|
-
group.push(value);
|
|
143
|
-
} else {
|
|
144
|
-
result.push(value);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return result;
|
|
148
|
-
}
|
|
149
|
-
function getFuzzySearcher(haystack, limit = 1e4) {
|
|
150
|
-
const ufuzzy = new uFuzzy();
|
|
151
|
-
const FIRST = Array.from({ length: Math.min(limit, haystack.length) }, (_, i) => i);
|
|
152
|
-
return (search) => {
|
|
153
|
-
if (search === "") {
|
|
154
|
-
return FIRST;
|
|
155
|
-
}
|
|
156
|
-
const [idxs, info, order] = ufuzzy.search(haystack, search);
|
|
157
|
-
if (idxs) {
|
|
158
|
-
if (info && order) {
|
|
159
|
-
const outIdxs = Array(Math.min(order.length, limit));
|
|
160
|
-
for (let i = 0; i < outIdxs.length; i++) {
|
|
161
|
-
outIdxs[i] = info.idx[order[i]];
|
|
162
|
-
}
|
|
163
|
-
return outIdxs;
|
|
164
|
-
}
|
|
165
|
-
return idxs.slice(0, limit);
|
|
166
|
-
}
|
|
167
|
-
return [];
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export { dataFromResponse, escapeLabelValueInExactSelector, escapeLabelValueInRegexSelector, escapeUrlCommaDelimiters, escapeUrlPipeDelimiters, getFuzzySearcher, getQueriesForVariables, handleOptionGroups, isVariableValueEqual, renderPrometheusLabelFilters, responseHasError, safeStringifyValue, toUrlCommaDelimitedString, unescapeUrlDelimiters };
|
|
172
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3ZhcmlhYmxlcy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi9jb3JlL3NjZW5lR3JhcGgvaW5kZXguanMnO1xuaW1wb3J0IHsgU2NlbmVRdWVyeVJ1bm5lciB9IGZyb20gJy4uL3F1ZXJ5aW5nL1NjZW5lUXVlcnlSdW5uZXIuanMnO1xuaW1wb3J0IHVGdXp6eSBmcm9tICdAbGVlb25peWEvdWZ1enp5JztcblxuZnVuY3Rpb24gaXNWYXJpYWJsZVZhbHVlRXF1YWwoYSwgYikge1xuICBpZiAoYSA9PT0gYikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBpc0VxdWFsKGEsIGIpO1xufVxuZnVuY3Rpb24gc2FmZVN0cmluZ2lmeVZhbHVlKHZhbHVlKSB7XG4gIGNvbnN0IGdldENpcmN1bGFyUmVwbGFjZXIgPSAoKSA9PiB7XG4gICAgY29uc3Qgc2VlbiA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpO1xuICAgIHJldHVybiAoXywgdmFsdWUyKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlMiA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZTIgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKHNlZW4uaGFzKHZhbHVlMikpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2Vlbi5hZGQodmFsdWUyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTI7XG4gICAgfTtcbiAgfTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUsIGdldENpcmN1bGFyUmVwbGFjZXIoKSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gIH1cbiAgcmV0dXJuIFwiXCI7XG59XG5mdW5jdGlvbiByZW5kZXJQcm9tZXRoZXVzTGFiZWxGaWx0ZXJzKGZpbHRlcnMpIHtcbiAgcmV0dXJuIGZpbHRlcnMubWFwKChmaWx0ZXIpID0+IHJlbmRlckZpbHRlcihmaWx0ZXIpKS5qb2luKFwiLFwiKTtcbn1cbmZ1bmN0aW9uIHJlbmRlckZpbHRlcihmaWx0ZXIpIHtcbiAgdmFyIF9hLCBfYjtcbiAgbGV0IHZhbHVlID0gXCJcIjtcbiAgbGV0IG9wZXJhdG9yID0gZmlsdGVyLm9wZXJhdG9yO1xuICBpZiAob3BlcmF0b3IgPT09IFwiPXxcIikge1xuICAgIG9wZXJhdG9yID0gXCI9flwiO1xuICAgIHZhbHVlID0gKF9hID0gZmlsdGVyLnZhbHVlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm1hcChlc2NhcGVMYWJlbFZhbHVlSW5SZWdleFNlbGVjdG9yKS5qb2luKFwifFwiKTtcbiAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gXCIhPXxcIikge1xuICAgIG9wZXJhdG9yID0gXCIhflwiO1xuICAgIHZhbHVlID0gKF9iID0gZmlsdGVyLnZhbHVlcykgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLm1hcChlc2NhcGVMYWJlbFZhbHVlSW5SZWdleFNlbGVjdG9yKS5qb2luKFwifFwiKTtcbiAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gXCI9flwiIHx8IG9wZXJhdG9yID09PSBcIiF+XCIpIHtcbiAgICB2YWx1ZSA9IGVzY2FwZUxhYmVsVmFsdWVJblJlZ2V4U2VsZWN0b3IoZmlsdGVyLnZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSA9IGVzY2FwZUxhYmVsVmFsdWVJbkV4YWN0U2VsZWN0b3IoZmlsdGVyLnZhbHVlKTtcbiAgfVxuICByZXR1cm4gYCR7ZmlsdGVyLmtleX0ke29wZXJhdG9yfVwiJHt2YWx1ZX1cImA7XG59XG5mdW5jdGlvbiBlc2NhcGVMYWJlbFZhbHVlSW5FeGFjdFNlbGVjdG9yKGxhYmVsVmFsdWUpIHtcbiAgcmV0dXJuIGxhYmVsVmFsdWUucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKTtcbn1cbmZ1bmN0aW9uIGVzY2FwZUxhYmVsVmFsdWVJblJlZ2V4U2VsZWN0b3IobGFiZWxWYWx1ZSkge1xuICByZXR1cm4gZXNjYXBlTGFiZWxWYWx1ZUluRXhhY3RTZWxlY3Rvcihlc2NhcGVMb2tpUmVnZXhwKGxhYmVsVmFsdWUpKTtcbn1cbmNvbnN0IFJFMl9NRVRBQ0hBUkFDVEVSUyA9IC9bKis/KCl8XFxcXC5cXFtcXF17fV4kXS9nO1xuZnVuY3Rpb24gZXNjYXBlTG9raVJlZ2V4cCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZShSRTJfTUVUQUNIQVJBQ1RFUlMsIFwiXFxcXCQmXCIpO1xufVxuZnVuY3Rpb24gZ2V0UXVlcmllc0ZvclZhcmlhYmxlcyhzb3VyY2VPYmplY3QpIHtcbiAgY29uc3QgcnVubmVycyA9IHNjZW5lR3JhcGguZmluZEFsbE9iamVjdHMoXG4gICAgc291cmNlT2JqZWN0LmdldFJvb3QoKSxcbiAgICAobykgPT4gbyBpbnN0YW5jZW9mIFNjZW5lUXVlcnlSdW5uZXJcbiAgKTtcbiAgY29uc3QgYXBwbGljYWJsZVJ1bm5lcnMgPSBmaWx0ZXJPdXRJbmFjdGl2ZVJ1bm5lckR1cGxpY2F0ZXMocnVubmVycykuZmlsdGVyKChyKSA9PiB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICByZXR1cm4gKChfYSA9IHIuc3RhdGUuZGF0YXNvdXJjZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLnVpZCkgPT09ICgoX2IgPSBzb3VyY2VPYmplY3Quc3RhdGUuZGF0YXNvdXJjZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9iLnVpZCk7XG4gIH0pO1xuICBpZiAoYXBwbGljYWJsZVJ1bm5lcnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuICBhcHBsaWNhYmxlUnVubmVycy5mb3JFYWNoKChyKSA9PiB7XG4gICAgcmVzdWx0LnB1c2goLi4uci5zdGF0ZS5xdWVyaWVzKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBmaWx0ZXJPdXRJbmFjdGl2ZVJ1bm5lckR1cGxpY2F0ZXMocnVubmVycykge1xuICBjb25zdCBncm91cGVkSXRlbXMgPSB7fTtcbiAgZm9yIChjb25zdCBpdGVtIG9mIHJ1bm5lcnMpIHtcbiAgICBpZiAoaXRlbS5zdGF0ZS5rZXkpIHtcbiAgICAgIGlmICghKGl0ZW0uc3RhdGUua2V5IGluIGdyb3VwZWRJdGVtcykpIHtcbiAgICAgICAgZ3JvdXBlZEl0ZW1zW2l0ZW0uc3RhdGUua2V5XSA9IFtdO1xuICAgICAgfVxuICAgICAgZ3JvdXBlZEl0ZW1zW2l0ZW0uc3RhdGUua2V5XS5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhncm91cGVkSXRlbXMpLmZsYXRNYXAoKGdyb3VwKSA9PiB7XG4gICAgY29uc3QgYWN0aXZlSXRlbXMgPSBncm91cC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaXNBY3RpdmUpO1xuICAgIGlmIChhY3RpdmVJdGVtcy5sZW5ndGggPT09IDAgJiYgZ3JvdXAubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZ3JvdXA7XG4gICAgfVxuICAgIHJldHVybiBhY3RpdmVJdGVtcztcbiAgfSk7XG59XG5mdW5jdGlvbiBlc2NhcGVVcmxQaXBlRGVsaW1pdGVycyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIHJldHVybiB2YWx1ZSA9IC9cXHwvZ1tTeW1ib2wucmVwbGFjZV0odmFsdWUsIFwiX19nZnBfX1wiKTtcbn1cbmZ1bmN0aW9uIGVzY2FwZVVybENvbW1hRGVsaW1pdGVycyh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBcIlwiO1xuICB9XG4gIHJldHVybiAvLC9nW1N5bWJvbC5yZXBsYWNlXSh2YWx1ZSwgXCJfX2dmY19fXCIpO1xufVxuZnVuY3Rpb24gdW5lc2NhcGVVcmxEZWxpbWl0ZXJzKHZhbHVlKSB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cbiAgdmFsdWUgPSAvX19nZnBfXy9nW1N5bWJvbC5yZXBsYWNlXSh2YWx1ZSwgXCJ8XCIpO1xuICB2YWx1ZSA9IC9fX2dmY19fL2dbU3ltYm9sLnJlcGxhY2VdKHZhbHVlLCBcIixcIik7XG4gIHJldHVybiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIHRvVXJsQ29tbWFEZWxpbWl0ZWRTdHJpbmcoa2V5LCBsYWJlbCkge1xuICBpZiAoIWxhYmVsIHx8IGtleSA9PT0gbGFiZWwpIHtcbiAgICByZXR1cm4gZXNjYXBlVXJsQ29tbWFEZWxpbWl0ZXJzKGtleSk7XG4gIH1cbiAgcmV0dXJuIFtrZXksIGxhYmVsXS5tYXAoZXNjYXBlVXJsQ29tbWFEZWxpbWl0ZXJzKS5qb2luKFwiLFwiKTtcbn1cbmZ1bmN0aW9uIGRhdGFGcm9tUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmVzcG9uc2UpID8gcmVzcG9uc2UgOiByZXNwb25zZS5kYXRhO1xufVxuZnVuY3Rpb24gcmVzcG9uc2VIYXNFcnJvcihyZXNwb25zZSkge1xuICByZXR1cm4gIUFycmF5LmlzQXJyYXkocmVzcG9uc2UpICYmIEJvb2xlYW4ocmVzcG9uc2UuZXJyb3IpO1xufVxuZnVuY3Rpb24gaGFuZGxlT3B0aW9uR3JvdXBzKHZhbHVlcykge1xuICBjb25zdCByZXN1bHQgPSBbXTtcbiAgY29uc3QgZ3JvdXBlZFJlc3VsdHMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICBmb3IgKGNvbnN0IHZhbHVlIG9mIHZhbHVlcykge1xuICAgIGNvbnN0IGdyb3VwTGFiZWwgPSB2YWx1ZS5ncm91cDtcbiAgICBpZiAoZ3JvdXBMYWJlbCkge1xuICAgICAgbGV0IGdyb3VwID0gZ3JvdXBlZFJlc3VsdHMuZ2V0KGdyb3VwTGFiZWwpO1xuICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICBncm91cCA9IFtdO1xuICAgICAgICBncm91cGVkUmVzdWx0cy5zZXQoZ3JvdXBMYWJlbCwgZ3JvdXApO1xuICAgICAgICByZXN1bHQucHVzaCh7IGxhYmVsOiBncm91cExhYmVsLCBvcHRpb25zOiBncm91cCB9KTtcbiAgICAgIH1cbiAgICAgIGdyb3VwLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBnZXRGdXp6eVNlYXJjaGVyKGhheXN0YWNrLCBsaW1pdCA9IDFlNCkge1xuICBjb25zdCB1ZnV6enkgPSBuZXcgdUZ1enp5KCk7XG4gIGNvbnN0IEZJUlNUID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogTWF0aC5taW4obGltaXQsIGhheXN0YWNrLmxlbmd0aCkgfSwgKF8sIGkpID0+IGkpO1xuICByZXR1cm4gKHNlYXJjaCkgPT4ge1xuICAgIGlmIChzZWFyY2ggPT09IFwiXCIpIHtcbiAgICAgIHJldHVybiBGSVJTVDtcbiAgICB9XG4gICAgY29uc3QgW2lkeHMsIGluZm8sIG9yZGVyXSA9IHVmdXp6eS5zZWFyY2goaGF5c3RhY2ssIHNlYXJjaCk7XG4gICAgaWYgKGlkeHMpIHtcbiAgICAgIGlmIChpbmZvICYmIG9yZGVyKSB7XG4gICAgICAgIGNvbnN0IG91dElkeHMgPSBBcnJheShNYXRoLm1pbihvcmRlci5sZW5ndGgsIGxpbWl0KSk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3V0SWR4cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIG91dElkeHNbaV0gPSBpbmZvLmlkeFtvcmRlcltpXV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dElkeHM7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWR4cy5zbGljZSgwLCBsaW1pdCk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfTtcbn1cblxuZXhwb3J0IHsgZGF0YUZyb21SZXNwb25zZSwgZXNjYXBlTGFiZWxWYWx1ZUluRXhhY3RTZWxlY3RvciwgZXNjYXBlTGFiZWxWYWx1ZUluUmVnZXhTZWxlY3RvciwgZXNjYXBlVXJsQ29tbWFEZWxpbWl0ZXJzLCBlc2NhcGVVcmxQaXBlRGVsaW1pdGVycywgZ2V0RnV6enlTZWFyY2hlciwgZ2V0UXVlcmllc0ZvclZhcmlhYmxlcywgaGFuZGxlT3B0aW9uR3JvdXBzLCBpc1ZhcmlhYmxlVmFsdWVFcXVhbCwgcmVuZGVyUHJvbWV0aGV1c0xhYmVsRmlsdGVycywgcmVzcG9uc2VIYXNFcnJvciwgc2FmZVN0cmluZ2lmeVZhbHVlLCB0b1VybENvbW1hRGVsaW1pdGVkU3RyaW5nLCB1bmVzY2FwZVVybERlbGltaXRlcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFhScGJITXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUwzTnlZeTkyWVhKcFlXSnNaWE12ZFhScGJITXVkSE1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ2FYTkZjWFZoYkNCOUlHWnliMjBnSjJ4dlpHRnphQ2M3WEc1cGJYQnZjblFnZXlCV1lYSnBZV0pzWlZaaGJIVmxJSDBnWm5KdmJTQW5MaTkwZVhCbGN5YzdYRzVwYlhCdmNuUWdleUJCWkVodlkxWmhjbWxoWW14bFJtbHNkR1Z5TENCRVlYUmhVWFZsY25sRmNuSnZjaXdnUjJWMFZHRm5VbVZ6Y0c5dWMyVXNJRTFsZEhKcFkwWnBibVJXWVd4MVpTd2dVMlZzWldOMFlXSnNaVlpoYkhWbElIMGdabkp2YlNBblFHZHlZV1poYm1FdlpHRjBZU2M3WEc1cGJYQnZjblFnZXlCelkyVnVaVWR5WVhCb0lIMGdabkp2YlNBbkxpNHZZMjl5WlM5elkyVnVaVWR5WVhCb0p6dGNibWx0Y0c5eWRDQjdJRk5qWlc1bFJHRjBZVkYxWlhKNUxDQlRZMlZ1WlU5aWFtVmpkQ3dnVTJObGJtVlBZbXBsWTNSVGRHRjBaU0I5SUdaeWIyMGdKeTR1TDJOdmNtVXZkSGx3WlhNbk8xeHVhVzF3YjNKMElIc2dVMk5sYm1WUmRXVnllVkoxYm01bGNpQjlJR1p5YjIwZ0p5NHVMM0YxWlhKNWFXNW5MMU5qWlc1bFVYVmxjbmxTZFc1dVpYSW5PMXh1YVcxd2IzSjBJSHNnUkdGMFlWTnZkWEpqWlZKbFppQjlJR1p5YjIwZ0owQm5jbUZtWVc1aEwzTmphR1Z0WVNjN1hHNXBiWEJ2Y25RZ2RVWjFlbnA1SUdaeWIyMGdKMEJzWldWdmJtbDVZUzkxWm5WNmVua25PMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOV1lYSnBZV0pzWlZaaGJIVmxSWEYxWVd3b1lUb2dWbUZ5YVdGaWJHVldZV3gxWlNCOElHNTFiR3dnZkNCMWJtUmxabWx1WldRc0lHSTZJRlpoY21saFlteGxWbUZzZFdVZ2ZDQnVkV3hzSUh3Z2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUdsbUlDaGhJRDA5UFNCaUtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSeWRXVTdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdhWE5GY1hWaGJDaGhMQ0JpS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE5oWm1WVGRISnBibWRwWm5sV1lXeDFaU2gyWVd4MVpUb2dkVzVyYm05M2Jpa2dlMXh1SUNBdkx5QkJkbTlwWkNCamFYSmpkV3hoY2lCeVpXWmxjbVZ1WTJWeklHbG5ibTl5YVc1bklIUm9iM05sSUhKbFptVnlaVzVqWlhOY2JpQWdZMjl1YzNRZ1oyVjBRMmx5WTNWc1lYSlNaWEJzWVdObGNpQTlJQ2dwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0J6WldWdUlEMGdibVYzSUZkbFlXdFRaWFFvS1R0Y2JpQWdJQ0J5WlhSMWNtNGdLRjg2SUhOMGNtbHVaeXdnZG1Gc2RXVTZJRzlpYW1WamRDQjhJRzUxYkd3cElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNoMGVYQmxiMllnZG1Gc2RXVWdQVDA5SUNkdlltcGxZM1FuSUNZbUlIWmhiSFZsSUNFOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h6WldWdUxtaGhjeWgyWVd4MVpTa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2MyVmxiaTVoWkdRb2RtRnNkV1VwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHVJQ0FnSUgwN1hHNGdJSDA3WEc1Y2JpQWdkSEo1SUh0Y2JpQWdJQ0J5WlhSMWNtNGdTbE5QVGk1emRISnBibWRwWm5rb2RtRnNkV1VzSUdkbGRFTnBjbU4xYkdGeVVtVndiR0ZqWlhJb0tTazdYRzRnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdZMjl1YzI5c1pTNWxjbkp2Y2lobGNuSnZjaWs3WEc0Z0lIMWNibHh1SUNCeVpYUjFjbTRnSnljN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5Wlc1a1pYSlFjbTl0WlhSb1pYVnpUR0ZpWld4R2FXeDBaWEp6S0dacGJIUmxjbk02SUVGa1NHOWpWbUZ5YVdGaWJHVkdhV3gwWlhKYlhTa2dlMXh1SUNCeVpYUjFjbTRnWm1sc2RHVnljeTV0WVhBb0tHWnBiSFJsY2lrZ1BUNGdjbVZ1WkdWeVJtbHNkR1Z5S0dacGJIUmxjaWtwTG1wdmFXNG9KeXduS1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnY21WdVpHVnlSbWxzZEdWeUtHWnBiSFJsY2pvZ1FXUkliMk5XWVhKcFlXSnNaVVpwYkhSbGNpa2dlMXh1SUNCc1pYUWdkbUZzZFdVZ1BTQW5KenRjYmlBZ2JHVjBJRzl3WlhKaGRHOXlJRDBnWm1sc2RHVnlMbTl3WlhKaGRHOXlPMXh1WEc0Z0lDOHZJRzFoY0NCY0ltOXVaU0J2Wmx3aUlHOXdaWEpoZEc5eUlIUnZJSEpsWjJWNFhHNGdJR2xtSUNodmNHVnlZWFJ2Y2lBOVBUMGdKejE4SnlrZ2UxeHVJQ0FnSUc5d1pYSmhkRzl5SUQwZ0p6MStKenRjYmlBZ0lDQXZMeUJVVDBSUElISmxiVzkyWlNCM2FHVnVJSGRsSjNKbElHOXVJSFJvWlNCc1lYUmxjM1FnZG1WeWMybHZiaUJ2WmlCQVozSmhabUZ1WVM5a1lYUmhYRzRnSUNBZ0x5OGdRSFJ6TFdWNGNHVmpkQzFsY25KdmNseHVJQ0FnSUhaaGJIVmxJRDBnWm1sc2RHVnlMblpoYkhWbGN6OHViV0Z3S0dWelkyRndaVXhoWW1Wc1ZtRnNkV1ZKYmxKbFoyVjRVMlZzWldOMGIzSXBMbXB2YVc0b0ozd25LVHRjYmlBZ2ZTQmxiSE5sSUdsbUlDaHZjR1Z5WVhSdmNpQTlQVDBnSnlFOWZDY3BJSHRjYmlBZ0lDQnZjR1Z5WVhSdmNpQTlJQ2NoZmljN1hHNGdJQ0FnTHk4Z1ZFOUVUeUJ5WlcxdmRtVWdkMmhsYmlCM1pTZHlaU0J2YmlCMGFHVWdiR0YwWlhOMElIWmxjbk5wYjI0Z2IyWWdRR2R5WVdaaGJtRXZaR0YwWVZ4dUlDQWdJQzh2SUVCMGN5MWxlSEJsWTNRdFpYSnliM0pjYmlBZ0lDQjJZV3gxWlNBOUlHWnBiSFJsY2k1MllXeDFaWE0vTG0xaGNDaGxjMk5oY0dWTVlXSmxiRlpoYkhWbFNXNVNaV2RsZUZObGJHVmpkRzl5S1M1cWIybHVLQ2Q4SnlrN1hHNGdJSDBnWld4elpTQnBaaUFvYjNCbGNtRjBiM0lnUFQwOUlDYzlmaWNnZkh3Z2IzQmxjbUYwYjNJZ1BUMDlJQ2NoZmljcElIdGNiaUFnSUNCMllXeDFaU0E5SUdWelkyRndaVXhoWW1Wc1ZtRnNkV1ZKYmxKbFoyVjRVMlZzWldOMGIzSW9abWxzZEdWeUxuWmhiSFZsS1R0Y2JpQWdmU0JsYkhObElIdGNiaUFnSUNCMllXeDFaU0E5SUdWelkyRndaVXhoWW1Wc1ZtRnNkV1ZKYmtWNFlXTjBVMlZzWldOMGIzSW9abWxzZEdWeUxuWmhiSFZsS1R0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCZ0pIdG1hV3gwWlhJdWEyVjVmU1I3YjNCbGNtRjBiM0o5WENJa2UzWmhiSFZsZlZ3aVlEdGNibjFjYmx4dUx5OGdZbUZ6WldRZ2IyNGdkR2hsSUc5d1pXNXRaWFJ5YVdOekxXUnZZM1Z0Wlc1MFlYUnBiMjRzSUhSb1pTQXpJSE41YldKdmJITWdkMlVnYUdGMlpTQjBieUJvWVc1a2JHVWdZWEpsT2x4dUx5OGdMU0JjWEc0Z0xpNHVJSFJvWlNCdVpYZHNhVzVsSUdOb1lYSmhZM1JsY2x4dUx5OGdMU0JjWENBZ0xpNHVJSFJvWlNCaVlXTnJjMnhoYzJnZ1kyaGhjbUZqZEdWeVhHNHZMeUF0SUZ3aUlDQXVMaTRnZEdobElHUnZkV0pzWlMxeGRXOTBaU0JqYUdGeVlXTjBaWEpjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJsYzJOaGNHVk1ZV0psYkZaaGJIVmxTVzVGZUdGamRGTmxiR1ZqZEc5eUtHeGhZbVZzVm1Gc2RXVTZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUhKbGRIVnliaUJzWVdKbGJGWmhiSFZsTG5KbGNHeGhZMlVvTDF4Y1hGd3ZaeXdnSjF4Y1hGeGNYRnhjSnlrdWNtVndiR0ZqWlNndlhGeHVMMmNzSUNkY1hGeGNiaWNwTG5KbGNHeGhZMlVvTDF3aUwyY3NJQ2RjWEZ4Y1hDSW5LVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHVnpZMkZ3WlV4aFltVnNWbUZzZFdWSmJsSmxaMlY0VTJWc1pXTjBiM0lvYkdGaVpXeFdZV3gxWlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdjbVYwZFhKdUlHVnpZMkZ3WlV4aFltVnNWbUZzZFdWSmJrVjRZV04wVTJWc1pXTjBiM0lvWlhOallYQmxURzlyYVZKbFoyVjRjQ2hzWVdKbGJGWmhiSFZsS1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzFKbFoyVjRVMlZzWldOMGIzSW9jMlZzWldOMGIzSS9PaUJ6ZEhKcGJtY3BJSHRjYmlBZ2FXWWdLSE5sYkdWamRHOXlJQ1ltSUNoelpXeGxZM1J2Y2k1cGJtTnNkV1JsY3lnblBYNG5LU0I4ZkNCelpXeGxZM1J2Y2k1cGJtTnNkV1JsY3lnbklYNG5LU2twSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnWm1Gc2MyVTdYRzU5WEc1Y2JpOHZJRXh2YTJrZ2NtVm5kV3hoY2kxbGVIQnlaWE56YVc5dWN5QjFjMlVnZEdobElGSkZNaUJ6ZVc1MFlYZ2dLR2gwZEhCek9pOHZaMmwwYUhWaUxtTnZiUzluYjI5bmJHVXZjbVV5TDNkcGEya3ZVM2x1ZEdGNEtTeGNiaTh2SUhOdklHVjJaWEo1SUdOb1lYSmhZM1JsY2lCMGFHRjBJRzFoZEdOb1pYTWdjMjl0WlhSb2FXNW5JR2x1SUhSb1lYUWdiR2x6ZENCb1lYTWdkRzhnWW1VZ1pYTmpZWEJsWkM1Y2JpOHZJSFJvWlNCc2FYTjBJRzltSUcxbGRHRWdZMmhoY21GamRHVnljeUJwY3pvZ0tpcy9LQ2w4WEZ3dVcxMTdmVjRrWEc0dkx5QjNaU0J0WVd0bElHRWdhbUYyWVhOamNtbHdkQ0J5WldkMWJHRnlJR1Y0Y0hKbGMzTnBiMjRnZEdoaGRDQnRZWFJqYUdWeklIUm9iM05sSUdOb1lYSmhZM1JsY25NNlhHNWpiMjV6ZENCU1JUSmZUVVZVUVVOSVFWSkJRMVJGVWxNZ1BTQXZXeW9yUHlncGZGeGNYRnd1WEZ4YlhGeGRlMzFlSkYwdlp6dGNibVoxYm1OMGFXOXVJR1Z6WTJGd1pVeHZhMmxTWldkbGVIQW9kbUZzZFdVNklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJSEpsZEhWeWJpQjJZV3gxWlM1eVpYQnNZV05sS0ZKRk1sOU5SVlJCUTBoQlVrRkRWRVZTVXl3Z0oxeGNYRndrSmljcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVkbGRDQmhiR3dnY1hWbGNtbGxjeUJwYmlCMGFHVWdjMk5sYm1VZ2RHaGhkQ0JvWVhabElIUm9aU0J6WVcxbElHUmhkR0Z6YjNWeVkyVWdZWE1nY0hKdmRtbGtaV1FnYzI5MWNtTmxJRzlpYW1WamRGeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFVYVmxjbWxsYzBadmNsWmhjbWxoWW14bGN5aGNiaUFnYzI5MWNtTmxUMkpxWldOME9pQlRZMlZ1WlU5aWFtVmpkRHhUWTJWdVpVOWlhbVZqZEZOMFlYUmxJQ1lnZXlCa1lYUmhjMjkxY21ObE9pQkVZWFJoVTI5MWNtTmxVbVZtSUh3Z2JuVnNiQ0I5UGx4dUtTQjdYRzRnSUdOdmJuTjBJSEoxYm01bGNuTWdQU0J6WTJWdVpVZHlZWEJvTG1acGJtUkJiR3hQWW1wbFkzUnpLRnh1SUNBZ0lITnZkWEpqWlU5aWFtVmpkQzVuWlhSU2IyOTBLQ2tzWEc0Z0lDQWdLRzhwSUQwK0lHOGdhVzV6ZEdGdVkyVnZaaUJUWTJWdVpWRjFaWEo1VW5WdWJtVnlYRzRnSUNrZ1lYTWdVMk5sYm1WUmRXVnllVkoxYm01bGNsdGRPMXh1WEc0Z0lHTnZibk4wSUdGd2NHeHBZMkZpYkdWU2RXNXVaWEp6SUQwZ1ptbHNkR1Z5VDNWMFNXNWhZM1JwZG1WU2RXNXVaWEpFZFhCc2FXTmhkR1Z6S0hKMWJtNWxjbk1wTG1acGJIUmxjaWdvY2lrZ1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCeUxuTjBZWFJsTG1SaGRHRnpiM1Z5WTJVL0xuVnBaQ0E5UFQwZ2MyOTFjbU5sVDJKcVpXTjBMbk4wWVhSbExtUmhkR0Z6YjNWeVkyVS9MblZwWkR0Y2JpQWdmU2s3WEc1Y2JpQWdhV1lnS0dGd2NHeHBZMkZpYkdWU2RXNXVaWEp6TG14bGJtZDBhQ0E5UFQwZ01Da2dlMXh1SUNBZ0lISmxkSFZ5YmlCYlhUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMElISmxjM1ZzZERvZ1UyTmxibVZFWVhSaFVYVmxjbmxiWFNBOUlGdGRPMXh1SUNCaGNIQnNhV05oWW14bFVuVnVibVZ5Y3k1bWIzSkZZV05vS0NoeUtTQTlQaUI3WEc0Z0lDQWdjbVZ6ZFd4MExuQjFjMmdvTGk0dWNpNXpkR0YwWlM1eGRXVnlhV1Z6S1R0Y2JpQWdmU2s3WEc1Y2JpQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JuMWNibHh1THk4Z1JtbHNkR1Z5Y3lCdmRYUWdhVzVoWTNScGRtVWdjblZ1Ym1WeUlHUjFjR3hwWTJGMFpYTXNJR3RsWlhCcGJtY2diMjVzZVNCMGFHVWdiMjVsY3lCMGFHRjBJR0Z5WlNCamRYSnlaVzUwYkhrZ1lXTjBhWFpsTGx4dUx5OGdWR2hwY3lCcGN5QnVaV1ZrWldRZ1ptOXlJSE5qYm1WaGNtbHZjeUIzYUdGdUlHRWdjWFZsY25rZ2NuVnVibVZ5SUdseklHTnNiMjVsWkNCaGJtUWdkR2hsSUc5eWFXZHBibUZzSUdseklHNXZkQ0J5WlcxdmRtVmtJR0oxZENCa1pTMWhZM1JwZG1GMFpXUXVYRzR2THlCRFlXNGdhR0Z3Y0dWdUlHa3VaUzRnZDJobGJpQmxaR2wwYVc1bklHRWdjR0Z1Wld3Z2FXNGdSM0poWm1GdVlTQkRiM0psSUdSaGMyaGliMkZ5WkhNdVhHNW1kVzVqZEdsdmJpQm1hV3gwWlhKUGRYUkpibUZqZEdsMlpWSjFibTVsY2tSMWNHeHBZMkYwWlhNb2NuVnVibVZ5Y3pvZ1UyTmxibVZSZFdWeWVWSjFibTVsY2x0ZEtTQjdYRzRnSUM4dklFZHliM1Z3SUdsMFpXMXpJR0o1SUd0bGVWeHVJQ0JqYjI1emRDQm5jbTkxY0dWa1NYUmxiWE02SUhzZ1cydGxlVG9nYzNSeWFXNW5YVG9nVTJObGJtVlJkV1Z5ZVZKMWJtNWxjbHRkSUgwZ1BTQjdmVHRjYmx4dUlDQm1iM0lnS0dOdmJuTjBJR2wwWlcwZ2IyWWdjblZ1Ym1WeWN5a2dlMXh1SUNBZ0lHbG1JQ2hwZEdWdExuTjBZWFJsTG10bGVTa2dlMXh1SUNBZ0lDQWdhV1lnS0NFb2FYUmxiUzV6ZEdGMFpTNXJaWGtnYVc0Z1ozSnZkWEJsWkVsMFpXMXpLU2tnZTF4dUlDQWdJQ0FnSUNCbmNtOTFjR1ZrU1hSbGJYTmJhWFJsYlM1emRHRjBaUzVyWlhsZElEMGdXMTA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JuY205MWNHVmtTWFJsYlhOYmFYUmxiUzV6ZEdGMFpTNXJaWGxkTG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ0x5OGdSbWxzZEdWeUlHOTFkQ0JwYm1GamRHbDJaU0JwZEdWdGN5QmhibVFnWTI5dVkyRjBaVzVoZEdVZ1lXTjBhWFpsSUdsMFpXMXpYRzRnSUhKbGRIVnliaUJQWW1wbFkzUXVkbUZzZFdWektHZHliM1Z3WldSSmRHVnRjeWt1Wm14aGRFMWhjQ2dvWjNKdmRYQXBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQmhZM1JwZG1WSmRHVnRjeUE5SUdkeWIzVndMbVpwYkhSbGNpZ29hWFJsYlNrZ1BUNGdhWFJsYlM1cGMwRmpkR2wyWlNrN1hHNGdJQ0FnTHk4Z1MyVmxjQ0JwYm1GamRHbDJaU0JwZEdWdGN5QnBaaUIwYUdWeVpTZHpJRzl1YkhrZ2IyNWxJR2wwWlcwZ2QybDBhQ0IwYUdVZ2EyVjVYRzRnSUNBZ2FXWWdLR0ZqZEdsMlpVbDBaVzF6TG14bGJtZDBhQ0E5UFQwZ01DQW1KaUJuY205MWNDNXNaVzVuZEdnZ1BUMDlJREVwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJuY205MWNEdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJR0ZqZEdsMlpVbDBaVzF6TzF4dUlDQjlLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHVnpZMkZ3WlZWeWJGQnBjR1ZFWld4cGJXbDBaWEp6S0haaGJIVmxPaUJ6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1FwT2lCemRISnBibWNnZTF4dUlDQnBaaUFvZG1Gc2RXVWdQVDA5SUc1MWJHd2dmSHdnZG1Gc2RXVWdQVDA5SUhWdVpHVm1hVzVsWkNrZ2UxeHVJQ0FnSUhKbGRIVnliaUFuSnp0Y2JpQWdmVnh1WEc0Z0lDOHZJRkpsY0d4aFkyVWdkR2hsSUhCcGNHVWdaSFZsSUhSdklIVnphVzVuSUdsMElHRnpJR0VnWm1sc2RHVnlJSE5sY0dGeVlYUnZjbHh1SUNCeVpYUjFjbTRnS0haaGJIVmxJRDBnTDF4Y2ZDOW5XMU41YldKdmJDNXlaWEJzWVdObFhTaDJZV3gxWlN3Z0oxOWZaMlp3WDE4bktTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCbGMyTmhjR1ZWY214RGIyMXRZVVJsYkdsdGFYUmxjbk1vZG1Gc2RXVTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ2s2SUhOMGNtbHVaeUI3WEc0Z0lHbG1JQ2gyWVd4MVpTQTlQVDBnYm5Wc2JDQjhmQ0IyWVd4MVpTQTlQVDBnZFc1a1pXWnBibVZrS1NCN1hHNGdJQ0FnY21WMGRYSnVJQ2NuTzF4dUlDQjlYRzVjYmlBZ0x5OGdVbVZ3YkdGalpTQjBhR1VnWTI5dGJXRWdaSFZsSUhSdklIVnphVzVuSUdsMElHRnpJR0VnZG1Gc2RXVXZiR0ZpWld3Z2MyVndZWEpoZEc5eVhHNGdJSEpsZEhWeWJpQXZMQzluVzFONWJXSnZiQzV5WlhCc1lXTmxYU2gyWVd4MVpTd2dKMTlmWjJaalgxOG5LVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIVnVaWE5qWVhCbFZYSnNSR1ZzYVcxcGRHVnljeWgyWVd4MVpUb2djM1J5YVc1bklId2dkVzVrWldacGJtVmtLVG9nYzNSeWFXNW5JSHRjYmlBZ2FXWWdLSFpoYkhWbElEMDlQU0J1ZFd4c0lIeDhJSFpoYkhWbElEMDlQU0IxYm1SbFptbHVaV1FwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdKeWM3WEc0Z0lIMWNibHh1SUNCMllXeDFaU0E5SUM5ZlgyZG1jRjlmTDJkYlUzbHRZbTlzTG5KbGNHeGhZMlZkS0haaGJIVmxMQ0FuZkNjcE8xeHVJQ0IyWVd4MVpTQTlJQzlmWDJkbVkxOWZMMmRiVTNsdFltOXNMbkpsY0d4aFkyVmRLSFpoYkhWbExDQW5MQ2NwTzF4dVhHNGdJSEpsZEhWeWJpQjJZV3gxWlR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFJ2VlhKc1EyOXRiV0ZFWld4cGJXbDBaV1JUZEhKcGJtY29hMlY1T2lCemRISnBibWNzSUd4aFltVnNQem9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0x5OGdUMjFwZENCbWIzSWdhV1JsYm5ScFkyRnNJR3RsZVM5c1lXSmxiQ0J2Y2lCM2FHVnVJR3hoWW1Wc0lHbHpJRzV2ZENCelpYUWdZWFFnWVd4c1hHNGdJR2xtSUNnaGJHRmlaV3dnZkh3Z2EyVjVJRDA5UFNCc1lXSmxiQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmxjMk5oY0dWVmNteERiMjF0WVVSbGJHbHRhWFJsY25Nb2EyVjVLVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJiYTJWNUxDQnNZV0psYkYwdWJXRndLR1Z6WTJGd1pWVnliRU52YlcxaFJHVnNhVzFwZEdWeWN5a3VhbTlwYmlnbkxDY3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1pHRjBZVVp5YjIxU1pYTndiMjV6WlNoeVpYTndiMjV6WlRvZ1IyVjBWR0ZuVW1WemNHOXVjMlVnZkNCTlpYUnlhV05HYVc1a1ZtRnNkV1ZiWFNrZ2UxeHVJQ0J5WlhSMWNtNGdRWEp5WVhrdWFYTkJjbkpoZVNoeVpYTndiMjV6WlNrZ1B5QnlaWE53YjI1elpTQTZJSEpsYzNCdmJuTmxMbVJoZEdFN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5WlhOd2IyNXpaVWhoYzBWeWNtOXlLRnh1SUNCeVpYTndiMjV6WlRvZ1IyVjBWR0ZuVW1WemNHOXVjMlVnZkNCTlpYUnlhV05HYVc1a1ZtRnNkV1ZiWFZ4dUtUb2djbVZ6Y0c5dWMyVWdhWE1nUjJWMFZHRm5VbVZ6Y0c5dWMyVWdKaUI3SUdWeWNtOXlPaUJFWVhSaFVYVmxjbmxGY25KdmNpQjlJSHRjYmlBZ2NtVjBkWEp1SUNGQmNuSmhlUzVwYzBGeWNtRjVLSEpsYzNCdmJuTmxLU0FtSmlCQ2IyOXNaV0Z1S0hKbGMzQnZibk5sTG1WeWNtOXlLVHRjYm4xY2JseHVMeThnUTI5c2JHVmpkQ0JoSUdac1lYUWdiR2x6ZENCdlppQlRaV3hsWTNSaFlteGxWbUZzZFdWeklIZHBkR2dnWVNCZ1ozSnZkWEJnSUhCeWIzQmxjblI1SUdsdWRHOGdZU0JvYVdWeVlYSmphR2xqWVd3Z2JHbHpkQ0IzYVhSb0lHZHliM1Z3YzF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdoaGJtUnNaVTl3ZEdsdmJrZHliM1Z3Y3loMllXeDFaWE02SUZObGJHVmpkR0ZpYkdWV1lXeDFaVnRkS1RvZ1FYSnlZWGs4VTJWc1pXTjBZV0pzWlZaaGJIVmxQSE4wY21sdVp6NCtJSHRjYmlBZ1kyOXVjM1FnY21WemRXeDBPaUJCY25KaGVUeFRaV3hsWTNSaFlteGxWbUZzZFdVOGMzUnlhVzVuUGo0Z1BTQmJYVHRjYmlBZ1kyOXVjM1FnWjNKdmRYQmxaRkpsYzNWc2RITWdQU0J1WlhjZ1RXRndQSE4wY21sdVp5d2dRWEp5WVhrOFUyVnNaV04wWVdKc1pWWmhiSFZsUEhOMGNtbHVaejQrUGlncE8xeHVYRzRnSUdadmNpQW9ZMjl1YzNRZ2RtRnNkV1VnYjJZZ2RtRnNkV1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdaM0p2ZFhCTVlXSmxiQ0E5SUhaaGJIVmxMbWR5YjNWd08xeHVJQ0FnSUdsbUlDaG5jbTkxY0V4aFltVnNLU0I3WEc0Z0lDQWdJQ0JzWlhRZ1ozSnZkWEFnUFNCbmNtOTFjR1ZrVW1WemRXeDBjeTVuWlhRb1ozSnZkWEJNWVdKbGJDazdYRzVjYmlBZ0lDQWdJR2xtSUNnaFozSnZkWEFwSUh0Y2JpQWdJQ0FnSUNBZ1ozSnZkWEFnUFNCYlhUdGNiaUFnSUNBZ0lDQWdaM0p2ZFhCbFpGSmxjM1ZzZEhNdWMyVjBLR2R5YjNWd1RHRmlaV3dzSUdkeWIzVndLVHRjYmlBZ0lDQWdJQ0FnY21WemRXeDBMbkIxYzJnb2V5QnNZV0psYkRvZ1ozSnZkWEJNWVdKbGJDd2diM0IwYVc5dWN6b2daM0p2ZFhBZ2ZTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2R5YjNWd0xuQjFjMmdvZG1Gc2RXVXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCeVpYTjFiSFF1Y0hWemFDaDJZV3gxWlNrN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUhKbGMzVnNkRHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRVoxZW5wNVUyVmhjbU5vWlhJb2FHRjVjM1JoWTJzNklITjBjbWx1WjF0ZExDQnNhVzFwZENBOUlERXdYekF3TUNrZ2UxeHVJQ0JqYjI1emRDQjFablY2ZW5rZ1BTQnVaWGNnZFVaMWVucDVLQ2s3WEc1Y2JpQWdZMjl1YzNRZ1JrbFNVMVFnUFNCQmNuSmhlUzVtY205dEtIc2diR1Z1WjNSb09pQk5ZWFJvTG0xcGJpaHNhVzFwZEN3Z2FHRjVjM1JoWTJzdWJHVnVaM1JvS1NCOUxDQW9YeXdnYVNrZ1BUNGdhU2s3WEc1Y2JpQWdMeThnY21WMGRYSnVjeUJ0WVhSamFHVmtJR2x1WkdsalpYTWdZbmtnY1hWaGJHbDBlVnh1SUNCeVpYUjFjbTRnS0hObFlYSmphRG9nYzNSeWFXNW5LVG9nYm5WdFltVnlXMTBnUFQ0Z2UxeHVJQ0FnSUdsbUlDaHpaV0Z5WTJnZ1BUMDlJQ2NuS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUmtsU1UxUTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnVzJsa2VITXNJR2x1Wm04c0lHOXlaR1Z5WFNBOUlIVm1kWHA2ZVM1elpXRnlZMmdvYUdGNWMzUmhZMnNzSUhObFlYSmphQ2s3WEc1Y2JpQWdJQ0JwWmlBb2FXUjRjeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHbHVabThnSmlZZ2IzSmtaWElwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYjNWMFNXUjRjeUE5SUVGeWNtRjVLRTFoZEdndWJXbHVLRzl5WkdWeUxteGxibWQwYUN3Z2JHbHRhWFFwS1R0Y2JseHVJQ0FnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzkxZEVsa2VITXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnZkWFJKWkhoelcybGRJRDBnYVc1bWJ5NXBaSGhiYjNKa1pYSmJhVjFkTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHOTFkRWxrZUhNN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCcFpIaHpMbk5zYVdObEtEQXNJR3hwYldsMEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnVzEwN1hHNGdJSDA3WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHNpZG1Gc2RXVWlYU3dpYldGd2NHbHVaM01pT2lJN096czdPMEZCVTJkQ0xGTkJRVUVzYjBKQlFVRXNRMEZCY1VJc1IwRkJjVU1zUTBGQmNVTXNSVUZCUVR0QlFVTTNSeXhGUVVGQkxFbEJRVWtzVFVGQlRTeERRVUZITEVWQlFVRTdRVUZEV0N4SlFVRlBMRTlCUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFZEdEJRVVZCTEVWQlFVOHNUMEZCUVN4UFFVRkJMRU5CUVZFc1IwRkJSeXhEUVVGRExFTkJRVUVzUTBGQlFUdEJRVU55UWl4RFFVRkJPMEZCUlU4c1UwRkJVeXh0UWtGQmJVSXNTMEZCWjBJc1JVRkJRVHRCUVVWcVJDeEZRVUZCTEUxQlFVMHNjMEpCUVhOQ0xFMUJRVTA3UVVGRGFFTXNTVUZCVFN4TlFVRkJMRWxCUVVFc2RVSkJRVmNzVDBGQlVTeEZRVUZCTEVOQlFVRTdRVUZEZWtJc1NVRkJUeXhQUVVGQkxFTkJRVU1zUjBGQlYwRXNUVUZCZVVJc1MwRkJRVHRCUVVNeFF5eE5RVUZCTEVsQlFVa3NUMEZCVDBFc1RVRkJRVUVzUzBGQlZTeFJRVUZaUVN4SlFVRkJRU3hOUVVGQlFTeExRVUZWTEVsQlFVMHNSVUZCUVR0QlFVTXZReXhSUVVGSkxFbEJRVUVzU1VGQlFTeERRVUZMTEVkQlFVbEJMRU5CUVVGQkxFMUJRVXNzUTBGQlJ5eEZRVUZCTzBGQlEyNUNMRlZCUVVFc1QwRkJRVHRCUVVGQkxGTkJRMFk3UVVGRFFTeFJRVUZCTEVsQlFVRXNRMEZCU3l4SlFVRkpRU3hOUVVGTExFTkJRVUVzUTBGQlFUdEJRVUZCTEU5QlEyaENPMEZCUTBFc1RVRkJUMEVzVDBGQlFVRXNUVUZCUVVFc1EwRkJRVUU3UVVGQlFTeExRVU5VTEVOQlFVRTdRVUZCUVN4SFFVTkdMRU5CUVVFN1FVRkZRU3hGUVVGSkxFbEJRVUU3UVVGRFJpeEpRVUZCTEU5QlFVOHNTVUZCU3l4RFFVRkJMRk5CUVVFc1EwRkJWU3hMUVVGUExFVkJRVUVzYlVKQlFVRXNSVUZCY1VJc1EwRkJRU3hEUVVGQk8wRkJRVUVzVjBGRE0wTXNTMEZCVUN4RlFVRkJPMEZCUTBFc1NVRkJRU3hQUVVGQkxFTkJRVkVzVFVGQlRTeExRVUZMTEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTNKQ08wRkJSVUVzUlVGQlR5eFBRVUZCTEVWQlFVRXNRMEZCUVR0QlFVTlVMRU5CUVVFN1FVRkZUeXhUUVVGVExEWkNRVUUyUWl4UFFVRm5ReXhGUVVGQk8wRkJRek5GTEVWQlFVOHNUMEZCUVN4UFFVRkJMRU5CUVZFc1NVRkJTU3hEUVVGRExFMUJRVUVzUzBGQlZ5eGhRVUZoTEUxQlFVMHNRMEZCUXl4RFFVRkZMRU5CUVVFc1NVRkJRU3hEUVVGTExFZEJRVWNzUTBGQlFTeERRVUZCTzBGQlF5OUVMRU5CUVVFN1FVRkZRU3hUUVVGVExHRkJRV0VzVFVGQk5rSXNSVUZCUVR0QlFUZERia1FzUlVGQlFTeEpRVUZCTEVWQlFVRXNSVUZCUVN4RlFVRkJMRU5CUVVFN1FVRTRRMFVzUlVGQlFTeEpRVUZKTEV0QlFWRXNSMEZCUVN4RlFVRkJMRU5CUVVFN1FVRkRXaXhGUVVGQkxFbEJRVWtzVjBGQlZ5eE5RVUZQTEVOQlFVRXNVVUZCUVN4RFFVRkJPMEZCUjNSQ0xFVkJRVUVzU1VGQlNTeGhRVUZoTEVsQlFVMHNSVUZCUVR0QlFVTnlRaXhKUVVGWExGRkJRVUVzUjBGQlFTeEpRVUZCTEVOQlFVRTdRVUZIV0N4SlFVRkJMRXRCUVVFc1IwRkJRU3hEUVVGUkxFVkJRVThzUjBGQlFTeE5RVUZCTEVOQlFVRXNUVUZCUVN4TFFVRlFMRWxCUVdVc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVRXNSMEZCUVN4RFFVRkpMR2xEUVVGcFF5eEpRVUZMTEVOQlFVRXNSMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOdVJTeE5RVUZCTEVsQlFWY3NZVUZCWVN4TFFVRlBMRVZCUVVFN1FVRkROMElzU1VGQlZ5eFJRVUZCTEVkQlFVRXNTVUZCUVN4RFFVRkJPMEZCUjFnc1NVRkJRU3hMUVVGQkxFZEJRVUVzUTBGQlVTeEZRVUZQTEVkQlFVRXNUVUZCUVN4RFFVRkJMRTFCUVVFc1MwRkJVQ3hKUVVGbExFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNSVUZCUVN4RFFVRkJMRWRCUVVFc1EwRkJTU3hwUTBGQmFVTXNTVUZCU3l4RFFVRkJMRWRCUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGVFUXNUVUZCUVN4SlFVRkJMRkZCUVVFc1MwRkJZU3hKUVVGUkxFbEJRVUVzVVVGQlFTeExRVUZoTEVsQlFVMHNSVUZCUVR0QlFVTnFSQ3hKUVVGUkxFdEJRVUVzUjBGQlFTd3JRa0ZCUVN4RFFVRm5ReXhQUVVGUExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZETDBNc1RVRkJRVHRCUVVOTUxFbEJRVkVzUzBGQlFTeEhRVUZCTEN0Q1FVRkJMRU5CUVdkRExFOUJRVThzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTjBSRHRCUVVWQkxFVkJRVThzVDBGQlFTeERRVUZCTEVWQlFVY3NUVUZCVHl4RFFVRkJMRWRCUVVFc1EwRkJRU3hGUVVGTkxGRkJRVmtzUTBGQlFTeERRVUZCTEVWQlFVRXNTMEZCUVN4RFFVRkJMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJRM0pETEVOQlFVRTdRVUZOVHl4VFFVRlRMR2REUVVGblF5eFZRVUUwUWl4RlFVRkJPMEZCUXpGRkxFVkJRVThzVDBGQlFTeFZRVUZCTEVOQlFWY3NUMEZCVVN4RFFVRkJMRXRCUVVFc1JVRkJUeXhOUVVGTkxFTkJRVUVzUTBGQlJTeFBRVUZSTEVOQlFVRXNTMEZCUVN4RlFVRlBMRXRCUVVzc1EwRkJRU3hEUVVGRkxFOUJRVkVzUTBGQlFTeEpRVUZCTEVWQlFVMHNTMEZCU3l4RFFVRkJMRU5CUVVFN1FVRkRjRVlzUTBGQlFUdEJRVVZQTEZOQlFWTXNaME5CUVdkRExGVkJRVFJDTEVWQlFVRTdRVUZETVVVc1JVRkJUeXhQUVVGQkxDdENRVUZCTEVOQlFXZERMR2RDUVVGcFFpeERRVUZCTEZWQlFWVXNRMEZCUXl4RFFVRkJMRU5CUVVFN1FVRkRja1VzUTBGQlFUdEJRV0ZCTEUxQlFVMHNhMEpCUVhGQ0xFZEJRVUVzYzBKQlFVRXNRMEZCUVR0QlFVTXpRaXhUUVVGVExHbENRVUZwUWl4TFFVRjFRaXhGUVVGQk8wRkJReTlETEVWQlFVOHNUMEZCUVN4TFFVRkJMRU5CUVUwc1QwRkJVU3hEUVVGQkxHdENRVUZCTEVWQlFXOUNMRTFCUVUwc1EwRkJRU3hEUVVGQk8wRkJRMnBFTEVOQlFVRTdRVUZMVHl4VFFVRlRMSFZDUVVOa0xGbEJRMEVzUlVGQlFUdEJRVU5CTEVWQlFVRXNUVUZCVFN4VlFVRlZMRlZCUVZjc1EwRkJRU3hqUVVGQk8wRkJRVUVzU1VGRGVrSXNZVUZCWVN4UFFVRlJMRVZCUVVFN1FVRkJRU3hKUVVOeVFpeERRVUZETEUxQlFVMHNRMEZCWVN4WlFVRkJMR2RDUVVGQk8wRkJRVUVzUjBGRGRFSXNRMEZCUVR0QlFVVkJMRVZCUVVFc1RVRkJUU3h2UWtGQmIwSXNhVU5CUVd0RExFTkJRVUVzVDBGQlR5eERRVUZGTEVOQlFVRXNUVUZCUVN4RFFVRlBMRU5CUVVNc1EwRkJUU3hMUVVGQk8wRkJOVWR5Uml4SlFVRkJMRWxCUVVFc1JVRkJRU3hGUVVGQkxFVkJRVUVzUTBGQlFUdEJRVFpIU1N4SlFVRlBMRTlCUVVFc1EwRkJRU3hEUVVGQkxFVkJRVUVzUjBGQlFTeERRVUZCTEVOQlFVVXNUVUZCVFN4VlFVRlNMRXRCUVVFc1NVRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVWQlFVRXNRMEZCYjBJc1YwRkJVU3hGUVVGaExFZEJRVUVzV1VGQlFTeERRVUZCTEV0QlFVRXNRMEZCVFN4bFFVRnVRaXhKUVVFclFpeEhRVUZCTEV0QlFVRXNRMEZCUVN4SFFVRkJMRVZCUVVFc1EwRkJRU3hIUVVGQkxFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEyNUZMRU5CUVVFc1EwRkJRVHRCUVVWRUxFVkJRVWtzU1VGQlFTeHBRa0ZCUVN4RFFVRnJRaXhYUVVGWExFTkJRVWNzUlVGQlFUdEJRVU5zUXl4SlFVRkJMRTlCUVU4c1JVRkJReXhEUVVGQk8wRkJRVUVzUjBGRFZqdEJRVVZCTEVWQlFVRXNUVUZCVFN4VFFVRXlRaXhGUVVGRExFTkJRVUU3UVVGRGJFTXNSVUZCYTBJc2FVSkJRVUVzUTBGQlFTeFBRVUZCTEVOQlFWRXNRMEZCUXl4RFFVRk5MRXRCUVVFN1FVRkRMMElzU1VGQlFTeE5RVUZCTEVOQlFVOHNTVUZCU3l4RFFVRkJMRWRCUVVjc1EwRkJSU3hEUVVGQkxFdEJRVUVzUTBGQlRTeFBRVUZQTEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUXk5Q0xFTkJRVUVzUTBGQlFUdEJRVVZFTEVWQlFVOHNUMEZCUVN4TlFVRkJMRU5CUVVFN1FVRkRWQ3hEUVVGQk8wRkJTMEVzVTBGQlV5eHJRMEZCYTBNc1QwRkJOa0lzUlVGQlFUdEJRVVYwUlN4RlFVRkJMRTFCUVUwc1pVRkJjMFFzUlVGQlF5eERRVUZCTzBGQlJUZEVMRVZCUVVFc1MwRkJRU3hOUVVGWExGRkJRVkVzVDBGQlV5eEZRVUZCTzBGQlF6RkNMRWxCUVVrc1NVRkJRU3hKUVVGQkxFTkJRVXNzVFVGQlRTeEhRVUZMTEVWQlFVRTdRVUZEYkVJc1RVRkJRU3hKUVVGSkxFVkJRVVVzU1VGQlFTeERRVUZMTEV0QlFVMHNRMEZCUVN4SFFVRkJMRWxCUVU4c1dVRkJaU3hEUVVGQkxFVkJRVUU3UVVGRGNrTXNVVUZCWVN4WlFVRkJMRU5CUVVFc1NVRkJRU3hEUVVGTExFdEJRVTBzUTBGQlFTeEhRVUZCTEVOQlFVRXNSMEZCVHl4RlFVRkRMRU5CUVVFN1FVRkJRU3hQUVVOc1F6dEJRVU5CTEUxQlFVRXNXVUZCUVN4RFFVRmhMRWxCUVVzc1EwRkJRU3hMUVVGQkxFTkJRVTBzUjBGQlN5eERRVUZCTEVOQlFVRXNTVUZCUVN4RFFVRkxMRWxCUVVrc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRGVFTTdRVUZCUVN4SFFVTkdPMEZCUjBFc1JVRkJRU3hQUVVGUExFOUJRVThzVFVGQlR5eERRVUZCTEZsQlFWa3NRMEZCUlN4RFFVRkJMRTlCUVVFc1EwRkJVU3hEUVVGRExFdEJRVlVzUzBGQlFUdEJRVU53UkN4SlFVRkJMRTFCUVUwc1kwRkJZeXhMUVVGTkxFTkJRVUVzVFVGQlFTeERRVUZQTEVOQlFVTXNTVUZCUVN4TFFVRlRMRXRCUVVzc1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGRmVFUXNTVUZCUVN4SlFVRkpMRmRCUVZrc1EwRkJRU3hOUVVGQkxFdEJRVmNzUTBGQlN5eEpRVUZCTEV0QlFVRXNRMEZCVFN4WFFVRlhMRU5CUVVjc1JVRkJRVHRCUVVOc1JDeE5RVUZQTEU5QlFVRXNTMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRWRHRCUVVOQkxFbEJRVThzVDBGQlFTeFhRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTlNMRU5CUVVFc1EwRkJRVHRCUVVOSUxFTkJRVUU3UVVGRlR5eFRRVUZUTEhkQ1FVRjNRaXhMUVVGdFF5eEZRVUZCTzBGQlEzcEZMRVZCUVVrc1NVRkJRU3hMUVVGQkxFdEJRVlVzU1VGQlVTeEpRVUZCTEV0QlFVRXNTMEZCVlN4TFFVRlhMRU5CUVVFc1JVRkJRVHRCUVVONlF5eEpRVUZQTEU5QlFVRXNSVUZCUVN4RFFVRkJPMEZCUVVFc1IwRkRWRHRCUVVkQkxFVkJRVUVzVDBGQlVTeExRVUZSTEVkQlFVRXNTMEZCUVN4RFFVRk5MRTFCUVU4c1EwRkJRU3hQUVVGQkxFTkJRVUVzUTBGQlV5eFBRVUZQTEZOQlFWTXNRMEZCUVN4RFFVRkJPMEZCUTNoRUxFTkJRVUU3UVVGRlR5eFRRVUZUTEhsQ1FVRjVRaXhMUVVGdFF5eEZRVUZCTzBGQlF6RkZMRVZCUVVrc1NVRkJRU3hMUVVGQkxFdEJRVlVzU1VGQlVTeEpRVUZCTEV0QlFVRXNTMEZCVlN4TFFVRlhMRU5CUVVFc1JVRkJRVHRCUVVONlF5eEpRVUZQTEU5QlFVRXNSVUZCUVN4RFFVRkJPMEZCUVVFc1IwRkRWRHRCUVVkQkxFVkJRVUVzVDBGQlR5eEpRVUZMTEVOQlFVRXNUVUZCUVN4RFFVRlBMRTlCUVZNc1EwRkJRU3hEUVVGQkxFdEJRVUVzUlVGQlR5eFRRVUZUTEVOQlFVRXNRMEZCUVR0QlFVTTVReXhEUVVGQk8wRkJSVThzVTBGQlV5eHpRa0ZCYzBJc1MwRkJiVU1zUlVGQlFUdEJRVU4yUlN4RlFVRkpMRWxCUVVFc1MwRkJRU3hMUVVGVkxFbEJRVkVzU1VGQlFTeExRVUZCTEV0QlFWVXNTMEZCVnl4RFFVRkJMRVZCUVVFN1FVRkRla01zU1VGQlR5eFBRVUZCTEVWQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTFRN1FVRkZRU3hGUVVGQkxFdEJRVUVzUjBGQlVTeFZRVUZYTEVOQlFVRXNUVUZCUVN4RFFVRlBMRTlCUVZNc1EwRkJRU3hEUVVGQkxFdEJRVUVzUlVGQlR5eEhRVUZITEVOQlFVRXNRMEZCUVR0QlFVTTNReXhGUVVGQkxFdEJRVUVzUjBGQlVTeFZRVUZYTEVOQlFVRXNUVUZCUVN4RFFVRlBMRTlCUVZNc1EwRkJRU3hEUVVGQkxFdEJRVUVzUlVGQlR5eEhRVUZITEVOQlFVRXNRMEZCUVR0QlFVVTNReXhGUVVGUExFOUJRVUVzUzBGQlFTeERRVUZCTzBGQlExUXNRMEZCUVR0QlFVVm5RaXhUUVVGQkxIbENRVUZCTEVOQlFUQkNMRXRCUVdFc1MwRkJkMElzUlVGQlFUdEJRVVUzUlN4RlFVRkpMRWxCUVVFc1EwRkJReXhMUVVGVExFbEJRVUVzUjBGQlFTeExRVUZSTEV0QlFVOHNSVUZCUVR0QlFVTXpRaXhKUVVGQkxFOUJRVThzZVVKQlFYbENMRWRCUVVjc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGNrTTdRVUZGUVN4RlFVRlBMRTlCUVVFc1EwRkJReXhMUVVGTExFdEJRVXNzUTBGQlFTeERRVUZGTEVsQlFVa3NkMEpCUVhkQ0xFTkJRVUVzUTBGQlJTeExRVUZMTEVkQlFVY3NRMEZCUVN4RFFVRkJPMEZCUXpWRUxFTkJRVUU3UVVGRlR5eFRRVUZUTEdsQ1FVRnBRaXhSUVVFNFF5eEZRVUZCTzBGQlF6ZEZMRVZCUVVFc1QwRkJUeXhMUVVGTkxFTkJRVUVzVDBGQlFTeERRVUZSTEZGQlFWRXNRMEZCUVN4SFFVRkpMRmRCUVZjc1VVRkJVeXhEUVVGQkxFbEJRVUVzUTBGQlFUdEJRVU4yUkN4RFFVRkJPMEZCUlU4c1UwRkJVeXhwUWtGRFpDeFJRVU4zUkN4RlFVRkJPMEZCUTNoRUxFVkJRVUVzVDBGQlR5eERRVUZETEV0QlFVMHNRMEZCUVN4UFFVRkJMRU5CUVZFc1VVRkJVU3hEUVVGTExFbEJRVUVzVDBGQlFTeERRVUZSTEZOQlFWTXNTMEZCU3l4RFFVRkJMRU5CUVVFN1FVRkRNMFFzUTBGQlFUdEJRVWRQTEZOQlFWTXNiVUpCUVcxQ0xFMUJRVEpFTEVWQlFVRTdRVUZETlVZc1JVRkJRU3hOUVVGTkxGTkJRWGxETEVWQlFVTXNRMEZCUVR0QlFVTm9SQ3hGUVVGTkxFMUJRVUVzWTBGQlFTeDFRa0ZCY1VJc1IwRkJORU1zUlVGQlFTeERRVUZCTzBGQlJYWkZMRVZCUVVFc1MwRkJRU3hOUVVGWExGTkJRVk1zVFVGQlVTeEZRVUZCTzBGQlF6RkNMRWxCUVVFc1RVRkJUU3hoUVVGaExFdEJRVTBzUTBGQlFTeExRVUZCTEVOQlFVRTdRVUZEZWtJc1NVRkJRU3hKUVVGSkxGVkJRVmtzUlVGQlFUdEJRVU5rTEUxQlFVa3NTVUZCUVN4TFFVRkJMRWRCUVZFc1kwRkJaU3hEUVVGQkxFZEJRVUVzUTBGQlNTeFZRVUZWTEVOQlFVRXNRMEZCUVR0QlFVVjZReXhOUVVGQkxFbEJRVWtzUTBGQlF5eExRVUZQTEVWQlFVRTdRVUZEVml4UlFVRkJMRXRCUVVFc1IwRkJVU3hGUVVGRExFTkJRVUU3UVVGRFZDeFJRVUZsTEdOQlFVRXNRMEZCUVN4SFFVRkJMRU5CUVVrc1dVRkJXU3hMUVVGTExFTkJRVUVzUTBGQlFUdEJRVU53UXl4UlFVRkJMRTFCUVVFc1EwRkJUeXhMUVVGTExFVkJRVVVzUzBGQlFTeEZRVUZQTEZWQlFWa3NSVUZCUVN4UFFVRkJMRVZCUVZNc1QwRkJUeXhEUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU51UkR0QlFVVkJMRTFCUVVFc1MwRkJRU3hEUVVGTkxFdEJRVXNzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTllMRTFCUVVFN1FVRkRUQ3hOUVVGQkxFMUJRVUVzUTBGQlR5eExRVUZMTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRia0k3UVVGQlFTeEhRVU5HTzBGQlJVRXNSVUZCVHl4UFFVRkJMRTFCUVVFc1EwRkJRVHRCUVVOVUxFTkJRVUU3UVVGRlowSXNVMEZCUVN4blFrRkJRU3hEUVVGcFFpeFJRVUZ2UWl4RlFVRkJMRXRCUVVFc1IwRkJVU3hIUVVGUkxFVkJRVUU3UVVGRGJrVXNSVUZCVFN4TlFVRkJMRTFCUVVFc1IwRkJVeXhKUVVGSkxFMUJRVThzUlVGQlFTeERRVUZCTzBGQlJURkNMRVZCUVVFc1RVRkJUU3hMUVVGUkxFZEJRVUVzUzBGQlFTeERRVUZOTEVsQlFVc3NRMEZCUVN4RlFVRkZMRkZCUVZFc1NVRkJTeXhEUVVGQkxFZEJRVUVzUTBGQlNTeExRVUZQTEVWQlFVRXNVVUZCUVN4RFFVRlRMRTFCUVUwc1EwRkJSU3hGUVVGQkxFVkJRVWNzUTBGQlF5eERRVUZCTEVWQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVFc1EwRkJRVHRCUVVkc1JpeEZRVUZCTEU5QlFVOHNRMEZCUXl4TlFVRTJRaXhMUVVGQk8wRkJRMjVETEVsQlFVRXNTVUZCU1N4WFFVRlhMRVZCUVVrc1JVRkJRVHRCUVVOcVFpeE5RVUZQTEU5QlFVRXNTMEZCUVN4RFFVRkJPMEZCUVVFc1MwRkRWRHRCUVVWQkxFbEJRVTBzVFVGQlFTeERRVUZETEUxQlFVMHNTVUZCVFN4RlFVRkJMRXRCUVVzc1NVRkJTU3hOUVVGUExFTkJRVUVzVFVGQlFTeERRVUZQTEZWQlFWVXNUVUZCVFN4RFFVRkJMRU5CUVVFN1FVRkZNVVFzU1VGQlFTeEpRVUZKTEVsQlFVMHNSVUZCUVR0QlFVTlNMRTFCUVVFc1NVRkJTU3hSUVVGUkxFdEJRVThzUlVGQlFUdEJRVU5xUWl4UlFVRkJMRTFCUVUwc1ZVRkJWU3hMUVVGTkxFTkJRVUVzU1VGQlFTeERRVUZMTEVsQlFVa3NTMEZCVFN4RFFVRkJMRTFCUVVFc1JVRkJVU3hMUVVGTExFTkJRVU1zUTBGQlFTeERRVUZCTzBGQlJXNUVMRkZCUVVFc1MwRkJRU3hKUVVGVExFTkJRVWtzUjBGQlFTeERRVUZCTEVWQlFVY3NRMEZCU1N4SFFVRkJMRTlCUVVFc1EwRkJVU3hSUVVGUkxFTkJRVXNzUlVGQlFTeEZRVUZCTzBGQlEzWkRMRlZCUVZFc1QwRkJRU3hEUVVGQkxFTkJRVUVzUTBGQlFTeEhRVUZMTEVsQlFVc3NRMEZCUVN4SFFVRkJMRU5CUVVrc1MwRkJUU3hEUVVGQkxFTkJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZCUVN4VFFVTTVRanRCUVVWQkxGRkJRVThzVDBGQlFTeFBRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTlVPMEZCUlVFc1RVRkJUeXhQUVVGQkxFbEJRVUVzUTBGQlN5eExRVUZOTEVOQlFVRXNRMEZCUVN4RlFVRkhMRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRE5VSTdRVUZGUVN4SlFVRkJMRTlCUVU4c1JVRkJReXhEUVVGQk8wRkJRVUVzUjBGRFZpeERRVUZCTzBGQlEwWTdPenM3SW4wPVxuIl0sIm5hbWVzIjpbInZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7OztBQVNnQixTQUFBLG9CQUFBLENBQXFCLEdBQXFDLENBQXFDLEVBQUE7QUFDN0csRUFBQSxJQUFJLE1BQU0sQ0FBRyxFQUFBO0FBQ0osSUFBQSxPQUFBLElBQUEsQ0FBQTtBQUFBLEdBQUE7QUFHRixFQUFBLE9BQUEsT0FBQSxDQUFRLEdBQUcsQ0FBQyxDQUFBLENBQUE7QUFDckIsQ0FBQTtBQUVPLFNBQVMsbUJBQW1CLEtBQWdCLEVBQUE7QUFFakQsRUFBQSxNQUFNLHNCQUFzQixNQUFNO0FBQzFCLElBQUEsTUFBQSxJQUFBLHVCQUFXLE9BQVEsRUFBQSxDQUFBO0FBQ2xCLElBQUEsT0FBQSxDQUFDLEdBQVdBLE1BQXlCLEtBQUE7QUFDMUMsTUFBQSxJQUFJLE9BQU9BLE1BQUFBLEtBQVUsUUFBWUEsSUFBQUEsTUFBQUEsS0FBVSxJQUFNLEVBQUE7QUFDM0MsUUFBQSxJQUFBLElBQUEsQ0FBSyxHQUFJQSxDQUFBQSxNQUFLLENBQUcsRUFBQTtBQUNuQixVQUFBLE9BQUE7QUFBQSxTQUFBO0FBRUYsUUFBQSxJQUFBLENBQUssSUFBSUEsTUFBSyxDQUFBLENBQUE7QUFBQSxPQUFBO0FBRVRBLE1BQUFBLE9BQUFBLE1BQUFBLENBQUFBO0FBQUEsS0FBQSxDQUFBO0FBQ1QsR0FBQSxDQUFBO0FBR0UsRUFBQSxJQUFBO0FBQ0YsSUFBQSxPQUFPLElBQUssQ0FBQSxTQUFBLENBQVUsS0FBTyxFQUFBLG1CQUFBLEVBQXFCLENBQUEsQ0FBQTtBQUFBLEdBQUEsQ0FBQSxPQUMzQyxLQUQyQyxFQUFBO0FBRWxELElBQUEsT0FBQSxDQUFRLE1BQU0sS0FBSyxDQUFBLENBQUE7QUFBQSxH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
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { SceneObjectBase } from '../../core/SceneObjectBase.js';
|
|
2
|
-
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __defProps = Object.defineProperties;
|
|
5
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
-
var __spreadValues = (a, b) => {
|
|
11
|
-
for (var prop in b || (b = {}))
|
|
12
|
-
if (__hasOwnProp.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
if (__getOwnPropSymbols)
|
|
15
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
-
if (__propIsEnum.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
}
|
|
19
|
-
return a;
|
|
20
|
-
};
|
|
21
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
|
-
class ConstantVariable extends SceneObjectBase {
|
|
23
|
-
constructor(initialState) {
|
|
24
|
-
super(__spreadProps(__spreadValues({
|
|
25
|
-
type: "constant",
|
|
26
|
-
value: "",
|
|
27
|
-
name: ""
|
|
28
|
-
}, initialState), {
|
|
29
|
-
skipUrlSync: true
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
getValue() {
|
|
33
|
-
return this.state.value;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export { ConstantVariable };
|
|
38
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3RhbnRWYXJpYWJsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdmFyaWFibGVzL3ZhcmlhbnRzL0NvbnN0YW50VmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NlbmVPYmplY3RCYXNlIH0gZnJvbSAnLi4vLi4vY29yZS9TY2VuZU9iamVjdEJhc2UuanMnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZGVmUHJvcHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydGllcztcbnZhciBfX2dldE93blByb3BEZXNjcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzO1xudmFyIF9fZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19wcm9wSXNFbnVtID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBfX2RlZk5vcm1hbFByb3AgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wKG9iaiwga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0pIDogb2JqW2tleV0gPSB2YWx1ZTtcbnZhciBfX3NwcmVhZFZhbHVlcyA9IChhLCBiKSA9PiB7XG4gIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoYiwgcHJvcCkpXG4gICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gIGlmIChfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xuICAgICAgaWYgKF9fcHJvcElzRW51bS5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gICAgfVxuICByZXR1cm4gYTtcbn07XG52YXIgX19zcHJlYWRQcm9wcyA9IChhLCBiKSA9PiBfX2RlZlByb3BzKGEsIF9fZ2V0T3duUHJvcERlc2NzKGIpKTtcbmNsYXNzIENvbnN0YW50VmFyaWFibGUgZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2Uge1xuICBjb25zdHJ1Y3Rvcihpbml0aWFsU3RhdGUpIHtcbiAgICBzdXBlcihfX3NwcmVhZFByb3BzKF9fc3ByZWFkVmFsdWVzKHtcbiAgICAgIHR5cGU6IFwiY29uc3RhbnRcIixcbiAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgbmFtZTogXCJcIlxuICAgIH0sIGluaXRpYWxTdGF0ZSksIHtcbiAgICAgIHNraXBVcmxTeW5jOiB0cnVlXG4gICAgfSkpO1xuICB9XG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCB7IENvbnN0YW50VmFyaWFibGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUTI5dWMzUmhiblJXWVhKcFlXSnNaUzVxY3lJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwzWmhjbWxoWW14bGN5OTJZWEpwWVc1MGN5OURiMjV6ZEdGdWRGWmhjbWxoWW14bExuUnpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUZOalpXNWxUMkpxWldOMFFtRnpaU0I5SUdaeWIyMGdKeTR1THk0dUwyTnZjbVV2VTJObGJtVlBZbXBsWTNSQ1lYTmxKenRjYm1sdGNHOXlkQ0I3SUZOalpXNWxWbUZ5YVdGaWJHVXNJRk5qWlc1bFZtRnlhV0ZpYkdWVGRHRjBaU3dnVm1GeWFXRmliR1ZXWVd4MVpTQjlJR1p5YjIwZ0p5NHVMM1I1Y0dWekp6dGNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JEYjI1emRHRnVkRlpoY21saFlteGxVM1JoZEdVZ1pYaDBaVzVrY3lCVFkyVnVaVlpoY21saFlteGxVM1JoZEdVZ2UxeHVJQ0IyWVd4MVpUb2dWbUZ5YVdGaWJHVldZV3gxWlR0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklFTnZibk4wWVc1MFZtRnlhV0ZpYkdWY2JpQWdaWGgwWlc1a2N5QlRZMlZ1WlU5aWFtVmpkRUpoYzJVOFEyOXVjM1JoYm5SV1lYSnBZV0pzWlZOMFlYUmxQbHh1SUNCcGJYQnNaVzFsYm5SeklGTmpaVzVsVm1GeWFXRmliR1U4UTI5dWMzUmhiblJXWVhKcFlXSnNaVk4wWVhSbFBseHVlMXh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2FXNXBkR2xoYkZOMFlYUmxPaUJRWVhKMGFXRnNQRU52Ym5OMFlXNTBWbUZ5YVdGaWJHVlRkR0YwWlQ0cElIdGNiaUFnSUNCemRYQmxjaWg3WEc0Z0lDQWdJQ0IwZVhCbE9pQW5ZMjl1YzNSaGJuUW5MRnh1SUNBZ0lDQWdkbUZzZFdVNklDY25MRnh1SUNBZ0lDQWdibUZ0WlRvZ0p5Y3NYRzRnSUNBZ0lDQXVMaTVwYm1sMGFXRnNVM1JoZEdVc1hHNGdJQ0FnSUNCemEybHdWWEpzVTNsdVl6b2dkSEoxWlN4Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUldZV3gxWlNncE9pQldZWEpwWVdKc1pWWmhiSFZsSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1emRHRjBaUzUyWVd4MVpUdGNiaUFnZlZ4dWZWeHVJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdPenRCUVU5UExFMUJRVTBzZVVKQlEwZ3NaVUZGVml4RFFVRkJPMEZCUVVFc1JVRkRVeXhaUVVGWkxGbEJRVGhETEVWQlFVRTdRVUZETDBRc1NVRkJUU3hMUVVGQkxFTkJRVUVzWVVGQlFTeERRVUZCTEdOQlFVRXNRMEZCUVR0QlFVRkJMRTFCUTBvc1NVRkJUU3hGUVVGQkxGVkJRVUU3UVVGQlFTeE5RVU5PTEV0QlFVOHNSVUZCUVN4RlFVRkJPMEZCUVVFc1RVRkRVQ3hKUVVGTkxFVkJRVUVzUlVGQlFUdEJRVUZCTEV0QlFVRXNSVUZEU0N4WlFVcERMRU5CUVVFc1JVRkJRVHRCUVVGQkxFMUJTMG9zVjBGQllTeEZRVUZCTEVsQlFVRTdRVUZCUVN4TFFVTmtMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFNEdEJRVUZCTEVWQlJVOHNVVUZCTUVJc1IwRkJRVHRCUVVNdlFpeEpRVUZCTEU5QlFVOHNTMEZCU3l4TFFVRk5MRU5CUVVFc1MwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGNFSTdRVUZEUmpzN096c2lmUT09XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT08sTUFBTSx5QkFDSCxlQUVWLENBQUE7QUFDUyxFQUFBLFdBQUEsQ0FBWSxZQUE4QyxFQUFBO0FBQ3pELElBQUEsS0FBQSxDQUFBLGNBQUEsY0FBQSxDQUFBO01BQ0osSUFBTSxFQUFBLFVBQUE7TUFDTixLQUFPLEVBQUEsRUFBQTtNQUNQLElBQU0sRUFBQSxFQUFBO0FBQUEsS0FBQSxFQUNILFlBSkMsQ0FBQSxFQUFBO01BS0osV0FBYSxFQUFBLElBQUE7QUFBQSxLQUNkLENBQUEsQ0FBQSxDQUFBO0FBQUEsR0FBQTtFQUdJLFFBQTBCLEdBQUE7QUFDL0IsSUFBQSxPQUFPLEtBQUssS0FBTSxDQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQUE7QUFFdEI7Ozs7In0=
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { of } from 'rxjs';
|
|
2
|
-
import { VariableDependencyConfig } from '../VariableDependencyConfig.js';
|
|
3
|
-
import { renderSelectForVariable } from '../components/VariableValueSelect.js';
|
|
4
|
-
import { MultiValueVariable } from './MultiValueVariable.js';
|
|
5
|
-
import { sceneGraph } from '../../core/sceneGraph/index.js';
|
|
6
|
-
|
|
7
|
-
var __defProp = Object.defineProperty;
|
|
8
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
-
var __spreadValues = (a, b) => {
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
class CustomVariable extends MultiValueVariable {
|
|
24
|
-
constructor(initialState) {
|
|
25
|
-
super(__spreadValues({
|
|
26
|
-
type: "custom",
|
|
27
|
-
query: "",
|
|
28
|
-
value: "",
|
|
29
|
-
text: "",
|
|
30
|
-
options: [],
|
|
31
|
-
name: ""
|
|
32
|
-
}, initialState));
|
|
33
|
-
this._variableDependency = new VariableDependencyConfig(this, {
|
|
34
|
-
statePaths: ["query"]
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
getValueOptions(args) {
|
|
38
|
-
var _a;
|
|
39
|
-
const interpolated = sceneGraph.interpolate(this, this.state.query);
|
|
40
|
-
const match = (_a = interpolated.match(/(?:\\,|[^,])+/g)) != null ? _a : [];
|
|
41
|
-
const options = match.map((text) => {
|
|
42
|
-
var _a2;
|
|
43
|
-
text = text.replace(/\\,/g, ",");
|
|
44
|
-
const textMatch = (_a2 = /^(.+)\s:\s(.+)$/g.exec(text)) != null ? _a2 : [];
|
|
45
|
-
if (textMatch.length === 3) {
|
|
46
|
-
const [, key, value] = textMatch;
|
|
47
|
-
return { label: key.trim(), value: value.trim() };
|
|
48
|
-
} else {
|
|
49
|
-
return { label: text.trim(), value: text.trim() };
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
return of(options);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
CustomVariable.Component = ({ model }) => {
|
|
56
|
-
return renderSelectForVariable(model);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export { CustomVariable };
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tVmFyaWFibGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3ZhcmlhYmxlcy92YXJpYW50cy9DdXN0b21WYXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnIH0gZnJvbSAnLi4vVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnLmpzJztcbmltcG9ydCB7IHJlbmRlclNlbGVjdEZvclZhcmlhYmxlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9WYXJpYWJsZVZhbHVlU2VsZWN0LmpzJztcbmltcG9ydCB7IE11bHRpVmFsdWVWYXJpYWJsZSB9IGZyb20gJy4vTXVsdGlWYWx1ZVZhcmlhYmxlLmpzJztcbmltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi8uLi9jb3JlL3NjZW5lR3JhcGgvaW5kZXguanMnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19wcm9wSXNFbnVtID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBfX2RlZk5vcm1hbFByb3AgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wKG9iaiwga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0pIDogb2JqW2tleV0gPSB2YWx1ZTtcbnZhciBfX3NwcmVhZFZhbHVlcyA9IChhLCBiKSA9PiB7XG4gIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoYiwgcHJvcCkpXG4gICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gIGlmIChfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xuICAgICAgaWYgKF9fcHJvcElzRW51bS5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gICAgfVxuICByZXR1cm4gYTtcbn07XG5jbGFzcyBDdXN0b21WYXJpYWJsZSBleHRlbmRzIE11bHRpVmFsdWVWYXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKGluaXRpYWxTdGF0ZSkge1xuICAgIHN1cGVyKF9fc3ByZWFkVmFsdWVzKHtcbiAgICAgIHR5cGU6IFwiY3VzdG9tXCIsXG4gICAgICBxdWVyeTogXCJcIixcbiAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgdGV4dDogXCJcIixcbiAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgbmFtZTogXCJcIlxuICAgIH0sIGluaXRpYWxTdGF0ZSkpO1xuICAgIHRoaXMuX3ZhcmlhYmxlRGVwZW5kZW5jeSA9IG5ldyBWYXJpYWJsZURlcGVuZGVuY3lDb25maWcodGhpcywge1xuICAgICAgc3RhdGVQYXRoczogW1wicXVlcnlcIl1cbiAgICB9KTtcbiAgfVxuICBnZXRWYWx1ZU9wdGlvbnMoYXJncykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBpbnRlcnBvbGF0ZWQgPSBzY2VuZUdyYXBoLmludGVycG9sYXRlKHRoaXMsIHRoaXMuc3RhdGUucXVlcnkpO1xuICAgIGNvbnN0IG1hdGNoID0gKF9hID0gaW50ZXJwb2xhdGVkLm1hdGNoKC8oPzpcXFxcLHxbXixdKSsvZykpICE9IG51bGwgPyBfYSA6IFtdO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBtYXRjaC5tYXAoKHRleHQpID0+IHtcbiAgICAgIHZhciBfYTI7XG4gICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cXFxcLC9nLCBcIixcIik7XG4gICAgICBjb25zdCB0ZXh0TWF0Y2ggPSAoX2EyID0gL14oLispXFxzOlxccyguKykkL2cuZXhlYyh0ZXh0KSkgIT0gbnVsbCA/IF9hMiA6IFtdO1xuICAgICAgaWYgKHRleHRNYXRjaC5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgY29uc3QgWywga2V5LCB2YWx1ZV0gPSB0ZXh0TWF0Y2g7XG4gICAgICAgIHJldHVybiB7IGxhYmVsOiBrZXkudHJpbSgpLCB2YWx1ZTogdmFsdWUudHJpbSgpIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4geyBsYWJlbDogdGV4dC50cmltKCksIHZhbHVlOiB0ZXh0LnRyaW0oKSB9O1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBvZihvcHRpb25zKTtcbiAgfVxufVxuQ3VzdG9tVmFyaWFibGUuQ29tcG9uZW50ID0gKHsgbW9kZWwgfSkgPT4ge1xuICByZXR1cm4gcmVuZGVyU2VsZWN0Rm9yVmFyaWFibGUobW9kZWwpO1xufTtcblxuZXhwb3J0IHsgQ3VzdG9tVmFyaWFibGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUTNWemRHOXRWbUZ5YVdGaWJHVXVhbk1pTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5MllYSnBZV0pzWlhNdmRtRnlhV0Z1ZEhNdlEzVnpkRzl0Vm1GeWFXRmliR1V1ZEhONElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRTlpYzJWeWRtRmliR1VzSUc5bUlIMGdabkp2YlNBbmNuaHFjeWM3WEc1Y2JtbHRjRzl5ZENCN0lGTmpaVzVsUTI5dGNHOXVaVzUwVUhKdmNITWdmU0JtY205dElDY3VMaTh1TGk5amIzSmxMM1I1Y0dWekp6dGNibWx0Y0c5eWRDQjdJRlpoY21saFlteGxSR1Z3Wlc1a1pXNWplVU52Ym1acFp5QjlJR1p5YjIwZ0p5NHVMMVpoY21saFlteGxSR1Z3Wlc1a1pXNWplVU52Ym1acFp5YzdYRzVwYlhCdmNuUWdleUJ5Wlc1a1pYSlRaV3hsWTNSR2IzSldZWEpwWVdKc1pTQjlJR1p5YjIwZ0p5NHVMMk52YlhCdmJtVnVkSE12Vm1GeWFXRmliR1ZXWVd4MVpWTmxiR1ZqZENjN1hHNXBiWEJ2Y25RZ2V5QldZWEpwWVdKc1pWWmhiSFZsVDNCMGFXOXVJSDBnWm5KdmJTQW5MaTR2ZEhsd1pYTW5PMXh1WEc1cGJYQnZjblFnZXlCTmRXeDBhVlpoYkhWbFZtRnlhV0ZpYkdVc0lFMTFiSFJwVm1Gc2RXVldZWEpwWVdKc1pWTjBZWFJsTENCV1lYSnBZV0pzWlVkbGRFOXdkR2x2Ym5OQmNtZHpJSDBnWm5KdmJTQW5MaTlOZFd4MGFWWmhiSFZsVm1GeWFXRmliR1VuTzF4dWFXMXdiM0owSUhzZ2MyTmxibVZIY21Gd2FDQjlJR1p5YjIwZ0p5NHVMeTR1TDJOdmNtVXZjMk5sYm1WSGNtRndhQ2M3WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1EzVnpkRzl0Vm1GeWFXRmliR1ZUZEdGMFpTQmxlSFJsYm1SeklFMTFiSFJwVm1Gc2RXVldZWEpwWVdKc1pWTjBZWFJsSUh0Y2JpQWdjWFZsY25rNklITjBjbWx1Wnp0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklFTjFjM1J2YlZaaGNtbGhZbXhsSUdWNGRHVnVaSE1nVFhWc2RHbFdZV3gxWlZaaGNtbGhZbXhsUEVOMWMzUnZiVlpoY21saFlteGxVM1JoZEdVK0lIdGNiaUFnY0hKdmRHVmpkR1ZrSUY5MllYSnBZV0pzWlVSbGNHVnVaR1Z1WTNrZ1BTQnVaWGNnVm1GeWFXRmliR1ZFWlhCbGJtUmxibU41UTI5dVptbG5LSFJvYVhNc0lIdGNiaUFnSUNCemRHRjBaVkJoZEdoek9pQmJKM0YxWlhKNUoxMHNYRzRnSUgwcE8xeHVYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2locGJtbDBhV0ZzVTNSaGRHVTZJRkJoY25ScFlXdzhRM1Z6ZEc5dFZtRnlhV0ZpYkdWVGRHRjBaVDRwSUh0Y2JpQWdJQ0J6ZFhCbGNpaDdYRzRnSUNBZ0lDQjBlWEJsT2lBblkzVnpkRzl0Snl4Y2JpQWdJQ0FnSUhGMVpYSjVPaUFuSnl4Y2JpQWdJQ0FnSUhaaGJIVmxPaUFuSnl4Y2JpQWdJQ0FnSUhSbGVIUTZJQ2NuTEZ4dUlDQWdJQ0FnYjNCMGFXOXVjem9nVzEwc1hHNGdJQ0FnSUNCdVlXMWxPaUFuSnl4Y2JpQWdJQ0FnSUM0dUxtbHVhWFJwWVd4VGRHRjBaU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhSV1lXeDFaVTl3ZEdsdmJuTW9ZWEpuY3pvZ1ZtRnlhV0ZpYkdWSFpYUlBjSFJwYjI1elFYSm5jeWs2SUU5aWMyVnlkbUZpYkdVOFZtRnlhV0ZpYkdWV1lXeDFaVTl3ZEdsdmJsdGRQaUI3WEc0Z0lDQWdZMjl1YzNRZ2FXNTBaWEp3YjJ4aGRHVmtJRDBnYzJObGJtVkhjbUZ3YUM1cGJuUmxjbkJ2YkdGMFpTaDBhR2x6TENCMGFHbHpMbk4wWVhSbExuRjFaWEo1S1R0Y2JpQWdJQ0JqYjI1emRDQnRZWFJqYUNBOUlHbHVkR1Z5Y0c5c1lYUmxaQzV0WVhSamFDZ3ZLRDg2WEZ4Y1hDeDhXMTRzWFNrckwyY3BJRDgvSUZ0ZE8xeHVYRzRnSUNBZ1kyOXVjM1FnYjNCMGFXOXVjeUE5SUcxaGRHTm9MbTFoY0Nnb2RHVjRkQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2RHVjRkQ0E5SUhSbGVIUXVjbVZ3YkdGalpTZ3ZYRnhjWEN3dlp5d2dKeXduS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJSFJsZUhSTllYUmphQ0E5SUM5ZUtDNHJLVnhjY3pwY1hITW9MaXNwSkM5bkxtVjRaV01vZEdWNGRDa2dQejhnVzEwN1hHNGdJQ0FnSUNCcFppQW9kR1Y0ZEUxaGRHTm9MbXhsYm1kMGFDQTlQVDBnTXlrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCYkxDQnJaWGtzSUhaaGJIVmxYU0E5SUhSbGVIUk5ZWFJqYUR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2JHRmlaV3c2SUd0bGVTNTBjbWx0S0Nrc0lIWmhiSFZsT2lCMllXeDFaUzUwY21sdEtDa2dmVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjdJR3hoWW1Wc09pQjBaWGgwTG5SeWFXMG9LU3dnZG1Gc2RXVTZJSFJsZUhRdWRISnBiU2dwSUgwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnYjJZb2IzQjBhVzl1Y3lrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUVOdmJYQnZibVZ1ZENBOUlDaDdJRzF2WkdWc0lIMDZJRk5qWlc1bFEyOXRjRzl1Wlc1MFVISnZjSE04VFhWc2RHbFdZV3gxWlZaaGNtbGhZbXhsUGlrZ1BUNGdlMXh1SUNBZ0lISmxkSFZ5YmlCeVpXNWtaWEpUWld4bFkzUkdiM0pXWVhKcFlXSnNaU2h0YjJSbGJDazdYRzRnSUgwN1hHNTlYRzRpWFN3aWJtRnRaWE1pT2xzaVgyRWlYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3T3pzN096czdRVUZqVHl4TlFVRk5MSFZDUVVGMVFpeHJRa0ZCZDBNc1EwRkJRVHRCUVVGQkxFVkJTMjVGTEZsQlFWa3NXVUZCTkVNc1JVRkJRVHRCUVVNM1JDeEpRVUZOTEV0QlFVRXNRMEZCUVN4alFVRkJMRU5CUVVFN1FVRkJRU3hOUVVOS0xFbEJRVTBzUlVGQlFTeFJRVUZCTzBGQlFVRXNUVUZEVGl4TFFVRlBMRVZCUVVFc1JVRkJRVHRCUVVGQkxFMUJRMUFzUzBGQlR5eEZRVUZCTEVWQlFVRTdRVUZCUVN4TlFVTlFMRWxCUVUwc1JVRkJRU3hGUVVGQk8wRkJRVUVzVFVGRFRpeFRRVUZUTEVWQlFVTTdRVUZCUVN4TlFVTldMRWxCUVUwc1JVRkJRU3hGUVVGQk8wRkJRVUVzUzBGQlFTeEZRVU5JTEZsQlEwb3NRMEZCUVN4RFFVRkJMRU5CUVVFN1FVRmlTQ3hKUVVGVkxFbEJRVUVzUTBGQlFTeHRRa0ZCUVN4SFFVRnpRaXhKUVVGSkxIZENRVUZCTEVOQlFYbENMRWxCUVUwc1JVRkJRVHRCUVVGQkxFMUJRMnBGTEZWQlFVRXNSVUZCV1N4RFFVRkRMRTlCUVU4c1EwRkJRVHRCUVVGQkxFdEJRM0pDTEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCV1VRN1FVRkJRU3hGUVVWUExHZENRVUZuUWl4SlFVRnBSU3hGUVVGQk8wRkJMMEl4Uml4SlFVRkJMRWxCUVVFc1JVRkJRU3hEUVVGQk8wRkJaME5KTEVsQlFVRXNUVUZCVFN4bFFVRmxMRlZCUVZjc1EwRkJRU3hYUVVGQkxFTkJRVmtzU1VGQlRTeEZRVUZCTEVsQlFVRXNRMEZCU3l4TlFVRk5MRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJRMnhGTEVsQlFVRXNUVUZCVFN4VFFVRlJMRVZCUVdFc1IwRkJRU3haUVVGQkxFTkJRVUVzUzBGQlFTeERRVUZOTEdkQ1FVRm5RaXhEUVVGQkxFdEJRVzVETEZsQlFYZERMRVZCUVVNc1EwRkJRVHRCUVVWMlJDeEpRVUZCTEUxQlFVMHNUMEZCVlN4SFFVRkJMRXRCUVVFc1EwRkJUU3hIUVVGSkxFTkJRVUVzUTBGQlF5eEpRVUZUTEV0QlFVRTdRVUZ1UTNoRExFMUJRVUZCTEVsQlFVRkJMRWRCUVVGQkxFTkJRVUZCTzBGQmIwTk5MRTFCUVU4c1NVRkJRU3hIUVVGQkxFbEJRVUVzUTBGQlN5eFBRVUZSTEVOQlFVRXNUVUZCUVN4RlFVRlJMRWRCUVVjc1EwRkJRU3hEUVVGQk8wRkJReTlDTEUxQlFVMHNUVUZCUVN4VFFVRkJMRWRCUVVFc1EwRkJXVUVzVFVGQlFTeHJRa0ZCYlVJc1EwRkJRU3hKUVVGQkxFTkJRVXNzU1VGQlNTeERRVUUxUWl4TFFVRkJMRWxCUVVFc1IwRkJRVUVzVFVGQmFVTXNSVUZCUXl4RFFVRkJPMEZCUTNCRUxFMUJRVWtzU1VGQlFTeFRRVUZCTEVOQlFWVXNWMEZCVnl4RFFVRkhMRVZCUVVFN1FVRkRNVUlzVVVGQlFTeE5RVUZOTEVkQlFVY3NSMEZCU3l4RlFVRkJMRXRCUVVzc1EwRkJTU3hIUVVGQkxGTkJRVUVzUTBGQlFUdEJRVU4yUWl4UlFVRlBMRTlCUVVFc1JVRkJSU3hQUVVGUExFZEJRVWtzUTBGQlFTeEpRVUZCTEVsQlFWRXNTMEZCVHl4RlFVRkJMRXRCUVVFc1EwRkJUU3hOUVVGUExFVkJRVUVzUTBGQlFUdEJRVUZCTEU5QlF6TkRMRTFCUVVFN1FVRkRUQ3hSUVVGUExFOUJRVUVzUlVGQlJTeFBRVUZQTEVsQlFVc3NRMEZCUVN4SlFVRkJMRWxCUVZFc1MwRkJUeXhGUVVGQkxFbEJRVUVzUTBGQlN5eE5RVUZQTEVWQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTJ4RU8wRkJRVUVzUzBGRFJDeERRVUZCTEVOQlFVRTdRVUZGUkN4SlFVRkJMRTlCUVU4c1IwRkJSeXhQUVVGUExFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEyNUNPMEZCUzBZc1EwRkJRVHRCUVhSRFlTeGpRVUZCTEVOQmJVTkhMRk5CUVZrc1IwRkJRU3hEUVVGRExFVkJRVVVzUzBGQlFTeEZRVUZ4UkN4TFFVRkJPMEZCUTJoR0xFVkJRVUVzVDBGQlR5eDNRa0ZCZDBJc1MwRkJTeXhEUVVGQkxFTkJRVUU3UVVGRGRFTXNRMEZCUVRzN096c2lmUT09XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjTyxNQUFNLHVCQUF1QixrQkFBd0MsQ0FBQTtBQUtuRSxFQUFBLFdBQUEsQ0FBWSxZQUE0QyxFQUFBO0FBQ3ZELElBQUEsS0FBQSxDQUFBLGNBQUEsQ0FBQTtNQUNKLElBQU0sRUFBQSxRQUFBO01BQ04sS0FBTyxFQUFBLEVBQUE7TUFDUCxLQUFPLEVBQUEsRUFBQTtNQUNQLElBQU0sRUFBQSxFQUFBO0FBQ04sTUFBQSxPQUFBLEVBQVMsRUFBQTtNQUNULElBQU0sRUFBQSxFQUFBO0FBQUEsS0FBQSxFQUNILFlBQ0osQ0FBQSxDQUFBLENBQUE7QUFiTyxJQUFBLElBQUEsQ0FBQSxtQkFBQSxHQUFzQixJQUFJLHdCQUFBLENBQXlCLElBQU0sRUFBQTtBQUNqRSxNQUFBLFVBQUEsRUFBWSxDQUFDLE9BQU8sQ0FBQTtLQUNyQixDQUFBLENBQUE7QUFBQSxHQUFBO0FBY00sRUFBQSxlQUFBLENBQWdCLElBQWlFLEVBQUE7QUEvQjFGLElBQUEsSUFBQSxFQUFBLENBQUE7QUFnQ0ksSUFBQSxNQUFNLGVBQWUsVUFBVyxDQUFBLFdBQUEsQ0FBWSxJQUFNLEVBQUEsSUFBQSxDQUFLLE1BQU0sS0FBSyxDQUFBLENBQUE7QUFDbEUsSUFBTSxNQUFBLEtBQUEsR0FBQSxDQUFRLEtBQWEsWUFBQSxDQUFBLEtBQUEsQ0FBTSxnQkFBZ0IsQ0FBbkMsS0FBQSxJQUFBLEdBQUEsS0FBd0MsRUFBQSxDQUFBO0FBRXRELElBQUEsTUFBTSxPQUFVLEdBQUEsS0FBQSxDQUFNLEdBQUksQ0FBQSxDQUFDLElBQVMsS0FBQTtBQW5DeENBLE1BQUFBLElBQUFBLEdBQUFBLENBQUFBO0FBb0NhLE1BQUEsSUFBQSxHQUFBLElBQUEsQ0FBSyxPQUFRLENBQUEsTUFBQSxFQUFRLEdBQUcsQ0FBQSxDQUFBO0FBQ3pCLE1BQUEsTUFBQSxTQUFBLEdBQUEsQ0FBWUEsTUFBQSxrQkFBbUIsQ0FBQSxJQUFBLENBQUssSUFBSSxDQUE1QixLQUFBLElBQUEsR0FBQUEsTUFBaUMsRUFBQSxDQUFBO0FBQy9DLE1BQUEsSUFBQSxTQUFBLENBQVUsV0FBVyxDQUFHLEVBQUE7QUFDMUIsUUFBQSxNQUFNLEdBQUcsR0FBSyxFQUFBLEtBQUssQ0FBSSxHQUFBLFNBQUEsQ0FBQTtBQUNoQixRQUFBLE9BQUEsRUFBRSxPQUFPLEdBQUksQ0FBQSxJQUFBLElBQVEsS0FBTyxFQUFBLEtBQUEsQ0FBTSxNQUFPLEVBQUEsQ0FBQTtPQUMzQyxNQUFBO0FBQ0UsUUFBQSxPQUFBLEVBQUUsT0FBTyxJQUFLLENBQUEsSUFBQSxJQUFRLEtBQU8sRUFBQSxJQUFBLENBQUssTUFBTyxFQUFBLENBQUE7QUFBQSxPQUFBO0tBRW5ELENBQUEsQ0FBQTtBQUVELElBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQSxDQUFBO0FBQUEsR0FBQTtBQU1yQixDQUFBO0FBdENhLGNBQUEsQ0FtQ0csU0FBWSxHQUFBLENBQUMsRUFBRSxLQUFBLEVBQXFELEtBQUE7QUFDaEYsRUFBQSxPQUFPLHdCQUF3QixLQUFLLENBQUEsQ0FBQTtBQUN0QyxDQUFBOzs7OyJ9
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { of } from 'rxjs';
|
|
2
|
-
import { stringToJsRegex } from '@grafana/data';
|
|
3
|
-
import { getDataSourceSrv } from '@grafana/runtime';
|
|
4
|
-
import { sceneGraph } from '../../core/sceneGraph/index.js';
|
|
5
|
-
import { VariableDependencyConfig } from '../VariableDependencyConfig.js';
|
|
6
|
-
import { renderSelectForVariable } from '../components/VariableValueSelect.js';
|
|
7
|
-
import { MultiValueVariable } from './MultiValueVariable.js';
|
|
8
|
-
|
|
9
|
-
var __defProp = Object.defineProperty;
|
|
10
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
11
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
13
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
14
|
-
var __spreadValues = (a, b) => {
|
|
15
|
-
for (var prop in b || (b = {}))
|
|
16
|
-
if (__hasOwnProp.call(b, prop))
|
|
17
|
-
__defNormalProp(a, prop, b[prop]);
|
|
18
|
-
if (__getOwnPropSymbols)
|
|
19
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
20
|
-
if (__propIsEnum.call(b, prop))
|
|
21
|
-
__defNormalProp(a, prop, b[prop]);
|
|
22
|
-
}
|
|
23
|
-
return a;
|
|
24
|
-
};
|
|
25
|
-
class DataSourceVariable extends MultiValueVariable {
|
|
26
|
-
constructor(initialState) {
|
|
27
|
-
super(__spreadValues({
|
|
28
|
-
type: "datasource",
|
|
29
|
-
value: "",
|
|
30
|
-
text: "",
|
|
31
|
-
options: [],
|
|
32
|
-
name: "",
|
|
33
|
-
regex: "",
|
|
34
|
-
pluginId: ""
|
|
35
|
-
}, initialState));
|
|
36
|
-
this._variableDependency = new VariableDependencyConfig(this, {
|
|
37
|
-
statePaths: ["regex"]
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
getValueOptions(args) {
|
|
41
|
-
if (!this.state.pluginId) {
|
|
42
|
-
return of([]);
|
|
43
|
-
}
|
|
44
|
-
const dataSources = getDataSourceSrv().getList({ metrics: true, variables: false, pluginId: this.state.pluginId });
|
|
45
|
-
let regex;
|
|
46
|
-
if (this.state.regex) {
|
|
47
|
-
const interpolated = sceneGraph.interpolate(this, this.state.regex, void 0, "regex");
|
|
48
|
-
regex = stringToJsRegex(interpolated);
|
|
49
|
-
}
|
|
50
|
-
const options = [];
|
|
51
|
-
for (let i = 0; i < dataSources.length; i++) {
|
|
52
|
-
const source = dataSources[i];
|
|
53
|
-
if (isValid(source, regex)) {
|
|
54
|
-
options.push({ label: source.name, value: source.uid });
|
|
55
|
-
}
|
|
56
|
-
if (this.state.defaultOptionEnabled && isDefault(source, regex)) {
|
|
57
|
-
options.push({ label: "default", value: "default" });
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (options.length === 0) {
|
|
61
|
-
this.setState({ error: "No data sources found" });
|
|
62
|
-
} else if (this.state.error) {
|
|
63
|
-
this.setState({ error: null });
|
|
64
|
-
}
|
|
65
|
-
return of(options);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
DataSourceVariable.Component = ({ model }) => {
|
|
69
|
-
return renderSelectForVariable(model);
|
|
70
|
-
};
|
|
71
|
-
function isValid(source, regex) {
|
|
72
|
-
if (!regex) {
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
return regex.exec(source.name);
|
|
76
|
-
}
|
|
77
|
-
function isDefault(source, regex) {
|
|
78
|
-
if (!source.isDefault) {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
if (!regex) {
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
return regex.exec("default");
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export { DataSourceVariable };
|
|
88
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVNvdXJjZVZhcmlhYmxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92YXJpYWJsZXMvdmFyaWFudHMvRGF0YVNvdXJjZVZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdHJpbmdUb0pzUmVnZXggfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IGdldERhdGFTb3VyY2VTcnYgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcbmltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi8uLi9jb3JlL3NjZW5lR3JhcGgvaW5kZXguanMnO1xuaW1wb3J0IHsgVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnIH0gZnJvbSAnLi4vVmFyaWFibGVEZXBlbmRlbmN5Q29uZmlnLmpzJztcbmltcG9ydCB7IHJlbmRlclNlbGVjdEZvclZhcmlhYmxlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9WYXJpYWJsZVZhbHVlU2VsZWN0LmpzJztcbmltcG9ydCB7IE11bHRpVmFsdWVWYXJpYWJsZSB9IGZyb20gJy4vTXVsdGlWYWx1ZVZhcmlhYmxlLmpzJztcblxudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2dldE93blByb3BTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fcHJvcElzRW51bSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19zcHJlYWRWYWx1ZXMgPSAoYSwgYikgPT4ge1xuICBmb3IgKHZhciBwcm9wIGluIGIgfHwgKGIgPSB7fSkpXG4gICAgaWYgKF9faGFzT3duUHJvcC5jYWxsKGIsIHByb3ApKVxuICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICBpZiAoX19nZXRPd25Qcm9wU3ltYm9scylcbiAgICBmb3IgKHZhciBwcm9wIG9mIF9fZ2V0T3duUHJvcFN5bWJvbHMoYikpIHtcbiAgICAgIGlmIChfX3Byb3BJc0VudW0uY2FsbChiLCBwcm9wKSlcbiAgICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICAgIH1cbiAgcmV0dXJuIGE7XG59O1xuY2xhc3MgRGF0YVNvdXJjZVZhcmlhYmxlIGV4dGVuZHMgTXVsdGlWYWx1ZVZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3IoaW5pdGlhbFN0YXRlKSB7XG4gICAgc3VwZXIoX19zcHJlYWRWYWx1ZXMoe1xuICAgICAgdHlwZTogXCJkYXRhc291cmNlXCIsXG4gICAgICB2YWx1ZTogXCJcIixcbiAgICAgIHRleHQ6IFwiXCIsXG4gICAgICBvcHRpb25zOiBbXSxcbiAgICAgIG5hbWU6IFwiXCIsXG4gICAgICByZWdleDogXCJcIixcbiAgICAgIHBsdWdpbklkOiBcIlwiXG4gICAgfSwgaW5pdGlhbFN0YXRlKSk7XG4gICAgdGhpcy5fdmFyaWFibGVEZXBlbmRlbmN5ID0gbmV3IFZhcmlhYmxlRGVwZW5kZW5jeUNvbmZpZyh0aGlzLCB7XG4gICAgICBzdGF0ZVBhdGhzOiBbXCJyZWdleFwiXVxuICAgIH0pO1xuICB9XG4gIGdldFZhbHVlT3B0aW9ucyhhcmdzKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLnBsdWdpbklkKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgICBjb25zdCBkYXRhU291cmNlcyA9IGdldERhdGFTb3VyY2VTcnYoKS5nZXRMaXN0KHsgbWV0cmljczogdHJ1ZSwgdmFyaWFibGVzOiBmYWxzZSwgcGx1Z2luSWQ6IHRoaXMuc3RhdGUucGx1Z2luSWQgfSk7XG4gICAgbGV0IHJlZ2V4O1xuICAgIGlmICh0aGlzLnN0YXRlLnJlZ2V4KSB7XG4gICAgICBjb25zdCBpbnRlcnBvbGF0ZWQgPSBzY2VuZUdyYXBoLmludGVycG9sYXRlKHRoaXMsIHRoaXMuc3RhdGUucmVnZXgsIHZvaWQgMCwgXCJyZWdleFwiKTtcbiAgICAgIHJlZ2V4ID0gc3RyaW5nVG9Kc1JlZ2V4KGludGVycG9sYXRlZCk7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFTb3VyY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBzb3VyY2UgPSBkYXRhU291cmNlc1tpXTtcbiAgICAgIGlmIChpc1ZhbGlkKHNvdXJjZSwgcmVnZXgpKSB7XG4gICAgICAgIG9wdGlvbnMucHVzaCh7IGxhYmVsOiBzb3VyY2UubmFtZSwgdmFsdWU6IHNvdXJjZS51aWQgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zdGF0ZS5kZWZhdWx0T3B0aW9uRW5hYmxlZCAmJiBpc0RlZmF1bHQoc291cmNlLCByZWdleCkpIHtcbiAgICAgICAgb3B0aW9ucy5wdXNoKHsgbGFiZWw6IFwiZGVmYXVsdFwiLCB2YWx1ZTogXCJkZWZhdWx0XCIgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yOiBcIk5vIGRhdGEgc291cmNlcyBmb3VuZFwiIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5lcnJvcikge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yOiBudWxsIH0pO1xuICAgIH1cbiAgICByZXR1cm4gb2Yob3B0aW9ucyk7XG4gIH1cbn1cbkRhdGFTb3VyY2VWYXJpYWJsZS5Db21wb25lbnQgPSAoeyBtb2RlbCB9KSA9PiB7XG4gIHJldHVybiByZW5kZXJTZWxlY3RGb3JWYXJpYWJsZShtb2RlbCk7XG59O1xuZnVuY3Rpb24gaXNWYWxpZChzb3VyY2UsIHJlZ2V4KSB7XG4gIGlmICghcmVnZXgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gcmVnZXguZXhlYyhzb3VyY2UubmFtZSk7XG59XG5mdW5jdGlvbiBpc0RlZmF1bHQoc291cmNlLCByZWdleCkge1xuICBpZiAoIXNvdXJjZS5pc0RlZmF1bHQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKCFyZWdleCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiByZWdleC5leGVjKFwiZGVmYXVsdFwiKTtcbn1cblxuZXhwb3J0IHsgRGF0YVNvdXJjZVZhcmlhYmxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJHRjBZVk52ZFhKalpWWmhjbWxoWW14bExtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk4dUxpOXpjbU12ZG1GeWFXRmliR1Z6TDNaaGNtbGhiblJ6TDBSaGRHRlRiM1Z5WTJWV1lYSnBZV0pzWlM1MGMzZ2lYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnVDJKelpYSjJZV0pzWlN3Z2IyWWdmU0JtY205dElDZHllR3B6Snp0Y2JseHVhVzF3YjNKMElIc2djM1J5YVc1blZHOUtjMUpsWjJWNExDQkVZWFJoVTI5MWNtTmxTVzV6ZEdGdVkyVlRaWFIwYVc1bmN5QjlJR1p5YjIwZ0owQm5jbUZtWVc1aEwyUmhkR0VuTzF4dWFXMXdiM0owSUhzZ1oyVjBSR0YwWVZOdmRYSmpaVk55ZGlCOUlHWnliMjBnSjBCbmNtRm1ZVzVoTDNKMWJuUnBiV1VuTzF4dVhHNXBiWEJ2Y25RZ2V5QnpZMlZ1WlVkeVlYQm9JSDBnWm5KdmJTQW5MaTR2TGk0dlkyOXlaUzl6WTJWdVpVZHlZWEJvSnp0Y2JtbHRjRzl5ZENCN0lGTmpaVzVsUTI5dGNHOXVaVzUwVUhKdmNITWdmU0JtY205dElDY3VMaTh1TGk5amIzSmxMM1I1Y0dWekp6dGNibWx0Y0c5eWRDQjdJRlpoY21saFlteGxSR1Z3Wlc1a1pXNWplVU52Ym1acFp5QjlJR1p5YjIwZ0p5NHVMMVpoY21saFlteGxSR1Z3Wlc1a1pXNWplVU52Ym1acFp5YzdYRzVwYlhCdmNuUWdleUJ5Wlc1a1pYSlRaV3hsWTNSR2IzSldZWEpwWVdKc1pTQjlJR1p5YjIwZ0p5NHVMMk52YlhCdmJtVnVkSE12Vm1GeWFXRmliR1ZXWVd4MVpWTmxiR1ZqZENjN1hHNXBiWEJ2Y25RZ2V5QldZWEpwWVdKc1pWWmhiSFZsVDNCMGFXOXVJSDBnWm5KdmJTQW5MaTR2ZEhsd1pYTW5PMXh1WEc1cGJYQnZjblFnZXlCTmRXeDBhVlpoYkhWbFZtRnlhV0ZpYkdVc0lFMTFiSFJwVm1Gc2RXVldZWEpwWVdKc1pWTjBZWFJsTENCV1lYSnBZV0pzWlVkbGRFOXdkR2x2Ym5OQmNtZHpJSDBnWm5KdmJTQW5MaTlOZFd4MGFWWmhiSFZsVm1GeWFXRmliR1VuTzF4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFUmhkR0ZUYjNWeVkyVldZWEpwWVdKc1pWTjBZWFJsSUdWNGRHVnVaSE1nVFhWc2RHbFdZV3gxWlZaaGNtbGhZbXhsVTNSaGRHVWdlMXh1SUNBdktpcGNiaUFnSUNvZ1NXNWpiSFZrWlNCaGJHd2daR0YwWVNCemIzVnlZMlVnYVc1emRHRnVZMlZ6SUhkcGRHZ2dkR2hwY3lCd2JIVm5hVzRnYVdSY2JpQWdJQ292WEc0Z0lIQnNkV2RwYmtsa09pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJHYVd4MFpYSWdaR0YwWVNCemIzVnlZMlVnYVc1emRHRnVZMlZ6SUdKaGMyVmtJRzl1SUc1aGJXVmNiaUFnSUNvdlhHNGdJSEpsWjJWNE9pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJHYjNJZ1ltRmphM2RoY21SeklHTnZiWEJoZEdGaWFXeHBkSGtnZDJsMGFDQnZiR1FnWkdGemFHSnZZWEprY3l3Z2QybHNiQ0JzYVd0bGJIa2dZbVVnY21WdGIzWmxaRnh1SUNBZ0tpOWNiaUFnWkdWbVlYVnNkRTl3ZEdsdmJrVnVZV0pzWldRL09pQmliMjlzWldGdU8xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdSR0YwWVZOdmRYSmpaVlpoY21saFlteGxJR1Y0ZEdWdVpITWdUWFZzZEdsV1lXeDFaVlpoY21saFlteGxQRVJoZEdGVGIzVnlZMlZXWVhKcFlXSnNaVk4wWVhSbFBpQjdYRzRnSUhCeWIzUmxZM1JsWkNCZmRtRnlhV0ZpYkdWRVpYQmxibVJsYm1ONUlEMGdibVYzSUZaaGNtbGhZbXhsUkdWd1pXNWtaVzVqZVVOdmJtWnBaeWgwYUdsekxDQjdYRzRnSUNBZ2MzUmhkR1ZRWVhSb2N6b2dXeWR5WldkbGVDZGRMRnh1SUNCOUtUdGNibHh1SUNCd2RXSnNhV01nWTI5dWMzUnlkV04wYjNJb2FXNXBkR2xoYkZOMFlYUmxPaUJRWVhKMGFXRnNQRVJoZEdGVGIzVnlZMlZXWVhKcFlXSnNaVk4wWVhSbFBpa2dlMXh1SUNBZ0lITjFjR1Z5S0h0Y2JpQWdJQ0FnSUhSNWNHVTZJQ2RrWVhSaGMyOTFjbU5sSnl4Y2JpQWdJQ0FnSUhaaGJIVmxPaUFuSnl4Y2JpQWdJQ0FnSUhSbGVIUTZJQ2NuTEZ4dUlDQWdJQ0FnYjNCMGFXOXVjem9nVzEwc1hHNGdJQ0FnSUNCdVlXMWxPaUFuSnl4Y2JpQWdJQ0FnSUhKbFoyVjRPaUFuSnl4Y2JpQWdJQ0FnSUhCc2RXZHBia2xrT2lBbkp5eGNiaUFnSUNBZ0lDNHVMbWx1YVhScFlXeFRkR0YwWlN4Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUldZV3gxWlU5d2RHbHZibk1vWVhKbmN6b2dWbUZ5YVdGaWJHVkhaWFJQY0hScGIyNXpRWEpuY3lrNklFOWljMlZ5ZG1GaWJHVThWbUZ5YVdGaWJHVldZV3gxWlU5d2RHbHZibHRkUGlCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG5OMFlYUmxMbkJzZFdkcGJrbGtLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdiMllvVzEwcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJR1JoZEdGVGIzVnlZMlZ6SUQwZ1oyVjBSR0YwWVZOdmRYSmpaVk55ZGlncExtZGxkRXhwYzNRb2V5QnRaWFJ5YVdOek9pQjBjblZsTENCMllYSnBZV0pzWlhNNklHWmhiSE5sTENCd2JIVm5hVzVKWkRvZ2RHaHBjeTV6ZEdGMFpTNXdiSFZuYVc1SlpDQjlLVHRjYmx4dUlDQWdJR3hsZENCeVpXZGxlRHRjYmlBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1eVpXZGxlQ2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhVzUwWlhKd2IyeGhkR1ZrSUQwZ2MyTmxibVZIY21Gd2FDNXBiblJsY25CdmJHRjBaU2gwYUdsekxDQjBhR2x6TG5OMFlYUmxMbkpsWjJWNExDQjFibVJsWm1sdVpXUXNJQ2R5WldkbGVDY3BPMXh1SUNBZ0lDQWdjbVZuWlhnZ1BTQnpkSEpwYm1kVWIwcHpVbVZuWlhnb2FXNTBaWEp3YjJ4aGRHVmtLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCdmNIUnBiMjV6T2lCV1lYSnBZV0pzWlZaaGJIVmxUM0IwYVc5dVcxMGdQU0JiWFR0Y2JseHVJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1pHRjBZVk52ZFhKalpYTXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE52ZFhKalpTQTlJR1JoZEdGVGIzVnlZMlZ6VzJsZE8xeHVYRzRnSUNBZ0lDQnBaaUFvYVhOV1lXeHBaQ2h6YjNWeVkyVXNJSEpsWjJWNEtTa2dlMXh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpMbkIxYzJnb2V5QnNZV0psYkRvZ2MyOTFjbU5sTG01aGJXVXNJSFpoYkhWbE9pQnpiM1Z5WTJVdWRXbGtJSDBwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9kR2hwY3k1emRHRjBaUzVrWldaaGRXeDBUM0IwYVc5dVJXNWhZbXhsWkNBbUppQnBjMFJsWm1GMWJIUW9jMjkxY21ObExDQnlaV2RsZUNrcElIdGNiaUFnSUNBZ0lDQWdiM0IwYVc5dWN5NXdkWE5vS0hzZ2JHRmlaV3c2SUNka1pXWmhkV3gwSnl3Z2RtRnNkV1U2SUNka1pXWmhkV3gwSnlCOUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iM0IwYVc5dWN5NXNaVzVuZEdnZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9leUJsY25KdmNqb2dKMDV2SUdSaGRHRWdjMjkxY21ObGN5Qm1iM1Z1WkNjZ2ZTazdYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDaDBhR2x6TG5OMFlYUmxMbVZ5Y205eUtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsS0hzZ1pYSnliM0k2SUc1MWJHd2dmU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHOW1LRzl3ZEdsdmJuTXBPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QkRiMjF3YjI1bGJuUWdQU0FvZXlCdGIyUmxiQ0I5T2lCVFkyVnVaVU52YlhCdmJtVnVkRkJ5YjNCelBFMTFiSFJwVm1Gc2RXVldZWEpwWVdKc1pUNHBJRDArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjbVZ1WkdWeVUyVnNaV04wUm05eVZtRnlhV0ZpYkdVb2JXOWtaV3dwTzF4dUlDQjlPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnBjMVpoYkdsa0tITnZkWEpqWlRvZ1JHRjBZVk52ZFhKalpVbHVjM1JoYm1ObFUyVjBkR2x1WjNNc0lISmxaMlY0UHpvZ1VtVm5SWGh3S1NCN1hHNGdJR2xtSUNnaGNtVm5aWGdwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCeVpXZGxlQzVsZUdWaktITnZkWEpqWlM1dVlXMWxLVHRjYm4xY2JseHVablZ1WTNScGIyNGdhWE5FWldaaGRXeDBLSE52ZFhKalpUb2dSR0YwWVZOdmRYSmpaVWx1YzNSaGJtTmxVMlYwZEdsdVozTXNJSEpsWjJWNFB6b2dVbVZuUlhod0tTQjdYRzRnSUdsbUlDZ2hjMjkxY21ObExtbHpSR1ZtWVhWc2RDa2dlMXh1SUNBZ0lISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ2ZWeHVYRzRnSUdsbUlDZ2hjbVZuWlhncElIdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQnlaV2RsZUM1bGVHVmpLQ2RrWldaaGRXeDBKeWs3WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBGQk5FSlBMRTFCUVUwc01rSkJRVEpDTEd0Q1FVRTBReXhEUVVGQk8wRkJRVUVzUlVGTE0wVXNXVUZCV1N4WlFVRm5SQ3hGUVVGQk8wRkJRMnBGTEVsQlFVMHNTMEZCUVN4RFFVRkJMR05CUVVFc1EwRkJRVHRCUVVGQkxFMUJRMG9zU1VGQlRTeEZRVUZCTEZsQlFVRTdRVUZCUVN4TlFVTk9MRXRCUVU4c1JVRkJRU3hGUVVGQk8wRkJRVUVzVFVGRFVDeEpRVUZOTEVWQlFVRXNSVUZCUVR0QlFVRkJMRTFCUTA0c1UwRkJVeXhGUVVGRE8wRkJRVUVzVFVGRFZpeEpRVUZOTEVWQlFVRXNSVUZCUVR0QlFVRkJMRTFCUTA0c1MwRkJUeXhGUVVGQkxFVkJRVUU3UVVGQlFTeE5RVU5RTEZGQlFWVXNSVUZCUVN4RlFVRkJPMEZCUVVFc1MwRkJRU3hGUVVOUUxGbEJRMG9zUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZrU0N4SlFVRlZMRWxCUVVFc1EwRkJRU3h0UWtGQlFTeEhRVUZ6UWl4SlFVRkpMSGRDUVVGQkxFTkJRWGxDTEVsQlFVMHNSVUZCUVR0QlFVRkJMRTFCUTJwRkxGVkJRVUVzUlVGQldTeERRVUZETEU5QlFVOHNRMEZCUVR0QlFVRkJMRXRCUTNKQ0xFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQllVUTdRVUZCUVN4RlFVVlBMR2RDUVVGblFpeEpRVUZwUlN4RlFVRkJPMEZCUTNSR0xFbEJRVWtzU1VGQlFTeERRVUZETEVsQlFVc3NRMEZCUVN4TFFVRkJMRU5CUVUwc1VVRkJWU3hGUVVGQk8wRkJRM2hDTEUxQlFVOHNUMEZCUVN4RlFVRkJMRU5CUVVjc1JVRkJSU3hEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5rTzBGQlJVRXNTVUZCUVN4TlFVRk5MRmRCUVdNc1IwRkJRU3huUWtGQlFTeEZRVUZ0UWl4RFFVRkJMRTlCUVVFc1EwRkJVU3hGUVVGRkxFOUJRVUVzUlVGQlV5eEpRVUZOTEVWQlFVRXNVMEZCUVN4RlFVRlhMRXRCUVU4c1JVRkJRU3hSUVVGQkxFVkJRVlVzU1VGQlN5eERRVUZCTEV0QlFVRXNRMEZCVFN4VlFVRlZMRU5CUVVFc1EwRkJRVHRCUVVWcVNDeEpRVUZKTEVsQlFVRXNTMEZCUVN4RFFVRkJPMEZCUTBvc1NVRkJTU3hKUVVGQkxFbEJRVUVzUTBGQlN5eE5RVUZOTEV0QlFVOHNSVUZCUVR0QlFVTndRaXhOUVVGTkxFMUJRVUVzV1VGQlFTeEhRVUZsTEZkQlFWY3NWMEZCV1N4RFFVRkJMRWxCUVVFc1JVRkJUU3hMUVVGTExFdEJRVTBzUTBGQlFTeExRVUZCTEVWQlFVOHNVVUZCVnl4UFFVRlBMRU5CUVVFc1EwRkJRVHRCUVVOMFJpeE5RVUZCTEV0QlFVRXNSMEZCVVN4blFrRkJaMElzV1VGQldTeERRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTjBRenRCUVVWQkxFbEJRVUVzVFVGQlRTeFZRVUZwUXl4RlFVRkRMRU5CUVVFN1FVRkZlRU1zU1VGQlFTeExRVUZCTEVsQlFWTXNRMEZCU1N4SFFVRkJMRU5CUVVFc1JVRkJSeXhEUVVGSkxFZEJRVUVzVjBGQlFTeERRVUZaTEZGQlFWRXNRMEZCU3l4RlFVRkJMRVZCUVVFN1FVRkRNME1zVFVGQlFTeE5RVUZOTEZOQlFWTXNWMEZCV1N4RFFVRkJMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJSVE5DTEUxQlFVa3NTVUZCUVN4UFFVRkJMRU5CUVZFc1RVRkJVU3hGUVVGQkxFdEJRVXNzUTBGQlJ5eEZRVUZCTzBGQlF6RkNMRkZCUVZFc1QwRkJRU3hEUVVGQkxFbEJRVUVzUTBGQlN5eEZRVUZGTEV0QlFVOHNSVUZCUVN4TlFVRkJMRU5CUVU4c1RVRkJUU3hMUVVGUExFVkJRVUVzVFVGQlFTeERRVUZQTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUVVFc1QwRkRlRVE3UVVGRlFTeE5RVUZCTEVsQlFVa3NTMEZCU3l4TFFVRk5MRU5CUVVFc2IwSkJRVUVzU1VGQmQwSXNVMEZCVlN4RFFVRkJMRTFCUVVFc1JVRkJVU3hMUVVGTExFTkJRVWNzUlVGQlFUdEJRVU12UkN4UlFVRkJMRTlCUVVFc1EwRkJVU3hMUVVGTExFVkJRVVVzUzBGQlFTeEZRVUZQTEZOQlFWY3NSVUZCUVN4TFFVRkJMRVZCUVU4c1YwRkJWeXhEUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU55UkR0QlFVRkJMRXRCUTBZN1FVRkZRU3hKUVVGSkxFbEJRVUVzVDBGQlFTeERRVUZSTEZkQlFWY3NRMEZCUnl4RlFVRkJPMEZCUTNoQ0xFMUJRVUVzU1VGQlFTeERRVUZMTEZGQlFWTXNRMEZCUVN4RlFVRkZMRXRCUVU4c1JVRkJRU3gxUWtGQlFTeEZRVUY1UWl4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOc1JDeE5RVUZCTEVsQlFWY3NTVUZCU3l4RFFVRkJMRXRCUVVFc1EwRkJUU3hMUVVGUExFVkJRVUU3UVVGRE0wSXNUVUZCUVN4SlFVRkJMRU5CUVVzc1VVRkJVeXhEUVVGQkxFVkJRVVVzUzBGQlR5eEZRVUZCTEVsQlFVRXNSVUZCVFN4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVNdlFqdEJRVVZCTEVsQlFVRXNUMEZCVHl4SFFVRkhMRTlCUVU4c1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGJrSTdRVUZMUml4RFFVRkJPMEZCZWtSaExHdENRVUZCTEVOQmMwUkhMRk5CUVZrc1IwRkJRU3hEUVVGRExFVkJRVVVzUzBGQlFTeEZRVUZ4UkN4TFFVRkJPMEZCUTJoR0xFVkJRVUVzVDBGQlR5eDNRa0ZCZDBJc1MwRkJTeXhEUVVGQkxFTkJRVUU3UVVGRGRFTXNRMEZCUVN4RFFVRkJPMEZCUjBZc1UwRkJVeXhQUVVGQkxFTkJRVkVzVVVGQmIwTXNTMEZCWjBJc1JVRkJRVHRCUVVOdVJTeEZRVUZCTEVsQlFVa3NRMEZCUXl4TFFVRlBMRVZCUVVFN1FVRkRWaXhKUVVGUExFOUJRVUVzU1VGQlFTeERRVUZCTzBGQlFVRXNSMEZEVkR0QlFVVkJMRVZCUVU4c1QwRkJRU3hMUVVGQkxFTkJRVTBzU1VGQlN5eERRVUZCTEUxQlFVRXNRMEZCVHl4SlFVRkpMRU5CUVVFc1EwRkJRVHRCUVVNdlFpeERRVUZCTzBGQlJVRXNVMEZCVXl4VFFVRkJMRU5CUVZVc1VVRkJiME1zUzBGQlowSXNSVUZCUVR0QlFVTnlSU3hGUVVGSkxFbEJRVUVzUTBGQlF5eFBRVUZQTEZOQlFWY3NSVUZCUVR0QlFVTnlRaXhKUVVGUExFOUJRVUVzUzBGQlFTeERRVUZCTzBGQlFVRXNSMEZEVkR0QlFVVkJMRVZCUVVFc1NVRkJTU3hEUVVGRExFdEJRVThzUlVGQlFUdEJRVU5XTEVsQlFVOHNUMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOVU8wRkJSVUVzUlVGQlR5eFBRVUZCTEV0QlFVRXNRMEZCVFN4TFFVRkxMRk5CUVZNc1EwRkJRU3hEUVVGQk8wRkJRemRDT3pzN095SjlcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0Qk8sTUFBTSwyQkFBMkIsa0JBQTRDLENBQUE7QUFLM0UsRUFBQSxXQUFBLENBQVksWUFBZ0QsRUFBQTtBQUMzRCxJQUFBLEtBQUEsQ0FBQSxjQUFBLENBQUE7TUFDSixJQUFNLEVBQUEsWUFBQTtNQUNOLEtBQU8sRUFBQSxFQUFBO01BQ1AsSUFBTSxFQUFBLEVBQUE7QUFDTixNQUFBLE9BQUEsRUFBUyxFQUFBO01BQ1QsSUFBTSxFQUFBLEVBQUE7TUFDTixLQUFPLEVBQUEsRUFBQTtNQUNQLFFBQVUsRUFBQSxFQUFBO0FBQUEsS0FBQSxFQUNQLFlBQ0osQ0FBQSxDQUFBLENBQUE7QUFkTyxJQUFBLElBQUEsQ0FBQSxtQkFBQSxHQUFzQixJQUFJLHdCQUFBLENBQXlCLElBQU0sRUFBQTtBQUNqRSxNQUFBLFVBQUEsRUFBWSxDQUFDLE9BQU8sQ0FBQTtLQUNyQixDQUFBLENBQUE7QUFBQSxHQUFBO0FBZU0s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
|