@sapui5/sap.fe.core 1.111.1 → 1.113.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 (579) 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 +6 -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 +12 -11
  7. package/src/sap/fe/core/AppComponent-dbg.js +35 -9
  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 +66 -9
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +5 -2
  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 +10 -1
  15. package/src/sap/fe/core/BaseController-dbg.js +1 -1
  16. package/src/sap/fe/core/BaseController.ts +2 -1
  17. package/src/sap/fe/core/CommonUtils-dbg.js +202 -533
  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 +260 -681
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +4 -1
  22. package/src/sap/fe/core/ExtensionAPI.js +1 -1
  23. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  24. package/src/sap/fe/core/ExtensionAPI.ts +11 -1
  25. package/src/sap/fe/core/PageController-dbg.js +26 -31
  26. package/src/sap/fe/core/PageController.js +1 -1
  27. package/src/sap/fe/core/PageController.js.map +1 -1
  28. package/src/sap/fe/core/PageController.ts +17 -3
  29. package/src/sap/fe/core/ResourceModel-dbg.js +71 -0
  30. package/src/sap/fe/core/ResourceModel.js +6 -0
  31. package/src/sap/fe/core/ResourceModel.js.map +1 -0
  32. package/src/sap/fe/core/ResourceModel.ts +67 -0
  33. package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  34. package/src/sap/fe/core/TemplateComponent.ts +1 -0
  35. package/src/sap/fe/core/TemplateModel-dbg.js +1 -1
  36. package/src/sap/fe/core/TemplateModel.ts +6 -1
  37. package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +5 -7
  38. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  39. package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -1
  40. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +6 -5
  41. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +164 -0
  42. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +6 -0
  43. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +170 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +88 -0
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +6 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -0
  48. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +142 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +913 -0
  50. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +21 -0
  51. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -0
  52. package/src/sap/fe/core/buildingBlocks/{BuildingBlockRuntime.ts → BuildingBlockTemplateProcessor.ts} +313 -373
  53. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +79 -0
  54. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +15 -0
  55. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -0
  56. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +68 -0
  57. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +162 -0
  58. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +6 -0
  59. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -0
  60. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +183 -0
  61. package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +4 -2
  62. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
  63. package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -1
  64. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -3
  65. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +936 -231
  66. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  67. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  68. package/src/sap/fe/core/controllerextensions/EditFlow.ts +1023 -255
  69. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +48 -98
  70. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  71. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  72. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +95 -129
  73. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +14 -17
  74. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  75. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  76. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +23 -17
  77. package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1 -1
  78. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -0
  79. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +3 -3
  80. package/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
  81. package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -1
  82. package/src/sap/fe/core/controllerextensions/MassEdit.ts +2 -2
  83. package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +2 -1
  84. package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -1
  85. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +2 -0
  86. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +3 -5
  87. package/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  88. package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -1
  89. package/src/sap/fe/core/controllerextensions/PageReady.ts +26 -4
  90. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
  91. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
  92. package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
  93. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
  94. package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
  95. package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
  96. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  97. package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
  98. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
  99. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  100. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  101. package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
  102. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
  103. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  104. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  105. package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
  106. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
  107. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
  108. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
  109. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
  110. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
  111. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  112. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  113. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
  114. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
  115. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  116. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  117. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
  118. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +4 -4
  119. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +1 -1
  120. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  121. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +4 -5
  122. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
  123. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
  124. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
  125. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
  126. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
  127. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +103 -0
  128. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +6 -0
  129. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -0
  130. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +124 -0
  131. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +78 -149
  132. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  133. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  134. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +85 -160
  135. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +49 -49
  136. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  137. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  138. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +52 -63
  139. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  140. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +82 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
  142. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
  143. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +123 -0
  144. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1508 -0
  145. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
  146. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
  147. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1993 -0
  148. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
  149. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  150. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
  151. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
  152. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -18
  153. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  154. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  155. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -22
  156. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +53 -47
  157. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  158. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  159. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +55 -61
  160. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
  161. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
  162. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
  163. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +78 -13
  164. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  165. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  166. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +100 -13
  167. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
  168. package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
  169. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  170. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  171. package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
  172. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
  173. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  174. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
  175. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
  176. package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
  177. package/src/sap/fe/core/controls/FilterBar.ts +5 -0
  178. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
  179. package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
  180. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
  181. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
  182. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
  183. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
  184. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
  185. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
  186. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
  187. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  188. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  189. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
  190. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
  191. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
  192. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
  193. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
  194. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
  195. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
  196. package/src/sap/fe/core/converters/ConverterContext-dbg.js +3 -5
  197. package/src/sap/fe/core/converters/ConverterContext.js +1 -1
  198. package/src/sap/fe/core/converters/ConverterContext.js.map +1 -1
  199. package/src/sap/fe/core/converters/ConverterContext.ts +4 -6
  200. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
  201. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  202. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
  203. package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
  204. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +21 -3
  205. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  206. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  207. package/src/sap/fe/core/converters/ManifestWrapper.ts +23 -1
  208. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +67 -62
  209. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  210. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  211. package/src/sap/fe/core/converters/MetaModelConverter.ts +75 -66
  212. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
  213. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  214. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  215. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +81 -20
  216. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  217. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  218. package/src/sap/fe/core/converters/annotations/DataField.ts +76 -22
  219. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1027 -956
  220. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  221. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  222. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +13 -19
  223. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  224. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  225. package/src/sap/fe/core/converters/controls/Common/Action.ts +37 -40
  226. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
  227. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  228. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  229. package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
  230. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
  231. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  232. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  233. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
  234. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +7 -6
  235. package/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  236. package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -1
  237. package/src/sap/fe/core/converters/controls/Common/Form.ts +8 -14
  238. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +9 -9
  239. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  240. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  241. package/src/sap/fe/core/converters/controls/Common/KPI.ts +17 -18
  242. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +143 -93
  243. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  244. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  245. package/src/sap/fe/core/converters/controls/Common/Table.ts +221 -177
  246. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +23 -16
  247. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  248. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  249. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +27 -23
  250. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +138 -75
  251. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  252. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  253. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +223 -110
  254. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +38 -28
  255. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  256. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  257. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +67 -47
  258. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
  259. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
  260. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
  261. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  262. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
  263. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
  264. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +54 -24
  265. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  266. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  267. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +84 -37
  268. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +12 -14
  269. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  270. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  271. package/src/sap/fe/core/converters/helpers/Aggregation.ts +16 -11
  272. package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +8 -6
  273. package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
  274. package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -1
  275. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +8 -6
  276. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
  277. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  278. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
  279. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
  280. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
  281. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
  282. package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
  283. package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
  284. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +11 -9
  285. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  286. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  287. package/src/sap/fe/core/converters/helpers/IssueManager.ts +10 -8
  288. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +22 -20
  289. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  290. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  291. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +19 -16
  292. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +32 -35
  293. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  294. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  295. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +42 -37
  296. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +12 -5
  297. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  298. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  299. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +8 -2
  300. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
  301. package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
  302. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
  303. package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
  304. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +3 -7
  305. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  306. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  307. package/src/sap/fe/core/formatters/TableFormatter.ts +2 -6
  308. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +9 -5
  309. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  310. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  311. package/src/sap/fe/core/formatters/ValueFormatter.ts +11 -4
  312. package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
  313. package/src/sap/fe/core/fpm/Component.ts +1 -0
  314. package/src/sap/fe/core/fpm/manifest.json +1 -1
  315. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
  316. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  317. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
  318. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  319. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +7 -6
  320. package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
  321. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  322. package/src/sap/fe/core/helpers/BindingToolkit.ts +9 -9
  323. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
  324. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
  325. package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
  326. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
  327. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  328. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  329. package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
  330. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +23 -20
  331. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  332. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  333. package/src/sap/fe/core/helpers/MassEditHelper.ts +26 -28
  334. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +9 -9
  335. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  336. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  337. package/src/sap/fe/core/helpers/MessageStrip.ts +8 -8
  338. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +517 -0
  339. package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
  340. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
  341. package/src/sap/fe/core/helpers/MetaModelFunction.ts +610 -0
  342. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +37 -73
  343. package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  344. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  345. package/src/sap/fe/core/helpers/ModelHelper.ts +47 -74
  346. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
  347. package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
  348. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
  349. package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
  350. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +39 -0
  351. package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
  352. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
  353. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +35 -0
  354. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +132 -23
  355. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  356. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  357. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +109 -22
  358. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
  359. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  360. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
  361. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  362. package/src/sap/fe/core/helpers/SizeHelper-dbg.js +53 -0
  363. package/src/sap/fe/core/helpers/SizeHelper.js +6 -0
  364. package/src/sap/fe/core/helpers/SizeHelper.js.map +1 -0
  365. package/src/sap/fe/core/helpers/SizeHelper.ts +51 -0
  366. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +29 -25
  367. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  368. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
  369. package/src/sap/fe/core/helpers/StableIdHelper.ts +26 -24
  370. package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
  371. package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
  372. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +151 -1
  373. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  374. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  375. package/src/sap/fe/core/helpers/TypeGuards.ts +162 -1
  376. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
  377. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  378. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
  379. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
  380. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
  381. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
  382. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  383. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  384. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  385. package/src/sap/fe/core/library-dbg.js +2 -2
  386. package/src/sap/fe/core/library-preload.js +156 -140
  387. package/src/sap/fe/core/library-preload.js.map +1 -1
  388. package/src/sap/fe/core/library.js +1 -1
  389. package/src/sap/fe/core/library.ts +7 -0
  390. package/src/sap/fe/core/manifest.json +1 -1
  391. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +67 -15
  392. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  393. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
  394. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -14
  395. package/src/sap/fe/core/messagebundle.properties +35 -0
  396. package/src/sap/fe/core/messagebundle_ar.properties +15 -12
  397. package/src/sap/fe/core/messagebundle_bg.properties +20 -17
  398. package/src/sap/fe/core/messagebundle_ca.properties +12 -9
  399. package/src/sap/fe/core/messagebundle_cs.properties +12 -9
  400. package/src/sap/fe/core/messagebundle_cy.properties +12 -9
  401. package/src/sap/fe/core/messagebundle_da.properties +12 -9
  402. package/src/sap/fe/core/messagebundle_de.properties +13 -10
  403. package/src/sap/fe/core/messagebundle_el.properties +14 -11
  404. package/src/sap/fe/core/messagebundle_en.properties +4 -1
  405. package/src/sap/fe/core/messagebundle_en_GB.properties +4 -1
  406. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
  407. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +21 -0
  408. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +23 -3
  409. package/src/sap/fe/core/messagebundle_es.properties +12 -9
  410. package/src/sap/fe/core/messagebundle_es_MX.properties +12 -9
  411. package/src/sap/fe/core/messagebundle_et.properties +12 -9
  412. package/src/sap/fe/core/messagebundle_fi.properties +12 -9
  413. package/src/sap/fe/core/messagebundle_fr.properties +12 -9
  414. package/src/sap/fe/core/messagebundle_fr_CA.properties +13 -10
  415. package/src/sap/fe/core/messagebundle_hi.properties +12 -9
  416. package/src/sap/fe/core/messagebundle_hr.properties +12 -9
  417. package/src/sap/fe/core/messagebundle_hu.properties +12 -9
  418. package/src/sap/fe/core/messagebundle_id.properties +13 -10
  419. package/src/sap/fe/core/messagebundle_it.properties +12 -9
  420. package/src/sap/fe/core/messagebundle_iw.properties +12 -9
  421. package/src/sap/fe/core/messagebundle_ja.properties +13 -10
  422. package/src/sap/fe/core/messagebundle_kk.properties +12 -9
  423. package/src/sap/fe/core/messagebundle_ko.properties +12 -9
  424. package/src/sap/fe/core/messagebundle_lt.properties +12 -9
  425. package/src/sap/fe/core/messagebundle_lv.properties +12 -9
  426. package/src/sap/fe/core/messagebundle_ms.properties +13 -10
  427. package/src/sap/fe/core/messagebundle_nl.properties +13 -10
  428. package/src/sap/fe/core/messagebundle_no.properties +12 -9
  429. package/src/sap/fe/core/messagebundle_pl.properties +12 -9
  430. package/src/sap/fe/core/messagebundle_pt.properties +12 -9
  431. package/src/sap/fe/core/messagebundle_pt_PT.properties +12 -9
  432. package/src/sap/fe/core/messagebundle_ro.properties +16 -13
  433. package/src/sap/fe/core/messagebundle_ru.properties +13 -10
  434. package/src/sap/fe/core/messagebundle_sh.properties +12 -9
  435. package/src/sap/fe/core/messagebundle_sk.properties +12 -9
  436. package/src/sap/fe/core/messagebundle_sl.properties +12 -9
  437. package/src/sap/fe/core/messagebundle_sv.properties +12 -9
  438. package/src/sap/fe/core/messagebundle_th.properties +12 -9
  439. package/src/sap/fe/core/messagebundle_tr.properties +12 -9
  440. package/src/sap/fe/core/messagebundle_uk.properties +12 -9
  441. package/src/sap/fe/core/messagebundle_vi.properties +13 -10
  442. package/src/sap/fe/core/messagebundle_zh_CN.properties +12 -9
  443. package/src/sap/fe/core/messagebundle_zh_TW.properties +12 -9
  444. package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
  445. package/src/sap/fe/core/operationsHelper.js +1 -1
  446. package/src/sap/fe/core/operationsHelper.js.map +1 -1
  447. package/src/sap/fe/core/operationsHelper.ts +88 -63
  448. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
  449. package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
  450. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
  451. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  452. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  453. package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
  454. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +10 -5
  455. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  456. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  457. package/src/sap/fe/core/rootView/RootViewBaseController.ts +22 -8
  458. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  459. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  460. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
  461. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
  462. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
  463. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
  464. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  465. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
  466. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
  467. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  468. package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
  469. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
  470. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  471. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
  472. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
  473. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +9 -3
  474. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  475. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  476. package/src/sap/fe/core/services/RoutingServiceFactory.ts +35 -3
  477. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +7 -1
  478. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  479. package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -1
  480. package/src/sap/fe/core/services/ShellServicesFactory.ts +24 -2
  481. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
  482. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  483. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  484. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +497 -333
  485. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +26 -6
  486. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  487. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  488. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +54 -13
  489. package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
  490. package/src/sap/fe/core/support/Diagnostics.ts +5 -0
  491. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +4 -3
  492. package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
  493. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
  494. package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
  495. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +195 -95
  496. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  497. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  498. package/src/sap/fe/core/templating/DataModelPathHelper.ts +210 -96
  499. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +5 -5
  500. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  501. package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -1
  502. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -2
  503. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +19 -29
  504. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  505. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  506. package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -26
  507. package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +48 -0
  508. package/src/sap/fe/core/templating/EntityTypeHelper.js +6 -0
  509. package/src/sap/fe/core/templating/EntityTypeHelper.js.map +1 -0
  510. package/src/sap/fe/core/templating/EntityTypeHelper.ts +37 -0
  511. package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
  512. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  513. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  514. package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
  515. package/src/sap/fe/core/templating/FilterTemplating-dbg.js +7 -8
  516. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  517. package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -1
  518. package/src/sap/fe/core/templating/FilterTemplating.ts +5 -8
  519. package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +1 -6
  520. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  521. package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -1
  522. package/src/sap/fe/core/templating/PropertyFormatters.ts +0 -5
  523. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +13 -46
  524. package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  525. package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -1
  526. package/src/sap/fe/core/templating/PropertyHelper.ts +14 -43
  527. package/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
  528. package/src/sap/fe/core/templating/UIFormatters.js +1 -1
  529. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
  530. package/src/sap/fe/core/templating/UIFormatters.ts +47 -32
  531. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
  532. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
  533. package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
  534. package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
  535. package/src/sap/fe/core/type/FiscalDate.ts +2 -1
  536. package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
  537. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  538. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  539. package/src/sap/fe/core/type/TypeUtil.ts +3 -6
  540. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
  541. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
  542. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
  543. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
  544. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
  545. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
  546. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
  547. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
  548. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -948
  549. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
  550. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
  551. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
  552. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
  553. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
  554. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
  555. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
  556. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
  557. package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
  558. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
  559. package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
  560. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
  561. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
  562. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
  563. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
  564. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
  565. package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
  566. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
  567. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
  568. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
  569. package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
  570. package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
  571. package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
  572. package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
  573. package/src/sap/fe/core/controls/FileWrapper.js +0 -6
  574. package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
  575. package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
  576. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
  577. package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
  578. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
  579. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
@@ -16,6 +16,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/BindingHelper", "
16
16
  var getExpressionFromAnnotation = BindingToolkit.getExpressionFromAnnotation;
17
17
  var formatResult = BindingToolkit.formatResult;
18
18
  var equal = BindingToolkit.equal;
19
+ var constant = BindingToolkit.constant;
19
20
  var compileExpression = BindingToolkit.compileExpression;
20
21
  var and = BindingToolkit.and;
21
22
  var ActionType = ManifestSettings.ActionType;
@@ -66,8 +67,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/BindingHelper", "
66
67
  resultAction.enabled = (manifestAction === null || manifestAction === void 0 ? void 0 : manifestAction.enabled) ?? annotationAction.enabled;
67
68
  resultAction.visible = (manifestAction === null || manifestAction === void 0 ? void 0 : manifestAction.visible) ?? annotationAction.visible;
68
69
  for (const prop in manifestAction || {}) {
69
- if (!annotationAction[prop] && prop !== "menu") {
70
- resultAction[prop] = manifestAction[prop];
70
+ const propKey = prop;
71
+ if (!annotationAction[propKey] && propKey !== "menu") {
72
+ resultAction[propKey] = manifestAction[propKey];
71
73
  }
72
74
  }
73
75
  }
@@ -315,10 +317,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/BindingHelper", "
315
317
  let result;
