@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.
Files changed (319) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/esm/index.js +1 -1
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +0 -33
  9. package/dist/esm/dist/esm/behaviors/CursorSync.js +0 -76
  10. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +0 -44
  11. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +0 -14
  12. package/dist/esm/dist/esm/components/EmbeddedScene.js +0 -59
  13. package/dist/esm/dist/esm/components/NestedScene.js +0 -95
  14. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +0 -27
  15. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +0 -176
  16. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +0 -104
  17. package/dist/esm/dist/esm/components/SceneApp/utils.js +0 -42
  18. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +0 -41
  19. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +0 -55
  20. package/dist/esm/dist/esm/components/SceneCanvasText.js +0 -32
  21. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +0 -17
  22. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +0 -82
  23. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +0 -72
  24. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +0 -77
  25. package/dist/esm/dist/esm/components/SceneReactObject.js +0 -34
  26. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +0 -205
  27. package/dist/esm/dist/esm/components/SceneTimePicker.js +0 -139
  28. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +0 -240
  29. package/dist/esm/dist/esm/components/SceneToolbarButton.js +0 -33
  30. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +0 -406
  31. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +0 -44
  32. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +0 -59
  33. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +0 -285
  34. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  35. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  36. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +0 -11
  37. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  38. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  39. package/dist/esm/dist/esm/components/layout/LazyLoader.js +0 -103
  40. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +0 -135
  41. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +0 -30
  42. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +0 -283
  43. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  44. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +0 -190
  45. package/dist/esm/dist/esm/components/layout/grid/constants.js +0 -7
  46. package/dist/esm/dist/esm/components/layout/grid/utils.js +0 -36
  47. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +0 -17
  48. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +0 -29
  49. package/dist/esm/dist/esm/components/layout/split/Splitter.js +0 -386
  50. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +0 -57
  51. package/dist/esm/dist/esm/core/SceneDataNode.js +0 -43
  52. package/dist/esm/dist/esm/core/SceneObjectBase.js +0 -286
  53. package/dist/esm/dist/esm/core/SceneObjectRef.js +0 -32
  54. package/dist/esm/dist/esm/core/SceneTimeRange.js +0 -231
  55. package/dist/esm/dist/esm/core/events.js +0 -11
  56. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +0 -10
  57. package/dist/esm/dist/esm/core/sceneGraph/index.js +0 -25
  58. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +0 -178
  59. package/dist/esm/dist/esm/core/sceneGraph/utils.js +0 -64
  60. package/dist/esm/dist/esm/core/types.js +0 -15
  61. package/dist/esm/dist/esm/querying/DataLayersMerger.js +0 -46
  62. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +0 -6
  63. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +0 -6
  64. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +0 -100
  65. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +0 -468
  66. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +0 -46
  67. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +0 -12
  68. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +0 -112
  69. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +0 -51
  70. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  71. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +0 -85
  72. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  73. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  74. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +0 -77
  75. package/dist/esm/dist/esm/querying/registerQueryWithController.js +0 -41
  76. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +0 -30
  77. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +0 -45
  78. package/dist/esm/dist/esm/services/UrlSyncManager.js +0 -167
  79. package/dist/esm/dist/esm/services/useUrlSync.js +0 -29
  80. package/dist/esm/dist/esm/services/utils.js +0 -71
  81. package/dist/esm/dist/esm/utils/ControlsLabel.js +0 -107
  82. package/dist/esm/dist/esm/utils/LoadingIndicator.js +0 -19
  83. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +0 -39
  84. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  85. package/dist/esm/dist/esm/utils/date.js +0 -15
  86. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +0 -16
  87. package/dist/esm/dist/esm/utils/explore.js +0 -47
  88. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +0 -4
  89. package/dist/esm/dist/esm/utils/getDataSource.js +0 -18
  90. package/dist/esm/dist/esm/utils/getMessageFromError.js +0 -24
  91. package/dist/esm/dist/esm/utils/metricTree.js +0 -53
  92. package/dist/esm/dist/esm/utils/parseUrlParam.js +0 -41
  93. package/dist/esm/dist/esm/utils/utils.js +0 -11
  94. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +0 -30
  95. package/dist/esm/dist/esm/utils/writeSceneLog.js +0 -12
  96. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +0 -150
  97. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +0 -71
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +0 -24
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +0 -303
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  104. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  105. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  106. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  107. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  108. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +0 -289
  109. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  110. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  111. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +0 -47
  112. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +0 -23
  113. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +0 -33
  114. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +0 -228
  115. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +0 -72
  116. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +0 -15
  117. package/dist/esm/dist/esm/variables/constants.js +0 -9
  118. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +0 -12
  119. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +0 -259
  120. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  121. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  122. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +0 -40
  123. package/dist/esm/dist/esm/variables/interpolation/defaults.js +0 -21
  124. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +0 -13
  125. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +0 -296
  126. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +0 -87
  127. package/dist/esm/dist/esm/variables/lookupVariable.js +0 -20
  128. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +0 -57
  129. package/dist/esm/dist/esm/variables/macros/contextMacros.js +0 -43
  130. package/dist/esm/dist/esm/variables/macros/dataMacros.js +0 -134
  131. package/dist/esm/dist/esm/variables/macros/index.js +0 -26
  132. package/dist/esm/dist/esm/variables/macros/templateProxies.js +0 -51
  133. package/dist/esm/dist/esm/variables/macros/timeMacros.js +0 -86
  134. package/dist/esm/dist/esm/variables/macros/types.js +0 -11
  135. package/dist/esm/dist/esm/variables/macros/urlMacros.js +0 -56
  136. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +0 -254
  137. package/dist/esm/dist/esm/variables/types.js +0 -11
  138. package/dist/esm/dist/esm/variables/utils.js +0 -172
  139. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +0 -38
  140. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +0 -60
  141. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +0 -88
  142. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +0 -117
  143. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +0 -295
  144. package/dist/esm/dist/esm/variables/variants/TestVariable.js +0 -117
  145. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +0 -61
  146. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +0 -139
  147. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +0 -129
  148. package/dist/esm/dist/esm/variables/variants/query/guards.js +0 -28
  149. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +0 -96
  150. package/dist/esm/dist/esm/variables/variants/query/utils.js +0 -124
  151. package/dist/esm/querying/DataProviderSharer.js +0 -39
  152. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +0 -27
  153. package/dist/esm/src/behaviors/CursorSync.js +0 -76
  154. package/dist/esm/src/behaviors/LiveNowTimer.js +0 -44
  155. package/dist/esm/src/behaviors/SceneQueryController.js +0 -60
  156. package/dist/esm/src/behaviors/index.js +0 -5
  157. package/dist/esm/src/components/EmbeddedScene.js +0 -59
  158. package/dist/esm/src/components/NestedScene.js +0 -95
  159. package/dist/esm/src/components/SceneApp/SceneApp.js +0 -37
  160. package/dist/esm/src/components/SceneApp/SceneAppPage.js +0 -176
  161. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +0 -104
  162. package/dist/esm/src/components/SceneApp/utils.js +0 -42
  163. package/dist/esm/src/components/SceneByFrameRepeater.js +0 -41
  164. package/dist/esm/src/components/SceneByVariableRepeater.js +0 -55
  165. package/dist/esm/src/components/SceneCanvasText.js +0 -32
  166. package/dist/esm/src/components/SceneControlsSpacer.js +0 -17
  167. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +0 -82
  168. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +0 -72
  169. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +0 -77
  170. package/dist/esm/src/components/SceneReactObject.js +0 -34
  171. package/dist/esm/src/components/SceneRefreshPicker.js +0 -205
  172. package/dist/esm/src/components/SceneTimePicker.js +0 -139
  173. package/dist/esm/src/components/SceneTimeRangeCompare.js +0 -240
  174. package/dist/esm/src/components/SceneToolbarButton.js +0 -33
  175. package/dist/esm/src/components/VizPanel/VizPanel.js +0 -406
  176. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +0 -44
  177. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +0 -59
  178. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +0 -285
  179. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +0 -45
  180. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +0 -72
  181. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +0 -56
  182. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +0 -164
  183. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +0 -124
  184. package/dist/esm/src/components/layout/LazyLoader.js +0 -103
  185. package/dist/esm/src/components/layout/SceneFlexLayout.js +0 -135
  186. package/dist/esm/src/components/layout/grid/SceneGridItem.js +0 -30
  187. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +0 -283
  188. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +0 -178
  189. package/dist/esm/src/components/layout/grid/SceneGridRow.js +0 -190
  190. package/dist/esm/src/components/layout/grid/constants.js +0 -7
  191. package/dist/esm/src/components/layout/grid/utils.js +0 -36
  192. package/dist/esm/src/components/layout/split/SplitLayout.js +0 -17
  193. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +0 -29
  194. package/dist/esm/src/components/layout/split/Splitter.js +0 -386
  195. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +0 -100
  196. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +0 -75
  197. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +0 -75
  198. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +0 -22
  199. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +0 -85
  200. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +0 -52
  201. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +0 -78
  202. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +0 -114
  203. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +0 -162
  204. package/dist/esm/src/core/PanelBuilders/index.js +0 -116
  205. package/dist/esm/src/core/SceneComponentWrapper.js +0 -57
  206. package/dist/esm/src/core/SceneDataNode.js +0 -43
  207. package/dist/esm/src/core/SceneObjectBase.js +0 -286
  208. package/dist/esm/src/core/SceneObjectRef.js +0 -32
  209. package/dist/esm/src/core/SceneTimeRange.js +0 -231
  210. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +0 -35
  211. package/dist/esm/src/core/SceneTimeZoneOverride.js +0 -63
  212. package/dist/esm/src/core/events.js +0 -11
  213. package/dist/esm/src/core/sceneGraph/getTimeRange.js +0 -10
  214. package/dist/esm/src/core/sceneGraph/index.js +0 -25
  215. package/dist/esm/src/core/sceneGraph/sceneGraph.js +0 -178
  216. package/dist/esm/src/core/sceneGraph/utils.js +0 -64
  217. package/dist/esm/src/core/types.js +0 -15
  218. package/dist/esm/src/index.js +0 -108
  219. package/dist/esm/src/querying/DataLayersMerger.js +0 -46
  220. package/dist/esm/src/querying/DataProviderProxy.js +0 -37
  221. package/dist/esm/src/querying/DataProviderSharer.js +0 -108
  222. package/dist/esm/src/querying/ExtraQueryProvider.js +0 -6
  223. package/dist/esm/src/querying/RuntimeDataSource.js +0 -49
  224. package/dist/esm/src/querying/SceneDataLayerSet.js +0 -100
  225. package/dist/esm/src/querying/SceneDataTransformer.js +0 -178
  226. package/dist/esm/src/querying/SceneQueryRunner.js +0 -468
  227. package/dist/esm/src/querying/extraQueryProcessingOperator.js +0 -46
  228. package/dist/esm/src/querying/getEnrichedDataRequest.js +0 -12
  229. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +0 -112
  230. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +0 -51
  231. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +0 -130
  232. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +0 -85
  233. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +0 -121
  234. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +0 -211
  235. package/dist/esm/src/querying/layers/annotations/utils.js +0 -77
  236. package/dist/esm/src/querying/layers/index.js +0 -2
  237. package/dist/esm/src/querying/registerQueryWithController.js +0 -41
  238. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +0 -30
  239. package/dist/esm/src/services/UniqueUrlKeyMapper.js +0 -45
  240. package/dist/esm/src/services/UrlSyncContextProvider.js +0 -17
  241. package/dist/esm/src/services/UrlSyncManager.js +0 -167
  242. package/dist/esm/src/services/useUrlSync.js +0 -29
  243. package/dist/esm/src/services/utils.js +0 -75
  244. package/dist/esm/src/utils/ControlsLabel.js +0 -107
  245. package/dist/esm/src/utils/LoadingIndicator.js +0 -19
  246. package/dist/esm/src/utils/SafeSerializableSceneObject.js +0 -39
  247. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +0 -16
  248. package/dist/esm/src/utils/date.js +0 -15
  249. package/dist/esm/src/utils/evaluateTimeRange.js +0 -16
  250. package/dist/esm/src/utils/explore.js +0 -47
  251. package/dist/esm/src/utils/getCompareSeriesRefId.js +0 -4
  252. package/dist/esm/src/utils/getDataSource.js +0 -18
  253. package/dist/esm/src/utils/getMessageFromError.js +0 -24
  254. package/dist/esm/src/utils/metricTree.js +0 -53
  255. package/dist/esm/src/utils/parseUrlParam.js +0 -41
  256. package/dist/esm/src/utils/utils.js +0 -11
  257. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +0 -30
  258. package/dist/esm/src/utils/writeSceneLog.js +0 -12
  259. package/dist/esm/src/variables/VariableDependencyConfig.js +0 -150
  260. package/dist/esm/src/variables/VariableValueRecorder.js +0 -71
  261. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +0 -24
  262. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +0 -303
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +0 -162
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +0 -20
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +0 -640
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +0 -65
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +0 -146
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +0 -114
  269. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +0 -68
  270. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +0 -146
  271. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +0 -289
  272. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +0 -76
  273. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +0 -13
  274. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +0 -47
  275. package/dist/esm/src/variables/components/VariableValueControl.js +0 -23
  276. package/dist/esm/src/variables/components/VariableValueInput.js +0 -33
  277. package/dist/esm/src/variables/components/VariableValueSelect.js +0 -228
  278. package/dist/esm/src/variables/components/VariableValueSelectors.js +0 -72
  279. package/dist/esm/src/variables/components/getOptionSearcher.js +0 -15
  280. package/dist/esm/src/variables/constants.js +0 -9
  281. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +0 -12
  282. package/dist/esm/src/variables/groupby/GroupByVariable.js +0 -259
  283. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +0 -63
  284. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +0 -13
  285. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +0 -40
  286. package/dist/esm/src/variables/interpolation/defaults.js +0 -21
  287. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +0 -13
  288. package/dist/esm/src/variables/interpolation/formatRegistry.js +0 -296
  289. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +0 -87
  290. package/dist/esm/src/variables/lookupVariable.js +0 -20
  291. package/dist/esm/src/variables/macros/AllVariablesMacro.js +0 -57
  292. package/dist/esm/src/variables/macros/contextMacros.js +0 -43
  293. package/dist/esm/src/variables/macros/dataMacros.js +0 -134
  294. package/dist/esm/src/variables/macros/index.js +0 -35
  295. package/dist/esm/src/variables/macros/templateProxies.js +0 -51
  296. package/dist/esm/src/variables/macros/timeMacros.js +0 -86
  297. package/dist/esm/src/variables/macros/types.js +0 -11
  298. package/dist/esm/src/variables/macros/urlMacros.js +0 -56
  299. package/dist/esm/src/variables/sets/SceneVariableSet.js +0 -254
  300. package/dist/esm/src/variables/types.js +0 -11
  301. package/dist/esm/src/variables/utils.js +0 -172
  302. package/dist/esm/src/variables/variants/ConstantVariable.js +0 -38
  303. package/dist/esm/src/variables/variants/CustomVariable.js +0 -60
  304. package/dist/esm/src/variables/variants/DataSourceVariable.js +0 -88
  305. package/dist/esm/src/variables/variants/IntervalVariable.js +0 -117
  306. package/dist/esm/src/variables/variants/JsonVariable.js +0 -193
  307. package/dist/esm/src/variables/variants/LocalValueVariable.js +0 -56
  308. package/dist/esm/src/variables/variants/MultiValueVariable.js +0 -295
  309. package/dist/esm/src/variables/variants/TestVariable.js +0 -117
  310. package/dist/esm/src/variables/variants/TextBoxVariable.js +0 -61
  311. package/dist/esm/src/variables/variants/guards.js +0 -27
  312. package/dist/esm/src/variables/variants/query/QueryVariable.js +0 -139
  313. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +0 -129
  314. package/dist/esm/src/variables/variants/query/guards.js +0 -28
  315. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +0 -96
  316. package/dist/esm/src/variables/variants/query/utils.js +0 -124
  317. package/dist/esm/variables/variants/JsonVariable.js +0 -96
  318. package/dist/esm/variables/variants/json/JsonVariable.js +0 -95
  319. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +0 -70
