@sapui5/sap.fe.core 1.113.0 → 1.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime-dbg.js +68 -5
  4. package/src/sap/fe/core/ActionRuntime.js +1 -1
  5. package/src/sap/fe/core/ActionRuntime.js.map +1 -1
  6. package/src/sap/fe/core/ActionRuntime.ts +120 -4
  7. package/src/sap/fe/core/AppComponent-dbg.js +8 -2
  8. package/src/sap/fe/core/AppComponent.js +1 -1
  9. package/src/sap/fe/core/AppComponent.js.map +1 -1
  10. package/src/sap/fe/core/AppComponent.ts +19 -3
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +14 -10
  12. package/src/sap/fe/core/AppStateHandler.js +1 -1
  13. package/src/sap/fe/core/AppStateHandler.js.map +1 -1
  14. package/src/sap/fe/core/AppStateHandler.ts +17 -11
  15. package/src/sap/fe/core/BaseController-dbg.js +1 -1
  16. package/src/sap/fe/core/BaseController.ts +13 -2
  17. package/src/sap/fe/core/CommonUtils-dbg.js +74 -317
  18. package/src/sap/fe/core/CommonUtils.js +1 -1
  19. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  20. package/src/sap/fe/core/CommonUtils.ts +96 -473
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +1 -1
  22. package/src/sap/fe/core/ExtensionAPI.ts +2 -2
  23. package/src/sap/fe/core/StateFilterToSelectionVariant-dbg.js +263 -0
  24. package/src/sap/fe/core/StateFilterToSelectionVariant.js +6 -0
  25. package/src/sap/fe/core/StateFilterToSelectionVariant.js.map +1 -0
  26. package/src/sap/fe/core/StateFilterToSelectionVariant.ts +316 -0
  27. package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  28. package/src/sap/fe/core/TemplateComponent.ts +6 -0
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +10 -3
  30. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
  31. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
  32. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +8 -1
  33. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +1 -1
  34. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +1 -0
  35. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +8 -8
  36. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -1
  37. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.ts +7 -7
  38. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +1 -1
  39. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +1 -1
  40. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +68 -36
  41. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  42. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  43. package/src/sap/fe/core/controllerextensions/EditFlow.ts +83 -43
  44. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +12 -11
  45. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  46. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  47. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +17 -21
  48. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +233 -133
  49. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  50. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  51. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +260 -145
  52. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +1 -1
  53. package/src/sap/fe/core/controllerextensions/MassEdit.ts +3 -3
  54. package/src/sap/fe/core/controllerextensions/Routing-dbg.js +5 -3
  55. package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -1
  56. package/src/sap/fe/core/controllerextensions/Routing.ts +5 -4
  57. package/src/sap/fe/core/controllerextensions/Share-dbg.js +3 -2
  58. package/src/sap/fe/core/controllerextensions/Share.js +1 -1
  59. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  60. package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
  61. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +19 -14
  62. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  63. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  64. package/src/sap/fe/core/controllerextensions/SideEffects.ts +25 -18
  65. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +40 -26
  66. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  67. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  68. package/src/sap/fe/core/controllerextensions/ViewState.ts +59 -33
  69. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +8 -8
  70. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  71. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  72. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +23 -25
  73. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +7 -45
  74. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  75. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  76. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +5 -48
  77. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +2 -2
  78. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  79. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -1
  80. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +7 -3
  81. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +73 -90
  82. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  83. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  84. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +88 -101
  85. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +26 -4
  86. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  87. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  88. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +29 -3
  89. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +13 -10
  90. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +1 -1
  91. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  92. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +7 -20
  93. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +64 -4
  94. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1 -1
  95. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -1
  96. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +91 -8
  97. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +2 -4
  98. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  99. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  100. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +3 -5
  101. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +9 -9
  102. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  103. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  104. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +8 -8
  105. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -0
  106. package/src/sap/fe/core/controls/CommandExecution-dbg.js +4 -9
  107. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  108. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  109. package/src/sap/fe/core/controls/CommandExecution.ts +0 -8
  110. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +335 -0
  111. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +6 -0
  112. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +1 -0
  113. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +336 -0
  114. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
  115. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +3 -28
  116. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
  117. package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -1
  118. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +8 -29
  119. package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters-dbg.js +435 -0
  120. package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.js +6 -0
  121. package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.js.map +1 -0
  122. package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.ts +532 -0
  123. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +30 -1
  124. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  125. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  126. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +38 -0
  127. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  128. package/src/sap/fe/core/converters/ManifestSettings.ts +7 -5
  129. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +36 -4
  130. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  131. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  132. package/src/sap/fe/core/converters/MetaModelConverter.ts +45 -4
  133. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -3
  134. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  135. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  136. package/src/sap/fe/core/converters/TemplateConverter.ts +1 -6
  137. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +18 -3
  138. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  139. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  140. package/src/sap/fe/core/converters/annotations/DataField.ts +18 -2
  141. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +679 -676
  142. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  143. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  144. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +32 -20
  145. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  146. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  147. package/src/sap/fe/core/converters/controls/Common/Chart.ts +30 -18
  148. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +4 -5
  149. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  150. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  151. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -37
  152. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +100 -72
  153. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  154. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  155. package/src/sap/fe/core/converters/controls/Common/Table.ts +146 -99
  156. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +37 -10
  157. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  158. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  159. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +49 -16
  160. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +47 -18
  161. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  162. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  163. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +74 -20
  164. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +26 -9
  165. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  166. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  167. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +24 -8
  168. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +28 -2
  169. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  170. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  171. package/src/sap/fe/core/converters/helpers/Aggregation.ts +28 -9
  172. package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +39 -0
  173. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +6 -0
  174. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -0
  175. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +45 -0
  176. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +13 -15
  177. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  178. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  179. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +18 -54
  180. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +12 -12
  181. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  182. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  183. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +16 -11
  184. package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +17 -33
  185. package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
  186. package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -1
  187. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +27 -22
  188. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -11
  189. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  190. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  191. package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -25
  192. package/src/sap/fe/core/fpm/Component-dbg.js +3 -1
  193. package/src/sap/fe/core/fpm/Component.js +1 -1
  194. package/src/sap/fe/core/fpm/Component.js.map +1 -1
  195. package/src/sap/fe/core/fpm/Component.ts +3 -1
  196. package/src/sap/fe/core/fpm/manifest.json +1 -1
  197. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +74 -26
  198. package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
  199. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  200. package/src/sap/fe/core/helpers/BindingToolkit.ts +116 -33
  201. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +82 -37
  202. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  203. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  204. package/src/sap/fe/core/helpers/DeleteHelper.ts +109 -56
  205. package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +1 -1
  206. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +7 -5
  207. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +13 -3
  208. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  209. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  210. package/src/sap/fe/core/helpers/MassEditHelper.ts +28 -18
  211. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +1 -1
  212. package/src/sap/fe/core/helpers/MessageStrip.ts +2 -1
  213. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +1 -1
  214. package/src/sap/fe/core/helpers/ModelHelper.ts +3 -3
  215. package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +71 -0
  216. package/src/sap/fe/core/helpers/RecommendationHelper.js +6 -0
  217. package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -0
  218. package/src/sap/fe/core/helpers/RecommendationHelper.ts +94 -0
  219. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +5 -2
  220. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
  221. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -1
  222. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +5 -0
  223. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +24 -2
  224. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  225. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
  226. package/src/sap/fe/core/helpers/StableIdHelper.ts +23 -1
  227. package/src/sap/fe/core/helpers/TitleHelper-dbg.js +239 -0
  228. package/src/sap/fe/core/helpers/TitleHelper.js +6 -0
  229. package/src/sap/fe/core/helpers/TitleHelper.js.map +1 -0
  230. package/src/sap/fe/core/helpers/TitleHelper.ts +295 -0
  231. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +4 -1
  232. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +1 -1
  233. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  234. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +3 -0
  235. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +41 -17
  236. package/src/sap/fe/core/jsx-runtime/jsx-control.js +1 -1
  237. package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -1
  238. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +45 -21
  239. package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
  240. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -0
  241. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +8 -4
  242. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  243. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  244. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +7 -2
  245. package/src/sap/fe/core/library-dbg.js +4 -3
  246. package/src/sap/fe/core/library-preload.js +91 -74
  247. package/src/sap/fe/core/library-preload.js.map +1 -1
  248. package/src/sap/fe/core/library.js +1 -1
  249. package/src/sap/fe/core/library.js.map +1 -1
  250. package/src/sap/fe/core/library.ts +1 -1
  251. package/src/sap/fe/core/manifest.json +1 -1
  252. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +4 -3
  253. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  254. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
  255. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +3 -2
  256. package/src/sap/fe/core/messagebundle.properties +12 -8
  257. package/src/sap/fe/core/messagebundle_ar.properties +7 -5
  258. package/src/sap/fe/core/messagebundle_bg.properties +7 -5
  259. package/src/sap/fe/core/messagebundle_ca.properties +7 -5
  260. package/src/sap/fe/core/messagebundle_cs.properties +7 -5
  261. package/src/sap/fe/core/messagebundle_cy.properties +7 -5
  262. package/src/sap/fe/core/messagebundle_da.properties +7 -5
  263. package/src/sap/fe/core/messagebundle_de.properties +7 -5
  264. package/src/sap/fe/core/messagebundle_el.properties +7 -5
  265. package/src/sap/fe/core/messagebundle_en.properties +7 -5
  266. package/src/sap/fe/core/messagebundle_en_GB.properties +6 -4
  267. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -4
  268. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +6 -4
  269. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +7 -4
  270. package/src/sap/fe/core/messagebundle_es.properties +7 -5
  271. package/src/sap/fe/core/messagebundle_es_MX.properties +7 -5
  272. package/src/sap/fe/core/messagebundle_et.properties +7 -5
  273. package/src/sap/fe/core/messagebundle_fi.properties +7 -5
  274. package/src/sap/fe/core/messagebundle_fr.properties +7 -5
  275. package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -6
  276. package/src/sap/fe/core/messagebundle_hi.properties +7 -5
  277. package/src/sap/fe/core/messagebundle_hr.properties +7 -5
  278. package/src/sap/fe/core/messagebundle_hu.properties +7 -5
  279. package/src/sap/fe/core/messagebundle_id.properties +7 -5
  280. package/src/sap/fe/core/messagebundle_it.properties +8 -6
  281. package/src/sap/fe/core/messagebundle_iw.properties +7 -5
  282. package/src/sap/fe/core/messagebundle_ja.properties +7 -5
  283. package/src/sap/fe/core/messagebundle_kk.properties +7 -5
  284. package/src/sap/fe/core/messagebundle_ko.properties +7 -5
  285. package/src/sap/fe/core/messagebundle_lt.properties +7 -5
  286. package/src/sap/fe/core/messagebundle_lv.properties +7 -5
  287. package/src/sap/fe/core/messagebundle_ms.properties +7 -5
  288. package/src/sap/fe/core/messagebundle_nl.properties +7 -5
  289. package/src/sap/fe/core/messagebundle_no.properties +7 -5
  290. package/src/sap/fe/core/messagebundle_pl.properties +7 -5
  291. package/src/sap/fe/core/messagebundle_pt.properties +7 -5
  292. package/src/sap/fe/core/messagebundle_pt_PT.properties +7 -5
  293. package/src/sap/fe/core/messagebundle_ro.properties +7 -5
  294. package/src/sap/fe/core/messagebundle_ru.properties +7 -5
  295. package/src/sap/fe/core/messagebundle_sh.properties +7 -5
  296. package/src/sap/fe/core/messagebundle_sk.properties +7 -5
  297. package/src/sap/fe/core/messagebundle_sl.properties +7 -5
  298. package/src/sap/fe/core/messagebundle_sv.properties +7 -5
  299. package/src/sap/fe/core/messagebundle_th.properties +7 -5
  300. package/src/sap/fe/core/messagebundle_tr.properties +7 -5
  301. package/src/sap/fe/core/messagebundle_uk.properties +7 -5
  302. package/src/sap/fe/core/messagebundle_vi.properties +7 -5
  303. package/src/sap/fe/core/messagebundle_zh_CN.properties +7 -5
  304. package/src/sap/fe/core/messagebundle_zh_TW.properties +7 -5
  305. package/src/sap/fe/core/operationsHelper-dbg.js +1 -1
  306. package/src/sap/fe/core/operationsHelper.ts +1 -1
  307. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +8 -2
  308. package/src/sap/fe/core/rootView/Fcl.controller.js +1 -1
  309. package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -1
  310. package/src/sap/fe/core/rootView/Fcl.controller.ts +8 -1
  311. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +8 -2
  312. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  313. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  314. package/src/sap/fe/core/rootView/NavContainer.controller.ts +10 -3
  315. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +16 -6
  316. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  317. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  318. package/src/sap/fe/core/rootView/RootViewBaseController.ts +10 -4
  319. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +54 -5
  320. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  321. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  322. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +52 -6
  323. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +31 -14
  324. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  325. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  326. package/src/sap/fe/core/services/NavigationServiceFactory.ts +15 -1
  327. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +10 -4
  328. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  329. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  330. package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -7
  331. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +5 -2
  332. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  333. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  334. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +9 -5
  335. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -2
  336. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  337. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +2 -18
  338. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +8 -8
  339. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
  340. package/src/sap/fe/core/templating/CommonFormatters.ts +9 -9
  341. package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +1 -1
  342. package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
  343. package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +38 -2
  344. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
  345. package/src/sap/fe/core/templating/DataFieldFormatters.js.map +1 -1
  346. package/src/sap/fe/core/templating/DataFieldFormatters.ts +40 -0
  347. package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +5 -6
  348. package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
  349. package/src/sap/fe/core/templating/FieldControlHelper.js.map +1 -1
  350. package/src/sap/fe/core/templating/FieldControlHelper.ts +13 -11
  351. package/src/sap/fe/core/templating/FilterHelper-dbg.js +13 -1
  352. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  353. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  354. package/src/sap/fe/core/templating/FilterHelper.ts +13 -1
  355. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
  356. package/src/sap/fe/core/templating/PropertyHelper.ts +7 -7
  357. package/src/sap/fe/core/templating/UIFormatters-dbg.js +5 -6
  358. package/src/sap/fe/core/templating/UIFormatters.js +1 -1
  359. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
  360. package/src/sap/fe/core/templating/UIFormatters.ts +6 -7
  361. package/src/sap/fe/core/type/TypeUtil-dbg.js +2 -2
  362. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  363. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  364. package/src/sap/fe/core/type/TypeUtil.ts +2 -2
  365. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +0 -243
  366. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +0 -6
  367. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +0 -1
  368. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +0 -283
  369. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +0 -121
  370. package/src/sap/fe/core/controllerextensions/collaboration/UserDetails.fragment.xml +0 -11
  371. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +0 -59
  372. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +0 -171
  373. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +0 -6
  374. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +0 -1
  375. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +0 -184
@@ -77,7 +77,6 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
77
77
  }
78
78
  return defaultSemanticDates;
79
79
  };
80
-
81
80
  /**
82
81
  * Find a visualization annotation that can be used for rendering the list report.
83
82
  *
@@ -122,7 +121,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
122
121
  }
123
122
  return undefined;
124
123
  }
125
- const getView = function (viewConverterConfiguration) {
124
+ const getView = function (viewConverterConfiguration, isInsightsEnabled) {
126
125
  let config = viewConverterConfiguration;
127
126
  if (config.converterContext) {
128
127
  var _presentation, _presentation$visuali;
@@ -131,7 +130,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
131
130
  const isMultipleViewConfiguration = function (currentConfig) {
132
131
  return currentConfig.key !== undefined;
133
132
  };
134
- let presentation = getDataVisualizationConfiguration(config.annotation ? converterContext.getRelativeAnnotationPath(config.annotation.fullyQualifiedName, converterContext.getEntityType()) : "", true, converterContext, config, undefined, undefined, isMultipleViewConfiguration(config));
133
+ let presentation = getDataVisualizationConfiguration(config.annotation ? converterContext.getRelativeAnnotationPath(config.annotation.fullyQualifiedName, converterContext.getEntityType()) : "", true, converterContext, config, undefined, undefined, isMultipleViewConfiguration(config), isInsightsEnabled);
135
134
  let tableControlId = "";
136
135
  let chartControlId = "";
137
136
  let title = "";
@@ -162,7 +161,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
162
161
  converterContext = resolvedTarget.converterContext;
163
162
  const annotation = targetAnnotation;
164
163
  if (annotation || converterContext.getTemplateType() === TemplateType.AnalyticalListPage) {
165
- presentation = getDataVisualizationConfiguration(annotation ? converterContext.getRelativeAnnotationPath(annotation.fullyQualifiedName, converterContext.getEntityType()) : "", true, converterContext, config);
164
+ presentation = getDataVisualizationConfiguration(annotation ? converterContext.getRelativeAnnotationPath(annotation.fullyQualifiedName, converterContext.getEntityType()) : "", true, converterContext, config, undefined, undefined, undefined, isInsightsEnabled);
166
165
  return presentation;
167
166
  } else {
168
167
  const sError = "Annotation Path for the " + (isPrimary ? "primary" : "secondary") + " visualisation mentioned in the manifest is not found";
@@ -290,7 +289,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
290
289
  };
291
290
  }
292
291
  };
293
- const getViews = function (converterContext, settingsViews) {
292
+ const getViews = function (converterContext, settingsViews, isInsightsEnabled) {
294
293
  let viewConverterConfigs = [];
295
294
  if (settingsViews) {
296
295
  settingsViews.paths.forEach(path => {
@@ -351,7 +350,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
351
350
  }
352
351
  }
353
352
  return viewConverterConfigs.map(viewConverterConfig => {
354
- return getView(viewConverterConfig);
353
+ return getView(viewConverterConfig, isInsightsEnabled);
355
354
  });
356
355
  };
357
356
  const getMultiViewsControl = function (converterContext, views) {
@@ -417,15 +416,15 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
417
416
  }
418
417
  });
419
418
  };
420
-
421
419
  /**
422
420
  * Creates the ListReportDefinition for multiple entity sets (multiple table mode).
423
421
  *
424
422
  * @param converterContext The converter context
423
+ * @param isInsightsEnabled
425
424
  * @returns The list report definition based on annotation + manifest
426
425
  */
427
426
  _exports.checkChartFilterBarId = checkChartFilterBarId;