316
318
  if (isConstant(resolvedBinding) && resolvedBinding.value === undefined) {
317
319
  // No property value configured in manifest for the custom action --> default value is true
318
- result = true;
319
- } else if (isConstant(resolvedBinding) && typeof resolvedBinding.value === "boolean") {
320
- // true / false
321
- result = resolvedBinding.value;
320
+ result = constant(true);
322
321
  } else if (isConstant(resolvedBinding) && typeof resolvedBinding.value === "string") {
323
322
  var _converterContext$get;
324
323
  // Then it's a module-method reference "sap.xxx.yyy.doSomething"
@@ -336,7 +335,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/BindingHelper", "
336
335
  actions.forEach(action => {
337
336
  var _action$menu;
338
337
  if (action !== null && action !== void 0 && (_action$menu = action.menu) !== null && _action$menu !== void 0 && _action$menu.length) {
339
- oMenuItemKeys = action.menu.reduce((item, _ref) => {
338
+ const actionMenu = action.menu;
339
+ oMenuItemKeys = actionMenu.reduce((item, _ref) => {
340
340
  let {
341
341
  key
342
342
  } = _ref;
@@ -359,17 +359,11 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/BindingHelper", "
359
359
  */
360
360
  _exports.removeDuplicateActions = removeDuplicateActions;
361
361
  function getEnabledForAnnotationAction(converterContext, actionTarget) {
362
- var _actionTarget$paramet;
363
- if ((actionTarget === null || actionTarget === void 0 ? void 0 : actionTarget.isBound) !== true) {
364
- return "true";
365
- }
366
- if (actionTarget !== null && actionTarget !== void 0 && (_actionTarget$paramet = actionTarget.parameters) !== null && _actionTarget$paramet !== void 0 && _actionTarget$paramet.length) {
367
- var _actionTarget$annotat, _actionTarget$annotat2;
368
- const bindingParameterFullName = actionTarget === null || actionTarget === void 0 ? void 0 : actionTarget.parameters[0].fullyQualifiedName,
369
- operationAvailableExpression = getExpressionFromAnnotation(actionTarget === null || actionTarget === void 0 ? void 0 : (_actionTarget$annotat = actionTarget.annotations.Core) === null || _actionTarget$annotat === void 0 ? void 0 : _actionTarget$annotat.OperationAvailable, [], undefined, path => bindingContextPathVisitor(path, converterContext, bindingParameterFullName));
370
- if ((actionTarget === null || actionTarget === void 0 ? void 0 : (_actionTarget$annotat2 = actionTarget.annotations.Core) === null || _actionTarget$annotat2 === void 0 ? void 0 : _actionTarget$annotat2.OperationAvailable) !== undefined) {
371
- return compileExpression(equal(operationAvailableExpression, true));
372
- }
362
+ var _actionTarget$paramet, _actionTarget$annotat, _actionTarget$annotat2;
363
+ const bindingParameterFullName = actionTarget !== null && actionTarget !== void 0 && actionTarget.isBound ? actionTarget === null || actionTarget === void 0 ? void 0 : (_actionTarget$paramet = actionTarget.parameters[0]) === null || _actionTarget$paramet === void 0 ? void 0 : _actionTarget$paramet.fullyQualifiedName : undefined;
364
+ const operationAvailableExpression = getExpressionFromAnnotation(actionTarget === null || actionTarget === void 0 ? void 0 : (_actionTarget$annotat = actionTarget.annotations.Core) === null || _actionTarget$annotat === void 0 ? void 0 : _actionTarget$annotat.OperationAvailable, [], undefined, path => bindingContextPathVisitor(path, converterContext, bindingParameterFullName));
365
+ if ((actionTarget === null || actionTarget === void 0 ? void 0 : (_actionTarget$annotat2 = actionTarget.annotations.Core) === null || _actionTarget$annotat2 === void 0 ? void 0 : _actionTarget$annotat2.OperationAvailable) !== undefined) {
366
+ return compileExpression(equal(operationAvailableExpression, true));
373
367
  }
374
368
  return "true";
375
369
  }
@@ -421,4 +415,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/BindingHelper", "
421
415
  _exports.getCopyAction = getCopyAction;
422
416
  return _exports;
423
417
  }, false);
424
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdXR0b25UeXBlIiwibWFwQWN0aW9uQnlLZXkiLCJtYW5pZmVzdEFjdGlvbnMiLCJhbm5vdGF0aW9uQWN0aW9ucyIsImhpZGRlbkFjdGlvbnMiLCJhY3Rpb25LZXkiLCJhbm5vdGF0aW9uQWN0aW9uIiwiZmluZCIsImFjdGlvbiIsImtleSIsIm1hbmlmZXN0QWN0aW9uIiwicmVzdWx0QWN0aW9uIiwiZW5hYmxlZCIsInZpc2libGUiLCJwcm9wIiwiY2FuQmVNZW51SXRlbSIsInR5cGUiLCJBY3Rpb25UeXBlIiwiRGF0YUZpZWxkRm9yQWN0aW9uIiwiRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIiwiaGlkZGVuQWN0aW9uIiwibWFwTWVudURlZmF1bHRBY3Rpb24iLCJtZW51QWN0aW9uIiwiY29tbWFuZEFjdGlvbnMiLCJkZWZhdWx0QWN0aW9uIiwiY29tbWFuZCIsIm1hcE1lbnVJdGVtcyIsIm1hcHBlZE1lbnVJdGVtcyIsIm1lbnVJdGVtS2V5IiwibWVudSIsInB1c2giLCJ2aXNpYmxlRXhwcmVzc2lvbnMiLCJtYXAiLCJtZW51SXRlbSIsInJlc29sdmVCaW5kaW5nU3RyaW5nIiwiY29tcGlsZUV4cHJlc3Npb24iLCJhbmQiLCJvciIsInRyYW5zZm9ybU1lbnVBY3Rpb25zQW5kSWRlbnRpZnlDb21tYW5kcyIsImFsbEFjdGlvbnMiLCJhY3Rpb25LZXlzVG9EZWxldGUiLCJ1bmRlZmluZWQiLCJNZW51IiwibGVuZ3RoIiwiZm9yRWFjaCIsImFjdGlvbnMiLCJfZ2V0TWFuaWZlc3RFbmFibGVkIiwiaXNBbm5vdGF0aW9uQWN0aW9uIiwiY29udmVydGVyQ29udGV4dCIsInJlc3VsdCIsImdldE1hbmlmZXN0QWN0aW9uQm9vbGVhblByb3BlcnR5V2l0aEZvcm1hdHRlciIsImlmRWxzZSIsInJlcXVpcmVzU2VsZWN0aW9uIiwiZ3JlYXRlck9yRXF1YWwiLCJwYXRoSW5Nb2RlbCIsIl9nZXRNYW5pZmVzdFZpc2libGUiLCJvdmVycmlkZU1hbmlmZXN0Q29uZmlndXJhdGlvbldpdGhBbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJwcmVzcyIsImhpZGVBY3Rpb25JZkhpZGRlbkFjdGlvbiIsImdldEFjdGlvbnNGcm9tTWFuaWZlc3QiLCJuYXZpZ2F0aW9uU2V0dGluZ3MiLCJjb25zaWRlck5hdmlnYXRpb25TZXR0aW5ncyIsImZhY2V0TmFtZSIsImxhc3REb3RJbmRleCIsImxhc3RJbmRleE9mIiwib0Fubm90YXRpb25BY3Rpb24iLCJvYmoiLCJpZCIsImdldEN1c3RvbUFjdGlvbklEIiwiRGVmYXVsdCIsImhhbmRsZXJNb2R1bGUiLCJzdWJzdHJpbmciLCJyZXBsYWNlIiwiaGFuZGxlck1ldGhvZCIsInRleHQiLCJub1dyYXAiLCJfX25vV3JhcCIsInJlcGxhY2VTcGVjaWFsQ2hhcnMiLCJlbmFibGVPblNlbGVjdCIsImRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbiIsImRlZmF1bHRWYWx1ZXNGdW5jdGlvbiIsInBvc2l0aW9uIiwiYW5jaG9yIiwicGxhY2VtZW50IiwiUGxhY2VtZW50IiwiQWZ0ZXIiLCJpc05hdmlnYWJsZSIsImlzQWN0aW9uTmF2aWdhYmxlIiwiZW5hYmxlQXV0b1Njcm9sbCIsImlubGluZSIsInByb3BlcnR5VmFsdWUiLCJyZXNvbHZlZEJpbmRpbmciLCJpc0NvbnN0YW50IiwidmFsdWUiLCJtZXRob2RQYXRoIiwiZm9ybWF0UmVzdWx0IiwiZnBtRm9ybWF0dGVyIiwiY3VzdG9tQm9vbGVhblByb3BlcnR5Q2hlY2siLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwiY29udGV4dExvY2F0aW9uIiwidGFyZ2V0RW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJyZW1vdmVEdXBsaWNhdGVBY3Rpb25zIiwib01lbnVJdGVtS2V5cyIsInJlZHVjZSIsIml0ZW0iLCJmaWx0ZXIiLCJnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbiIsImFjdGlvblRhcmdldCIsImlzQm91bmQiLCJwYXJhbWV0ZXJzIiwiYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwib3BlcmF0aW9uQXZhaWxhYmxlRXhwcmVzc2lvbiIsImdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiIsImFubm90YXRpb25zIiwiQ29yZSIsIk9wZXJhdGlvbkF2YWlsYWJsZSIsInBhdGgiLCJiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yIiwiZXF1YWwiLCJnZXRTZW1hbnRpY09iamVjdE1hcHBpbmciLCJtYXBwaW5ncyIsIm1hcHBpbmciLCJMb2NhbFByb3BlcnR5IiwiJFByb3BlcnR5UGF0aCIsIlNlbWFudGljT2JqZWN0UHJvcGVydHkiLCJiSXNOYXZpZ2F0aW9uQ29uZmlndXJlZCIsImRldGFpbE9yRGlzcGxheSIsImRldGFpbCIsImRpc3BsYXkiLCJyb3V0ZSIsImFmdGVyRXhlY3V0aW9uIiwibmF2aWdhdGVUb0luc3RhbmNlIiwiZGF0YUZpZWxkSXNDb3B5QWN0aW9uIiwiZGF0YUZpZWxkIiwiVUkiLCJJc0NvcHlBY3Rpb24iLCJ2YWx1ZU9mIiwiJFR5cGUiLCJnZXRDb3B5QWN0aW9uIiwiY29weURhdGFGaWVsZHMiLCJMb2ciLCJlcnJvciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFNlbWFudGljT2JqZWN0TWFwcGluZ1R5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHsgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXMsIFVJQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyBiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IENvbmZpZ3VyYWJsZU9iamVjdCwgQ3VzdG9tRWxlbWVudCwgT3ZlcnJpZGVUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IFBsYWNlbWVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBnZXRDdXN0b21BY3Rpb25JRCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSURcIjtcbmltcG9ydCB0eXBlIHtcblx0Q3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGUsXG5cdE1hbmlmZXN0QWN0aW9uLFxuXHROYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uXG59IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IEFjdGlvblR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgZnBtRm9ybWF0dGVyIGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL0ZQTUZvcm1hdHRlclwiO1xuaW1wb3J0IHR5cGUgeyBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24sIENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7XG5cdGFuZCxcblx0Y29tcGlsZUV4cHJlc3Npb24sXG5cdGVxdWFsLFxuXHRmb3JtYXRSZXN1bHQsXG5cdGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbixcblx0Z3JlYXRlck9yRXF1YWwsXG5cdGlmRWxzZSxcblx0aXNDb25zdGFudCxcblx0b3IsXG5cdHBhdGhJbk1vZGVsLFxuXHRyZXNvbHZlQmluZGluZ1N0cmluZ1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgcmVwbGFjZVNwZWNpYWxDaGFycyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IE1ldGFNb2RlbFR5cGUgfSBmcm9tIFwidHlwZXMvZXh0ZW5zaW9uX3R5cGVzXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5cbmV4cG9ydCBlbnVtIEJ1dHRvblR5cGUge1xuXHRBY2NlcHQgPSBcIkFjY2VwdFwiLFxuXHRBdHRlbnRpb24gPSBcIkF0dGVudGlvblwiLFxuXHRCYWNrID0gXCJCYWNrXCIsXG5cdENyaXRpY2FsID0gXCJDcml0aWNhbFwiLFxuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdEVtcGhhc2l6ZWQgPSBcIkVtcGhhc2l6ZWRcIixcblx0R2hvc3QgPSBcIkdob3N0XCIsXG5cdE5lZ2F0aXZlID0gXCJOZWdhdGl2ZVwiLFxuXHROZXV0cmFsID0gXCJOZXV0cmFsXCIsXG5cdFJlamVjdCA9IFwiUmVqZWN0XCIsXG5cdFN1Y2Nlc3MgPSBcIlN1Y2Nlc3NcIixcblx0VHJhbnNwYXJlbnQgPSBcIlRyYW5zcGFyZW50XCIsXG5cdFVuc3R5bGVkID0gXCJVbnN0eWxlZFwiLFxuXHRVcCA9IFwiVXBcIlxufVxuXG5leHBvcnQgdHlwZSBCYXNlQWN0aW9uID0gQ29uZmlndXJhYmxlT2JqZWN0ICYge1xuXHRpZD86IHN0cmluZztcblx0dGV4dD86IHN0cmluZztcblx0dHlwZT86IEFjdGlvblR5cGU7XG5cdHByZXNzPzogc3RyaW5nO1xuXHRlbmFibGVkPzogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cdHZpc2libGU/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0ZW5hYmxlT25TZWxlY3Q/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoPzogc3RyaW5nO1xuXHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdGlzTmF2aWdhYmxlPzogYm9vbGVhbjtcblx0ZW5hYmxlQXV0b1Njcm9sbD86IGJvb2xlYW47XG5cdHJlcXVpcmVzRGlhbG9nPzogc3RyaW5nO1xuXHRiaW5kaW5nPzogc3RyaW5nO1xuXHRidXR0b25UeXBlPzogQnV0dG9uVHlwZS5HaG9zdCB8IEJ1dHRvblR5cGUuVHJhbnNwYXJlbnQgfCBzdHJpbmc7XG5cdHBhcmVudEVudGl0eURlbGV0ZUVuYWJsZWQ/OiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0bWVudT86IChzdHJpbmcgfCBDdXN0b21BY3Rpb24gfCBCYXNlQWN0aW9uKVtdO1xuXHRmYWNldE5hbWU/OiBzdHJpbmc7XG5cdGNvbW1hbmQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBBbm5vdGF0aW9uQWN0aW9uID0gQmFzZUFjdGlvbiAmIHtcblx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gfCBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbjtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0aWQ/OiBzdHJpbmc7XG5cdGN1c3RvbURhdGE/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIERlZmluaXRpb24gZm9yIGN1c3RvbSBhY3Rpb25zXG4gKlxuICogQHR5cGVkZWYgQ3VzdG9tQWN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEN1c3RvbUFjdGlvbiA9IEN1c3RvbUVsZW1lbnQ8XG5cdEJhc2VBY3Rpb24gJiB7XG5cdFx0dHlwZT86IEFjdGlvblR5cGU7XG5cdFx0aGFuZGxlck1ldGhvZD86IHN0cmluZztcblx0XHRoYW5kbGVyTW9kdWxlPzogc3RyaW5nO1xuXHRcdG1lbnU/OiAoc3RyaW5nIHwgQ3VzdG9tQWN0aW9uIHwgQmFzZUFjdGlvbilbXTtcblx0XHRub1dyYXA/OiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgdGhhdCB3ZSB3YW50IHRvIGF2b2lkIHRoZSB3cmFwcGluZyBmcm9tIHRoZSBGUE1IZWxwZXJcblx0XHRyZXF1aXJlc1NlbGVjdGlvbj86IGJvb2xlYW47XG5cdFx0ZGVmYXVsdEFjdGlvbj86IHN0cmluZyB8IEN1c3RvbUFjdGlvbiB8IEJhc2VBY3Rpb247IC8vSW5kaWNhdGVzIHdoZXRoZXIgYSBkZWZhdWx0IGFjdGlvbiBleGlzdHMgaW4gdGhpcyBjb250ZXh0XG5cdH1cbj47XG5cbi8vIFJldXNlIG9mIENvbmZpZ3VyYWJsZU9iamVjdCBhbmQgQ3VzdG9tRWxlbWVudCBpcyBkb25lIGZvciBvcmRlcmluZ1xuZXhwb3J0IHR5cGUgQ29udmVydGVyQWN0aW9uID0gQW5ub3RhdGlvbkFjdGlvbiB8IEN1c3RvbUFjdGlvbjtcblxuZXhwb3J0IHR5cGUgQ29tYmluZWRBY3Rpb24gPSB7XG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXTtcblx0Y29tbWFuZEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj47XG59O1xuXG5leHBvcnQgdHlwZSBPdmVycmlkZVR5cGVBY3Rpb24gPSB7XG5cdGVuYWJsZUF1dG9TY3JvbGw/OiBPdmVycmlkZVR5cGUub3ZlcndyaXRlO1xuXHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24/OiBPdmVycmlkZVR5cGUub3ZlcndyaXRlO1xuXHRpc05hdmlnYWJsZT86IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGU7XG5cdGVuYWJsZU9uU2VsZWN0PzogT3ZlcnJpZGVUeXBlLm92ZXJ3cml0ZTtcblxuXHQvLyBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgbWFuaWZlc3QgY29uZmlndXJhdGlvbiBhbmQgc2hvdWxkIGJlIGFsaWduZWQgZm9yIGFsbCBhY3Rpb25zXG5cdGVuYWJsZWQ6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGU7XG5cdHZpc2libGU6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGU7XG5cdGNvbW1hbmQ6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGU7XG59O1xuXG4vKipcbiAqIE1hcHMgYW4gYWN0aW9uIGJ5IGl0cyBrZXksIGJhc2VkIG9uIHRoZSBnaXZlbiBhbm5vdGF0aW9uIGFjdGlvbnMgYW5kIG1hbmlmZXN0IGNvbmZpZ3VyYXRpb24uIFRoZSByZXN1bHQgYWxyZWFkeSByZXByZXNlbnRzIHRoZVxuICogbWVyZ2VkIGFjdGlvbiBmcm9tIGJvdGggY29uZmlndXJhdGlvbiBzb3VyY2VzLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYWxzbyByZXR1cm5zIGFuIGluZGljYXRpb24gd2hldGhlciB0aGUgYWN0aW9uIGNhbiBiZSBhIG1lbnUgaXRlbSwgc2F5aW5nIHdoZXRoZXIgaXQgaXMgdmlzaWJsZSBvciBvZiBhIHNwZWNpZmljIHR5cGVcbiAqIHRoYXQgYWxsb3dzIHRoaXMuXG4gKlxuICogQHBhcmFtIG1hbmlmZXN0QWN0aW9ucyBBY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0XG4gKiBAcGFyYW0gYW5ub3RhdGlvbkFjdGlvbnMgQWN0aW9ucyBkZWZpbmVkIHRocm91Z2ggYW5ub3RhdGlvbnNcbiAqIEBwYXJhbSBoaWRkZW5BY3Rpb25zIEFjdGlvbnMgdGhhdCBhcmUgY29uZmlndXJlZCBhcyBoaWRkZW4gKGFkZGl0aW9uYWwgdG8gdGhlIHZpc2libGUgcHJvcGVydHkpXG4gKiBAcGFyYW0gYWN0aW9uS2V5IEtleSB0byBsb29rIHVwXG4gKiBAcmV0dXJucyBNZXJnZWQgYWN0aW9uIGFuZCBpbmRpY2F0b3Igd2hldGhlciBpdCBjYW4gYmUgYSBtZW51IGl0ZW1cbiAqL1xuZnVuY3Rpb24gbWFwQWN0aW9uQnlLZXkoXG5cdG1hbmlmZXN0QWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPixcblx0YW5ub3RhdGlvbkFjdGlvbnM6IEJhc2VBY3Rpb25bXSxcblx0aGlkZGVuQWN0aW9uczogQmFzZUFjdGlvbltdLFxuXHRhY3Rpb25LZXk6IHN0cmluZ1xuKSB7XG5cdGNvbnN0IGFubm90YXRpb25BY3Rpb246IEJhc2VBY3Rpb24gfCBDdXN0b21BY3Rpb24gfCB1bmRlZmluZWQgPSBhbm5vdGF0aW9uQWN0aW9ucy5maW5kKFxuXHRcdChhY3Rpb246IEJhc2VBY3Rpb24pID0+IGFjdGlvbi5rZXkgPT09IGFjdGlvbktleVxuXHQpO1xuXHRjb25zdCBtYW5pZmVzdEFjdGlvbiA9IG1hbmlmZXN0QWN0aW9uc1thY3Rpb25LZXldO1xuXHRjb25zdCByZXN1bHRBY3Rpb24gPSB7IC4uLihhbm5vdGF0aW9uQWN0aW9uID8/IG1hbmlmZXN0QWN0aW9uKSB9O1xuXG5cdC8vIEFubm90YXRpb24gYWN0aW9uIGFuZCBtYW5pZmVzdCBjb25maWd1cmF0aW9uIGFscmVhZHkgaGFzIHRvIGJlIG1lcmdlZCBoZXJlIGFzIGluc2VydEN1c3RvbUVsZW1lbnRzIG9ubHkgY29uc2lkZXJzIHRvcC1sZXZlbCBhY3Rpb25zXG5cdGlmIChhbm5vdGF0aW9uQWN0aW9uKSB7XG5cdFx0Ly8gSWYgZW5hYmxlZCBvciB2aXNpYmxlIGlzIG5vdCBzZXQgaW4gdGhlIG1hbmlmZXN0LCB1c2UgdGhlIGFubm90YXRpb24gdmFsdWUgYW5kIGhlbmNlIGRvIG5vdCBvdmVyd3JpdGVcblx0XHRyZXN1bHRBY3Rpb24uZW5hYmxlZCA9IG1hbmlmZXN0QWN0aW9uPy5lbmFibGVkID8/IGFubm90YXRpb25BY3Rpb24uZW5hYmxlZDtcblx0XHRyZXN1bHRBY3Rpb24udmlzaWJsZSA9IG1hbmlmZXN0QWN0aW9uPy52aXNpYmxlID8/IGFubm90YXRpb25BY3Rpb24udmlzaWJsZTtcblxuXHRcdGZvciAoY29uc3QgcHJvcCBpbiBtYW5pZmVzdEFjdGlvbiB8fCB7fSkge1xuXHRcdFx0aWYgKCEoYW5ub3RhdGlvbkFjdGlvbiBhcyBhbnkpW3Byb3BdICYmIHByb3AgIT09IFwibWVudVwiKSB7XG5cdFx0XHRcdChyZXN1bHRBY3Rpb24gYXMgYW55KVtwcm9wXSA9IChtYW5pZmVzdEFjdGlvbiBhcyBhbnkpW3Byb3BdO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0IGNhbkJlTWVudUl0ZW0gPVxuXHRcdChyZXN1bHRBY3Rpb24/LnZpc2libGUgfHxcblx0XHRcdHJlc3VsdEFjdGlvbj8udHlwZSA9PT0gQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24gfHxcblx0XHRcdHJlc3VsdEFjdGlvbj8udHlwZSA9PT0gQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24pICYmXG5cdFx0IWhpZGRlbkFjdGlvbnMuZmluZCgoaGlkZGVuQWN0aW9uKSA9PiBoaWRkZW5BY3Rpb24ua2V5ID09PSByZXN1bHRBY3Rpb24/LmtleSk7XG5cblx0cmV0dXJuIHtcblx0XHRhY3Rpb246IHJlc3VsdEFjdGlvbixcblx0XHRjYW5CZU1lbnVJdGVtXG5cdH07XG59XG5cbi8qKlxuICogTWFwIHRoZSBkZWZhdWx0IGFjdGlvbiBrZXkgb2YgYSBtZW51IHRvIGl0cyBhY3R1YWwgYWN0aW9uIGNvbmZpZ3VyYXRpb24gYW5kIGlkZW50aWZ5IHdoZXRoZXIgdGhpcyBkZWZhdWx0IGFjdGlvbiBpcyBhIGNvbW1hbmQuXG4gKlxuICogQHBhcmFtIG1lbnVBY3Rpb24gTWVudSBhY3Rpb24gdG8gbWFwIHRoZSBkZWZhdWx0IGFjdGlvbiBmb3JcbiAqIEBwYXJhbSBtYW5pZmVzdEFjdGlvbnMgQWN0aW9ucyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdFxuICogQHBhcmFtIGFubm90YXRpb25BY3Rpb25zIEFjdGlvbnMgZGVmaW5lZCB0aHJvdWdoIGFubm90YXRpb25zXG4gKiBAcGFyYW0gY29tbWFuZEFjdGlvbnMgQXJyYXkgb2YgY29tbWFuZCBhY3Rpb25zIHRvIHB1c2ggdGhlIGRlZmF1bHQgYWN0aW9uIHRvIGlmIGFwcGxpY2FibGVcbiAqIEBwYXJhbSBoaWRkZW5BY3Rpb25zIEFjdGlvbnMgdGhhdCBhcmUgY29uZmlndXJlZCBhcyBoaWRkZW4gKGFkZGl0aW9uYWwgdG8gdGhlIHZpc2libGUgcHJvcGVydHkpXG4gKi9cbmZ1bmN0aW9uIG1hcE1lbnVEZWZhdWx0QWN0aW9uKFxuXHRtZW51QWN0aW9uOiBDdXN0b21BY3Rpb24sXG5cdG1hbmlmZXN0QWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPixcblx0YW5ub3RhdGlvbkFjdGlvbnM6IEJhc2VBY3Rpb25bXSxcblx0Y29tbWFuZEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4sXG5cdGhpZGRlbkFjdGlvbnM6IEJhc2VBY3Rpb25bXVxuKSB7XG5cdGNvbnN0IHsgYWN0aW9uLCBjYW5CZU1lbnVJdGVtIH0gPSBtYXBBY3Rpb25CeUtleShtYW5pZmVzdEFjdGlvbnMsIGFubm90YXRpb25BY3Rpb25zLCBoaWRkZW5BY3Rpb25zLCBtZW51QWN0aW9uLmRlZmF1bHRBY3Rpb24gYXMgc3RyaW5nKTtcblxuXHRpZiAoY2FuQmVNZW51SXRlbSkge1xuXHRcdG1lbnVBY3Rpb24uZGVmYXVsdEFjdGlvbiA9IGFjdGlvbjtcblx0fVxuXG5cdGlmIChhY3Rpb24uY29tbWFuZCkge1xuXHRcdChjb21tYW5kQWN0aW9ucyBhcyBhbnkpW2FjdGlvbi5rZXldID0gYWN0aW9uO1xuXHR9XG59XG5cbi8qKlxuICogTWFwIHRoZSBtZW51IGl0ZW0ga2V5cyBvZiBhIG1lbnUgdG8gdGhlaXIgYWN0dWFsIGFjdGlvbiBjb25maWd1cmF0aW9ucyBhbmQgaWRlbnRpZnkgd2hldGhlciB0aGV5IGFyZSBjb21tYW5kcy5cbiAqXG4gKiBAcGFyYW0gbWVudUFjdGlvbiBNZW51IGFjdGlvbiB0byBtYXAgdGhlIG1lbnUgaXRlbXMgZm9yXG4gKiBAcGFyYW0gbWFuaWZlc3RBY3Rpb25zIEFjdGlvbnMgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3RcbiAqIEBwYXJhbSBhbm5vdGF0aW9uQWN0aW9ucyBBY3Rpb25zIGRlZmluZWQgdGhyb3VnaCBhbm5vdGF0aW9uc1xuICogQHBhcmFtIGNvbW1hbmRBY3Rpb25zIEFycmF5IG9mIGNvbW1hbmQgYWN0aW9ucyB0byBwdXNoIHRoZSBtZW51IGl0ZW0gYWN0aW9ucyB0byBpZiBhcHBsaWNhYmxlXG4gKiBAcGFyYW0gaGlkZGVuQWN0aW9ucyBBY3Rpb25zIHRoYXQgYXJlIGNvbmZpZ3VyZWQgYXMgaGlkZGVuIChhZGRpdGlvbmFsIHRvIHRoZSB2aXNpYmxlIHByb3BlcnR5KVxuICovXG5mdW5jdGlvbiBtYXBNZW51SXRlbXMoXG5cdG1lbnVBY3Rpb246IEN1c3RvbUFjdGlvbixcblx0bWFuaWZlc3RBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+LFxuXHRhbm5vdGF0aW9uQWN0aW9uczogQmFzZUFjdGlvbltdLFxuXHRjb21tYW5kQWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPixcblx0aGlkZGVuQWN0aW9uczogQmFzZUFjdGlvbltdXG4pIHtcblx0Y29uc3QgbWFwcGVkTWVudUl0ZW1zOiAoQ3VzdG9tQWN0aW9uIHwgQmFzZUFjdGlvbilbXSA9IFtdO1xuXG5cdGZvciAoY29uc3QgbWVudUl0ZW1LZXkgb2YgbWVudUFjdGlvbi5tZW51ID8/IFtdKSB7XG5cdFx0Y29uc3QgeyBhY3Rpb24sIGNhbkJlTWVudUl0ZW0gfSA9IG1hcEFjdGlvbkJ5S2V5KG1hbmlmZXN0QWN0aW9ucywgYW5ub3RhdGlvbkFjdGlvbnMsIGhpZGRlbkFjdGlvbnMsIG1lbnVJdGVtS2V5KTtcblxuXHRcdGlmIChjYW5CZU1lbnVJdGVtKSB7XG5cdFx0XHRtYXBwZWRNZW51SXRlbXMucHVzaChhY3Rpb24pO1xuXHRcdH1cblxuXHRcdGlmIChhY3Rpb24uY29tbWFuZCkge1xuXHRcdFx0KGNvbW1hbmRBY3Rpb25zIGFzIGFueSlbbWVudUl0ZW1LZXldID0gYWN0aW9uO1xuXHRcdH1cblx0fVxuXG5cdG1lbnVBY3Rpb24ubWVudSA9IG1hcHBlZE1lbnVJdGVtcztcblxuXHQvLyBJZiB0aGUgbWVudSBpcyBzZXQgdG8gaW52aXNpYmxlLCBpdCBzaG91bGQgYmUgaW52aXNpYmxlLCBvdGhlcndpc2UgdGhlIHZpc2liaWxpdHkgc2hvdWxkIGJlIGNhbGN1bGF0ZWQgZnJvbSB0aGUgaXRlbXNcblx0Y29uc3QgdmlzaWJsZUV4cHJlc3Npb25zOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj5bXSA9IG1hcHBlZE1lbnVJdGVtcy5tYXAoKG1lbnVJdGVtKSA9PlxuXHRcdHJlc29sdmVCaW5kaW5nU3RyaW5nKG1lbnVJdGVtLnZpc2libGUgYXMgc3RyaW5nLCBcImJvb2xlYW5cIilcblx0KTtcblx0bWVudUFjdGlvbi52aXNpYmxlID0gY29tcGlsZUV4cHJlc3Npb24oYW5kKHJlc29sdmVCaW5kaW5nU3RyaW5nKG1lbnVBY3Rpb24udmlzaWJsZSBhcyBzdHJpbmcsIFwiYm9vbGVhblwiKSwgb3IoLi4udmlzaWJsZUV4cHJlc3Npb25zKSkpO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybXMgdGhlIGZsYXQgY29sbGVjdGlvbiBvZiBhY3Rpb25zIGludG8gYSBuZXN0ZWQgc3RydWN0dXJlcyBvZiBtZW51cy4gVGhlIHJlc3VsdCBpcyBhIHJlY29yZCBvZiBhY3Rpb25zIHRoYXQgYXJlIGVpdGhlciBtZW51cyBvclxuICogb25lcyB0aGF0IGRvIG5vdCBhcHBlYXIgaW4gbWVudXMgYXMgbWVudSBpdGVtcy4gSXQgYWxzbyByZXR1cm5zIGEgbGlzdCBvZiBhY3Rpb25zIHRoYXQgaGF2ZSBhbiBhc3NpZ25lZCBjb21tYW5kLlxuICpcbiAqIE5vdGUgdGhhdCBtZW51IGl0ZW1zIGFyZSBhbHJlYWR5IHRoZSBtZXJnZWQgcmVzdWx0IG9mIGFubm90YXRpb24gYWN0aW9ucyBhbmQgdGhlaXIgbWFuaWZlc3QgY29uZmlndXJhdGlvbiwgYXMge0BsaW5rIGluc2VydEN1c3RvbUVsZW1lbnRzfVxuICogb25seSBjb25zaWRlcnMgcm9vdC1sZXZlbCBhY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBtYW5pZmVzdEFjdGlvbnMgQWN0aW9ucyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdFxuICogQHBhcmFtIGFubm90YXRpb25BY3Rpb25zIEFjdGlvbnMgZGVmaW5lZCB0aHJvdWdoIGFubm90YXRpb25zXG4gKiBAcGFyYW0gaGlkZGVuQWN0aW9ucyBBY3Rpb25zIHRoYXQgYXJlIGNvbmZpZ3VyZWQgYXMgaGlkZGVuIChhZGRpdGlvbmFsIHRvIHRoZSB2aXNpYmxlIHByb3BlcnR5KVxuICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIGFjdGlvbnMgZnJvbSB0aGUgbWFuaWZlc3QgYW5kIGEgbGlzdCBvZiBjb21tYW5kIGFjdGlvbnNcbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtTWVudUFjdGlvbnNBbmRJZGVudGlmeUNvbW1hbmRzKFxuXHRtYW5pZmVzdEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4sXG5cdGFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10sXG5cdGhpZGRlbkFjdGlvbnM6IEJhc2VBY3Rpb25bXVxuKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPj4ge1xuXHRjb25zdCBhbGxBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+ID0ge307XG5cdGNvbnN0IGFjdGlvbktleXNUb0RlbGV0ZTogc3RyaW5nW10gPSBbXTtcblx0Y29uc3QgY29tbWFuZEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4gPSB7fTtcblxuXHRmb3IgKGNvbnN0IGFjdGlvbktleSBpbiBtYW5pZmVzdEFjdGlvbnMpIHtcblx0XHRjb25zdCBtYW5pZmVzdEFjdGlvbjogQ3VzdG9tQWN0aW9uID0gbWFuaWZlc3RBY3Rpb25zW2FjdGlvbktleV07XG5cblx0XHRpZiAobWFuaWZlc3RBY3Rpb24uZGVmYXVsdEFjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRtYXBNZW51RGVmYXVsdEFjdGlvbihtYW5pZmVzdEFjdGlvbiwgbWFuaWZlc3RBY3Rpb25zLCBhbm5vdGF0aW9uQWN0aW9ucywgY29tbWFuZEFjdGlvbnMsIGhpZGRlbkFjdGlvbnMpO1xuXHRcdH1cblxuXHRcdGlmIChtYW5pZmVzdEFjdGlvbi50eXBlID09PSBBY3Rpb25UeXBlLk1lbnUpIHtcblx0XHRcdC8vIE1lbnUgaXRlbXMgc2hvdWxkIG5vdCBhcHBlYXIgYXMgdG9wLWxldmVsIGFjdGlvbnMgdGhlbXNlbHZlc1xuXHRcdFx0YWN0aW9uS2V5c1RvRGVsZXRlLnB1c2goLi4uKG1hbmlmZXN0QWN0aW9uLm1lbnUgYXMgc3RyaW5nW10pKTtcblxuXHRcdFx0bWFwTWVudUl0ZW1zKG1hbmlmZXN0QWN0aW9uLCBtYW5pZmVzdEFjdGlvbnMsIGFubm90YXRpb25BY3Rpb25zLCBjb21tYW5kQWN0aW9ucywgaGlkZGVuQWN0aW9ucyk7XG5cblx0XHRcdC8vIE1lbnUgaGFzIG5vIHZpc2libGUgaXRlbXMsIHNvIHJlbW92ZSBpdFxuXHRcdFx0aWYgKCFtYW5pZmVzdEFjdGlvbi5tZW51Py5sZW5ndGgpIHtcblx0XHRcdFx0YWN0aW9uS2V5c1RvRGVsZXRlLnB1c2gobWFuaWZlc3RBY3Rpb24ua2V5KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAobWFuaWZlc3RBY3Rpb24uY29tbWFuZCkge1xuXHRcdFx0Y29tbWFuZEFjdGlvbnNbYWN0aW9uS2V5XSA9IG1hbmlmZXN0QWN0aW9uO1xuXHRcdH1cblxuXHRcdGFsbEFjdGlvbnNbYWN0aW9uS2V5XSA9IG1hbmlmZXN0QWN0aW9uO1xuXHR9XG5cblx0YWN0aW9uS2V5c1RvRGVsZXRlLmZvckVhY2goKGFjdGlvbktleTogc3RyaW5nKSA9PiBkZWxldGUgYWxsQWN0aW9uc1thY3Rpb25LZXldKTtcblxuXHRyZXR1cm4ge1xuXHRcdGFjdGlvbnM6IGFsbEFjdGlvbnMsXG5cdFx0Y29tbWFuZEFjdGlvbnM6IGNvbW1hbmRBY3Rpb25zXG5cdH07XG59XG5cbi8qKlxuICogR2V0cyB0aGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgZW5hYmxlbWVudCBvZiBhIG1hbmlmZXN0IGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gbWFuaWZlc3RBY3Rpb24gVGhlIGFjdGlvbiBjb25maWd1cmVkIGluIHRoZSBtYW5pZmVzdFxuICogQHBhcmFtIGlzQW5ub3RhdGlvbkFjdGlvbiBXaGV0aGVyIHRoZSBhY3Rpb24sIGRlZmluZWQgaW4gbWFuaWZlc3QsIGNvcnJlc3BvbmRzIHRvIGFuIGV4aXN0aW5nIGFubm90YXRpb24gYWN0aW9uLlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIERldGVybWluZWQgcHJvcGVydHkgdmFsdWUgZm9yIHRoZSBlbmFibGVtZW50XG4gKi9cbmNvbnN0IF9nZXRNYW5pZmVzdEVuYWJsZWQgPSBmdW5jdGlvbiAoXG5cdG1hbmlmZXN0QWN0aW9uOiBNYW5pZmVzdEFjdGlvbixcblx0aXNBbm5vdGF0aW9uQWN0aW9uOiBib29sZWFuLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG5cdGlmIChpc0Fubm90YXRpb25BY3Rpb24gJiYgbWFuaWZlc3RBY3Rpb24uZW5hYmxlZCA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gSWYgYW5ub3RhdGlvbiBhY3Rpb24gaGFzIG5vIHByb3BlcnR5IGRlZmluZWQgaW4gbWFuaWZlc3QsXG5cdFx0Ly8gZG8gbm90IG92ZXJ3cml0ZSBpdCB3aXRoIG1hbmlmZXN0IGFjdGlvbidzIGRlZmF1bHQgdmFsdWUuXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IHJlc3VsdCA9IGdldE1hbmlmZXN0QWN0aW9uQm9vbGVhblByb3BlcnR5V2l0aEZvcm1hdHRlcihtYW5pZmVzdEFjdGlvbi5lbmFibGVkLCBjb252ZXJ0ZXJDb250ZXh0KTtcblxuXHQvLyBDb25zaWRlciByZXF1aXJlc1NlbGVjdGlvbiBwcm9wZXJ0eSB0byBpbmNsdWRlIHNlbGVjdGVkQ29udGV4dHMgaW4gdGhlIGJpbmRpbmcgZXhwcmVzc2lvblxuXHRyZXR1cm4gY29tcGlsZUV4cHJlc3Npb24oXG5cdFx0aWZFbHNlKFxuXHRcdFx0bWFuaWZlc3RBY3Rpb24ucmVxdWlyZXNTZWxlY3Rpb24gPT09IHRydWUsXG5cdFx0XHRhbmQoZ3JlYXRlck9yRXF1YWwocGF0aEluTW9kZWwoXCJudW1iZXJPZlNlbGVjdGVkQ29udGV4dHNcIiwgXCJpbnRlcm5hbFwiKSwgMSksIHJlc3VsdCksXG5cdFx0XHRyZXN1bHRcblx0XHQpXG5cdCk7XG59O1xuXG4vKipcbiAqIEdldHMgdGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIHZpc2liaWxpdHkgb2YgYSBtYW5pZmVzdCBhY3Rpb24uXG4gKlxuICogQHBhcmFtIG1hbmlmZXN0QWN0aW9uIFRoZSBhY3Rpb24gY29uZmlndXJlZCBpbiB0aGUgbWFuaWZlc3RcbiAqIEBwYXJhbSBpc0Fubm90YXRpb25BY3Rpb24gV2hldGhlciB0aGUgYWN0aW9uLCBkZWZpbmVkIGluIG1hbmlmZXN0LCBjb3JyZXNwb25kcyB0byBhbiBleGlzdGluZyBhbm5vdGF0aW9uIGFjdGlvbi5cbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcmV0dXJucyBEZXRlcm1pbmVkIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgdmlzaWJpbGl0eVxuICovXG5jb25zdCBfZ2V0TWFuaWZlc3RWaXNpYmxlID0gZnVuY3Rpb24gKFxuXHRtYW5pZmVzdEFjdGlvbjogTWFuaWZlc3RBY3Rpb24sXG5cdGlzQW5ub3RhdGlvbkFjdGlvbjogYm9vbGVhbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xuXHRpZiAoaXNBbm5vdGF0aW9uQWN0aW9uICYmIG1hbmlmZXN0QWN0aW9uLnZpc2libGUgPT09IHVuZGVmaW5lZCkge1xuXHRcdC8vIElmIGFubm90YXRpb24gYWN0aW9uIGhhcyBubyBwcm9wZXJ0eSBkZWZpbmVkIGluIG1hbmlmZXN0LFxuXHRcdC8vIGRvIG5vdCBvdmVyd3JpdGUgaXQgd2l0aCBtYW5pZmVzdCBhY3Rpb24ncyBkZWZhdWx0IHZhbHVlLlxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCByZXN1bHQgPSBnZXRNYW5pZmVzdEFjdGlvbkJvb2xlYW5Qcm9wZXJ0eVdpdGhGb3JtYXR0ZXIobWFuaWZlc3RBY3Rpb24udmlzaWJsZSwgY29udmVydGVyQ29udGV4dCk7XG5cdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihyZXN1bHQpO1xufTtcblxuLyoqXG4gKiBBcyBzb21lIHByb3BlcnRpZXMgc2hvdWxkIG5vdCBiZSBvdmVycmlkYWJsZSBieSB0aGUgbWFuaWZlc3QsIG1ha2Ugc3VyZSB0aGF0IHRoZSBtYW5pZmVzdCBjb25maWd1cmF0aW9uIGdldHMgdGhlIGFubm90YXRpb24gdmFsdWVzIGZvciB0aGVzZS5cbiAqXG4gKiBAcGFyYW0gbWFuaWZlc3RBY3Rpb24gQWN0aW9uIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0XG4gKiBAcGFyYW0gYW5ub3RhdGlvbkFjdGlvbiBBY3Rpb24gZGVmaW5lZCB0aHJvdWdoIGFubm90YXRpb25zXG4gKi9cbmZ1bmN0aW9uIG92ZXJyaWRlTWFuaWZlc3RDb25maWd1cmF0aW9uV2l0aEFubm90YXRpb24obWFuaWZlc3RBY3Rpb246IEN1c3RvbUFjdGlvbiwgYW5ub3RhdGlvbkFjdGlvbj86IEJhc2VBY3Rpb24pIHtcblx0aWYgKCFhbm5vdGF0aW9uQWN0aW9uKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Ly8gRG8gbm90IG92ZXJyaWRlIHRoZSAndHlwZScgZ2l2ZW4gaW4gYW4gYW5ub3RhdGlvbiBhY3Rpb25cblx0bWFuaWZlc3RBY3Rpb24udHlwZSA9IGFubm90YXRpb25BY3Rpb24udHlwZTtcblx0bWFuaWZlc3RBY3Rpb24uYW5ub3RhdGlvblBhdGggPSBhbm5vdGF0aW9uQWN0aW9uLmFubm90YXRpb25QYXRoO1xuXHRtYW5pZmVzdEFjdGlvbi5wcmVzcyA9IGFubm90YXRpb25BY3Rpb24ucHJlc3M7XG5cblx0Ly8gT25seSB1c2UgdGhlIGFubm90YXRpb24gdmFsdWVzIGZvciBlbmFibGVtZW50IGFuZCB2aXNpYmlsaXR5IGlmIG5vdCBzZXQgaW4gdGhlIG1hbmlmZXN0XG5cdG1hbmlmZXN0QWN0aW9uLmVuYWJsZWQgPSBtYW5pZmVzdEFjdGlvbi5lbmFibGVkID8/IGFubm90YXRpb25BY3Rpb24uZW5hYmxlZDtcblx0bWFuaWZlc3RBY3Rpb24udmlzaWJsZSA9IG1hbmlmZXN0QWN0aW9uLnZpc2libGUgPz8gYW5ub3RhdGlvbkFjdGlvbi52aXNpYmxlO1xufVxuXG4vKipcbiAqIEhpZGUgYW4gYWN0aW9uIGlmIGl0IGlzIGEgaGlkZGVuIGhlYWRlciBhY3Rpb24uXG4gKlxuICogQHBhcmFtIGFjdGlvbiBUaGUgYWN0aW9uIHRvIGhpZGVcbiAqIEBwYXJhbSBoaWRkZW5BY3Rpb25zIEFjdGlvbnMgdGhhdCBhcmUgY29uZmlndXJlZCBhcyBoaWRkZW4gKGFkZGl0aW9uYWwgdG8gdGhlIHZpc2libGUgcHJvcGVydHkpXG4gKi9cbmZ1bmN0aW9uIGhpZGVBY3Rpb25JZkhpZGRlbkFjdGlvbihhY3Rpb246IEN1c3RvbUFjdGlvbiwgaGlkZGVuQWN0aW9ucz86IEJhc2VBY3Rpb25bXSkge1xuXHRpZiAoaGlkZGVuQWN0aW9ucz8uZmluZCgoaGlkZGVuQWN0aW9uKSA9PiBoaWRkZW5BY3Rpb24ua2V5ID09PSBhY3Rpb24ua2V5KSkge1xuXHRcdGFjdGlvbi52aXNpYmxlID0gXCJmYWxzZVwiO1xuXHR9XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIG1hbmlmZXN0IHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBtYW5pZmVzdEFjdGlvbnMgVGhlIG1hbmlmZXN0IGFjdGlvbnNcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIGFubm90YXRpb25BY3Rpb25zIFRoZSBhbm5vdGF0aW9uIGFjdGlvbnMgZGVmaW5pdGlvblxuICogQHBhcmFtIG5hdmlnYXRpb25TZXR0aW5ncyBUaGUgbmF2aWdhdGlvbiBzZXR0aW5nc1xuICogQHBhcmFtIGNvbnNpZGVyTmF2aWdhdGlvblNldHRpbmdzIFRoZSBuYXZpZ2F0aW9uIHNldHRpbmdzIHRvIGJlIGNvbnNpZGVyZWRcbiAqIEBwYXJhbSBoaWRkZW5BY3Rpb25zIEFjdGlvbnMgdGhhdCBhcmUgY29uZmlndXJlZCBhcyBoaWRkZW4gKGFkZGl0aW9uYWwgdG8gdGhlIHZpc2libGUgcHJvcGVydHkpXG4gKiBAcGFyYW0gZmFjZXROYW1lIFRoZSBmYWNldCB3aGVyZSBhbiBhY3Rpb24gaXMgZGlzcGxheWVkIGlmIGl0IGlzIGlubGluZVxuICogQHJldHVybnMgVGhlIGFjdGlvbnMgZnJvbSB0aGUgbWFuaWZlc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvbnNGcm9tTWFuaWZlc3QoXG5cdG1hbmlmZXN0QWN0aW9uczogUmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+IHwgdW5kZWZpbmVkLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhbm5vdGF0aW9uQWN0aW9ucz86IEJhc2VBY3Rpb25bXSxcblx0bmF2aWdhdGlvblNldHRpbmdzPzogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbixcblx0Y29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3M/OiBib29sZWFuLFxuXHRoaWRkZW5BY3Rpb25zPzogQmFzZUFjdGlvbltdLFxuXHRmYWNldE5hbWU/OiBzdHJpbmdcbik6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4+IHtcblx0Y29uc3QgYWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPiA9IHt9O1xuXHRmb3IgKGNvbnN0IGFjdGlvbktleSBpbiBtYW5pZmVzdEFjdGlvbnMpIHtcblx0XHRjb25zdCBtYW5pZmVzdEFjdGlvbjogTWFuaWZlc3RBY3Rpb24gPSBtYW5pZmVzdEFjdGlvbnNbYWN0aW9uS2V5XTtcblx0XHRjb25zdCBsYXN0RG90SW5kZXggPSBtYW5pZmVzdEFjdGlvbi5wcmVzcz8ubGFzdEluZGV4T2YoXCIuXCIpIHx8IC0xO1xuXHRcdGNvbnN0IG9Bbm5vdGF0aW9uQWN0aW9uID0gYW5ub3RhdGlvbkFjdGlvbnM/LmZpbmQoKG9iaikgPT4gb2JqLmtleSA9PT0gYWN0aW9uS2V5KTtcblxuXHRcdC8vIFRvIGlkZW50aWZ5IHRoZSBhbm5vdGF0aW9uIGFjdGlvbiBwcm9wZXJ0eSBvdmVyd3JpdGUgdmlhIG1hbmlmZXN0IHVzZS1jYXNlLlxuXHRcdGNvbnN0IGlzQW5ub3RhdGlvbkFjdGlvbiA9ICEhb0Fubm90YXRpb25BY3Rpb247XG5cdFx0aWYgKG1hbmlmZXN0QWN0aW9uLmZhY2V0TmFtZSkge1xuXHRcdFx0ZmFjZXROYW1lID0gbWFuaWZlc3RBY3Rpb24uZmFjZXROYW1lO1xuXHRcdH1cblxuXHRcdGFjdGlvbnNbYWN0aW9uS2V5XSA9IHtcblx0XHRcdGlkOiBvQW5ub3RhdGlvbkFjdGlvbiA/IGFjdGlvbktleSA6IGdldEN1c3RvbUFjdGlvbklEKGFjdGlvbktleSksXG5cdFx0XHR0eXBlOiBtYW5pZmVzdEFjdGlvbi5tZW51ID8gQWN0aW9uVHlwZS5NZW51IDogQWN0aW9uVHlwZS5EZWZhdWx0LFxuXHRcdFx0dmlzaWJsZTogX2dldE1hbmlmZXN0VmlzaWJsZShtYW5pZmVzdEFjdGlvbiwgaXNBbm5vdGF0aW9uQWN0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdGVuYWJsZWQ6IF9nZXRNYW5pZmVzdEVuYWJsZWQobWFuaWZlc3RBY3Rpb24sIGlzQW5ub3RhdGlvbkFjdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0XHRoYW5kbGVyTW9kdWxlOiBtYW5pZmVzdEFjdGlvbi5wcmVzcyAmJiBtYW5pZmVzdEFjdGlvbi5wcmVzcy5zdWJzdHJpbmcoMCwgbGFzdERvdEluZGV4KS5yZXBsYWNlKC9cXC4vZ2ksIFwiL1wiKSxcblx0XHRcdGhhbmRsZXJNZXRob2Q6IG1hbmlmZXN0QWN0aW9uLnByZXNzICYmIG1hbmlmZXN0QWN0aW9uLnByZXNzLnN1YnN0cmluZyhsYXN0RG90SW5kZXggKyAxKSxcblx0XHRcdHByZXNzOiBtYW5pZmVzdEFjdGlvbi5wcmVzcyxcblx0XHRcdHRleHQ6IG1hbmlmZXN0QWN0aW9uLnRleHQsXG5cdFx0XHRub1dyYXA6IG1hbmlmZXN0QWN0aW9uLl9fbm9XcmFwLFxuXHRcdFx0a2V5OiByZXBsYWNlU3BlY2lhbENoYXJzKGFjdGlvbktleSksXG5cdFx0XHRlbmFibGVPblNlbGVjdDogbWFuaWZlc3RBY3Rpb24uZW5hYmxlT25TZWxlY3QsXG5cdFx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb246IG1hbmlmZXN0QWN0aW9uLmRlZmF1bHRWYWx1ZXNGdW5jdGlvbixcblx0XHRcdHBvc2l0aW9uOiB7XG5cdFx0XHRcdGFuY2hvcjogbWFuaWZlc3RBY3Rpb24ucG9zaXRpb24/LmFuY2hvcixcblx0XHRcdFx0cGxhY2VtZW50OiBtYW5pZmVzdEFjdGlvbi5wb3NpdGlvbiA9PT0gdW5kZWZpbmVkID8gUGxhY2VtZW50LkFmdGVyIDogbWFuaWZlc3RBY3Rpb24ucG9zaXRpb24ucGxhY2VtZW50XG5cdFx0XHR9LFxuXHRcdFx0aXNOYXZpZ2FibGU6IGlzQWN0aW9uTmF2aWdhYmxlKG1hbmlmZXN0QWN0aW9uLCBuYXZpZ2F0aW9uU2V0dGluZ3MsIGNvbnNpZGVyTmF2aWdhdGlvblNldHRpbmdzKSxcblx0XHRcdGNvbW1hbmQ6IG1hbmlmZXN0QWN0aW9uLmNvbW1hbmQsXG5cdFx0XHRyZXF1aXJlc1NlbGVjdGlvbjogbWFuaWZlc3RBY3Rpb24ucmVxdWlyZXNTZWxlY3Rpb24gPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWFuaWZlc3RBY3Rpb24ucmVxdWlyZXNTZWxlY3Rpb24sXG5cdFx0XHRlbmFibGVBdXRvU2Nyb2xsOiBlbmFibGVBdXRvU2Nyb2xsKG1hbmlmZXN0QWN0aW9uKSxcblx0XHRcdG1lbnU6IG1hbmlmZXN0QWN0aW9uLm1lbnUgPz8gW10sXG5cdFx0XHRmYWNldE5hbWU6IG1hbmlmZXN0QWN0aW9uLmlubGluZSA/IGZhY2V0TmFtZSA6IHVuZGVmaW5lZCxcblx0XHRcdGRlZmF1bHRBY3Rpb246IG1hbmlmZXN0QWN0aW9uLmRlZmF1bHRBY3Rpb25cblx0XHR9O1xuXG5cdFx0b3ZlcnJpZGVNYW5pZmVzdENvbmZpZ3VyYXRpb25XaXRoQW5ub3RhdGlvbihhY3Rpb25zW2FjdGlvbktleV0sIG9Bbm5vdGF0aW9uQWN0aW9uKTtcblx0XHRoaWRlQWN0aW9uSWZIaWRkZW5BY3Rpb24oYWN0aW9uc1thY3Rpb25LZXldLCBoaWRkZW5BY3Rpb25zKTtcblx0fVxuXG5cdHJldHVybiB0cmFuc2Zvcm1NZW51QWN0aW9uc0FuZElkZW50aWZ5Q29tbWFuZHMoYWN0aW9ucywgYW5ub3RhdGlvbkFjdGlvbnMgPz8gW10sIGhpZGRlbkFjdGlvbnMgPz8gW10pO1xufVxuXG4vKipcbiAqIEdldHMgYSBiaW5kaW5nIGV4cHJlc3Npb24gcmVwcmVzZW50aW5nIGEgQm9vbGVhbiBtYW5pZmVzdCBwcm9wZXJ0eSB0aGF0IGNhbiBlaXRoZXIgYmUgcmVwcmVzZW50ZWQgYnkgYSBzdGF0aWMgdmFsdWUsIGEgYmluZGluZyBzdHJpbmcsXG4gKiBvciBhIHJ1bnRpbWUgZm9ybWF0dGVyIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBwcm9wZXJ0eVZhbHVlIFN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyZWQgcHJvcGVydHkgdmFsdWVcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcmV0dXJucyBBIGJpbmRpbmcgZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgdGhlIHByb3BlcnR5XG4gKi9cbmZ1bmN0aW9uIGdldE1hbmlmZXN0QWN0aW9uQm9vbGVhblByb3BlcnR5V2l0aEZvcm1hdHRlcihcblx0cHJvcGVydHlWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4gfCBib29sZWFuIHtcblx0Y29uc3QgcmVzb2x2ZWRCaW5kaW5nID0gcmVzb2x2ZUJpbmRpbmdTdHJpbmcocHJvcGVydHlWYWx1ZSBhcyBzdHJpbmcsIFwiYm9vbGVhblwiKTtcblx0bGV0IHJlc3VsdDogYW55O1xuXHRpZiAoaXNDb25zdGFudChyZXNvbHZlZEJpbmRpbmcpICYmIHJlc29sdmVkQmluZGluZy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gTm8gcHJvcGVydHkgdmFsdWUgY29uZmlndXJlZCBpbiBtYW5pZmVzdCBmb3IgdGhlIGN1c3RvbSBhY3Rpb24gLS0+IGRlZmF1bHQgdmFsdWUgaXMgdHJ1ZVxuXHRcdHJlc3VsdCA9IHRydWU7XG5cdH0gZWxzZSBpZiAoaXNDb25zdGFudChyZXNvbHZlZEJpbmRpbmcpICYmIHR5cGVvZiByZXNvbHZlZEJpbmRpbmcudmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG5cdFx0Ly8gdHJ1ZSAvIGZhbHNlXG5cdFx0cmVzdWx0ID0gcmVzb2x2ZWRCaW5kaW5nLnZhbHVlO1xuXHR9IGVsc2UgaWYgKGlzQ29uc3RhbnQocmVzb2x2ZWRCaW5kaW5nKSAmJiB0eXBlb2YgcmVzb2x2ZWRCaW5kaW5nLnZhbHVlID09PSBcInN0cmluZ1wiKSB7XG5cdFx0Ly8gVGhlbiBpdCdzIGEgbW9kdWxlLW1ldGhvZCByZWZlcmVuY2UgXCJzYXAueHh4Lnl5eS5kb1NvbWV0aGluZ1wiXG5cdFx0Y29uc3QgbWV0aG9kUGF0aCA9IHJlc29sdmVkQmluZGluZy52YWx1ZTtcblx0XHQvLyBGSVhNRTogVGhlIGN1c3RvbSBcImlzRW5hYmxlZFwiIGNoZWNrIGRvZXMgbm90IHRyaWdnZXIgKGJlY2F1c2Ugbm9uZSBvZiB0aGUgYm91bmQgdmFsdWVzIGNoYW5nZXMpXG5cdFx0cmVzdWx0ID0gZm9ybWF0UmVzdWx0KFxuXHRcdFx0W3BhdGhJbk1vZGVsKFwiL1wiLCBcIiR2aWV3XCIpLCBtZXRob2RQYXRoLCBwYXRoSW5Nb2RlbChcInNlbGVjdGVkQ29udGV4dHNcIiwgXCJpbnRlcm5hbFwiKV0sXG5cdFx0XHRmcG1Gb3JtYXR0ZXIuY3VzdG9tQm9vbGVhblByb3BlcnR5Q2hlY2sgYXMgYW55LFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCkuY29udGV4dExvY2F0aW9uPy50YXJnZXRFbnRpdHlUeXBlIHx8IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpXG5cdFx0KTtcblx0fSBlbHNlIHtcblx0XHQvLyB0aGVuIGl0J3MgYSBiaW5kaW5nXG5cdFx0cmVzdWx0ID0gcmVzb2x2ZWRCaW5kaW5nO1xuXHR9XG5cblx0cmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGNvbnN0IHJlbW92ZUR1cGxpY2F0ZUFjdGlvbnMgPSAoYWN0aW9uczogQmFzZUFjdGlvbltdKTogQmFzZUFjdGlvbltdID0+IHtcblx0bGV0IG9NZW51SXRlbUtleXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblx0YWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcblx0XHRpZiAoYWN0aW9uPy5tZW51Py5sZW5ndGgpIHtcblx0XHRcdG9NZW51SXRlbUtleXMgPSBhY3Rpb24ubWVudS5yZWR1Y2UoKGl0ZW0sIHsga2V5IH06IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAoa2V5ICYmICFpdGVtW2tleV0pIHtcblx0XHRcdFx0XHRpdGVtW2tleV0gPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBpdGVtO1xuXHRcdFx0fSwgb01lbnVJdGVtS2V5cyk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGFjdGlvbnMuZmlsdGVyKChhY3Rpb24pID0+ICFvTWVudUl0ZW1LZXlzW2FjdGlvbi5rZXldKTtcbn07XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgdmFsdWUgb2YgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiBhbiBhbm5vdGF0aW9uLWJhc2VkIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0gYWN0aW9uVGFyZ2V0IFRoZSBpbnN0YW5jZSBvZiB0aGUgYWN0aW9uXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSBhY3Rpb24gYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvblRhcmdldDogQWN0aW9uIHwgdW5kZWZpbmVkXG4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB7XG5cdGlmIChhY3Rpb25UYXJnZXQ/LmlzQm91bmQgIT09IHRydWUpIHtcblx0XHRyZXR1cm4gXCJ0cnVlXCI7XG5cdH1cblx0aWYgKGFjdGlvblRhcmdldD8ucGFyYW1ldGVycz8ubGVuZ3RoKSB7XG5cdFx0Y29uc3QgYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lID0gYWN0aW9uVGFyZ2V0Py5wYXJhbWV0ZXJzWzBdLmZ1bGx5UXVhbGlmaWVkTmFtZSxcblx0XHRcdG9wZXJhdGlvbkF2YWlsYWJsZUV4cHJlc3Npb24gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oXG5cdFx0XHRcdGFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnMuQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlLFxuXHRcdFx0XHRbXSxcblx0XHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0XHQocGF0aDogc3RyaW5nKSA9PiBiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yKHBhdGgsIGNvbnZlcnRlckNvbnRleHQsIGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSlcblx0XHRcdCk7XG5cdFx0aWYgKGFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnMuQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihlcXVhbChvcGVyYXRpb25BdmFpbGFibGVFeHByZXNzaW9uLCB0cnVlKSk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBcInRydWVcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbWFudGljT2JqZWN0TWFwcGluZyhtYXBwaW5ncz86IFNlbWFudGljT2JqZWN0TWFwcGluZ1R5cGVbXSk6IE1ldGFNb2RlbFR5cGU8U2VtYW50aWNPYmplY3RNYXBwaW5nVHlwZT5bXSB7XG5cdHJldHVybiBtYXBwaW5nc1xuXHRcdD8gbWFwcGluZ3MubWFwKChtYXBwaW5nKSA9PiB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0TG9jYWxQcm9wZXJ0eToge1xuXHRcdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogbWFwcGluZy5Mb2NhbFByb3BlcnR5LnZhbHVlXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRTZW1hbnRpY09iamVjdFByb3BlcnR5OiBtYXBwaW5nLlNlbWFudGljT2JqZWN0UHJvcGVydHlcblx0XHRcdFx0fTtcblx0XHQgIH0pXG5cdFx0OiBbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uTmF2aWdhYmxlKFxuXHRhY3Rpb246IE1hbmlmZXN0QWN0aW9uIHwgQ3VzdG9tRGVmaW5lZFRhYmxlQ29sdW1uRm9yT3ZlcnJpZGUsXG5cdG5hdmlnYXRpb25TZXR0aW5ncz86IE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb24sXG5cdGNvbnNpZGVyTmF2aWdhdGlvblNldHRpbmdzPzogYm9vbGVhblxuKTogYm9vbGVhbiB7XG5cdGxldCBiSXNOYXZpZ2F0aW9uQ29uZmlndXJlZDogYm9vbGVhbiA9IHRydWU7XG5cdGlmIChjb25zaWRlck5hdmlnYXRpb25TZXR0aW5ncykge1xuXHRcdGNvbnN0IGRldGFpbE9yRGlzcGxheSA9IG5hdmlnYXRpb25TZXR0aW5ncyAmJiAobmF2aWdhdGlvblNldHRpbmdzLmRldGFpbCB8fCBuYXZpZ2F0aW9uU2V0dGluZ3MuZGlzcGxheSk7XG5cdFx0YklzTmF2aWdhdGlvbkNvbmZpZ3VyZWQgPSBkZXRhaWxPckRpc3BsYXk/LnJvdXRlID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cdC8vIHdoZW4gZW5hYmxlQXV0b1Njcm9sbCBpcyB0cnVlIHRoZSBuYXZpZ2F0ZVRvSW5zdGFuY2UgZmVhdHVyZSBpcyBkaXNhYmxlZFxuXHRpZiAoXG5cdFx0KGFjdGlvbiAmJlxuXHRcdFx0YWN0aW9uLmFmdGVyRXhlY3V0aW9uICYmXG5cdFx0XHQoYWN0aW9uLmFmdGVyRXhlY3V0aW9uPy5uYXZpZ2F0ZVRvSW5zdGFuY2UgPT09IGZhbHNlIHx8IGFjdGlvbi5hZnRlckV4ZWN1dGlvbj8uZW5hYmxlQXV0b1Njcm9sbCA9PT0gdHJ1ZSkpIHx8XG5cdFx0IWJJc05hdmlnYXRpb25Db25maWd1cmVkXG5cdCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRyZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuYWJsZUF1dG9TY3JvbGwoYWN0aW9uOiBNYW5pZmVzdEFjdGlvbik6IGJvb2xlYW4ge1xuXHRyZXR1cm4gYWN0aW9uPy5hZnRlckV4ZWN1dGlvbj8uZW5hYmxlQXV0b1Njcm9sbCA9PT0gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFGaWVsZElzQ29weUFjdGlvbihkYXRhRmllbGQ6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzKTogYm9vbGVhbiB7XG5cdHJldHVybiBkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5Jc0NvcHlBY3Rpb24/LnZhbHVlT2YoKSA9PT0gdHJ1ZSAmJiBkYXRhRmllbGQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvcHlBY3Rpb24oY29weURhdGFGaWVsZHM6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzW10pOiBEYXRhRmllbGRGb3JBY3Rpb25UeXBlcyB8IHVuZGVmaW5lZCB7XG5cdGlmIChjb3B5RGF0YUZpZWxkcy5sZW5ndGggPT09IDEpIHtcblx0XHRyZXR1cm4gY29weURhdGFGaWVsZHNbMF07XG5cdH1cblx0aWYgKGNvcHlEYXRhRmllbGRzLmxlbmd0aCA+IDEpIHtcblx0XHRMb2cuZXJyb3IoXCJNdWx0aXBsZSBhY3Rpb25zIGFyZSBhbm5vdGF0ZWQgd2l0aCBpc0NvcHlBY3Rpb24uIFRoZXJlIGNhbiBiZSBvbmx5IG9uZSBzdGFuZGFyZCBjb3B5IGFjdGlvbi5cIik7XG5cdH1cblx0cmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BaUNZQSxVQUFVO0VBQUEsV0FBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7RUFBQSxHQUFWQSxVQUFVLEtBQVZBLFVBQVU7RUFBQTtFQWtGdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTQyxjQUFjLENBQ3RCQyxlQUE2QyxFQUM3Q0MsaUJBQStCLEVBQy9CQyxhQUEyQixFQUMzQkMsU0FBaUIsRUFDaEI7SUFDRCxNQUFNQyxnQkFBdUQsR0FBR0gsaUJBQWlCLENBQUNJLElBQUksQ0FDcEZDLE1BQWtCLElBQUtBLE1BQU0sQ0FBQ0MsR0FBRyxLQUFLSixTQUFTLENBQ2hEO0lBQ0QsTUFBTUssY0FBYyxHQUFHUixlQUFlLENBQUNHLFNBQVMsQ0FBQztJQUNqRCxNQUFNTSxZ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
418
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdXR0b25UeXBlIiwibWFwQWN0aW9uQnlLZXkiLCJtYW5pZmVzdEFjdGlvbnMiLCJhbm5vdGF0aW9uQWN0aW9ucyIsImhpZGRlbkFjdGlvbnMiLCJhY3Rpb25LZXkiLCJhbm5vdGF0aW9uQWN0aW9uIiwiZmluZCIsImFjdGlvbiIsImtleSIsIm1hbmlmZXN0QWN0aW9uIiwicmVzdWx0QWN0aW9uIiwiZW5hYmxlZCIsInZpc2libGUiLCJwcm9wIiwicHJvcEtleSIsImNhbkJlTWVudUl0ZW0iLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIkRhdGFGaWVsZEZvckFjdGlvbiIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImhpZGRlbkFjdGlvbiIsIm1hcE1lbnVEZWZhdWx0QWN0aW9uIiwibWVudUFjdGlvbiIsImNvbW1hbmRBY3Rpb25zIiwiZGVmYXVsdEFjdGlvbiIsImNvbW1hbmQiLCJtYXBNZW51SXRlbXMiLCJtYXBwZWRNZW51SXRlbXMiLCJtZW51SXRlbUtleSIsIm1lbnUiLCJwdXNoIiwidmlzaWJsZUV4cHJlc3Npb25zIiwibWFwIiwibWVudUl0ZW0iLCJyZXNvbHZlQmluZGluZ1N0cmluZyIsImNvbXBpbGVFeHByZXNzaW9uIiwiYW5kIiwib3IiLCJ0cmFuc2Zvcm1NZW51QWN0aW9uc0FuZElkZW50aWZ5Q29tbWFuZHMiLCJhbGxBY3Rpb25zIiwiYWN0aW9uS2V5c1RvRGVsZXRlIiwidW5kZWZpbmVkIiwiTWVudSIsImxlbmd0aCIsImZvckVhY2giLCJhY3Rpb25zIiwiX2dldE1hbmlmZXN0RW5hYmxlZCIsImlzQW5ub3RhdGlvbkFjdGlvbiIsImNvbnZlcnRlckNvbnRleHQiLCJyZXN1bHQiLCJnZXRNYW5pZmVzdEFjdGlvbkJvb2xlYW5Qcm9wZXJ0eVdpdGhGb3JtYXR0ZXIiLCJpZkVsc2UiLCJyZXF1aXJlc1NlbGVjdGlvbiIsImdyZWF0ZXJPckVxdWFsIiwicGF0aEluTW9kZWwiLCJfZ2V0TWFuaWZlc3RWaXNpYmxlIiwib3ZlcnJpZGVNYW5pZmVzdENvbmZpZ3VyYXRpb25XaXRoQW5ub3RhdGlvbiIsImFubm90YXRpb25QYXRoIiwicHJlc3MiLCJoaWRlQWN0aW9uSWZIaWRkZW5BY3Rpb24iLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwibmF2aWdhdGlvblNldHRpbmdzIiwiY29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3MiLCJmYWNldE5hbWUiLCJsYXN0RG90SW5kZXgiLCJsYXN0SW5kZXhPZiIsIm9Bbm5vdGF0aW9uQWN0aW9uIiwib2JqIiwiaWQiLCJnZXRDdXN0b21BY3Rpb25JRCIsIkRlZmF1bHQiLCJoYW5kbGVyTW9kdWxlIiwic3Vic3RyaW5nIiwicmVwbGFjZSIsImhhbmRsZXJNZXRob2QiLCJ0ZXh0Iiwibm9XcmFwIiwiX19ub1dyYXAiLCJyZXBsYWNlU3BlY2lhbENoYXJzIiwiZW5hYmxlT25TZWxlY3QiLCJkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24iLCJkZWZhdWx0VmFsdWVzRnVuY3Rpb24iLCJwb3NpdGlvbiIsImFuY2hvciIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiaXNOYXZpZ2FibGUiLCJpc0FjdGlvbk5hdmlnYWJsZSIsImVuYWJsZUF1dG9TY3JvbGwiLCJpbmxpbmUiLCJwcm9wZXJ0eVZhbHVlIiwicmVzb2x2ZWRCaW5kaW5nIiwiaXNDb25zdGFudCIsInZhbHVlIiwiY29uc3RhbnQiLCJtZXRob2RQYXRoIiwiZm9ybWF0UmVzdWx0IiwiZnBtRm9ybWF0dGVyIiwiY3VzdG9tQm9vbGVhblByb3BlcnR5Q2hlY2siLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwiY29udGV4dExvY2F0aW9uIiwidGFyZ2V0RW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJyZW1vdmVEdXBsaWNhdGVBY3Rpb25zIiwib01lbnVJdGVtS2V5cyIsImFjdGlvbk1lbnUiLCJyZWR1Y2UiLCJpdGVtIiwiZmlsdGVyIiwiZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24iLCJhY3Rpb25UYXJnZXQiLCJiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWUiLCJpc0JvdW5kIiwicGFyYW1ldGVycyIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsIm9wZXJhdGlvbkF2YWlsYWJsZUV4cHJlc3Npb24iLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJhbm5vdGF0aW9ucyIsIkNvcmUiLCJPcGVyYXRpb25BdmFpbGFibGUiLCJwYXRoIiwiYmluZGluZ0NvbnRleHRQYXRoVmlzaXRvciIsImVxdWFsIiwiZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nIiwibWFwcGluZ3MiLCJtYXBwaW5nIiwiTG9jYWxQcm9wZXJ0eSIsIiRQcm9wZXJ0eVBhdGgiLCJTZW1hbnRpY09iamVjdFByb3BlcnR5IiwiYklzTmF2aWdhdGlvbkNvbmZpZ3VyZWQiLCJkZXRhaWxPckRpc3BsYXkiLCJkZXRhaWwiLCJkaXNwbGF5Iiwicm91dGUiLCJhZnRlckV4ZWN1dGlvbiIsIm5hdmlnYXRlVG9JbnN0YW5jZSIsImRhdGFGaWVsZElzQ29weUFjdGlvbiIsImRhdGFGaWVsZCIsIlVJIiwiSXNDb3B5QWN0aW9uIiwidmFsdWVPZiIsIiRUeXBlIiwiZ2V0Q29weUFjdGlvbiIsImNvcHlEYXRhRmllbGRzIiwiTG9nIiwiZXJyb3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkFjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBTZW1hbnRpY09iamVjdE1hcHBpbmdUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgYmluZGluZ0NvbnRleHRQYXRoVmlzaXRvciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBDb25maWd1cmFibGVPYmplY3QsIEN1c3RvbUVsZW1lbnQsIE92ZXJyaWRlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgZ2V0Q3VzdG9tQWN0aW9uSUQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEN1c3RvbURlZmluZWRUYWJsZUNvbHVtbkZvck92ZXJyaWRlLFxuXHRNYW5pZmVzdEFjdGlvbixcblx0TmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvblxufSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IGZwbUZvcm1hdHRlciBmcm9tIFwic2FwL2ZlL2NvcmUvZm9ybWF0dGVycy9GUE1Gb3JtYXR0ZXJcIjtcbmltcG9ydCB7XG5cdGFuZCxcblx0QmluZGluZ1Rvb2xraXRFeHByZXNzaW9uLFxuXHRDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbixcblx0Y29tcGlsZUV4cHJlc3Npb24sXG5cdGNvbnN0YW50LFxuXHRlcXVhbCxcblx0Zm9ybWF0UmVzdWx0LFxuXHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24sXG5cdGdyZWF0ZXJPckVxdWFsLFxuXHRpZkVsc2UsXG5cdGlzQ29uc3RhbnQsXG5cdG9yLFxuXHRwYXRoSW5Nb2RlbCxcblx0cmVzb2x2ZUJpbmRpbmdTdHJpbmdcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IHJlcGxhY2VTcGVjaWFsQ2hhcnMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgeyBNZXRhTW9kZWxUeXBlIH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuXG5leHBvcnQgZW51bSBCdXR0b25UeXBlIHtcblx0QWNjZXB0ID0gXCJBY2NlcHRcIixcblx0QXR0ZW50aW9uID0gXCJBdHRlbnRpb25cIixcblx0QmFjayA9IFwiQmFja1wiLFxuXHRDcml0aWNhbCA9IFwiQ3JpdGljYWxcIixcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiLFxuXHRFbXBoYXNpemVkID0gXCJFbXBoYXNpemVkXCIsXG5cdEdob3N0ID0gXCJHaG9zdFwiLFxuXHROZWdhdGl2ZSA9IFwiTmVnYXRpdmVcIixcblx0TmV1dHJhbCA9IFwiTmV1dHJhbFwiLFxuXHRSZWplY3QgPSBcIlJlamVjdFwiLFxuXHRTdWNjZXNzID0gXCJTdWNjZXNzXCIsXG5cdFRyYW5zcGFyZW50ID0gXCJUcmFuc3BhcmVudFwiLFxuXHRVbnN0eWxlZCA9IFwiVW5zdHlsZWRcIixcblx0VXAgPSBcIlVwXCJcbn1cblxuZXhwb3J0IHR5cGUgQmFzZUFjdGlvbiA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0aWQ/OiBzdHJpbmc7XG5cdHRleHQ/OiBzdHJpbmc7XG5cdHR5cGU/OiBBY3Rpb25UeXBlO1xuXHRwcmVzcz86IHN0cmluZztcblx0ZW5hYmxlZD86IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uO1xuXHR2aXNpYmxlPzogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cdGVuYWJsZU9uU2VsZWN0Pzogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aD86IHN0cmluZztcblx0ZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uPzogc3RyaW5nO1xuXHRpc05hdmlnYWJsZT86IGJvb2xlYW47XG5cdGVuYWJsZUF1dG9TY3JvbGw/OiBib29sZWFuO1xuXHRyZXF1aXJlc0RpYWxvZz86IHN0cmluZztcblx0YmluZGluZz86IHN0cmluZztcblx0YnV0dG9uVHlwZT86IEJ1dHRvblR5cGUuR2hvc3QgfCBCdXR0b25UeXBlLlRyYW5zcGFyZW50IHwgc3RyaW5nO1xuXHRwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkPzogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cdG1lbnU/OiAoc3RyaW5nIHwgQmFzZUFjdGlvbilbXTtcblx0ZmFjZXROYW1lPzogc3RyaW5nO1xuXHRjb21tYW5kPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkFjdGlvbiA9IEJhc2VBY3Rpb24gJiB7XG5cdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIHwgQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb247XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdGlkPzogc3RyaW5nO1xuXHRjdXN0b21EYXRhPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBEZWZpbml0aW9uIGZvciBjdXN0b20gYWN0aW9uc1xuICpcbiAqIEB0eXBlZGVmIEN1c3RvbUFjdGlvblxuICovXG5leHBvcnQgdHlwZSBDdXN0b21BY3Rpb24gPSBDdXN0b21FbGVtZW50PFxuXHRCYXNlQWN0aW9uICYge1xuXHRcdGhhbmRsZXJNZXRob2Q/OiBzdHJpbmc7XG5cdFx0aGFuZGxlck1vZHVsZT86IHN0cmluZztcblx0XHRub1dyYXA/OiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgdGhhdCB3ZSB3YW50IHRvIGF2b2lkIHRoZSB3cmFwcGluZyBmcm9tIHRoZSBGUE1IZWxwZXJcblx0XHRyZXF1aXJlc1NlbGVjdGlvbj86IGJvb2xlYW47XG5cdFx0ZGVmYXVsdEFjdGlvbj86IHN0cmluZyB8IEN1c3RvbUFjdGlvbiB8IEJhc2VBY3Rpb247IC8vSW5kaWNhdGVzIHdoZXRoZXIgYSBkZWZhdWx0IGFjdGlvbiBleGlzdHMgaW4gdGhpcyBjb250ZXh0XG5cdH1cbj47XG5cbi8vIFJldXNlIG9mIENvbmZpZ3VyYWJsZU9iamVjdCBhbmQgQ3VzdG9tRWxlbWVudCBpcyBkb25lIGZvciBvcmRlcmluZ1xuZXhwb3J0IHR5cGUgQ29udmVydGVyQWN0aW9uID0gQW5ub3RhdGlvbkFjdGlvbiB8IEN1c3RvbUFjdGlvbjtcblxuZXhwb3J0IHR5cGUgQ29tYmluZWRBY3Rpb24gPSB7XG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXTtcblx0Y29tbWFuZEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj47XG59O1xuXG5leHBvcnQgdHlwZSBPdmVycmlkZVR5cGVBY3Rpb24gPSB7XG5cdGVuYWJsZUF1dG9TY3JvbGw/OiBPdmVycmlkZVR5cGUub3ZlcndyaXRlO1xuXHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24/OiBPdmVycmlkZVR5cGUub3ZlcndyaXRlO1xuXHRpc05hdmlnYWJsZT86IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGU7XG5cdGVuYWJsZU9uU2VsZWN0PzogT3ZlcnJpZGVUeXBlLm92ZXJ3cml0ZTtcblxuXHQvLyBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgbWFuaWZlc3QgY29uZmlndXJhdGlvbiBhbmQgc2hvdWxkIGJlIGFsaWduZWQgZm9yIGFsbCBhY3Rpb25zXG5cdGVuYWJsZWQ6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGU7XG5cdHZpc2libGU6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGU7XG5cdGNvbW1hbmQ6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGU7XG59O1xuXG4vKipcbiAqIE1hcHMgYW4gYWN0aW9uIGJ5IGl0cyBrZXksIGJhc2VkIG9uIHRoZSBnaXZlbiBhbm5vdGF0aW9uIGFjdGlvbnMgYW5kIG1hbmlmZXN0IGNvbmZpZ3VyYXRpb24uIFRoZSByZXN1bHQgYWxyZWFkeSByZXByZXNlbnRzIHRoZVxuICogbWVyZ2VkIGFjdGlvbiBmcm9tIGJvdGggY29uZmlndXJhdGlvbiBzb3VyY2VzLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYWxzbyByZXR1cm5zIGFuIGluZGljYXRpb24gd2hldGhlciB0aGUgYWN0aW9uIGNhbiBiZSBhIG1lbnUgaXRlbSwgc2F5aW5nIHdoZXRoZXIgaXQgaXMgdmlzaWJsZSBvciBvZiBhIHNwZWNpZmljIHR5cGVcbiAqIHRoYXQgYWxsb3dzIHRoaXMuXG4gKlxuICogQHBhcmFtIG1hbmlmZXN0QWN0aW9ucyBBY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0XG4gKiBAcGFyYW0gYW5ub3RhdGlvbkFjdGlvbnMgQWN0aW9ucyBkZWZpbmVkIHRocm91Z2ggYW5ub3RhdGlvbnNcbiAqIEBwYXJhbSBoaWRkZW5BY3Rpb25zIEFjdGlvbnMgdGhhdCBhcmUgY29uZmlndXJlZCBhcyBoaWRkZW4gKGFkZGl0aW9uYWwgdG8gdGhlIHZpc2libGUgcHJvcGVydHkpXG4gKiBAcGFyYW0gYWN0aW9uS2V5IEtleSB0byBsb29rIHVwXG4gKiBAcmV0dXJucyBNZXJnZWQgYWN0aW9uIGFuZCBpbmRpY2F0b3Igd2hldGhlciBpdCBjYW4gYmUgYSBtZW51IGl0ZW1cbiAqL1xuZnVuY3Rpb24gbWFwQWN0aW9uQnlLZXkoXG5cdG1hbmlmZXN0QWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPixcblx0YW5ub3RhdGlvbkFjdGlvbnM6IEJhc2VBY3Rpb25bXSxcblx0aGlkZGVuQWN0aW9uczogQmFzZUFjdGlvbltdLFxuXHRhY3Rpb25LZXk6IHN0cmluZ1xuKSB7XG5cdGNvbnN0IGFubm90YXRpb25BY3Rpb246IEJhc2VBY3Rpb24gfCBDdXN0b21BY3Rpb24gfCB1bmRlZmluZWQgPSBhbm5vdGF0aW9uQWN0aW9ucy5maW5kKFxuXHRcdChhY3Rpb246IEJhc2VBY3Rpb24pID0+IGFjdGlvbi5rZXkgPT09IGFjdGlvbktleVxuXHQpO1xuXHRjb25zdCBtYW5pZmVzdEFjdGlvbiA9IG1hbmlmZXN0QWN0aW9uc1thY3Rpb25LZXldO1xuXHRjb25zdCByZXN1bHRBY3Rpb246IEN1c3RvbUFjdGlvbiB8IEJhc2VBY3Rpb24gPSB7IC4uLihhbm5vdGF0aW9uQWN0aW9uID8/IG1hbmlmZXN0QWN0aW9uKSB9O1xuXG5cdC8vIEFubm90YXRpb24gYWN0aW9uIGFuZCBtYW5pZmVzdCBjb25maWd1cmF0aW9uIGFscmVhZHkgaGFzIHRvIGJlIG1lcmdlZCBoZXJlIGFzIGluc2VydEN1c3RvbUVsZW1lbnRzIG9ubHkgY29uc2lkZXJzIHRvcC1sZXZlbCBhY3Rpb25zXG5cdGlmIChhbm5vdGF0aW9uQWN0aW9uKSB7XG5cdFx0Ly8gSWYgZW5hYmxlZCBvciB2aXNpYmxlIGlzIG5vdCBzZXQgaW4gdGhlIG1hbmlmZXN0LCB1c2UgdGhlIGFubm90YXRpb24gdmFsdWUgYW5kIGhlbmNlIGRvIG5vdCBvdmVyd3JpdGVcblx0XHRyZXN1bHRBY3Rpb24uZW5hYmxlZCA9IG1hbmlmZXN0QWN0aW9uPy5lbmFibGVkID8/IGFubm90YXRpb25BY3Rpb24uZW5hYmxlZDtcblx0XHRyZXN1bHRBY3Rpb24udmlzaWJsZSA9IG1hbmlmZXN0QWN0aW9uPy52aXNpYmxlID8/IGFubm90YXRpb25BY3Rpb24udmlzaWJsZTtcblxuXHRcdGZvciAoY29uc3QgcHJvcCBpbiBtYW5pZmVzdEFjdGlvbiB8fCB7fSkge1xuXHRcdFx0Y29uc3QgcHJvcEtleSA9IHByb3AgYXMga2V5b2YgQmFzZUFjdGlvbjtcblx0XHRcdGlmICghYW5ub3RhdGlvbkFjdGlvbltwcm9wS2V5XSAmJiBwcm9wS2V5ICE9PSBcIm1lbnVcIikge1xuXHRcdFx0XHRyZXN1bHRBY3Rpb25bcHJvcEtleV0gPSBtYW5pZmVzdEFjdGlvbltwcm9wS2V5XSBhcyBuZXZlcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRjb25zdCBjYW5CZU1lbnVJdGVtID1cblx0XHQocmVzdWx0QWN0aW9uPy52aXNpYmxlIHx8XG5cdFx0XHRyZXN1bHRBY3Rpb24/LnR5cGUgPT09IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9yQWN0aW9uIHx8XG5cdFx0XHRyZXN1bHRBY3Rpb24/LnR5cGUgPT09IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uKSAmJlxuXHRcdCFoaWRkZW5BY3Rpb25zLmZpbmQoKGhpZGRlbkFjdGlvbikgPT4gaGlkZGVuQWN0aW9uLmtleSA9PT0gcmVzdWx0QWN0aW9uPy5rZXkpO1xuXG5cdHJldHVybiB7XG5cdFx0YWN0aW9uOiByZXN1bHRBY3Rpb24sXG5cdFx0Y2FuQmVNZW51SXRlbVxuXHR9O1xufVxuXG4vKipcbiAqIE1hcCB0aGUgZGVmYXVsdCBhY3Rpb24ga2V5IG9mIGEgbWVudSB0byBpdHMgYWN0dWFsIGFjdGlvbiBjb25maWd1cmF0aW9uIGFuZCBpZGVudGlmeSB3aGV0aGVyIHRoaXMgZGVmYXVsdCBhY3Rpb24gaXMgYSBjb21tYW5kLlxuICpcbiAqIEBwYXJhbSBtZW51QWN0aW9uIE1lbnUgYWN0aW9uIHRvIG1hcCB0aGUgZGVmYXVsdCBhY3Rpb24gZm9yXG4gKiBAcGFyYW0gbWFuaWZlc3RBY3Rpb25zIEFjdGlvbnMgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3RcbiAqIEBwYXJhbSBhbm5vdGF0aW9uQWN0aW9ucyBBY3Rpb25zIGRlZmluZWQgdGhyb3VnaCBhbm5vdGF0aW9uc1xuICogQHBhcmFtIGNvbW1hbmRBY3Rpb25zIEFycmF5IG9mIGNvbW1hbmQgYWN0aW9ucyB0byBwdXNoIHRoZSBkZWZhdWx0IGFjdGlvbiB0byBpZiBhcHBsaWNhYmxlXG4gKiBAcGFyYW0gaGlkZGVuQWN0aW9ucyBBY3Rpb25zIHRoYXQgYXJlIGNvbmZpZ3VyZWQgYXMgaGlkZGVuIChhZGRpdGlvbmFsIHRvIHRoZSB2aXNpYmxlIHByb3BlcnR5KVxuICovXG5mdW5jdGlvbiBtYXBNZW51RGVmYXVsdEFjdGlvbihcblx0bWVudUFjdGlvbjogQ3VzdG9tQWN0aW9uLFxuXHRtYW5pZmVzdEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4sXG5cdGFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10sXG5cdGNvbW1hbmRBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24gfCBCYXNlQWN0aW9uPixcblx0aGlkZGVuQWN0aW9uczogQmFzZUFjdGlvbltdXG4pIHtcblx0Y29uc3QgeyBhY3Rpb24sIGNhbkJlTWVudUl0ZW0gfSA9IG1hcEFjdGlvbkJ5S2V5KG1hbmlmZXN0QWN0aW9ucywgYW5ub3RhdGlvbkFjdGlvbnMsIGhpZGRlbkFjdGlvbnMsIG1lbnVBY3Rpb24uZGVmYXVsdEFjdGlvbiBhcyBzdHJpbmcpO1xuXG5cdGlmIChjYW5CZU1lbnVJdGVtKSB7XG5cdFx0bWVudUFjdGlvbi5kZWZhdWx0QWN0aW9uID0gYWN0aW9uO1xuXHR9XG5cblx0aWYgKGFjdGlvbi5jb21tYW5kKSB7XG5cdFx0Y29tbWFuZEFjdGlvbnNbYWN0aW9uLmtleV0gPSBhY3Rpb247XG5cdH1cbn1cblxuLyoqXG4gKiBNYXAgdGhlIG1lbnUgaXRlbSBrZXlzIG9mIGEgbWVudSB0byB0aGVpciBhY3R1YWwgYWN0aW9uIGNvbmZpZ3VyYXRpb25zIGFuZCBpZGVudGlmeSB3aGV0aGVyIHRoZXkgYXJlIGNvbW1hbmRzLlxuICpcbiAqIEBwYXJhbSBtZW51QWN0aW9uIE1lbnUgYWN0aW9uIHRvIG1hcCB0aGUgbWVudSBpdGVtcyBmb3JcbiAqIEBwYXJhbSBtYW5pZmVzdEFjdGlvbnMgQWN0aW9ucyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdFxuICogQHBhcmFtIGFubm90YXRpb25BY3Rpb25zIEFjdGlvbnMgZGVmaW5lZCB0aHJvdWdoIGFubm90YXRpb25zXG4gKiBAcGFyYW0gY29tbWFuZEFjdGlvbnMgQXJyYXkgb2YgY29tbWFuZCBhY3Rpb25zIHRvIHB1c2ggdGhlIG1lbnUgaXRlbSBhY3Rpb25zIHRvIGlmIGFwcGxpY2FibGVcbiAqIEBwYXJhbSBoaWRkZW5BY3Rpb25zIEFjdGlvbnMgdGhhdCBhcmUgY29uZmlndXJlZCBhcyBoaWRkZW4gKGFkZGl0aW9uYWwgdG8gdGhlIHZpc2libGUgcHJvcGVydHkpXG4gKi9cbmZ1bmN0aW9uIG1hcE1lbnVJdGVtcyhcblx0bWVudUFjdGlvbjogQ3VzdG9tQWN0aW9uLFxuXHRtYW5pZmVzdEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4sXG5cdGFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10sXG5cdGNvbW1hbmRBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBCYXNlQWN0aW9uIHwgQ3VzdG9tQWN0aW9uPixcblx0aGlkZGVuQWN0aW9uczogQmFzZUFjdGlvbltdXG4pIHtcblx0Y29uc3QgbWFwcGVkTWVudUl0ZW1zOiAoQ3VzdG9tQWN0aW9uIHwgQmFzZUFjdGlvbilbXSA9IFtdO1xuXG5cdGZvciAoY29uc3QgbWVudUl0ZW1LZXkgb2YgbWVudUFjdGlvbi5tZW51ID8/IFtdKSB7XG5cdFx0Y29uc3QgeyBhY3Rpb24sIGNhbkJlTWVudUl0ZW0gfSA9IG1hcEFjdGlvbkJ5S2V5KG1hbmlmZXN0QWN0aW9ucywgYW5ub3RhdGlvbkFjdGlvbnMsIGhpZGRlbkFjdGlvbnMsIG1lbnVJdGVtS2V5IGFzIHN0cmluZyk7XG5cblx0XHRpZiAoY2FuQmVNZW51SXRlbSkge1xuXHRcdFx0bWFwcGVkTWVudUl0ZW1zLnB1c2goYWN0aW9uKTtcblx0XHR9XG5cblx0XHRpZiAoYWN0aW9uLmNvbW1hbmQpIHtcblx0XHRcdGNvbW1hbmRBY3Rpb25zW21lbnVJdGVtS2V5IGFzIHN0cmluZ10gPSBhY3Rpb247XG5cdFx0fVxuXHR9XG5cblx0bWVudUFjdGlvbi5tZW51ID0gbWFwcGVkTWVudUl0ZW1zO1xuXG5cdC8vIElmIHRoZSBtZW51IGlzIHNldCB0byBpbnZpc2libGUsIGl0IHNob3VsZCBiZSBpbnZpc2libGUsIG90aGVyd2lzZSB0aGUgdmlzaWJpbGl0eSBzaG91bGQgYmUgY2FsY3VsYXRlZCBmcm9tIHRoZSBpdGVtc1xuXHRjb25zdCB2aXNpYmxlRXhwcmVzc2lvbnM6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPltdID0gbWFwcGVkTWVudUl0ZW1zLm1hcCgobWVudUl0ZW0pID0+XG5cdFx0cmVzb2x2ZUJpbmRpbmdTdHJpbmcobWVudUl0ZW0udmlzaWJsZSBhcyBzdHJpbmcsIFwiYm9vbGVhblwiKVxuXHQpO1xuXHRtZW51QWN0aW9uLnZpc2libGUgPSBjb21waWxlRXhwcmVzc2lvbihhbmQocmVzb2x2ZUJpbmRpbmdTdHJpbmcobWVudUFjdGlvbi52aXNpYmxlIGFzIHN0cmluZywgXCJib29sZWFuXCIpLCBvciguLi52aXNpYmxlRXhwcmVzc2lvbnMpKSk7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtcyB0aGUgZmxhdCBjb2xsZWN0aW9uIG9mIGFjdGlvbnMgaW50byBhIG5lc3RlZCBzdHJ1Y3R1cmVzIG9mIG1lbnVzLiBUaGUgcmVzdWx0IGlzIGEgcmVjb3JkIG9mIGFjdGlvbnMgdGhhdCBhcmUgZWl0aGVyIG1lbnVzIG9yXG4gKiBvbmVzIHRoYXQgZG8gbm90IGFwcGVhciBpbiBtZW51cyBhcyBtZW51IGl0ZW1zLiBJdCBhbHNvIHJldHVybnMgYSBsaXN0IG9mIGFjdGlvbnMgdGhhdCBoYXZlIGFuIGFzc2lnbmVkIGNvbW1hbmQuXG4gKlxuICogTm90ZSB0aGF0IG1lbnUgaXRlbXMgYXJlIGFscmVhZHkgdGhlIG1lcmdlZCByZXN1bHQgb2YgYW5ub3RhdGlvbiBhY3Rpb25zIGFuZCB0aGVpciBtYW5pZmVzdCBjb25maWd1cmF0aW9uLCBhcyB7QGxpbmsgaW5zZXJ0Q3VzdG9tRWxlbWVudHN9XG4gKiBvbmx5IGNvbnNpZGVycyByb290LWxldmVsIGFjdGlvbnMuXG4gKlxuICogQHBhcmFtIG1hbmlmZXN0QWN0aW9ucyBBY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0XG4gKiBAcGFyYW0gYW5ub3RhdGlvbkFjdGlvbnMgQWN0aW9ucyBkZWZpbmVkIHRocm91Z2ggYW5ub3RhdGlvbnNcbiAqIEBwYXJhbSBoaWRkZW5BY3Rpb25zIEFjdGlvbnMgdGhhdCBhcmUgY29uZmlndXJlZCBhcyBoaWRkZW4gKGFkZGl0aW9uYWwgdG8gdGhlIHZpc2libGUgcHJvcGVydHkpXG4gKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgYWN0aW9ucyBmcm9tIHRoZSBtYW5pZmVzdCBhbmQgYSBsaXN0IG9mIGNvbW1hbmQgYWN0aW9uc1xuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1NZW51QWN0aW9uc0FuZElkZW50aWZ5Q29tbWFuZHMoXG5cdG1hbmlmZXN0QWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPixcblx0YW5ub3RhdGlvbkFjdGlvbnM6IEJhc2VBY3Rpb25bXSxcblx0aGlkZGVuQWN0aW9uczogQmFzZUFjdGlvbltdXG4pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+PiB7XG5cdGNvbnN0IGFsbEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4gPSB7fTtcblx0Y29uc3QgYWN0aW9uS2V5c1RvRGVsZXRlOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBjb21tYW5kQWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPiA9IHt9O1xuXG5cdGZvciAoY29uc3QgYWN0aW9uS2V5IGluIG1hbmlmZXN0QWN0aW9ucykge1xuXHRcdGNvbnN0IG1hbmlmZXN0QWN0aW9uOiBDdXN0b21BY3Rpb24gPSBtYW5pZmVzdEFjdGlvbnNbYWN0aW9uS2V5XTtcblxuXHRcdGlmIChtYW5pZmVzdEFjdGlvbi5kZWZhdWx0QWN0aW9uICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdG1hcE1lbnVEZWZhdWx0QWN0aW9uKG1hbmlmZXN0QWN0aW9uLCBtYW5pZmVzdEFjdGlvbnMsIGFubm90YXRpb25BY3Rpb25zLCBjb21tYW5kQWN0aW9ucywgaGlkZGVuQWN0aW9ucyk7XG5cdFx0fVxuXG5cdFx0aWYgKG1hbmlmZXN0QWN0aW9uLnR5cGUgPT09IEFjdGlvblR5cGUuTWVudSkge1xuXHRcdFx0Ly8gTWVudSBpdGVtcyBzaG91bGQgbm90IGFwcGVhciBhcyB0b3AtbGV2ZWwgYWN0aW9ucyB0aGVtc2VsdmVzXG5cdFx0XHRhY3Rpb25LZXlzVG9EZWxldGUucHVzaCguLi4obWFuaWZlc3RBY3Rpb24ubWVudSBhcyBzdHJpbmdbXSkpO1xuXG5cdFx0XHRtYXBNZW51SXRlbXMobWFuaWZlc3RBY3Rpb24sIG1hbmlmZXN0QWN0aW9ucywgYW5ub3RhdGlvbkFjdGlvbnMsIGNvbW1hbmRBY3Rpb25zLCBoaWRkZW5BY3Rpb25zKTtcblxuXHRcdFx0Ly8gTWVudSBoYXMgbm8gdmlzaWJsZSBpdGVtcywgc28gcmVtb3ZlIGl0XG5cdFx0XHRpZiAoIW1hbmlmZXN0QWN0aW9uLm1lbnU/Lmxlbmd0aCkge1xuXHRcdFx0XHRhY3Rpb25LZXlzVG9EZWxldGUucHVzaChtYW5pZmVzdEFjdGlvbi5rZXkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChtYW5pZmVzdEFjdGlvbi5jb21tYW5kKSB7XG5cdFx0XHRjb21tYW5kQWN0aW9uc1thY3Rpb25LZXldID0gbWFuaWZlc3RBY3Rpb247XG5cdFx0fVxuXG5cdFx0YWxsQWN0aW9uc1thY3Rpb25LZXldID0gbWFuaWZlc3RBY3Rpb247XG5cdH1cblxuXHRhY3Rpb25LZXlzVG9EZWxldGUuZm9yRWFjaCgoYWN0aW9uS2V5OiBzdHJpbmcpID0+IGRlbGV0ZSBhbGxBY3Rpb25zW2FjdGlvbktleV0pO1xuXG5cdHJldHVybiB7XG5cdFx0YWN0aW9uczogYWxsQWN0aW9ucyxcblx0XHRjb21tYW5kQWN0aW9uczogY29tbWFuZEFjdGlvbnNcblx0fTtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSBlbmFibGVtZW50IG9mIGEgbWFuaWZlc3QgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBtYW5pZmVzdEFjdGlvbiBUaGUgYWN0aW9uIGNvbmZpZ3VyZWQgaW4gdGhlIG1hbmlmZXN0XG4gKiBAcGFyYW0gaXNBbm5vdGF0aW9uQWN0aW9uIFdoZXRoZXIgdGhlIGFjdGlvbiwgZGVmaW5lZCBpbiBtYW5pZmVzdCwgY29ycmVzcG9uZHMgdG8gYW4gZXhpc3RpbmcgYW5ub3RhdGlvbiBhY3Rpb24uXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHJldHVybnMgRGV0ZXJtaW5lZCBwcm9wZXJ0eSB2YWx1ZSBmb3IgdGhlIGVuYWJsZW1lbnRcbiAqL1xuY29uc3QgX2dldE1hbmlmZXN0RW5hYmxlZCA9IGZ1bmN0aW9uIChcblx0bWFuaWZlc3RBY3Rpb246IE1hbmlmZXN0QWN0aW9uLFxuXHRpc0Fubm90YXRpb25BY3Rpb246IGJvb2xlYW4sXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcblx0aWYgKGlzQW5ub3RhdGlvbkFjdGlvbiAmJiBtYW5pZmVzdEFjdGlvbi5lbmFibGVkID09PSB1bmRlZmluZWQpIHtcblx0XHQvLyBJZiBhbm5vdGF0aW9uIGFjdGlvbiBoYXMgbm8gcHJvcGVydHkgZGVmaW5lZCBpbiBtYW5pZmVzdCxcblx0XHQvLyBkbyBub3Qgb3ZlcndyaXRlIGl0IHdpdGggbWFuaWZlc3QgYWN0aW9uJ3MgZGVmYXVsdCB2YWx1ZS5cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3QgcmVzdWx0ID0gZ2V0TWFuaWZlc3RBY3Rpb25Cb29sZWFuUHJvcGVydHlXaXRoRm9ybWF0dGVyKG1hbmlmZXN0QWN0aW9uLmVuYWJsZWQsIGNvbnZlcnRlckNvbnRleHQpO1xuXG5cdC8vIENvbnNpZGVyIHJlcXVpcmVzU2VsZWN0aW9uIHByb3BlcnR5IHRvIGluY2x1ZGUgc2VsZWN0ZWRDb250ZXh0cyBpbiB0aGUgYmluZGluZyBleHByZXNzaW9uXG5cdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihcblx0XHRpZkVsc2UoXG5cdFx0XHRtYW5pZmVzdEFjdGlvbi5yZXF1aXJlc1NlbGVjdGlvbiA9PT0gdHJ1ZSxcblx0XHRcdGFuZChncmVhdGVyT3JFcXVhbChwYXRoSW5Nb2RlbChcIm51bWJlck9mU2VsZWN0ZWRDb250ZXh0c1wiLCBcImludGVybmFsXCIpLCAxKSwgcmVzdWx0KSxcblx0XHRcdHJlc3VsdFxuXHRcdClcblx0KTtcbn07XG5cbi8qKlxuICogR2V0cyB0aGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgdmlzaWJpbGl0eSBvZiBhIG1hbmlmZXN0IGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gbWFuaWZlc3RBY3Rpb24gVGhlIGFjdGlvbiBjb25maWd1cmVkIGluIHRoZSBtYW5pZmVzdFxuICogQHBhcmFtIGlzQW5ub3RhdGlvbkFjdGlvbiBXaGV0aGVyIHRoZSBhY3Rpb24sIGRlZmluZWQgaW4gbWFuaWZlc3QsIGNvcnJlc3BvbmRzIHRvIGFuIGV4aXN0aW5nIGFubm90YXRpb24gYWN0aW9uLlxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIERldGVybWluZWQgcHJvcGVydHkgdmFsdWUgZm9yIHRoZSB2aXNpYmlsaXR5XG4gKi9cbmNvbnN0IF9nZXRNYW5pZmVzdFZpc2libGUgPSBmdW5jdGlvbiAoXG5cdG1hbmlmZXN0QWN0aW9uOiBNYW5pZmVzdEFjdGlvbixcblx0aXNBbm5vdGF0aW9uQWN0aW9uOiBib29sZWFuLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG5cdGlmIChpc0Fubm90YXRpb25BY3Rpb24gJiYgbWFuaWZlc3RBY3Rpb24udmlzaWJsZSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gSWYgYW5ub3RhdGlvbiBhY3Rpb24gaGFzIG5vIHByb3BlcnR5IGRlZmluZWQgaW4gbWFuaWZlc3QsXG5cdFx0Ly8gZG8gbm90IG92ZXJ3cml0ZSBpdCB3aXRoIG1hbmlmZXN0IGFjdGlvbidzIGRlZmF1bHQgdmFsdWUuXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IHJlc3VsdCA9IGdldE1hbmlmZXN0QWN0aW9uQm9vbGVhblByb3BlcnR5V2l0aEZvcm1hdHRlcihtYW5pZmVzdEFjdGlvbi52aXNpYmxlLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0cmV0dXJuIGNvbXBpbGVFeHByZXNzaW9uKHJlc3VsdCk7XG59O1xuXG4vKipcbiAqIEFzIHNvbWUgcHJvcGVydGllcyBzaG91bGQgbm90IGJlIG92ZXJyaWRhYmxlIGJ5IHRoZSBtYW5pZmVzdCwgbWFrZSBzdXJlIHRoYXQgdGhlIG1hbmlmZXN0IGNvbmZpZ3VyYXRpb24gZ2V0cyB0aGUgYW5ub3RhdGlvbiB2YWx1ZXMgZm9yIHRoZXNlLlxuICpcbiAqIEBwYXJhbSBtYW5pZmVzdEFjdGlvbiBBY3Rpb24gZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3RcbiAqIEBwYXJhbSBhbm5vdGF0aW9uQWN0aW9uIEFjdGlvbiBkZWZpbmVkIHRocm91Z2ggYW5ub3RhdGlvbnNcbiAqL1xuZnVuY3Rpb24gb3ZlcnJpZGVNYW5pZmVzdENvbmZpZ3VyYXRpb25XaXRoQW5ub3RhdGlvbihtYW5pZmVzdEFjdGlvbjogQ3VzdG9tQWN0aW9uLCBhbm5vdGF0aW9uQWN0aW9uPzogQmFzZUFjdGlvbikge1xuXHRpZiAoIWFubm90YXRpb25BY3Rpb24pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBEbyBub3Qgb3ZlcnJpZGUgdGhlICd0eXBlJyBnaXZlbiBpbiBhbiBhbm5vdGF0aW9uIGFjdGlvblxuXHRtYW5pZmVzdEFjdGlvbi50eXBlID0gYW5ub3RhdGlvbkFjdGlvbi50eXBlO1xuXHRtYW5pZmVzdEFjdGlvbi5hbm5vdGF0aW9uUGF0aCA9IGFubm90YXRpb25BY3Rpb24uYW5ub3RhdGlvblBhdGg7XG5cdG1hbmlmZXN0QWN0aW9uLnByZXNzID0gYW5ub3RhdGlvbkFjdGlvbi5wcmVzcztcblxuXHQvLyBPbmx5IHVzZSB0aGUgYW5ub3RhdGlvbiB2YWx1ZXMgZm9yIGVuYWJsZW1lbnQgYW5kIHZpc2liaWxpdHkgaWYgbm90IHNldCBpbiB0aGUgbWFuaWZlc3Rcblx0bWFuaWZlc3RBY3Rpb24uZW5hYmxlZCA9IG1hbmlmZXN0QWN0aW9uLmVuYWJsZWQgPz8gYW5ub3RhdGlvbkFjdGlvbi5lbmFibGVkO1xuXHRtYW5pZmVzdEFjdGlvbi52aXNpYmxlID0gbWFuaWZlc3RBY3Rpb24udmlzaWJsZSA/PyBhbm5vdGF0aW9uQWN0aW9uLnZpc2libGU7XG59XG5cbi8qKlxuICogSGlkZSBhbiBhY3Rpb24gaWYgaXQgaXMgYSBoaWRkZW4gaGVhZGVyIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24gdG8gaGlkZVxuICogQHBhcmFtIGhpZGRlbkFjdGlvbnMgQWN0aW9ucyB0aGF0IGFyZSBjb25maWd1cmVkIGFzIGhpZGRlbiAoYWRkaXRpb25hbCB0byB0aGUgdmlzaWJsZSBwcm9wZXJ0eSlcbiAqL1xuZnVuY3Rpb24gaGlkZUFjdGlvbklmSGlkZGVuQWN0aW9uKGFjdGlvbjogQ3VzdG9tQWN0aW9uLCBoaWRkZW5BY3Rpb25zPzogQmFzZUFjdGlvbltdKSB7XG5cdGlmIChoaWRkZW5BY3Rpb25zPy5maW5kKChoaWRkZW5BY3Rpb24pID0+IGhpZGRlbkFjdGlvbi5rZXkgPT09IGFjdGlvbi5rZXkpKSB7XG5cdFx0YWN0aW9uLnZpc2libGUgPSBcImZhbHNlXCI7XG5cdH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBhY3Rpb24gY29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgbWFuaWZlc3Qgc2V0dGluZ3MuXG4gKlxuICogQHBhcmFtIG1hbmlmZXN0QWN0aW9ucyBUaGUgbWFuaWZlc3QgYWN0aW9uc1xuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0gYW5ub3RhdGlvbkFjdGlvbnMgVGhlIGFubm90YXRpb24gYWN0aW9ucyBkZWZpbml0aW9uXG4gKiBAcGFyYW0gbmF2aWdhdGlvblNldHRpbmdzIFRoZSBuYXZpZ2F0aW9uIHNldHRpbmdzXG4gKiBAcGFyYW0gY29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3MgVGhlIG5hdmlnYXRpb24gc2V0dGluZ3MgdG8gYmUgY29uc2lkZXJlZFxuICogQHBhcmFtIGhpZGRlbkFjdGlvbnMgQWN0aW9ucyB0aGF0IGFyZSBjb25maWd1cmVkIGFzIGhpZGRlbiAoYWRkaXRpb25hbCB0byB0aGUgdmlzaWJsZSBwcm9wZXJ0eSlcbiAqIEBwYXJhbSBmYWNldE5hbWUgVGhlIGZhY2V0IHdoZXJlIGFuIGFjdGlvbiBpcyBkaXNwbGF5ZWQgaWYgaXQgaXMgaW5saW5lXG4gKiBAcmV0dXJucyBUaGUgYWN0aW9ucyBmcm9tIHRoZSBtYW5pZmVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdChcblx0bWFuaWZlc3RBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBNYW5pZmVzdEFjdGlvbj4gfCB1bmRlZmluZWQsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFubm90YXRpb25BY3Rpb25zPzogQmFzZUFjdGlvbltdLFxuXHRuYXZpZ2F0aW9uU2V0dGluZ3M/OiBOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uLFxuXHRjb25zaWRlck5hdmlnYXRpb25TZXR0aW5ncz86IGJvb2xlYW4sXG5cdGhpZGRlbkFjdGlvbnM/OiBCYXNlQWN0aW9uW10sXG5cdGZhY2V0TmFtZT86IHN0cmluZ1xuKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPj4ge1xuXHRjb25zdCBhY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+ID0ge307XG5cdGZvciAoY29uc3QgYWN0aW9uS2V5IGluIG1hbmlmZXN0QWN0aW9ucykge1xuXHRcdGNvbnN0IG1hbmlmZXN0QWN0aW9uOiBNYW5pZmVzdEFjdGlvbiA9IG1hbmlmZXN0QWN0aW9uc1thY3Rpb25LZXldO1xuXHRcdGNvbnN0IGxhc3REb3RJbmRleCA9IG1hbmlmZXN0QWN0aW9uLnByZXNzPy5sYXN0SW5kZXhPZihcIi5cIikgfHwgLTE7XG5cdFx0Y29uc3Qgb0Fubm90YXRpb25BY3Rpb24gPSBhbm5vdGF0aW9uQWN0aW9ucz8uZmluZCgob2JqKSA9PiBvYmoua2V5ID09PSBhY3Rpb25LZXkpO1xuXG5cdFx0Ly8gVG8gaWRlbnRpZnkgdGhlIGFubm90YXRpb24gYWN0aW9uIHByb3BlcnR5IG92ZXJ3cml0ZSB2aWEgbWFuaWZlc3QgdXNlLWNhc2UuXG5cdFx0Y29uc3QgaXNBbm5vdGF0aW9uQWN0aW9uID0gISFvQW5ub3RhdGlvbkFjdGlvbjtcblx0XHRpZiAobWFuaWZlc3RBY3Rpb24uZmFjZXROYW1lKSB7XG5cdFx0XHRmYWNldE5hbWUgPSBtYW5pZmVzdEFjdGlvbi5mYWNldE5hbWU7XG5cdFx0fVxuXG5cdFx0YWN0aW9uc1thY3Rpb25LZXldID0ge1xuXHRcdFx0aWQ6IG9Bbm5vdGF0aW9uQWN0aW9uID8gYWN0aW9uS2V5IDogZ2V0Q3VzdG9tQWN0aW9uSUQoYWN0aW9uS2V5KSxcblx0XHRcdHR5cGU6IG1hbmlmZXN0QWN0aW9uLm1lbnUgPyBBY3Rpb25UeXBlLk1lbnUgOiBBY3Rpb25UeXBlLkRlZmF1bHQsXG5cdFx0XHR2aXNpYmxlOiBfZ2V0TWFuaWZlc3RWaXNpYmxlKG1hbmlmZXN0QWN0aW9uLCBpc0Fubm90YXRpb25BY3Rpb24sIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdFx0ZW5hYmxlZDogX2dldE1hbmlmZXN0RW5hYmxlZChtYW5pZmVzdEFjdGlvbiwgaXNBbm5vdGF0aW9uQWN0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdGhhbmRsZXJNb2R1bGU6IG1hbmlmZXN0QWN0aW9uLnByZXNzICYmIG1hbmlmZXN0QWN0aW9uLnByZXNzLnN1YnN0cmluZygwLCBsYXN0RG90SW5kZXgpLnJlcGxhY2UoL1xcLi9naSwgXCIvXCIpLFxuXHRcdFx0aGFuZGxlck1ldGhvZDogbWFuaWZlc3RBY3Rpb24ucHJlc3MgJiYgbWFuaWZlc3RBY3Rpb24ucHJlc3Muc3Vic3RyaW5nKGxhc3REb3RJbmRleCArIDEpLFxuXHRcdFx0cHJlc3M6IG1hbmlmZXN0QWN0aW9uLnByZXNzLFxuXHRcdFx0dGV4dDogbWFuaWZlc3RBY3Rpb24udGV4dCxcblx0XHRcdG5vV3JhcDogbWFuaWZlc3RBY3Rpb24uX19ub1dyYXAsXG5cdFx0XHRrZXk6IHJlcGxhY2VTcGVjaWFsQ2hhcnMoYWN0aW9uS2V5KSxcblx0XHRcdGVuYWJsZU9uU2VsZWN0OiBtYW5pZmVzdEFjdGlvbi5lbmFibGVPblNlbGVjdCxcblx0XHRcdGRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbjogbWFuaWZlc3RBY3Rpb24uZGVmYXVsdFZhbHVlc0Z1bmN0aW9uLFxuXHRcdFx0cG9zaXRpb246IHtcblx0XHRcdFx0YW5jaG9yOiBtYW5pZmVzdEFjdGlvbi5wb3NpdGlvbj8uYW5jaG9yLFxuXHRcdFx0XHRwbGFjZW1lbnQ6IG1hbmlmZXN0QWN0aW9uLnBvc2l0aW9uID09PSB1bmRlZmluZWQgPyBQbGFjZW1lbnQuQWZ0ZXIgOiBtYW5pZmVzdEFjdGlvbi5wb3NpdGlvbi5wbGFjZW1lbnRcblx0XHRcdH0sXG5cdFx0XHRpc05hdmlnYWJsZTogaXNBY3Rpb25OYXZpZ2FibGUobWFuaWZlc3RBY3Rpb24sIG5hdmlnYXRpb25TZXR0aW5ncywgY29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3MpLFxuXHRcdFx0Y29tbWFuZDogbWFuaWZlc3RBY3Rpb24uY29tbWFuZCxcblx0XHRcdHJlcXVpcmVzU2VsZWN0aW9uOiBtYW5pZmVzdEFjdGlvbi5yZXF1aXJlc1NlbGVjdGlvbiA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtYW5pZmVzdEFjdGlvbi5yZXF1aXJlc1NlbGVjdGlvbixcblx0XHRcdGVuYWJsZUF1dG9TY3JvbGw6IGVuYWJsZUF1dG9TY3JvbGwobWFuaWZlc3RBY3Rpb24pLFxuXHRcdFx0bWVudTogbWFuaWZlc3RBY3Rpb24ubWVudSA/PyBbXSxcblx0XHRcdGZhY2V0TmFtZTogbWFuaWZlc3RBY3Rpb24uaW5saW5lID8gZmFjZXROYW1lIDogdW5kZWZpbmVkLFxuXHRcdFx0ZGVmYXVsdEFjdGlvbjogbWFuaWZlc3RBY3Rpb24uZGVmYXVsdEFjdGlvblxuXHRcdH07XG5cblx0XHRvdmVycmlkZU1hbmlmZXN0Q29uZmlndXJhdGlvbldpdGhBbm5vdGF0aW9uKGFjdGlvbnNbYWN0aW9uS2V5XSwgb0Fubm90YXRpb25BY3Rpb24pO1xuXHRcdGhpZGVBY3Rpb25JZkhpZGRlbkFjdGlvbihhY3Rpb25zW2FjdGlvbktleV0sIGhpZGRlbkFjdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIHRyYW5zZm9ybU1lbnVBY3Rpb25zQW5kSWRlbnRpZnlDb21tYW5kcyhhY3Rpb25zLCBhbm5vdGF0aW9uQWN0aW9ucyA/PyBbXSwgaGlkZGVuQWN0aW9ucyA/PyBbXSk7XG59XG5cbi8qKlxuICogR2V0cyBhIGJpbmRpbmcgZXhwcmVzc2lvbiByZXByZXNlbnRpbmcgYSBCb29sZWFuIG1hbmlmZXN0IHByb3BlcnR5IHRoYXQgY2FuIGVpdGhlciBiZSByZXByZXNlbnRlZCBieSBhIHN0YXRpYyB2YWx1ZSwgYSBiaW5kaW5nIHN0cmluZyxcbiAqIG9yIGEgcnVudGltZSBmb3JtYXR0ZXIgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIHByb3BlcnR5VmFsdWUgU3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJlZCBwcm9wZXJ0eSB2YWx1ZVxuICogQHBhcmFtIGNvbnZlcnRlckNvbnRleHRcbiAqIEByZXR1cm5zIEEgYmluZGluZyBleHByZXNzaW9uIHJlcHJlc2VudGluZyB0aGUgcHJvcGVydHlcbiAqL1xuZnVuY3Rpb24gZ2V0TWFuaWZlc3RBY3Rpb25Cb29sZWFuUHJvcGVydHlXaXRoRm9ybWF0dGVyKFxuXHRwcm9wZXJ0eVZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGNvbnN0IHJlc29sdmVkQmluZGluZyA9IHJlc29sdmVCaW5kaW5nU3RyaW5nPGJvb2xlYW4+KHByb3BlcnR5VmFsdWUgYXMgc3RyaW5nLCBcImJvb2xlYW5cIik7XG5cdGxldCByZXN1bHQ6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPjtcblx0aWYgKGlzQ29uc3RhbnQocmVzb2x2ZWRCaW5kaW5nKSAmJiByZXNvbHZlZEJpbmRpbmcudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuXHRcdC8vIE5vIHByb3BlcnR5IHZhbHVlIGNvbmZpZ3VyZWQgaW4gbWFuaWZlc3QgZm9yIHRoZSBjdXN0b20gYWN0aW9uIC0tPiBkZWZhdWx0IHZhbHVlIGlzIHRydWVcblx0XHRyZXN1bHQgPSBjb25zdGFudCh0cnVlKTtcblx0fSBlbHNlIGlmIChpc0NvbnN0YW50KHJlc29sdmVkQmluZGluZykgJiYgdHlwZW9mIHJlc29sdmVkQmluZGluZy52YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdC8vIFRoZW4gaXQncyBhIG1vZHVsZS1tZXRob2QgcmVmZXJlbmNlIFwic2FwLnh4eC55eXkuZG9Tb21ldGhpbmdcIlxuXHRcdGNvbnN0IG1ldGhvZFBhdGggPSByZXNvbHZlZEJpbmRpbmcudmFsdWU7XG5cdFx0Ly8gRklYTUU6IFRoZSBjdXN0b20gXCJpc0VuYWJsZWRcIiBjaGVjayBkb2VzIG5vdCB0cmlnZ2VyIChiZWNhdXNlIG5vbmUgb2YgdGhlIGJvdW5kIHZhbHVlcyBjaGFuZ2VzKVxuXHRcdHJlc3VsdCA9IGZvcm1hdFJlc3VsdChcblx0XHRcdFtwYXRoSW5Nb2RlbDxWaWV3PihcIi9cIiwgXCIkdmlld1wiKSwgbWV0aG9kUGF0aCwgcGF0aEluTW9kZWw8Q29udGV4dFtdPihcInNlbGVjdGVkQ29udGV4dHNcIiwgXCJpbnRlcm5hbFwiKV0sXG5cdFx0XHRmcG1Gb3JtYXR0ZXIuY3VzdG9tQm9vbGVhblByb3BlcnR5Q2hlY2ssXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS5jb250ZXh0TG9jYXRpb24/LnRhcmdldEVudGl0eVR5cGUgfHwgY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKClcblx0XHQpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIHRoZW4gaXQncyBhIGJpbmRpbmdcblx0XHRyZXN1bHQgPSByZXNvbHZlZEJpbmRpbmc7XG5cdH1cblxuXHRyZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgY29uc3QgcmVtb3ZlRHVwbGljYXRlQWN0aW9ucyA9IChhY3Rpb25zOiBCYXNlQWN0aW9uW10pOiBCYXNlQWN0aW9uW10gPT4ge1xuXHRsZXQgb01lbnVJdGVtS2V5czogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcblx0YWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcblx0XHRpZiAoYWN0aW9uPy5tZW51Py5sZW5ndGgpIHtcblx0XHRcdGNvbnN0IGFjdGlvbk1lbnU6IChCYXNlQWN0aW9uIHwgQ3VzdG9tQWN0aW9uKVtdID0gYWN0aW9uLm1lbnUgYXMgKEJhc2VBY3Rpb24gfCBDdXN0b21BY3Rpb24pW107XG5cdFx0XHRvTWVudUl0ZW1LZXlzID0gYWN0aW9uTWVudS5yZWR1Y2UoKGl0ZW06IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+LCB7IGtleSB9KSA9PiB7XG5cdFx0XHRcdGlmIChrZXkgJiYgIWl0ZW1ba2V5XSkge1xuXHRcdFx0XHRcdGl0ZW1ba2V5XSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGl0ZW07XG5cdFx0XHR9LCBvTWVudUl0ZW1LZXlzKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gYWN0aW9ucy5maWx0ZXIoKGFjdGlvbikgPT4gIW9NZW51SXRlbUtleXNbYWN0aW9uLmtleV0pO1xufTtcblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZSBvZiB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIGFuIGFubm90YXRpb24tYmFzZWQgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBpbnN0YW5jZSBvZiB0aGUgY29udmVydGVyIGNvbnRleHRcbiAqIEBwYXJhbSBhY3Rpb25UYXJnZXQgVGhlIGluc3RhbmNlIG9mIHRoZSBhY3Rpb25cbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIGFjdGlvbiBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbihcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YWN0aW9uVGFyZ2V0OiBBY3Rpb24gfCB1bmRlZmluZWRcbik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHtcblx0Y29uc3QgYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lID0gYWN0aW9uVGFyZ2V0Py5pc0JvdW5kID8gYWN0aW9uVGFyZ2V0Py5wYXJhbWV0ZXJzWzBdPy5mdWxseVF1YWxpZmllZE5hbWUgOiB1bmRlZmluZWQ7XG5cdGNvbnN0IG9wZXJhdGlvbkF2YWlsYWJsZUV4cHJlc3Npb24gPSBnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24oXG5cdFx0YWN0aW9uVGFyZ2V0Py5hbm5vdGF0aW9ucy5Db3JlPy5PcGVyYXRpb25BdmFpbGFibGUsXG5cdFx0W10sXG5cdFx0dW5kZWZpbmVkLFxuXHRcdChwYXRoOiBzdHJpbmcpID0+IGJpbmRpbmdDb250ZXh0UGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dCwgYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lKVxuXHQpO1xuXHRpZiAoYWN0aW9uVGFyZ2V0Py5hbm5vdGF0aW9ucy5Db3JlPy5PcGVyYXRpb25BdmFpbGFibGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjb21waWxlRXhwcmVzc2lvbihlcXVhbChvcGVyYXRpb25BdmFpbGFibGVFeHByZXNzaW9uLCB0cnVlKSk7XG5cdH1cblx0cmV0dXJuIFwidHJ1ZVwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nKG1hcHBpbmdzPzogU2VtYW50aWNPYmplY3RNYXBwaW5nVHlwZVtdKTogTWV0YU1vZGVsVHlwZTxTZW1hbnRpY09iamVjdE1hcHBpbmdUeXBlPltdIHtcblx0cmV0dXJuIG1hcHBpbmdzXG5cdFx0PyBtYXBwaW5ncy5tYXAoKG1hcHBpbmcpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRMb2NhbFByb3BlcnR5OiB7XG5cdFx0XHRcdFx0XHQkUHJvcGVydHlQYXRoOiBtYXBwaW5nLkxvY2FsUHJvcGVydHkudmFsdWVcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFNlbWFudGljT2JqZWN0UHJvcGVydHk6IG1hcHBpbmcuU2VtYW50aWNPYmplY3RQcm9wZXJ0eVxuXHRcdFx0XHR9O1xuXHRcdCAgfSlcblx0XHQ6IFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBY3Rpb25OYXZpZ2FibGUoXG5cdGFjdGlvbjogTWFuaWZlc3RBY3Rpb24gfCBDdXN0b21EZWZpbmVkVGFibGVDb2x1bW5Gb3JPdmVycmlkZSxcblx0bmF2aWdhdGlvblNldHRpbmdzPzogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbixcblx0Y29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3M/OiBib29sZWFuXG4pOiBib29sZWFuIHtcblx0bGV0IGJJc05hdmlnYXRpb25Db25maWd1cmVkID0gdHJ1ZTtcblx0aWYgKGNvbnNpZGVyTmF2aWdhdGlvblNldHRpbmdzKSB7XG5cdFx0Y29uc3QgZGV0YWlsT3JEaXNwbGF5ID0gbmF2aWdhdGlvblNldHRpbmdzICYmIChuYXZpZ2F0aW9uU2V0dGluZ3MuZGV0YWlsIHx8IG5hdmlnYXRpb25TZXR0aW5ncy5kaXNwbGF5KTtcblx0XHRiSXNOYXZpZ2F0aW9uQ29uZmlndXJlZCA9IGRldGFpbE9yRGlzcGxheT8ucm91dGUgPyB0cnVlIDogZmFsc2U7XG5cdH1cblx0Ly8gd2hlbiBlbmFibGVBdXRvU2Nyb2xsIGlzIHRydWUgdGhlIG5hdmlnYXRlVG9JbnN0YW5jZSBmZWF0dXJlIGlzIGRpc2FibGVkXG5cdGlmIChcblx0XHQoYWN0aW9uICYmXG5cdFx0XHRhY3Rpb24uYWZ0ZXJFeGVjdXRpb24gJiZcblx0XHRcdChhY3Rpb24uYWZ0ZXJFeGVjdXRpb24/Lm5hdmlnYXRlVG9JbnN0YW5jZSA9PT0gZmFsc2UgfHwgYWN0aW9uLmFmdGVyRXhlY3V0aW9uPy5lbmFibGVBdXRvU2Nyb2xsID09PSB0cnVlKSkgfHxcblx0XHQhYklzTmF2aWdhdGlvbkNvbmZpZ3VyZWRcblx0KSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5hYmxlQXV0b1Njcm9sbChhY3Rpb246IE1hbmlmZXN0QWN0aW9uKTogYm9vbGVhbiB7XG5cdHJldHVybiBhY3Rpb24/LmFmdGVyRXhlY3V0aW9uPy5lbmFibGVBdXRvU2Nyb2xsID09PSB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YUZpZWxkSXNDb3B5QWN0aW9uKGRhdGFGaWVsZDogRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXMpOiBib29sZWFuIHtcblx0cmV0dXJuIGRhdGFGaWVsZC5hbm5vdGF0aW9ucz8uVUk/LklzQ29weUFjdGlvbj8udmFsdWVPZigpID09PSB0cnVlICYmIGRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29weUFjdGlvbihjb3B5RGF0YUZpZWxkczogRGF0YUZpZWxkRm9yQWN0aW9uVHlwZXNbXSk6IERhdGFGaWVsZEZvckFjdGlvblR5cGVzIHwgdW5kZWZpbmVkIHtcblx0aWYgKGNvcHlEYXRhRmllbGRzLmxlbmd0aCA9PT0gMSkge1xuXHRcdHJldHVybiBjb3B5RGF0YUZpZWxkc1swXTtcblx0fVxuXHRpZiAoY29weURhdGFGaWVsZHMubGVuZ3RoID4gMSkge1xuXHRcdExvZy5lcnJvcihcIk11bHRpcGxlIGFjdGlvbnMgYXJlIGFubm90YXRlZCB3aXRoIGlzQ29weUFjdGlvbi4gVGhlcmUgY2FuIGJlIG9ubHkgb25lIHN0YW5kYXJkIGNvcHkgYWN0aW9uLlwiKTtcblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bc0NZQSxVQUFVO0VBQUEsV0FBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7SUFBVkEsVUFBVTtJQUFWQSxVQUFVO0lBQVZBLFVBQVU7RUFBQSxHQUFWQSxVQUFVLEtBQVZBLFVBQVU7RUFBQTtFQWdGdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTQyxjQUFjLENBQ3RCQyxlQUE2QyxFQUM3Q0MsaUJBQStCLEVBQy9CQyxhQUEyQixFQUMzQkMsU0FBaUIsRUFDaEI7SUFDRCxNQUFNQyxnQkFBdUQsR0FBR0gsaUJBQWlCLENBQUNJLElBQUksQ0FDcEZDLE1BQWtCLElBQUtBLE1BQU0sQ0FBQ0MsR0FBRyxL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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/base/Log","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/ID","sap/fe/core/converters/ManifestSettings","sap/fe/core/formatters/FPMFormatter","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/StableIdHelper"],function(e,n,t,i,o,a,r,l){"use strict";var u={};var s=l.replaceSpecialChars;var c=r.resolveBindingString;var d=r.pathInModel;var v=r.or;var f=r.isConstant;var p=r.ifElse;var b=r.greaterOrEqual;var m=r.getExpressionFromAnnotation;var y=r.formatResult;var g=r.equal;var h=r.compileExpression;var A=r.and;var S=o.ActionType;var C=i.getCustomActionID;var E=t.Placement;var k=n.bindingContextPathVisitor;let x;(function(e){e["Accept"]="Accept";e["Attention"]="Attention";e["Back"]="Back";e["Critical"]="Critical";e["Default"]="Default";e["Emphasized"]="Emphasized";e["Ghost"]="Ghost";e["Negative"]="Negative";e["Neutral"]="Neutral";e["Reject"]="Reject";e["Success"]="Success";e["Transparent"]="Transparent";e["Unstyled"]="Unstyled";e["Up"]="Up"})(x||(x={}));u.ButtonType=x;function F(e,n,t,i){const o=n.find(e=>e.key===i);const a=e[i];const r={...o??a};if(o){r.enabled=(a===null||a===void 0?void 0:a.enabled)??o.enabled;r.visible=(a===null||a===void 0?void 0:a.visible)??o.visible;for(const e in a||{}){if(!o[e]&&e!=="menu"){r[e]=a[e]}}}const l=((r===null||r===void 0?void 0:r.visible)||(r===null||r===void 0?void 0:r.type)===S.DataFieldForAction||(r===null||r===void 0?void 0:r.type)===S.DataFieldForIntentBasedNavigation)&&!t.find(e=>e.key===(r===null||r===void 0?void 0:r.key));return{action:r,canBeMenuItem:l}}function I(e,n,t,i,o){const{action:a,canBeMenuItem:r}=F(n,t,o,e.defaultAction);if(r){e.defaultAction=a}if(a.command){i[a.key]=a}}function M(e,n,t,i,o){const a=[];for(const r of e.menu??[]){const{action:e,canBeMenuItem:l}=F(n,t,o,r);if(l){a.push(e)}if(e.command){i[r]=e}}e.menu=a;const r=a.map(e=>c(e.visible,"boolean"));e.visible=h(A(c(e.visible,"boolean"),v(...r)))}function O(e,n,t){const i={};const o=[];const a={};for(const l in e){const u=e[l];if(u.defaultAction!==undefined){I(u,e,n,a,t)}if(u.type===S.Menu){var r;o.push(...u.menu);M(u,e,n,a,t);if(!((r=u.menu)!==null&&r!==void 0&&r.length)){o.push(u.key)}}if(u.command){a[l]=u}i[l]=u}o.forEach(e=>delete i[e]);return{actions:i,commandActions:a}}const P=function(e,n,t){if(n&&e.enabled===undefined){return undefined}const i=j(e.enabled,t);return h(p(e.requiresSelection===true,A(b(d("numberOfSelectedContexts","internal"),1),i),i))};const B=function(e,n,t){if(n&&e.visible===undefined){return undefined}const i=j(e.visible,t);return h(i)};function N(e,n){if(!n){return}e.type=n.type;e.annotationPath=n.annotationPath;e.press=n.press;e.enabled=e.enabled??n.enabled;e.visible=e.visible??n.visible}function D(e,n){if(n!==null&&n!==void 0&&n.find(n=>n.key===e.key)){e.visible="false"}}function T(e,n,t,i,o,a,r){const l={};for(const d in e){var u,c;const v=e[d];const f=((u=v.press)===null||u===void 0?void 0:u.lastIndexOf("."))||-1;const p=t===null||t===void 0?void 0:t.find(e=>e.key===d);const b=!!p;if(v.facetName){r=v.facetName}l[d]={id:p?d:C(d),type:v.menu?S.Menu:S.Default,visible:B(v,b,n),enabled:P(v,b,n),handlerModule:v.press&&v.press.substring(0,f).replace(/\./gi,"/"),handlerMethod:v.press&&v.press.substring(f+1),press:v.press,text:v.text,noWrap:v.__noWrap,key:s(d),enableOnSelect:v.enableOnSelect,defaultValuesExtensionFunction:v.defaultValuesFunction,position:{anchor:(c=v.position)===null||c===void 0?void 0:c.anchor,placement:v.position===undefined?E.After:v.position.placement},isNavigable:R(v,i,o),command:v.command,requiresSelection:v.requiresSelection===undefined?false:v.requiresSelection,enableAutoScroll:V(v),menu:v.menu??[],facetName:v.inline?r:undefined,defaultAction:v.defaultAction};N(l[d],p);D(l[d],a)}return O(l,t??[],a??[])}u.getActionsFromManifest=T;function j(e,n){const t=c(e,"boolean");let i;if(f(t)&&t.value===undefined){i=true}else if(f(t)&&typeof t.value==="boolean"){i=t.value}else if(f(t)&&typeof t.value==="string"){var o;const e=t.value;i=y([d("/","$view"),e,d("selectedContexts","internal")],a.customBooleanPropertyCheck,((o=n.getDataModelObjectPath().contextLocation)===null||o===void 0?void 0:o.targetEntityType)||n.getEntityType())}else{i=t}return i}const q=e=>{let n={};e.forEach(e=>{var t;if(e!==null&&e!==void 0&&(t=e.menu)!==null&&t!==void 0&&t.length){n=e.menu.reduce((e,n)=>{let{key:t}=n;if(t&&!e[t]){e[t]=true}return e},n)}});return e.filter(e=>!n[e.key])};u.removeDuplicateActions=q;function U(e,n){var t;if((n===null||n===void 0?void 0:n.isBound)!==true){return"true"}if(n!==null&&n!==void 0&&(t=n.parameters)!==null&&t!==void 0&&t.length){var i,o;const t=n===null||n===void 0?void 0:n.parameters[0].fullyQualifiedName,a=m(n===null||n===void 0?void 0:(i=n.annotations.Core)===null||i===void 0?void 0:i.OperationAvailable,[],undefined,n=>k(n,e,t));if((n===null||n===void 0?void 0:(o=n.annotations.Core)===null||o===void 0?void 0:o.OperationAvailable)!==undefined){return h(g(a,true))}}return"true"}u.getEnabledForAnnotationAction=U;function L(e){return e?e.map(e=>({LocalProperty:{$PropertyPath:e.LocalProperty.value},SemanticObjectProperty:e.SemanticObjectProperty})):[]}u.getSemanticObjectMapping=L;function R(e,n,t){var i,o;let a=true;if(t){const e=n&&(n.detail||n.display);a=e!==null&&e!==void 0&&e.route?true:false}if(e&&e.afterExecution&&(((i=e.afterExecution)===null||i===void 0?void 0:i.navigateToInstance)===false||((o=e.afterExecution)===null||o===void 0?void 0:o.enableAutoScroll)===true)||!a){return false}return true}u.isActionNavigable=R;function V(e){var n;return(e===null||e===void 0?void 0:(n=e.afterExecution)===null||n===void 0?void 0:n.enableAutoScroll)===true}u.enableAutoScroll=V;function $(e){var n,t,i;return((n=e.annotations)===null||n===void 0?void 0:(t=n.UI)===null||t===void 0?void 0:(i=t.IsCopyAction)===null||i===void 0?void 0:i.valueOf())===true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForAction"}u.dataFieldIsCopyAction=$;function w(n){if(n.length===1){return n[0]}if(n.length>1){e.error("Multiple actions are annotated with isCopyAction. There can be only one standard copy action.")}return undefined}u.getCopyAction=w;return u},false);
5
+ sap.ui.define(["sap/base/Log","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/converters/helpers/ConfigurableObject","sap/fe/core/converters/helpers/ID","sap/fe/core/converters/ManifestSettings","sap/fe/core/formatters/FPMFormatter","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/StableIdHelper"],function(e,n,t,i,o,a,r,l){"use strict";var s={};var u=l.replaceSpecialChars;var c=r.resolveBindingString;var d=r.pathInModel;var v=r.or;var f=r.isConstant;var p=r.ifElse;var b=r.greaterOrEqual;var m=r.getExpressionFromAnnotation;var y=r.formatResult;var g=r.equal;var h=r.constant;var A=r.compileExpression;var S=r.and;var C=o.ActionType;var E=i.getCustomActionID;var k=t.Placement;var x=n.bindingContextPathVisitor;let F;(function(e){e["Accept"]="Accept";e["Attention"]="Attention";e["Back"]="Back";e["Critical"]="Critical";e["Default"]="Default";e["Emphasized"]="Emphasized";e["Ghost"]="Ghost";e["Negative"]="Negative";e["Neutral"]="Neutral";e["Reject"]="Reject";e["Success"]="Success";e["Transparent"]="Transparent";e["Unstyled"]="Unstyled";e["Up"]="Up"})(F||(F={}));s.ButtonType=F;function I(e,n,t,i){const o=n.find(e=>e.key===i);const a=e[i];const r={...o??a};if(o){r.enabled=(a===null||a===void 0?void 0:a.enabled)??o.enabled;r.visible=(a===null||a===void 0?void 0:a.visible)??o.visible;for(const e in a||{}){const n=e;if(!o[n]&&n!=="menu"){r[n]=a[n]}}}const l=((r===null||r===void 0?void 0:r.visible)||(r===null||r===void 0?void 0:r.type)===C.DataFieldForAction||(r===null||r===void 0?void 0:r.type)===C.DataFieldForIntentBasedNavigation)&&!t.find(e=>e.key===(r===null||r===void 0?void 0:r.key));return{action:r,canBeMenuItem:l}}function M(e,n,t,i,o){const{action:a,canBeMenuItem:r}=I(n,t,o,e.defaultAction);if(r){e.defaultAction=a}if(a.command){i[a.key]=a}}function O(e,n,t,i,o){const a=[];for(const r of e.menu??[]){const{action:e,canBeMenuItem:l}=I(n,t,o,r);if(l){a.push(e)}if(e.command){i[r]=e}}e.menu=a;const r=a.map(e=>c(e.visible,"boolean"));e.visible=A(S(c(e.visible,"boolean"),v(...r)))}function P(e,n,t){const i={};const o=[];const a={};for(const l in e){const s=e[l];if(s.defaultAction!==undefined){M(s,e,n,a,t)}if(s.type===C.Menu){var r;o.push(...s.menu);O(s,e,n,a,t);if(!((r=s.menu)!==null&&r!==void 0&&r.length)){o.push(s.key)}}if(s.command){a[l]=s}i[l]=s}o.forEach(e=>delete i[e]);return{actions:i,commandActions:a}}const B=function(e,n,t){if(n&&e.enabled===undefined){return undefined}const i=q(e.enabled,t);return A(p(e.requiresSelection===true,S(b(d("numberOfSelectedContexts","internal"),1),i),i))};const N=function(e,n,t){if(n&&e.visible===undefined){return undefined}const i=q(e.visible,t);return A(i)};function D(e,n){if(!n){return}e.type=n.type;e.annotationPath=n.annotationPath;e.press=n.press;e.enabled=e.enabled??n.enabled;e.visible=e.visible??n.visible}function T(e,n){if(n!==null&&n!==void 0&&n.find(n=>n.key===e.key)){e.visible="false"}}function j(e,n,t,i,o,a,r){const l={};for(const d in e){var s,c;const v=e[d];const f=((s=v.press)===null||s===void 0?void 0:s.lastIndexOf("."))||-1;const p=t===null||t===void 0?void 0:t.find(e=>e.key===d);const b=!!p;if(v.facetName){r=v.facetName}l[d]={id:p?d:E(d),type:v.menu?C.Menu:C.Default,visible:N(v,b,n),enabled:B(v,b,n),handlerModule:v.press&&v.press.substring(0,f).replace(/\./gi,"/"),handlerMethod:v.press&&v.press.substring(f+1),press:v.press,text:v.text,noWrap:v.__noWrap,key:u(d),enableOnSelect:v.enableOnSelect,defaultValuesExtensionFunction:v.defaultValuesFunction,position:{anchor:(c=v.position)===null||c===void 0?void 0:c.anchor,placement:v.position===undefined?k.After:v.position.placement},isNavigable:V(v,i,o),command:v.command,requiresSelection:v.requiresSelection===undefined?false:v.requiresSelection,enableAutoScroll:$(v),menu:v.menu??[],facetName:v.inline?r:undefined,defaultAction:v.defaultAction};D(l[d],p);T(l[d],a)}return P(l,t??[],a??[])}s.getActionsFromManifest=j;function q(e,n){const t=c(e,"boolean");let i;if(f(t)&&t.value===undefined){i=h(true)}else if(f(t)&&typeof t.value==="string"){var o;const e=t.value;i=y([d("/","$view"),e,d("selectedContexts","internal")],a.customBooleanPropertyCheck,((o=n.getDataModelObjectPath().contextLocation)===null||o===void 0?void 0:o.targetEntityType)||n.getEntityType())}else{i=t}return i}const U=e=>{let n={};e.forEach(e=>{var t;if(e!==null&&e!==void 0&&(t=e.menu)!==null&&t!==void 0&&t.length){const t=e.menu;n=t.reduce((e,n)=>{let{key:t}=n;if(t&&!e[t]){e[t]=true}return e},n)}});return e.filter(e=>!n[e.key])};s.removeDuplicateActions=U;function L(e,n){var t,i,o;const a=n!==null&&n!==void 0&&n.isBound?n===null||n===void 0?void 0:(t=n.parameters[0])===null||t===void 0?void 0:t.fullyQualifiedName:undefined;const r=m(n===null||n===void 0?void 0:(i=n.annotations.Core)===null||i===void 0?void 0:i.OperationAvailable,[],undefined,n=>x(n,e,a));if((n===null||n===void 0?void 0:(o=n.annotations.Core)===null||o===void 0?void 0:o.OperationAvailable)!==undefined){return A(g(r,true))}return"true"}s.getEnabledForAnnotationAction=L;function R(e){return e?e.map(e=>({LocalProperty:{$PropertyPath:e.LocalProperty.value},SemanticObjectProperty:e.SemanticObjectProperty})):[]}s.getSemanticObjectMapping=R;function V(e,n,t){var i,o;let a=true;if(t){const e=n&&(n.detail||n.display);a=e!==null&&e!==void 0&&e.route?true:false}if(e&&e.afterExecution&&(((i=e.afterExecution)===null||i===void 0?void 0:i.navigateToInstance)===false||((o=e.afterExecution)===null||o===void 0?void 0:o.enableAutoScroll)===true)||!a){return false}return true}s.isActionNavigable=V;function $(e){var n;return(e===null||e===void 0?void 0:(n=e.afterExecution)===null||n===void 0?void 0:n.enableAutoScroll)===true}s.enableAutoScroll=$;function w(e){var n,t,i;return((n=e.annotations)===null||n===void 0?void 0:(t=n.UI)===null||t===void 0?void 0:(i=t.IsCopyAction)===null||i===void 0?void 0:i.valueOf())===true&&e.$Type==="com.sap.vocabularies.UI.v1.DataFieldForAction"}s.dataFieldIsCopyAction=w;function z(n){if(n.length===1){return n[0]}if(n.length>1){e.error("Multiple actions are annotated with isCopyAction. There can be only one standard copy action.")}return undefined}s.getCopyAction=z;return s},false);
6
6
  //# sourceMappingURL=Action.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","names":["sap","ui","define","Log","BindingHelper","ConfigurableObject","ID","ManifestSettings","fpmFormatter","BindingToolkit","StableIdHelper","_exports","replaceSpecialChars","resolveBindingString","pathInModel","or","isConstant","ifElse","greaterOrEqual","getExpressionFromAnnotation","formatResult","equal","compileExpression","and","ActionType","getCustomActionID","Placement","bindingContextPathVisitor","ButtonType","mapActionByKey","manifestActions","annotationActions","hiddenActions","actionKey","annotationAction","find","action","key","manifestAction","resultAction","enabled","visible","prop","canBeMenuItem","type","DataFieldForAction","DataFieldForIntentBasedNavigation","hiddenAction","mapMenuDefaultAction","menuAction","commandActions","defaultAction","command","mapMenuItems","mappedMenuItems","menuItemKey","menu","push","visibleExpressions","map","menuItem","transformMenuActionsAndIdentifyCommands","allActions","actionKeysToDelete","undefined","Menu","_manifestAction$menu","length","forEach","actions","_getManifestEnabled","isAnnotationAction","converterContext","result","getManifestActionBooleanPropertyWithFormatter","requiresSelection","_getManifestVisible","overrideManifestConfigurationWithAnnotation","annotationPath","press","hideActionIfHiddenAction","getActionsFromManifest","navigationSettings","considerNavigationSettings","facetName","_manifestAction$press","_manifestAction$posit","lastDotIndex","lastIndexOf","oAnnotationAction","obj","id","Default","handlerModule","substring","replace","handlerMethod","text","noWrap","__noWrap","enableOnSelect","defaultValuesExtensionFunction","defaultValuesFunction","position","anchor","placement","After","isNavigable","isActionNavigable","enableAutoScroll","inline","propertyValue","resolvedBinding","value","_converterContext$get","methodPath","customBooleanPropertyCheck","getDataModelObjectPath","contextLocation","targetEntityType","getEntityType","removeDuplicateActions","oMenuItemKeys","_action$menu","reduce","item","_ref","filter","getEnabledForAnnotationAction","actionTarget","_actionTarget$paramet","isBound","parameters","_actionTarget$annotat","_actionTarget$annotat2","bindingParameterFullName","fullyQualifiedName","operationAvailableExpression","annotations","Core","OperationAvailable","path","getSemanticObjectMapping","mappings","mapping","LocalProperty","$PropertyPath","SemanticObjectProperty","_action$afterExecutio","_action$afterExecutio2","bIsNavigationConfigured","detailOrDisplay","detail","display","route","afterExecution","navigateToInstance","_action$afterExecutio3","dataFieldIsCopyAction","dataField","_dataField$annotation","_dataField$annotation2","_dataField$annotation3","UI","IsCopyAction","valueOf","$Type","getCopyAction","copyDataFields","error"],"sources":["Action-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"Action.js","names":["sap","ui","define","Log","BindingHelper","ConfigurableObject","ID","ManifestSettings","fpmFormatter","BindingToolkit","StableIdHelper","_exports","replaceSpecialChars","resolveBindingString","pathInModel","or","isConstant","ifElse","greaterOrEqual","getExpressionFromAnnotation","formatResult","equal","constant","compileExpression","and","ActionType","getCustomActionID","Placement","bindingContextPathVisitor","ButtonType","mapActionByKey","manifestActions","annotationActions","hiddenActions","actionKey","annotationAction","find","action","key","manifestAction","resultAction","enabled","visible","prop","propKey","canBeMenuItem","type","DataFieldForAction","DataFieldForIntentBasedNavigation","hiddenAction","mapMenuDefaultAction","menuAction","commandActions","defaultAction","command","mapMenuItems","mappedMenuItems","menuItemKey","menu","push","visibleExpressions","map","menuItem","transformMenuActionsAndIdentifyCommands","allActions","actionKeysToDelete","undefined","Menu","_manifestAction$menu","length","forEach","actions","_getManifestEnabled","isAnnotationAction","converterContext","result","getManifestActionBooleanPropertyWithFormatter","requiresSelection","_getManifestVisible","overrideManifestConfigurationWithAnnotation","annotationPath","press","hideActionIfHiddenAction","getActionsFromManifest","navigationSettings","considerNavigationSettings","facetName","_manifestAction$press","_manifestAction$posit","lastDotIndex","lastIndexOf","oAnnotationAction","obj","id","Default","handlerModule","substring","replace","handlerMethod","text","noWrap","__noWrap","enableOnSelect","defaultValuesExtensionFunction","defaultValuesFunction","position","anchor","placement","After","isNavigable","isActionNavigable","enableAutoScroll","inline","propertyValue","resolvedBinding","value","_converterContext$get","methodPath","customBooleanPropertyCheck","getDataModelObjectPath","contextLocation","targetEntityType","getEntityType","removeDuplicateActions","oMenuItemKeys","_action$menu","actionMenu","reduce","item","_ref","filter","getEnabledForAnnotationAction","actionTarget","_actionTarget$paramet","_actionTarget$annotat","_actionTarget$annotat2","bindingParameterFullName","isBound","parameters","fullyQualifiedName","operationAvailableExpression","annotations","Core","OperationAvailable","path","getSemanticObjectMapping","mappings","mapping","LocalProperty","$PropertyPath","SemanticObjectProperty","_action$afterExecutio","_action$afterExecutio2","bIsNavigationConfigured","detailOrDisplay","detail","display","route","afterExecution","navigateToInstance","_action$afterExecutio3","dataFieldIsCopyAction","dataField","_dataField$annotation","_dataField$annotation2","_dataField$annotation3","UI","IsCopyAction","valueOf","$Type","getCopyAction","copyDataFields","error"],"sources":["Action-dbg.js"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Action } from "@sap-ux/vocabularies-types";
2
2
  import type { SemanticObjectMappingType } from "@sap-ux/vocabularies-types/vocabularies/Common";
3
- import { DataFieldForActionTypes, UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
3
+ import type { DataFieldForActionTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
4
+ import { UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
4
5
  import Log from "sap/base/Log";
5
6
  import { bindingContextPathVisitor } from "sap/fe/core/converters/helpers/BindingHelper";
6
7
  import type { ConfigurableObject, CustomElement, OverrideType } from "sap/fe/core/converters/helpers/ConfigurableObject";
@@ -13,10 +14,12 @@ import type {
13
14
  } from "sap/fe/core/converters/ManifestSettings";
14
15
  import { ActionType } from "sap/fe/core/converters/ManifestSettings";
15
16
  import fpmFormatter from "sap/fe/core/formatters/FPMFormatter";
16
- import type { BindingToolkitExpression, CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
17
17
  import {
18
18
  and,
19
+ BindingToolkitExpression,
20
+ CompiledBindingToolkitExpression,
19
21
  compileExpression,
22
+ constant,
20
23
  equal,
21
24
  formatResult,
22
25
  getExpressionFromAnnotation,
@@ -28,7 +31,9 @@ import {
28
31
  resolveBindingString
29
32
  } from "sap/fe/core/helpers/BindingToolkit";
30
33
  import { replaceSpecialChars } from "sap/fe/core/helpers/StableIdHelper";
31
- import type { MetaModelType } from "types/extension_types";
34
+ import type View from "sap/ui/core/mvc/View";
35
+ import type Context from "sap/ui/model/Context";
36
+ import { MetaModelType } from "types/metamodel_types";
32
37
  import type ConverterContext from "../../ConverterContext";
33
38
 
34
39
  export enum ButtonType {
@@ -64,7 +69,7 @@ export type BaseAction = ConfigurableObject & {
64
69
  binding?: string;
65
70
  buttonType?: ButtonType.Ghost | ButtonType.Transparent | string;
66
71
  parentEntityDeleteEnabled?: CompiledBindingToolkitExpression;
67
- menu?: (string | CustomAction | BaseAction)[];
72
+ menu?: (string | BaseAction)[];
68
73
  facetName?: string;
69
74
  command?: string | undefined;
70
75
  };
@@ -83,10 +88,8 @@ export type AnnotationAction = BaseAction & {
83
88
  */
84
89
  export type CustomAction = CustomElement<
85
90
  BaseAction & {
86
- type?: ActionType;
87
91
  handlerMethod?: string;
88
92
  handlerModule?: string;
89
- menu?: (string | CustomAction | BaseAction)[];
90
93
  noWrap?: boolean; // Indicates that we want to avoid the wrapping from the FPMHelper
91
94
  requiresSelection?: boolean;
92
95
  defaultAction?: string | CustomAction | BaseAction; //Indicates whether a default action exists in this context
@@ -136,7 +139,7 @@ function mapActionByKey(
136
139
  (action: BaseAction) => action.key === actionKey
137
140
  );
138
141
  const manifestAction = manifestActions[actionKey];
139
- const resultAction = { ...(annotationAction ?? manifestAction) };
142
+ const resultAction: CustomAction | BaseAction = { ...(annotationAction ?? manifestAction) };
140
143
 
141
144
  // Annotation action and manifest configuration already has to be merged here as insertCustomElements only considers top-level actions
142
145
  if (annotationAction) {
@@ -145,8 +148,9 @@ function mapActionByKey(
145
148
  resultAction.visible = manifestAction?.visible ?? annotationAction.visible;
146
149
 
147
150
  for (const prop in manifestAction || {}) {
148
- if (!(annotationAction as any)[prop] && prop !== "menu") {
149
- (resultAction as any)[prop] = (manifestAction as any)[prop];
151
+ const propKey = prop as keyof BaseAction;
152
+ if (!annotationAction[propKey] && propKey !== "menu") {
153
+ resultAction[propKey] = manifestAction[propKey] as never;
150
154
  }
151
155
  }
152
156
  }
@@ -176,7 +180,7 @@ function mapMenuDefaultAction(
176
180
  menuAction: CustomAction,
177
181
  manifestActions: Record<string, CustomAction>,
178
182
  annotationActions: BaseAction[],
179
- commandActions: Record<string, CustomAction>,
183
+ commandActions: Record<string, CustomAction | BaseAction>,
180
184
  hiddenActions: BaseAction[]
181
185
  ) {
182
186
  const { action, canBeMenuItem } = mapActionByKey(manifestActions, annotationActions, hiddenActions, menuAction.defaultAction as string);
@@ -186,7 +190,7 @@ function mapMenuDefaultAction(
186
190
  }
187
191
 
188
192
  if (action.command) {
189
- (commandActions as any)[action.key] = action;
193
+ commandActions[action.key] = action;
190
194
  }
191
195
  }
192
196
 
@@ -203,20 +207,20 @@ function mapMenuItems(
203
207
  menuAction: CustomAction,
204
208
  manifestActions: Record<string, CustomAction>,
205
209
  annotationActions: BaseAction[],
206
- commandActions: Record<string, CustomAction>,
210
+ commandActions: Record<string, BaseAction | CustomAction>,
207
211
  hiddenActions: BaseAction[]
208
212
  ) {
209
213
  const mappedMenuItems: (CustomAction | BaseAction)[] = [];
210
214
 
211
215
  for (const menuItemKey of menuAction.menu ?? []) {
212
- const { action, canBeMenuItem } = mapActionByKey(manifestActions, annotationActions, hiddenActions, menuItemKey);
216
+ const { action, canBeMenuItem } = mapActionByKey(manifestActions, annotationActions, hiddenActions, menuItemKey as string);
213
217
 
214
218
  if (canBeMenuItem) {
215
219
  mappedMenuItems.push(action);
216
220
  }
217
221
 
218
222
  if (action.command) {
219
- (commandActions as any)[menuItemKey] = action;
223
+ commandActions[menuItemKey as string] = action;
220
224
  }
221
225
  }
222
226
 
@@ -448,22 +452,19 @@ export function getActionsFromManifest(
448
452
  function getManifestActionBooleanPropertyWithFormatter(
449
453
  propertyValue: string | undefined,
450
454
  converterContext: ConverterContext
451
- ): BindingToolkitExpression<boolean> | boolean {
452
- const resolvedBinding = resolveBindingString(propertyValue as string, "boolean");
453
- let result: any;
455
+ ): BindingToolkitExpression<boolean> {
456
+ const resolvedBinding = resolveBindingString<boolean>(propertyValue as string, "boolean");
457
+ let result: BindingToolkitExpression<boolean>;
454
458
  if (isConstant(resolvedBinding) && resolvedBinding.value === undefined) {
455
459
  // No property value configured in manifest for the custom action --> default value is true
456
- result = true;
457
- } else if (isConstant(resolvedBinding) && typeof resolvedBinding.value === "boolean") {
458
- // true / false
459
- result = resolvedBinding.value;
460
+ result = constant(true);
460
461
  } else if (isConstant(resolvedBinding) && typeof resolvedBinding.value === "string") {
461
462
  // Then it's a module-method reference "sap.xxx.yyy.doSomething"
462
463
  const methodPath = resolvedBinding.value;
463
464
  // FIXME: The custom "isEnabled" check does not trigger (because none of the bound values changes)
464
465
  result = formatResult(
465
- [pathInModel("/", "$view"), methodPath, pathInModel("selectedContexts", "internal")],
466
- fpmFormatter.customBooleanPropertyCheck as any,
466
+ [pathInModel<View>("/", "$view"), methodPath, pathInModel<Context[]>("selectedContexts", "internal")],
467
+ fpmFormatter.customBooleanPropertyCheck,
467
468
  converterContext.getDataModelObjectPath().contextLocation?.targetEntityType || converterContext.getEntityType()
468
469
  );
469
470
  } else {
@@ -475,10 +476,11 @@ function getManifestActionBooleanPropertyWithFormatter(
475
476
  }
476
477
 
477
478
  export const removeDuplicateActions = (actions: BaseAction[]): BaseAction[] => {
478
- let oMenuItemKeys: { [key: string]: any } = {};
479
+ let oMenuItemKeys: Record<string, boolean> = {};
479
480
  actions.forEach((action) => {
480
481
  if (action?.menu?.length) {
481
- oMenuItemKeys = action.menu.reduce((item, { key }: any) => {
482
+ const actionMenu: (BaseAction | CustomAction)[] = action.menu as (BaseAction | CustomAction)[];
483
+ oMenuItemKeys = actionMenu.reduce((item: Record<string, boolean>, { key }) => {
482
484
  if (key && !item[key]) {
483
485
  item[key] = true;
484
486
  }
@@ -500,20 +502,15 @@ export function getEnabledForAnnotationAction(
500
502
  converterContext: ConverterContext,
501
503
  actionTarget: Action | undefined
502
504
  ): CompiledBindingToolkitExpression {
503
- if (actionTarget?.isBound !== true) {
504
- return "true";
505
- }
506
- if (actionTarget?.parameters?.length) {
507
- const bindingParameterFullName = actionTarget?.parameters[0].fullyQualifiedName,
508
- operationAvailableExpression = getExpressionFromAnnotation(
509
- actionTarget?.annotations.Core?.OperationAvailable,
510
- [],
511
- undefined,
512
- (path: string) => bindingContextPathVisitor(path, converterContext, bindingParameterFullName)
513
- );
514
- if (actionTarget?.annotations.Core?.OperationAvailable !== undefined) {
515
- return compileExpression(equal(operationAvailableExpression, true));
516
- }
505
+ const bindingParameterFullName = actionTarget?.isBound ? actionTarget?.parameters[0]?.fullyQualifiedName : undefined;
506
+ const operationAvailableExpression = getExpressionFromAnnotation(
507
+ actionTarget?.annotations.Core?.OperationAvailable,
508
+ [],
509
+ undefined,
510
+ (path: string) => bindingContextPathVisitor(path, converterContext, bindingParameterFullName)
511
+ );
512
+ if (actionTarget?.annotations.Core?.OperationAvailable !== undefined) {
513
+ return compileExpression(equal(operationAvailableExpression, true));
517
514
  }
518
515
  return "true";
519
516
  }
@@ -536,7 +533,7 @@ export function isActionNavigable(
536
533
  navigationSettings?: NavigationSettingsConfiguration,
537
534
  considerNavigationSettings?: boolean
538
535
  ): boolean {
539
- let bIsNavigationConfigured: boolean = true;
536
+ let bIsNavigationConfigured = true;
540
537
  if (considerNavigationSettings) {
541
538
  const detailOrDisplay = navigationSettings && (navigationSettings.detail || navigationSettings.display);
542
539
  bIsNavigationConfigured = detailOrDisplay?.route ? true : false;