@@ -1,240 +0,0 @@
1
- import { rangeUtil, dateTime, FieldType } from '@grafana/data';
2
- import { config } from '@grafana/runtime';
3
- import { useStyles2, ButtonGroup, ToolbarButton, Checkbox, ButtonSelect } from '@grafana/ui';
4
- import React from 'react';
5
- import { sceneGraph } from '../core/sceneGraph/index.js';
6
- import { SceneObjectBase } from '../core/SceneObjectBase.js';
7
- import { SceneObjectUrlSyncConfig } from '../services/SceneObjectUrlSyncConfig.js';
8
- import { getCompareSeriesRefId } from '../utils/getCompareSeriesRefId.js';
9
- import { parseUrlParam } from '../utils/parseUrlParam.js';
10
- import { css } from '@emotion/css';
11
- import { of } from 'rxjs';
12
-
13
- var __defProp = Object.defineProperty;
14
- var __defProps = Object.defineProperties;
15
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
16
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
17
- var __hasOwnProp = Object.prototype.hasOwnProperty;
18
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
19
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
20
- var __spreadValues = (a, b) => {
21
- for (var prop in b || (b = {}))
22
- if (__hasOwnProp.call(b, prop))
23
- __defNormalProp(a, prop, b[prop]);
24
- if (__getOwnPropSymbols)
25
- for (var prop of __getOwnPropSymbols(b)) {
26
- if (__propIsEnum.call(b, prop))
27
- __defNormalProp(a, prop, b[prop]);
28
- }
29
- return a;
30
- };
31
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
32
- const PREVIOUS_PERIOD_VALUE = "__previousPeriod";
33
- const NO_PERIOD_VALUE = "__noPeriod";
34
- const PREVIOUS_PERIOD_COMPARE_OPTION = {
35
- label: "Previous period",
36
- value: PREVIOUS_PERIOD_VALUE
37
- };
38
- const NO_COMPARE_OPTION = {
39
- label: "No comparison",
40
- value: NO_PERIOD_VALUE
41
- };
42
- const DEFAULT_COMPARE_OPTIONS = [
43
- { label: "Day before", value: "24h" },
44
- { label: "Week before", value: "1w" },
45
- { label: "Month before", value: "1M" }
46
- ];
47
- class SceneTimeRangeCompare extends SceneObjectBase {
48
- constructor(state) {
49
- super(__spreadValues({ compareOptions: DEFAULT_COMPARE_OPTIONS }, state));
50
- this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: ["compareWith"] });
51
- this._onActivate = () => {
52
- const sceneTimeRange = sceneGraph.getTimeRange(this);
53
- this.setState({ compareOptions: this.getCompareOptions(sceneTimeRange.state.value) });
54
- this._subs.add(
55
- sceneTimeRange.subscribeToState((timeRange) => {
56
- const compareOptions = this.getCompareOptions(timeRange.value);
57
- const stateUpdate = { compareOptions };
58
- if (Boolean(this.state.compareWith) && !compareOptions.find(({ value }) => value === this.state.compareWith)) {
59
- stateUpdate.compareWith = PREVIOUS_PERIOD_VALUE;
60
- }
61
- this.setState(stateUpdate);
62
- })
63
- );
64
- };
65
- this.getCompareOptions = (timeRange) => {
66
- const diffDays = Math.ceil(timeRange.to.diff(timeRange.from));
67
- const matchIndex = DEFAULT_COMPARE_OPTIONS.findIndex(({ value }) => {
68
- const intervalInMs = rangeUtil.intervalToMs(value);
69
- return intervalInMs >= diffDays;
70
- });
71
- return [
72
- NO_COMPARE_OPTION,
73
- PREVIOUS_PERIOD_COMPARE_OPTION,
74
- ...DEFAULT_COMPARE_OPTIONS.slice(matchIndex).map(({ label, value }) => ({ label, value }))
75
- ];
76
- };
77
- this.onCompareWithChanged = (compareWith) => {
78
- if (compareWith === NO_PERIOD_VALUE) {
79
- this.onClearCompare();
80
- } else {
81
- this.setState({ compareWith });
82
- }
83
- };
84
- this.onClearCompare = () => {
85
- this.setState({ compareWith: void 0 });
86
- };
87
- this.addActivationHandler(this._onActivate);
88
- }
89
- getExtraQueries(request) {
90
- const extraQueries = [];
91
- const compareRange = this.getCompareTimeRange(request.range);
92
- if (!compareRange) {
93
- return extraQueries;
94
- }
95
- const targets = request.targets.filter((query) => query.timeRangeCompare !== false);
96
- if (targets.length) {
97
- extraQueries.push({
98
- req: __spreadProps(__spreadValues({}, request), {
99
- targets,
100
- range: compareRange
101
- }),
102
- processor: timeShiftAlignmentProcessor
103
- });
104
- }
105
- return extraQueries;
106
- }
107
- shouldRerun(prev, next, queries) {
108
- return prev.compareWith !== next.compareWith && queries.find((query) => query.timeRangeCompare !== false) !== void 0;
109
- }
110
- getCompareTimeRange(timeRange) {
111
- let compareFrom;
112
- let compareTo;
113
- if (this.state.compareWith) {
114
- if (this.state.compareWith === PREVIOUS_PERIOD_VALUE) {
115
- const diffMs = timeRange.to.diff(timeRange.from);
116
- compareFrom = dateTime(timeRange.from).subtract(diffMs);
117
- compareTo = dateTime(timeRange.to).subtract(diffMs);
118
- } else {
119
- compareFrom = dateTime(timeRange.from).subtract(rangeUtil.intervalToMs(this.state.compareWith));
120
- compareTo = dateTime(timeRange.to).subtract(rangeUtil.intervalToMs(this.state.compareWith));
121
- }
122
- return {
123
- from: compareFrom,
124
- to: compareTo,
125
- raw: {
126
- from: compareFrom,
127
- to: compareTo
128
- }
129
- };
130
- }
131
- return void 0;
132
- }
133
- getUrlState() {
134
- return {
135
- compareWith: this.state.compareWith
136
- };
137
- }
138
- updateFromUrl(values) {
139
- if (!values.compareWith) {
140
- return;
141
- }
142
- const compareWith = parseUrlParam(values.compareWith);
143
- if (compareWith) {
144
- const compareOptions = this.getCompareOptions(sceneGraph.getTimeRange(this).state.value);
145
- if (compareOptions.find(({ value }) => value === compareWith)) {
146
- this.setState({
147
- compareWith
148
- });
149
- } else {
150
- this.setState({
151
- compareWith: "__previousPeriod"
152
- });
153
- }
154
- }
155
- }
156
- }
157
- SceneTimeRangeCompare.Component = SceneTimeRangeCompareRenderer;
158
- const timeShiftAlignmentProcessor = (primary, secondary) => {
159
- const diff = secondary.timeRange.from.diff(primary.timeRange.from);
160
- secondary.series.forEach((series) => {
161
- series.refId = getCompareSeriesRefId(series.refId || "");
162
- series.meta = __spreadProps(__spreadValues({}, series.meta), {
163
- timeCompare: {
164
- diffMs: diff,
165
- isTimeShiftQuery: true
166
- }
167
- });
168
- series.fields.forEach((field) => {
169
- if (field.type === FieldType.time) {
170
- field.values = field.values.map((v) => {
171
- return diff < 0 ? v - diff : v + diff;
172
- });
173
- }
174
- field.config = __spreadProps(__spreadValues({}, field.config), {
175
- color: {
176
- mode: "fixed",
177
- fixedColor: config.theme.palette.gray60
178
- }
179
- });
180
- return field;
181
- });
182
- });
183
- return of(secondary);
184
- };
185
- function SceneTimeRangeCompareRenderer({ model }) {
186
- var _a;
187
- const styles = useStyles2(getStyles);
188
- const { compareWith, compareOptions } = model.useState();
189
- const [previousCompare, setPreviousCompare] = React.useState(compareWith);
190
- const previousValue = (_a = compareOptions.find(({ value: value2 }) => value2 === previousCompare)) != null ? _a : PREVIOUS_PERIOD_COMPARE_OPTION;
191
- const value = compareOptions.find(({ value: value2 }) => value2 === compareWith);
192
- const enabled = Boolean(value);
193
- const onClick = () => {
194
- if (enabled) {
195
- setPreviousCompare(compareWith);
196
- model.onClearCompare();
197
- } else if (!enabled) {
198
- model.onCompareWithChanged(previousValue.value);
199
- }
200
- };
201
- return /* @__PURE__ */ React.createElement(ButtonGroup, null, /* @__PURE__ */ React.createElement(ToolbarButton, {
202
- variant: "canvas",
203
- tooltip: "Enable time frame comparison",
204
- onClick: (e) => {
205
- e.stopPropagation();
206
- e.preventDefault();
207
- onClick();
208
- }
209
- }, /* @__PURE__ */ React.createElement(Checkbox, {
210
- label: " ",
211
- value: enabled,
212
- onClick
213
- }), "Comparison"), enabled ? /* @__PURE__ */ React.createElement(ButtonSelect, {
214
- variant: "canvas",
215
- value,
216
- options: compareOptions,
217
- onChange: (v) => {
218
- model.onCompareWithChanged(v.value);
219
- }
220
- }) : /* @__PURE__ */ React.createElement(ToolbarButton, {
221
- className: styles.previewButton,
222
- disabled: true,
223
- variant: "canvas",
224
- isOpen: false
225
- }, previousValue.label));
226
- }
227
- function getStyles(theme) {
228
- return {
229
- previewButton: css({
230
- "&:disabled": {
231
- border: `1px solid ${theme.colors.secondary.border}`,
232
- color: theme.colors.text.disabled,
233
- opacity: 1
234
- }
235
- })
236
- };
237
- }
238
-
239
- export { DEFAULT_COMPARE_OPTIONS, NO_COMPARE_OPTION, PREVIOUS_PERIOD_COMPARE_OPTION, SceneTimeRangeCompare };
240
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVUaW1lUmFuZ2VDb21wYXJlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL1NjZW5lVGltZVJhbmdlQ29tcGFyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5nZVV0aWwsIGRhdGVUaW1lLCBGaWVsZFR5cGUgfSBmcm9tICdAZ3JhZmFuYS9kYXRhJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuaW1wb3J0IHsgdXNlU3R5bGVzMiwgQnV0dG9uR3JvdXAsIFRvb2xiYXJCdXR0b24sIENoZWNrYm94LCBCdXR0b25TZWxlY3QgfSBmcm9tICdAZ3JhZmFuYS91aSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgc2NlbmVHcmFwaCB9IGZyb20gJy4uL2NvcmUvc2NlbmVHcmFwaC9pbmRleC5qcyc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi9jb3JlL1NjZW5lT2JqZWN0QmFzZS5qcyc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdFVybFN5bmNDb25maWcgfSBmcm9tICcuLi9zZXJ2aWNlcy9TY2VuZU9iamVjdFVybFN5bmNDb25maWcuanMnO1xuaW1wb3J0IHsgZ2V0Q29tcGFyZVNlcmllc1JlZklkIH0gZnJvbSAnLi4vdXRpbHMvZ2V0Q29tcGFyZVNlcmllc1JlZklkLmpzJztcbmltcG9ydCB7IHBhcnNlVXJsUGFyYW0gfSBmcm9tICcuLi91dGlscy9wYXJzZVVybFBhcmFtLmpzJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL2Nzcyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZGVmUHJvcHMgPSBPYmplY3QuZGVmaW5lUHJvcGVydGllcztcbnZhciBfX2dldE93blByb3BEZXNjcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzO1xudmFyIF9fZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19wcm9wSXNFbnVtID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBfX2RlZk5vcm1hbFByb3AgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wKG9iaiwga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0pIDogb2JqW2tleV0gPSB2YWx1ZTtcbnZhciBfX3NwcmVhZFZhbHVlcyA9IChhLCBiKSA9PiB7XG4gIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoYiwgcHJvcCkpXG4gICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gIGlmIChfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xuICAgICAgaWYgKF9fcHJvcElzRW51bS5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gICAgfVxuICByZXR1cm4gYTtcbn07XG52YXIgX19zcHJlYWRQcm9wcyA9IChhLCBiKSA9PiBfX2RlZlByb3BzKGEsIF9fZ2V0T3duUHJvcERlc2NzKGIpKTtcbmNvbnN0IFBSRVZJT1VTX1BFUklPRF9WQUxVRSA9IFwiX19wcmV2aW91c1BlcmlvZFwiO1xuY29uc3QgTk9fUEVSSU9EX1ZBTFVFID0gXCJfX25vUGVyaW9kXCI7XG5jb25zdCBQUkVWSU9VU19QRVJJT0RfQ09NUEFSRV9PUFRJT04gPSB7XG4gIGxhYmVsOiBcIlByZXZpb3VzIHBlcmlvZFwiLFxuICB2YWx1ZTogUFJFVklPVVNfUEVSSU9EX1ZBTFVFXG59O1xuY29uc3QgTk9fQ09NUEFSRV9PUFRJT04gPSB7XG4gIGxhYmVsOiBcIk5vIGNvbXBhcmlzb25cIixcbiAgdmFsdWU6IE5PX1BFUklPRF9WQUxVRVxufTtcbmNvbnN0IERFRkFVTFRfQ09NUEFSRV9PUFRJT05TID0gW1xuICB7IGxhYmVsOiBcIkRheSBiZWZvcmVcIiwgdmFsdWU6IFwiMjRoXCIgfSxcbiAgeyBsYWJlbDogXCJXZWVrIGJlZm9yZVwiLCB2YWx1ZTogXCIxd1wiIH0sXG4gIHsgbGFiZWw6IFwiTW9udGggYmVmb3JlXCIsIHZhbHVlOiBcIjFNXCIgfVxuXTtcbmNsYXNzIFNjZW5lVGltZVJhbmdlQ29tcGFyZSBleHRlbmRzIFNjZW5lT2JqZWN0QmFzZSB7XG4gIGNvbnN0cnVjdG9yKHN0YXRlKSB7XG4gICAgc3VwZXIoX19zcHJlYWRWYWx1ZXMoeyBjb21wYXJlT3B0aW9uczogREVGQVVMVF9DT01QQVJFX09QVElPTlMgfSwgc3RhdGUpKTtcbiAgICB0aGlzLl91cmxTeW5jID0gbmV3IFNjZW5lT2JqZWN0VXJsU3luY0NvbmZpZyh0aGlzLCB7IGtleXM6IFtcImNvbXBhcmVXaXRoXCJdIH0pO1xuICAgIHRoaXMuX29uQWN0aXZhdGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBzY2VuZVRpbWVSYW5nZSA9IHNjZW5lR3JhcGguZ2V0VGltZVJhbmdlKHRoaXMpO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbXBhcmVPcHRpb25zOiB0aGlzLmdldENvbXBhcmVPcHRpb25zKHNjZW5lVGltZVJhbmdlLnN0YXRlLnZhbHVlKSB9KTtcbiAgICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgICAgICBzY2VuZVRpbWVSYW5nZS5zdWJzY3JpYmVUb1N0YXRlKCh0aW1lUmFuZ2UpID0+IHtcbiAgICAgICAgICBjb25zdCBjb21wYXJlT3B0aW9ucyA9IHRoaXMuZ2V0Q29tcGFyZU9wdGlvbnModGltZVJhbmdlLnZhbHVlKTtcbiAgICAgICAgICBjb25zdCBzdGF0ZVVwZGF0ZSA9IHsgY29tcGFyZU9wdGlvbnMgfTtcbiAgICAgICAgICBpZiAoQm9vbGVhbih0aGlzLnN0YXRlLmNvbXBhcmVXaXRoKSAmJiAhY29tcGFyZU9wdGlvbnMuZmluZCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSA9PT0gdGhpcy5zdGF0ZS5jb21wYXJlV2l0aCkpIHtcbiAgICAgICAgICAgIHN0YXRlVXBkYXRlLmNvbXBhcmVXaXRoID0gUFJFVklPVVNfUEVSSU9EX1ZBTFVFO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlVXBkYXRlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfTtcbiAgICB0aGlzLmdldENvbXBhcmVPcHRpb25zID0gKHRpbWVSYW5nZSkgPT4ge1xuICAgICAgY29uc3QgZGlmZkRheXMgPSBNYXRoLmNlaWwodGltZVJhbmdlLnRvLmRpZmYodGltZVJhbmdlLmZyb20pKTtcbiAgICAgIGNvbnN0IG1hdGNoSW5kZXggPSBERUZBVUxUX0NPTVBBUkVfT1BUSU9OUy5maW5kSW5kZXgoKHsgdmFsdWUgfSkgPT4ge1xuICAgICAgICBjb25zdCBpbnRlcnZhbEluTXMgPSByYW5nZVV0aWwuaW50ZXJ2YWxUb01zKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIGludGVydmFsSW5NcyA+PSBkaWZmRGF5cztcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgTk9fQ09NUEFSRV9PUFRJT04sXG4gICAgICAgIFBSRVZJT1VTX1BFUklPRF9DT01QQVJFX09QVElPTixcbiAgICAgICAgLi4uREVGQVVMVF9DT01QQVJFX09QVElPTlMuc2xpY2UobWF0Y2hJbmRleCkubWFwKCh7IGxhYmVsLCB2YWx1ZSB9KSA9PiAoeyBsYWJlbCwgdmFsdWUgfSkpXG4gICAgICBdO1xuICAgIH07XG4gICAgdGhpcy5vbkNvbXBhcmVXaXRoQ2hhbmdlZCA9IChjb21wYXJlV2l0aCkgPT4ge1xuICAgICAgaWYgKGNvbXBhcmVXaXRoID09PSBOT19QRVJJT0RfVkFMVUUpIHtcbiAgICAgICAgdGhpcy5vbkNsZWFyQ29tcGFyZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbXBhcmVXaXRoIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5vbkNsZWFyQ29tcGFyZSA9ICgpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb21wYXJlV2l0aDogdm9pZCAwIH0pO1xuICAgIH07XG4gICAgdGhpcy5hZGRBY3RpdmF0aW9uSGFuZGxlcih0aGlzLl9vbkFjdGl2YXRlKTtcbiAgfVxuICBnZXRFeHRyYVF1ZXJpZXMocmVxdWVzdCkge1xuICAgIGNvbnN0IGV4dHJhUXVlcmllcyA9IFtdO1xuICAgIGNvbnN0IGNvbXBhcmVSYW5nZSA9IHRoaXMuZ2V0Q29tcGFyZVRpbWVSYW5nZShyZXF1ZXN0LnJhbmdlKTtcbiAgICBpZiAoIWNvbXBhcmVSYW5nZSkge1xuICAgICAgcmV0dXJuIGV4dHJhUXVlcmllcztcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0cyA9IHJlcXVlc3QudGFyZ2V0cy5maWx0ZXIoKHF1ZXJ5KSA9PiBxdWVyeS50aW1lUmFuZ2VDb21wYXJlICE9PSBmYWxzZSk7XG4gICAgaWYgKHRhcmdldHMubGVuZ3RoKSB7XG4gICAgICBleHRyYVF1ZXJpZXMucHVzaCh7XG4gICAgICAgIHJlcTogX19zcHJlYWRQcm9wcyhfX3NwcmVhZFZhbHVlcyh7fSwgcmVxdWVzdCksIHtcbiAgICAgICAgICB0YXJnZXRzLFxuICAgICAgICAgIHJhbmdlOiBjb21wYXJlUmFuZ2VcbiAgICAgICAgfSksXG4gICAgICAgIHByb2Nlc3NvcjogdGltZVNoaWZ0QWxpZ25tZW50UHJvY2Vzc29yXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGV4dHJhUXVlcmllcztcbiAgfVxuICBzaG91bGRSZXJ1bihwcmV2LCBuZXh0LCBxdWVyaWVzKSB7XG4gICAgcmV0dXJuIHByZXYuY29tcGFyZVdpdGggIT09IG5leHQuY29tcGFyZVdpdGggJiYgcXVlcmllcy5maW5kKChxdWVyeSkgPT4gcXVlcnkudGltZVJhbmdlQ29tcGFyZSAhPT0gZmFsc2UpICE9PSB2b2lkIDA7XG4gIH1cbiAgZ2V0Q29tcGFyZVRpbWVSYW5nZSh0aW1lUmFuZ2UpIHtcbiAgICBsZXQgY29tcGFyZUZyb207XG4gICAgbGV0IGNvbXBhcmVUbztcbiAgICBpZiAodGhpcy5zdGF0ZS5jb21wYXJlV2l0aCkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuY29tcGFyZVdpdGggPT09IFBSRVZJT1VTX1BFUklPRF9WQUxVRSkge1xuICAgICAgICBjb25zdCBkaWZmTXMgPSB0aW1lUmFuZ2UudG8uZGlmZih0aW1lUmFuZ2UuZnJvbSk7XG4gICAgICAgIGNvbXBhcmVGcm9tID0gZGF0ZVRpbWUodGltZVJhbmdlLmZyb20pLnN1YnRyYWN0KGRpZmZNcyk7XG4gICAgICAgIGNvbXBhcmVUbyA9IGRhdGVUaW1lKHRpbWVSYW5nZS50bykuc3VidHJhY3QoZGlmZk1zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbXBhcmVGcm9tID0gZGF0ZVRpbWUodGltZVJhbmdlLmZyb20pLnN1YnRyYWN0KHJhbmdlVXRpbC5pbnRlcnZhbFRvTXModGhpcy5zdGF0ZS5jb21wYXJlV2l0aCkpO1xuICAgICAgICBjb21wYXJlVG8gPSBkYXRlVGltZSh0aW1lUmFuZ2UudG8pLnN1YnRyYWN0KHJhbmdlVXRpbC5pbnRlcnZhbFRvTXModGhpcy5zdGF0ZS5jb21wYXJlV2l0aCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZnJvbTogY29tcGFyZUZyb20sXG4gICAgICAgIHRvOiBjb21wYXJlVG8sXG4gICAgICAgIHJhdzoge1xuICAgICAgICAgIGZyb206IGNvbXBhcmVGcm9tLFxuICAgICAgICAgIHRvOiBjb21wYXJlVG9cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICBnZXRVcmxTdGF0ZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29tcGFyZVdpdGg6IHRoaXMuc3RhdGUuY29tcGFyZVdpdGhcbiAgICB9O1xuICB9XG4gIHVwZGF0ZUZyb21VcmwodmFsdWVzKSB7XG4gICAgaWYgKCF2YWx1ZXMuY29tcGFyZVdpdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29tcGFyZVdpdGggPSBwYXJzZVVybFBhcmFtKHZhbHVlcy5jb21wYXJlV2l0aCk7XG4gICAgaWYgKGNvbXBhcmVXaXRoKSB7XG4gICAgICBjb25zdCBjb21wYXJlT3B0aW9ucyA9IHRoaXMuZ2V0Q29tcGFyZU9wdGlvbnMoc2NlbmVHcmFwaC5nZXRUaW1lUmFuZ2UodGhpcykuc3RhdGUudmFsdWUpO1xuICAgICAgaWYgKGNvbXBhcmVPcHRpb25zLmZpbmQoKHsgdmFsdWUgfSkgPT4gdmFsdWUgPT09IGNvbXBhcmVXaXRoKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBjb21wYXJlV2l0aFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIGNvbXBhcmVXaXRoOiBcIl9fcHJldmlvdXNQZXJpb2RcIlxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblNjZW5lVGltZVJhbmdlQ29tcGFyZS5Db21wb25lbnQgPSBTY2VuZVRpbWVSYW5nZUNvbXBhcmVSZW5kZXJlcjtcbmNvbnN0IHRpbWVTaGlmdEFsaWdubWVudFByb2Nlc3NvciA9IChwcmltYXJ5LCBzZWNvbmRhcnkpID0+IHtcbiAgY29uc3QgZGlmZiA9IHNlY29uZGFyeS50aW1lUmFuZ2UuZnJvbS5kaWZmKHByaW1hcnkudGltZVJhbmdlLmZyb20pO1xuICBzZWNvbmRhcnkuc2VyaWVzLmZvckVhY2goKHNlcmllcykgPT4ge1xuICAgIHNlcmllcy5yZWZJZCA9IGdldENvbXBhcmVTZXJpZXNSZWZJZChzZXJpZXMucmVmSWQgfHwgXCJcIik7XG4gICAgc2VyaWVzLm1ldGEgPSBfX3NwcmVhZFByb3BzKF9fc3ByZWFkVmFsdWVzKHt9LCBzZXJpZXMubWV0YSksIHtcbiAgICAgIHRpbWVDb21wYXJlOiB7XG4gICAgICAgIGRpZmZNczogZGlmZixcbiAgICAgICAgaXNUaW1lU2hpZnRRdWVyeTogdHJ1ZVxuICAgICAgfVxuICAgIH0pO1xuICAgIHNlcmllcy5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSBGaWVsZFR5cGUudGltZSkge1xuICAgICAgICBmaWVsZC52YWx1ZXMgPSBmaWVsZC52YWx1ZXMubWFwKCh2KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRpZmYgPCAwID8gdiAtIGRpZmYgOiB2ICsgZGlmZjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBmaWVsZC5jb25maWcgPSBfX3NwcmVhZFByb3BzKF9fc3ByZWFkVmFsdWVzKHt9LCBmaWVsZC5jb25maWcpLCB7XG4gICAgICAgIGNvbG9yOiB7XG4gICAgICAgICAgbW9kZTogXCJmaXhlZFwiLFxuICAgICAgICAgIGZpeGVkQ29sb3I6IGNvbmZpZy50aGVtZS5wYWxldHRlLmdyYXk2MFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBvZihzZWNvbmRhcnkpO1xufTtcbmZ1bmN0aW9uIFNjZW5lVGltZVJhbmdlQ29tcGFyZVJlbmRlcmVyKHsgbW9kZWwgfSkge1xuICB2YXIgX2E7XG4gIGNvbnN0IHN0eWxlcyA9IHVzZVN0eWxlczIoZ2V0U3R5bGVzKTtcbiAgY29uc3QgeyBjb21wYXJlV2l0aCwgY29tcGFyZU9wdGlvbnMgfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG4gIGNvbnN0IFtwcmV2aW91c0NvbXBhcmUsIHNldFByZXZpb3VzQ29tcGFyZV0gPSBSZWFjdC51c2VTdGF0ZShjb21wYXJlV2l0aCk7XG4gIGNvbnN0IHByZXZpb3VzVmFsdWUgPSAoX2EgPSBjb21wYXJlT3B0aW9ucy5maW5kKCh7IHZhbHVlOiB2YWx1ZTIgfSkgPT4gdmFsdWUyID09PSBwcmV2aW91c0NvbXBhcmUpKSAhPSBudWxsID8gX2EgOiBQUkVWSU9VU19QRVJJT0RfQ09NUEFSRV9PUFRJT047XG4gIGNvbnN0IHZhbHVlID0gY29tcGFyZU9wdGlvbnMuZmluZCgoeyB2YWx1ZTogdmFsdWUyIH0pID0+IHZhbHVlMiA9PT0gY29tcGFyZVdpdGgpO1xuICBjb25zdCBlbmFibGVkID0gQm9vbGVhbih2YWx1ZSk7XG4gIGNvbnN0IG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgIHNldFByZXZpb3VzQ29tcGFyZShjb21wYXJlV2l0aCk7XG4gICAgICBtb2RlbC5vbkNsZWFyQ29tcGFyZSgpO1xuICAgIH0gZWxzZSBpZiAoIWVuYWJsZWQpIHtcbiAgICAgIG1vZGVsLm9uQ29tcGFyZVdpdGhDaGFuZ2VkKHByZXZpb3VzVmFsdWUudmFsdWUpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbkdyb3VwLCBudWxsLCAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChUb29sYmFyQnV0dG9uLCB7XG4gICAgdmFyaWFudDogXCJjYW52YXNcIixcbiAgICB0b29sdGlwOiBcIkVuYWJsZSB0aW1lIGZyYW1lIGNvbXBhcmlzb25cIixcbiAgICBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG9uQ2xpY2soKTtcbiAgICB9XG4gIH0sIC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCB7XG4gICAgbGFiZWw6IFwiIFwiLFxuICAgIHZhbHVlOiBlbmFibGVkLFxuICAgIG9uQ2xpY2tcbiAgfSksIFwiQ29tcGFyaXNvblwiKSwgZW5hYmxlZCA/IC8qIEBfX1BVUkVfXyAqLyBSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvblNlbGVjdCwge1xuICAgIHZhcmlhbnQ6IFwiY2FudmFzXCIsXG4gICAgdmFsdWUsXG4gICAgb3B0aW9uczogY29tcGFyZU9wdGlvbnMsXG4gICAgb25DaGFuZ2U6ICh2KSA9PiB7XG4gICAgICBtb2RlbC5vbkNvbXBhcmVXaXRoQ2hhbmdlZCh2LnZhbHVlKTtcbiAgICB9XG4gIH0pIDogLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVG9vbGJhckJ1dHRvbiwge1xuICAgIGNsYXNzTmFtZTogc3R5bGVzLnByZXZpZXdCdXR0b24sXG4gICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgdmFyaWFudDogXCJjYW52YXNcIixcbiAgICBpc09wZW46IGZhbHNlXG4gIH0sIHByZXZpb3VzVmFsdWUubGFiZWwpKTtcbn1cbmZ1bmN0aW9uIGdldFN0eWxlcyh0aGVtZSkge1xuICByZXR1cm4ge1xuICAgIHByZXZpZXdCdXR0b246IGNzcyh7XG4gICAgICBcIiY6ZGlzYWJsZWRcIjoge1xuICAgICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5LmJvcmRlcn1gLFxuICAgICAgICBjb2xvcjogdGhlbWUuY29sb3JzLnRleHQuZGlzYWJsZWQsXG4gICAgICAgIG9wYWNpdHk6IDFcbiAgICAgIH1cbiAgICB9KVxuICB9O1xufVxuXG5leHBvcnQgeyBERUZBVUxUX0NPTVBBUkVfT1BUSU9OUywgTk9fQ09NUEFSRV9PUFRJT04sIFBSRVZJT1VTX1BFUklPRF9DT01QQVJFX09QVElPTiwgU2NlbmVUaW1lUmFuZ2VDb21wYXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVUyTmxibVZVYVcxbFVtRnVaMlZEYjIxd1lYSmxMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12WTI5dGNHOXVaVzUwY3k5VFkyVnVaVlJwYldWU1lXNW5aVU52YlhCaGNtVXVkSE40SWwwc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFUmhkR0ZSZFdWeWVWSmxjWFZsYzNRc0lFUmhkR1ZVYVcxbExDQmtZWFJsVkdsdFpTd2dSbWxsYkdSVWVYQmxMQ0JIY21GbVlXNWhWR2hsYldVeUxDQnlZVzVuWlZWMGFXd3NJRlJwYldWU1lXNW5aU0I5SUdaeWIyMGdKMEJuY21GbVlXNWhMMlJoZEdFbk8xeHVhVzF3YjNKMElIc2dZMjl1Wm1sbklIMGdabkp2YlNBblFHZHlZV1poYm1FdmNuVnVkR2x0WlNjN1hHNXBiWEJ2Y25RZ2V5QkNkWFIwYjI1SGNtOTFjQ3dnUW5WMGRHOXVVMlZzWldOMExDQkRhR1ZqYTJKdmVDd2dWRzl2YkdKaGNrSjFkSFJ2Yml3Z2RYTmxVM1I1YkdWek1pQjlJR1p5YjIwZ0owQm5jbUZtWVc1aEwzVnBKenRjYm1sdGNHOXlkQ0JTWldGamRDQm1jbTl0SUNkeVpXRmpkQ2M3WEc1cGJYQnZjblFnZXlCelkyVnVaVWR5WVhCb0lIMGdabkp2YlNBbkxpNHZZMjl5WlM5elkyVnVaVWR5WVhCb0p6dGNibWx0Y0c5eWRDQjdJRk5qWlc1bFQySnFaV04wUW1GelpTQjlJR1p5YjIwZ0p5NHVMMk52Y21VdlUyTmxibVZQWW1wbFkzUkNZWE5sSnp0Y2JtbHRjRzl5ZENCN0lGTmpaVzVsUTI5dGNHOXVaVzUwVUhKdmNITXNJRk5qWlc1bFJHRjBZVkYxWlhKNUxDQlRZMlZ1WlU5aWFtVmpkRk4wWVhSbExDQlRZMlZ1WlU5aWFtVmpkRlZ5YkZaaGJIVmxjeUI5SUdaeWIyMGdKeTR1TDJOdmNtVXZkSGx3WlhNbk8xeHVhVzF3YjNKMElIc2dSR0YwWVZGMVpYSjVSWGgwWlc1a1pXUWdmU0JtY205dElDY3VMaTl4ZFdWeWVXbHVaeTlUWTJWdVpWRjFaWEo1VW5WdWJtVnlKenRjYm1sdGNHOXlkQ0I3SUVWNGRISmhVWFZsY25sRVpYTmpjbWx3ZEc5eUxDQkZlSFJ5WVZGMVpYSjVSR0YwWVZCeWIyTmxjM052Y2l3Z1JYaDBjbUZSZFdWeWVWQnliM1pwWkdWeUlIMGdabkp2YlNBbkxpNHZjWFZsY25scGJtY3ZSWGgwY21GUmRXVnllVkJ5YjNacFpHVnlKenRjYm1sdGNHOXlkQ0I3SUZOalpXNWxUMkpxWldOMFZYSnNVM2x1WTBOdmJtWnBaeUI5SUdaeWIyMGdKeTR1TDNObGNuWnBZMlZ6TDFOalpXNWxUMkpxWldOMFZYSnNVM2x1WTBOdmJtWnBaeWM3WEc1cGJYQnZjblFnZXlCblpYUkRiMjF3WVhKbFUyVnlhV1Z6VW1WbVNXUWdmU0JtY205dElDY3VMaTkxZEdsc2N5OW5aWFJEYjIxd1lYSmxVMlZ5YVdWelVtVm1TV1FuTzF4dWFXMXdiM0owSUhzZ2NHRnljMlZWY214UVlYSmhiU0I5SUdaeWIyMGdKeTR1TDNWMGFXeHpMM0JoY25ObFZYSnNVR0Z5WVcwbk8xeHVhVzF3YjNKMElIc2dZM056SUgwZ1puSnZiU0FuUUdWdGIzUnBiMjR2WTNOekp6dGNibWx0Y0c5eWRDQjdJRzltSUgwZ1puSnZiU0FuY25ocWN5YzdYRzVjYm1sdWRHVnlabUZqWlNCVFkyVnVaVlJwYldWU1lXNW5aVU52YlhCaGNtVlRkR0YwWlNCbGVIUmxibVJ6SUZOalpXNWxUMkpxWldOMFUzUmhkR1VnZTF4dUlDQmpiMjF3WVhKbFYybDBhRDg2SUhOMGNtbHVaenRjYmlBZ1kyOXRjR0Z5WlU5d2RHbHZibk02SUVGeWNtRjVQSHNnYkdGaVpXdzZJSE4wY21sdVp6c2dkbUZzZFdVNklITjBjbWx1WnlCOVBqdGNibjFjYmx4dVkyOXVjM1FnVUZKRlZrbFBWVk5mVUVWU1NVOUVYMVpCVEZWRklEMGdKMTlmY0hKbGRtbHZkWE5RWlhKcGIyUW5PMXh1WTI5dWMzUWdUazlmVUVWU1NVOUVYMVpCVEZWRklEMGdKMTlmYm05UVpYSnBiMlFuTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVUZKRlZrbFBWVk5mVUVWU1NVOUVYME5QVFZCQlVrVmZUMUJVU1U5T0lEMGdlMXh1SUNCc1lXSmxiRG9nSjFCeVpYWnBiM1Z6SUhCbGNtbHZaQ2NzWEc0Z0lIWmhiSFZsT2lCUVVrVldTVTlWVTE5UVJWSkpUMFJmVmtGTVZVVXNYRzU5TzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVGs5ZlEwOU5VRUZTUlY5UFVGUkpUMDRnUFNCN1hHNGdJR3hoWW1Wc09pQW5UbThnWTI5dGNHRnlhWE52Ymljc1hHNGdJSFpoYkhWbE9pQk9UMTlRUlZKSlQwUmZWa0ZNVlVVc1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdSRVZHUVZWTVZGOURUMDFRUVZKRlgwOVFWRWxQVGxNZ1BTQmJYRzRnSUhzZ2JHRmlaV3c2SUNkRVlYa2dZbVZtYjNKbEp5d2dkbUZzZFdVNklDY3lOR2duSUgwc1hHNGdJSHNnYkdGaVpXdzZJQ2RYWldWcklHSmxabTl5WlNjc0lIWmhiSFZsT2lBbk1YY25JSDBzWEc0Z0lIc2diR0ZpWld3NklDZE5iMjUwYUNCaVpXWnZjbVVuTENCMllXeDFaVG9nSnpGTkp5QjlMRnh1WFR0Y2JseHVaWGh3YjNKMElHTnNZWE56SUZOalpXNWxWR2x0WlZKaGJtZGxRMjl0Y0dGeVpWeHVJQ0JsZUhSbGJtUnpJRk5qWlc1bFQySnFaV04wUW1GelpUeFRZMlZ1WlZScGJXVlNZVzVuWlVOdmJYQmhjbVZUZEdGMFpUNWNiaUFnYVcxd2JHVnRaVzUwY3lCRmVIUnlZVkYxWlhKNVVISnZkbWxrWlhJOFUyTmxibVZVYVcxbFVtRnVaMlZEYjIxd1lYSmxVM1JoZEdVK1hHNTdYRzRnSUhOMFlYUnBZeUJEYjIxd2IyNWxiblFnUFNCVFkyVnVaVlJwYldWU1lXNW5aVU52YlhCaGNtVlNaVzVrWlhKbGNqdGNiaUFnY0hKdmRHVmpkR1ZrSUY5MWNteFRlVzVqSUQwZ2JtVjNJRk5qWlc1bFQySnFaV04wVlhKc1UzbHVZME52Ym1acFp5aDBhR2x6TENCN0lHdGxlWE02SUZzblkyOXRjR0Z5WlZkcGRHZ25YU0I5S1R0Y2JseHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvYzNSaGRHVTZJRkJoY25ScFlXdzhVMk5sYm1WVWFXMWxVbUZ1WjJWRGIyMXdZWEpsVTNSaGRHVStLU0I3WEc0Z0lDQWdjM1Z3WlhJb2V5QmpiMjF3WVhKbFQzQjBhVzl1Y3pvZ1JFVkdRVlZNVkY5RFQwMVFRVkpGWDA5UVZFbFBUbE1zSUM0dUxuTjBZWFJsSUgwcE8xeHVJQ0FnSUhSb2FYTXVZV1JrUVdOMGFYWmhkR2x2YmtoaGJtUnNaWElvZEdocGN5NWZiMjVCWTNScGRtRjBaU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUY5dmJrRmpkR2wyWVhSbElEMGdLQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSE5qWlc1bFZHbHRaVkpoYm1kbElEMGdjMk5sYm1WSGNtRndhQzVuWlhSVWFXMWxVbUZ1WjJVb2RHaHBjeWs3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lHTnZiWEJoY21WUGNIUnBiMjV6T2lCMGFHbHpMbWRsZEVOdmJYQmhjbVZQY0hScGIyNXpLSE5qWlc1bFZHbHRaVkpoYm1kbExuTjBZWFJsTG5aaGJIVmxLU0I5S1R0Y2JseHVJQ0FnSUhSb2FYTXVYM04xWW5NdVlXUmtLRnh1SUNBZ0lDQWdjMk5sYm1WVWFXMWxVbUZ1WjJVdWMzVmljMk55YVdKbFZHOVRkR0YwWlNnb2RHbHRaVkpoYm1kbEtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR052YlhCaGNtVlBjSFJwYjI1eklEMGdkR2hwY3k1blpYUkRiMjF3WVhKbFQzQjBhVzl1Y3loMGFXMWxVbUZ1WjJVdWRtRnNkV1VwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J6ZEdGMFpWVndaR0YwWlRvZ1VHRnlkR2xoYkR4VFkyVnVaVlJwYldWU1lXNW5aVU52YlhCaGNtVlRkR0YwWlQ0Z1BTQjdJR052YlhCaGNtVlBjSFJwYjI1eklIMDdYRzVjYmlBZ0lDQWdJQ0FnTHk4Z2FXWWdZM1Z5Y21WdWRDQmpiMjF3WVhKbFYybDBhQ0JwY3lCdWIzUWdZWEJ3YkdsallXSnNaU0IwYnlCMGFHVWdibVYzSUhScGJXVWdjbUZ1WjJVc0lITmxkQ0JwZENCMGJ5QndjbVYyYVc5MWN5QndaWEpwYjJRZ1kyOXRjR0Z5YVhOdmJseHVJQ0FnSUNBZ0lDQnBaaUFvUW05dmJHVmhiaWgwYUdsekxuTjBZWFJsTG1OdmJYQmhjbVZYYVhSb0tTQW1KaUFoWTI5dGNHRnlaVTl3ZEdsdmJuTXVabWx1WkNnb2V5QjJZV3gxWlNCOUtTQTlQaUIyWVd4MVpTQTlQVDBnZEdocGN5NXpkR0YwWlM1amIyMXdZWEpsVjJsMGFDa3BJSHRjYmlBZ0lDQWdJQ0FnSUNCemRHRjBaVlZ3WkdGMFpTNWpiMjF3WVhKbFYybDBhQ0E5SUZCU1JWWkpUMVZUWDFCRlVrbFBSRjlXUVV4VlJUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9jM1JoZEdWVmNHUmhkR1VwTzF4dUlDQWdJQ0FnZlNsY2JpQWdJQ0FwTzF4dUlDQjlPMXh1WEc0Z0lIQjFZbXhwWXlCblpYUkRiMjF3WVhKbFQzQjBhVzl1Y3lBOUlDaDBhVzFsVW1GdVoyVTZJRlJwYldWU1lXNW5aU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR1JwWm1aRVlYbHpJRDBnVFdGMGFDNWpaV2xzS0hScGJXVlNZVzVuWlM1MGJ5NWthV1ptS0hScGJXVlNZVzVuWlM1bWNtOXRLU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQnRZWFJqYUVsdVpHVjRJRDBnUkVWR1FWVk1WRjlEVDAxUVFWSkZYMDlRVkVsUFRsTXVabWx1WkVsdVpHVjRLQ2g3SUhaaGJIVmxJSDBwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUdsdWRHVnlkbUZzU1c1TmN5QTlJSEpoYm1kbFZYUnBiQzVwYm5SbGNuWmhiRlJ2VFhNb2RtRnNkV1VwTzF4dUlDQWdJQ0FnY21WMGRYSnVJR2x1ZEdWeWRtRnNTVzVOY3lBK1BTQmthV1ptUkdGNWN6dGNiaUFnSUNCOUtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCYlhHNGdJQ0FnSUNCT1QxOURUMDFRUVZKRlgwOVFWRWxQVGl4Y2JpQWdJQ0FnSUZCU1JWWkpUMVZUWDFCRlVrbFBSRjlEVDAxUVFWSkZYMDlRVkVsUFRpeGNiaUFnSUNBZ0lDNHVMa1JGUmtGVlRGUmZRMDlOVUVGU1JWOVBVRlJKVDA1VExuTnNhV05sS0cxaGRHTm9TVzVrWlhncExtMWhjQ2dvZXlCc1lXSmxiQ3dnZG1Gc2RXVWdmU2tnUFQ0Z0tIc2diR0ZpWld3c0lIWmhiSFZsSUgwcEtTeGNiaUFnSUNCZE8xeHVJQ0I5TzF4dVhHNGdJSEIxWW14cFl5QnZia052YlhCaGNtVlhhWFJvUTJoaGJtZGxaQ0E5SUNoamIyMXdZWEpsVjJsMGFEb2djM1J5YVc1bktTQTlQaUI3WEc0Z0lDQWdhV1lnS0dOdmJYQmhjbVZYYVhSb0lEMDlQU0JPVDE5UVJWSkpUMFJmVmtGTVZVVXBJSHRjYmlBZ0lDQWdJSFJvYVhNdWIyNURiR1ZoY2tOdmJYQmhjbVVvS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lHTnZiWEJoY21WWGFYUm9JSDBwTzF4dUlDQWdJSDFjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYjI1RGJHVmhja052YlhCaGNtVWdQU0FvS1NBOVBpQjdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3SUdOdmJYQmhjbVZYYVhSb09pQjFibVJsWm1sdVpXUWdmU2s3WEc0Z0lIMDdYRzVjYmlBZ0x5OGdSMlYwSUdFZ2RHbHRaU0J6YUdsbWRHVmtJSEpsY1hWbGMzUWdkRzhnWTI5dGNHRnlaU0IzYVhSb0lIUm9aU0J3Y21sdFlYSjVJSEpsY1hWbGMzUXVYRzRnSUhCMVlteHBZeUJuWlhSRmVIUnlZVkYxWlhKcFpYTW9jbVZ4ZFdWemREb2dSR0YwWVZGMVpYSjVVbVZ4ZFdWemRDazZJRVY0ZEhKaFVYVmxjbmxFWlhOamNtbHdkRzl5VzEwZ2UxeHVJQ0FnSUdOdmJuTjBJR1Y0ZEhKaFVYVmxjbWxsY3pvZ1JYaDBjbUZSZFdWeWVVUmxjMk55YVhCMGIzSmJYU0E5SUZ0ZE8xeHVJQ0FnSUdOdmJuTjBJR052YlhCaGNtVlNZVzVuWlNBOUlIUm9hWE11WjJWMFEyOXRjR0Z5WlZScGJXVlNZVzVuWlNoeVpYRjFaWE4wTG5KaGJtZGxLVHRjYmlBZ0lDQnBaaUFvSVdOdmJYQmhjbVZTWVc1blpTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHVjRkSEpoVVhWbGNtbGxjenRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJ6SUQwZ2NtVnhkV1Z6ZEM1MFlYSm5aWFJ6TG1acGJIUmxjaWdvY1hWbGNuazZJRVJoZEdGUmRXVnllVVY0ZEdWdVpHVmtLU0E5UGlCeGRXVnllUzUwYVcxbFVtRnVaMlZEYjIxd1lYSmxJQ0U5UFNCbVlXeHpaU2s3WEc0Z0lDQWdhV1lnS0hSaGNtZGxkSE11YkdWdVozUm9LU0I3WEc0Z0lDQWdJQ0JsZUhSeVlWRjFaWEpwWlhNdWNIVnphQ2g3WEc0Z0lDQWdJQ0FnSUhKbGNUb2dlMXh1SUNBZ0lDQWdJQ0FnSUM0dUxuSmxjWFZsYzNRc1hHNGdJQ0FnSUNBZ0lDQWdkR0Z5WjJWMGN5eGNiaUFnSUNBZ0lDQWdJQ0J5WVc1blpUb2dZMjl0Y0dGeVpWSmhibWRsTEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQndjbTlqWlhOemIzSTZJSFJwYldWVGFHbG1kRUZzYVdkdWJXVnVkRkJ5YjJObGMzTnZjaXhjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1pYaDBjbUZSZFdWeWFXVnpPMXh1SUNCOVhHNWNiaUFnTHk4Z1ZHaGxJSEYxWlhKNUlISjFibTVsY2lCemFHOTFiR1FnY21WeWRXNGdkR2hsSUdOdmJYQmhjbWx6YjI0Z2NYVmxjbmtnYVdZZ2RHaGxJR052YlhCaGNtVlhhWFJvSUhaaGJIVmxJR2hoY3lCamFHRnVaMlZrSUdGdVpDQjBhR1Z5WlNCaGNtVWdjWFZsY21sbGN5QjBhR0YwSUdoaGRtVnVKM1FnYjNCMFpXUWdiM1YwSUc5bUlGUlhRMXh1SUNCd2RXSnNhV01nYzJodmRXeGtVbVZ5ZFc0b1hHNGdJQ0FnY0hKbGRqb2dVMk5sYm1WVWFXMWxVbUZ1WjJWRGIyMXdZWEpsVTNSaGRHVXNYRzRnSUNBZ2JtVjRkRG9nVTJObGJtVlVhVzFsVW1GdVoyVkRiMjF3WVhKbFUzUmhkR1VzWEc0Z0lDQWdjWFZsY21sbGN6b2dVMk5sYm1WRVlYUmhVWFZsY25sYlhWeHVJQ0FwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdjSEpsZGk1amIyMXdZWEpsVjJsMGFDQWhQVDBnYm1WNGRDNWpiMjF3WVhKbFYybDBhQ0FtSmlCeGRXVnlhV1Z6TG1acGJtUW9LSEYxWlhKNUtTQTlQaUJ4ZFdWeWVTNTBhVzFsVW1GdVoyVkRiMjF3WVhKbElDRTlQU0JtWVd4elpTa2dJVDA5SUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMFEyOXRjR0Z5WlZScGJXVlNZVzVuWlNoMGFXMWxVbUZ1WjJVNklGUnBiV1ZTWVc1blpTazZJRlJwYldWU1lXNW5aU0I4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnYkdWMElHTnZiWEJoY21WR2NtOXRPaUJFWVhSbFZHbHRaVHRjYmlBZ0lDQnNaWFFnWTI5dGNHRnlaVlJ2T2lCRVlYUmxWR2x0WlR0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TG5OMFlYUmxMbU52YlhCaGNtVlhhWFJvS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1emRHRjBaUzVqYjIxd1lYSmxWMmwwYUNBOVBUMGdVRkpGVmtsUFZWTmZVRVZTU1U5RVgxWkJURlZGS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdScFptWk5jeUE5SUhScGJXVlNZVzVuWlM1MGJ5NWthV1ptS0hScGJXVlNZVzVuWlM1bWNtOXRLVHRjYmlBZ0lDQWdJQ0FnWTI5dGNHRnlaVVp5YjIwZ1BTQmtZWFJsVkdsdFpTaDBhVzFsVW1GdVoyVXVabkp2YlNFcExuTjFZblJ5WVdOMEtHUnBabVpOY3lrN1hHNGdJQ0FnSUNBZ0lHTnZiWEJoY21WVWJ5QTlJR1JoZEdWVWFXMWxLSFJwYldWU1lXNW5aUzUwYnlFcExuTjFZblJ5WVdOMEtHUnBabVpOY3lrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCamIyMXdZWEpsUm5KdmJTQTlJR1JoZEdWVWFXMWxLSFJwYldWU1lXNW5aUzVtY205dElTa3VjM1ZpZEhKaFkzUW9jbUZ1WjJWVmRHbHNMbWx1ZEdWeWRtRnNWRzlOY3loMGFHbHpMbk4wWVhSbExtTnZiWEJoY21WWGFYUm9LU2s3WEc0Z0lDQWdJQ0FnSUdOdmJYQmhjbVZVYnlBOUlHUmhkR1ZVYVcxbEtIUnBiV1ZTWVc1blpTNTBieUVwTG5OMVluUnlZV04wS0hKaGJtZGxWWFJwYkM1cGJuUmxjblpoYkZSdlRYTW9kR2hwY3k1emRHRjBaUzVqYjIxd1lYSmxWMmwwYUNrcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUNBZ1puSnZiVG9nWTI5dGNHRnlaVVp5YjIwc1hHNGdJQ0FnSUNBZ0lIUnZPaUJqYjIxd1lYSmxWRzhzWEc0Z0lDQWdJQ0FnSUhKaGR6b2dlMXh1SUNBZ0lDQWdJQ0FnSUdaeWIyMDZJR052YlhCaGNtVkdjbTl0TEZ4dUlDQWdJQ0FnSUNBZ0lIUnZPaUJqYjIxd1lYSmxWRzhzWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCOU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMFZYSnNVM1JoZEdVb0tUb2dVMk5sYm1WUFltcGxZM1JWY214V1lXeDFaWE1nZTF4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQmpiMjF3WVhKbFYybDBhRG9nZEdocGN5NXpkR0YwWlM1amIyMXdZWEpsVjJsMGFDeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklIVndaR0YwWlVaeWIyMVZjbXdvZG1Gc2RXVnpPaUJUWTJWdVpVOWlhbVZqZEZWeWJGWmhiSFZsY3lrZ2UxeHVJQ0FnSUdsbUlDZ2hkbUZzZFdWekxtTnZiWEJoY21WWGFYUm9LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWTI5dGNHRnlaVmRwZEdnZ1BTQndZWEp6WlZWeWJGQmhjbUZ0S0haaGJIVmxjeTVqYjIxd1lYSmxWMmwwYUNrN1hHNWNiaUFnSUNCcFppQW9ZMjl0Y0dGeVpWZHBkR2dwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR052YlhCaGNtVlBjSFJwYjI1eklEMGdkR2hwY3k1blpYUkRiMjF3WVhKbFQzQjBhVzl1Y3loelkyVnVaVWR5WVhCb0xtZGxkRlJwYldWU1lXNW5aU2gwYUdsektTNXpkR0YwWlM1MllXeDFaU2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaGpiMjF3WVhKbFQzQjBhVzl1Y3k1bWFXNWtLQ2g3SUhaaGJIVmxJSDBwSUQwK0lIWmhiSFZsSUQwOVBTQmpiMjF3WVhKbFYybDBhQ2twSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXRjR0Z5WlZkcGRHZ3NYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQWdJQ0FnWTI5dGNHRnlaVmRwZEdnNklDZGZYM0J5WlhacGIzVnpVR1Z5YVc5a0p5eGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzVjYmk4dklGQnliMk5sYzNOdmNpQm1kVzVqZEdsdmJpQm1iM0lnZFhObElIZHBkR2dnZEdsdFpTQnphR2xtZEdWa0lHTnZiWEJoY21semIyNGdjMlZ5YVdWekxseHVMeThnVkdocGN5QmhiR2xuYm5NZ2RHaGxJSE5sWTI5dVpHRnllU0J6WlhKcFpYTWdkMmwwYUNCMGFHVWdjSEpwYldGeWVTQmhibVFnWVdSa2N5QmpkWE4wYjIxY2JpOHZJRzFsZEdGa1lYUmhJR0Z1WkNCamIyNW1hV2NnZEc4Z2RHaGxJSE5sWTI5dVpHRnllU0J6WlhKcFpYTW5JR1pwWld4a2N5QnpieUIwYUdGMElHbDBJR2x6WEc0dkx5QnlaVzVrWlhKbFpDQmhjSEJ5YjNCeWFXRjBaV3g1TGx4dVkyOXVjM1FnZEdsdFpWTm9hV1owUVd4cFoyNXRaVzUwVUhKdlkyVnpjMjl5T2lCRmVIUnlZVkYxWlhKNVJHRjBZVkJ5YjJObGMzTnZjaUE5SUNod2NtbHRZWEo1TENCelpXTnZibVJoY25rcElEMCtJSHRjYmlBZ1kyOXVjM1FnWkdsbVppQTlJSE5sWTI5dVpHRnllUzUwYVcxbFVtRnVaMlV1Wm5KdmJTNWthV1ptS0hCeWFXMWhjbmt1ZEdsdFpWSmhibWRsTG1aeWIyMHBPMXh1SUNCelpXTnZibVJoY25rdWMyVnlhV1Z6TG1admNrVmhZMmdvS0hObGNtbGxjeWtnUFQ0Z2UxeHVJQ0FnSUhObGNtbGxjeTV5WldaSlpDQTlJR2RsZEVOdmJYQmhjbVZUWlhKcFpYTlNaV1pKWkNoelpYSnBaWE11Y21WbVNXUWdmSHdnSnljcE8xeHVJQ0FnSUhObGNtbGxjeTV0WlhSaElEMGdlMXh1SUNBZ0lDQWdMaTR1YzJWeWFXVnpMbTFsZEdFc1hHNGdJQ0FnSUNBdkx5QkFkSE10YVdkdWIzSmxJRkpsYlc5MlpTQjNhR1Z1SUdoMGRIQnpPaTh2WjJsMGFIVmlMbU52YlM5bmNtRm1ZVzVoTDJkeVlXWmhibUV2Y0hWc2JDODNNVEV5T1NCcGN5QnlaV3hsWVhObFpGeHVJQ0FnSUNBZ2RHbHRaVU52YlhCaGNtVTZJSHRjYmlBZ0lDQWdJQ0FnWkdsbVprMXpPaUJrYVdabUxGeHVJQ0FnSUNBZ0lDQnBjMVJwYldWVGFHbG1kRkYxWlhKNU9pQjBjblZsTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0I5TzF4dUlDQWdJSE5sY21sbGN5NW1hV1ZzWkhNdVptOXlSV0ZqYUNnb1ptbGxiR1FwSUQwK0lIdGNiaUFnSUNBZ0lDOHZJRUZzYVdkdUlHTnZiWEJoY21VZ2MyVnlhV1Z6SUhScGJXVWdjM1JoYlhCeklIZHBkR2dnY21WbVpYSmxibU5sSUhObGNtbGxjMXh1SUNBZ0lDQWdhV1lnS0dacFpXeGtMblI1Y0dVZ1BUMDlJRVpwWld4a1ZIbHdaUzUwYVcxbEtTQjdYRzRnSUNBZ0lDQWdJR1pwWld4a0xuWmhiSFZsY3lBOUlHWnBaV3hrTG5aaGJIVmxjeTV0WVhBb0tIWXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHbG1aaUE4SURBZ1B5QjJJQzBnWkdsbVppQTZJSFlnS3lCa2FXWm1PMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1ptbGxiR1F1WTI5dVptbG5JRDBnZTF4dUlDQWdJQ0FnSUNBdUxpNW1hV1ZzWkM1amIyNW1hV2NzWEc0Z0lDQWdJQ0FnSUdOdmJHOXlPaUI3WEc0Z0lDQWdJQ0FnSUNBZ2JXOWtaVG9nSjJacGVHVmtKeXhjYmlBZ0lDQWdJQ0FnSUNCbWFYaGxaRU52Ykc5eU9pQmpiMjVtYVdjdWRHaGxiV1V1Y0dGc1pYUjBaUzVuY21GNU5qQXNYRzRnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0I5TzF4dUlDQWdJQ0FnY21WMGRYSnVJR1pwWld4a08xeHVJQ0FnSUgwcE8xeHVJQ0I5S1R0Y2JpQWdjbVYwZFhKdUlHOW1LSE5sWTI5dVpHRnllU2s3WEc1OU8xeHVYRzVtZFc1amRHbHZiaUJUWTJWdVpWUnBiV1ZTWVc1blpVTnZiWEJoY21WU1pXNWtaWEpsY2loN0lHMXZaR1ZzSUgwNklGTmpaVzVsUTI5dGNHOXVaVzUwVUhKdmNITThVMk5sYm1WVWFXMWxVbUZ1WjJWRGIyMXdZWEpsUGlrZ2UxeHVJQ0JqYjI1emRDQnpkSGxzWlhNZ1BTQjFjMlZUZEhsc1pYTXlLR2RsZEZOMGVXeGxjeWs3WEc0Z0lHTnZibk4wSUhzZ1kyOXRjR0Z5WlZkcGRHZ3NJR052YlhCaGNtVlBjSFJwYjI1eklIMGdQU0J0YjJSbGJDNTFjMlZUZEdGMFpTZ3BPMXh1WEc0Z0lHTnZibk4wSUZ0d2NtVjJhVzkxYzBOdmJYQmhjbVVzSUhObGRGQnlaWFpwYjNWelEyOXRjR0Z5WlYwZ1BTQlNaV0ZqZEM1MWMyVlRkR0YwWlNoamIyMXdZWEpsVjJsMGFDazdYRzRnSUdOdmJuTjBJSEJ5WlhacGIzVnpWbUZzZFdVZ1BTQmpiMjF3WVhKbFQzQjBhVzl1Y3k1bWFXNWtLQ2g3SUhaaGJIVmxJSDBwSUQwK0lIWmhiSFZsSUQwOVBTQndjbVYyYVc5MWMwTnZiWEJoY21VcElEOC9JRkJTUlZaSlQxVlRYMUJGVWtsUFJGOURUMDFRUVZKRlgwOVFWRWxQVGp0Y2JseHVJQ0JqYjI1emRDQjJZV3gxWlNBOUlHTnZiWEJoY21WUGNIUnBiMjV6TG1acGJtUW9LSHNnZG1Gc2RXVWdmU2tnUFQ0Z2RtRnNkV1VnUFQwOUlHTnZiWEJoY21WWGFYUm9LVHRjYmlBZ1kyOXVjM1FnWlc1aFlteGxaQ0E5SUVKdmIyeGxZVzRvZG1Gc2RXVXBPMXh1WEc0Z0lHTnZibk4wSUc5dVEyeHBZMnNnUFNBb0tTQTlQaUI3WEc0Z0lDQWdhV1lnS0dWdVlXSnNaV1FwSUh0Y2JpQWdJQ0FnSUhObGRGQnlaWFpwYjNWelEyOXRjR0Z5WlNoamIyMXdZWEpsVjJsMGFDazdYRzRnSUNBZ0lDQnRiMlJsYkM1dmJrTnNaV0Z5UTI5dGNHRnlaU2dwTzF4dUlDQWdJSDBnWld4elpTQnBaaUFvSVdWdVlXSnNaV1FwSUh0Y2JpQWdJQ0FnSUcxdlpHVnNMbTl1UTI5dGNHRnlaVmRwZEdoRGFHRnVaMlZrS0hCeVpYWnBiM1Z6Vm1Gc2RXVXVkbUZzZFdVcE8xeHVJQ0FnSUgxY2JpQWdmVHRjYmx4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUR4Q2RYUjBiMjVIY205MWNENWNiaUFnSUNBZ0lEeFViMjlzWW1GeVFuVjBkRzl1WEc0Z0lDQWdJQ0FnSUhaaGNtbGhiblE5WENKallXNTJZWE5jSWx4dUlDQWdJQ0FnSUNCMGIyOXNkR2x3UFZ3aVJXNWhZbXhsSUhScGJXVWdabkpoYldVZ1kyOXRjR0Z5YVhOdmJsd2lYRzRnSUNBZ0lDQWdJRzl1UTJ4cFkyczlleWhsS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnWlM1emRHOXdVSEp2Y0dGbllYUnBiMjRvS1R0Y2JpQWdJQ0FnSUNBZ0lDQmxMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzRnSUNBZ0lDQWdJQ0FnYjI1RGJHbGpheWdwTzF4dUlDQWdJQ0FnSUNCOWZWeHVJQ0FnSUNBZ1BseHVJQ0FnSUNBZ0lDQThRMmhsWTJ0aWIzZ2diR0ZpWld3OVhDSWdYQ0lnZG1Gc2RXVTllMlZ1WVdKc1pXUjlJRzl1UTJ4cFkyczllMjl1UTJ4cFkydDlJQzgrWEc0Z0lDQWdJQ0FnSUVOdmJYQmhjbWx6YjI1Y2JpQWdJQ0FnSUR3dlZHOXZiR0poY2tKMWRIUnZiajVjYmx4dUlDQWdJQ0FnZTJWdVlXSnNaV1FnUHlBb1hHNGdJQ0FnSUNBZ0lEeENkWFIwYjI1VFpXeGxZM1JjYmlBZ0lDQWdJQ0FnSUNCMllYSnBZVzUwUFZ3aVkyRnVkbUZ6WENKY2JpQWdJQ0FnSUNBZ0lDQjJZV3gxWlQxN2RtRnNkV1Y5WEc0Z0lDQWdJQ0FnSUNBZ2IzQjBhVzl1Y3oxN1kyOXRjR0Z5WlU5d2RHbHZibk45WEc0Z0lDQWdJQ0FnSUNBZ2IyNURhR0Z1WjJVOWV5aDJLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0YjJSbGJDNXZia052YlhCaGNtVlhhWFJvUTJoaGJtZGxaQ2gyTG5aaGJIVmxJU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZYMWNiaUFnSUNBZ0lDQWdMejVjYmlBZ0lDQWdJQ2tnT2lBb1hHNGdJQ0FnSUNBZ0lEeFViMjlzWW1GeVFuVjBkRzl1SUdOc1lYTnpUbUZ0WlQxN2MzUjViR1Z6TG5CeVpYWnBaWGRDZFhSMGIyNTlJR1JwYzJGaWJHVmtJSFpoY21saGJuUTlYQ0pqWVc1MllYTmNJaUJwYzA5d1pXNDllMlpoYkhObGZUNWNiaUFnSUNBZ0lDQWdJQ0I3Y0hKbGRtbHZkWE5XWVd4MVpTNXNZV0psYkgxY2JpQWdJQ0FnSUNBZ1BDOVViMjlzWW1GeVFuVjBkRzl1UGx4dUlDQWdJQ0FnS1gxY2JpQWdJQ0E4TDBKMWRIUnZia2R5YjNWd1BseHVJQ0FwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJuWlhSVGRIbHNaWE1vZEdobGJXVTZJRWR5WVdaaGJtRlVhR1Z0WlRJcElIdGNiaUFnY21WMGRYSnVJSHRjYmlBZ0lDQndjbVYyYVdWM1FuVjBkRzl1T2lCamMzTW9lMXh1SUNBZ0lDQWdKeVk2WkdsellXSnNaV1FuT2lCN1hHNGdJQ0FnSUNBZ0lHSnZjbVJsY2pvZ1lERndlQ0J6YjJ4cFpDQWtlM1JvWlcxbExtTnZiRzl5Y3k1elpXTnZibVJoY25rdVltOXlaR1Z5ZldBc1hHNGdJQ0FnSUNBZ0lHTnZiRzl5T2lCMGFHVnRaUzVqYjJ4dmNuTXVkR1Y0ZEM1a2FYTmhZbXhsWkN4Y2JpQWdJQ0FnSUNBZ2IzQmhZMmwwZVRvZ01TeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ2ZTa3NYRzRnSUgwN1hHNTlYRzRpWFN3aWJtRnRaWE1pT2xzaWRtRnNkV1VpWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UVVGdlFrRXNUVUZCVFN4eFFrRkJkMElzUjBGQlFTeHJRa0ZCUVN4RFFVRkJPMEZCUXpsQ0xFMUJRVTBzWlVGQmEwSXNSMEZCUVN4WlFVRkJMRU5CUVVFN1FVRkZha0lzVFVGQlRTdzRRa0ZCYVVNc1IwRkJRVHRCUVVGQkxFVkJRelZETEV0QlFVOHNSVUZCUVN4cFFrRkJRVHRCUVVGQkxFVkJRMUFzUzBGQlR5eEZRVUZCTEhGQ1FVRkJPMEZCUTFRc1JVRkJRVHRCUVVWUExFMUJRVTBzYVVKQlFXOUNMRWRCUVVFN1FVRkJRU3hGUVVNdlFpeExRVUZQTEVWQlFVRXNaVUZCUVR0QlFVRkJMRVZCUTFBc1MwRkJUeXhGUVVGQkxHVkJRVUU3UVVGRFZDeEZRVUZCTzBGQlJVOHNUVUZCVFN4MVFrRkJNRUlzUjBGQlFUdEJRVUZCTEVWQlEzSkRMRVZCUVVVc1MwRkJRU3hGUVVGUExGbEJRV01zUlVGQlFTeExRVUZCTEVWQlFVOHNTMEZCVFN4RlFVRkJPMEZCUVVFc1JVRkRjRU1zUlVGQlJTeExRVUZCTEVWQlFVOHNZVUZCWlN4RlFVRkJMRXRCUVVFc1JVRkJUeXhKUVVGTExFVkJRVUU3UVVGQlFTeEZRVU53UXl4RlFVRkZMRXRCUVVFc1JVRkJUeXhqUVVGblFpeEZRVUZCTEV0QlFVRXNSVUZCVHl4SlFVRkxMRVZCUVVFN1FVRkRka01zUlVGQlFUdEJRVVZQTEUxQlFVMHNPRUpCUTBnc1pVRkZWaXhEUVVGQk8wRkJRVUVzUlVGSlV5eFpRVUZaTEV0QlFUUkRMRVZCUVVFN1FVRkROMFFzU1VGQlRTeExRVUZCTEVOQlFVRXNZMEZCUVN4RFFVRkJMRVZCUVVVc1kwRkJaMElzUlVGQlFTeDFRa0ZCUVN4RlFVRkJMRVZCUVRSQ0xFdEJRVThzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZJTjBRc1NVRkJWU3hKUVVGQkxFTkJRVUVzVVVGQlFTeEhRVUZYTEVsQlFVa3NkMEpCUVhsQ0xFTkJRVUVzU1VGQlFTeEZRVUZOTEVWQlFVVXNTVUZCVFN4RlFVRkJMRU5CUVVNc1lVRkJZU3hEUVVGQkxFVkJRVWNzUTBGQlFTeERRVUZCTzBGQlQycEdMRWxCUVVFc1NVRkJRU3hEUVVGUkxHTkJRV01zVFVGQlRUdEJRVU14UWl4TlFVRk5MRTFCUVVFc1kwRkJRU3hIUVVGcFFpeFZRVUZYTEVOQlFVRXNXVUZCUVN4RFFVRmhMRWxCUVVrc1EwRkJRU3hEUVVGQk8wRkJRMjVFTEUxQlFVc3NTVUZCUVN4RFFVRkJMRkZCUVVFc1EwRkJVeXhGUVVGRkxHTkJRV2RDTEVWQlFVRXNTVUZCUVN4RFFVRkxMR3RDUVVGclFpeGpRVUZsTEVOQlFVRXNTMEZCUVN4RFFVRk5MRXRCUVVzc1EwRkJRU3hGUVVGSExFTkJRVUVzUTBGQlFUdEJRVVZ3Uml4TlFVRkJMRWxCUVVFc1EwRkJTeXhMUVVGTkxFTkJRVUVzUjBGQlFUdEJRVUZCTEZGQlExUXNZMEZCUVN4RFFVRmxMR2RDUVVGcFFpeERRVUZCTEVOQlFVTXNVMEZCWXl4TFFVRkJPMEZCUXpkRExGVkJRVUVzVFVGQlRTeGpRVUZwUWl4SFFVRkJMRWxCUVVFc1EwRkJTeXhwUWtGQmEwSXNRMEZCUVN4VFFVRkJMRU5CUVZVc1MwRkJTeXhEUVVGQkxFTkJRVUU3UVVGRE4wUXNWVUZCVFN4TlFVRkJMRmRCUVVFc1IwRkJiVVFzUlVGQlJTeGpRVUZsTEVWQlFVRXNRMEZCUVR0QlFVY3hSU3hWUVVGQkxFbEJRVWtzVVVGQlVTeEpRVUZMTEVOQlFVRXNTMEZCUVN4RFFVRk5MRmRCUVZjc1EwRkJRU3hKUVVGTExFTkJRVU1zWTBGQlpTeERRVUZCTEVsQlFVRXNRMEZCU3l4RFFVRkRMRVZCUVVVc1QwRkJXU3hMUVVGQkxFdEJRVUVzUzBGQlZTeEpRVUZMTEVOQlFVRXNTMEZCUVN4RFFVRk5MRmRCUVZjc1EwRkJSeXhGUVVGQk8wRkJRelZITEZsQlFVRXNWMEZCUVN4RFFVRlpMRmRCUVdNc1IwRkJRU3h4UWtGQlFTeERRVUZCTzBGQlFVRXNWMEZETlVJN1FVRkZRU3hWUVVGQkxFbEJRVUVzUTBGQlN5eFRRVUZUTEZkQlFWY3NRMEZCUVN4RFFVRkJPMEZCUVVFc1UwRkRNVUlzUTBGQlFUdEJRVUZCTEU5QlEwZ3NRMEZCUVR0QlFVRkJMRXRCUTBZc1EwRkJRVHRCUVVWQkxFbEJRVThzU1VGQlFTeERRVUZCTEdsQ1FVRkJMRWRCUVc5Q0xFTkJRVU1zVTBGQmVVSXNTMEZCUVR0QlFVTnVSQ3hOUVVGTkxFMUJRVUVzVVVGQlFTeEhRVUZYTEV0QlFVc3NTVUZCU3l4RFFVRkJMRk5CUVVFc1EwRkJWU3hIUVVGSExFbEJRVXNzUTBGQlFTeFRRVUZCTEVOQlFWVXNTVUZCU1N4RFFVRkRMRU5CUVVFc1EwRkJRVHRCUVVVMVJDeE5RVUZCTEUxQlFVMHNZVUZCWVN4MVFrRkJkMElzUTBGQlFTeFRRVUZCTEVOQlFWVXNRMEZCUXl4RlFVRkZMRTlCUVZrc1MwRkJRVHRCUVVOc1JTeFJRVUZOTEUxQlFVRXNXVUZCUVN4SFFVRmxMRk5CUVZVc1EwRkJRU3haUVVGQkxFTkJRV0VzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZEYWtRc1VVRkJRU3hQUVVGUExGbEJRV2RDTEVsQlFVRXNVVUZCUVN4RFFVRkJPMEZCUVVFc1QwRkRlRUlzUTBGQlFTeERRVUZCTzBGQlJVUXNUVUZCVHl4UFFVRkJPMEZCUVVFc1VVRkRUQ3hwUWtGQlFUdEJRVUZCTEZGQlEwRXNPRUpCUVVFN1FVRkJRU3hSUVVOQkxFZEJRVWNzZFVKQlFVRXNRMEZCZDBJc1MwRkJUU3hEUVVGQkxGVkJRVlVzUlVGQlJTeEhRVUZKTEVOQlFVRXNRMEZCUXl4RlFVRkZMRXRCUVVFc1JVRkJUeXhMUVVGTkxFVkJRVUVzVFVGQlR5eEZRVUZGTEV0QlFVRXNSVUZCVHl4UFFVRlJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFOUJRek5HTEVOQlFVRTdRVUZCUVN4TFFVTkdMRU5CUVVFN1FVRkZRU3hKUVVGUExFbEJRVUVzUTBGQlFTeHZRa0ZCUVN4SFFVRjFRaXhEUVVGRExGZEJRWGRDTEV0QlFVRTdRVUZEY2tRc1RVRkJRU3hKUVVGSkxHZENRVUZuUWl4bFFVRnBRaXhGUVVGQk8wRkJRMjVETEZGQlFVRXNTVUZCUVN4RFFVRkxMR05CUVdVc1JVRkJRU3hEUVVGQk8wRkJRVUVzVDBGRFppeE5RVUZCTzBGQlEwd3NVVUZCU3l4SlFVRkJMRU5CUVVFc1VVRkJRU3hEUVVGVExFVkJRVVVzVjBGQlFTeEZRVUZoTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUXk5Q08wRkJRVUVzUzBGRFJpeERRVUZCTzBGQlJVRXNTVUZCUVN4SlFVRkJMRU5CUVU4c2FVSkJRV2xDTEUxQlFVMDdRVUZETlVJc1RVRkJRU3hKUVVGQkxFTkJRVXNzVVVGQlV5eERRVUZCTEVWQlFVVXNWMEZCWVN4RlFVRkJMRXRCUVVFc1EwRkJRU3hGUVVGWExFTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlF6RkRMRU5CUVVFN1FVRXZRMFVzU1VGQlN5eEpRVUZCTEVOQlFVRXNiMEpCUVVFc1EwRkJjVUlzUzBGQlN5eFhRVUZYTEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUXpWRE8wRkJRVUVzUlVGcFJFOHNaMEpCUVdkQ0xFOUJRVzFFTEVWQlFVRTdRVUZEZUVVc1NVRkJRU3hOUVVGTkxHVkJRWFZETEVWQlFVTXNRMEZCUVR0QlFVTTVReXhKUVVGQkxFMUJRVTBzV1VGQlpTeEhRVUZCTEVsQlFVRXNRMEZCU3l4dFFrRkJiMElzUTBGQlFTeFBRVUZCTEVOQlFWRXNTMEZCU3l4RFFVRkJMRU5CUVVFN1FVRkRNMFFzU1VGQlFTeEpRVUZKTEVOQlFVTXNXVUZCWXl4RlFVRkJPMEZCUTJwQ0xFMUJRVThzVDBGQlFTeFpRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlVPMEZCUlVFc1NVRkJUU3hOUVVGQkxFOUJRVUVzUjBGQlZTeFJRVUZSTEU5QlFWRXNRMEZCUVN4TlFVRkJMRU5CUVU4c1EwRkJReXhMUVVFMlFpeExRVUZCTEV0QlFVRXNRMEZCVFN4eFFrRkJjVUlzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZEY2tjc1NVRkJRU3hKUVVGSkxGRkJRVkVzVFVGQlVTeEZRVUZCTzBGQlEyeENMRTFCUVVFc1dVRkJRU3hEUVVGaExFbEJRVXNzUTBGQlFUdEJRVUZCTEZGQlEyaENMRWRCUVVFc1JVRkJTeXhwUTBGRFFTeFBRVVJCTEVOQlFVRXNSVUZCUVR0QlFVRkJMRlZCUlVnc1QwRkJRVHRCUVVGQkxGVkJRMEVzUzBGQlR5eEZRVUZCTEZsQlFVRTdRVUZCUVN4VFFVTlVMRU5CUVVFN1FVRkJRU3hSUVVOQkxGTkJRVmNzUlVGQlFTd3lRa0ZCUVR0QlFVRkJMRTlCUTFvc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFNEdEJRVU5CTEVsQlFVOHNUMEZCUVN4WlFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOVU8wRkJRVUVzUlVGSFR5eFhRVUZCTEVOQlEwd3NTVUZEUVN4RlFVRkJMRWxCUVVFc1JVRkRRU3hQUVVOVExFVkJRVUU3UVVGRFZDeEpRVU5GTEU5QlFVRXNTVUZCUVN4RFFVRkxMRmRCUVdkQ0xFdEJRVUVzU1VGQlFTeERRVUZMTEZkQlFXVXNTVUZCUVN4UFFVRkJMRU5CUVZFc1NVRkJTeXhEUVVGQkxFTkJRVU1zUzBGQlZTeExRVUZCTEV0QlFVRXNRMEZCVFN4blFrRkJjVUlzUzBGQlFTeExRVUZMTEVOQlFVMHNTMEZCUVN4TFFVRkJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFZEJSVE5ITzBGQlFVRXNSVUZGVHl4dlFrRkJiMElzVTBGQk5rTXNSVUZCUVR0QlFVTjBSU3hKUVVGSkxFbEJRVUVzVjBGQlFTeERRVUZCTzBGQlEwb3NTVUZCU1N4SlFVRkJMRk5CUVVFc1EwRkJRVHRCUVVWS0xFbEJRVWtzU1VGQlFTeEpRVUZCTEVOQlFVc3NUVUZCVFN4WFFVRmhMRVZCUVVFN1FVRkRNVUlzVFVGQlNTeEpRVUZCTEVsQlFVRXNRMEZCU3l4TFFVRk5MRU5CUVVFc1YwRkJRU3hMUVVGblFpeHhRa0ZCZFVJc1JVRkJRVHRCUVVOd1JDeFJRVUZCTEUxQlFVMHNUVUZCVXl4SFFVRkJMRk5CUVVFc1EwRkJWU3hGUVVGSExFTkJRVUVzU1VGQlFTeERRVUZMTEZWQlFWVXNTVUZCU1N4RFFVRkJMRU5CUVVFN1FVRkRMME1zVVVGQlFTeFhRVUZCTEVkQlFXTXNVVUZCVXl4RFFVRkJMRk5CUVVFc1EwRkJWU3hKUVVGTExFTkJRVUVzUTBGQlJTeFRRVUZUTEUxQlFVMHNRMEZCUVN4RFFVRkJPMEZCUTNaRUxGRkJRVUVzVTBGQlFTeEhRVUZaTEZGQlFWTXNRMEZCUVN4VFFVRkJMRU5CUVZVc1JVRkJSeXhEUVVGQkxFTkJRVVVzVTBGQlV5eE5RVUZOTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUXpsRExFMUJRVUU3UVVGRFRDeFJRVUZqTEZkQlFVRXNSMEZCUVN4UlFVRkJMRU5CUVZNc1UwRkJWU3hEUVVGQkxFbEJRVXNzUTBGQlJTeERRVUZCTEZGQlFVRXNRMEZCVXl4VlFVRlZMRmxCUVdFc1EwRkJRU3hKUVVGQkxFTkJRVXNzUzBGQlRTeERRVUZCTEZkQlFWY3NRMEZCUXl4RFFVRkJMRU5CUVVFN1FVRkRMMFlzVVVGQldTeFRRVUZCTEVkQlFVRXNVVUZCUVN4RFFVRlRMRk5CUVZVc1EwRkJRU3hGUVVGSExFTkJRVVVzUTBGQlFTeFJRVUZCTEVOQlFWTXNWVUZCVlN4WlFVRmhMRU5CUVVFc1NVRkJRU3hEUVVGTExFdEJRVTBzUTBGQlFTeFhRVUZYTEVOQlFVTXNRMEZCUVN4RFFVRkJPMEZCUVVFc1QwRkROMFk3UVVGRFFTeE5RVUZQTEU5QlFVRTdRVUZCUVN4UlFVTk1MRWxCUVUwc1JVRkJRU3hYUVVGQk8wRkJRVUVzVVVGRFRpeEZRVUZKTEVWQlFVRXNVMEZCUVR0QlFVRkJMRkZCUTBvc1IwRkJTeXhGUVVGQk8wRkJRVUVzVlVGRFNDeEpRVUZOTEVWQlFVRXNWMEZCUVR0QlFVRkJMRlZCUTA0c1JVRkJTU3hGUVVGQkxGTkJRVUU3UVVGQlFTeFRRVU5PTzBGQlFVRXNUMEZEUml4RFFVRkJPMEZCUVVFc1MwRkRSanRCUVVWQkxFbEJRVThzVDBGQlFTeExRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTFRN1FVRkJRU3hGUVVWUExGZEJRVzlETEVkQlFVRTdRVUZEZWtNc1NVRkJUeXhQUVVGQk8wRkJRVUVzVFVGRFRDeFhRVUZCTEVWQlFXRXNTMEZCU3l4TFFVRk5MRU5CUVVFc1YwRkJRVHRCUVVGQkxFdEJRekZDTEVOQlFVRTdRVUZCUVN4SFFVTkdPMEZCUVVFc1JVRkZUeXhqUVVGakxFMUJRVGhDTEVWQlFVRTdRVUZEYWtRc1NVRkJTU3hKUVVGQkxFTkJRVU1zVDBGQlR5eFhRVUZoTEVWQlFVRTdRVUZEZGtJc1RVRkJRU3hQUVVGQk8wRkJRVUVzUzBGRFJqdEJRVVZCTEVsQlFVMHNUVUZCUVN4WFFVRkJMRWRCUVdNc1lVRkJZeXhEUVVGQkxFMUJRVUVzUTBGQlR5eFhRVUZYTEVOQlFVRXNRMEZCUVR0QlFVVndSQ3hKUVVGQkxFbEJRVWtzVjBGQllTeEZRVUZCTzBGQlEyWXNUVUZCVFN4TlFVRkJMR05CUVVFc1IwRkJhVUlzUzBGQlN5eHBRa0ZCYTBJc1EwRkJRU3hWUVVGQkxFTkJRVmNzWVVGQllTeEpRVUZKTEVOQlFVRXNRMEZCUlN4TlFVRk5MRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJSWFpHTEUxQlFVa3NTVUZCUVN4alFVRkJMRU5CUVdVc1MwRkJTeXhEUVVGRExFVkJRVVVzVDBGQldTeExRVUZCTEV0QlFVRXNTMEZCVlN4WFFVRlhMRU5CUVVjc1JVRkJRVHRCUVVNM1JDeFJRVUZCTEVsQlFVRXNRMEZCU3l4UlFVRlRMRU5CUVVFN1FVRkJRU3hWUVVOYUxGZEJRVUU3UVVGQlFTeFRRVU5FTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTBrc1RVRkJRVHRCUVVOTUxGRkJRVUVzU1VGQlFTeERRVUZMTEZGQlFWTXNRMEZCUVR0QlFVRkJMRlZCUTFvc1YwRkJZU3hGUVVGQkxHdENRVUZCTzBGQlFVRXNVMEZEWkN4RFFVRkJMRU5CUVVFN1FVRkJRU3hQUVVOSU8wRkJRVUVzUzBGRFJqdEJRVUZCTEVkQlEwWTdRVUZEUml4RFFVRkJPMEZCYUVwaExIRkNRVUZCTEVOQlNVb3NVMEZCV1N4SFFVRkJMRFpDUVVGQkxFTkJRVUU3UVVGclNuSkNMRTFCUVUwc01rSkJRVUVzUjBGQmRVUXNRMEZCUXl4UFFVRkJMRVZCUVZNc1UwRkJZeXhMUVVGQk8wRkJRMjVHTEVWQlFVRXNUVUZCVFN4UFFVRlBMRk5CUVZVc1EwRkJRU3hUUVVGQkxFTkJRVlVzUzBGQlN5eEpRVUZMTEVOQlFVRXNUMEZCUVN4RFFVRlJMRlZCUVZVc1NVRkJTU3hEUVVGQkxFTkJRVUU3UVVGRGFrVXNSVUZCVlN4VFFVRkJMRU5CUVVFc1RVRkJRU3hEUVVGUExFOUJRVkVzUTBGQlFTeERRVUZETEUxQlFWY3NTMEZCUVR0QlFVTnVReXhKUVVGQkxFMUJRVUVzUTBGQlR5eExRVUZSTEVkQlFVRXNjVUpCUVVFc1EwRkJjMElzVFVGQlR5eERRVUZCTEV0QlFVRXNTVUZCVXl4RlFVRkZMRU5CUVVFc1EwRkJRVHRCUVVOMlJDeEpRVUZQTEUxQlFVRXNRMEZCUVN4SlFVRkJMRWRCUVU4c1lVRkRWQ3hEUVVGQkxHTkJRVUVzUTBGQlFTeEZRVUZCTEVWQlFVRXNUVUZCUVN4RFFVRlBMRWxCUkVVc1EwRkJRU3hGUVVGQk8wRkJRVUVzVFVGSFdpeFhRVUZoTEVWQlFVRTdRVUZCUVN4UlFVTllMRTFCUVZFc1JVRkJRU3hKUVVGQk8wRkJRVUVzVVVGRFVpeG5Ra0ZCYTBJc1JVRkJRU3hKUVVGQk8wRkJRVUVzVDBGRGNFSTdRVUZCUVN4TFFVTkdMRU5CUVVFc1EwRkJRVHRCUVVOQkxFbEJRVThzVFVGQlFTeERRVUZCTEUxQlFVRXNRMEZCVHl4UFFVRlJMRU5CUVVFc1EwRkJReXhMUVVGVkxFdEJRVUU3UVVGRkwwSXNUVUZCU1N4SlFVRkJMRXRCUVVFc1EwRkJUU3hKUVVGVExFdEJRVUVzVTBGQlFTeERRVUZWTEVsQlFVMHNSVUZCUVR0QlFVTnFReXhSUVVGQkxFdEJRVUVzUTBGQlRTeE5RVUZUTEVkQlFVRXNTMEZCUVN4RFFVRk5MRTFCUVU4c1EwRkJRU3hIUVVGQkxFTkJRVWtzUTBGQlF5eERRVUZOTEV0QlFVRTdRVUZEY2tNc1ZVRkJRU3hQUVVGUExFbEJRVThzUjBGQlFTeERRVUZCTEVkQlFVa3NRMEZCU1N4SFFVRkJMRWxCUVVFc1IwRkJUeXhEUVVGSkxFZEJRVUVzU1VGQlFTeERRVUZCTzBGQlFVRXNVMEZEYkVNc1EwRkJRU3hEUVVGQk8wRkJRVUVzVDBGRFNEdEJRVVZCTEUxQlFVMHNTMEZCUVN4RFFVRkJMRTFCUVVFc1IwRkJVeXhoUVVOV0xFTkJRVUVzWTBGQlFTeERRVUZCTEVWQlFVRXNSVUZCUVN4TFFVRkJMRU5CUVUwc1RVRkVTU3hEUVVGQkxFVkJRVUU3UVVGQlFTeFJRVVZpTEV0QlFVOHNSVUZCUVR0QlFVRkJMRlZCUTB3c1NVRkJUU3hGUVVGQkxFOUJRVUU3UVVGQlFTeFZRVU5PTEZWQlFVRXNSVUZCV1N4TlFVRlBMRU5CUVVFc1MwRkJRU3hEUVVGTkxFOUJRVkVzUTBGQlFTeE5RVUZCTzBGQlFVRXNVMEZEYmtNN1FVRkJRU3hQUVVOR0xFTkJRVUVzUTBGQlFUdEJRVU5CTEUxQlFVOHNUMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOU0xFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEwWXNRMEZCUVN4RFFVRkJPMEZCUTBRc1JVRkJRU3hQUVVGUExFZEJRVWNzVTBGQlV5eERRVUZCTEVOQlFVRTdRVUZEY2tJc1EwRkJRU3hEUVVGQk8wRkJSVUVzVTBGQlV5dzJRa0ZCUVN4RFFVRTRRaXhGUVVGRkxFdEJRVUVzUlVGQmNVUXNSVUZCUVR0QlFUbE9PVVlzUlVGQlFTeEpRVUZCTEVWQlFVRXNRMEZCUVR0QlFTdE9SU3hGUVVGTkxFMUJRVUVzVFVGQlFTeEhRVUZUTEZkQlFWY3NVMEZCVXl4RFFVRkJMRU5CUVVFN1FVRkRia01zUlVGQlFTeE5RVUZOTEVWQlFVVXNWMEZCUVN4RlFVRmhMR05CUVdVc1JVRkJRU3hIUVVGSkxFMUJRVTBzVVVGQlV5eEZRVUZCTEVOQlFVRTdRVUZGZGtRc1JVRkJRU3hOUVVGTkxFTkJRVU1zWlVGQmFVSXNSVUZCUVN4clFrRkJhMElzUTBGQlNTeEhRVUZCTEV0QlFVRXNRMEZCVFN4VFFVRlRMRmRCUVZjc1EwRkJRU3hEUVVGQk8wRkJRM2hGTEVWQlFVMHNUVUZCUVN4aFFVRkJMRWRCUVVFc1EwRkJaMElzUlVGQlpTeEhRVUZCTEdOQlFVRXNRMEZCUVN4SlFVRkJMRU5CUVVzc1EwRkJReXhGUVVGRkxFdEJRVUZCTEVWQlFVRkJMRTFCUVVGQkxFVkJRVmxCTEV0QlFVRkJMRTFCUVVGQkxFdEJRVlVzWlVGQlpTeERRVUZCTEV0QlFUVkVMRWxCUVdsRkxFZEJRVUVzUlVGQlFTeEhRVUZCTERoQ1FVRkJMRU5CUVVFN1FVRkZka1lzUlVGQlRTeE5RVUZCTEV0QlFVRXNSMEZCVVN4bFFVRmxMRWxCUVVzc1EwRkJRU3hEUVVGRExFVkJRVVVzUzBGQlFVRXNSVUZCUVVFc1RVRkJRVUVzUlVGQldVRXNTMEZCUVVFc1RVRkJRVUVzUzBGQlZTeFhRVUZYTEVOQlFVRXNRMEZCUVR0QlFVTjBSU3hGUVVGTkxFMUJRVUVzVDBGQlFTeEhRVUZWTEZGQlFWRXNTMEZCU3l4RFFVRkJMRU5CUVVFN1FVRkZOMElzUlVGQlFTeE5RVUZOTEZWQlFWVXNUVUZCVFR0QlFVTndRaXhKUVVGQkxFbEJRVWtzVDBGQlV5eEZRVUZCTzBGQlExZ3NUVUZCUVN4clFrRkJRU3hEUVVGdFFpeFhRVUZYTEVOQlFVRXNRMEZCUVR0QlFVTTVRaXhOUVVGQkxFdEJRVUVzUTBGQlRTeGpRVUZsTEVWQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTNaQ0xFMUJRVUVzU1VGQlZ5eERRVUZETEU5QlFWTXNSVUZCUVR0QlFVTnVRaXhOUVVGTkxFdEJRVUVzUTBGQlFTeHZRa0ZCUVN4RFFVRnhRaXhqUVVGakxFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZEYUVRN1FVRkJRU3hIUVVOR0xFTkJRVUU3UVVGRlFTeEZRVU5GTEhWQ1FVRkJMRXRCUVVFc1EwRkJRU3hoUVVGQkxFTkJRVU1zYlVOQlEwVXNTMEZCUVN4RFFVRkJMR0ZCUVVFc1EwRkJRU3hoUVVGQkxFVkJRVUU3UVVGQlFTeEpRVU5ETEU5QlFWRXNSVUZCUVN4UlFVRkJPMEZCUVVFc1NVRkRVaXhQUVVGUkxFVkJRVUVzT0VKQlFVRTdRVUZCUVN4SlFVTlNMRTlCUVVFc1JVRkJVeXhEUVVGRExFTkJRVTBzUzBGQlFUdEJRVU5rTEUxQlFVRXNRMEZCUVN4RFFVRkZMR1ZCUVdkQ0xFVkJRVUVzUTBGQlFUdEJRVU5zUWl4TlFVRkJMRU5CUVVFc1EwRkJSU3hqUVVGbExFVkJRVUVzUTBGQlFUdEJRVU5xUWl4TlFVRlJMRTlCUVVFc1JVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFZqdEJRVUZCTEVkQlFVRXNhMEpCUlVNc1MwRkJRU3hEUVVGQkxHRkJRVUVzUTBGQlFTeFJRVUZCTEVWQlFVRTdRVUZCUVN4SlFVRlRMRXRCUVUwc1JVRkJRU3hIUVVGQk8wRkJRVUVzU1VGQlNTeExRVUZQTEVWQlFVRXNUMEZCUVR0QlFVRkJMRWxCUVZNc1QwRkJRVHRCUVVGQkxFZEJRV3RDTEVOQlFVVXNSVUZCUVN4WlFVVXhSQ3hEUVVWRExFVkJRVUVzVDBGQlFTeHRRa0ZEUlN4TFFVRkJMRU5CUVVFc1lVRkJRU3hEUVVGQkxGbEJRVUVzUlVGQlFUdEJRVUZCTEVsQlEwTXNUMEZCVVN4RlFVRkJMRkZCUVVFN1FVRkJRU3hKUVVOU0xFdEJRVUU3UVVGQlFTeEpRVU5CTEU5QlFWTXNSVUZCUVN4alFVRkJPMEZCUVVFc1NVRkRWQ3hSUVVGQkxFVkJRVlVzUTBGQlF5eERRVUZOTEV0QlFVRTdRVUZEWml4TlFVRk5MRXRCUVVFc1EwRkJRU3h2UWtGQlFTeERRVUZ4UWl4RlFVRkZMRXRCUVUwc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRGNrTTdRVUZCUVN4SFFVTkdMRzlDUVVWRExFdEJRVUVzUTBGQlFTeGhRVUZCTEVOQlFVRXNZVUZCUVN4RlFVRkJPMEZCUVVFc1NVRkJZeXhYUVVGWExFMUJRVThzUTBGQlFTeGhRVUZCTzBGQlFVRXNTVUZCWlN4UlFVRlJMRVZCUVVFc1NVRkJRVHRCUVVGQkxFbEJRVU1zVDBGQlVTeEZRVUZCTEZGQlFVRTdRVUZCUVN4SlFVRlRMRTFCUVZFc1JVRkJRU3hMUVVGQk8wRkJRVUVzUjBGREwwVXNSVUZCUVN4aFFVRkJMRU5CUVdNc1MwRkRha0lzUTBGRlNpeERRVUZCTEVOQlFVRTdRVUZGU2l4RFFVRkJPMEZCUlVFc1UwRkJVeXhWUVVGVkxFdEJRWE5DTEVWQlFVRTdRVUZEZGtNc1JVRkJUeXhQUVVGQk8wRkJRVUVzU1VGRFRDeGxRVUZsTEVkQlFVa3NRMEZCUVR0QlFVRkJMRTFCUTJwQ0xGbEJRV01zUlVGQlFUdEJRVUZCTEZGQlExb3NUVUZCVVN4RlFVRkJMRU5CUVVFc1ZVRkJRU3hGUVVGaExFdEJRVTBzUTBGQlFTeE5RVUZCTEVOQlFVOHNVMEZCVlN4RFFVRkJMRTFCUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzVVVGRE5VTXNTMEZCUVN4RlFVRlBMRXRCUVUwc1EwRkJRU3hOUVVGQkxFTkJRVThzU1VGQlN5eERRVUZCTEZGQlFVRTdRVUZCUVN4UlFVTjZRaXhQUVVGVExFVkJRVUVzUTBGQlFUdEJRVUZCTEU5QlExZzdRVUZCUVN4TFFVTkVMRU5CUVVFN1FVRkJRU3hIUVVOSUxFTkJRVUU3UVVGRFJqczdPenNpZlE9PVxuIl0sIm5hbWVzIjpbInZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLE1BQU0scUJBQXdCLEdBQUEsa0JBQUEsQ0FBQTtBQUM5QixNQUFNLGVBQWtCLEdBQUEsWUFBQSxDQUFBO0FBRWpCLE1BQU0sOEJBQWlDLEdBQUE7RUFDNUMsS0FBTyxFQUFBLGlCQUFBO0VBQ1AsS0FBTyxFQUFBLHFCQUFBO0FBQ1QsRUFBQTtBQUVPLE1BQU0saUJBQW9CLEdBQUE7RUFDL0IsS0FBTyxFQUFBLGVBQUE7RUFDUCxLQUFPLEVBQUEsZUFBQTtBQUNULEVBQUE7QUFFTyxNQUFNLHVCQUEwQixHQUFBO0VBQ3JDLEVBQUUsS0FBQSxFQUFPLFlBQWMsRUFBQSxLQUFBLEVBQU8sS0FBTSxFQUFBO0VBQ3BDLEVBQUUsS0FBQSxFQUFPLGFBQWUsRUFBQSxLQUFBLEVBQU8sSUFBSyxFQUFBO0VBQ3BDLEVBQUUsS0FBQSxFQUFPLGNBQWdCLEVBQUEsS0FBQSxFQUFPLElBQUssRUFBQTtBQUN2QyxFQUFBO0FBRU8sTUFBTSw4QkFD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
@@ -1,33 +0,0 @@
1
- import React from 'react';
2
- import { ToolbarButton, Input } from '@grafana/ui';
3
- import { SceneObjectBase } from '../core/SceneObjectBase.js';
4
- import { ControlsLabel } from '../utils/ControlsLabel.js';
5
-
6
- class SceneToolbarButton extends SceneObjectBase {
7
- }
8
- SceneToolbarButton.Component = ({ model }) => {
9
- const state = model.useState();
10
- return /* @__PURE__ */ React.createElement(ToolbarButton, {
11
- onClick: state.onClick,
12
- icon: state.icon
13
- });
14
- };
15
- class SceneToolbarInput extends SceneObjectBase {
16
- }
17
- SceneToolbarInput.Component = ({ model }) => {
18
- const state = model.useState();
19
- return /* @__PURE__ */ React.createElement("div", {
20
- style: { display: "flex" }
21
- }, state.label && /* @__PURE__ */ React.createElement(ControlsLabel, {
22
- label: state.label
23
- }), /* @__PURE__ */ React.createElement(Input, {
24
- defaultValue: state.value,
25
- width: 8,
26
- onBlur: (evt) => {
27
- model.state.onChange(parseInt(evt.currentTarget.value, 10));
28
- }
29
- }));
30
- };
31
-
32
- export { SceneToolbarButton, SceneToolbarInput };
33
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVUb29sYmFyQnV0dG9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL1NjZW5lVG9vbGJhckJ1dHRvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVG9vbGJhckJ1dHRvbiwgSW5wdXQgfSBmcm9tICdAZ3JhZmFuYS91aSc7XG5pbXBvcnQgeyBTY2VuZU9iamVjdEJhc2UgfSBmcm9tICcuLi9jb3JlL1NjZW5lT2JqZWN0QmFzZS5qcyc7XG5pbXBvcnQgeyBDb250cm9sc0xhYmVsIH0gZnJvbSAnLi4vdXRpbHMvQ29udHJvbHNMYWJlbC5qcyc7XG5cbmNsYXNzIFNjZW5lVG9vbGJhckJ1dHRvbiBleHRlbmRzIFNjZW5lT2JqZWN0QmFzZSB7XG59XG5TY2VuZVRvb2xiYXJCdXR0b24uQ29tcG9uZW50ID0gKHsgbW9kZWwgfSkgPT4ge1xuICBjb25zdCBzdGF0ZSA9IG1vZGVsLnVzZVN0YXRlKCk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChUb29sYmFyQnV0dG9uLCB7XG4gICAgb25DbGljazogc3RhdGUub25DbGljayxcbiAgICBpY29uOiBzdGF0ZS5pY29uXG4gIH0pO1xufTtcbmNsYXNzIFNjZW5lVG9vbGJhcklucHV0IGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlIHtcbn1cblNjZW5lVG9vbGJhcklucHV0LkNvbXBvbmVudCA9ICh7IG1vZGVsIH0pID0+IHtcbiAgY29uc3Qgc3RhdGUgPSBtb2RlbC51c2VTdGF0ZSgpO1xuICByZXR1cm4gLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgIHN0eWxlOiB7IGRpc3BsYXk6IFwiZmxleFwiIH1cbiAgfSwgc3RhdGUubGFiZWwgJiYgLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udHJvbHNMYWJlbCwge1xuICAgIGxhYmVsOiBzdGF0ZS5sYWJlbFxuICB9KSwgLyogQF9fUFVSRV9fICovIFJlYWN0LmNyZWF0ZUVsZW1lbnQoSW5wdXQsIHtcbiAgICBkZWZhdWx0VmFsdWU6IHN0YXRlLnZhbHVlLFxuICAgIHdpZHRoOiA4LFxuICAgIG9uQmx1cjogKGV2dCkgPT4ge1xuICAgICAgbW9kZWwuc3RhdGUub25DaGFuZ2UocGFyc2VJbnQoZXZ0LmN1cnJlbnRUYXJnZXQudmFsdWUsIDEwKSk7XG4gICAgfVxuICB9KSk7XG59O1xuXG5leHBvcnQgeyBTY2VuZVRvb2xiYXJCdXR0b24sIFNjZW5lVG9vbGJhcklucHV0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVUyTmxibVZVYjI5c1ltRnlRblYwZEc5dUxtcHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZZMjl0Y0c5dVpXNTBjeTlUWTJWdVpWUnZiMnhpWVhKQ2RYUjBiMjR1ZEhONElsMHNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQlNaV0ZqZENCbWNtOXRJQ2R5WldGamRDYzdYRzVjYm1sdGNHOXlkQ0I3SUVsamIyNU9ZVzFsTENCSmJuQjFkQ3dnVkc5dmJHSmhja0oxZEhSdmJpQjlJR1p5YjIwZ0owQm5jbUZtWVc1aEwzVnBKenRjYmx4dWFXMXdiM0owSUhzZ1UyTmxibVZQWW1wbFkzUkNZWE5sSUgwZ1puSnZiU0FuTGk0dlkyOXlaUzlUWTJWdVpVOWlhbVZqZEVKaGMyVW5PMXh1YVcxd2IzSjBJSHNnVTJObGJtVkRiMjF3YjI1bGJuUlFjbTl3Y3l3Z1UyTmxibVZQWW1wbFkzUlRkR0YwWlNCOUlHWnliMjBnSnk0dUwyTnZjbVV2ZEhsd1pYTW5PMXh1YVcxd2IzSjBJSHNnUTI5dWRISnZiSE5NWVdKbGJDQjlJR1p5YjIwZ0p5NHVMM1YwYVd4ekwwTnZiblJ5YjJ4elRHRmlaV3duTzF4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElGUnZiMnhpWVhKQ2RYUjBiMjVUZEdGMFpTQmxlSFJsYm1SeklGTmpaVzVsVDJKcVpXTjBVM1JoZEdVZ2UxeHVJQ0JwWTI5dU9pQkpZMjl1VG1GdFpUdGNiaUFnYjI1RGJHbGphem9nS0NrZ1BUNGdkbTlwWkR0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGTmpaVzVsVkc5dmJHSmhja0oxZEhSdmJpQmxlSFJsYm1SeklGTmpaVzVsVDJKcVpXTjBRbUZ6WlR4VWIyOXNZbUZ5UW5WMGRHOXVVM1JoZEdVK0lIdGNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QkRiMjF3YjI1bGJuUWdQU0FvZXlCdGIyUmxiQ0I5T2lCVFkyVnVaVU52YlhCdmJtVnVkRkJ5YjNCelBGTmpaVzVsVkc5dmJHSmhja0oxZEhSdmJqNHBJRDArSUh0Y2JpQWdJQ0JqYjI1emRDQnpkR0YwWlNBOUlHMXZaR1ZzTG5WelpWTjBZWFJsS0NrN1hHNWNiaUFnSUNCeVpYUjFjbTRnUEZSdmIyeGlZWEpDZFhSMGIyNGdiMjVEYkdsamF6MTdjM1JoZEdVdWIyNURiR2xqYTMwZ2FXTnZiajE3YzNSaGRHVXVhV052Ym4wZ0x6NDdYRzRnSUgwN1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnVTJObGJtVlViMjlzWW1GeVNXNXdkWFJUZEdGMFpTQmxlSFJsYm1SeklGTmpaVzVsVDJKcVpXTjBVM1JoZEdVZ2UxeHVJQ0IyWVd4MVpUODZJSE4wY21sdVp6dGNiaUFnYkdGaVpXdy9PaUJ6ZEhKcGJtYzdYRzRnSUc5dVEyaGhibWRsT2lBb2RtRnNkV1U2SUc1MWJXSmxjaWtnUFQ0Z2RtOXBaRHRjYm4xY2JseHVaWGh3YjNKMElHTnNZWE56SUZOalpXNWxWRzl2YkdKaGNrbHVjSFYwSUdWNGRHVnVaSE1nVTJObGJtVlBZbXBsWTNSQ1lYTmxQRk5qWlc1bFZHOXZiR0poY2tsdWNIVjBVM1JoZEdVK0lIdGNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QkRiMjF3YjI1bGJuUWdQU0FvZXlCdGIyUmxiQ0I5T2lCVFkyVnVaVU52YlhCdmJtVnVkRkJ5YjNCelBGTmpaVzVsVkc5dmJHSmhja2x1Y0hWMFBpa2dQVDRnZTF4dUlDQWdJR052Ym5OMElITjBZWFJsSUQwZ2JXOWtaV3d1ZFhObFUzUmhkR1VvS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0E4WkdsMklITjBlV3hsUFh0N0lHUnBjM0JzWVhrNklDZG1iR1Y0SnlCOWZUNWNiaUFnSUNBZ0lDQWdlM04wWVhSbExteGhZbVZzSUNZbUlEeERiMjUwY205c2MweGhZbVZzSUd4aFltVnNQWHR6ZEdGMFpTNXNZV0psYkgwZ0x6NTlYRzRnSUNBZ0lDQWdJRHhKYm5CMWRGeHVJQ0FnSUNBZ0lDQWdJR1JsWm1GMWJIUldZV3gxWlQxN2MzUmhkR1V1ZG1Gc2RXVjlYRzRnSUNBZ0lDQWdJQ0FnZDJsa2RHZzllemg5WEc0Z0lDQWdJQ0FnSUNBZ2IyNUNiSFZ5UFhzb1pYWjBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0YjJSbGJDNXpkR0YwWlM1dmJrTm9ZVzVuWlNod1lYSnpaVWx1ZENobGRuUXVZM1Z5Y21WdWRGUmhjbWRsZEM1MllXeDFaU3dnTVRBcEtUdGNiaUFnSUNBZ0lDQWdJQ0I5ZlZ4dUlDQWdJQ0FnSUNBdlBseHVJQ0FnSUNBZ1BDOWthWFkrWEc0Z0lDQWdLVHRjYmlBZ2ZUdGNibjFjYmlKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096dEJRV0ZQTEUxQlFVMHNNa0pCUVRKQ0xHVkJRVzlETEVOQlFVRTdRVUZOTlVVc1EwRkJRVHRCUVU1aExHdENRVUZCTEVOQlEwY3NVMEZCV1N4SFFVRkJMRU5CUVVNc1JVRkJSU3hMUVVGQkxFVkJRWEZFTEV0QlFVRTdRVUZEYUVZc1JVRkJUU3hOUVVGQkxFdEJRVUVzUjBGQlVTeE5RVUZOTEZGQlFWTXNSVUZCUVN4RFFVRkJPMEZCUlRkQ0xFVkJRVUVzZFVKQlFWRXNTMEZCUVN4RFFVRkJMR0ZCUVVFc1EwRkJRU3hoUVVGQkxFVkJRVUU3UVVGQlFTeEpRVUZqTEZOQlFWTXNTMEZCVFN4RFFVRkJMRTlCUVVFN1FVRkJRU3hKUVVGVExFMUJRVTBzUzBGQlRTeERRVUZCTEVsQlFVRTdRVUZCUVN4SFFVRk5MRU5CUVVFc1EwRkJRVHRCUVVOc1JTeERRVUZCTEVOQlFVRTdRVUZUU3l4TlFVRk5MREJDUVVFd1FpeGxRVUYzUXl4RFFVRkJPMEZCYVVJdlJTeERRVUZCTzBGQmFrSmhMR2xDUVVGQkxFTkJRMGNzVTBGQldTeEhRVUZCTEVOQlFVTXNSVUZCUlN4TFFVRkJMRVZCUVc5RUxFdEJRVUU3UVVGREwwVXNSVUZCVFN4TlFVRkJMRXRCUVVFc1IwRkJVU3hOUVVGTkxGRkJRVk1zUlVGQlFTeERRVUZCTzBGQlJUZENMRVZCUVVFc2RVSkJRMGNzUzBGQlFTeERRVUZCTEdGQlFVRXNRMEZCUVN4TFFVRkJMRVZCUVVFN1FVRkJRU3hKUVVGSkxFdEJRVUVzUlVGQlR5eEZRVUZGTEU5QlFVRXNSVUZCVXl4TlFVRlBMRVZCUVVFN1FVRkJRU3hIUVVNelFpeEZRVUZCTEV0QlFVRXNRMEZCVFN4NVFrRkJWU3hMUVVGQkxFTkJRVUVzWVVGQlFTeERRVUZCTEdGQlFVRXNSVUZCUVR0QlFVRkJMRWxCUVdNc1QwRkJUeXhMUVVGTkxFTkJRVUVzUzBGQlFUdEJRVUZCTEVkQlFVOHNiVUpCUTJ4RUxFdEJRVUVzUTBGQlFTeGhRVUZCTEVOQlFVRXNTMEZCUVN4RlFVRkJPMEZCUVVFc1NVRkRReXhqUVVGakxFdEJRVTBzUTBGQlFTeExRVUZCTzBGQlFVRXNTVUZEY0VJc1MwRkJUeXhGUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU5RTEUxQlFVRXNSVUZCVVN4RFFVRkRMRWRCUVZFc1MwRkJRVHRCUVVObUxFMUJRVUVzUzBGQlFTeERRVUZOTEUxQlFVMHNVVUZCVXl4RFFVRkJMRkZCUVVFc1EwRkJVeXhKUVVGSkxHRkJRV01zUTBGQlFTeExRVUZCTEVWQlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRelZFTzBGQlFVRXNSMEZEUml4RFFVTkdMRU5CUVVFc1EwRkJRVHRCUVVWS0xFTkJRVUU3T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWFPLE1BQU0sMkJBQTJCLGVBQW9DLENBQUE7QUFNNUUsQ0FBQTtBQU5hLGtCQUFBLENBQ0csU0FBWSxHQUFBLENBQUMsRUFBRSxLQUFBLEVBQXFELEtBQUE7QUFDMUUsRUFBQSxNQUFBLEtBQUEsR0FBUSxNQUFNLFFBQVMsRUFBQSxDQUFBO0FBRTdCLEVBQVEsdUJBQUEsS0FBQSxDQUFBLGNBQUEsYUFBQSxFQUFBO0FBQWMsSUFBQSxPQUFBLEVBQVMsS0FBTSxDQUFBLE9BQUE7QUFBUyxJQUFBLElBQUEsRUFBTSxLQUFNLENBQUEsSUFBQTtHQUFNLENBQUEsQ0FBQTtBQUNsRSxDQUFBLENBQUE7QUFTSyxNQUFNLDBCQUEwQixlQUF3QyxDQUFBO0FBaUIvRSxDQUFBO0FBakJhLGlCQUFBLENBQ0csU0FBWSxHQUFBLENBQUMsRUFBRSxLQUFBLEVBQW9ELEtBQUE7QUFDekUsRUFBQSxNQUFBLEtBQUEsR0FBUSxNQUFNLFFBQVMsRUFBQSxDQUFBO0FBRTdCLEVBQ0csdUJBQUEsS0FBQSxDQUFBLGNBQUEsS0FBQSxFQUFBO0lBQUksS0FBTyxFQUFBLEVBQUUsU0FBUyxNQUFPLEVBQUE7QUFBQSxHQUFBLEVBQzNCLEtBQU0sQ0FBQSxLQUFBLG9CQUFVLEtBQUEsQ0FBQSxhQUFBLENBQUEsYUFBQSxFQUFBO0FBQWMsSUFBQSxLQUFBLEVBQU8sS0FBTSxDQUFBLEtBQUE7R0FBTyxDQUFBLGtCQUNsRCxLQUFBLENBQUEsYUFBQSxDQUFBLEtBQUEsRUFBQTtBQUNDLElBQUEsWUFBQSxFQUFjLEtBQU0sQ0FBQSxLQUFBO0lBQ3BCLEtBQU8sRUFBQSxDQUFBO0FBQ1AsSUFBQSxNQUFBLEVBQVEsQ0FBQyxHQUFRLEtBQUE7QUFDZixNQUFBLEtBQUEsQ0FBTSxNQUFNLFFBQVMsQ0FBQSxRQUFBLENBQVMsSUFBSSxhQUFjLENBQUEsS0FBQSxFQUFPLEVBQUUsQ0FBQyxDQUFBLENBQUE7QUFBQSxLQUFBO0FBQzVELEdBQ0YsQ0FDRixDQUFBLENBQUE7QUFFSixDQUFBOzs7OyJ9