428
- const convertPage = function (converterContext) {
427
+ const convertPage = function (converterContext, isInsightsEnabled) {
429
428
  const entityType = converterContext.getEntityType();
430
429
  const sContextPath = converterContext.getContextPath();
431
430
  if (!sContextPath) {
@@ -435,7 +434,7 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
435
434
  const manifestWrapper = converterContext.getManifestWrapper();
436
435
  const viewsDefinition = manifestWrapper.getViewConfiguration();
437
436
  const hasMultipleEntitySets = manifestWrapper.hasMultipleEntitySets();
438
- const views = getViews(converterContext, viewsDefinition);
437
+ const views = getViews(converterContext, viewsDefinition, isInsightsEnabled);
439
438
  const lrTableVisualizations = getTableVisualizations(views);
440
439
  const lrChartVisualizations = getChartVisualizations(views);
441
440
  const showPinnableToggle = lrTableVisualizations.some(table => table.control.type === "ResponsiveTable");
@@ -465,7 +464,6 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
465
464
  const multiViewControl = getMultiViewsControl(converterContext, views);
466
465
  const selectionVariant = multiViewControl ? undefined : getSelectionVariant(entityType, converterContext);
467
466
  const defaultSemanticDates = useSemanticDateRange ? getDefaultSemanticDates(getManifestFilterFields(entityType, converterContext)) : {};
468
-
469
467
  // Sort header actions according to position attributes in manifest
470
468
  const headerActions = getHeaderActions(converterContext);
471
469
  if (hasMultipleEntitySets) {
@@ -519,8 +517,8 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
519
517
  let singleTableId = "",
520
518
  singleChartId = "";
521
519
  if (converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === TemplateType.AnalyticalListPage) {
522
- for (let view of views) {
523
- view = view;
520
+ for (const lrView of views) {
521
+ const view = lrView;
524
522
  if (view.chartControlId && view.tableControlId) {
525
523
  singleChartId = view.chartControlId;
526
524
  singleTableId = view.tableControlId;
@@ -528,8 +526,8 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
528
526
  }
529
527
  }
530
528
  } else {
531
- for (let view of views) {
532
- view = view;
529
+ for (const lrView of views) {
530
+ const view = lrView;
533
531
  if (!singleTableId && view.tableControlId) {
534
532
  singleTableId = view.tableControlId || "";
535
533
  }
@@ -551,4 +549,4 @@ sap.ui.define(["sap/fe/core/converters/controls/Common/Action", "sap/fe/core/con
551
549
  }
552
550
  return _exports;
553
551
  }, false);
554
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRUYWJsZVZpc3VhbGl6YXRpb25zIiwidmlld3MiLCJ0YWJsZXMiLCJmb3JFYWNoIiwidmlldyIsInR5cGUiLCJ2aXN1YWxpemF0aW9ucyIsInNlY29uZGFyeVZpc3VhbGl6YXRpb24iLCJwcmVzZW50YXRpb24iLCJ2aXN1YWxpemF0aW9uIiwiVmlzdWFsaXphdGlvblR5cGUiLCJUYWJsZSIsInB1c2giLCJnZXRDaGFydFZpc3VhbGl6YXRpb25zIiwiY2hhcnRzIiwicHJpbWFyeVZpc3VhbGl6YXRpb24iLCJDaGFydCIsImdldERlZmF1bHRTZW1hbnRpY0RhdGVzIiwiZmlsdGVyRmllbGRzIiwiZGVmYXVsdFNlbWFudGljRGF0ZXMiLCJmaWx0ZXJGaWVsZCIsInNldHRpbmdzIiwiZGVmYXVsdFZhbHVlcyIsImxlbmd0aCIsImdldENvbXBsaWFudFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uIiwiZW50aXR5VHlwZSIsImNvbnZlcnRlckNvbnRleHQiLCJpc0FMUCIsImFubm90YXRpb25QYXRoIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiZ2V0RGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgiLCJzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50IiwiZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImVycm9yTWVzc2FnZUZvckFMUCIsInByZXNlbnRhdGlvblZhcmlhbnQiLCJQcmVzZW50YXRpb25WYXJpYW50IiwiRXJyb3IiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsInVuZGVmaW5lZCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwiZ2V0RGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0TGluZUl0ZW0iLCJnZXRWaWV3Iiwidmlld0NvbnZlcnRlckNvbmZpZ3VyYXRpb24iLCJjb25maWciLCJpc011bHRpcGxlVmlld0NvbmZpZ3VyYXRpb24iLCJjdXJyZW50Q29uZmlnIiwia2V5IiwiZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uIiwiYW5ub3RhdGlvbiIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJnZXRFbnRpdHlUeXBlIiwidGFibGVDb250cm9sSWQiLCJjaGFydENvbnRyb2xJZCIsInRpdGxlIiwic2VsZWN0aW9uVmFyaWFudFBhdGgiLCJjcmVhdGVWaXN1YWxpemF0aW9uIiwiY3VycmVudFByZXNlbnRhdGlvbiIsImlzUHJpbWFyeSIsImRlZmF1bHRWaXN1YWxpemF0aW9uIiwicHJlc2VudGF0aW9uQ3JlYXRlZCIsIk9iamVjdCIsImFzc2lnbiIsImdldFByZXNlbnRhdGlvbiIsIml0ZW0iLCJyZXNvbHZlZFRhcmdldCIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwidGFyZ2V0QW5ub3RhdGlvbiIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsInNFcnJvciIsImNyZWF0ZUFscFZpZXciLCJwcmVzZW50YXRpb25zIiwiZGVmYXVsdFBhdGgiLCJpZCIsInZpc2libGUiLCJoYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zIiwicHJpbWFyeSIsInNlY29uZGFyeSIsInZpZXdBbm5vdGF0aW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJUZXh0IiwidmlzdWFsaXphdGlvbkRlZmluaXRpb24iLCJpbmRleCIsInRhYmxlVmlzdWFsaXphdGlvbiIsImZpbHRlcnMiLCJjb250cm9sIiwiaGlkZGVuRmlsdGVycyIsInBhdGhzIiwia2VlcFByZXZpb3VzUGVyc29uYWxpemF0aW9uIiwiZ2V0VGFibGVJRCIsInRlcm0iLCJTZWxlY3Rpb25WYXJpYW50Iiwic3BsaXQiLCJjaGFydFZpc3VhbGl6YXRpb24iLCJnZXRDaGFydElEIiwibXVsdGlWaWV3cyIsImxhYmVsIiwiZnJhZ21lbnQiLCJ0ZW1wbGF0ZSIsImN1c3RvbVRhYklkIiwiZ2V0Q3VzdG9tVGFiSUQiLCJnZXRWaWV3cyIsInNldHRpbmdzVmlld3MiLCJ2aWV3Q29udmVydGVyQ29uZmlncyIsInBhdGgiLCJ2aWV3Q29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHRGb3IiLCJjb250ZXh0UGF0aCIsImVudGl0eVNldCIsImdldENvbnRleHRQYXRoIiwiZ2V0QWxwVmlld0NvbmZpZyIsIm1hcCIsInZpZXdDb252ZXJ0ZXJDb25maWciLCJnZXRNdWx0aVZpZXdzQ29udHJvbCIsIm1hbmlmZXN0V3JhcHBlciIsInZpZXdzRGVmaW5pdGlvbiIsImdldFZpZXdDb25maWd1cmF0aW9uIiwiaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsInNob3dUYWJDb3VudHMiLCJzaG93Q291bnRzIiwiaGFzTXVsdGlwbGVFbnRpdHlTZXRzIiwiZ2V0SWNvblRhYkJhcklEIiwidmlld0NvbmZpZ3MiLCJjaGFydCIsInRhYmxlIiwiZ2V0RGVmYXVsdENoYXJ0IiwiZ2V0SGVhZGVyQWN0aW9ucyIsImluc2VydEN1c3RvbUVsZW1lbnRzIiwiZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdCIsImFjdGlvbnMiLCJjaGVja0NoYXJ0RmlsdGVyQmFySWQiLCJmaWx0ZXJCYXJJZCIsImZpbHRlcklkIiwiY29udmVydFBhZ2UiLCJzQ29udGV4dFBhdGgiLCJsclRhYmxlVmlzdWFsaXphdGlvbnMiLCJsckNoYXJ0VmlzdWFsaXphdGlvbnMiLCJzaG93UGlubmFibGVUb2dnbGUiLCJzb21lIiwic2luZ2xlVGFibGVJZCIsInNpbmdsZUNoYXJ0SWQiLCJkeW5hbWljTGlzdFJlcG9ydElkIiwiZ2V0RHluYW1pY0xpc3RSZXBvcnRJRCIsImdldEZpbHRlckJhcklEIiwiZmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCIsImdldEZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQiLCJmYkNvbmZpZyIsImdldEZpbHRlckNvbmZpZ3VyYXRpb24iLCJmaWx0ZXJJbml0aWFsTGF5b3V0IiwiaW5pdGlhbExheW91dCIsInRvTG93ZXJDYXNlIiwiZmlsdGVyTGF5b3V0IiwibGF5b3V0IiwidXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJzaG93Q2xlYXJCdXR0b24iLCJvQ29uZmlnIiwiZ2V0Q29udGVudEFyZWFJZCIsImNoYXJ0SWQiLCJ0YWJsZUlkIiwidXNlSGlkZGVuRmlsdGVyQmFyIiwiaGlkZUZpbHRlckJhciIsImlzRmlsdGVyQmFySGlkZGVuIiwibHJGaWx0ZXJQcm9wZXJ0aWVzIiwiZ2V0U2VsZWN0aW9uRmllbGRzIiwic2VsZWN0aW9uRmllbGRzIiwicHJvcGVydHlJbmZvRmllbGRzIiwic1Byb3BlcnR5SW5mbyIsImhpZGVCYXNpY1NlYXJjaCIsImdldEZpbHRlckJhckhpZGVCYXNpY1NlYXJjaCIsIm11bHRpVmlld0NvbnRyb2wiLCJzZWxlY3Rpb25WYXJpYW50IiwiZ2V0U2VsZWN0aW9uVmFyaWFudCIsImdldE1hbmlmZXN0RmlsdGVyRmllbGRzIiwiaGVhZGVyQWN0aW9ucyIsInZpc3VhbGl6YXRpb25JZHMiLCJjb25jYXQiLCJ0YXJnZXRDb250cm9sSWRzIiwiZ2V0VmFyaWFudE1hbmFnZW1lbnQiLCJWYXJpYW50TWFuYWdlbWVudFR5cGUiLCJDb250cm9sIiwic3RpY2t5U3ViaGVhZGVyUHJvdmlkZXIiLCJnZXRTdGlja3lNdWx0aVRhYkhlYWRlckNvbmZpZ3VyYXRpb24iLCJtYWluRW50aXR5U2V0IiwibWFpbkVudGl0eVR5cGUiLCJtdWx0aVZpZXdzQ29udHJvbCIsImZpbHRlckJhciIsInByb3BlcnR5SW5mbyIsImZpbHRlckNvbmRpdGlvbnMiLCJ2YXJpYW50TWFuYWdlbWVudCIsImpvaW4iLCJ0ZW1wbGF0ZVR5cGUiLCJrcGlEZWZpbml0aW9ucyIsImdldEtQSURlZmluaXRpb25zIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJMaXN0UmVwb3J0Q29udmVydGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5VHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUge1xuXHRMaW5lSXRlbSxcblx0UHJlc2VudGF0aW9uVmFyaWFudCxcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCxcblx0U2VsZWN0aW9uVmFyaWFudCxcblx0U2VsZWN0aW9uVmFyaWFudFR5cGVcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VBY3Rpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgeyBnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBDaGFydFZpc3VhbGl6YXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQ2hhcnRcIjtcbmltcG9ydCB0eXBlIHsgVGFibGVWaXN1YWxpemF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEN1c3RvbUVsZW1lbnRGaWx0ZXJGaWVsZCwgRmlsdGVyRmllbGQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9MaXN0UmVwb3J0L0ZpbHRlckJhclwiO1xuaW1wb3J0IHtcblx0Z2V0RmlsdGVyQmFySGlkZUJhc2ljU2VhcmNoLFxuXHRnZXRNYW5pZmVzdEZpbHRlckZpZWxkcyxcblx0Z2V0U2VsZWN0aW9uRmllbGRzXG59IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgQ29uZmlndXJhYmxlT2JqZWN0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGluc2VydEN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zLCBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gfSBmcm9tIFwiLi4vY29udHJvbHMvQ29tbW9uL0RhdGFWaXN1YWxpemF0aW9uXCI7XG5pbXBvcnQge1xuXHRnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24sXG5cdGdldERlZmF1bHRDaGFydCxcblx0Z2V0RGVmYXVsdExpbmVJdGVtLFxuXHRnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCxcblx0Z2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCxcblx0Z2V0U2VsZWN0aW9uVmFyaWFudCxcblx0aXNQcmVzZW50YXRpb25Db21wbGlhbnQsXG5cdGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50XG59IGZyb20gXCIuLi9jb250cm9scy9Db21tb24vRGF0YVZpc3VhbGl6YXRpb25cIjtcbmltcG9ydCB0eXBlIHsgS1BJRGVmaW5pdGlvbiB9IGZyb20gXCIuLi9jb250cm9scy9Db21tb24vS1BJXCI7XG5pbXBvcnQgeyBnZXRLUElEZWZpbml0aW9ucyB9IGZyb20gXCIuLi9jb250cm9scy9Db21tb24vS1BJXCI7XG5pbXBvcnQge1xuXHRnZXRDaGFydElELFxuXHRnZXRDdXN0b21UYWJJRCxcblx0Z2V0RHluYW1pY0xpc3RSZXBvcnRJRCxcblx0Z2V0RmlsdGVyQmFySUQsXG5cdGdldEZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQsXG5cdGdldEljb25UYWJCYXJJRCxcblx0Z2V0VGFibGVJRFxufSBmcm9tIFwiLi4vaGVscGVycy9JRFwiO1xuaW1wb3J0IHR5cGUge1xuXHRDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0Q3VzdG9tVmlld1RlbXBsYXRlQ29uZmlndXJhdGlvbixcblx0TXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24sXG5cdFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0Vmlld1BhdGhDb25maWd1cmF0aW9uXG59IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUsIFZhcmlhbnRNYW5hZ2VtZW50VHlwZSwgVmlzdWFsaXphdGlvblR5cGUgfSBmcm9tIFwiLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuXG50eXBlIFZpZXdBbm5vdGF0aW9ucyA9IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgfCBTZWxlY3Rpb25WYXJpYW50O1xudHlwZSBWYXJpYW50TWFuYWdlbWVudERlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHRhcmdldENvbnRyb2xJZHM6IHN0cmluZztcbn07XG5cbnR5cGUgTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbiA9IFZpZXdQYXRoQ29uZmlndXJhdGlvbiAmIHtcblx0YW5ub3RhdGlvbj86IERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG59O1xuXG50eXBlIFNpbmdsZVZpZXdDb25maWd1cmF0aW9uID0ge1xuXHRhbm5vdGF0aW9uPzogRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcbn07XG5cbnR5cGUgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb24gPSBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uICYge1xuXHR0eXBlOiBzdHJpbmc7XG59O1xuXG50eXBlIFZpZXdDb25maWd1cmF0aW9uID0gTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbiB8IFNpbmdsZVZpZXdDb25maWd1cmF0aW9uIHwgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb247XG50eXBlIFZpZXdBbm5vdGF0aW9uQ29uZmlndXJhdGlvbiA9IE11bHRpcGxlVmlld0NvbmZpZ3VyYXRpb24gfCBTaW5nbGVWaWV3Q29uZmlndXJhdGlvbjtcblxudHlwZSBWaWV3Q29udmVydGVyU2V0dGluZ3MgPSBWaWV3Q29uZmlndXJhdGlvbiAmIHtcblx0Y29udmVydGVyQ29udGV4dD86IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG50eXBlIERlZmF1bHRTZW1hbnRpY0RhdGUgPSBDb25maWd1cmFibGVPYmplY3QgJiB7XG5cdG9wZXJhdG9yOiBzdHJpbmc7XG59O1xuXG50eXBlIE11bHRpVmlld3NDb250cm9sQ29uZmlndXJhdGlvbiA9IHtcblx0aWQ6IHN0cmluZztcblx0c2hvd1RhYkNvdW50cz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0UmVwb3J0RGVmaW5pdGlvbiA9IHtcblx0bWFpbkVudGl0eVNldDogc3RyaW5nO1xuXHRtYWluRW50aXR5VHlwZTogc3RyaW5nOyAvLyBlbnRpdHlUeXBlPiBhdCB0aGUgc3RhcnQgb2YgTFIgdGVtcGxhdGluZ1xuXHRzaW5nbGVUYWJsZUlkPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggc2luZ2xlIFRhYmxlIG1vZGVcblx0c2luZ2xlQ2hhcnRJZD86IHN0cmluZzsgLy8gb25seSB3aXRoIHNpbmdsZSBUYWJsZSBtb2RlXG5cdGR5bmFtaWNMaXN0UmVwb3J0SWQ6IHN0cmluZztcblx0c3RpY2t5U3ViaGVhZGVyUHJvdmlkZXI/OiBzdHJpbmc7XG5cdG11bHRpVmlld3NDb250cm9sPzogTXVsdGlWaWV3c0NvbnRyb2xDb25maWd1cmF0aW9uOyAvLyBvbmx5IHdpdGggbXVsdGkgVGFibGUgbW9kZVxuXHRoZWFkZXJBY3Rpb25zOiBCYXNlQWN0aW9uW107XG5cdHNob3dQaW5uYWJsZVRvZ2dsZT86IGJvb2xlYW47XG5cdGZpbHRlckJhcjoge1xuXHRcdHByb3BlcnR5SW5mbzogYW55O1xuXHRcdHNlbGVjdGlvbkZpZWxkczogRmlsdGVyRmllbGRbXTtcblx0XHRoaWRlQmFzaWNTZWFyY2g6IGJvb2xlYW47XG5cdFx0c2hvd0NsZWFyQnV0dG9uPzogYm9vbGVhbjtcblx0fTtcblx0dmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdO1xuXHRmaWx0ZXJDb25kaXRpb25zOiB7XG5cdFx0c2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudFR5cGUgfCB1bmRlZmluZWQ7XG5cdFx0ZGVmYXVsdFNlbWFudGljRGF0ZXM6IFJlY29yZDxzdHJpbmcsIERlZmF1bHRTZW1hbnRpY0RhdGU+IHwge307XG5cdH07XG5cdGZpbHRlckJhcklkOiBzdHJpbmc7XG5cdHZhcmlhbnRNYW5hZ2VtZW50OiBWYXJpYW50TWFuYWdlbWVudERlZmluaXRpb247XG5cdGhhc011bHRpVmlzdWFsaXphdGlvbnM6IGJvb2xlYW47XG5cdHRlbXBsYXRlVHlwZTogVGVtcGxhdGVUeXBlO1xuXHR1c2VTZW1hbnRpY0RhdGVSYW5nZT86IGJvb2xlYW47XG5cdGZpbHRlckluaXRpYWxMYXlvdXQ/OiBzdHJpbmc7XG5cdGZpbHRlckxheW91dD86IHN0cmluZztcblx0a3BpRGVmaW5pdGlvbnM6IEtQSURlZmluaXRpb25bXTtcblx0aGlkZUZpbHRlckJhcjogYm9vbGVhbjtcblx0dXNlSGlkZGVuRmlsdGVyQmFyOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uID0gU2luZ2xlVmlld0RlZmluaXRpb24gfCBDdXN0b21WaWV3RGVmaW5pdGlvbiB8IENvbWJpbmVkVmlld0RlZmluaXRpb247XG5cbmV4cG9ydCB0eXBlIENvbWJpbmVkVmlld0RlZmluaXRpb24gPSB7XG5cdHNlbGVjdGlvblZhcmlhbnRQYXRoPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggb24gbXVsdGkgVGFibGUgbW9kZVxuXHR0aXRsZT86IHN0cmluZzsgLy8gb25seSB3aXRoIG11bHRpIFRhYmxlIG1vZGVcblx0cHJpbWFyeVZpc3VhbGl6YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbjtcblx0c2Vjb25kYXJ5VmlzdWFsaXphdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uO1xuXHR0YWJsZUNvbnRyb2xJZDogc3RyaW5nO1xuXHRjaGFydENvbnRyb2xJZDogc3RyaW5nO1xuXHRkZWZhdWx0UGF0aD86IHN0cmluZztcblx0dmlzaWJsZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVZpZXdEZWZpbml0aW9uID0ge1xuXHR0aXRsZT86IHN0cmluZzsgLy8gb25seSB3aXRoIG11bHRpIFRhYmxlIG1vZGVcblx0ZnJhZ21lbnQ6IHN0cmluZztcblx0dHlwZTogc3RyaW5nO1xuXHRjdXN0b21UYWJJZDogc3RyaW5nO1xuXHR2aXNpYmxlPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFNpbmdsZVZpZXdEZWZpbml0aW9uID0gU2luZ2xlVGFibGVWaWV3RGVmaW5pdGlvbiB8IFNpbmdsZUNoYXJ0Vmlld0RlZmluaXRpb247XG5cbmV4cG9ydCB0eXBlIEJhc2VTaW5nbGVWaWV3RGVmaW5pdGlvbiA9IHtcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7IC8vIG9ubHkgd2l0aCBvbiBtdWx0aSBUYWJsZSBtb2RlXG5cdHRpdGxlPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggbXVsdGkgVGFibGUgbW9kZVxuXHRwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpbmdsZVRhYmxlVmlld0RlZmluaXRpb24gPSBCYXNlU2luZ2xlVmlld0RlZmluaXRpb24gJiB7XG5cdHRhYmxlQ29udHJvbElkPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgU2luZ2xlQ2hhcnRWaWV3RGVmaW5pdGlvbiA9IEJhc2VTaW5nbGVWaWV3RGVmaW5pdGlvbiAmIHtcblx0Y2hhcnRDb250cm9sSWQ/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBzdHJpbmc7XG59O1xuXG50eXBlIENvbnRlbnRBcmVhSUQgPSB7XG5cdGNoYXJ0SWQ6IHN0cmluZztcblx0dGFibGVJZDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYWxsIGxpc3QgcmVwb3J0IHRhYmxlcy5cbiAqXG4gKiBAcGFyYW0gdmlld3MgVGhlIGxpc3QgcmVwb3J0IHZpZXdzIGNvbmZpZ3VyZWQgaW4gdGhlIG1hbmlmZXN0XG4gKiBAcmV0dXJucyBUaGUgbGlzdCByZXBvcnQgdGFibGVcbiAqL1xuZnVuY3Rpb24gZ2V0VGFibGVWaXN1YWxpemF0aW9ucyh2aWV3czogTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uW10pOiBUYWJsZVZpc3VhbGl6YXRpb25bXSB7XG5cdGNvbnN0IHRhYmxlczogVGFibGVWaXN1YWxpemF0aW9uW10gPSBbXTtcblx0dmlld3MuZm9yRWFjaChmdW5jdGlvbiAodmlldykge1xuXHRcdGlmICghKHZpZXcgYXMgQ3VzdG9tVmlld0RlZmluaXRpb24pLnR5cGUpIHtcblx0XHRcdGNvbnN0IHZpc3VhbGl6YXRpb25zID0gKHZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbikuc2Vjb25kYXJ5VmlzdWFsaXphdGlvblxuXHRcdFx0XHQ/ICh2aWV3IGFzIENvbWJpbmVkVmlld0RlZmluaXRpb24pLnNlY29uZGFyeVZpc3VhbGl6YXRpb24udmlzdWFsaXphdGlvbnNcblx0XHRcdFx0OiAodmlldyBhcyBTaW5nbGVWaWV3RGVmaW5pdGlvbikucHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zO1xuXG5cdFx0XHR2aXN1YWxpemF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uICh2aXN1YWxpemF0aW9uKSB7XG5cdFx0XHRcdGlmICh2aXN1YWxpemF0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlKSB7XG5cdFx0XHRcdFx0dGFibGVzLnB1c2godmlzdWFsaXphdGlvbik7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiB0YWJsZXM7XG59XG5cbmZ1bmN0aW9uIGdldENoYXJ0VmlzdWFsaXphdGlvbnModmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdKTogQ2hhcnRWaXN1YWxpemF0aW9uW10ge1xuXHRjb25zdCBjaGFydHM6IENoYXJ0VmlzdWFsaXphdGlvbltdID0gW107XG5cdHZpZXdzLmZvckVhY2goZnVuY3Rpb24gKHZpZXcpIHtcblx0XHRpZiAoISh2aWV3IGFzIEN1c3RvbVZpZXdEZWZpbml0aW9uKS50eXBlKSB7XG5cdFx0XHRjb25zdCB2aXN1YWxpemF0aW9ucyA9ICh2aWV3IGFzIENvbWJpbmVkVmlld0RlZmluaXRpb24pLnByaW1hcnlWaXN1YWxpemF0aW9uXG5cdFx0XHRcdD8gKHZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbikucHJpbWFyeVZpc3VhbGl6YXRpb24udmlzdWFsaXphdGlvbnNcblx0XHRcdFx0OiAodmlldyBhcyBTaW5nbGVWaWV3RGVmaW5pdGlvbikucHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zO1xuXG5cdFx0XHR2aXN1YWxpemF0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uICh2aXN1YWxpemF0aW9uKSB7XG5cdFx0XHRcdGlmICh2aXN1YWxpemF0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0KSB7XG5cdFx0XHRcdFx0Y2hhcnRzLnB1c2godmlzdWFsaXphdGlvbik7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiBjaGFydHM7XG59XG5cbmNvbnN0IGdldERlZmF1bHRTZW1hbnRpY0RhdGVzID0gZnVuY3Rpb24gKGZpbHRlckZpZWxkczogUmVjb3JkPHN0cmluZywgQ3VzdG9tRWxlbWVudEZpbHRlckZpZWxkPik6IFJlY29yZDxzdHJpbmcsIERlZmF1bHRTZW1hbnRpY0RhdGU+IHtcblx0Y29uc3QgZGVmYXVsdFNlbWFudGljRGF0ZXM6IGFueSA9IHt9O1xuXHRmb3IgKGNvbnN0IGZpbHRlckZpZWxkIGluIGZpbHRlckZpZWxkcykge1xuXHRcdGlmIChmaWx0ZXJGaWVsZHNbZmlsdGVyRmllbGRdPy5zZXR0aW5ncz8uZGVmYXVsdFZhbHVlcz8ubGVuZ3RoKSB7XG5cdFx0XHRkZWZhdWx0U2VtYW50aWNEYXRlc1tmaWx0ZXJGaWVsZF0gPSBmaWx0ZXJGaWVsZHNbZmlsdGVyRmllbGRdPy5zZXR0aW5ncz8uZGVmYXVsdFZhbHVlcztcblx0XHR9XG5cdH1cblx0cmV0dXJuIGRlZmF1bHRTZW1hbnRpY0RhdGVzO1xufTtcblxuLyoqXG4gKiBGaW5kIGEgdmlzdWFsaXphdGlvbiBhbm5vdGF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgbGlzdCByZXBvcnQuXG4gKlxuICogQHBhcmFtIGVudGl0eVR5cGUgVGhlIGN1cnJlbnQgRW50aXR5VHlwZVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBpc0FMUFxuICogQHJldHVybnMgQSBjb21wbGlhbnQgYW5ub3RhdGlvbiBmb3IgcmVuZGVyaW5nIHRoZSBsaXN0IHJlcG9ydFxuICovXG5mdW5jdGlvbiBnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbihcblx0ZW50aXR5VHlwZTogRW50aXR5VHlwZSxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0aXNBTFA6IGJvb2xlYW5cbik6IExpbmVJdGVtIHwgUHJlc2VudGF0aW9uVmFyaWFudCB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgfCB1bmRlZmluZWQge1xuXHRjb25zdCBhbm5vdGF0aW9uUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0RGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgoKTtcblx0Y29uc3Qgc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA9IGdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQoZW50aXR5VHlwZSwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRjb25zdCBlcnJvck1lc3NhZ2VGb3JBTFAgPSBcIkFMUCBmbGF2b3IgbmVlZHMgYm90aCBjaGFydCBhbmQgdGFibGUgdG8gbG9hZCB0aGUgYXBwbGljYXRpb25cIjtcblxuXHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdGlmIChhbm5vdGF0aW9uUGF0aCkge1xuXHRcdFx0Y29uc3QgcHJlc2VudGF0aW9uVmFyaWFudCA9IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRcdGlmICghcHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJQcmVzZW50YXRpb24gVmFyaWFudCBpcyBub3QgY29uZmlndXJlZCBpbiB0aGUgU1BWIG1lbnRpb25lZCBpbiB0aGUgbWFuaWZlc3RcIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIWlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQsIGlzQUxQKSkge1xuXHRcdFx0XHRpZiAoaXNBTFApIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlRm9yQUxQKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaXNTZWxlY3Rpb25QcmVzZW50YXRpb25Db21wbGlhbnQoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCwgaXNBTFApID09PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHR9IGVsc2UgaWYgKGlzQUxQKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlRm9yQUxQKTtcblx0XHR9XG5cdH1cblxuXHRjb25zdCBwcmVzZW50YXRpb25WYXJpYW50ID0gZ2V0RGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQoZW50aXR5VHlwZSk7XG5cdGlmIChwcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0aWYgKGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQsIGlzQUxQKSkge1xuXHRcdFx0cmV0dXJuIHByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0fSBlbHNlIGlmIChpc0FMUCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZUZvckFMUCk7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCFpc0FMUCkge1xuXHRcdHJldHVybiBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSk7XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuY29uc3QgZ2V0VmlldyA9IGZ1bmN0aW9uICh2aWV3Q29udmVydGVyQ29uZmlndXJhdGlvbjogVmlld0NvbnZlcnRlclNldHRpbmdzKTogTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uIHtcblx0bGV0IGNvbmZpZyA9IHZpZXdDb252ZXJ0ZXJDb25maWd1cmF0aW9uO1xuXHRpZiAoY29uZmlnLmNvbnZlcnRlckNvbnRleHQpIHtcblx0XHRsZXQgY29udmVydGVyQ29udGV4dCA9IGNvbmZpZy5jb252ZXJ0ZXJDb250ZXh0O1xuXHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBWaWV3QW5ub3RhdGlvbkNvbmZpZ3VyYXRpb247XG5cdFx0Y29uc3QgaXNNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uID0gZnVuY3Rpb24gKGN1cnJlbnRDb25maWc6IFZpZXdDb25maWd1cmF0aW9uKTogY3VycmVudENvbmZpZyBpcyBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uIHtcblx0XHRcdHJldHVybiAoY3VycmVudENvbmZpZyBhcyBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uKS5rZXkgIT09IHVuZGVmaW5lZDtcblx0XHR9O1xuXHRcdGxldCBwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiA9IGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0XHRcdGNvbmZpZy5hbm5vdGF0aW9uXG5cdFx0XHRcdD8gY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKGNvbmZpZy5hbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSwgY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkpXG5cdFx0XHRcdDogXCJcIixcblx0XHRcdHRydWUsXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0Y29uZmlnIGFzIFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdGlzTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbihjb25maWcpXG5cdFx0KTtcblx0XHRsZXQgdGFibGVDb250cm9sSWQgPSBcIlwiO1xuXHRcdGxldCBjaGFydENvbnRyb2xJZCA9IFwiXCI7XG5cdFx0bGV0IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBcIlwiO1xuXHRcdGxldCBzZWxlY3Rpb25WYXJpYW50UGF0aCA9IFwiXCI7XG5cdFx0Y29uc3QgY3JlYXRlVmlzdWFsaXphdGlvbiA9IGZ1bmN0aW9uIChjdXJyZW50UHJlc2VudGF0aW9uOiBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24sIGlzUHJpbWFyeT86IGJvb2xlYW4pIHtcblx0XHRcdGxldCBkZWZhdWx0VmlzdWFsaXphdGlvbjtcblx0XHRcdGZvciAoY29uc3QgdmlzdWFsaXphdGlvbiBvZiBjdXJyZW50UHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRcdGlmIChpc1ByaW1hcnkgJiYgdmlzdWFsaXphdGlvbi50eXBlID09PSBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCkge1xuXHRcdFx0XHRcdGRlZmF1bHRWaXN1YWxpemF0aW9uID0gdmlzdWFsaXphdGlvbjtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWlzUHJpbWFyeSAmJiB2aXN1YWxpemF0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlKSB7XG5cdFx0XHRcdFx0ZGVmYXVsdFZpc3VhbGl6YXRpb24gPSB2aXN1YWxpemF0aW9uO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBwcmVzZW50YXRpb25DcmVhdGVkID0gT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudFByZXNlbnRhdGlvbik7XG5cdFx0XHRpZiAoZGVmYXVsdFZpc3VhbGl6YXRpb24pIHtcblx0XHRcdFx0cHJlc2VudGF0aW9uQ3JlYXRlZC52aXN1YWxpemF0aW9ucyA9IFtkZWZhdWx0VmlzdWFsaXphdGlvbl07XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoKGlzUHJpbWFyeSA/IFwiUHJpbWFyeVwiIDogXCJTZWNvbmRhcnlcIikgKyBcIiB2aXN1YWxpc2F0aW9uIG5lZWRzIHZhbGlkIFwiICsgKGlzUHJpbWFyeSA/IFwiY2hhcnRcIiA6IFwidGFibGVcIikpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHByZXNlbnRhdGlvbkNyZWF0ZWQ7XG5cdFx0fTtcblx0XHRjb25zdCBnZXRQcmVzZW50YXRpb24gPSBmdW5jdGlvbiAoaXRlbTogU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uLCBpc1ByaW1hcnk6IGJvb2xlYW4pIHtcblx0XHRcdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihpdGVtLmFubm90YXRpb25QYXRoKTtcblx0XHRcdGNvbnN0IHRhcmdldEFubm90YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblx0XHRcdGNvbnN0IGFubm90YXRpb24gPSB0YXJnZXRBbm5vdGF0aW9uO1xuXHRcdFx0aWYgKGFubm90YXRpb24gfHwgY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZSkge1xuXHRcdFx0XHRwcmVzZW50YXRpb24gPSBnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24oXG5cdFx0XHRcdFx0YW5ub3RhdGlvblxuXHRcdFx0XHRcdFx0PyBjb252ZXJ0ZXJDb250ZXh0LmdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgoYW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUsIGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpKVxuXHRcdFx0XHRcdFx0OiBcIlwiLFxuXHRcdFx0XHRcdHRydWUsXG5cdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRjb25maWcgYXMgVmlld1BhdGhDb25maWd1cmF0aW9uXG5cdFx0XHRcdCk7XG5cdFx0XHRcdHJldHVybiBwcmVzZW50YXRpb247XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zdCBzRXJyb3IgPVxuXHRcdFx0XHRcdFwiQW5ub3RhdGlvbiBQYXRoIGZvciB0aGUgXCIgK1xuXHRcdFx0XHRcdChpc1ByaW1hcnkgPyBcInByaW1hcnlcIiA6IFwic2Vjb25kYXJ5XCIpICtcblx0XHRcdFx0XHRcIiB2aXN1YWxpc2F0aW9uIG1lbnRpb25lZCBpbiB0aGUgbWFuaWZlc3QgaXMgbm90IGZvdW5kXCI7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihzRXJyb3IpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0Y29uc3QgY3JlYXRlQWxwVmlldyA9IGZ1bmN0aW9uIChcblx0XHRcdHByZXNlbnRhdGlvbnM6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbltdLFxuXHRcdFx0ZGVmYXVsdFBhdGg6IFwiYm90aFwiIHwgXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiIHwgdW5kZWZpbmVkXG5cdFx0KSB7XG5cdFx0XHRjb25zdCBwcmltYXJ5VmlzdWFsaXphdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uIHwgdW5kZWZpbmVkID0gY3JlYXRlVmlzdWFsaXphdGlvbihwcmVzZW50YXRpb25zWzBdLCB0cnVlKTtcblx0XHRcdGNoYXJ0Q29udHJvbElkID0gKHByaW1hcnlWaXN1YWxpemF0aW9uPy52aXN1YWxpemF0aW9uc1swXSBhcyBDaGFydFZpc3VhbGl6YXRpb24pPy5pZDtcblx0XHRcdGNvbnN0IHNlY29uZGFyeVZpc3VhbGl6YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCA9IGNyZWF0ZVZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdHByZXNlbnRhdGlvbnNbMV0gPyBwcmVzZW50YXRpb25zWzFdIDogcHJlc2VudGF0aW9uc1swXSxcblx0XHRcdFx0ZmFsc2Vcblx0XHRcdCk7XG5cdFx0XHR0YWJsZUNvbnRyb2xJZCA9IChzZWNvbmRhcnlWaXN1YWxpemF0aW9uPy52aXN1YWxpemF0aW9uc1swXSBhcyBUYWJsZVZpc3VhbGl6YXRpb24pPy5hbm5vdGF0aW9uPy5pZDtcblx0XHRcdGlmIChwcmltYXJ5VmlzdWFsaXphdGlvbiAmJiBzZWNvbmRhcnlWaXN1YWxpemF0aW9uKSB7XG5cdFx0XHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBWaWV3UGF0aENvbmZpZ3VyYXRpb247XG5cdFx0XHRcdGNvbnN0IHZpc2libGUgPSBjb25maWcudmlzaWJsZTtcblx0XHRcdFx0Y29uc3QgdmlldzogQ29tYmluZWRWaWV3RGVmaW5pdGlvbiA9IHtcblx0XHRcdFx0XHRwcmltYXJ5VmlzdWFsaXphdGlvbixcblx0XHRcdFx0XHRzZWNvbmRhcnlWaXN1YWxpemF0aW9uLFxuXHRcdFx0XHRcdHRhYmxlQ29udHJvbElkLFxuXHRcdFx0XHRcdGNoYXJ0Q29udHJvbElkLFxuXHRcdFx0XHRcdGRlZmF1bHRQYXRoLFxuXHRcdFx0XHRcdHZpc2libGVcblx0XHRcdFx0fTtcblx0XHRcdFx0cmV0dXJuIHZpZXc7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRpZiAoXG5cdFx0XHQhY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKGNvbmZpZyBhcyBWaWV3UGF0aENvbmZpZ3VyYXRpb24pICYmXG5cdFx0XHRwcmVzZW50YXRpb24/LnZpc3VhbGl6YXRpb25zPy5sZW5ndGggPT09IDIgJiZcblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2Vcblx0XHQpIHtcblx0XHRcdGNvbnN0IHZpZXc6IENvbWJpbmVkVmlld0RlZmluaXRpb24gfCB1bmRlZmluZWQgPSBjcmVhdGVBbHBWaWV3KFtwcmVzZW50YXRpb25dLCBcImJvdGhcIik7XG5cdFx0XHRpZiAodmlldykge1xuXHRcdFx0XHRyZXR1cm4gdmlldztcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKGNvbmZpZyBhcyBWaWV3UGF0aENvbmZpZ3VyYXRpb24pIHx8XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlXG5cdFx0KSB7XG5cdFx0XHRjb25zdCB7IHByaW1hcnksIHNlY29uZGFyeSB9ID0gY29uZmlnIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXHRcdFx0aWYgKHByaW1hcnkgJiYgcHJpbWFyeS5sZW5ndGggJiYgc2Vjb25kYXJ5ICYmIHNlY29uZGFyeS5sZW5ndGgpIHtcblx0XHRcdFx0Y29uc3QgdmlldzogQ29tYmluZWRWaWV3RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCA9IGNyZWF0ZUFscFZpZXcoXG5cdFx0XHRcdFx0W2dldFByZXNlbnRhdGlvbihwcmltYXJ5WzBdLCB0cnVlKSwgZ2V0UHJlc2VudGF0aW9uKHNlY29uZGFyeVswXSwgZmFsc2UpXSxcblx0XHRcdFx0XHQoY29uZmlnIGFzIENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uKS5kZWZhdWx0UGF0aFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAodmlldykge1xuXHRcdFx0XHRcdHJldHVybiB2aWV3O1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJTZWNvbmRhcnlJdGVtcyBpbiB0aGUgVmlld3MgaXMgbm90IHByZXNlbnRcIik7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChpc011bHRpcGxlVmlld0NvbmZpZ3VyYXRpb24oY29uZmlnKSkge1xuXHRcdFx0Ly8ga2V5IGV4aXN0cyBvbmx5IG9uIG11bHRpIHRhYmxlcyBtb2RlXG5cdFx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oKGNvbmZpZyBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmFubm90YXRpb25QYXRoKTtcblx0XHRcdGNvbnN0IHZpZXdBbm5vdGF0aW9uOiBWaWV3QW5ub3RhdGlvbnMgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uO1xuXHRcdFx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cdFx0XHR0aXRsZSA9IGNvbXBpbGVFeHByZXNzaW9uKGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbih2aWV3QW5ub3RhdGlvbi5UZXh0KSk7XG5cdFx0XHQvLyBOZWVkIHRvIGxvb3Agb24gdGFibGUgaW50byB2aWV3cyBzaW5jZSBtdWx0aSB0YWJsZSBtb2RlIGdldCBzcGVjaWZpYyBjb25maWd1cmF0aW9uIChoaWRkZW4gZmlsdGVycyBvciBUYWJsZSBJZClcblx0XHRcdHByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9ucy5mb3JFYWNoKCh2aXN1YWxpemF0aW9uRGVmaW5pdGlvbiwgaW5kZXgpID0+IHtcblx0XHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi50eXBlKSB7XG5cdFx0XHRcdFx0Y2FzZSBWaXN1YWxpemF0aW9uVHlwZS5UYWJsZTpcblx0XHRcdFx0XHRcdGNvbnN0IHRhYmxlVmlzdWFsaXphdGlvbiA9IHByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9uc1tpbmRleF0gYXMgVGFibGVWaXN1YWxpemF0aW9uO1xuXHRcdFx0XHRcdFx0Y29uc3QgZmlsdGVycyA9IHRhYmxlVmlzdWFsaXphdGlvbi5jb250cm9sLmZpbHRlcnMgfHwge307XG5cdFx0XHRcdFx0XHRmaWx0ZXJzLmhpZGRlbkZpbHRlcnMgPSBmaWx0ZXJzLmhpZGRlbkZpbHRlcnMgfHwgeyBwYXRoczogW10gfTtcblx0XHRcdFx0XHRcdGlmICghKGNvbmZpZyBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmtlZXBQcmV2aW91c1BlcnNvbmFsaXphdGlvbikge1xuXHRcdFx0XHRcdFx0XHQvLyBOZWVkIHRvIG92ZXJyaWRlIFRhYmxlIElkIHRvIG1hdGNoIHdpdGggVGFiIEtleSAoY3VycmVudGx5IG9ubHkgdGFibGUgaXMgbWFuYWdlZCBpbiBtdWx0aXBsZSB2aWV3IG1vZGUpXG5cdFx0XHRcdFx0XHRcdHRhYmxlVmlzdWFsaXphdGlvbi5hbm5vdGF0aW9uLmlkID0gZ2V0VGFibGVJRCgoY29uZmlnIGFzIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbikua2V5IHx8IFwiXCIsIFwiTGluZUl0ZW1cIik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRjb25maWcgPSBjb25maWcgYXMgVmlld0Fubm90YXRpb25Db25maWd1cmF0aW9uO1xuXHRcdFx0XHRcdFx0aWYgKGNvbmZpZy5hbm5vdGF0aW9uPy50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHRcdFx0XHRcdGlmICghY29uZmlnLmFubm90YXRpb24uU2VsZWN0aW9uVmFyaWFudCkge1xuXHRcdFx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdFx0XHRcdGBUaGUgU2VsZWN0aW9uIFZhcmlhbnQgaXMgbWlzc2luZyBmb3IgdGhlIFNlbGVjdGlvbiBQcmVzZW50YXRpb24gVmFyaWFudCAke2NvbmZpZy5hbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZX1gXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50UGF0aCA9IGBAJHtjb25maWcuYW5ub3RhdGlvbi5TZWxlY3Rpb25WYXJpYW50Py5mdWxseVF1YWxpZmllZE5hbWUuc3BsaXQoXCJAXCIpWzFdfWA7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50UGF0aCA9IChjb25maWcgYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uKS5hbm5vdGF0aW9uUGF0aDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vUHJvdmlkZSBTZWxlY3Rpb24gVmFyaWFudCB0byBoaWRkZW5GaWx0ZXJzIGluIG9yZGVyIHRvIHNldCB0aGUgU1YgZmlsdGVycyB0byB0aGUgdGFibGUuXG5cdFx0XHRcdFx0XHQvL01EQyBUYWJsZSBvdmVycmlkZXMgYmluZGluZyBGaWx0ZXIgYW5kIGZyb20gU0FQIEZFIHRoZSBvbmx5IG1ldGhvZCB3aGVyZSB3ZSBhcmUgYWJsZSB0byBhZGRcblx0XHRcdFx0XHRcdC8vYWRkaXRpb25hbCBmaWx0ZXIgaXMgJ3JlYmluZFRhYmxlJyBpbnRvIFRhYmxlIGRlbGVnYXRlLlxuXHRcdFx0XHRcdFx0Ly9UbyBhdm9pZCBpbXBsZW1lbnRpbmcgc3BlY2lmaWMgTFIgZmVhdHVyZSB0byBTQVAgRkUgTWFjcm8gVGFibGUsIHRoZSBmaWx0ZXIocykgcmVsYXRlZCB0byB0aGUgVGFiIChtdWx0aSB0YWJsZSBtb2RlKVxuXHRcdFx0XHRcdFx0Ly9jYW4gYmUgcGFzc2VkIHRvIG1hY3JvIHRhYmxlIHZpYSBwYXJhbWV0ZXIvY29udGV4dCBuYW1lZCBmaWx0ZXJzIGFuZCBrZXkgaGlkZGVuRmlsdGVycy5cblx0XHRcdFx0XHRcdGZpbHRlcnMuaGlkZGVuRmlsdGVycy5wYXRocy5wdXNoKHsgYW5ub3RhdGlvblBhdGg6IHNlbGVjdGlvblZhcmlhbnRQYXRoIH0pO1xuXHRcdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uLmNvbnRyb2wuZmlsdGVycyA9IGZpbHRlcnM7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRjYXNlIFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0OlxuXHRcdFx0XHRcdFx0Y29uc3QgY2hhcnRWaXN1YWxpemF0aW9uID0gcHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zW2luZGV4XSBhcyBDaGFydFZpc3VhbGl6YXRpb247XG5cdFx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24uaWQgPSBnZXRDaGFydElEKChjb25maWcgYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uKS5rZXkgfHwgXCJcIiwgXCJDaGFydFwiKTtcblx0XHRcdFx0XHRcdGNoYXJ0VmlzdWFsaXphdGlvbi5tdWx0aVZpZXdzID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9ucy5mb3JFYWNoKCh2aXN1YWxpemF0aW9uRGVmaW5pdGlvbikgPT4ge1xuXHRcdFx0aWYgKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlKSB7XG5cdFx0XHRcdHRhYmxlQ29udHJvbElkID0gdmlzdWFsaXphdGlvbkRlZmluaXRpb24uYW5ub3RhdGlvbi5pZDtcblx0XHRcdH0gZWxzZSBpZiAodmlzdWFsaXphdGlvbkRlZmluaXRpb24udHlwZSA9PT0gVmlzdWFsaXphdGlvblR5cGUuQ2hhcnQpIHtcblx0XHRcdFx0Y2hhcnRDb250cm9sSWQgPSB2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi5pZDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRjb25maWcgPSBjb25maWcgYXMgVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXHRcdGNvbnN0IHZpc2libGUgPSBjb25maWcudmlzaWJsZTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0cHJlc2VudGF0aW9uLFxuXHRcdFx0dGFibGVDb250cm9sSWQsXG5cdFx0XHRjaGFydENvbnRyb2xJZCxcblx0XHRcdHRpdGxlLFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudFBhdGgsXG5cdFx0XHR2aXNpYmxlXG5cdFx0fTtcblx0fSBlbHNlIHtcblx0XHRjb25maWcgPSBjb25maWcgYXMgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb247XG5cdFx0Y29uc3QgdGl0bGUgPSBjb25maWcubGFiZWwsXG5cdFx0XHRmcmFnbWVudCA9IGNvbmZpZy50ZW1wbGF0ZSxcblx0XHRcdHR5cGUgPSBjb25maWcudHlwZSxcblx0XHRcdGN1c3RvbVRhYklkID0gZ2V0Q3VzdG9tVGFiSUQoY29uZmlnLmtleSB8fCBcIlwiKSxcblx0XHRcdHZpc2libGUgPSBjb25maWcudmlzaWJsZTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0dGl0bGUsXG5cdFx0XHRmcmFnbWVudCxcblx0XHRcdHR5cGUsXG5cdFx0XHRjdXN0b21UYWJJZCxcblx0XHRcdHZpc2libGVcblx0XHR9O1xuXHR9XG59O1xuXG5jb25zdCBnZXRWaWV3cyA9IGZ1bmN0aW9uIChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c2V0dGluZ3NWaWV3czogTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWRcbik6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdIHtcblx0bGV0IHZpZXdDb252ZXJ0ZXJDb25maWdzOiBWaWV3Q29udmVydGVyU2V0dGluZ3NbXSA9IFtdO1xuXHRpZiAoc2V0dGluZ3NWaWV3cykge1xuXHRcdHNldHRpbmdzVmlld3MucGF0aHMuZm9yRWFjaCgocGF0aDogVmlld1BhdGhDb25maWd1cmF0aW9uIHwgQ3VzdG9tVmlld1RlbXBsYXRlQ29uZmlndXJhdGlvbikgPT4ge1xuXHRcdFx0aWYgKGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyhwYXRoIGFzIFZpZXdQYXRoQ29uZmlndXJhdGlvbikpIHtcblx0XHRcdFx0aWYgKHNldHRpbmdzVmlld3MucGF0aHMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIkFMUCBmbGF2b3IgY2Fubm90IGhhdmUgbXVsdGlwbGUgdmlld3NcIik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cGF0aCA9IHBhdGggYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb247XG5cdFx0XHRcdFx0dmlld0NvbnZlcnRlckNvbmZpZ3MucHVzaCh7XG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0cHJpbWFyeTogcGF0aC5wcmltYXJ5LFxuXHRcdFx0XHRcdFx0c2Vjb25kYXJ5OiBwYXRoLnNlY29uZGFyeSxcblx0XHRcdFx0XHRcdGRlZmF1bHRQYXRoOiBwYXRoLmRlZmF1bHRQYXRoXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoKHBhdGggYXMgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb24pLnRlbXBsYXRlKSB7XG5cdFx0XHRcdHBhdGggPSBwYXRoIGFzIEN1c3RvbVZpZXdDb25maWd1cmF0aW9uO1xuXHRcdFx0XHR2aWV3Q29udmVydGVyQ29uZmlncy5wdXNoKHtcblx0XHRcdFx0XHRrZXk6IHBhdGgua2V5LFxuXHRcdFx0XHRcdGxhYmVsOiBwYXRoLmxhYmVsLFxuXHRcdFx0XHRcdHRlbXBsYXRlOiBwYXRoLnRlbXBsYXRlLFxuXHRcdFx0XHRcdHR5cGU6IFwiQ3VzdG9tXCIsXG5cdFx0XHRcdFx0dmlzaWJsZTogcGF0aC52aXNpYmxlXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cGF0aCA9IHBhdGggYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uO1xuXHRcdFx0XHRjb25zdCB2aWV3Q29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihcblx0XHRcdFx0XHRcdHBhdGguY29udGV4dFBhdGggfHwgKHBhdGguZW50aXR5U2V0ICYmIGAvJHtwYXRoLmVudGl0eVNldH1gKSB8fCBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKClcblx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdGVudGl0eVR5cGUgPSB2aWV3Q29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cblx0XHRcdFx0aWYgKGVudGl0eVR5cGUgJiYgdmlld0NvbnZlcnRlckNvbnRleHQpIHtcblx0XHRcdFx0XHRsZXQgYW5ub3RhdGlvbjtcblx0XHRcdFx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IHZpZXdDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKHBhdGguYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0XHRcdGNvbnN0IHRhcmdldEFubm90YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdFx0XHRcdFx0aWYgKHRhcmdldEFubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdGFubm90YXRpb24gPVxuXHRcdFx0XHRcdFx0XHR0YXJnZXRBbm5vdGF0aW9uLnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblZhcmlhbnRcblx0XHRcdFx0XHRcdFx0XHQ/IGdldENvbXBsaWFudFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uKGVudGl0eVR5cGUsIHZpZXdDb252ZXJ0ZXJDb250ZXh0LCBmYWxzZSlcblx0XHRcdFx0XHRcdFx0XHQ6IHRhcmdldEFubm90YXRpb247XG5cdFx0XHRcdFx0XHR2aWV3Q29udmVydGVyQ29uZmlncy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogdmlld0NvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24sXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBwYXRoLmFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0XHRrZWVwUHJldmlvdXNQZXJzb25hbGl6YXRpb246IHBhdGgua2VlcFByZXZpb3VzUGVyc29uYWxpemF0aW9uLFxuXHRcdFx0XHRcdFx0XHRrZXk6IHBhdGgua2V5LFxuXHRcdFx0XHRcdFx0XHR2aXNpYmxlOiBwYXRoLnZpc2libGVcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBUT0RPIERpYWdub3N0aWNzIG1lc3NhZ2Vcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0XHRpZiAoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZSkge1xuXHRcdFx0dmlld0NvbnZlcnRlckNvbmZpZ3MgPSBnZXRBbHBWaWV3Q29uZmlnKGNvbnZlcnRlckNvbnRleHQsIHZpZXdDb252ZXJ0ZXJDb25maWdzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmlld0NvbnZlcnRlckNvbmZpZ3MucHVzaCh7XG5cdFx0XHRcdGFubm90YXRpb246IGdldENvbXBsaWFudFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uKGVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQsIGZhbHNlKSxcblx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB2aWV3Q29udmVydGVyQ29uZmlncy5tYXAoKHZpZXdDb252ZXJ0ZXJDb25maWcpID0+IHtcblx0XHRyZXR1cm4gZ2V0Vmlldyh2aWV3Q29udmVydGVyQ29uZmlnKTtcblx0fSk7XG59O1xuXG5jb25zdCBnZXRNdWx0aVZpZXdzQ29udHJvbCA9IGZ1bmN0aW9uIChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdXG4pOiBNdWx0aVZpZXdzQ29udHJvbENvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQge1xuXHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCB2aWV3c0RlZmluaXRpb246IE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkID0gbWFuaWZlc3RXcmFwcGVyLmdldFZpZXdDb25maWd1cmF0aW9uKCk7XG5cdGlmICh2aWV3cy5sZW5ndGggPiAxICYmICFoYXNNdWx0aVZpc3VhbGl6YXRpb25zKGNvbnZlcnRlckNvbnRleHQpKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNob3dUYWJDb3VudHM6IHZpZXdzRGVmaW5pdGlvbiA/IHZpZXdzRGVmaW5pdGlvbj8uc2hvd0NvdW50cyB8fCBtYW5pZmVzdFdyYXBwZXIuaGFzTXVsdGlwbGVFbnRpdHlTZXRzKCkgOiB1bmRlZmluZWQsIC8vIHdpdGggbXVsdGkgRW50aXR5U2V0cywgdGFiIGNvdW50cyBhcmUgZGlzcGxheWVkIGJ5IGRlZmF1bHRcblx0XHRcdGlkOiBnZXRJY29uVGFiQmFySUQoKVxuXHRcdH07XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn07XG5cbmZ1bmN0aW9uIGdldEFscFZpZXdDb25maWcoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCwgdmlld0NvbmZpZ3M6IFZpZXdDb252ZXJ0ZXJTZXR0aW5nc1tdKTogVmlld0NvbnZlcnRlclNldHRpbmdzW10ge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IGFubm90YXRpb24gPSBnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbihlbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0LCB0cnVlKTtcblx0bGV0IGNoYXJ0LCB0YWJsZTtcblx0aWYgKGFubm90YXRpb24pIHtcblx0XHR2aWV3Q29uZmlncy5wdXNoKHtcblx0XHRcdGFubm90YXRpb246IGFubm90YXRpb24sXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0Y2hhcnQgPSBnZXREZWZhdWx0Q2hhcnQoZW50aXR5VHlwZSk7XG5cdFx0dGFibGUgPSBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSk7XG5cdFx0aWYgKGNoYXJ0ICYmIHRhYmxlKSB7XG5cdFx0XHRjb25zdCBwcmltYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXSA9IFt7IGFubm90YXRpb25QYXRoOiBcIkBcIiArIGNoYXJ0LnRlcm0gfV07XG5cdFx0XHRjb25zdCBzZWNvbmRhcnk6IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbltdID0gW3sgYW5ub3RhdGlvblBhdGg6IFwiQFwiICsgdGFibGUudGVybSB9XTtcblx0XHRcdHZpZXdDb25maWdzLnB1c2goe1xuXHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRwcmltYXJ5OiBwcmltYXJ5LFxuXHRcdFx0XHRzZWNvbmRhcnk6IHNlY29uZGFyeSxcblx0XHRcdFx0ZGVmYXVsdFBhdGg6IFwiYm90aFwiXG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQUxQIGZsYXZvciBuZWVkcyBib3RoIGNoYXJ0IGFuZCB0YWJsZSB0byBsb2FkIHRoZSBhcHBsaWNhdGlvblwiKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHZpZXdDb25maWdzO1xufVxuXG5mdW5jdGlvbiBoYXNNdWx0aVZpc3VhbGl6YXRpb25zKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBib29sZWFuIHtcblx0cmV0dXJuIChcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMoKSB8fFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2Vcblx0KTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEhlYWRlckFjdGlvbnMgPSBmdW5jdGlvbiAoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEJhc2VBY3Rpb25bXSB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdHJldHVybiBpbnNlcnRDdXN0b21FbGVtZW50czxCYXNlQWN0aW9uPihbXSwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdChtYW5pZmVzdFdyYXBwZXIuZ2V0SGVhZGVyQWN0aW9ucygpLCBjb252ZXJ0ZXJDb250ZXh0KS5hY3Rpb25zKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjaGVja0NoYXJ0RmlsdGVyQmFySWQgPSBmdW5jdGlvbiAodmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdLCBmaWx0ZXJCYXJJZDogc3RyaW5nKSB7XG5cdHZpZXdzLmZvckVhY2goKHZpZXcpID0+IHtcblx0XHRpZiAoISh2aWV3IGFzIEN1c3RvbVZpZXdEZWZpbml0aW9uKS50eXBlKSB7XG5cdFx0XHRjb25zdCBwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiA9ICh2aWV3IGFzIFNpbmdsZVZpZXdEZWZpbml0aW9uKS5wcmVzZW50YXRpb247XG5cdFx0XHRwcmVzZW50YXRpb24udmlzdWFsaXphdGlvbnMuZm9yRWFjaCgodmlzdWFsaXphdGlvbkRlZmluaXRpb24pID0+IHtcblx0XHRcdFx0aWYgKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0ICYmIHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLmZpbHRlcklkICE9PSBmaWx0ZXJCYXJJZCkge1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLmZpbHRlcklkID0gZmlsdGVyQmFySWQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIExpc3RSZXBvcnREZWZpbml0aW9uIGZvciBtdWx0aXBsZSBlbnRpdHkgc2V0cyAobXVsdGlwbGUgdGFibGUgbW9kZSkuXG4gKlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcmV0dXJucyBUaGUgbGlzdCByZXBvcnQgZGVmaW5pdGlvbiBiYXNlZCBvbiBhbm5vdGF0aW9uICsgbWFuaWZlc3RcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnRQYWdlID0gZnVuY3Rpb24gKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBMaXN0UmVwb3J0RGVmaW5pdGlvbiB7XG5cdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0Y29uc3Qgc0NvbnRleHRQYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpO1xuXG5cdGlmICghc0NvbnRleHRQYXRoKSB7XG5cdFx0Ly8gSWYgd2UgZG9uJ3QgaGF2ZSBhbiBlbnRpdHlTZXQgYXQgdGhpcyBwb2ludCB3ZSBoYXZlIGFuIGlzc3VlIEknZCBzYXlcblx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcIkFuIEVudGl0eVNldCBpcyByZXF1aXJlZCB0byBiZSBhYmxlIHRvIGRpc3BsYXkgYSBMaXN0UmVwb3J0LCBwbGVhc2UgYWRqdXN0IHlvdXIgYGVudGl0eVNldGAgcHJvcGVydHkgdG8gcG9pbnQgdG8gb25lLlwiXG5cdFx0KTtcblx0fVxuXHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCB2aWV3c0RlZmluaXRpb246IE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkID0gbWFuaWZlc3RXcmFwcGVyLmdldFZpZXdDb25maWd1cmF0aW9uKCk7XG5cdGNvbnN0IGhhc011bHRpcGxlRW50aXR5U2V0cyA9IG1hbmlmZXN0V3JhcHBlci5oYXNNdWx0aXBsZUVudGl0eVNldHMoKTtcblx0Y29uc3Qgdmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdID0gZ2V0Vmlld3MoY29udmVydGVyQ29udGV4dCwgdmlld3NEZWZpbml0aW9uKTtcblx0Y29uc3QgbHJUYWJsZVZpc3VhbGl6YXRpb25zID0gZ2V0VGFibGVWaXN1YWxpemF0aW9ucyh2aWV3cyk7XG5cdGNvbnN0IGxyQ2hhcnRWaXN1YWxpemF0aW9ucyA9IGdldENoYXJ0VmlzdWFsaXphdGlvbnModmlld3MpO1xuXHRjb25zdCBzaG93UGlubmFibGVUb2dnbGUgPSBsclRhYmxlVmlzdWFsaXphdGlvbnMuc29tZSgodGFibGUpID0+IHRhYmxlLmNvbnRyb2wudHlwZSA9PT0gXCJSZXNwb25zaXZlVGFibGVcIik7XG5cdGxldCBzaW5nbGVUYWJsZUlkID0gXCJcIjtcblx0bGV0IHNpbmdsZUNoYXJ0SWQgPSBcIlwiO1xuXHRjb25zdCBkeW5hbWljTGlzdFJlcG9ydElkID0gZ2V0RHluYW1pY0xpc3RSZXBvcnRJRCgpO1xuXHRjb25zdCBmaWx0ZXJCYXJJZCA9IGdldEZpbHRlckJhcklEKHNDb250ZXh0UGF0aCk7XG5cdGNvbnN0IGZpbHRlclZhcmlhbnRNYW5hZ2VtZW50SUQgPSBnZXRGaWx0ZXJWYXJpYW50TWFuYWdlbWVudElEKGZpbHRlckJhcklkKTtcblx0Y29uc3QgZmJDb25maWcgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0RmlsdGVyQ29uZmlndXJhdGlvbigpO1xuXHRjb25zdCBmaWx0ZXJJbml0aWFsTGF5b3V0ID0gZmJDb25maWc/LmluaXRpYWxMYXlvdXQgIT09IHVuZGVmaW5lZCA/IGZiQ29uZmlnPy5pbml0aWFsTGF5b3V0LnRvTG93ZXJDYXNlKCkgOiBcImNvbXBhY3RcIjtcblx0Y29uc3QgZmlsdGVyTGF5b3V0ID0gZmJDb25maWc/LmxheW91dCAhPT0gdW5kZWZpbmVkID8gZmJDb25maWc/LmxheW91dC50b0xvd2VyQ2FzZSgpIDogXCJjb21wYWN0XCI7XG5cdGNvbnN0IHVzZVNlbWFudGljRGF0ZVJhbmdlID0gZmJDb25maWcudXNlU2VtYW50aWNEYXRlUmFuZ2UgIT09IHVuZGVmaW5lZCA/IGZiQ29uZmlnLnVzZVNlbWFudGljRGF0ZVJhbmdlIDogdHJ1ZTtcblx0Y29uc3Qgc2hvd0NsZWFyQnV0dG9uID0gZmJDb25maWcuc2hvd0NsZWFyQnV0dG9uICE9PSB1bmRlZmluZWQgPyBmYkNvbmZpZy5zaG93Q2xlYXJCdXR0b24gOiBmYWxzZTtcblxuXHRjb25zdCBvQ29uZmlnID0gZ2V0Q29udGVudEFyZWFJZChjb252ZXJ0ZXJDb250ZXh0LCB2aWV3cyk7XG5cdGlmIChvQ29uZmlnKSB7XG5cdFx0c2luZ2xlQ2hhcnRJZCA9IG9Db25maWcuY2hhcnRJZDtcblx0XHRzaW5nbGVUYWJsZUlkID0gb0NvbmZpZy50YWJsZUlkO1xuXHR9XG5cblx0Y29uc3QgdXNlSGlkZGVuRmlsdGVyQmFyID0gbWFuaWZlc3RXcmFwcGVyLnVzZUhpZGRlbkZpbHRlckJhcigpO1xuXHQvLyBDaGFydCBoYXMgYSBkZXBlbmRlbmN5IHRvIGZpbHRlciBiYXIgKGlzc3VlIHdpdGggbG9hZGluZyBkYXRhKS4gT25jZSByZXNvbHZlZCwgdGhlIGNoZWNrIGZvciBjaGFydCBzaG91bGQgYmUgcmVtb3ZlZCBoZXJlLlxuXHQvLyBVbnRpbCB0aGVuLCBoaWRpbmcgZmlsdGVyIGJhciBpcyBub3cgYWxsb3dlZCBpZiBhIGNoYXJ0IGlzIGJlaW5nIHVzZWQgb24gTFIuXG5cdGNvbnN0IGhpZGVGaWx0ZXJCYXIgPSAobWFuaWZlc3RXcmFwcGVyLmlzRmlsdGVyQmFySGlkZGVuKCkgfHwgdXNlSGlkZGVuRmlsdGVyQmFyKSAmJiBzaW5nbGVDaGFydElkID09PSBcIlwiO1xuXHRjb25zdCBsckZpbHRlclByb3BlcnRpZXMgPSBnZXRTZWxlY3Rpb25GaWVsZHMoY29udmVydGVyQ29udGV4dCwgbHJUYWJsZVZpc3VhbGl6YXRpb25zKTtcblx0Y29uc3Qgc2VsZWN0aW9uRmllbGRzID0gbHJGaWx0ZXJQcm9wZXJ0aWVzLnNlbGVjdGlvbkZpZWxkcztcblx0Y29uc3QgcHJvcGVydHlJbmZvRmllbGRzID0gbHJGaWx0ZXJQcm9wZXJ0aWVzLnNQcm9wZXJ0eUluZm87XG5cdGNvbnN0IGhpZGVCYXNpY1NlYXJjaCA9IGdldEZpbHRlckJhckhpZGVCYXNpY1NlYXJjaChsclRhYmxlVmlzdWFsaXphdGlvbnMsIGxyQ2hhcnRWaXN1YWxpemF0aW9ucywgY29udmVydGVyQ29udGV4dCk7XG5cdGNvbnN0IG11bHRpVmlld0NvbnRyb2wgPSBnZXRNdWx0aVZpZXdzQ29udHJvbChjb252ZXJ0ZXJDb250ZXh0LCB2aWV3cyk7XG5cblx0Y29uc3Qgc2VsZWN0aW9uVmFyaWFudCA9IG11bHRpVmlld0NvbnRyb2wgPyB1bmRlZmluZWQgOiBnZXRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRjb25zdCBkZWZhdWx0U2VtYW50aWNEYXRlcyA9IHVzZVNlbWFudGljRGF0ZVJhbmdlID8gZ2V0RGVmYXVsdFNlbWFudGljRGF0ZXMoZ2V0TWFuaWZlc3RGaWx0ZXJGaWVsZHMoZW50aXR5VHlwZSwgY29udmVydGVyQ29udGV4dCkpIDoge307XG5cblx0Ly8gU29ydCBoZWFkZXIgYWN0aW9ucyBhY2NvcmRpbmcgdG8gcG9zaXRpb24gYXR0cmlidXRlcyBpbiBtYW5pZmVzdFxuXHRjb25zdCBoZWFkZXJBY3Rpb25zID0gZ2V0SGVhZGVyQWN0aW9ucyhjb252ZXJ0ZXJDb250ZXh0KTtcblx0aWYgKGhhc011bHRpcGxlRW50aXR5U2V0cykge1xuXHRcdGNoZWNrQ2hhcnRGaWx0ZXJCYXJJZCh2aWV3cywgZmlsdGVyQmFySWQpO1xuXHR9XG5cblx0Y29uc3QgdmlzdWFsaXphdGlvbklkcyA9IGxyVGFibGVWaXN1YWxpemF0aW9uc1xuXHRcdC5tYXAoKHZpc3VhbGl6YXRpb24pID0+IHtcblx0XHRcdHJldHVybiB2aXN1YWxpemF0aW9uLmFubm90YXRpb24uaWQ7XG5cdFx0fSlcblx0XHQuY29uY2F0KFxuXHRcdFx0bHJDaGFydFZpc3VhbGl6YXRpb25zLm1hcCgodmlzdWFsaXphdGlvbikgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdmlzdWFsaXphdGlvbi5pZDtcblx0XHRcdH0pXG5cdFx0KTtcblx0Y29uc3QgdGFyZ2V0Q29udHJvbElkcyA9IFtcblx0XHQuLi4oaGlkZUZpbHRlckJhciAmJiAhdXNlSGlkZGVuRmlsdGVyQmFyID8gW10gOiBbZmlsdGVyQmFySWRdKSxcblx0XHQuLi4obWFuaWZlc3RXcmFwcGVyLmdldFZhcmlhbnRNYW5hZ2VtZW50KCkgIT09IFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Db250cm9sID8gdmlzdWFsaXphdGlvbklkcyA6IFtdKSxcblx0XHQuLi4obXVsdGlWaWV3Q29udHJvbCA/IFttdWx0aVZpZXdDb250cm9sLmlkXSA6IFtdKVxuXHRdO1xuXG5cdGNvbnN0IHN0aWNreVN1YmhlYWRlclByb3ZpZGVyID1cblx0XHRtdWx0aVZpZXdDb250cm9sICYmIG1hbmlmZXN0V3JhcHBlci5nZXRTdGlja3lNdWx0aVRhYkhlYWRlckNvbmZpZ3VyYXRpb24oKSA/IG11bHRpVmlld0NvbnRyb2wuaWQgOiB1bmRlZmluZWQ7XG5cblx0cmV0dXJuIHtcblx0XHRtYWluRW50aXR5U2V0OiBzQ29udGV4dFBhdGgsXG5cdFx0bWFpbkVudGl0eVR5cGU6IGAke3NDb250ZXh0UGF0aH0vYCxcblx0XHRtdWx0aVZpZXdzQ29udHJvbDogbXVsdGlWaWV3Q29udHJvbCxcblx0XHRzdGlja3lTdWJoZWFkZXJQcm92aWRlcixcblx0XHRzaW5nbGVUYWJsZUlkLFxuXHRcdHNpbmdsZUNoYXJ0SWQsXG5cdFx0ZHluYW1pY0xpc3RSZXBvcnRJZCxcblx0XHRoZWFkZXJBY3Rpb25zLFxuXHRcdHNob3dQaW5uYWJsZVRvZ2dsZTogc2hvd1Bpbm5hYmxlVG9nZ2xlLFxuXHRcdGZpbHRlckJhcjoge1xuXHRcdFx0cHJvcGVydHlJbmZvOiBwcm9wZXJ0eUluZm9GaWVsZHMsXG5cdFx0XHRzZWxlY3Rpb25GaWVsZHMsXG5cdFx0XHRoaWRlQmFzaWNTZWFyY2gsXG5cdFx0XHRzaG93Q2xlYXJCdXR0b25cblx0XHR9LFxuXHRcdHZpZXdzOiB2aWV3cyxcblx0XHRmaWx0ZXJCYXJJZDogaGlkZUZpbHRlckJhciAmJiAhdXNlSGlkZGVuRmlsdGVyQmFyID8gXCJcIiA6IGZpbHRlckJhcklkLFxuXHRcdGZpbHRlckNvbmRpdGlvbnM6IHtcblx0XHRcdHNlbGVjdGlvblZhcmlhbnQ6IHNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRkZWZhdWx0U2VtYW50aWNEYXRlczogZGVmYXVsdFNlbWFudGljRGF0ZXNcblx0XHR9LFxuXHRcdHZhcmlhbnRNYW5hZ2VtZW50OiB7XG5cdFx0XHRpZDogZmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCxcblx0XHRcdHRhcmdldENvbnRyb2xJZHM6IHRhcmdldENvbnRyb2xJZHMuam9pbihcIixcIilcblx0XHR9LFxuXHRcdGhhc011bHRpVmlzdWFsaXphdGlvbnM6IGhhc011bHRpVmlzdWFsaXphdGlvbnMoY29udmVydGVyQ29udGV4dCksXG5cdFx0dGVtcGxhdGVUeXBlOiBtYW5pZmVzdFdyYXBwZXIuZ2V0VGVtcGxhdGVUeXBlKCksXG5cdFx0dXNlU2VtYW50aWNEYXRlUmFuZ2UsXG5cdFx0ZmlsdGVySW5pdGlhbExheW91dCxcblx0XHRmaWx0ZXJMYXlvdXQsXG5cdFx0a3BpRGVmaW5pdGlvbnM6IGdldEtQSURlZmluaXRpb25zKGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdGhpZGVGaWx0ZXJCYXIsXG5cdFx0dXNlSGlkZGVuRmlsdGVyQmFyXG5cdH07XG59O1xuXG5mdW5jdGlvbiBnZXRDb250ZW50QXJlYUlkKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIHZpZXdzOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXSk6IENvbnRlbnRBcmVhSUQgfCB1bmRlZmluZWQge1xuXHRsZXQgc2luZ2xlVGFibGVJZCA9IFwiXCIsXG5cdFx0c2luZ2xlQ2hhcnRJZCA9IFwiXCI7XG5cdGlmIChcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMoKSB8fFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2Vcblx0KSB7XG5cdFx0Zm9yIChsZXQgdmlldyBvZiB2aWV3cykge1xuXHRcdFx0dmlldyA9IHZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbjtcblx0XHRcdGlmICh2aWV3LmNoYXJ0Q29udHJvbElkICYmIHZpZXcudGFibGVDb250cm9sSWQpIHtcblx0XHRcdFx0c2luZ2xlQ2hhcnRJZCA9IHZpZXcuY2hhcnRDb250cm9sSWQ7XG5cdFx0XHRcdHNpbmdsZVRhYmxlSWQgPSB2aWV3LnRhYmxlQ29udHJvbElkO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Zm9yIChsZXQgdmlldyBvZiB2aWV3cykge1xuXHRcdFx0dmlldyA9IHZpZXcgYXMgU2luZ2xlVmlld0RlZmluaXRpb247XG5cdFx0XHRpZiAoIXNpbmdsZVRhYmxlSWQgJiYgKHZpZXcgYXMgU2luZ2xlVGFibGVWaWV3RGVmaW5pdGlvbikudGFibGVDb250cm9sSWQpIHtcblx0XHRcdFx0c2luZ2xlVGFibGVJZCA9ICh2aWV3IGFzIFNpbmdsZVRhYmxlVmlld0RlZmluaXRpb24pLnRhYmxlQ29udHJvbElkIHx8IFwiXCI7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXNpbmdsZUNoYXJ0SWQgJiYgKHZpZXcgYXMgU2luZ2xlQ2hhcnRWaWV3RGVmaW5pdGlvbikuY2hhcnRDb250cm9sSWQpIHtcblx0XHRcdFx0c2luZ2xlQ2hhcnRJZCA9ICh2aWV3IGFzIFNpbmdsZUNoYXJ0Vmlld0RlZmluaXRpb24pLmNoYXJ0Q29udHJvbElkIHx8IFwiXCI7XG5cdFx0XHR9XG5cdFx0XHRpZiAoc2luZ2xlQ2hhcnRJZCAmJiBzaW5nbGVUYWJsZUlkKSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRpZiAoc2luZ2xlVGFibGVJZCB8fCBzaW5nbGVDaGFydElkKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGNoYXJ0SWQ6IHNpbmdsZUNoYXJ0SWQsXG5cdFx0XHR0YWJsZUlkOiBzaW5nbGVUYWJsZUlkXG5cdFx0fTtcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLFNBQVNBLHNCQUFzQixDQUFDQyxLQUFpQyxFQUF3QjtJQUN4RixNQUFNQyxNQUE0QixHQUFHLEVBQUU7SUFDdkNELEtBQUssQ0FB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
552
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRUYWJsZVZpc3VhbGl6YXRpb25zIiwidmlld3MiLCJ0YWJsZXMiLCJmb3JFYWNoIiwidmlldyIsInR5cGUiLCJ2aXN1YWxpemF0aW9ucyIsInNlY29uZGFyeVZpc3VhbGl6YXRpb24iLCJwcmVzZW50YXRpb24iLCJ2aXN1YWxpemF0aW9uIiwiVmlzdWFsaXphdGlvblR5cGUiLCJUYWJsZSIsInB1c2giLCJnZXRDaGFydFZpc3VhbGl6YXRpb25zIiwiY2hhcnRzIiwicHJpbWFyeVZpc3VhbGl6YXRpb24iLCJDaGFydCIsImdldERlZmF1bHRTZW1hbnRpY0RhdGVzIiwiZmlsdGVyRmllbGRzIiwiZGVmYXVsdFNlbWFudGljRGF0ZXMiLCJmaWx0ZXJGaWVsZCIsInNldHRpbmdzIiwiZGVmYXVsdFZhbHVlcyIsImxlbmd0aCIsImdldENvbXBsaWFudFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uIiwiZW50aXR5VHlwZSIsImNvbnZlcnRlckNvbnRleHQiLCJpc0FMUCIsImFubm90YXRpb25QYXRoIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiZ2V0RGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgiLCJzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50IiwiZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImVycm9yTWVzc2FnZUZvckFMUCIsInByZXNlbnRhdGlvblZhcmlhbnQiLCJQcmVzZW50YXRpb25WYXJpYW50IiwiRXJyb3IiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsInVuZGVmaW5lZCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwiZ2V0RGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0TGluZUl0ZW0iLCJnZXRWaWV3Iiwidmlld0NvbnZlcnRlckNvbmZpZ3VyYXRpb24iLCJpc0luc2lnaHRzRW5hYmxlZCIsImNvbmZpZyIsImlzTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbiIsImN1cnJlbnRDb25maWciLCJrZXkiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJhbm5vdGF0aW9uIiwiZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImdldEVudGl0eVR5cGUiLCJ0YWJsZUNvbnRyb2xJZCIsImNoYXJ0Q29udHJvbElkIiwidGl0bGUiLCJzZWxlY3Rpb25WYXJpYW50UGF0aCIsImNyZWF0ZVZpc3VhbGl6YXRpb24iLCJjdXJyZW50UHJlc2VudGF0aW9uIiwiaXNQcmltYXJ5IiwiZGVmYXVsdFZpc3VhbGl6YXRpb24iLCJwcmVzZW50YXRpb25DcmVhdGVkIiwiT2JqZWN0IiwiYXNzaWduIiwiZ2V0UHJlc2VudGF0aW9uIiwiaXRlbSIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJ0YXJnZXRBbm5vdGF0aW9uIiwiZ2V0VGVtcGxhdGVUeXBlIiwiVGVtcGxhdGVUeXBlIiwiQW5hbHl0aWNhbExpc3RQYWdlIiwic0Vycm9yIiwiY3JlYXRlQWxwVmlldyIsInByZXNlbnRhdGlvbnMiLCJkZWZhdWx0UGF0aCIsImlkIiwidmlzaWJsZSIsImhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5Iiwidmlld0Fubm90YXRpb24iLCJjb21waWxlRXhwcmVzc2lvbiIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsIlRleHQiLCJ2aXN1YWxpemF0aW9uRGVmaW5pdGlvbiIsImluZGV4IiwidGFibGVWaXN1YWxpemF0aW9uIiwiZmlsdGVycyIsImNvbnRyb2wiLCJoaWRkZW5GaWx0ZXJzIiwicGF0aHMiLCJrZWVwUHJldmlvdXNQZXJzb25hbGl6YXRpb24iLCJnZXRUYWJsZUlEIiwidGVybSIsIlNlbGVjdGlvblZhcmlhbnQiLCJzcGxpdCIsImNoYXJ0VmlzdWFsaXphdGlvbiIsImdldENoYXJ0SUQiLCJtdWx0aVZpZXdzIiwibGFiZWwiLCJmcmFnbWVudCIsInRlbXBsYXRlIiwiY3VzdG9tVGFiSWQiLCJnZXRDdXN0b21UYWJJRCIsImdldFZpZXdzIiwic2V0dGluZ3NWaWV3cyIsInZpZXdDb252ZXJ0ZXJDb25maWdzIiwicGF0aCIsInZpZXdDb252ZXJ0ZXJDb250ZXh0IiwiZ2V0Q29udmVydGVyQ29udGV4dEZvciIsImNvbnRleHRQYXRoIiwiZW50aXR5U2V0IiwiZ2V0Q29udGV4dFBhdGgiLCJnZXRBbHBWaWV3Q29uZmlnIiwibWFwIiwidmlld0NvbnZlcnRlckNvbmZpZyIsImdldE11bHRpVmlld3NDb250cm9sIiwibWFuaWZlc3RXcmFwcGVyIiwidmlld3NEZWZpbml0aW9uIiwiZ2V0Vmlld0NvbmZpZ3VyYXRpb24iLCJoYXNNdWx0aVZpc3VhbGl6YXRpb25zIiwic2hvd1RhYkNvdW50cyIsInNob3dDb3VudHMiLCJoYXNNdWx0aXBsZUVudGl0eVNldHMiLCJnZXRJY29uVGFiQmFySUQiLCJ2aWV3Q29uZmlncyIsImNoYXJ0IiwidGFibGUiLCJnZXREZWZhdWx0Q2hhcnQiLCJnZXRIZWFkZXJBY3Rpb25zIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwiYWN0aW9ucyIsImNoZWNrQ2hhcnRGaWx0ZXJCYXJJZCIsImZpbHRlckJhcklkIiwiZmlsdGVySWQiLCJjb252ZXJ0UGFnZSIsInNDb250ZXh0UGF0aCIsImxyVGFibGVWaXN1YWxpemF0aW9ucyIsImxyQ2hhcnRWaXN1YWxpemF0aW9ucyIsInNob3dQaW5uYWJsZVRvZ2dsZSIsInNvbWUiLCJzaW5nbGVUYWJsZUlkIiwic2luZ2xlQ2hhcnRJZCIsImR5bmFtaWNMaXN0UmVwb3J0SWQiLCJnZXREeW5hbWljTGlzdFJlcG9ydElEIiwiZ2V0RmlsdGVyQmFySUQiLCJmaWx0ZXJWYXJpYW50TWFuYWdlbWVudElEIiwiZ2V0RmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCIsImZiQ29uZmlnIiwiZ2V0RmlsdGVyQ29uZmlndXJhdGlvbiIsImZpbHRlckluaXRpYWxMYXlvdXQiLCJpbml0aWFsTGF5b3V0IiwidG9Mb3dlckNhc2UiLCJmaWx0ZXJMYXlvdXQiLCJsYXlvdXQiLCJ1c2VTZW1hbnRpY0RhdGVSYW5nZSIsInNob3dDbGVhckJ1dHRvbiIsIm9Db25maWciLCJnZXRDb250ZW50QXJlYUlkIiwiY2hhcnRJZCIsInRhYmxlSWQiLCJ1c2VIaWRkZW5GaWx0ZXJCYXIiLCJoaWRlRmlsdGVyQmFyIiwiaXNGaWx0ZXJCYXJIaWRkZW4iLCJsckZpbHRlclByb3BlcnRpZXMiLCJnZXRTZWxlY3Rpb25GaWVsZHMiLCJzZWxlY3Rpb25GaWVsZHMiLCJwcm9wZXJ0eUluZm9GaWVsZHMiLCJzUHJvcGVydHlJbmZvIiwiaGlkZUJhc2ljU2VhcmNoIiwiZ2V0RmlsdGVyQmFySGlkZUJhc2ljU2VhcmNoIiwibXVsdGlWaWV3Q29udHJvbCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXRTZWxlY3Rpb25WYXJpYW50IiwiZ2V0TWFuaWZlc3RGaWx0ZXJGaWVsZHMiLCJoZWFkZXJBY3Rpb25zIiwidmlzdWFsaXphdGlvbklkcyIsImNvbmNhdCIsInRhcmdldENvbnRyb2xJZHMiLCJnZXRWYXJpYW50TWFuYWdlbWVudCIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNvbnRyb2wiLCJzdGlja3lTdWJoZWFkZXJQcm92aWRlciIsImdldFN0aWNreU11bHRpVGFiSGVhZGVyQ29uZmlndXJhdGlvbiIsIm1haW5FbnRpdHlTZXQiLCJtYWluRW50aXR5VHlwZSIsIm11bHRpVmlld3NDb250cm9sIiwiZmlsdGVyQmFyIiwicHJvcGVydHlJbmZvIiwiZmlsdGVyQ29uZGl0aW9ucyIsInZhcmlhbnRNYW5hZ2VtZW50Iiwiam9pbiIsInRlbXBsYXRlVHlwZSIsImtwaURlZmluaXRpb25zIiwiZ2V0S1BJRGVmaW5pdGlvbnMiLCJsclZpZXciXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkxpc3RSZXBvcnRDb252ZXJ0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdExpbmVJdGVtLFxuXHRQcmVzZW50YXRpb25WYXJpYW50LFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LFxuXHRTZWxlY3Rpb25WYXJpYW50LFxuXHRTZWxlY3Rpb25WYXJpYW50VHlwZVxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQmFzZUFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IGdldEFjdGlvbnNGcm9tTWFuaWZlc3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vQWN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IENoYXJ0VmlzdWFsaXphdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9DaGFydFwiO1xuaW1wb3J0IHR5cGUgeyBUYWJsZVZpc3VhbGl6YXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQ3VzdG9tRWxlbWVudEZpbHRlckZpZWxkLCBGaWx0ZXJGaWVsZCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5pbXBvcnQge1xuXHRnZXRGaWx0ZXJCYXJIaWRlQmFzaWNTZWFyY2gsXG5cdGdldE1hbmlmZXN0RmlsdGVyRmllbGRzLFxuXHRnZXRTZWxlY3Rpb25GaWVsZHNcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvTGlzdFJlcG9ydC9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBDb25maWd1cmFibGVPYmplY3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgaW5zZXJ0Q3VzdG9tRWxlbWVudHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgdHlwZSB7IERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsIERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB9IGZyb20gXCIuLi9jb250cm9scy9Db21tb24vRGF0YVZpc3VhbGl6YXRpb25cIjtcbmltcG9ydCB7XG5cdGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbixcblx0Z2V0RGVmYXVsdENoYXJ0LFxuXHRnZXREZWZhdWx0TGluZUl0ZW0sXG5cdGdldERlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50LFxuXHRnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LFxuXHRnZXRTZWxlY3Rpb25WYXJpYW50LFxuXHRpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCxcblx0aXNTZWxlY3Rpb25QcmVzZW50YXRpb25Db21wbGlhbnRcbn0gZnJvbSBcIi4uL2NvbnRyb2xzL0NvbW1vbi9EYXRhVmlzdWFsaXphdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBLUElEZWZpbml0aW9uIH0gZnJvbSBcIi4uL2NvbnRyb2xzL0NvbW1vbi9LUElcIjtcbmltcG9ydCB7IGdldEtQSURlZmluaXRpb25zIH0gZnJvbSBcIi4uL2NvbnRyb2xzL0NvbW1vbi9LUElcIjtcbmltcG9ydCB7XG5cdGdldENoYXJ0SUQsXG5cdGdldEN1c3RvbVRhYklELFxuXHRnZXREeW5hbWljTGlzdFJlcG9ydElELFxuXHRnZXRGaWx0ZXJCYXJJRCxcblx0Z2V0RmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRCxcblx0Z2V0SWNvblRhYkJhcklELFxuXHRnZXRUYWJsZUlEXG59IGZyb20gXCIuLi9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbWJpbmVkVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uLFxuXHRNdWx0aXBsZVZpZXdzQ29uZmlndXJhdGlvbixcblx0U2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRWaWV3UGF0aENvbmZpZ3VyYXRpb25cbn0gZnJvbSBcIi4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IFRlbXBsYXRlVHlwZSwgVmFyaWFudE1hbmFnZW1lbnRUeXBlLCBWaXN1YWxpemF0aW9uVHlwZSB9IGZyb20gXCIuLi9NYW5pZmVzdFNldHRpbmdzXCI7XG50eXBlIFZpZXdBbm5vdGF0aW9ucyA9IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgfCBTZWxlY3Rpb25WYXJpYW50O1xudHlwZSBWYXJpYW50TWFuYWdlbWVudERlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHRhcmdldENvbnRyb2xJZHM6IHN0cmluZztcbn07XG50eXBlIE11bHRpcGxlVmlld0NvbmZpZ3VyYXRpb24gPSBWaWV3UGF0aENvbmZpZ3VyYXRpb24gJiB7XG5cdGFubm90YXRpb24/OiBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zO1xufTtcbnR5cGUgU2luZ2xlVmlld0NvbmZpZ3VyYXRpb24gPSB7XG5cdGFubm90YXRpb24/OiBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zO1xufTtcbnR5cGUgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb24gPSBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uICYge1xuXHR0eXBlOiBzdHJpbmc7XG59O1xudHlwZSBWaWV3Q29uZmlndXJhdGlvbiA9IE11bHRpcGxlVmlld0NvbmZpZ3VyYXRpb24gfCBTaW5nbGVWaWV3Q29uZmlndXJhdGlvbiB8IEN1c3RvbVZpZXdDb25maWd1cmF0aW9uO1xudHlwZSBWaWV3QW5ub3RhdGlvbkNvbmZpZ3VyYXRpb24gPSBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uIHwgU2luZ2xlVmlld0NvbmZpZ3VyYXRpb247XG50eXBlIFZpZXdDb252ZXJ0ZXJTZXR0aW5ncyA9IFZpZXdDb25maWd1cmF0aW9uICYge1xuXHRjb252ZXJ0ZXJDb250ZXh0PzogQ29udmVydGVyQ29udGV4dDtcbn07XG50eXBlIERlZmF1bHRTZW1hbnRpY0RhdGUgPSBDb25maWd1cmFibGVPYmplY3QgJiB7XG5cdG9wZXJhdG9yOiBzdHJpbmc7XG59O1xudHlwZSBNdWx0aVZpZXdzQ29udHJvbENvbmZpZ3VyYXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHNob3dUYWJDb3VudHM/OiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIExpc3RSZXBvcnREZWZpbml0aW9uID0ge1xuXHRtYWluRW50aXR5U2V0OiBzdHJpbmc7XG5cdG1haW5FbnRpdHlUeXBlOiBzdHJpbmc7IC8vIGVudGl0eVR5cGU+IGF0IHRoZSBzdGFydCBvZiBMUiB0ZW1wbGF0aW5nXG5cdHNpbmdsZVRhYmxlSWQ/OiBzdHJpbmc7IC8vIG9ubHkgd2l0aCBzaW5nbGUgVGFibGUgbW9kZVxuXHRzaW5nbGVDaGFydElkPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggc2luZ2xlIFRhYmxlIG1vZGVcblx0ZHluYW1pY0xpc3RSZXBvcnRJZDogc3RyaW5nO1xuXHRzdGlja3lTdWJoZWFkZXJQcm92aWRlcj86IHN0cmluZztcblx0bXVsdGlWaWV3c0NvbnRyb2w/OiBNdWx0aVZpZXdzQ29udHJvbENvbmZpZ3VyYXRpb247IC8vIG9ubHkgd2l0aCBtdWx0aSBUYWJsZSBtb2RlXG5cdGhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXTtcblx0c2hvd1Bpbm5hYmxlVG9nZ2xlPzogYm9vbGVhbjtcblx0ZmlsdGVyQmFyOiB7XG5cdFx0cHJvcGVydHlJbmZvOiBhbnk7XG5cdFx0c2VsZWN0aW9uRmllbGRzOiBGaWx0ZXJGaWVsZFtdO1xuXHRcdGhpZGVCYXNpY1NlYXJjaDogYm9vbGVhbjtcblx0XHRzaG93Q2xlYXJCdXR0b24/OiBib29sZWFuO1xuXHR9O1xuXHR2aWV3czogTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uW107XG5cdGZpbHRlckNvbmRpdGlvbnM6IHtcblx0XHRzZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50VHlwZSB8IHVuZGVmaW5lZDtcblx0XHRkZWZhdWx0U2VtYW50aWNEYXRlczogUmVjb3JkPHN0cmluZywgRGVmYXVsdFNlbWFudGljRGF0ZT4gfCB7fTtcblx0fTtcblx0ZmlsdGVyQmFySWQ6IHN0cmluZztcblx0dmFyaWFudE1hbmFnZW1lbnQ6IFZhcmlhbnRNYW5hZ2VtZW50RGVmaW5pdGlvbjtcblx0aGFzTXVsdGlWaXN1YWxpemF0aW9uczogYm9vbGVhbjtcblx0dGVtcGxhdGVUeXBlOiBUZW1wbGF0ZVR5cGU7XG5cdHVzZVNlbWFudGljRGF0ZVJhbmdlPzogYm9vbGVhbjtcblx0ZmlsdGVySW5pdGlhbExheW91dD86IHN0cmluZztcblx0ZmlsdGVyTGF5b3V0Pzogc3RyaW5nO1xuXHRrcGlEZWZpbml0aW9uczogS1BJRGVmaW5pdGlvbltdO1xuXHRoaWRlRmlsdGVyQmFyOiBib29sZWFuO1xuXHR1c2VIaWRkZW5GaWx0ZXJCYXI6IGJvb2xlYW47XG59O1xuZXhwb3J0IHR5cGUgTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uID0gU2luZ2xlVmlld0RlZmluaXRpb24gfCBDdXN0b21WaWV3RGVmaW5pdGlvbiB8IENvbWJpbmVkVmlld0RlZmluaXRpb247XG5leHBvcnQgdHlwZSBDb21iaW5lZFZpZXdEZWZpbml0aW9uID0ge1xuXHRzZWxlY3Rpb25WYXJpYW50UGF0aD86IHN0cmluZzsgLy8gb25seSB3aXRoIG9uIG11bHRpIFRhYmxlIG1vZGVcblx0dGl0bGU/OiBzdHJpbmc7IC8vIG9ubHkgd2l0aCBtdWx0aSBUYWJsZSBtb2RlXG5cdHByaW1hcnlWaXN1YWxpemF0aW9uOiBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb247XG5cdHNlY29uZGFyeVZpc3VhbGl6YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbjtcblx0dGFibGVDb250cm9sSWQ6IHN0cmluZztcblx0Y2hhcnRDb250cm9sSWQ6IHN0cmluZztcblx0ZGVmYXVsdFBhdGg/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQ3VzdG9tVmlld0RlZmluaXRpb24gPSB7XG5cdHRpdGxlPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggbXVsdGkgVGFibGUgbW9kZVxuXHRmcmFnbWVudDogc3RyaW5nO1xuXHR0eXBlOiBzdHJpbmc7XG5cdGN1c3RvbVRhYklkOiBzdHJpbmc7XG5cdHZpc2libGU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgU2luZ2xlVmlld0RlZmluaXRpb24gPSBTaW5nbGVUYWJsZVZpZXdEZWZpbml0aW9uIHwgU2luZ2xlQ2hhcnRWaWV3RGVmaW5pdGlvbjtcbmV4cG9ydCB0eXBlIEJhc2VTaW5nbGVWaWV3RGVmaW5pdGlvbiA9IHtcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7IC8vIG9ubHkgd2l0aCBvbiBtdWx0aSBUYWJsZSBtb2RlXG5cdHRpdGxlPzogc3RyaW5nOyAvLyBvbmx5IHdpdGggbXVsdGkgVGFibGUgbW9kZVxuXHRwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbjtcbn07XG5leHBvcnQgdHlwZSBTaW5nbGVUYWJsZVZpZXdEZWZpbml0aW9uID0gQmFzZVNpbmdsZVZpZXdEZWZpbml0aW9uICYge1xuXHR0YWJsZUNvbnRyb2xJZD86IHN0cmluZztcblx0dmlzaWJsZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBTaW5nbGVDaGFydFZpZXdEZWZpbml0aW9uID0gQmFzZVNpbmdsZVZpZXdEZWZpbml0aW9uICYge1xuXHRjaGFydENvbnRyb2xJZD86IHN0cmluZztcblx0dmlzaWJsZT86IHN0cmluZztcbn07XG50eXBlIENvbnRlbnRBcmVhSUQgPSB7XG5cdGNoYXJ0SWQ6IHN0cmluZztcblx0dGFibGVJZDogc3RyaW5nO1xufTtcbi8qKlxuICogUmV0cmlldmVzIGFsbCBsaXN0IHJlcG9ydCB0YWJsZXMuXG4gKlxuICogQHBhcmFtIHZpZXdzIFRoZSBsaXN0IHJlcG9ydCB2aWV3cyBjb25maWd1cmVkIGluIHRoZSBtYW5pZmVzdFxuICogQHJldHVybnMgVGhlIGxpc3QgcmVwb3J0IHRhYmxlXG4gKi9cbmZ1bmN0aW9uIGdldFRhYmxlVmlzdWFsaXphdGlvbnModmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdKTogVGFibGVWaXN1YWxpemF0aW9uW10ge1xuXHRjb25zdCB0YWJsZXM6IFRhYmxlVmlzdWFsaXphdGlvbltdID0gW107XG5cdHZpZXdzLmZvckVhY2goZnVuY3Rpb24gKHZpZXcpIHtcblx0XHRpZiAoISh2aWV3IGFzIEN1c3RvbVZpZXdEZWZpbml0aW9uKS50eXBlKSB7XG5cdFx0XHRjb25zdCB2aXN1YWxpemF0aW9ucyA9ICh2aWV3IGFzIENvbWJpbmVkVmlld0RlZmluaXRpb24pLnNlY29uZGFyeVZpc3VhbGl6YXRpb25cblx0XHRcdFx0PyAodmlldyBhcyBDb21iaW5lZFZpZXdEZWZpbml0aW9uKS5zZWNvbmRhcnlWaXN1YWxpemF0aW9uLnZpc3VhbGl6YXRpb25zXG5cdFx0XHRcdDogKHZpZXcgYXMgU2luZ2xlVmlld0RlZmluaXRpb24pLnByZXNlbnRhdGlvbi52aXN1YWxpemF0aW9ucztcblx0XHRcdHZpc3VhbGl6YXRpb25zLmZvckVhY2goZnVuY3Rpb24gKHZpc3VhbGl6YXRpb24pIHtcblx0XHRcdFx0aWYgKHZpc3VhbGl6YXRpb24udHlwZSA9PT0gVmlzdWFsaXphdGlvblR5cGUuVGFibGUpIHtcblx0XHRcdFx0XHR0YWJsZXMucHVzaCh2aXN1YWxpemF0aW9uKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIHRhYmxlcztcbn1cbmZ1bmN0aW9uIGdldENoYXJ0VmlzdWFsaXphdGlvbnModmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdKTogQ2hhcnRWaXN1YWxpemF0aW9uW10ge1xuXHRjb25zdCBjaGFydHM6IENoYXJ0VmlzdWFsaXphdGlvbltdID0gW107XG5cdHZpZXdzLmZvckVhY2goZnVuY3Rpb24gKHZpZXcpIHtcblx0XHRpZiAoISh2aWV3IGFzIEN1c3RvbVZpZXdEZWZpbml0aW9uKS50eXBlKSB7XG5cdFx0XHRjb25zdCB2aXN1YWxpemF0aW9ucyA9ICh2aWV3IGFzIENvbWJpbmVkVmlld0RlZmluaXRpb24pLnByaW1hcnlWaXN1YWxpemF0aW9uXG5cdFx0XHRcdD8gKHZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbikucHJpbWFyeVZpc3VhbGl6YXRpb24udmlzdWFsaXphdGlvbnNcblx0XHRcdFx0OiAodmlldyBhcyBTaW5nbGVWaWV3RGVmaW5pdGlvbikucHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zO1xuXHRcdFx0dmlzdWFsaXphdGlvbnMuZm9yRWFjaChmdW5jdGlvbiAodmlzdWFsaXphdGlvbikge1xuXHRcdFx0XHRpZiAodmlzdWFsaXphdGlvbi50eXBlID09PSBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCkge1xuXHRcdFx0XHRcdGNoYXJ0cy5wdXNoKHZpc3VhbGl6YXRpb24pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gY2hhcnRzO1xufVxuY29uc3QgZ2V0RGVmYXVsdFNlbWFudGljRGF0ZXMgPSBmdW5jdGlvbiAoZmlsdGVyRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21FbGVtZW50RmlsdGVyRmllbGQ+KTogUmVjb3JkPHN0cmluZywgRGVmYXVsdFNlbWFudGljRGF0ZT4ge1xuXHRjb25zdCBkZWZhdWx0U2VtYW50aWNEYXRlczogYW55ID0ge307XG5cdGZvciAoY29uc3QgZmlsdGVyRmllbGQgaW4gZmlsdGVyRmllbGRzKSB7XG5cdFx0aWYgKGZpbHRlckZpZWxkc1tmaWx0ZXJGaWVsZF0/LnNldHRpbmdzPy5kZWZhdWx0VmFsdWVzPy5sZW5ndGgpIHtcblx0XHRcdGRlZmF1bHRTZW1hbnRpY0RhdGVzW2ZpbHRlckZpZWxkXSA9IGZpbHRlckZpZWxkc1tmaWx0ZXJGaWVsZF0/LnNldHRpbmdzPy5kZWZhdWx0VmFsdWVzO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gZGVmYXVsdFNlbWFudGljRGF0ZXM7XG59O1xuLyoqXG4gKiBGaW5kIGEgdmlzdWFsaXphdGlvbiBhbm5vdGF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgbGlzdCByZXBvcnQuXG4gKlxuICogQHBhcmFtIGVudGl0eVR5cGUgVGhlIGN1cnJlbnQgRW50aXR5VHlwZVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEBwYXJhbSBpc0FMUFxuICogQHJldHVybnMgQSBjb21wbGlhbnQgYW5ub3RhdGlvbiBmb3IgcmVuZGVyaW5nIHRoZSBsaXN0IHJlcG9ydFxuICovXG5mdW5jdGlvbiBnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbihcblx0ZW50aXR5VHlwZTogRW50aXR5VHlwZSxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0aXNBTFA6IGJvb2xlYW5cbik6IExpbmVJdGVtIHwgUHJlc2VudGF0aW9uVmFyaWFudCB8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgfCB1bmRlZmluZWQge1xuXHRjb25zdCBhbm5vdGF0aW9uUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0RGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgoKTtcblx0Y29uc3Qgc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA9IGdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQoZW50aXR5VHlwZSwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRjb25zdCBlcnJvck1lc3NhZ2VGb3JBTFAgPSBcIkFMUCBmbGF2b3IgbmVlZHMgYm90aCBjaGFydCBhbmQgdGFibGUgdG8gbG9hZCB0aGUgYXBwbGljYXRpb25cIjtcblx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRpZiAoYW5ub3RhdGlvblBhdGgpIHtcblx0XHRcdGNvbnN0IHByZXNlbnRhdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHRpZiAoIXByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiUHJlc2VudGF0aW9uIFZhcmlhbnQgaXMgbm90IGNvbmZpZ3VyZWQgaW4gdGhlIFNQViBtZW50aW9uZWQgaW4gdGhlIG1hbmlmZXN0XCIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50LCBpc0FMUCkpIHtcblx0XHRcdFx0aWYgKGlzQUxQKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZUZvckFMUCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50KHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQsIGlzQUxQKSA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0fSBlbHNlIGlmIChpc0FMUCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZUZvckFMUCk7XG5cdFx0fVxuXHR9XG5cdGNvbnN0IHByZXNlbnRhdGlvblZhcmlhbnQgPSBnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlKTtcblx0aWYgKHByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRpZiAoaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudCwgaXNBTFApKSB7XG5cdFx0XHRyZXR1cm4gcHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHR9IGVsc2UgaWYgKGlzQUxQKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlRm9yQUxQKTtcblx0XHR9XG5cdH1cblx0aWYgKCFpc0FMUCkge1xuXHRcdHJldHVybiBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSk7XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cbmNvbnN0IGdldFZpZXcgPSBmdW5jdGlvbiAodmlld0NvbnZlcnRlckNvbmZpZ3VyYXRpb246IFZpZXdDb252ZXJ0ZXJTZXR0aW5ncywgaXNJbnNpZ2h0c0VuYWJsZWQ/OiBib29sZWFuKTogTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uIHtcblx0bGV0IGNvbmZpZyA9IHZpZXdDb252ZXJ0ZXJDb25maWd1cmF0aW9uO1xuXHRpZiAoY29uZmlnLmNvbnZlcnRlckNvbnRleHQpIHtcblx0XHRsZXQgY29udmVydGVyQ29udGV4dCA9IGNvbmZpZy5jb252ZXJ0ZXJDb250ZXh0O1xuXHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBWaWV3QW5ub3RhdGlvbkNvbmZpZ3VyYXRpb247XG5cdFx0Y29uc3QgaXNNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uID0gZnVuY3Rpb24gKGN1cnJlbnRDb25maWc6IFZpZXdDb25maWd1cmF0aW9uKTogY3VycmVudENvbmZpZyBpcyBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uIHtcblx0XHRcdHJldHVybiAoY3VycmVudENvbmZpZyBhcyBNdWx0aXBsZVZpZXdDb25maWd1cmF0aW9uKS5rZXkgIT09IHVuZGVmaW5lZDtcblx0XHR9O1xuXHRcdGxldCBwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiA9IGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0XHRcdGNvbmZpZy5hbm5vdGF0aW9uXG5cdFx0XHRcdD8gY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKGNvbmZpZy5hbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSwgY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkpXG5cdFx0XHRcdDogXCJcIixcblx0XHRcdHRydWUsXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0Y29uZmlnIGFzIFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdGlzTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbihjb25maWcpLFxuXHRcdFx0aXNJbnNpZ2h0c0VuYWJsZWRcblx0XHQpO1xuXHRcdGxldCB0YWJsZUNvbnRyb2xJZCA9IFwiXCI7XG5cdFx0bGV0IGNoYXJ0Q29udHJvbElkID0gXCJcIjtcblx0XHRsZXQgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IFwiXCI7XG5cdFx0bGV0IHNlbGVjdGlvblZhcmlhbnRQYXRoID0gXCJcIjtcblx0XHRjb25zdCBjcmVhdGVWaXN1YWxpemF0aW9uID0gZnVuY3Rpb24gKGN1cnJlbnRQcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiwgaXNQcmltYXJ5PzogYm9vbGVhbikge1xuXHRcdFx0bGV0IGRlZmF1bHRWaXN1YWxpemF0aW9uO1xuXHRcdFx0Zm9yIChjb25zdCB2aXN1YWxpemF0aW9uIG9mIGN1cnJlbnRQcmVzZW50YXRpb24udmlzdWFsaXphdGlvbnMpIHtcblx0XHRcdFx0aWYgKGlzUHJpbWFyeSAmJiB2aXN1YWxpemF0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0KSB7XG5cdFx0XHRcdFx0ZGVmYXVsdFZpc3VhbGl6YXRpb24gPSB2aXN1YWxpemF0aW9uO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghaXNQcmltYXJ5ICYmIHZpc3VhbGl6YXRpb24udHlwZSA9PT0gVmlzdWFsaXphdGlvblR5cGUuVGFibGUpIHtcblx0XHRcdFx0XHRkZWZhdWx0VmlzdWFsaXphdGlvbiA9IHZpc3VhbGl6YXRpb247XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGNvbnN0IHByZXNlbnRhdGlvbkNyZWF0ZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50UHJlc2VudGF0aW9uKTtcblx0XHRcdGlmIChkZWZhdWx0VmlzdWFsaXphdGlvbikge1xuXHRcdFx0XHRwcmVzZW50YXRpb25DcmVhdGVkLnZpc3VhbGl6YXRpb25zID0gW2RlZmF1bHRWaXN1YWxpemF0aW9uXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcigoaXNQcmltYXJ5ID8gXCJQcmltYXJ5XCIgOiBcIlNlY29uZGFyeVwiKSArIFwiIHZpc3VhbGlzYXRpb24gbmVlZHMgdmFsaWQgXCIgKyAoaXNQcmltYXJ5ID8gXCJjaGFydFwiIDogXCJ0YWJsZVwiKSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcHJlc2VudGF0aW9uQ3JlYXRlZDtcblx0XHR9O1xuXHRcdGNvbnN0IGdldFByZXNlbnRhdGlvbiA9IGZ1bmN0aW9uIChpdGVtOiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24sIGlzUHJpbWFyeTogYm9vbGVhbikge1xuXHRcdFx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGl0ZW0uYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0Y29uc3QgdGFyZ2V0QW5ub3RhdGlvbiA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0XHRcdGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRcdFx0Y29uc3QgYW5ub3RhdGlvbiA9IHRhcmdldEFubm90YXRpb247XG5cdFx0XHRpZiAoYW5ub3RhdGlvbiB8fCBjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlKSB7XG5cdFx0XHRcdHByZXNlbnRhdGlvbiA9IGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0XHRcdFx0XHRhbm5vdGF0aW9uXG5cdFx0XHRcdFx0XHQ/IGNvbnZlcnRlckNvbnRleHQuZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChhbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSwgY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkpXG5cdFx0XHRcdFx0XHQ6IFwiXCIsXG5cdFx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdGNvbmZpZyBhcyBWaWV3UGF0aENvbmZpZ3VyYXRpb24sXG5cdFx0XHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFx0XHR1bmRlZmluZWQsXG5cdFx0XHRcdFx0aXNJbnNpZ2h0c0VuYWJsZWRcblx0XHRcdFx0KTtcblx0XHRcdFx0cmV0dXJuIHByZXNlbnRhdGlvbjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IHNFcnJvciA9XG5cdFx0XHRcdFx0XCJBbm5vdGF0aW9uIFBhdGggZm9yIHRoZSBcIiArXG5cdFx0XHRcdFx0KGlzUHJpbWFyeSA/IFwicHJpbWFyeVwiIDogXCJzZWNvbmRhcnlcIikgK1xuXHRcdFx0XHRcdFwiIHZpc3VhbGlzYXRpb24gbWVudGlvbmVkIGluIHRoZSBtYW5pZmVzdCBpcyBub3QgZm91bmRcIjtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKHNFcnJvcik7XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRjb25zdCBjcmVhdGVBbHBWaWV3ID0gZnVuY3Rpb24gKFxuXHRcdFx0cHJlc2VudGF0aW9uczogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uW10sXG5cdFx0XHRkZWZhdWx0UGF0aDogXCJib3RoXCIgfCBcInByaW1hcnlcIiB8IFwic2Vjb25kYXJ5XCIgfCB1bmRlZmluZWRcblx0XHQpIHtcblx0XHRcdGNvbnN0IHByaW1hcnlWaXN1YWxpemF0aW9uOiBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gfCB1bmRlZmluZWQgPSBjcmVhdGVWaXN1YWxpemF0aW9uKHByZXNlbnRhdGlvbnNbMF0sIHRydWUpO1xuXHRcdFx0Y2hhcnRDb250cm9sSWQgPSAocHJpbWFyeVZpc3VhbGl6YXRpb24/LnZpc3VhbGl6YXRpb25zWzBdIGFzIENoYXJ0VmlzdWFsaXphdGlvbik/LmlkO1xuXHRcdFx0Y29uc3Qgc2Vjb25kYXJ5VmlzdWFsaXphdGlvbjogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uIHwgdW5kZWZpbmVkID0gY3JlYXRlVmlzdWFsaXphdGlvbihcblx0XHRcdFx0cHJlc2VudGF0aW9uc1sxXSA/IHByZXNlbnRhdGlvbnNbMV0gOiBwcmVzZW50YXRpb25zWzBdLFxuXHRcdFx0XHRmYWxzZVxuXHRcdFx0KTtcblx0XHRcdHRhYmxlQ29udHJvbElkID0gKHNlY29uZGFyeVZpc3VhbGl6YXRpb24/LnZpc3VhbGl6YXRpb25zWzBdIGFzIFRhYmxlVmlzdWFsaXphdGlvbik/LmFubm90YXRpb24/LmlkO1xuXHRcdFx0aWYgKHByaW1hcnlWaXN1YWxpemF0aW9uICYmIHNlY29uZGFyeVZpc3VhbGl6YXRpb24pIHtcblx0XHRcdFx0Y29uZmlnID0gY29uZmlnIGFzIFZpZXdQYXRoQ29uZmlndXJhdGlvbjtcblx0XHRcdFx0Y29uc3QgdmlzaWJsZSA9IGNvbmZpZy52aXNpYmxlO1xuXHRcdFx0XHRjb25zdCB2aWV3OiBDb21iaW5lZFZpZXdEZWZpbml0aW9uID0ge1xuXHRcdFx0XHRcdHByaW1hcnlWaXN1YWxpemF0aW9uLFxuXHRcdFx0XHRcdHNlY29uZGFyeVZpc3VhbGl6YXRpb24sXG5cdFx0XHRcdFx0dGFibGVDb250cm9sSWQsXG5cdFx0XHRcdFx0Y2hhcnRDb250cm9sSWQsXG5cdFx0XHRcdFx0ZGVmYXVsdFBhdGgsXG5cdFx0XHRcdFx0dmlzaWJsZVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRyZXR1cm4gdmlldztcblx0XHRcdH1cblx0XHR9O1xuXHRcdGlmIChcblx0XHRcdCFjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMoY29uZmlnIGFzIFZpZXdQYXRoQ29uZmlndXJhdGlvbikgJiZcblx0XHRcdHByZXNlbnRhdGlvbj8udmlzdWFsaXphdGlvbnM/Lmxlbmd0aCA9PT0gMiAmJlxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZVxuXHRcdCkge1xuXHRcdFx0Y29uc3QgdmlldzogQ29tYmluZWRWaWV3RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCA9IGNyZWF0ZUFscFZpZXcoW3ByZXNlbnRhdGlvbl0sIFwiYm90aFwiKTtcblx0XHRcdGlmICh2aWV3KSB7XG5cdFx0XHRcdHJldHVybiB2aWV3O1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMoY29uZmlnIGFzIFZpZXdQYXRoQ29uZmlndXJhdGlvbikgfHxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2Vcblx0XHQpIHtcblx0XHRcdGNvbnN0IHsgcHJpbWFyeSwgc2Vjb25kYXJ5IH0gPSBjb25maWcgYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb247XG5cdFx0XHRpZiAocHJpbWFyeSAmJiBwcmltYXJ5Lmxlbmd0aCAmJiBzZWNvbmRhcnkgJiYgc2Vjb25kYXJ5Lmxlbmd0aCkge1xuXHRcdFx0XHRjb25zdCB2aWV3OiBDb21iaW5lZFZpZXdEZWZpbml0aW9uIHwgdW5kZWZpbmVkID0gY3JlYXRlQWxwVmlldyhcblx0XHRcdFx0XHRbZ2V0UHJlc2VudGF0aW9uKHByaW1hcnlbMF0sIHRydWUpLCBnZXRQcmVzZW50YXRpb24oc2Vjb25kYXJ5WzBdLCBmYWxzZSldLFxuXHRcdFx0XHRcdChjb25maWcgYXMgQ29tYmluZWRWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmRlZmF1bHRQYXRoXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmICh2aWV3KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHZpZXc7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihcIlNlY29uZGFyeUl0ZW1zIGluIHRoZSBWaWV3cyBpcyBub3QgcHJlc2VudFwiKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGlzTXVsdGlwbGVWaWV3Q29uZmlndXJhdGlvbihjb25maWcpKSB7XG5cdFx0XHQvLyBrZXkgZXhpc3RzIG9ubHkgb24gbXVsdGkgdGFibGVzIG1vZGVcblx0XHRcdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbigoY29uZmlnIGFzIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbikuYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0Y29uc3Qgdmlld0Fubm90YXRpb246IFZpZXdBbm5vdGF0aW9ucyA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb247XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblx0XHRcdHRpdGxlID0gY29tcGlsZUV4cHJlc3Npb24oZ2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKHZpZXdBbm5vdGF0aW9uLlRleHQpKTtcblx0XHRcdC8vIE5lZWQgdG8gbG9vcCBvbiB0YWJsZSBpbnRvIHZpZXdzIHNpbmNlIG11bHRpIHRhYmxlIG1vZGUgZ2V0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gKGhpZGRlbiBmaWx0ZXJzIG9yIFRhYmxlIElkKVxuXHRcdFx0cHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zLmZvckVhY2goKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLCBpbmRleCkgPT4ge1xuXHRcdFx0XHRzd2l0Y2ggKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLnR5cGUpIHtcblx0XHRcdFx0XHRjYXNlIFZpc3VhbGl6YXRpb25UeXBlLlRhYmxlOlxuXHRcdFx0XHRcdFx0Y29uc3QgdGFibGVWaXN1YWxpemF0aW9uID0gcHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zW2luZGV4XSBhcyBUYWJsZVZpc3VhbGl6YXRpb247XG5cdFx0XHRcdFx0XHRjb25zdCBmaWx0ZXJzID0gdGFibGVWaXN1YWxpemF0aW9uLmNvbnRyb2wuZmlsdGVycyB8fCB7fTtcblx0XHRcdFx0XHRcdGZpbHRlcnMuaGlkZGVuRmlsdGVycyA9IGZpbHRlcnMuaGlkZGVuRmlsdGVycyB8fCB7IHBhdGhzOiBbXSB9O1xuXHRcdFx0XHRcdFx0aWYgKCEoY29uZmlnIGFzIFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbikua2VlcFByZXZpb3VzUGVyc29uYWxpemF0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdC8vIE5lZWQgdG8gb3ZlcnJpZGUgVGFibGUgSWQgdG8gbWF0Y2ggd2l0aCBUYWIgS2V5IChjdXJyZW50bHkgb25seSB0YWJsZSBpcyBtYW5hZ2VkIGluIG11bHRpcGxlIHZpZXcgbW9kZSlcblx0XHRcdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uLmFubm90YXRpb24uaWQgPSBnZXRUYWJsZUlEKChjb25maWcgYXMgU2luZ2xlVmlld1BhdGhDb25maWd1cmF0aW9uKS5rZXkgfHwgXCJcIiwgXCJMaW5lSXRlbVwiKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBWaWV3QW5ub3RhdGlvbkNvbmZpZ3VyYXRpb247XG5cdFx0XHRcdFx0XHRpZiAoY29uZmlnLmFubm90YXRpb24/LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCFjb25maWcuYW5ub3RhdGlvbi5TZWxlY3Rpb25WYXJpYW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRcdFx0XHRcdFx0YFRoZSBTZWxlY3Rpb24gVmFyaWFudCBpcyBtaXNzaW5nIGZvciB0aGUgU2VsZWN0aW9uIFByZXNlbnRhdGlvbiBWYXJpYW50ICR7Y29uZmlnLmFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lfWBcblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHNlbGVjdGlvblZhcmlhbnRQYXRoID0gYEAke2NvbmZpZy5hbm5vdGF0aW9uLlNlbGVjdGlvblZhcmlhbnQ/LmZ1bGx5UXVhbGlmaWVkTmFtZS5zcGxpdChcIkBcIilbMV19YDtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNlbGVjdGlvblZhcmlhbnRQYXRoID0gKGNvbmZpZyBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmFubm90YXRpb25QYXRoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly9Qcm92aWRlIFNlbGVjdGlvbiBWYXJpYW50IHRvIGhpZGRlbkZpbHRlcnMgaW4gb3JkZXIgdG8gc2V0IHRoZSBTViBmaWx0ZXJzIHRvIHRoZSB0YWJsZS5cblx0XHRcdFx0XHRcdC8vTURDIFRhYmxlIG92ZXJyaWRlcyBiaW5kaW5nIEZpbHRlciBhbmQgZnJvbSBTQVAgRkUgdGhlIG9ubHkgbWV0aG9kIHdoZXJlIHdlIGFyZSBhYmxlIHRvIGFkZFxuXHRcdFx0XHRcdFx0Ly9hZGRpdGlvbmFsIGZpbHRlciBpcyAncmViaW5kVGFibGUnIGludG8gVGFibGUgZGVsZWdhdGUuXG5cdFx0XHRcdFx0XHQvL1RvIGF2b2lkIGltcGxlbWVudGluZyBzcGVjaWZpYyBMUiBmZWF0dXJlIHRvIFNBUCBGRSBNYWNybyBUYWJsZSwgdGhlIGZpbHRlcihzKSByZWxhdGVkIHRvIHRoZSBUYWIgKG11bHRpIHRhYmxlIG1vZGUpXG5cdFx0XHRcdFx0XHQvL2NhbiBiZSBwYXNzZWQgdG8gbWFjcm8gdGFibGUgdmlhIHBhcmFtZXRlci9jb250ZXh0IG5hbWVkIGZpbHRlcnMgYW5kIGtleSBoaWRkZW5GaWx0ZXJzLlxuXHRcdFx0XHRcdFx0ZmlsdGVycy5oaWRkZW5GaWx0ZXJzLnBhdGhzLnB1c2goeyBhbm5vdGF0aW9uUGF0aDogc2VsZWN0aW9uVmFyaWFudFBhdGggfSk7XG5cdFx0XHRcdFx0XHR0YWJsZVZpc3VhbGl6YXRpb24uY29udHJvbC5maWx0ZXJzID0gZmlsdGVycztcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdGNhc2UgVmlzdWFsaXphdGlvblR5cGUuQ2hhcnQ6XG5cdFx0XHRcdFx0XHRjb25zdCBjaGFydFZpc3VhbGl6YXRpb24gPSBwcmVzZW50YXRpb24udmlzdWFsaXphdGlvbnNbaW5kZXhdIGFzIENoYXJ0VmlzdWFsaXphdGlvbjtcblx0XHRcdFx0XHRcdGNoYXJ0VmlzdWFsaXphdGlvbi5pZCA9IGdldENoYXJ0SUQoKGNvbmZpZyBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb24pLmtleSB8fCBcIlwiLCBcIkNoYXJ0XCIpO1xuXHRcdFx0XHRcdFx0Y2hhcnRWaXN1YWxpemF0aW9uLm11bHRpVmlld3MgPSB0cnVlO1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cHJlc2VudGF0aW9uLnZpc3VhbGl6YXRpb25zLmZvckVhY2goKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uKSA9PiB7XG5cdFx0XHRpZiAodmlzdWFsaXphdGlvbkRlZmluaXRpb24udHlwZSA9PT0gVmlzdWFsaXphdGlvblR5cGUuVGFibGUpIHtcblx0XHRcdFx0dGFibGVDb250cm9sSWQgPSB2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi5hbm5vdGF0aW9uLmlkO1xuXHRcdFx0fSBlbHNlIGlmICh2aXN1YWxpemF0aW9uRGVmaW5pdGlvbi50eXBlID09PSBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCkge1xuXHRcdFx0XHRjaGFydENvbnRyb2xJZCA9IHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLmlkO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBWaWV3UGF0aENvbmZpZ3VyYXRpb247XG5cdFx0Y29uc3QgdmlzaWJsZSA9IGNvbmZpZy52aXNpYmxlO1xuXHRcdHJldHVybiB7XG5cdFx0XHRwcmVzZW50YXRpb24sXG5cdFx0XHR0YWJsZUNvbnRyb2xJZCxcblx0XHRcdGNoYXJ0Q29udHJvbElkLFxuXHRcdFx0dGl0bGUsXG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50UGF0aCxcblx0XHRcdHZpc2libGVcblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGNvbmZpZyA9IGNvbmZpZyBhcyBDdXN0b21WaWV3Q29uZmlndXJhdGlvbjtcblx0XHRjb25zdCB0aXRsZSA9IGNvbmZpZy5sYWJlbCxcblx0XHRcdGZyYWdtZW50ID0gY29uZmlnLnRlbXBsYXRlLFxuXHRcdFx0dHlwZSA9IGNvbmZpZy50eXBlLFxuXHRcdFx0Y3VzdG9tVGFiSWQgPSBnZXRDdXN0b21UYWJJRChjb25maWcua2V5IHx8IFwiXCIpLFxuXHRcdFx0dmlzaWJsZSA9IGNvbmZpZy52aXNpYmxlO1xuXHRcdHJldHVybiB7XG5cdFx0XHR0aXRsZSxcblx0XHRcdGZyYWdtZW50LFxuXHRcdFx0dHlwZSxcblx0XHRcdGN1c3RvbVRhYklkLFxuXHRcdFx0dmlzaWJsZVxuXHRcdH07XG5cdH1cbn07XG5jb25zdCBnZXRWaWV3cyA9IGZ1bmN0aW9uIChcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0c2V0dGluZ3NWaWV3czogTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQsXG5cdGlzSW5zaWdodHNFbmFibGVkPzogYm9vbGVhblxuKTogTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uW10ge1xuXHRsZXQgdmlld0NvbnZlcnRlckNvbmZpZ3M6IFZpZXdDb252ZXJ0ZXJTZXR0aW5nc1tdID0gW107XG5cdGlmIChzZXR0aW5nc1ZpZXdzKSB7XG5cdFx0c2V0dGluZ3NWaWV3cy5wYXRocy5mb3JFYWNoKChwYXRoOiBWaWV3UGF0aENvbmZpZ3VyYXRpb24gfCBDdXN0b21WaWV3VGVtcGxhdGVDb25maWd1cmF0aW9uKSA9PiB7XG5cdFx0XHRpZiAoY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKHBhdGggYXMgVmlld1BhdGhDb25maWd1cmF0aW9uKSkge1xuXHRcdFx0XHRpZiAoc2V0dGluZ3NWaWV3cy5wYXRocy5sZW5ndGggPiAxKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQUxQIGZsYXZvciBjYW5ub3QgaGF2ZSBtdWx0aXBsZSB2aWV3c1wiKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRwYXRoID0gcGF0aCBhcyBDb21iaW5lZFZpZXdQYXRoQ29uZmlndXJhdGlvbjtcblx0XHRcdFx0XHR2aWV3Q29udmVydGVyQ29uZmlncy5wdXNoKHtcblx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRwcmltYXJ5OiBwYXRoLnByaW1hcnksXG5cdFx0XHRcdFx0XHRzZWNvbmRhcnk6IHBhdGguc2Vjb25kYXJ5LFxuXHRcdFx0XHRcdFx0ZGVmYXVsdFBhdGg6IHBhdGguZGVmYXVsdFBhdGhcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmICgocGF0aCBhcyBDdXN0b21WaWV3Q29uZmlndXJhdGlvbikudGVtcGxhdGUpIHtcblx0XHRcdFx0cGF0aCA9IHBhdGggYXMgQ3VzdG9tVmlld0NvbmZpZ3VyYXRpb247XG5cdFx0XHRcdHZpZXdDb252ZXJ0ZXJDb25maWdzLnB1c2goe1xuXHRcdFx0XHRcdGtleTogcGF0aC5rZXksXG5cdFx0XHRcdFx0bGFiZWw6IHBhdGgubGFiZWwsXG5cdFx0XHRcdFx0dGVtcGxhdGU6IHBhdGgudGVtcGxhdGUsXG5cdFx0XHRcdFx0dHlwZTogXCJDdXN0b21cIixcblx0XHRcdFx0XHR2aXNpYmxlOiBwYXRoLnZpc2libGVcblx0XHRcdFx0fSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwYXRoID0gcGF0aCBhcyBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb247XG5cdFx0XHRcdGNvbnN0IHZpZXdDb252ZXJ0ZXJDb250ZXh0ID0gY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKFxuXHRcdFx0XHRcdFx0cGF0aC5jb250ZXh0UGF0aCB8fCAocGF0aC5lbnRpdHlTZXQgJiYgYC8ke3BhdGguZW50aXR5U2V0fWApIHx8IGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKVxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0ZW50aXR5VHlwZSA9IHZpZXdDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0XHRcdFx0aWYgKGVudGl0eVR5cGUgJiYgdmlld0NvbnZlcnRlckNvbnRleHQpIHtcblx0XHRcdFx0XHRsZXQgYW5ub3RhdGlvbjtcblx0XHRcdFx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IHZpZXdDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKHBhdGguYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0XHRcdGNvbnN0IHRhcmdldEFubm90YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdFx0XHRcdFx0aWYgKHRhcmdldEFubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdGFubm90YXRpb24gPVxuXHRcdFx0XHRcdFx0XHR0YXJnZXRBbm5vdGF0aW9uLnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblZhcmlhbnRcblx0XHRcdFx0XHRcdFx0XHQ/IGdldENvbXBsaWFudFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uKGVudGl0eVR5cGUsIHZpZXdDb252ZXJ0ZXJDb250ZXh0LCBmYWxzZSlcblx0XHRcdFx0XHRcdFx0XHQ6IHRhcmdldEFubm90YXRpb247XG5cdFx0XHRcdFx0XHR2aWV3Q29udmVydGVyQ29uZmlncy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogdmlld0NvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24sXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBwYXRoLmFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0XHRrZWVwUHJldmlvdXNQZXJzb25hbGl6YXRpb246IHBhdGgua2VlcFByZXZpb3VzUGVyc29uYWxpemF0aW9uLFxuXHRcdFx0XHRcdFx0XHRrZXk6IHBhdGgua2V5LFxuXHRcdFx0XHRcdFx0XHR2aXNpYmxlOiBwYXRoLnZpc2libGVcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBUT0RPIERpYWdub3N0aWNzIG1lc3NhZ2Vcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0XHRpZiAoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZSkge1xuXHRcdFx0dmlld0NvbnZlcnRlckNvbmZpZ3MgPSBnZXRBbHBWaWV3Q29uZmlnKGNvbnZlcnRlckNvbnRleHQsIHZpZXdDb252ZXJ0ZXJDb25maWdzKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dmlld0NvbnZlcnRlckNvbmZpZ3MucHVzaCh7XG5cdFx0XHRcdGFubm90YXRpb246IGdldENvbXBsaWFudFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uKGVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQsIGZhbHNlKSxcblx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB2aWV3Q29udmVydGVyQ29uZmlncy5tYXAoKHZpZXdDb252ZXJ0ZXJDb25maWcpID0+IHtcblx0XHRyZXR1cm4gZ2V0Vmlldyh2aWV3Q29udmVydGVyQ29uZmlnLCBpc0luc2lnaHRzRW5hYmxlZCk7XG5cdH0pO1xufTtcbmNvbnN0IGdldE11bHRpVmlld3NDb250cm9sID0gZnVuY3Rpb24gKFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHR2aWV3czogTGlzdFJlcG9ydFZpZXdEZWZpbml0aW9uW11cbik6IE11bHRpVmlld3NDb250cm9sQ29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGNvbnN0IHZpZXdzRGVmaW5pdGlvbjogTXVsdGlwbGVWaWV3c0NvbmZpZ3VyYXRpb24gfCB1bmRlZmluZWQgPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Vmlld0NvbmZpZ3VyYXRpb24oKTtcblx0aWYgKHZpZXdzLmxlbmd0aCA+IDEgJiYgIWhhc011bHRpVmlzdWFsaXphdGlvbnMoY29udmVydGVyQ29udGV4dCkpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0c2hvd1RhYkNvdW50czogdmlld3NEZWZpbml0aW9uID8gdmlld3NEZWZpbml0aW9uPy5zaG93Q291bnRzIHx8IG1hbmlmZXN0V3JhcHBlci5oYXNNdWx0aXBsZUVudGl0eVNldHMoKSA6IHVuZGVmaW5lZCwgLy8gd2l0aCBtdWx0aSBFbnRpdHlTZXRzLCB0YWIgY291bnRzIGFyZSBkaXNwbGF5ZWQgYnkgZGVmYXVsdFxuXHRcdFx0aWQ6IGdldEljb25UYWJCYXJJRCgpXG5cdFx0fTtcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTtcbmZ1bmN0aW9uIGdldEFscFZpZXdDb25maWcoY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCwgdmlld0NvbmZpZ3M6IFZpZXdDb252ZXJ0ZXJTZXR0aW5nc1tdKTogVmlld0NvbnZlcnRlclNldHRpbmdzW10ge1xuXHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdGNvbnN0IGFubm90YXRpb24gPSBnZXRDb21wbGlhbnRWaXN1YWxpemF0aW9uQW5ub3RhdGlvbihlbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0LCB0cnVlKTtcblx0bGV0IGNoYXJ0LCB0YWJsZTtcblx0aWYgKGFubm90YXRpb24pIHtcblx0XHR2aWV3Q29uZmlncy5wdXNoKHtcblx0XHRcdGFubm90YXRpb246IGFubm90YXRpb24sXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0Y2hhcnQgPSBnZXREZWZhdWx0Q2hhcnQoZW50aXR5VHlwZSk7XG5cdFx0dGFibGUgPSBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSk7XG5cdFx0aWYgKGNoYXJ0ICYmIHRhYmxlKSB7XG5cdFx0XHRjb25zdCBwcmltYXJ5OiBTaW5nbGVWaWV3UGF0aENvbmZpZ3VyYXRpb25bXSA9IFt7IGFubm90YXRpb25QYXRoOiBcIkBcIiArIGNoYXJ0LnRlcm0gfV07XG5cdFx0XHRjb25zdCBzZWNvbmRhcnk6IFNpbmdsZVZpZXdQYXRoQ29uZmlndXJhdGlvbltdID0gW3sgYW5ub3RhdGlvblBhdGg6IFwiQFwiICsgdGFibGUudGVybSB9XTtcblx0XHRcdHZpZXdDb25maWdzLnB1c2goe1xuXHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRwcmltYXJ5OiBwcmltYXJ5LFxuXHRcdFx0XHRzZWNvbmRhcnk6IHNlY29uZGFyeSxcblx0XHRcdFx0ZGVmYXVsdFBhdGg6IFwiYm90aFwiXG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQUxQIGZsYXZvciBuZWVkcyBib3RoIGNoYXJ0IGFuZCB0YWJsZSB0byBsb2FkIHRoZSBhcHBsaWNhdGlvblwiKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHZpZXdDb25maWdzO1xufVxuZnVuY3Rpb24gaGFzTXVsdGlWaXN1YWxpemF0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogYm9vbGVhbiB7XG5cdHJldHVybiAoXG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHxcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlXG5cdCk7XG59XG5leHBvcnQgY29uc3QgZ2V0SGVhZGVyQWN0aW9ucyA9IGZ1bmN0aW9uIChjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKTtcblx0cmV0dXJuIGluc2VydEN1c3RvbUVsZW1lbnRzPEJhc2VBY3Rpb24+KFtdLCBnZXRBY3Rpb25zRnJvbU1hbmlmZXN0KG1hbmlmZXN0V3JhcHBlci5nZXRIZWFkZXJBY3Rpb25zKCksIGNvbnZlcnRlckNvbnRleHQpLmFjdGlvbnMpO1xufTtcbmV4cG9ydCBjb25zdCBjaGVja0NoYXJ0RmlsdGVyQmFySWQgPSBmdW5jdGlvbiAodmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdLCBmaWx0ZXJCYXJJZDogc3RyaW5nKSB7XG5cdHZpZXdzLmZvckVhY2goKHZpZXcpID0+IHtcblx0XHRpZiAoISh2aWV3IGFzIEN1c3RvbVZpZXdEZWZpbml0aW9uKS50eXBlKSB7XG5cdFx0XHRjb25zdCBwcmVzZW50YXRpb246IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiA9ICh2aWV3IGFzIFNpbmdsZVZpZXdEZWZpbml0aW9uKS5wcmVzZW50YXRpb247XG5cdFx0XHRwcmVzZW50YXRpb24udmlzdWFsaXphdGlvbnMuZm9yRWFjaCgodmlzdWFsaXphdGlvbkRlZmluaXRpb24pID0+IHtcblx0XHRcdFx0aWYgKHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLnR5cGUgPT09IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0ICYmIHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLmZpbHRlcklkICE9PSBmaWx0ZXJCYXJJZCkge1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb25EZWZpbml0aW9uLmZpbHRlcklkID0gZmlsdGVyQmFySWQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG59O1xuLyoqXG4gKiBDcmVhdGVzIHRoZSBMaXN0UmVwb3J0RGVmaW5pdGlvbiBmb3IgbXVsdGlwbGUgZW50aXR5IHNldHMgKG11bHRpcGxlIHRhYmxlIG1vZGUpLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIGlzSW5zaWdodHNFbmFibGVkXG4gKiBAcmV0dXJucyBUaGUgbGlzdCByZXBvcnQgZGVmaW5pdGlvbiBiYXNlZCBvbiBhbm5vdGF0aW9uICsgbWFuaWZlc3RcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnZlcnRQYWdlID0gZnVuY3Rpb24gKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIGlzSW5zaWdodHNFbmFibGVkPzogYm9vbGVhbik6IExpc3RSZXBvcnREZWZpbml0aW9uIHtcblx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRjb25zdCBzQ29udGV4dFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldENvbnRleHRQYXRoKCk7XG5cdGlmICghc0NvbnRleHRQYXRoKSB7XG5cdFx0Ly8gSWYgd2UgZG9uJ3QgaGF2ZSBhbiBlbnRpdHlTZXQgYXQgdGhpcyBwb2ludCB3ZSBoYXZlIGFuIGlzc3VlIEknZCBzYXlcblx0XHR0aHJvdyBuZXcgRXJyb3IoXG5cdFx0XHRcIkFuIEVudGl0eVNldCBpcyByZXF1aXJlZCB0byBiZSBhYmxlIHRvIGRpc3BsYXkgYSBMaXN0UmVwb3J0LCBwbGVhc2UgYWRqdXN0IHlvdXIgYGVudGl0eVNldGAgcHJvcGVydHkgdG8gcG9pbnQgdG8gb25lLlwiXG5cdFx0KTtcblx0fVxuXHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCB2aWV3c0RlZmluaXRpb246IE11bHRpcGxlVmlld3NDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkID0gbWFuaWZlc3RXcmFwcGVyLmdldFZpZXdDb25maWd1cmF0aW9uKCk7XG5cdGNvbnN0IGhhc011bHRpcGxlRW50aXR5U2V0cyA9IG1hbmlmZXN0V3JhcHBlci5oYXNNdWx0aXBsZUVudGl0eVNldHMoKTtcblx0Y29uc3Qgdmlld3M6IExpc3RSZXBvcnRWaWV3RGVmaW5pdGlvbltdID0gZ2V0Vmlld3MoY29udmVydGVyQ29udGV4dCwgdmlld3NEZWZpbml0aW9uLCBpc0luc2lnaHRzRW5hYmxlZCk7XG5cdGNvbnN0IGxyVGFibGVWaXN1YWxpemF0aW9ucyA9IGdldFRhYmxlVmlzdWFsaXphdGlvbnModmlld3MpO1xuXHRjb25zdCBsckNoYXJ0VmlzdWFsaXphdGlvbnMgPSBnZXRDaGFydFZpc3VhbGl6YXRpb25zKHZpZXdzKTtcblx0Y29uc3Qgc2hvd1Bpbm5hYmxlVG9nZ2xlID0gbHJUYWJsZVZpc3VhbGl6YXRpb25zLnNvbWUoKHRhYmxlKSA9PiB0YWJsZS5jb250cm9sLnR5cGUgPT09IFwiUmVzcG9uc2l2ZVRhYmxlXCIpO1xuXHRsZXQgc2luZ2xlVGFibGVJZCA9IFwiXCI7XG5cdGxldCBzaW5nbGVDaGFydElkID0gXCJcIjtcblx0Y29uc3QgZHluYW1pY0xpc3RSZXBvcnRJZCA9IGdldER5bmFtaWNMaXN0UmVwb3J0SUQoKTtcblx0Y29uc3QgZmlsdGVyQmFySWQgPSBnZXRGaWx0ZXJCYXJJRChzQ29udGV4dFBhdGgpO1xuXHRjb25zdCBmaWx0ZXJWYXJpYW50TWFuYWdlbWVudElEID0gZ2V0RmlsdGVyVmFyaWFudE1hbmFnZW1lbnRJRChmaWx0ZXJCYXJJZCk7XG5cdGNvbnN0IGZiQ29uZmlnID0gbWFuaWZlc3RXcmFwcGVyLmdldEZpbHRlckNvbmZpZ3VyYXRpb24oKTtcblx0Y29uc3QgZmlsdGVySW5pdGlhbExheW91dCA9IGZiQ29uZmlnPy5pbml0aWFsTGF5b3V0ICE9PSB1bmRlZmluZWQgPyBmYkNvbmZpZz8uaW5pdGlhbExheW91dC50b0xvd2VyQ2FzZSgpIDogXCJjb21wYWN0XCI7XG5cdGNvbnN0IGZpbHRlckxheW91dCA9IGZiQ29uZmlnPy5sYXlvdXQgIT09IHVuZGVmaW5lZCA/IGZiQ29uZmlnPy5sYXlvdXQudG9Mb3dlckNhc2UoKSA6IFwiY29tcGFjdFwiO1xuXHRjb25zdCB1c2VTZW1hbnRpY0RhdGVSYW5nZSA9IGZiQ29uZmlnLnVzZVNlbWFudGljRGF0ZVJhbmdlICE9PSB1bmRlZmluZWQgPyBmYkNvbmZpZy51c2VTZW1hbnRpY0RhdGVSYW5nZSA6IHRydWU7XG5cdGNvbnN0IHNob3dDbGVhckJ1dHRvbiA9IGZiQ29uZmlnLnNob3dDbGVhckJ1dHRvbiAhPT0gdW5kZWZpbmVkID8gZmJDb25maWcuc2hvd0NsZWFyQnV0dG9uIDogZmFsc2U7XG5cdGNvbnN0IG9Db25maWcgPSBnZXRDb250ZW50QXJlYUlkKGNvbnZlcnRlckNvbnRleHQsIHZpZXdzKTtcblx0aWYgKG9Db25maWcpIHtcblx0XHRzaW5nbGVDaGFydElkID0gb0NvbmZpZy5jaGFydElkO1xuXHRcdHNpbmdsZVRhYmxlSWQgPSBvQ29uZmlnLnRhYmxlSWQ7XG5cdH1cblx0Y29uc3QgdXNlSGlkZGVuRmlsdGVyQmFyID0gbWFuaWZlc3RXcmFwcGVyLnVzZUhpZGRlbkZpbHRlckJhcigpO1xuXHQvLyBDaGFydCBoYXMgYSBkZXBlbmRlbmN5IHRvIGZpbHRlciBiYXIgKGlzc3VlIHdpdGggbG9hZGluZyBkYXRhKS4gT25jZSByZXNvbHZlZCwgdGhlIGNoZWNrIGZvciBjaGFydCBzaG91bGQgYmUgcmVtb3ZlZCBoZXJlLlxuXHQvLyBVbnRpbCB0aGVuLCBoaWRpbmcgZmlsdGVyIGJhciBpcyBub3cgYWxsb3dlZCBpZiBhIGNoYXJ0IGlzIGJlaW5nIHVzZWQgb24gTFIuXG5cdGNvbnN0IGhpZGVGaWx0ZXJCYXIgPSAobWFuaWZlc3RXcmFwcGVyLmlzRmlsdGVyQmFySGlkZGVuKCkgfHwgdXNlSGlkZGVuRmlsdGVyQmFyKSAmJiBzaW5nbGVDaGFydElkID09PSBcIlwiO1xuXHRjb25zdCBsckZpbHRlclByb3BlcnRpZXMgPSBnZXRTZWxlY3Rpb25GaWVsZHMoY29udmVydGVyQ29udGV4dCwgbHJUYWJsZVZpc3VhbGl6YXRpb25zKTtcblx0Y29uc3Qgc2VsZWN0aW9uRmllbGRzID0gbHJGaWx0ZXJQcm9wZXJ0aWVzLnNlbGVjdGlvbkZpZWxkcztcblx0Y29uc3QgcHJvcGVydHlJbmZvRmllbGRzID0gbHJGaWx0ZXJQcm9wZXJ0aWVzLnNQcm9wZXJ0eUluZm87XG5cdGNvbnN0IGhpZGVCYXNpY1NlYXJjaCA9IGdldEZpbHRlckJhckhpZGVCYXNpY1NlYXJjaChsclRhYmxlVmlzdWFsaXphdGlvbnMsIGxyQ2hhcnRWaXN1YWxpemF0aW9ucywgY29udmVydGVyQ29udGV4dCk7XG5cdGNvbnN0IG11bHRpVmlld0NvbnRyb2wgPSBnZXRNdWx0aVZpZXdzQ29udHJvbChjb252ZXJ0ZXJDb250ZXh0LCB2aWV3cyk7XG5cdGNvbnN0IHNlbGVjdGlvblZhcmlhbnQgPSBtdWx0aVZpZXdDb250cm9sID8gdW5kZWZpbmVkIDogZ2V0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0Y29uc3QgZGVmYXVsdFNlbWFudGljRGF0ZXMgPSB1c2VTZW1hbnRpY0RhdGVSYW5nZSA/IGdldERlZmF1bHRTZW1hbnRpY0RhdGVzKGdldE1hbmlmZXN0RmlsdGVyRmllbGRzKGVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQpKSA6IHt9O1xuXHQvLyBTb3J0IGhlYWRlciBhY3Rpb25zIGFjY29yZGluZyB0byBwb3NpdGlvbiBhdHRyaWJ1dGVzIGluIG1hbmlmZXN0XG5cdGNvbnN0IGhlYWRlckFjdGlvbnMgPSBnZXRIZWFkZXJBY3Rpb25zKGNvbnZlcnRlckNvbnRleHQpO1xuXHRpZiAoaGFzTXVsdGlwbGVFbnRpdHlTZXRzKSB7XG5cdFx0Y2hlY2tDaGFydEZpbHRlckJhcklkKHZpZXdzLCBmaWx0ZXJCYXJJZCk7XG5cdH1cblx0Y29uc3QgdmlzdWFsaXphdGlvbklkcyA9IGxyVGFibGVWaXN1YWxpemF0aW9uc1xuXHRcdC5tYXAoKHZpc3VhbGl6YXRpb24pID0+IHtcblx0XHRcdHJldHVybiB2aXN1YWxpemF0aW9uLmFubm90YXRpb24uaWQ7XG5cdFx0fSlcblx0XHQuY29uY2F0KFxuXHRcdFx0bHJDaGFydFZpc3VhbGl6YXRpb25zLm1hcCgodmlzdWFsaXphdGlvbikgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdmlzdWFsaXphdGlvbi5pZDtcblx0XHRcdH0pXG5cdFx0KTtcblx0Y29uc3QgdGFyZ2V0Q29udHJvbElkcyA9IFtcblx0XHQuLi4oaGlkZUZpbHRlckJhciAmJiAhdXNlSGlkZGVuRmlsdGVyQmFyID8gW10gOiBbZmlsdGVyQmFySWRdKSxcblx0XHQuLi4obWFuaWZlc3RXcmFwcGVyLmdldFZhcmlhbnRNYW5hZ2VtZW50KCkgIT09IFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Db250cm9sID8gdmlzdWFsaXphdGlvbklkcyA6IFtdKSxcblx0XHQuLi4obXVsdGlWaWV3Q29udHJvbCA/IFttdWx0aVZpZXdDb250cm9sLmlkXSA6IFtdKVxuXHRdO1xuXHRjb25zdCBzdGlja3lTdWJoZWFkZXJQcm92aWRlciA9XG5cdFx0bXVsdGlWaWV3Q29udHJvbCAmJiBtYW5pZmVzdFdyYXBwZXIuZ2V0U3RpY2t5TXVsdGlUYWJIZWFkZXJDb25maWd1cmF0aW9uKCkgPyBtdWx0aVZpZXdDb250cm9sLmlkIDogdW5kZWZpbmVkO1xuXHRyZXR1cm4ge1xuXHRcdG1haW5FbnRpdHlTZXQ6IHNDb250ZXh0UGF0aCxcblx0XHRtYWluRW50aXR5VHlwZTogYCR7c0NvbnRleHRQYXRofS9gLFxuXHRcdG11bHRpVmlld3NDb250cm9sOiBtdWx0aVZpZXdDb250cm9sLFxuXHRcdHN0aWNreVN1YmhlYWRlclByb3ZpZGVyLFxuXHRcdHNpbmdsZVRhYmxlSWQsXG5cdFx0c2luZ2xlQ2hhcnRJZCxcblx0XHRkeW5hbWljTGlzdFJlcG9ydElkLFxuXHRcdGhlYWRlckFjdGlvbnMsXG5cdFx0c2hvd1Bpbm5hYmxlVG9nZ2xlOiBzaG93UGlubmFibGVUb2dnbGUsXG5cdFx0ZmlsdGVyQmFyOiB7XG5cdFx0XHRwcm9wZXJ0eUluZm86IHByb3BlcnR5SW5mb0ZpZWxkcyxcblx0XHRcdHNlbGVjdGlvbkZpZWxkcyxcblx0XHRcdGhpZGVCYXNpY1NlYXJjaCxcblx0XHRcdHNob3dDbGVhckJ1dHRvblxuXHRcdH0sXG5cdFx0dmlld3M6IHZpZXdzLFxuXHRcdGZpbHRlckJhcklkOiBoaWRlRmlsdGVyQmFyICYmICF1c2VIaWRkZW5GaWx0ZXJCYXIgPyBcIlwiIDogZmlsdGVyQmFySWQsXG5cdFx0ZmlsdGVyQ29uZGl0aW9uczoge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudDogc2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdGRlZmF1bHRTZW1hbnRpY0RhdGVzOiBkZWZhdWx0U2VtYW50aWNEYXRlc1xuXHRcdH0sXG5cdFx0dmFyaWFudE1hbmFnZW1lbnQ6IHtcblx0XHRcdGlkOiBmaWx0ZXJWYXJpYW50TWFuYWdlbWVudElELFxuXHRcdFx0dGFyZ2V0Q29udHJvbElkczogdGFyZ2V0Q29udHJvbElkcy5qb2luKFwiLFwiKVxuXHRcdH0sXG5cdFx0aGFzTXVsdGlWaXN1YWxpemF0aW9uczogaGFzTXVsdGlWaXN1YWxpemF0aW9ucyhjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHR0ZW1wbGF0ZVR5cGU6IG1hbmlmZXN0V3JhcHBlci5nZXRUZW1wbGF0ZVR5cGUoKSxcblx0XHR1c2VTZW1hbnRpY0RhdGVSYW5nZSxcblx0XHRmaWx0ZXJJbml0aWFsTGF5b3V0LFxuXHRcdGZpbHRlckxheW91dCxcblx0XHRrcGlEZWZpbml0aW9uczogZ2V0S1BJRGVmaW5pdGlvbnMoY29udmVydGVyQ29udGV4dCksXG5cdFx0aGlkZUZpbHRlckJhcixcblx0XHR1c2VIaWRkZW5GaWx0ZXJCYXJcblx0fTtcbn07XG5mdW5jdGlvbiBnZXRDb250ZW50QXJlYUlkKGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIHZpZXdzOiBMaXN0UmVwb3J0Vmlld0RlZmluaXRpb25bXSk6IENvbnRlbnRBcmVhSUQgfCB1bmRlZmluZWQge1xuXHRsZXQgc2luZ2xlVGFibGVJZCA9IFwiXCIsXG5cdFx0c2luZ2xlQ2hhcnRJZCA9IFwiXCI7XG5cdGlmIChcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMoKSB8fFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2Vcblx0KSB7XG5cdFx0Zm9yIChjb25zdCBsclZpZXcgb2Ygdmlld3MpIHtcblx0XHRcdGNvbnN0IHZpZXc6IENvbWJpbmVkVmlld0RlZmluaXRpb24gPSBsclZpZXcgYXMgQ29tYmluZWRWaWV3RGVmaW5pdGlvbjtcblx0XHRcdGlmICh2aWV3LmNoYXJ0Q29udHJvbElkICYmIHZpZXcudGFibGVDb250cm9sSWQpIHtcblx0XHRcdFx0c2luZ2xlQ2hhcnRJZCA9IHZpZXcuY2hhcnRDb250cm9sSWQ7XG5cdFx0XHRcdHNpbmdsZVRhYmxlSWQgPSB2aWV3LnRhYmxlQ29udHJvbElkO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Zm9yIChjb25zdCBsclZpZXcgb2Ygdmlld3MpIHtcblx0XHRcdGNvbnN0IHZpZXc6IFNpbmdsZVZpZXdEZWZpbml0aW9uID0gbHJWaWV3IGFzIFNpbmdsZVZpZXdEZWZpbml0aW9uO1xuXHRcdFx0aWYgKCFzaW5nbGVUYWJsZUlkICYmICh2aWV3IGFzIFNpbmdsZVRhYmxlVmlld0RlZmluaXRpb24pLnRhYmxlQ29udHJvbElkKSB7XG5cdFx0XHRcdHNpbmdsZVRhYmxlSWQgPSAodmlldyBhcyBTaW5nbGVUYWJsZVZpZXdEZWZpbml0aW9uKS50YWJsZUNvbnRyb2xJZCB8fCBcIlwiO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFzaW5nbGVDaGFydElkICYmICh2aWV3IGFzIFNpbmdsZUNoYXJ0Vmlld0RlZmluaXRpb24pLmNoYXJ0Q29udHJvbElkKSB7XG5cdFx0XHRcdHNpbmdsZUNoYXJ0SWQgPSAodmlldyBhcyBTaW5nbGVDaGFydFZpZXdEZWZpbml0aW9uKS5jaGFydENvbnRyb2xJZCB8fCBcIlwiO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHNpbmdsZUNoYXJ0SWQgJiYgc2luZ2xlVGFibGVJZCkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0aWYgKHNpbmdsZVRhYmxlSWQgfHwgc2luZ2xlQ2hhcnRJZCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRjaGFydElkOiBzaW5nbGVDaGFydElkLFxuXHRcdFx0dGFibGVJZDogc2luZ2xlVGFibGVJZFxuXHRcdH07XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1KQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTQSxzQkFBc0IsQ0FBQ0MsS0FBaUMsRUFBd0I7SUFDeEYsTUFBTUMsTUFBNEIsR0FBRyxFQUFFO0lBQ3ZDRCxLQUFLLENBQUNFLE9BQU8sQ0FBQyxVQUFVQyxJQUFJLEVBQUU7TUFDN0IsSUFBSSxDQUFFQSxJQUFJLENBQTBCQyxJQUFJLEVBQUU7UUFDekMsTUFBTUMsY0FBYyxHQUFJRixJQUFJLENBQTRCRyxzQkFBc0IsR0FDMUVILElBQUksQ0FBNEJHLHNCQUFzQixDQUFDRCxjQUFjLEdBQ3JFRixJQUFJLENBQTBCSSxZQUFZLENBQUNGLGNBQWM7UUFDN0RBLGNBQWMsQ0FBQ0gsT0FBTyxDQUFDLFVBQVVNLGFBQWEsRUFBRTtVQUMvQyxJQUFJQSxhQUFhLENBQUNKLElBQUksS0FBS0ssaUJBQWlCLENBQUNDLEtBQUssRUFBRTtZQUNuRFQsTUFBTSxDQUFDVSxJQUFJLENBQUNILGFBQWEsQ0FBQztVQUMzQjtRQUNELENBQUMsQ0FBQztNQUNIO0lBQ0QsQ0FBQyxDQUFDO0lBQ0YsT0FBT1AsTUFBTTtFQUNkO0VBQ0EsU0FBU1csc0JBQXNCLENBQUNaLEtBQWlDLEVBQXdCO0lBQ3hGLE1BQU1hLE1BQTRCLEdBQUcsRUFBRTtJQUN2Q2IsS0FBSyxDQUFDRSxPQUFPLENBQUMsVUFBVUMsSUFBSSxFQUFFO01BQzdCLElBQUksQ0FBRUEsSUFBSSxDQUEwQkMsSUFBSSxFQUFFO1FBQ3pDLE1BQU1DLGNBQWMsR0FBSUYsSUFBSSxDQUE0Qlcsb0JBQW9CLEdBQ3hFWCxJQUFJLENBQTRCVyxvQkFBb0IsQ0FBQ1QsY0FB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
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/controls/ListReport/FilterBar","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/helpers/BindingToolkit","../controls/Common/DataVisualization","../controls/Common/KPI","../helpers/ID","../ManifestSettings"],function(t,e,n,i,a,o,r,s){"use strict";var l={};var c=s.VisualizationType;var u=s.VariantManagementType;var f=s.TemplateType;var d=r.getTableID;var p=r.getIconTabBarID;var v=r.getFilterVariantManagementID;var h=r.getFilterBarID;var y=r.getDynamicListReportID;var g=r.getCustomTabID;var m=r.getChartID;var C=o.getKPIDefinitions;var b=a.isSelectionPresentationCompliant;var P=a.isPresentationCompliant;var T=a.getSelectionVariant;var I=a.getSelectionPresentationVariant;var V=a.getDefaultPresentationVariant;var w=a.getDefaultLineItem;var E=a.getDefaultChart;var z=a.getDataVisualizationConfiguration;var S=i.getExpressionFromAnnotation;var M=i.compileExpression;var k=n.insertCustomElements;var A=e.getSelectionFields;var D=e.getManifestFilterFields;var F=e.getFilterBarHideBasicSearch;var L=t.getActionsFromManifest;function B(t){const e=[];t.forEach(function(t){if(!t.type){const n=t.secondaryVisualization?t.secondaryVisualization.visualizations:t.presentation.visualizations;n.forEach(function(t){if(t.type===c.Table){e.push(t)}})}});return e}function x(t){const e=[];t.forEach(function(t){if(!t.type){const n=t.primaryVisualization?t.primaryVisualization.visualizations:t.presentation.visualizations;n.forEach(function(t){if(t.type===c.Chart){e.push(t)}})}});return e}const R=function(t){const e={};for(const s in t){var n,i,a;if((n=t[s])!==null&&n!==void 0&&(i=n.settings)!==null&&i!==void 0&&(a=i.defaultValues)!==null&&a!==void 0&&a.length){var o,r;e[s]=(o=t[s])===null||o===void 0?void 0:(r=o.settings)===null||r===void 0?void 0:r.defaultValues}}return e};function W(t,e,n){const i=e.getManifestWrapper().getDefaultTemplateAnnotationPath();const a=I(t,i,e);const o="ALP flavor needs both chart and table to load the application";if(a){if(i){const t=a.PresentationVariant;if(!t){throw new Error("Presentation Variant is not configured in the SPV mentioned in the manifest")}if(!P(t,n)){if(n){throw new Error(o)}return undefined}}if(b(a,n)===true){return a}else if(n){throw new Error(o)}}const r=V(t);if(r){if(P(r,n)){return r}else if(n){throw new Error(o)}}if(!n){return w(t)}return undefined}const H=function(t){let e=t;if(e.converterContext){var n,i;let t=e.converterContext;e=e;const a=function(t){return t.key!==undefined};let o=z(e.annotation?t.getRelativeAnnotationPath(e.annotation.fullyQualifiedName,t.getEntityType()):"",true,t,e,undefined,undefined,a(e));let r="";let s="";let l="";let u="";const p=function(t,e){let n;for(const i of t.visualizations){if(e&&i.type===c.Chart){n=i;break}if(!e&&i.type===c.Table){n=i;break}}const i=Object.assign({},t);if(n){i.visualizations=[n]}else{throw new Error((e?"Primary":"Secondary")+" visualisation needs valid "+(e?"chart":"table"))}return i};const v=function(n,i){const a=t.getEntityTypeAnnotation(n.annotationPath);const r=a.annotation;t=a.converterContext;const s=r;if(s||t.getTemplateType()===f.AnalyticalListPage){o=z(s?t.getRelativeAnnotationPath(s.fullyQualifiedName,t.getEntityType()):"",true,t,e);return o}else{const t="Annotation Path for the "+(i?"primary":"secondary")+" visualisation mentioned in the manifest is not found";throw new Error(t)}};const h=function(t,n){var i,a,o;const l=p(t[0],true);s=l===null||l===void 0?void 0:(i=l.visualizations[0])===null||i===void 0?void 0:i.id;const c=p(t[1]?t[1]:t[0],false);r=c===null||c===void 0?void 0:(a=c.visualizations[0])===null||a===void 0?void 0:(o=a.annotation)===null||o===void 0?void 0:o.id;if(l&&c){e=e;const t=e.visible;const i={primaryVisualization:l,secondaryVisualization:c,tableControlId:r,chartControlId:s,defaultPath:n,visible:t};return i}};if(!t.getManifestWrapper().hasMultipleVisualizations(e)&&((n=o)===null||n===void 0?void 0:(i=n.visualizations)===null||i===void 0?void 0:i.length)===2&&t.getTemplateType()===f.AnalyticalListPage){const t=h([o],"both");if(t){return t}}else if(t.getManifestWrapper().hasMultipleVisualizations(e)||t.getTemplateType()===f.AnalyticalListPage){const{primary:t,secondary:n}=e;if(t&&t.length&&n&&n.length){const i=h([v(t[0],true),v(n[0],false)],e.defaultPath);if(i){return i}}else{throw new Error("SecondaryItems in the Views is not present")}}else if(a(e)){const n=t.getEntityTypeAnnotation(e.annotationPath);const i=n.annotation;t=n.converterContext;l=M(S(i.Text));o.visualizations.forEach((t,n)=>{var i;switch(t.type){case c.Table:const t=o.visualizations[n];const r=t.control.filters||{};r.hiddenFilters=r.hiddenFilters||{paths:[]};if(!e.keepPreviousPersonalization){t.annotation.id=d(e.key||"","LineItem")}e=e;if(((i=e.annotation)===null||i===void 0?void 0:i.term)==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"){var a;if(!e.annotation.SelectionVariant){throw new Error(`The Selection Variant is missing for the Selection Presentation Variant ${e.annotation.fullyQualifiedName}`)}u=`@${(a=e.annotation.SelectionVariant)===null||a===void 0?void 0:a.fullyQualifiedName.split("@")[1]}`}else{u=e.annotationPath}r.hiddenFilters.paths.push({annotationPath:u});t.control.filters=r;break;case c.Chart:const s=o.visualizations[n];s.id=m(e.key||"","Chart");s.multiViews=true;break;default:break}})}o.visualizations.forEach(t=>{if(t.type===c.Table){r=t.annotation.id}else if(t.type===c.Chart){s=t.id}});e=e;const y=e.visible;return{presentation:o,tableControlId:r,chartControlId:s,title:l,selectionVariantPath:u,visible:y}}else{e=e;const t=e.label,n=e.template,i=e.type,a=g(e.key||""),o=e.visible;return{title:t,fragment:n,type:i,customTabId:a,visible:o}}};const j=function(t,e){let n=[];if(e){e.paths.forEach(i=>{if(t.getManifestWrapper().hasMultipleVisualizations(i)){if(e.paths.length>1){throw new Error("ALP flavor cannot have multiple views")}else{i=i;n.push({converterContext:t,primary:i.primary,secondary:i.secondary,defaultPath:i.defaultPath})}}else if(i.template){i=i;n.push({key:i.key,label:i.label,template:i.template,type:"Custom",visible:i.visible})}else{i=i;const e=t.getConverterContextFor(i.contextPath||i.entitySet&&`/${i.entitySet}`||t.getContextPath()),a=e.getEntityType();if(a&&e){let t;const o=e.getEntityTypeAnnotation(i.annotationPath);const r=o.annotation;if(r){t=r.term==="com.sap.vocabularies.UI.v1.SelectionVariant"?W(a,e,false):r;n.push({converterContext:e,annotation:t,annotationPath:i.annotationPath,keepPreviousPersonalization:i.keepPreviousPersonalization,key:i.key,visible:i.visible})}}else{}}})}else{const e=t.getEntityType();if(t.getTemplateType()===f.AnalyticalListPage){n=Q(t,n)}else{n.push({annotation:W(e,t,false),converterContext:t})}}return n.map(t=>H(t))};const N=function(t,e){const n=t.getManifestWrapper();const i=n.getViewConfiguration();if(e.length>1&&!$(t)){return{showTabCounts:i?(i===null||i===void 0?void 0:i.showCounts)||n.hasMultipleEntitySets():undefined,id:p()}}return undefined};function Q(t,e){const n=t.getEntityType();const i=W(n,t,true);let a,o;if(i){e.push({annotation:i,converterContext:t})}else{a=E(n);o=w(n);if(a&&o){const n=[{annotationPath:"@"+a.term}];const i=[{annotationPath:"@"+o.term}];e.push({converterContext:t,primary:n,secondary:i,defaultPath:"both"})}else{throw new Error("ALP flavor needs both chart and table to load the application")}}return e}function $(t){return t.getManifestWrapper().hasMultipleVisualizations()||t.getTemplateType()===f.AnalyticalListPage}const K=function(t){const e=t.getManifestWrapper();return k([],L(e.getHeaderActions(),t).actions)};l.getHeaderActions=K;const O=function(t,e){t.forEach(t=>{if(!t.type){const n=t.presentation;n.visualizations.forEach(t=>{if(t.type===c.Chart&&t.filterId!==e){t.filterId=e}})}})};l.checkChartFilterBarId=O;const U=function(t){const e=t.getEntityType();const n=t.getContextPath();if(!n){throw new Error("An EntitySet is required to be able to display a ListReport, please adjust your `entitySet` property to point to one.")}const i=t.getManifestWrapper();const a=i.getViewConfiguration();const o=i.hasMultipleEntitySets();const r=j(t,a);const s=B(r);const l=x(r);const c=s.some(t=>t.control.type==="ResponsiveTable");let f="";let d="";const p=y();const g=h(n);const m=v(g);const b=i.getFilterConfiguration();const P=(b===null||b===void 0?void 0:b.initialLayout)!==undefined?b===null||b===void 0?void 0:b.initialLayout.toLowerCase():"compact";const I=(b===null||b===void 0?void 0:b.layout)!==undefined?b===null||b===void 0?void 0:b.layout.toLowerCase():"compact";const V=b.useSemanticDateRange!==undefined?b.useSemanticDateRange:true;const w=b.showClearButton!==undefined?b.showClearButton:false;const E=q(t,r);if(E){d=E.chartId;f=E.tableId}const z=i.useHiddenFilterBar();const S=(i.isFilterBarHidden()||z)&&d==="";const M=A(t,s);const k=M.selectionFields;const L=M.sPropertyInfo;const W=F(s,l,t);const H=N(t,r);const Q=H?undefined:T(e,t);const U=V?R(D(e,t)):{};const G=K(t);if(o){O(r,g)}const J=s.map(t=>t.annotation.id).concat(l.map(t=>t.id));const X=[...S&&!z?[]:[g],...i.getVariantManagement()!==u.Control?J:[],...H?[H.id]:[]];const Y=H&&i.getStickyMultiTabHeaderConfiguration()?H.id:undefined;return{mainEntitySet:n,mainEntityType:`${n}/`,multiViewsControl:H,stickySubheaderProvider:Y,singleTableId:f,singleChartId:d,dynamicListReportId:p,headerActions:G,showPinnableToggle:c,filterBar:{propertyInfo:L,selectionFields:k,hideBasicSearch:W,showClearButton:w},views:r,filterBarId:S&&!z?"":g,filterConditions:{selectionVariant:Q,defaultSemanticDates:U},variantManagement:{id:m,targetControlIds:X.join(",")},hasMultiVisualizations:$(t),templateType:i.getTemplateType(),useSemanticDateRange:V,filterInitialLayout:P,filterLayout:I,kpiDefinitions:C(t),hideFilterBar:S,useHiddenFilterBar:z}};l.convertPage=U;function q(t,e){let n="",i="";if(t.getManifestWrapper().hasMultipleVisualizations()||t.getTemplateType()===f.AnalyticalListPage){for(let t of e){t=t;if(t.chartControlId&&t.tableControlId){i=t.chartControlId;n=t.tableControlId;break}}}else{for(let t of e){t=t;if(!n&&t.tableControlId){n=t.tableControlId||""}if(!i&&t.chartControlId){i=t.chartControlId||""}if(i&&n){break}}}if(n||i){return{chartId:i,tableId:n}}return undefined}return l},false);
5
+ sap.ui.define(["sap/fe/core/converters/controls/Common/Action","sap/fe/core/converters/controls/ListReport/FilterBar","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/helpers/BindingToolkit","../controls/Common/DataVisualization","../controls/Common/KPI","../helpers/ID","../ManifestSettings"],function(t,e,n,i,a,o,r,s){"use strict";var l={};var c=s.VisualizationType;var u=s.VariantManagementType;var f=s.TemplateType;var d=r.getTableID;var p=r.getIconTabBarID;var v=r.getFilterVariantManagementID;var h=r.getFilterBarID;var y=r.getDynamicListReportID;var g=r.getCustomTabID;var m=r.getChartID;var C=o.getKPIDefinitions;var b=a.isSelectionPresentationCompliant;var P=a.isPresentationCompliant;var T=a.getSelectionVariant;var I=a.getSelectionPresentationVariant;var V=a.getDefaultPresentationVariant;var w=a.getDefaultLineItem;var E=a.getDefaultChart;var z=a.getDataVisualizationConfiguration;var S=i.getExpressionFromAnnotation;var M=i.compileExpression;var k=n.insertCustomElements;var A=e.getSelectionFields;var D=e.getManifestFilterFields;var F=e.getFilterBarHideBasicSearch;var L=t.getActionsFromManifest;function B(t){const e=[];t.forEach(function(t){if(!t.type){const n=t.secondaryVisualization?t.secondaryVisualization.visualizations:t.presentation.visualizations;n.forEach(function(t){if(t.type===c.Table){e.push(t)}})}});return e}function x(t){const e=[];t.forEach(function(t){if(!t.type){const n=t.primaryVisualization?t.primaryVisualization.visualizations:t.presentation.visualizations;n.forEach(function(t){if(t.type===c.Chart){e.push(t)}})}});return e}const R=function(t){const e={};for(const s in t){var n,i,a;if((n=t[s])!==null&&n!==void 0&&(i=n.settings)!==null&&i!==void 0&&(a=i.defaultValues)!==null&&a!==void 0&&a.length){var o,r;e[s]=(o=t[s])===null||o===void 0?void 0:(r=o.settings)===null||r===void 0?void 0:r.defaultValues}}return e};function W(t,e,n){const i=e.getManifestWrapper().getDefaultTemplateAnnotationPath();const a=I(t,i,e);const o="ALP flavor needs both chart and table to load the application";if(a){if(i){const t=a.PresentationVariant;if(!t){throw new Error("Presentation Variant is not configured in the SPV mentioned in the manifest")}if(!P(t,n)){if(n){throw new Error(o)}return undefined}}if(b(a,n)===true){return a}else if(n){throw new Error(o)}}const r=V(t);if(r){if(P(r,n)){return r}else if(n){throw new Error(o)}}if(!n){return w(t)}return undefined}const H=function(t,e){let n=t;if(n.converterContext){var i,a;let t=n.converterContext;n=n;const o=function(t){return t.key!==undefined};let r=z(n.annotation?t.getRelativeAnnotationPath(n.annotation.fullyQualifiedName,t.getEntityType()):"",true,t,n,undefined,undefined,o(n),e);let s="";let l="";let u="";let p="";const v=function(t,e){let n;for(const i of t.visualizations){if(e&&i.type===c.Chart){n=i;break}if(!e&&i.type===c.Table){n=i;break}}const i=Object.assign({},t);if(n){i.visualizations=[n]}else{throw new Error((e?"Primary":"Secondary")+" visualisation needs valid "+(e?"chart":"table"))}return i};const h=function(i,a){const o=t.getEntityTypeAnnotation(i.annotationPath);const s=o.annotation;t=o.converterContext;const l=s;if(l||t.getTemplateType()===f.AnalyticalListPage){r=z(l?t.getRelativeAnnotationPath(l.fullyQualifiedName,t.getEntityType()):"",true,t,n,undefined,undefined,undefined,e);return r}else{const t="Annotation Path for the "+(a?"primary":"secondary")+" visualisation mentioned in the manifest is not found";throw new Error(t)}};const y=function(t,e){var i,a,o;const r=v(t[0],true);l=r===null||r===void 0?void 0:(i=r.visualizations[0])===null||i===void 0?void 0:i.id;const c=v(t[1]?t[1]:t[0],false);s=c===null||c===void 0?void 0:(a=c.visualizations[0])===null||a===void 0?void 0:(o=a.annotation)===null||o===void 0?void 0:o.id;if(r&&c){n=n;const t=n.visible;const i={primaryVisualization:r,secondaryVisualization:c,tableControlId:s,chartControlId:l,defaultPath:e,visible:t};return i}};if(!t.getManifestWrapper().hasMultipleVisualizations(n)&&((i=r)===null||i===void 0?void 0:(a=i.visualizations)===null||a===void 0?void 0:a.length)===2&&t.getTemplateType()===f.AnalyticalListPage){const t=y([r],"both");if(t){return t}}else if(t.getManifestWrapper().hasMultipleVisualizations(n)||t.getTemplateType()===f.AnalyticalListPage){const{primary:t,secondary:e}=n;if(t&&t.length&&e&&e.length){const i=y([h(t[0],true),h(e[0],false)],n.defaultPath);if(i){return i}}else{throw new Error("SecondaryItems in the Views is not present")}}else if(o(n)){const e=t.getEntityTypeAnnotation(n.annotationPath);const i=e.annotation;t=e.converterContext;u=M(S(i.Text));r.visualizations.forEach((t,e)=>{var i;switch(t.type){case c.Table:const t=r.visualizations[e];const o=t.control.filters||{};o.hiddenFilters=o.hiddenFilters||{paths:[]};if(!n.keepPreviousPersonalization){t.annotation.id=d(n.key||"","LineItem")}n=n;if(((i=n.annotation)===null||i===void 0?void 0:i.term)==="com.sap.vocabularies.UI.v1.SelectionPresentationVariant"){var a;if(!n.annotation.SelectionVariant){throw new Error(`The Selection Variant is missing for the Selection Presentation Variant ${n.annotation.fullyQualifiedName}`)}p=`@${(a=n.annotation.SelectionVariant)===null||a===void 0?void 0:a.fullyQualifiedName.split("@")[1]}`}else{p=n.annotationPath}o.hiddenFilters.paths.push({annotationPath:p});t.control.filters=o;break;case c.Chart:const s=r.visualizations[e];s.id=m(n.key||"","Chart");s.multiViews=true;break;default:break}})}r.visualizations.forEach(t=>{if(t.type===c.Table){s=t.annotation.id}else if(t.type===c.Chart){l=t.id}});n=n;const g=n.visible;return{presentation:r,tableControlId:s,chartControlId:l,title:u,selectionVariantPath:p,visible:g}}else{n=n;const t=n.label,e=n.template,i=n.type,a=g(n.key||""),o=n.visible;return{title:t,fragment:e,type:i,customTabId:a,visible:o}}};const j=function(t,e,n){let i=[];if(e){e.paths.forEach(n=>{if(t.getManifestWrapper().hasMultipleVisualizations(n)){if(e.paths.length>1){throw new Error("ALP flavor cannot have multiple views")}else{n=n;i.push({converterContext:t,primary:n.primary,secondary:n.secondary,defaultPath:n.defaultPath})}}else if(n.template){n=n;i.push({key:n.key,label:n.label,template:n.template,type:"Custom",visible:n.visible})}else{n=n;const e=t.getConverterContextFor(n.contextPath||n.entitySet&&`/${n.entitySet}`||t.getContextPath()),a=e.getEntityType();if(a&&e){let t;const o=e.getEntityTypeAnnotation(n.annotationPath);const r=o.annotation;if(r){t=r.term==="com.sap.vocabularies.UI.v1.SelectionVariant"?W(a,e,false):r;i.push({converterContext:e,annotation:t,annotationPath:n.annotationPath,keepPreviousPersonalization:n.keepPreviousPersonalization,key:n.key,visible:n.visible})}}else{}}})}else{const e=t.getEntityType();if(t.getTemplateType()===f.AnalyticalListPage){i=Q(t,i)}else{i.push({annotation:W(e,t,false),converterContext:t})}}return i.map(t=>H(t,n))};const N=function(t,e){const n=t.getManifestWrapper();const i=n.getViewConfiguration();if(e.length>1&&!$(t)){return{showTabCounts:i?(i===null||i===void 0?void 0:i.showCounts)||n.hasMultipleEntitySets():undefined,id:p()}}return undefined};function Q(t,e){const n=t.getEntityType();const i=W(n,t,true);let a,o;if(i){e.push({annotation:i,converterContext:t})}else{a=E(n);o=w(n);if(a&&o){const n=[{annotationPath:"@"+a.term}];const i=[{annotationPath:"@"+o.term}];e.push({converterContext:t,primary:n,secondary:i,defaultPath:"both"})}else{throw new Error("ALP flavor needs both chart and table to load the application")}}return e}function $(t){return t.getManifestWrapper().hasMultipleVisualizations()||t.getTemplateType()===f.AnalyticalListPage}const K=function(t){const e=t.getManifestWrapper();return k([],L(e.getHeaderActions(),t).actions)};l.getHeaderActions=K;const O=function(t,e){t.forEach(t=>{if(!t.type){const n=t.presentation;n.visualizations.forEach(t=>{if(t.type===c.Chart&&t.filterId!==e){t.filterId=e}})}})};l.checkChartFilterBarId=O;const U=function(t,e){const n=t.getEntityType();const i=t.getContextPath();if(!i){throw new Error("An EntitySet is required to be able to display a ListReport, please adjust your `entitySet` property to point to one.")}const a=t.getManifestWrapper();const o=a.getViewConfiguration();const r=a.hasMultipleEntitySets();const s=j(t,o,e);const l=B(s);const c=x(s);const f=l.some(t=>t.control.type==="ResponsiveTable");let d="";let p="";const g=y();const m=h(i);const b=v(m);const P=a.getFilterConfiguration();const I=(P===null||P===void 0?void 0:P.initialLayout)!==undefined?P===null||P===void 0?void 0:P.initialLayout.toLowerCase():"compact";const V=(P===null||P===void 0?void 0:P.layout)!==undefined?P===null||P===void 0?void 0:P.layout.toLowerCase():"compact";const w=P.useSemanticDateRange!==undefined?P.useSemanticDateRange:true;const E=P.showClearButton!==undefined?P.showClearButton:false;const z=q(t,s);if(z){p=z.chartId;d=z.tableId}const S=a.useHiddenFilterBar();const M=(a.isFilterBarHidden()||S)&&p==="";const k=A(t,l);const L=k.selectionFields;const W=k.sPropertyInfo;const H=F(l,c,t);const Q=N(t,s);const U=Q?undefined:T(n,t);const G=w?R(D(n,t)):{};const J=K(t);if(r){O(s,m)}const X=l.map(t=>t.annotation.id).concat(c.map(t=>t.id));const Y=[...M&&!S?[]:[m],...a.getVariantManagement()!==u.Control?X:[],...Q?[Q.id]:[]];const Z=Q&&a.getStickyMultiTabHeaderConfiguration()?Q.id:undefined;return{mainEntitySet:i,mainEntityType:`${i}/`,multiViewsControl:Q,stickySubheaderProvider:Z,singleTableId:d,singleChartId:p,dynamicListReportId:g,headerActions:J,showPinnableToggle:f,filterBar:{propertyInfo:W,selectionFields:L,hideBasicSearch:H,showClearButton:E},views:s,filterBarId:M&&!S?"":m,filterConditions:{selectionVariant:U,defaultSemanticDates:G},variantManagement:{id:b,targetControlIds:Y.join(",")},hasMultiVisualizations:$(t),templateType:a.getTemplateType(),useSemanticDateRange:w,filterInitialLayout:I,filterLayout:V,kpiDefinitions:C(t),hideFilterBar:M,useHiddenFilterBar:S}};l.convertPage=U;function q(t,e){let n="",i="";if(t.getManifestWrapper().hasMultipleVisualizations()||t.getTemplateType()===f.AnalyticalListPage){for(const t of e){const e=t;if(e.chartControlId&&e.tableControlId){i=e.chartControlId;n=e.tableControlId;break}}}else{for(const t of e){const e=t;if(!n&&e.tableControlId){n=e.tableControlId||""}if(!i&&e.chartControlId){i=e.chartControlId||""}if(i&&n){break}}}if(n||i){return{chartId:i,tableId:n}}return undefined}return l},false);
6
6
  //# sourceMappingURL=ListReportConverter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListReportConverter.js","names":["sap","ui","define","Action","FilterBar","ConfigurableObject","BindingToolkit","DataVisualization","KPI","ID","ManifestSettings","_exports","VisualizationType","VariantManagementType","TemplateType","getTableID","getIconTabBarID","getFilterVariantManagementID","getFilterBarID","getDynamicListReportID","getCustomTabID","getChartID","getKPIDefinitions","isSelectionPresentationCompliant","isPresentationCompliant","getSelectionVariant","getSelectionPresentationVariant","getDefaultPresentationVariant","getDefaultLineItem","getDefaultChart","getDataVisualizationConfiguration","getExpressionFromAnnotation","compileExpression","insertCustomElements","getSelectionFields","getManifestFilterFields","getFilterBarHideBasicSearch","getActionsFromManifest","getTableVisualizations","views","tables","forEach","view","type","visualizations","secondaryVisualization","presentation","visualization","Table","push","getChartVisualizations","charts","primaryVisualization","Chart","getDefaultSemanticDates","filterFields","defaultSemanticDates","filterField","_filterFields$filterF","_filterFields$filterF2","_filterFields$filterF3","settings","defaultValues","length","_filterFields$filterF4","_filterFields$filterF5","getCompliantVisualizationAnnotation","entityType","converterContext","isALP","annotationPath","getManifestWrapper","getDefaultTemplateAnnotationPath","selectionPresentationVariant","errorMessageForALP","presentationVariant","PresentationVariant","Error","undefined","getView","viewConverterConfiguration","config","_presentation","_presentation$visuali","isMultipleViewConfiguration","currentConfig","key","annotation","getRelativeAnnotationPath","fullyQualifiedName","getEntityType","tableControlId","chartControlId","title","selectionVariantPath","createVisualization","currentPresentation","isPrimary","defaultVisualization","presentationCreated","Object","assign","getPresentation","item","resolvedTarget","getEntityTypeAnnotation","targetAnnotation","getTemplateType","AnalyticalListPage","sError","createAlpView","presentations","defaultPath","_primaryVisualization","_secondaryVisualizati","_secondaryVisualizati2","id","visible","hasMultipleVisualizations","primary","secondary","viewAnnotation","Text","visualizationDefinition","index","_config$annotation","tableVisualization","filters","control","hiddenFilters","paths","keepPreviousPersonalization","term","_config$annotation$Se","SelectionVariant","split","chartVisualization","multiViews","label","fragment","template","customTabId","getViews","settingsViews","viewConverterConfigs","path","viewConverterContext","getConverterContextFor","contextPath","entitySet","getContextPath","getAlpViewConfig","map","viewConverterConfig","getMultiViewsControl","manifestWrapper","viewsDefinition","getViewConfiguration","hasMultiVisualizations","showTabCounts","showCounts","hasMultipleEntitySets","viewConfigs","chart","table","getHeaderActions","actions","checkChartFilterBarId","filterBarId","filterId","convertPage","sContextPath","lrTableVisualizations","lrChartVisualizations","showPinnableToggle","some","singleTableId","singleChartId","dynamicListReportId","filterVariantManagementID","fbConfig","getFilterConfiguration","filterInitialLayout","initialLayout","toLowerCase","filterLayout","layout","useSemanticDateRange","showClearButton","oConfig","getContentAreaId","chartId","tableId","useHiddenFilterBar","hideFilterBar","isFilterBarHidden","lrFilterProperties","selectionFields","propertyInfoFields","sPropertyInfo","hideBasicSearch","multiViewControl","selectionVariant","headerActions","visualizationIds","concat","targetControlIds","getVariantManagement","Control","stickySubheaderProvider","getStickyMultiTabHeaderConfiguration","mainEntitySet","mainEntityType","multiViewsControl","filterBar","propertyInfo","filterConditions","variantManagement","join","templateType","kpiDefinitions"],"sources":["ListReportConverter-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"ListReportConverter.js","names":["sap","ui","define","Action","FilterBar","ConfigurableObject","BindingToolkit","DataVisualization","KPI","ID","ManifestSettings","_exports","VisualizationType","VariantManagementType","TemplateType","getTableID","getIconTabBarID","getFilterVariantManagementID","getFilterBarID","getDynamicListReportID","getCustomTabID","getChartID","getKPIDefinitions","isSelectionPresentationCompliant","isPresentationCompliant","getSelectionVariant","getSelectionPresentationVariant","getDefaultPresentationVariant","getDefaultLineItem","getDefaultChart","getDataVisualizationConfiguration","getExpressionFromAnnotation","compileExpression","insertCustomElements","getSelectionFields","getManifestFilterFields","getFilterBarHideBasicSearch","getActionsFromManifest","getTableVisualizations","views","tables","forEach","view","type","visualizations","secondaryVisualization","presentation","visualization","Table","push","getChartVisualizations","charts","primaryVisualization","Chart","getDefaultSemanticDates","filterFields","defaultSemanticDates","filterField","_filterFields$filterF","_filterFields$filterF2","_filterFields$filterF3","settings","defaultValues","length","_filterFields$filterF4","_filterFields$filterF5","getCompliantVisualizationAnnotation","entityType","converterContext","isALP","annotationPath","getManifestWrapper","getDefaultTemplateAnnotationPath","selectionPresentationVariant","errorMessageForALP","presentationVariant","PresentationVariant","Error","undefined","getView","viewConverterConfiguration","isInsightsEnabled","config","_presentation","_presentation$visuali","isMultipleViewConfiguration","currentConfig","key","annotation","getRelativeAnnotationPath","fullyQualifiedName","getEntityType","tableControlId","chartControlId","title","selectionVariantPath","createVisualization","currentPresentation","isPrimary","defaultVisualization","presentationCreated","Object","assign","getPresentation","item","resolvedTarget","getEntityTypeAnnotation","targetAnnotation","getTemplateType","AnalyticalListPage","sError","createAlpView","presentations","defaultPath","_primaryVisualization","_secondaryVisualizati","_secondaryVisualizati2","id","visible","hasMultipleVisualizations","primary","secondary","viewAnnotation","Text","visualizationDefinition","index","_config$annotation","tableVisualization","filters","control","hiddenFilters","paths","keepPreviousPersonalization","term","_config$annotation$Se","SelectionVariant","split","chartVisualization","multiViews","label","fragment","template","customTabId","getViews","settingsViews","viewConverterConfigs","path","viewConverterContext","getConverterContextFor","contextPath","entitySet","getContextPath","getAlpViewConfig","map","viewConverterConfig","getMultiViewsControl","manifestWrapper","viewsDefinition","getViewConfiguration","hasMultiVisualizations","showTabCounts","showCounts","hasMultipleEntitySets","viewConfigs","chart","table","getHeaderActions","actions","checkChartFilterBarId","filterBarId","filterId","convertPage","sContextPath","lrTableVisualizations","lrChartVisualizations","showPinnableToggle","some","singleTableId","singleChartId","dynamicListReportId","filterVariantManagementID","fbConfig","getFilterConfiguration","filterInitialLayout","initialLayout","toLowerCase","filterLayout","layout","useSemanticDateRange","showClearButton","oConfig","getContentAreaId","chartId","tableId","useHiddenFilterBar","hideFilterBar","isFilterBarHidden","lrFilterProperties","selectionFields","propertyInfoFields","sPropertyInfo","hideBasicSearch","multiViewControl","selectionVariant","headerActions","visualizationIds","concat","targetControlIds","getVariantManagement","Control","stickySubheaderProvider","getStickyMultiTabHeaderConfiguration","mainEntitySet","mainEntityType","multiViewsControl","filterBar","propertyInfo","filterConditions","variantManagement","join","templateType","kpiDefinitions","lrView"],"sources":["ListReportConverter-dbg.js"],"mappings":"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"}