@sapui5/sap.fe.core 1.111.1 → 1.112.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 (524) 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 +4 -4
  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 +11 -11
  7. package/src/sap/fe/core/AppComponent-dbg.js +27 -5
  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 +58 -3
  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 +152 -365
  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 +201 -478
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +2 -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 +9 -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 +163 -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 +169 -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 +147 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +905 -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} +290 -362
  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 +181 -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 +890 -220
  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 +974 -239
  69. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +24 -34
  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 +71 -61
  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 +1 -1
  87. package/src/sap/fe/core/controllerextensions/PageReady.ts +24 -0
  88. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
  89. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
  90. package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
  91. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
  92. package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
  93. package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
  94. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  95. package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
  96. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
  97. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  98. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  99. package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
  100. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
  101. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  102. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  103. package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
  104. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
  105. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
  106. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
  107. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
  108. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
  109. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  110. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  111. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
  112. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
  113. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  114. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  115. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
  116. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +1 -1
  117. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  118. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -3
  119. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
  120. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
  121. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
  122. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
  123. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
  124. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +45 -31
  125. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  126. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  127. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +52 -42
  128. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +44 -49
  129. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  130. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  131. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +43 -63
  132. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  133. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +77 -0
  134. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
  135. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
  136. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +114 -0
  137. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1505 -0
  138. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
  139. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
  140. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1985 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
  142. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  143. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
  144. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
  145. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -11
  146. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  147. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  148. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -13
  149. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +43 -41
  150. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  151. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  152. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +44 -47
  153. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
  154. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
  155. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
  156. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +12 -13
  157. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  158. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  159. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +32 -13
  160. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
  161. package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
  162. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  163. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  164. package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
  165. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
  166. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  167. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
  168. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
  169. package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
  170. package/src/sap/fe/core/controls/FilterBar.ts +5 -0
  171. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
  172. package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
  173. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
  174. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
  175. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
  176. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
  177. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
  178. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
  179. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
  180. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  181. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  182. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
  183. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
  184. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
  185. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
  186. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
  187. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
  188. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
  189. package/src/sap/fe/core/converters/ConverterContext-dbg.js +1 -1
  190. package/src/sap/fe/core/converters/ConverterContext.ts +2 -1
  191. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
  192. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  193. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
  194. package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
  195. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +17 -1
  196. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  197. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  198. package/src/sap/fe/core/converters/ManifestWrapper.ts +16 -0
  199. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +61 -49
  200. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  201. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  202. package/src/sap/fe/core/converters/MetaModelConverter.ts +65 -51
  203. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
  204. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  205. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  206. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +65 -16
  207. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  208. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  209. package/src/sap/fe/core/converters/annotations/DataField.ts +62 -18
  210. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1010 -957
  211. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  212. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  213. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +8 -8
  214. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  215. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  216. package/src/sap/fe/core/converters/controls/Common/Action.ts +28 -26
  217. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
  218. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  219. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  220. package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
  221. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
  222. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  223. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  224. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
  225. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +1 -1
  226. package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -3
  227. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +6 -6
  228. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  229. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  230. package/src/sap/fe/core/converters/controls/Common/KPI.ts +15 -15
  231. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +97 -69
  232. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  233. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  234. package/src/sap/fe/core/converters/controls/Common/Table.ts +161 -137
  235. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +3 -3
  236. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  237. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  238. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +10 -9
  239. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +48 -44
  240. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  241. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  242. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +130 -86
  243. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +34 -26
  244. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  245. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  246. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +62 -45
  247. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
  248. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
  249. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
  250. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  251. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
  252. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
  253. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +34 -13
  254. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  255. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  256. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +54 -20
  257. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +3 -1
  258. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  259. package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -0
  260. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
  261. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  262. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
  263. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
  264. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
  265. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
  266. package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
  267. package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
  268. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +9 -8
  269. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  270. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  271. package/src/sap/fe/core/converters/helpers/IssueManager.ts +8 -7
  272. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +8 -7
  273. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  274. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  275. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +9 -6
  276. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +25 -33
  277. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  278. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  279. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +35 -35
  280. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +11 -4
  281. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  282. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  283. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +7 -1
  284. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
  285. package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
  286. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
  287. package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
  288. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -2
  289. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  290. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  291. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
  292. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -5
  293. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  294. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  295. package/src/sap/fe/core/formatters/ValueFormatter.ts +6 -4
  296. package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
  297. package/src/sap/fe/core/fpm/Component.ts +1 -0
  298. package/src/sap/fe/core/fpm/manifest.json +1 -1
  299. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
  300. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  301. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
  302. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  303. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +6 -6
  304. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  305. package/src/sap/fe/core/helpers/BindingToolkit.ts +8 -8
  306. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
  307. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
  308. package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
  309. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
  310. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  311. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  312. package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
  313. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +20 -18
  314. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  315. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  316. package/src/sap/fe/core/helpers/MassEditHelper.ts +22 -23
  317. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +4 -5
  318. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  319. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  320. package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
  321. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +354 -0
  322. package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
  323. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
  324. package/src/sap/fe/core/helpers/MetaModelFunction.ts +408 -0
  325. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +13 -13
  326. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  327. package/src/sap/fe/core/helpers/ModelHelper.ts +13 -13
  328. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
  329. package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
  330. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
  331. package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
  332. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +26 -0
  333. package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
  334. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
  335. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +19 -0
  336. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +93 -18
  337. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  338. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  339. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +70 -17
  340. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
  341. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  342. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
  343. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  344. package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
  345. package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
  346. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +5 -1
  347. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  348. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  349. package/src/sap/fe/core/helpers/TypeGuards.ts +12 -1
  350. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
  351. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  352. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
  353. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
  354. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
  355. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
  356. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  357. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  358. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  359. package/src/sap/fe/core/library-dbg.js +2 -2
  360. package/src/sap/fe/core/library-preload.js +127 -125
  361. package/src/sap/fe/core/library-preload.js.map +1 -1
  362. package/src/sap/fe/core/library.js +1 -1
  363. package/src/sap/fe/core/library.ts +7 -0
  364. package/src/sap/fe/core/manifest.json +1 -1
  365. package/src/sap/fe/core/messagebundle.properties +33 -0
  366. package/src/sap/fe/core/messagebundle_ar.properties +12 -10
  367. package/src/sap/fe/core/messagebundle_bg.properties +11 -9
  368. package/src/sap/fe/core/messagebundle_ca.properties +11 -9
  369. package/src/sap/fe/core/messagebundle_cs.properties +11 -9
  370. package/src/sap/fe/core/messagebundle_cy.properties +11 -9
  371. package/src/sap/fe/core/messagebundle_da.properties +11 -9
  372. package/src/sap/fe/core/messagebundle_de.properties +3 -1
  373. package/src/sap/fe/core/messagebundle_el.properties +11 -9
  374. package/src/sap/fe/core/messagebundle_en.properties +3 -1
  375. package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
  376. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
  377. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -0
  378. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -3
  379. package/src/sap/fe/core/messagebundle_es.properties +11 -9
  380. package/src/sap/fe/core/messagebundle_es_MX.properties +11 -9
  381. package/src/sap/fe/core/messagebundle_et.properties +11 -9
  382. package/src/sap/fe/core/messagebundle_fi.properties +11 -9
  383. package/src/sap/fe/core/messagebundle_fr.properties +11 -9
  384. package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
  385. package/src/sap/fe/core/messagebundle_hi.properties +2 -0
  386. package/src/sap/fe/core/messagebundle_hr.properties +11 -9
  387. package/src/sap/fe/core/messagebundle_hu.properties +11 -9
  388. package/src/sap/fe/core/messagebundle_id.properties +3 -1
  389. package/src/sap/fe/core/messagebundle_it.properties +11 -9
  390. package/src/sap/fe/core/messagebundle_iw.properties +11 -9
  391. package/src/sap/fe/core/messagebundle_ja.properties +11 -9
  392. package/src/sap/fe/core/messagebundle_kk.properties +11 -9
  393. package/src/sap/fe/core/messagebundle_ko.properties +2 -0
  394. package/src/sap/fe/core/messagebundle_lt.properties +11 -9
  395. package/src/sap/fe/core/messagebundle_lv.properties +2 -0
  396. package/src/sap/fe/core/messagebundle_ms.properties +12 -10
  397. package/src/sap/fe/core/messagebundle_nl.properties +12 -10
  398. package/src/sap/fe/core/messagebundle_no.properties +11 -9
  399. package/src/sap/fe/core/messagebundle_pl.properties +2 -0
  400. package/src/sap/fe/core/messagebundle_pt.properties +11 -9
  401. package/src/sap/fe/core/messagebundle_pt_PT.properties +11 -9
  402. package/src/sap/fe/core/messagebundle_ro.properties +3 -1
  403. package/src/sap/fe/core/messagebundle_ru.properties +3 -1
  404. package/src/sap/fe/core/messagebundle_sh.properties +11 -9
  405. package/src/sap/fe/core/messagebundle_sk.properties +11 -9
  406. package/src/sap/fe/core/messagebundle_sl.properties +11 -9
  407. package/src/sap/fe/core/messagebundle_sv.properties +2 -0
  408. package/src/sap/fe/core/messagebundle_th.properties +11 -9
  409. package/src/sap/fe/core/messagebundle_tr.properties +11 -9
  410. package/src/sap/fe/core/messagebundle_uk.properties +11 -9
  411. package/src/sap/fe/core/messagebundle_vi.properties +12 -10
  412. package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
  413. package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
  414. package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
  415. package/src/sap/fe/core/operationsHelper.js +1 -1
  416. package/src/sap/fe/core/operationsHelper.js.map +1 -1
  417. package/src/sap/fe/core/operationsHelper.ts +88 -63
  418. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
  419. package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
  420. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
  421. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  422. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  423. package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
  424. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +4 -3
  425. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  426. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  427. package/src/sap/fe/core/rootView/RootViewBaseController.ts +15 -5
  428. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  429. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  430. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
  431. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
  432. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
  433. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
  434. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  435. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
  436. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
  437. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  438. package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
  439. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
  440. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  441. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
  442. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
  443. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +3 -3
  444. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  445. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  446. package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -3
  447. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
  448. package/src/sap/fe/core/services/ShellServicesFactory.ts +14 -2
  449. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
  450. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  451. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  452. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +502 -333
  453. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +18 -5
  454. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  455. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  456. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +41 -12
  457. package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
  458. package/src/sap/fe/core/support/Diagnostics.ts +5 -0
  459. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +185 -86
  460. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  461. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  462. package/src/sap/fe/core/templating/DataModelPathHelper.ts +190 -82
  463. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +1 -1
  464. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
  465. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +2 -3
  466. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  467. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  468. package/src/sap/fe/core/templating/EntitySetHelper.ts +1 -3
  469. package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
  470. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  471. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  472. package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
  473. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
  474. package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
  475. package/src/sap/fe/core/templating/UIFormatters-dbg.js +1 -1
  476. package/src/sap/fe/core/templating/UIFormatters.ts +4 -0
  477. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
  478. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
  479. package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
  480. package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
  481. package/src/sap/fe/core/type/FiscalDate.ts +2 -1
  482. package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
  483. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  484. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  485. package/src/sap/fe/core/type/TypeUtil.ts +3 -6
  486. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
  487. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
  488. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
  489. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
  490. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
  491. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
  492. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
  493. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
  494. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -948
  495. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
  496. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
  497. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
  498. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
  499. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
  500. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
  501. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
  502. package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
  503. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
  504. package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
  505. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
  506. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
  507. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
  508. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
  509. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
  510. package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
  511. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
  512. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
  513. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
  514. package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
  515. package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
  516. package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
  517. package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
  518. package/src/sap/fe/core/controls/FileWrapper.js +0 -6
  519. package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
  520. package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
  521. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
  522. package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
  523. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
  524. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
@@ -1 +1 @@
1
- {"version":3,"file":"RoutingServiceFactory.js","names":["sap","ui","define","Log","BusyLocker","messageHandling","Placeholder","NavigationReason","AppStartupHelper","ClassSupport","EditState","ModelHelper","SemanticKeyHelper","CollaborationHelper","BindingParser","EventProvider","Service","ServiceFactory","ODataUtils","_dec","_dec2","_dec3","_class","_class2","_descriptor","_descriptor2","_exports","event","defineUI5Class","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","RoutingServiceEventing","_EventProvider","_this","_len","arguments","length","args","Array","_key","this","RoutingService","_Service","_this2","_len2","_key2","navigationInfoQueue","_proto","init","oContext","getContext","scopeType","_oAppConfig$crossNavi","oAppComponent","scopeObject","oModel","getModel","oMetaModel","getMetaModel","oRouter","getRouter","oRouterProxy","getRouterProxy","eventProvider","oRoutingConfig","getManifestEntry","routing","_parseRoutingConfiguration","oAppConfig","outbounds","crossNavigation","initPromise","Promise","resolve","beforeExit","detachRouteMatched","_fnOnRouteMatched","fireEvent","exit","destroy","_oRoutingConfig$confi","isFCL","config","routerClass","_mTargets","targets","sTargetName","assign","targetName","contextPattern","viewLevel","_getViewLevelFromPattern","_mRoutes","sRouteKey","routes","oRouteManifestInfo","aRouteTargets","isArray","sRouteName","name","sRoutePattern","pattern","indexOf","warning","iRouteLevel","routeLevel","i","sParentTargetName","parent","push","FCLLevel","controlAggregation","aLevel0RouteNames","aLevel1RouteNames","sDefaultRouteName","sName","iLevel","sDefaultTargetName","sContextPath","options","settings","oSettings","contextPath","entitySet","map","sTargetKey","sort","a","b","fullContextPath","navigation","sNavName","targetRoute","detail","route","startsWith","sPattern","replace","regex","RegExp","match","_getRouteInformation","_getTargetInformation","_getComponentId","sOwnerId","sComponentId","substr","getTargetInformationFor","oComponentInstance","sTargetComponentId","_sOwnerId","getId","sCorrectTargetName","id","viewId","getLastSemanticMapping","oLastSemanticMapping","setLastSemanticMapping","oMapping","navigateTo","mParameterMapping","bPreserveHistory","sTargetURLPromise","bIsStickyMode","isStickySessionSupported","getSemanticPath","prepareParameters","then","mParameters","getURL","sTargetURL","navToHash","sTargetRoute","oParametersPromise","getPath","aContextPathParts","split","aAllResolvedParameterPromises","sParameterKey","sParameterMappingExpression","oParsedExpression","complexParser","aParts","parts","aResolvedParameterPromises","oPathPart","aRelativeParts","path","aLocalParts","sPropertyPath","join","oMetaContext","getMetaContext","requestProperty","oValue","oPropertyInfo","getObject","sEdmType","$Type","formatLiteral","all","aResolvedParameters","formatter","apply","aAllResolvedParameters","oParameters","oResolvedParameter","oError","error","_fireRouteMatchEvents","cleanProcessedEditState","navigateToContext","oViewData","oCurrentTargetInfo","oRouteParametersPromise","targetPath","oRouteDetail","parameters","sTargetPath","_getPathFromContext","bExitOnNavigateBackToRoot","exitFromApp","asyncContext","bDeferredContext","sLayout","_calculateLayout","oNavigationInfo","oAsyncContext","bTargetEditable","editable","bPersistOPScroll","useContext","updateFCLLevel","bRecreateContext","bDraftNavigation","bShowPlaceholder","showPlaceholder","reason","checkNoHashChange","sCurrentHashNoAppState","getHash","mEventParameters","getRouteInfoByHash","navigationInfo","routeInformation","sCurrentRouteName","routePattern","sCurrentRoutePattern","views","aCurrentViews","setFocusForced","bForceFocus","transient","oRouteInfo","oRoute","sLastTargetName","oTarget","removeUnboundTransitionMessages","oRouteParameters","navTo","noPreservationCache","bNavigated","pop","navigateToRoute","sTargetRouteName","isCurrentStateImpactedBy","sPath","test","sSemanticPath","technicalPath","semanticPath","_findPathToNavigate","_checkIfContextSupportsSemanticPath","sEntitySetName","getSemanticKeys","isDraftSupported","isA","isRelative","getHeaderContext","substring","getRootViewController","calculateLayout","keepCurrentLayout","_beforeRouteMatched","bPlaceholderEnabled","isPlaceholderEnabled","oRootView","getRootControl","lock","_onRouteMatched","oEvent","oAppStateHandler","getAppStateHandler","isLocked","unlock","getParameters","checkIfRouteChangedByIApp","AppStateChanged","resetRouteChangedByIApp","getParameter","history","state","feLevel","restoreHistory","resolveRouteMatch","catch","attachRouteMatched","oData","fnFunction","oListener","attachEvent","detachEvent","attachAfterRouteMatched","detachAfterRouteMatched","getRouteFromHash","sHash","getHashChanger","hash","getMetadata","filter","getTargetsFromRoute","aTarget","sTarget","initializeRouting","async","processAndExpandHash","attachBeforeRouteMatched","resetEditState","bIsIappState","oStartupParameters","getStartupParameters","bHasStartUpParameters","preferredMode","toUpperCase","_manageCreateStartup","_manageDeepLinkStartup","getDefaultCreateHash","getContextPath","getCreateStartupHash","sNewHash","replaceHash","setStartupModeAutoCreate","setStartupModeCreate","getDeepLinkStartupHash","getManifest","oDeepLink","sTechnicalPath","setStartupModeDeeplink","getOutbounds","getInterface","RoutingServiceFactory","_ServiceFactory","_proto2","createInstance","oServiceContext","oRoutingService"],"sources":["RoutingServiceFactory-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"RoutingServiceFactory.js","names":["sap","ui","define","Log","BusyLocker","messageHandling","Placeholder","NavigationReason","AppStartupHelper","ClassSupport","EditState","ModelHelper","SemanticKeyHelper","CollaborationHelper","BindingParser","EventProvider","Service","ServiceFactory","ODataUtils","_dec","_dec2","_dec3","_class","_class2","_descriptor","_descriptor2","_exports","event","defineUI5Class","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","RoutingServiceEventing","_EventProvider","_this","_len","arguments","length","args","Array","_key","this","RoutingService","_Service","_this2","_len2","_key2","navigationInfoQueue","_proto","init","oContext","getContext","scopeType","_oAppConfig$crossNavi","oAppComponent","scopeObject","oModel","getModel","oMetaModel","getMetaModel","oRouter","getRouter","oRouterProxy","getRouterProxy","eventProvider","oRoutingConfig","getManifestEntry","routing","_parseRoutingConfiguration","oAppConfig","outbounds","crossNavigation","initPromise","Promise","resolve","beforeExit","detachRouteMatched","_fnOnRouteMatched","fireEvent","exit","destroy","_oRoutingConfig$confi","isFCL","config","routerClass","_mTargets","targets","sTargetName","assign","targetName","contextPattern","viewLevel","_getViewLevelFromPattern","_mRoutes","sRouteKey","routes","oRouteManifestInfo","aRouteTargets","isArray","sRouteName","name","sRoutePattern","pattern","indexOf","warning","iRouteLevel","routeLevel","i","sParentTargetName","parent","push","FCLLevel","controlAggregation","aLevel0RouteNames","aLevel1RouteNames","sDefaultRouteName","sName","iLevel","sDefaultTargetName","sContextPath","options","settings","oSettings","contextPath","entitySet","map","sTargetKey","sort","a","b","fullContextPath","navigation","sNavName","targetRoute","detail","route","startsWith","sPattern","replace","regex","RegExp","match","_getRouteInformation","_getTargetInformation","_getComponentId","sOwnerId","sComponentId","substr","getTargetInformationFor","oComponentInstance","sTargetComponentId","_sOwnerId","getId","sCorrectTargetName","id","viewId","getLastSemanticMapping","oLastSemanticMapping","setLastSemanticMapping","oMapping","navigateTo","mParameterMapping","bPreserveHistory","sTargetURLPromise","bIsStickyMode","isStickySessionSupported","getSemanticPath","prepareParameters","then","mParameters","getURL","sTargetURL","navToHash","sTargetRoute","oParametersPromise","getPath","aContextPathParts","split","aAllResolvedParameterPromises","sParameterKey","sParameterMappingExpression","oParsedExpression","complexParser","aParts","parts","aResolvedParameterPromises","oPathPart","aRelativeParts","path","aLocalParts","sPropertyPath","join","oMetaContext","getMetaContext","requestProperty","oValue","oPropertyInfo","getObject","sEdmType","$Type","formatLiteral","all","aResolvedParameters","formatter","apply","aAllResolvedParameters","oParameters","oResolvedParameter","oError","error","_fireRouteMatchEvents","cleanProcessedEditState","navigateToContext","oViewData","oCurrentTargetInfo","oRouteParametersPromise","targetPath","oRouteDetail","parameters","sTargetPath","_getPathFromContext","bExitOnNavigateBackToRoot","exitFromApp","asyncContext","bDeferredContext","sLayout","_calculateLayout","oNavigationInfo","oAsyncContext","bTargetEditable","editable","bPersistOPScroll","useContext","updateFCLLevel","bRecreateContext","bDraftNavigation","bShowPlaceholder","showPlaceholder","reason","checkNoHashChange","sCurrentHashNoAppState","getHash","mEventParameters","getRouteInfoByHash","navigationInfo","routeInformation","sCurrentRouteName","routePattern","sCurrentRoutePattern","views","aCurrentViews","setFocusForced","bForceFocus","transient","oRouteInfo","oRoute","sLastTargetName","oTarget","removeUnboundTransitionMessages","oRouteParameters","navTo","noPreservationCache","bNavigated","pop","navigateToRoute","sTargetRouteName","isCurrentStateImpactedBy","sPath","test","sSemanticPath","technicalPath","semanticPath","_findPathToNavigate","_checkIfContextSupportsSemanticPath","sEntitySetName","getSemanticKeys","isDraftSupported","isA","isRelative","getHeaderContext","substring","getRootViewController","calculateLayout","keepCurrentLayout","_beforeRouteMatched","bPlaceholderEnabled","isPlaceholderEnabled","oRootView","getRootControl","lock","_onRouteMatched","oEvent","oAppStateHandler","getAppStateHandler","isLocked","unlock","getParameters","checkIfRouteChangedByIApp","AppStateChanged","resetRouteChangedByIApp","getParameter","history","state","feLevel","restoreHistory","resolveRouteMatch","catch","attachRouteMatched","oData","fnFunction","oListener","attachEvent","detachEvent","attachAfterRouteMatched","detachAfterRouteMatched","getRouteFromHash","sHash","getHashChanger","hash","getMetadata","filter","getTargetsFromRoute","aTarget","sTarget","initializeRouting","async","processAndExpandHash","attachBeforeRouteMatched","resetEditState","bIsIappState","oStartupParameters","getStartupParameters","bHasStartUpParameters","preferredMode","toUpperCase","_manageCreateStartup","_manageDeepLinkStartup","getDefaultCreateHash","getContextPath","getCreateStartupHash","sNewHash","replaceHash","setStartupModeAutoCreate","setStartupModeCreate","getDeepLinkStartupHash","getManifest","oDeepLink","sTechnicalPath","setStartupModeDeeplink","getOutbounds","getInterface","RoutingServiceFactory","_ServiceFactory","_proto2","createInstance","oServiceContext","oRoutingService"],"sources":["RoutingServiceFactory-dbg.js"],"mappings":"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"}
@@ -21,13 +21,14 @@ import type Context from "sap/ui/model/odata/v4/Context";
21
21
  import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
22
22
  import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
23
23
  import ODataUtils from "sap/ui/model/odata/v4/ODataUtils";
24
- import type { ServiceContext } from "types/extension_types";
24
+ import type { ServiceContext } from "types/metamodel_types";
25
25
 
26
26
  type RoutingServiceSettings = {};
27
27
  @defineUI5Class("sap.fe.core.services.RoutingServiceEventing")
28
28
  class RoutingServiceEventing extends EventProvider {
29
29
  @event()
30
30
  routeMatched!: Function;
31
+
31
32
  @event()
32
33
  afterRouteMatched!: Function;
33
34
  }
@@ -38,23 +39,41 @@ export type SemanticMapping = {
38
39
  };
39
40
  export class RoutingService extends Service<RoutingServiceSettings> {
40
41
  oAppComponent!: AppComponent;
42
+
41
43
  oModel!: ODataModel;
44
+
42
45
  oMetaModel!: ODataMetaModel;
46
+
43
47
  oRouter!: Router;
48
+
44
49
  oRouterProxy!: RouterProxy;
50
+
45
51
  eventProvider!: EventProvider;
52
+
46
53
  initPromise!: Promise<any>;
54
+
47
55
  outbounds: any;
56
+
48
57
  _mTargets: any;
58
+
49
59
  _mRoutes: any;
60
+
50
61
  oLastSemanticMapping?: SemanticMapping;
62
+
51
63
  bExitOnNavigateBackToRoot?: boolean;
64
+
52
65
  sCurrentRouteName?: string;
66
+
53
67
  sCurrentRoutePattern?: string;
68
+
54
69
  aCurrentViews?: any[];
70
+
55
71
  navigationInfoQueue: any[] = [];
72
+
56
73
  sContextPath!: string;
74
+
57
75
  _fnOnRouteMatched!: Function;
76
+
58
77
  init() {
59
78
  const oContext = this.getContext();
60
79
  if (oContext.scopeType === "component") {
@@ -74,10 +93,12 @@ export class RoutingService extends Service<RoutingServiceSettings> {
74
93
 
75
94
  this.initPromise = Promise.resolve(this);
76
95
  }
96
+
77
97
  beforeExit() {
78
98
  this.oRouter.detachRouteMatched(this._fnOnRouteMatched, this);
79
99
  this.eventProvider.fireEvent("routeMatched", {});
80
100
  }
101
+
81
102
  exit() {
82
103
  this.eventProvider.destroy();
83
104
  }
@@ -595,7 +616,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
595
616
  // uses technical keys even if Semantic keys are enabled
596
617
  if (this.oRouterProxy.isCurrentStateImpactedBy(sPath)) {
597
618
  return true;
598
- } else if (/^[^\(\)]+\([^\(\)]+\)$/.test(sPath)) {
619
+ } else if (/^[^()]+\([^()]+\)$/.test(sPath)) {
599
620
  // If the current path can be semantic (i.e. is like xxx(yyy))
600
621
  // check with the semantic path if we can find it
601
622
  let sSemanticPath;
@@ -626,7 +647,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
626
647
  const sPath = oContext.getPath();
627
648
 
628
649
  // First, check if this is a level-1 object (path = /aaa(bbb))
629
- if (!/^\/[^\(]+\([^\)]+\)$/.test(sPath)) {
650
+ if (!/^\/[^(]+\([^)]+\)$/.test(sPath)) {
630
651
  return false;
631
652
  }
632
653
 
@@ -766,12 +787,15 @@ export class RoutingService extends Service<RoutingServiceSettings> {
766
787
  attachRouteMatched(oData: any, fnFunction?: any, oListener?: any) {
767
788
  this.eventProvider.attachEvent("routeMatched", oData, fnFunction, oListener);
768
789
  }
790
+
769
791
  detachRouteMatched(fnFunction: any, oListener?: any) {
770
792
  this.eventProvider.detachEvent("routeMatched", fnFunction, oListener);
771
793
  }
794
+
772
795
  attachAfterRouteMatched(oData: any, fnFunction: any, oListener?: any) {
773
796
  this.eventProvider.attachEvent("afterRouteMatched", oData, fnFunction, oListener);
774
797
  }
798
+
775
799
  detachAfterRouteMatched(fnFunction: any, oListener: any) {
776
800
  this.eventProvider.detachEvent("afterRouteMatched", fnFunction, oListener);
777
801
  }
@@ -786,6 +810,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
786
810
  return oRoute.name === oRouteInfo.name;
787
811
  })[0];
788
812
  }
813
+
789
814
  getTargetsFromRoute(oRoute: any) {
790
815
  const oTarget = oRoute.target;
791
816
  if (typeof oTarget === "string") {
@@ -903,6 +928,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
903
928
  getContextPath() {
904
929
  return this.sContextPath;
905
930
  }
931
+
906
932
  getInterface(): any {
907
933
  return this;
908
934
  }
@@ -729,4 +729,4 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/service/Service", "sap/ui/core/servi
729
729
  }(ServiceFactory);
730
730
  return ShellServicesFactory;
731
731
  }, false);
732
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaGVsbFNlcnZpY2VNb2NrIiwiaW5pdCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJpbnN0YW5jZVR5cGUiLCJnZXRMaW5rcyIsImdldExpbmtzV2l0aENhY2hlIiwidG9FeHRlcm5hbCIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsInVuZGVmaW5lZCIsImJhY2tUb1ByZXZpb3VzQXBwIiwiaHJlZkZvckV4dGVybmFsIiwiaHJlZkZvckV4dGVybmFsQXN5bmMiLCJnZXRBcHBTdGF0ZSIsImNyZWF0ZUVtcHR5QXBwU3RhdGUiLCJjcmVhdGVFbXB0eUFwcFN0YXRlQXN5bmMiLCJpc05hdmlnYXRpb25TdXBwb3J0ZWQiLCJpc0luaXRpYWxOYXZpZ2F0aW9uIiwiaXNJbml0aWFsTmF2aWdhdGlvbkFzeW5jIiwiZXhwYW5kQ29tcGFjdEhhc2giLCJwYXJzZVNoZWxsSGFzaCIsInNwbGl0SGFzaCIsImNvbnN0cnVjdFNoZWxsSGFzaCIsInNldERpcnR5RmxhZyIsInJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyIiwiZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciIsImNyZWF0ZVJlbmRlcmVyIiwiZ2V0VXNlciIsImhhc1VTaGVsbCIsInJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlciIsInVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyIiwic2V0QmFja05hdmlnYXRpb24iLCJzZXRIaWVyYXJjaHkiLCJzZXRUaXRsZSIsImdldENvbnRlbnREZW5zaXR5IiwiZG9jdW1lbnQiLCJib2R5IiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJnZXRQcmltYXJ5SW50ZW50Iiwid2FpdEZvclBsdWdpbnNMb2FkIiwiU2VydmljZSIsIndyYXBKUXVlcnlQcm9taXNlIiwianF1ZXJ5UHJvbWlzZSIsInJlamVjdCIsImRvbmUiLCJmYWlsIiwiU2hlbGxTZXJ2aWNlcyIsIm9Db250ZXh0IiwiZ2V0Q29udGV4dCIsIm9Db21wb25lbnQiLCJzY29wZU9iamVjdCIsIm9TaGVsbENvbnRhaW5lciIsInNldHRpbmdzIiwic2hlbGxDb250YWluZXIiLCJsaW5rc0NhY2hlIiwiZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZSIsIm9BcmdzIiwiX29BcmdzIiwiYUNhY2hlZFNlbWFudGljT2JqZWN0cyIsImFOb25DYWNoZWRTZW1hbnRpY09iamVjdHMiLCJpIiwibGVuZ3RoIiwic2VtYW50aWNPYmplY3QiLCJwdXNoIiwibGlua3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwib2xkQXJncyIsIm5ld0FyZ3MiLCJjYWNoZWRMaW5rcyIsInJlc29sdmVGbiIsInJlamVjdEZuIiwib0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UiLCJnZXRTZXJ2aWNlQXN5bmMiLCJvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlIiwib1NoZWxsTmF2aWdhdGlvblNlcnZpY2VQcm9taXNlIiwib1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2UiLCJvU2hlbGxVSVNlcnZpY2VQcm9taXNlIiwiZ2V0U2VydmljZSIsImFsbCIsInRoZW4iLCJvQ3Jvc3NBcHBOYXZTZXJ2aWNlIiwib1VybFBhcnNpbmdTZXJ2aWNlIiwib1NoZWxsTmF2aWdhdGlvbiIsIm9TaGVsbFVJU2VydmljZSIsIm9TaGVsbFBsdWdpbk1hbmFnZXIiLCJjcm9zc0FwcE5hdlNlcnZpY2UiLCJ1cmxQYXJzaW5nU2VydmljZSIsInNoZWxsTmF2aWdhdGlvbiIsInNoZWxsVUlTZXJ2aWNlIiwic2hlbGxQbHVnaW5NYW5hZ2VyIiwiY2F0Y2giLCJvRXJyb3IiLCJFcnJvciIsIm9DYWNoZVJlc3VsdHMiLCJhTGlua3MiLCJvU2VtYW50aWNPYmplY3RzTGlua3MiLCJhc3NpZ24iLCJhTWVyZ2VkTGlua3MiLCJqIiwiayIsImdldFNoZWxsQ29udGFpbmVyIiwib05hdkFyZ3VtZW50c0FyciIsInN0YXJ0dXBBcHBTdGF0ZSIsImJBc3luYyIsInNBcHBTdGF0ZUtleSIsInNIYXNoRnJhZ21lbnQiLCJzSGFzaCIsIm9OZXdTaGVsbEhhc2giLCJiRGlydHkiLCJmbkRpcnR5U3RhdGVQcm92aWRlciIsImZuTmF2RmlsdGVyIiwiZm5DYWxsQmFjayIsImFIaWVyYXJjaHlMZXZlbHMiLCJzVGl0bGUiLCJzU2VtYW50aWNPYmplY3QiLCJtUGFyYW1ldGVycyIsImdldFBsdWdpbkxvYWRpbmdQcm9taXNlIiwiTG9nIiwiZXJyb3IiLCJTaGVsbFNlcnZpY2VzRmFjdG9yeSIsImNyZWF0ZUluc3RhbmNlIiwib1NlcnZpY2VDb250ZXh0Iiwic2FwIiwidXNoZWxsIiwiQ29udGFpbmVyIiwib1NoZWxsU2VydmljZSIsImdldFNoZWxsU2VydmljZXMiLCJTZXJ2aWNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hlbGxTZXJ2aWNlc0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IFNlcnZpY2UgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSBDb250YWluZXIgZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXMvQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlcy9Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblwiO1xuaW1wb3J0IHR5cGUgU2hlbGxOYXZpZ2F0aW9uIGZyb20gXCJzYXAvdXNoZWxsL3NlcnZpY2VzL1NoZWxsTmF2aWdhdGlvblwiO1xuaW1wb3J0IHR5cGUgVVJMUGFyc2luZyBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlcy9VUkxQYXJzaW5nXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBTdGFydHVwQXBwU3RhdGUgPSB7XG5cdGdldERhdGEoKToge1xuXHRcdHNlbGVjdGlvblZhcmlhbnQ/OiB7XG5cdFx0XHRTZWxlY3RPcHRpb25zPzoge1xuXHRcdFx0XHRQcm9wZXJ0eU5hbWU6IHN0cmluZztcblx0XHRcdFx0UmFuZ2VzOiB7XG5cdFx0XHRcdFx0T3B0aW9uOiBzdHJpbmc7XG5cdFx0XHRcdFx0U2lnbjogc3RyaW5nO1xuXHRcdFx0XHRcdExvdzogc3RyaW5nO1xuXHRcdFx0XHR9W107XG5cdFx0XHR9W107XG5cdFx0fTtcblx0fTtcbn07XG4vKipcbiAqIEBpbnRlcmZhY2UgSVNoZWxsU2VydmljZXNcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNoZWxsU2VydmljZXMge1xuXHRpbml0UHJvbWlzZTogUHJvbWlzZTxJU2hlbGxTZXJ2aWNlcz47XG5cdGluc3RhbmNlVHlwZTogc3RyaW5nO1xuXHRjcm9zc0FwcE5hdlNlcnZpY2U/OiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbjtcblx0Z2V0TGlua3Mob0FyZ3M6IG9iamVjdCk6IFByb21pc2U8YW55PjtcblxuXHRnZXRMaW5rc1dpdGhDYWNoZShvQXJnczogb2JqZWN0KTogUHJvbWlzZTxhbnlbXT47XG5cblx0dG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QpOiB2b2lkO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZShvQXJnczogb2JqZWN0KTogUHJvbWlzZTx1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGU+O1xuXG5cdGJhY2tUb1ByZXZpb3VzQXBwKCk6IHZvaWQ7XG5cblx0aHJlZkZvckV4dGVybmFsKG9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0LCBiQXN5bmM/OiBib29sZWFuKTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xuXG5cdGhyZWZGb3JFeHRlcm5hbEFzeW5jKG9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG5cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpOiBvYmplY3Q7XG5cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpOiBQcm9taXNlPGFueT47XG5cblx0aXNOYXZpZ2F0aW9uU3VwcG9ydGVkKG9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ/OiBvYmplY3QpOiBQcm9taXNlPGFueT47XG5cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpOiBib29sZWFuO1xuXG5cdGlzSW5pdGlhbE5hdmlnYXRpb25Bc3luYygpOiBQcm9taXNlPGFueT47XG5cblx0ZXhwYW5kQ29tcGFjdEhhc2goc0hhc2hGcmFnbWVudDogc3RyaW5nKTogYW55O1xuXG5cdHBhcnNlU2hlbGxIYXNoKHNIYXNoOiBzdHJpbmcpOiBhbnk7XG5cblx0c3BsaXRIYXNoKHNIYXNoOiBzdHJpbmcpOiBvYmplY3Q7XG5cblx0Y29uc3RydWN0U2hlbGxIYXNoKG9OZXdTaGVsbEhhc2g6IG9iamVjdCk6IHN0cmluZztcblxuXHRzZXREaXJ0eUZsYWcoYkRpcnR5OiBib29sZWFuKTogdm9pZDtcblxuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRjcmVhdGVSZW5kZXJlcigpOiBvYmplY3Q7XG5cblx0Z2V0VXNlcigpOiBhbnk7XG5cblx0aGFzVVNoZWxsKCk6IGJvb2xlYW47XG5cblx0cmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0dW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRzZXRCYWNrTmF2aWdhdGlvbihmbkNhbGxCYWNrPzogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdHNldEhpZXJhcmNoeShhSGllcmFyY2h5TGV2ZWxzOiBBcnJheTxvYmplY3Q+KTogdm9pZDtcblxuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQ7XG5cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nO1xuXG5cdGdldFByaW1hcnlJbnRlbnQoc1NlbWFudGljT2JqZWN0OiBzdHJpbmcsIG1QYXJhbWV0ZXJzPzogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdHdhaXRGb3JQbHVnaW5zTG9hZCgpOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG4vKipcbiAqIE1vY2sgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNoZWxsU2VydmljZSBmb3IgT3BlbkZFXG4gKlxuICogQGltcGxlbWVudHMge0lTaGVsbFNlcnZpY2VzfVxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgU2hlbGxTZXJ2aWNlTW9jayBleHRlbmRzIFNlcnZpY2U8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPiBpbXBsZW1lbnRzIElTaGVsbFNlcnZpY2VzIHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPGFueT47XG5cdGluc3RhbmNlVHlwZSE6IHN0cmluZztcblxuXHRpbml0KCkge1xuXHRcdHRoaXMuaW5pdFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodGhpcyk7XG5cdFx0dGhpcy5pbnN0YW5jZVR5cGUgPSBcIm1vY2tcIjtcblx0fVxuXG5cdGdldExpbmtzKC8qb0FyZ3M6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG5cdH1cblxuXHRnZXRMaW5rc1dpdGhDYWNoZSgvKm9BcmdzOiBvYmplY3QqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuXHR9XG5cblx0dG9FeHRlcm5hbCgvKm9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ6IG9iamVjdCovKSB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0Z2V0U3RhcnR1cEFwcFN0YXRlKC8qb0FyZ3M6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuXHR9XG5cblx0YmFja1RvUHJldmlvdXNBcHAoKSB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0aHJlZkZvckV4dGVybmFsKC8qb0FyZ3M/OiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4qLykge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cblx0aHJlZkZvckV4dGVybmFsQXN5bmMoLypvQXJncz86IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRnZXRBcHBTdGF0ZSgvKm9Db21wb25lbnQ6IG9iamVjdCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZSgvKm9Db21wb25lbnQ6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRjcmVhdGVFbXB0eUFwcFN0YXRlQXN5bmMoLypvQ29tcG9uZW50OiBvYmplY3QqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0aXNOYXZpZ2F0aW9uU3VwcG9ydGVkKC8qb05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGlzSW5pdGlhbE5hdmlnYXRpb24oKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aXNJbml0aWFsTmF2aWdhdGlvbkFzeW5jKCkge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0ZXhwYW5kQ29tcGFjdEhhc2goLypzSGFzaEZyYWdtZW50OiBzdHJpbmcqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0cGFyc2VTaGVsbEhhc2goLypzSGFzaDogc3RyaW5nKi8pIHtcblx0XHRyZXR1cm4ge307XG5cdH1cblxuXHRzcGxpdEhhc2goLypzSGFzaDogc3RyaW5nKi8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGNvbnN0cnVjdFNoZWxsSGFzaCgvKm9OZXdTaGVsbEhhc2g6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHRzZXREaXJ0eUZsYWcoLypiRGlydHk6IGJvb2xlYW4qLykge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdHJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKC8qZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKi8pIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKC8qZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKi8pIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRjcmVhdGVSZW5kZXJlcigpIHtcblx0XHRyZXR1cm4ge307XG5cdH1cblxuXHRnZXRVc2VyKCkge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGhhc1VTaGVsbCgpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoLypmbk5hdkZpbHRlcjogRnVuY3Rpb24qLyk6IHZvaWQge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdHVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKC8qZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKi8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRzZXRCYWNrTmF2aWdhdGlvbigvKmZuQ2FsbEJhY2s/OiBGdW5jdGlvbiovKTogdm9pZCB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0c2V0SGllcmFyY2h5KC8qYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0PiovKTogdm9pZCB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0c2V0VGl0bGUoLypzVGl0bGU6IHN0cmluZyovKTogdm9pZCB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nIHtcblx0XHQvLyBpbiBjYXNlIHRoZXJlIGlzIG5vIHNoZWxsIHdlIHByb2JhYmx5IG5lZWQgdG8gbG9vayBhdCB0aGUgY2xhc3NlcyBiZWluZyBkZWZpbmVkIG9uIHRoZSBib2R5XG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2FwVWlTaXplQ296eVwiKSkge1xuXHRcdFx0cmV0dXJuIFwiY296eVwiO1xuXHRcdH0gZWxzZSBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJzYXBVaVNpemVDb21wYWN0XCIpKSB7XG5cdFx0XHRyZXR1cm4gXCJjb21wYWN0XCI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBcIlwiO1xuXHRcdH1cblx0fVxuXG5cdGdldFByaW1hcnlJbnRlbnQoLypzU2VtYW50aWNPYmplY3Q6IHN0cmluZywgbVBhcmFtZXRlcnM/OiBvYmplY3QqLyk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHR9XG5cblx0d2FpdEZvclBsdWdpbnNMb2FkKCkge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdH1cbn1cblxuLyoqXG4gKiBAdHlwZWRlZiBTaGVsbFNlcnZpY2VzU2V0dGluZ3NcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCB0eXBlIFNoZWxsU2VydmljZXNTZXR0aW5ncyA9IHtcblx0c2hlbGxDb250YWluZXI/OiBDb250YWluZXI7XG59O1xuXG4vKipcbiAqIFdyYXAgYSBKUXVlcnkgUHJvbWlzZSB3aXRoaW4gYSBuYXRpdmUge1Byb21pc2V9LlxuICpcbiAqIEB0ZW1wbGF0ZSB7b2JqZWN0fSBUXG4gKiBAcGFyYW0ganF1ZXJ5UHJvbWlzZSBUaGUgb3JpZ2luYWwganF1ZXJ5IHByb21pc2VcbiAqIEByZXR1cm5zIEEgbmF0aXZlIHByb21pc2Ugd3JhcHBpbmcgdGhlIHNhbWUgb2JqZWN0XG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiB3cmFwSlF1ZXJ5UHJvbWlzZTxUPihqcXVlcnlQcm9taXNlOiBqUXVlcnkuUHJvbWlzZSk6IFByb21pc2U8VD4ge1xuXHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdGpxdWVyeVByb21pc2UuZG9uZShyZXNvbHZlIGFzIGFueSkuZmFpbChyZWplY3QpO1xuXHR9KTtcbn1cblxuLyoqXG4gKiBCYXNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTaGVsbFNlcnZpY2VzXG4gKlxuICogQGltcGxlbWVudHMge0lTaGVsbFNlcnZpY2VzfVxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgU2hlbGxTZXJ2aWNlcyBleHRlbmRzIFNlcnZpY2U8UmVxdWlyZWQ8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPj4gaW1wbGVtZW50cyBJU2hlbGxTZXJ2aWNlcyB7XG5cdHJlc29sdmVGbjogYW55O1xuXHRyZWplY3RGbjogYW55O1xuXHRpbml0UHJvbWlzZSE6IFByb21pc2U8YW55Pjtcblx0Ly8gITogbWVhbnMgdGhhdCB3ZSBrbm93IGl0IHdpbGwgYmUgYXNzaWduZWQgYmVmb3JlIHVzYWdlXG5cdGNyb3NzQXBwTmF2U2VydmljZSE6IENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uO1xuXHR1cmxQYXJzaW5nU2VydmljZSE6IFVSTFBhcnNpbmc7XG5cdHNoZWxsTmF2aWdhdGlvbiE6IFNoZWxsTmF2aWdhdGlvbjtcblx0c2hlbGxQbHVnaW5NYW5hZ2VyIToge1xuXHRcdGdldFBsdWdpbkxvYWRpbmdQcm9taXNlKGNhdGVnb3J5OiBzdHJpbmcpOiBqUXVlcnkuUHJvbWlzZTtcblx0fTtcblx0b1NoZWxsQ29udGFpbmVyITogQ29udGFpbmVyO1xuXHRzaGVsbFVJU2VydmljZSE6IGFueTtcblx0aW5zdGFuY2VUeXBlITogc3RyaW5nO1xuXHRsaW5rc0NhY2hlITogYW55O1xuXHRmbkZpbmRTZW1hbnRpY09iamVjdHNJbkNhY2hlOiBhbnk7XG5cblx0aW5pdCgpIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXHRcdGNvbnN0IG9Db21wb25lbnQgPSBvQ29udGV4dC5zY29wZU9iamVjdCBhcyBhbnk7XG5cdFx0dGhpcy5vU2hlbGxDb250YWluZXIgPSBvQ29udGV4dC5zZXR0aW5ncy5zaGVsbENvbnRhaW5lcjtcblx0XHR0aGlzLmluc3RhbmNlVHlwZSA9IFwicmVhbFwiO1xuXHRcdHRoaXMubGlua3NDYWNoZSA9IHt9O1xuXHRcdHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZSA9IGZ1bmN0aW9uIChvQXJnczogYW55KTogb2JqZWN0IHtcblx0XHRcdGNvbnN0IF9vQXJnczogYW55ID0gb0FyZ3M7XG5cdFx0XHRjb25zdCBhQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRjb25zdCBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IF9vQXJncy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoISFfb0FyZ3NbaV1bMF0gJiYgISFfb0FyZ3NbaV1bMF0uc2VtYW50aWNPYmplY3QpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0pIHtcblx0XHRcdFx0XHRcdGFDYWNoZWRTZW1hbnRpY09iamVjdHMucHVzaCh0aGlzLmxpbmtzQ2FjaGVbX29BcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XS5saW5rcyk7XG5cdFx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkob0FyZ3NbaV1bMF0sIFwibGlua3NcIiwge1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTogdGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0ubGlua3Ncblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLnB1c2goX29BcmdzW2ldKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB7IG9sZEFyZ3M6IG9BcmdzLCBuZXdBcmdzOiBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLCBjYWNoZWRMaW5rczogYUNhY2hlZFNlbWFudGljT2JqZWN0cyB9O1xuXHRcdH07XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMucmVzb2x2ZUZuID0gcmVzb2x2ZTtcblx0XHRcdHRoaXMucmVqZWN0Rm4gPSByZWplY3Q7XG5cdFx0fSk7XG5cdFx0Y29uc3Qgb0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblwiKTtcblx0XHRjb25zdCBvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlID0gdGhpcy5vU2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiVVJMUGFyc2luZ1wiKTtcblx0XHRjb25zdCBvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJTaGVsbE5hdmlnYXRpb25cIik7XG5cdFx0Y29uc3Qgb1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJQbHVnaW5NYW5hZ2VyXCIpO1xuXHRcdGNvbnN0IG9TaGVsbFVJU2VydmljZVByb21pc2UgPSBvQ29tcG9uZW50LmdldFNlcnZpY2UoXCJTaGVsbFVJU2VydmljZVwiKTtcblx0XHRQcm9taXNlLmFsbChbXG5cdFx0XHRvQ3Jvc3NBcHBOYXZTZXJ2aWNlUHJvbWlzZSxcblx0XHRcdG9VcmxQYXJzaW5nU2VydmljZVByb21pc2UsXG5cdFx0XHRvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UsXG5cdFx0XHRvU2hlbGxVSVNlcnZpY2VQcm9taXNlLFxuXHRcdFx0b1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2Vcblx0XHRdKVxuXHRcdFx0LnRoZW4oKFtvQ3Jvc3NBcHBOYXZTZXJ2aWNlLCBvVXJsUGFyc2luZ1NlcnZpY2UsIG9TaGVsbE5hdmlnYXRpb24sIG9TaGVsbFVJU2VydmljZSwgb1NoZWxsUGx1Z2luTWFuYWdlcl0pID0+IHtcblx0XHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgPSBvQ3Jvc3NBcHBOYXZTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnVybFBhcnNpbmdTZXJ2aWNlID0gb1VybFBhcnNpbmdTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnNoZWxsTmF2aWdhdGlvbiA9IG9TaGVsbE5hdmlnYXRpb247XG5cdFx0XHRcdHRoaXMuc2hlbGxVSVNlcnZpY2UgPSBvU2hlbGxVSVNlcnZpY2U7XG5cdFx0XHRcdHRoaXMuc2hlbGxQbHVnaW5NYW5hZ2VyID0gb1NoZWxsUGx1Z2luTWFuYWdlcjtcblx0XHRcdFx0dGhpcy5yZXNvbHZlRm4oKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2godGhpcy5yZWplY3RGbik7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb25cblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzKG9BcmdzOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHR0aGlzLmNyb3NzQXBwTmF2U2VydmljZVxuXHRcdFx0XHQuZ2V0TGlua3Mob0FyZ3MpXG5cdFx0XHRcdC5mYWlsKChvRXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYCR7b0Vycm9yfSBzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzRmFjdG9yeS5nZXRMaW5rc2ApKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4ocmVzb2x2ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb24gaW4gY2FjaGVcblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzV2l0aENhY2hlKG9BcmdzOiBvYmplY3QpOiBQcm9taXNlPGFueVtdPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0aWYgKChvQXJncyBhcyBPYmplY3RbXSkubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHJlc29sdmUoW10pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3Qgb0NhY2hlUmVzdWx0cyA9IHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZShvQXJncyk7XG5cblx0XHRcdFx0aWYgKG9DYWNoZVJlc3VsdHMubmV3QXJncy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXNvbHZlKG9DYWNoZVJlc3VsdHMuY2FjaGVkTGlua3MpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0XHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlXG5cdFx0XHRcdFx0XHQuZ2V0TGlua3Mob0NhY2hlUmVzdWx0cy5uZXdBcmdzKVxuXHRcdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYCR7b0Vycm9yfSBzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzRmFjdG9yeS5nZXRMaW5rc1dpdGhDYWNoZWApKTtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQudGhlbigoYUxpbmtzOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGFMaW5rcy5sZW5ndGggIT09IDApIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBvU2VtYW50aWNPYmplY3RzTGlua3M6IGFueSA9IHt9O1xuXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhTGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhTGlua3NbaV0ubGVuZ3RoID4gMCAmJiBvQ2FjaGVSZXN1bHRzLm5ld0FyZ3NbaV1bMF0ubGlua3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvU2VtYW50aWNPYmplY3RzTGlua3Nbb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5rczogYUxpbmtzW2ldXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubGlua3NDYWNoZSA9IE9iamVjdC5hc3NpZ24odGhpcy5saW5rc0NhY2hlLCBvU2VtYW50aWNPYmplY3RzTGlua3MpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGlmIChvQ2FjaGVSZXN1bHRzLmNhY2hlZExpbmtzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYUxpbmtzKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBhTWVyZ2VkTGlua3MgPSBbXTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgaiA9IDA7XG5cblx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBrID0gMDsgayA8IG9DYWNoZVJlc3VsdHMub2xkQXJncy5sZW5ndGg7IGsrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGogPCBhTGlua3MubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhTGlua3Nbal0ubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5zZW1hbnRpY09iamVjdCA9PT0gb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2pdWzBdLnNlbWFudGljT2JqZWN0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKGFMaW5rc1tqXSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aisrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYU1lcmdlZExpbmtzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIHJldHJpZXZlIHRoZSBTaGVsbENvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIHNhcC51c2hlbGwuY29udGFpbmVyXG5cdCAqIEByZXR1cm5zIE9iamVjdCB3aXRoIHByZWRlZmluZWQgc2hlbGxDb250YWluZXIgbWV0aG9kc1xuXHQgKi9cblx0Z2V0U2hlbGxDb250YWluZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMub1NoZWxsQ29udGFpbmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCB0b0V4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggTmF2aWdhdGlvbiBBcmd1bWVudHMgYW5kIG9Db21wb25lbnQuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb05hdkFyZ3VtZW50c0FyciBBbmRcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+dG9FeHRlcm5hbCBhcmd1bWVudHNcblx0ICovXG5cdHRvRXh0ZXJuYWwob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KTogdm9pZCB7XG5cdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UudG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHRhcmdldCBzdGFydHVwQXBwU3RhdGVcblx0ICogV2lsbCBjaGVjayB0aGUgZXhpc3RhbmNlIG9mIHRoZSBTaGVsbENvbnRhaW5lciBhbmQgcmV0cmlldmUgdGhlIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uXG5cdCAqIHNlcnZpY2UgcmVmZXJlbmNlIGNhbGwgdGhlIGdldFN0YXJ0dXBBcHBTdGF0ZSBtZXRob2QuIEluIGNhc2Ugc2VydmljZSBpcyBub3QgYXZhaWxhYmxlIG9yIGFueSBleGNlcHRpb25cblx0ICogbWV0aG9kIHRocm93cyBleGNlcHRpb24gZXJyb3IgaW4gY29uc29sZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQXJncyBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5nZXRTdGFydHVwQXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBPYmplY3Rcblx0ICovXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZShvQXJnczogQ29tcG9uZW50KTogUHJvbWlzZTx1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGU+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gSlF1ZXJ5IFByb21pc2UgYmVoYXZlcyBkaWZmZXJlbnRseVxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHQodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgYXMgYW55KVxuXHRcdFx0XHQuZ2V0U3RhcnR1cEFwcFN0YXRlKG9BcmdzKVxuXHRcdFx0XHQuZmFpbCgob0Vycm9yOiBhbnkpID0+IHtcblx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGAke29FcnJvcn0gc2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc0ZhY3RvcnkuZ2V0U3RhcnR1cEFwcFN0YXRlYCkpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQudGhlbigoc3RhcnR1cEFwcFN0YXRlOiB1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGUpID0+IHJlc29sdmUoc3RhcnR1cEFwcFN0YXRlKSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGJhY2tUb1ByZXZpb3VzQXBwIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBTb21ldGhpbmcgdGhhdCBpbmRpY2F0ZSB3ZSd2ZSBuYXZpZ2F0ZWRcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRiYWNrVG9QcmV2aW91c0FwcCgpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuYmFja1RvUHJldmlvdXNBcHAoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgaHJlZkZvckV4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9BcmdzIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50IFRoZSBhcHBDb21wb25lbnRcblx0ICogQHBhcmFtIGJBc3luYyBXaGV0aGVyIHRoaXMgY2FsbCBzaG91bGQgYmUgYXN5bmMgb3Igbm90XG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmhyZWZGb3JFeHRlcm5hbCBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsKG9BcmdzOiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4pIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaHJlZkZvckV4dGVybmFsKG9BcmdzLCBvQ29tcG9uZW50IGFzIG9iamVjdCwgISFiQXN5bmMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBocmVmRm9yRXh0ZXJuYWwgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogQHBhcmFtIG9Db21wb25lbnQgVGhlIGFwcENvbXBvbmVudFxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5ocmVmRm9yRXh0ZXJuYWxBc3luYyBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsQXN5bmMob0FyZ3M6IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5ocmVmRm9yRXh0ZXJuYWxBc3luYyhvQXJncywgb0NvbXBvbmVudCBhcyBvYmplY3QpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBnZXRBcHBTdGF0ZSBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIG9Db21wb25lbnQgYW5kIG9BcHBTdGF0ZUtleS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50XG5cdCAqIEBwYXJhbSBzQXBwU3RhdGVLZXkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0QXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBvYmplY3Rcblx0ICovXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gd3JhcEpRdWVyeVByb21pc2UoKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlIGFzIGFueSkuZ2V0QXBwU3RhdGUob0NvbXBvbmVudCwgc0FwcFN0YXRlS2V5KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNyZWF0ZUVtcHR5QXBwU3RhdGUgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2Ugd2l0aCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Y3JlYXRlRW1wdHlBcHBTdGF0ZSBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpIHtcblx0XHRyZXR1cm4gKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlIGFzIGFueSkuY3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgY3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggb0NvbXBvbmVudC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50IENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmNyZWF0ZUVtcHR5QXBwU3RhdGVBc3luYyBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jKG9Db21wb25lbnQ6IENvbXBvbmVudCkge1xuXHRcdHJldHVybiAodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgYXMgYW55KS5jcmVhdGVFbXB0eUFwcFN0YXRlQXN5bmMob0NvbXBvbmVudCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzTmF2aWdhdGlvblN1cHBvcnRlZCBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIE5hdmlnYXRpb24gQXJndW1lbnRzIGFuZCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9OYXZBcmd1bWVudHNBcnJcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+aXNOYXZpZ2F0aW9uU3VwcG9ydGVkIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIHdyYXBKUXVlcnlQcm9taXNlKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmlzTmF2aWdhdGlvblN1cHBvcnRlZChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzSW5pdGlhbE5hdmlnYXRpb24gbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gYm9vbGVhblxuXHQgKi9cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaXNJbml0aWFsTmF2aWdhdGlvbigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBpc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gYm9vbGVhblxuXHQgKi9cblx0aXNJbml0aWFsTmF2aWdhdGlvbkFzeW5jKCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5pc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZXhwYW5kQ29tcGFjdEhhc2ggbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBzSGFzaEZyYWdtZW50IEFuIChpbnRlcm5hbCBmb3JtYXQpIHNoZWxsIGhhc2hcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHRoZSBzdWNjZXNzIGhhbmRsZXIgb2YgdGhlIHJlc29sdmUgcHJvbWlzZSBnZXQgYW4gZXhwYW5kZWQgc2hlbGwgaGFzaCBhcyBmaXJzdCBhcmd1bWVudFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdGV4cGFuZENvbXBhY3RIYXNoKHNIYXNoRnJhZ21lbnQ6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5leHBhbmRDb21wYWN0SGFzaChzSGFzaEZyYWdtZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgcGFyc2VTaGVsbEhhc2ggbWV0aG9kIG9mIFVSTFBhcnNpbmcgc2VydmljZSB3aXRoIGdpdmVuIHNIYXNoLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+cGFyc2VTaGVsbEhhc2ggYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdXJsXG5cdCAqL1xuXHRwYXJzZVNoZWxsSGFzaChzSGFzaDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMudXJsUGFyc2luZ1NlcnZpY2UucGFyc2VTaGVsbEhhc2goc0hhc2gpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzcGxpdEhhc2ggbWV0aG9kIG9mIFVSTFBhcnNpbmcgc2VydmljZSB3aXRoIGdpdmVuIHNIYXNoLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+c3BsaXRIYXNoIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRzcGxpdEhhc2goc0hhc2g6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLnVybFBhcnNpbmdTZXJ2aWNlLnNwbGl0SGFzaChzSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNvbnN0cnVjdFNoZWxsSGFzaCBtZXRob2Qgb2YgVVJMUGFyc2luZyBzZXJ2aWNlIHdpdGggZ2l2ZW4gc0hhc2guXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb05ld1NoZWxsSGFzaCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLlVSTFBhcnNpbmc9PmNvbnN0cnVjdFNoZWxsSGFzaCBhcmd1bWVudHNcblx0ICogQHJldHVybnMgU2hlbGwgSGFzaCBzdHJpbmdcblx0ICovXG5cdGNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gdGhpcy51cmxQYXJzaW5nU2VydmljZS5jb25zdHJ1Y3RTaGVsbEhhc2gob05ld1NoZWxsSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldERpcnR5RmxhZyBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBiRGlydHkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIuc2V0RGlydHlGbGFnIGFyZ3VtZW50c1xuXHQgKi9cblx0c2V0RGlydHlGbGFnKGJEaXJ0eTogYm9vbGVhbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLnNldERpcnR5RmxhZyhiRGlydHkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZSBwcm92aWRlciBjYWxsYmFjayBtZXRob2QuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gZm5EaXJ0eVN0YXRlUHJvdmlkZXIgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIucmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pIHtcblx0XHR0aGlzLm9TaGVsbENvbnRhaW5lci5yZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcik7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgbWV0aG9kIHdpdGggZ2l2ZW4gZGlydHkgc3RhdGUgcHJvdmlkZXIgY2FsbGJhY2sgbWV0aG9kLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIGZuRGlydHlTdGF0ZVByb3ZpZGVyIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mIHNhcC51c2hlbGwuQ29udGFpbmVyLmRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLmRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBjcmVhdGVSZW5kZXJlciBtZXRob2Qgb2YgdXNoZWxsIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgcmVuZGVyZXIgb2JqZWN0XG5cdCAqL1xuXHRjcmVhdGVSZW5kZXJlcigpIHtcblx0XHRyZXR1cm4gdGhpcy5vU2hlbGxDb250YWluZXIuY3JlYXRlUmVuZGVyZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZ2V0VXNlciBtZXRob2Qgb2YgdXNoZWxsIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgVXNlciBvYmplY3Rcblx0ICovXG5cdGdldFVzZXIoKSB7XG5cdFx0cmV0dXJuICh0aGlzLm9TaGVsbENvbnRhaW5lciBhcyBhbnkpLmdldFVzZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNoZWNrIGlmIHVzaGVsbCBjb250YWluZXIgaXMgYXZhaWxhYmxlIG9yIG5vdC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZVxuXHQgKi9cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZuTmF2RmlsdGVyIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gcmVnaXN0ZXJcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKSB7XG5cdFx0KHRoaXMuc2hlbGxOYXZpZ2F0aW9uIGFzIGFueSkucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgdW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZuTmF2RmlsdGVyIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gdW5yZWdpc3RlclxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbikge1xuXHRcdCh0aGlzLnNoZWxsTmF2aWdhdGlvbiBhcyBhbnkpLnVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgc2V0QmFja05hdmlnYXRpb24gbWV0aG9kIG9mIFNoZWxsVUlTZXJ2aWNlXG5cdCAqIHRoYXQgZGlzcGxheXMgdGhlIGJhY2sgYnV0dG9uIGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBbZm5DYWxsQmFja10gQSBjYWxsYmFjayBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQgaW4gdGhlIFVJLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHNldEJhY2tOYXZpZ2F0aW9uKGZuQ2FsbEJhY2s/OiBGdW5jdGlvbik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjayk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldEhpZXJhcmNoeSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gaGllcmFyY2h5IGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBbYUhpZXJhcmNoeUxldmVsc10gQW4gYXJyYXkgcmVwcmVzZW50aW5nIGhpZXJhcmNoaWVzIG9mIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGFwcC5cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0Pik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0SGllcmFyY2h5KGFIaWVyYXJjaHlMZXZlbHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzZXRUaXRsZSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gdGl0bGUgaW4gdGhlIHNoZWxsIGhlYWRlci5cblx0ICpcblx0ICogQHBhcmFtIFtzVGl0bGVdIFRoZSBuZXcgdGl0bGUuIFRoZSBkZWZhdWx0IHRpdGxlIGlzIHNldCBpZiB0aGlzIGFyZ3VtZW50IGlzIG5vdCBnaXZlbi5cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0VGl0bGUoc1RpdGxlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnRseSBkZWZpbmVkIGNvbnRlbnQgZGVuc2l0eS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGNvbnRlbnQgZGVuc2l0eSB2YWx1ZVxuXHQgKi9cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gKHRoaXMub1NoZWxsQ29udGFpbmVyIGFzIGFueSkuZ2V0VXNlcigpLmdldENvbnRlbnREZW5zaXR5KCk7XG5cdH1cblxuXHQvKipcblx0ICogRm9yIGEgZ2l2ZW4gc2VtYW50aWMgb2JqZWN0LCB0aGlzIG1ldGhvZCBjb25zaWRlcnMgYWxsIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZW1hbnRpYyBvYmplY3QgYW5kXG5cdCAqIHJldHVybnMgdGhlIG9uZSB0YWdnZWQgYXMgYSBcInByaW1hcnlBY3Rpb25cIi4gSWYgbm8gaW5ib3VuZCB0YWdnZWQgYXMgXCJwcmltYXJ5QWN0aW9uXCIgZXhpc3RzLCB0aGVuIGl0IHJldHVybnNcblx0ICogdGhlIGludGVudCBvZiB0aGUgZmlyc3QgaW5ib3VuZCAoYWZ0ZXIgc29ydGluZyBoYXMgYmVlbiBhcHBsaWVkKSBtYXRjaGluZyB0aGUgYWN0aW9uIFwiZGlzcGxheUZhY3RTaGVldFwiLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3QuXG5cdCAqIEBwYXJhbSBtUGFyYW1ldGVycyBTZWUgI0Nyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uI2dldExpbmtzIGZvciBkZXNjcmlwdGlvbi5cblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGludGVudCBpZiBpdCBleGlzdHMuXG5cdCAqL1xuXHRnZXRQcmltYXJ5SW50ZW50KHNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2Vcblx0XHRcdFx0LmdldFByaW1hcnlJbnRlbnQoc1NlbWFudGljT2JqZWN0LCBtUGFyYW1ldGVycylcblx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgJHtvRXJyb3J9IHNhcC5mZS5jb3JlLnNlcnZpY2VzLlNoZWxsU2VydmljZXNGYWN0b3J5LmdldFByaW1hcnlJbnRlbnRgKSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKHJlc29sdmUpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdhaXQgZm9yIHRoZSByZW5kZXIgZXh0ZW5zaW9ucyBwbHVnaW4gdG8gYmUgbG9hZGVkLlxuXHQgKiBJZiB0cnVlIGlzIHJldHVybmVkIGJ5IHRoZSBwcm9taXNlIHdlIHdlcmUgYWJsZSB0byB3YWl0IGZvciBpdCwgb3RoZXJ3aXNlIHdlIGNvdWxkbid0IGFuZCBjYW5ub3QgcmVseSBvbiBpdC5cblx0ICovXG5cdHdhaXRGb3JQbHVnaW5zTG9hZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdGlmICghdGhpcy5zaGVsbFBsdWdpbk1hbmFnZXI/LmdldFBsdWdpbkxvYWRpbmdQcm9taXNlKSB7XG5cdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHRcdHRoaXMuc2hlbGxQbHVnaW5NYW5hZ2VyXG5cdFx0XHRcdFx0LmdldFBsdWdpbkxvYWRpbmdQcm9taXNlKFwiUmVuZGVyZXJFeHRlbnNpb25zXCIpXG5cdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogdW5rbm93bikgPT4ge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKG9FcnJvciBhcyBzdHJpbmcsIFwic2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc0ZhY3Rvcnkud2FpdEZvclBsdWdpbnNMb2FkXCIpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuXG4vKipcbiAqIFNlcnZpY2UgRmFjdG9yeSBmb3IgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzRmFjdG9yeSBleHRlbmRzIFNlcnZpY2VGYWN0b3J5PFNoZWxsU2VydmljZXNTZXR0aW5ncz4ge1xuXHQvKipcblx0ICogQ3JlYXRlcyBlaXRoZXIgYSBzdGFuZGFyZCBvciBhIG1vY2sgU2hlbGwgc2VydmljZSBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvU2VydmljZUNvbnRleHQgVGhlIHNoZWxsc2VydmljZSBjb250ZXh0XG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYSBzaGVsbCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uXG5cdCAqIEBzZWUgU2VydmljZUZhY3RvcnkjY3JlYXRlSW5zdGFuY2Vcblx0ICovXG5cdGNyZWF0ZUluc3RhbmNlKG9TZXJ2aWNlQ29udGV4dDogU2VydmljZUNvbnRleHQ8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPik6IFByb21pc2U8SVNoZWxsU2VydmljZXM+IHtcblx0XHRvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIChzYXAudXNoZWxsLkNvbnRhaW5lciBhcyBDb250YWluZXIpO1xuXHRcdGNvbnN0IG9TaGVsbFNlcnZpY2UgPSBvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXJcblx0XHRcdD8gbmV3IFNoZWxsU2VydmljZXMob1NlcnZpY2VDb250ZXh0IGFzIFNlcnZpY2VDb250ZXh0PFJlcXVpcmVkPFNoZWxsU2VydmljZXNTZXR0aW5ncz4+KVxuXHRcdFx0OiBuZXcgU2hlbGxTZXJ2aWNlTW9jayhvU2VydmljZUNvbnRleHQpO1xuXHRcdHJldHVybiBvU2hlbGxTZXJ2aWNlLmluaXRQcm9taXNlLnRoZW4oKCkgPT4ge1xuXHRcdFx0Ly8gRW5yaWNoIHRoZSBhcHBDb21wb25lbnQgd2l0aCB0aGlzIG1ldGhvZFxuXHRcdFx0KG9TZXJ2aWNlQ29udGV4dC5zY29wZU9iamVjdCBhcyBhbnkpLmdldFNoZWxsU2VydmljZXMgPSAoKSA9PiBvU2hlbGxTZXJ2aWNlO1xuXHRcdFx0cmV0dXJuIG9TaGVsbFNlcnZpY2U7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hlbGxTZXJ2aWNlc0ZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7OztFQStGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxJQU1NQSxnQkFBZ0I7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBQUEsT0FJckJDLElBQUksR0FBSixnQkFBTztNQUNOLElBQUksQ0FBQ0MsV0FBVyxHQUFHQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUM7TUFDeEMsSUFBSSxDQUFDQyxZQUFZLEdBQUcsTUFBTTtJQUMzQixDQUFDO0lBQUEsT0FFREMsUUFBUSxHQUFSLG1CQUFTO0lBQUEsRUFBbUI7TUFDM0IsT0FBT0gsT0FBTyxDQUFDQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFBQSxPQUVERyxpQkFBaUIsR0FBakIsNEJBQWtCO0lBQUEsRUFBbUI7TUFDcEMsT0FBT0osT0FBTyxDQUFDQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFBQSxPQUVESSxVQUFVLEdBQVYscUJBQVc7SUFBQSxFQUF5RDtNQUNuRTtJQUFBLENBQ0E7SUFBQSxPQUVEQyxrQkFBa0IsR0FBbEIsNkJBQW1CO0lBQUEsRUFBbUI7TUFDckMsT0FBT04sT0FBTyxDQUFDQyxPQUFPLENBQUNNLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBQUEsT0FFREMsaUJBQWlCLEdBQWpCLDZCQUFvQjtNQUNuQjtJQUFBLENBQ0E7SUFBQSxPQUVEQyxlQUFlLEdBQWYsMEJBQWdCO0lBQUEsRUFBMkQ7TUFDMUUsT0FBTyxFQUFFO0lBQ1YsQ0FBQztJQUFBLE9BRURDLG9CQUFvQixHQUFwQiwrQkFBcUI7SUFBQSxFQUF5QztNQUM3RCxPQUFPVixPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUEsT0FFRFUsV0FBVyxHQUFY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
732
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaGVsbFNlcnZpY2VNb2NrIiwiaW5pdCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJpbnN0YW5jZVR5cGUiLCJnZXRMaW5rcyIsImdldExpbmtzV2l0aENhY2hlIiwidG9FeHRlcm5hbCIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsInVuZGVmaW5lZCIsImJhY2tUb1ByZXZpb3VzQXBwIiwiaHJlZkZvckV4dGVybmFsIiwiaHJlZkZvckV4dGVybmFsQXN5bmMiLCJnZXRBcHBTdGF0ZSIsImNyZWF0ZUVtcHR5QXBwU3RhdGUiLCJjcmVhdGVFbXB0eUFwcFN0YXRlQXN5bmMiLCJpc05hdmlnYXRpb25TdXBwb3J0ZWQiLCJpc0luaXRpYWxOYXZpZ2F0aW9uIiwiaXNJbml0aWFsTmF2aWdhdGlvbkFzeW5jIiwiZXhwYW5kQ29tcGFjdEhhc2giLCJwYXJzZVNoZWxsSGFzaCIsInNwbGl0SGFzaCIsImNvbnN0cnVjdFNoZWxsSGFzaCIsInNldERpcnR5RmxhZyIsInJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyIiwiZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciIsImNyZWF0ZVJlbmRlcmVyIiwiZ2V0VXNlciIsImhhc1VTaGVsbCIsInJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlciIsInVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyIiwic2V0QmFja05hdmlnYXRpb24iLCJzZXRIaWVyYXJjaHkiLCJzZXRUaXRsZSIsImdldENvbnRlbnREZW5zaXR5IiwiZG9jdW1lbnQiLCJib2R5IiwiY2xhc3NMaXN0IiwiY29udGFpbnMiLCJnZXRQcmltYXJ5SW50ZW50Iiwid2FpdEZvclBsdWdpbnNMb2FkIiwiU2VydmljZSIsIndyYXBKUXVlcnlQcm9taXNlIiwianF1ZXJ5UHJvbWlzZSIsInJlamVjdCIsImRvbmUiLCJmYWlsIiwiU2hlbGxTZXJ2aWNlcyIsIm9Db250ZXh0IiwiZ2V0Q29udGV4dCIsIm9Db21wb25lbnQiLCJzY29wZU9iamVjdCIsIm9TaGVsbENvbnRhaW5lciIsInNldHRpbmdzIiwic2hlbGxDb250YWluZXIiLCJsaW5rc0NhY2hlIiwiZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZSIsIm9BcmdzIiwiX29BcmdzIiwiYUNhY2hlZFNlbWFudGljT2JqZWN0cyIsImFOb25DYWNoZWRTZW1hbnRpY09iamVjdHMiLCJpIiwibGVuZ3RoIiwic2VtYW50aWNPYmplY3QiLCJwdXNoIiwibGlua3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwib2xkQXJncyIsIm5ld0FyZ3MiLCJjYWNoZWRMaW5rcyIsInJlc29sdmVGbiIsInJlamVjdEZuIiwib0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UiLCJnZXRTZXJ2aWNlQXN5bmMiLCJvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlIiwib1NoZWxsTmF2aWdhdGlvblNlcnZpY2VQcm9taXNlIiwib1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2UiLCJvU2hlbGxVSVNlcnZpY2VQcm9taXNlIiwiZ2V0U2VydmljZSIsImFsbCIsInRoZW4iLCJvQ3Jvc3NBcHBOYXZTZXJ2aWNlIiwib1VybFBhcnNpbmdTZXJ2aWNlIiwib1NoZWxsTmF2aWdhdGlvbiIsIm9TaGVsbFVJU2VydmljZSIsIm9TaGVsbFBsdWdpbk1hbmFnZXIiLCJjcm9zc0FwcE5hdlNlcnZpY2UiLCJ1cmxQYXJzaW5nU2VydmljZSIsInNoZWxsTmF2aWdhdGlvbiIsInNoZWxsVUlTZXJ2aWNlIiwic2hlbGxQbHVnaW5NYW5hZ2VyIiwiY2F0Y2giLCJvRXJyb3IiLCJFcnJvciIsIm9DYWNoZVJlc3VsdHMiLCJhTGlua3MiLCJvU2VtYW50aWNPYmplY3RzTGlua3MiLCJhc3NpZ24iLCJhTWVyZ2VkTGlua3MiLCJqIiwiayIsImdldFNoZWxsQ29udGFpbmVyIiwib05hdkFyZ3VtZW50c0FyciIsInN0YXJ0dXBBcHBTdGF0ZSIsImJBc3luYyIsInNBcHBTdGF0ZUtleSIsInNIYXNoRnJhZ21lbnQiLCJzSGFzaCIsIm9OZXdTaGVsbEhhc2giLCJiRGlydHkiLCJmbkRpcnR5U3RhdGVQcm92aWRlciIsImZuTmF2RmlsdGVyIiwiZm5DYWxsQmFjayIsImFIaWVyYXJjaHlMZXZlbHMiLCJzVGl0bGUiLCJzU2VtYW50aWNPYmplY3QiLCJtUGFyYW1ldGVycyIsImdldFBsdWdpbkxvYWRpbmdQcm9taXNlIiwiTG9nIiwiZXJyb3IiLCJTaGVsbFNlcnZpY2VzRmFjdG9yeSIsImNyZWF0ZUluc3RhbmNlIiwib1NlcnZpY2VDb250ZXh0Iiwic2FwIiwidXNoZWxsIiwiQ29udGFpbmVyIiwib1NoZWxsU2VydmljZSIsImdldFNoZWxsU2VydmljZXMiLCJTZXJ2aWNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hlbGxTZXJ2aWNlc0ZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IFNlcnZpY2UgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSBDb250YWluZXIgZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXMvQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlcy9Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblwiO1xuaW1wb3J0IHR5cGUgU2hlbGxOYXZpZ2F0aW9uIGZyb20gXCJzYXAvdXNoZWxsL3NlcnZpY2VzL1NoZWxsTmF2aWdhdGlvblwiO1xuaW1wb3J0IHR5cGUgVVJMUGFyc2luZyBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlcy9VUkxQYXJzaW5nXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBTdGFydHVwQXBwU3RhdGUgPSB7XG5cdGdldERhdGEoKToge1xuXHRcdHNlbGVjdGlvblZhcmlhbnQ/OiB7XG5cdFx0XHRTZWxlY3RPcHRpb25zPzoge1xuXHRcdFx0XHRQcm9wZXJ0eU5hbWU6IHN0cmluZztcblx0XHRcdFx0UmFuZ2VzOiB7XG5cdFx0XHRcdFx0T3B0aW9uOiBzdHJpbmc7XG5cdFx0XHRcdFx0U2lnbjogc3RyaW5nO1xuXHRcdFx0XHRcdExvdzogc3RyaW5nO1xuXHRcdFx0XHR9W107XG5cdFx0XHR9W107XG5cdFx0fTtcblx0fTtcbn07XG4vKipcbiAqIEBpbnRlcmZhY2UgSVNoZWxsU2VydmljZXNcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNoZWxsU2VydmljZXMge1xuXHRpbml0UHJvbWlzZTogUHJvbWlzZTxJU2hlbGxTZXJ2aWNlcz47XG5cdGluc3RhbmNlVHlwZTogc3RyaW5nO1xuXHRjcm9zc0FwcE5hdlNlcnZpY2U/OiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbjtcblx0Z2V0TGlua3Mob0FyZ3M6IG9iamVjdCk6IFByb21pc2U8YW55PjtcblxuXHRnZXRMaW5rc1dpdGhDYWNoZShvQXJnczogb2JqZWN0KTogUHJvbWlzZTxhbnlbXT47XG5cblx0dG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QpOiB2b2lkO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZShvQXJnczogb2JqZWN0KTogUHJvbWlzZTx1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGU+O1xuXG5cdGJhY2tUb1ByZXZpb3VzQXBwKCk6IHZvaWQ7XG5cblx0aHJlZkZvckV4dGVybmFsKG9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0LCBiQXN5bmM/OiBib29sZWFuKTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xuXG5cdGhyZWZGb3JFeHRlcm5hbEFzeW5jKG9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG5cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpOiBvYmplY3Q7XG5cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpOiBQcm9taXNlPGFueT47XG5cblx0aXNOYXZpZ2F0aW9uU3VwcG9ydGVkKG9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ/OiBvYmplY3QpOiBQcm9taXNlPGFueT47XG5cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpOiBib29sZWFuO1xuXG5cdGlzSW5pdGlhbE5hdmlnYXRpb25Bc3luYygpOiBQcm9taXNlPGFueT47XG5cblx0ZXhwYW5kQ29tcGFjdEhhc2goc0hhc2hGcmFnbWVudDogc3RyaW5nKTogYW55O1xuXG5cdHBhcnNlU2hlbGxIYXNoKHNIYXNoOiBzdHJpbmcpOiBhbnk7XG5cblx0c3BsaXRIYXNoKHNIYXNoOiBzdHJpbmcpOiBvYmplY3Q7XG5cblx0Y29uc3RydWN0U2hlbGxIYXNoKG9OZXdTaGVsbEhhc2g6IG9iamVjdCk6IHN0cmluZztcblxuXHRzZXREaXJ0eUZsYWcoYkRpcnR5OiBib29sZWFuKTogdm9pZDtcblxuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRjcmVhdGVSZW5kZXJlcigpOiBvYmplY3Q7XG5cblx0Z2V0VXNlcigpOiBhbnk7XG5cblx0aGFzVVNoZWxsKCk6IGJvb2xlYW47XG5cblx0cmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0dW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRzZXRCYWNrTmF2aWdhdGlvbihmbkNhbGxCYWNrPzogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdHNldEhpZXJhcmNoeShhSGllcmFyY2h5TGV2ZWxzOiBBcnJheTxvYmplY3Q+KTogdm9pZDtcblxuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQ7XG5cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nO1xuXG5cdGdldFByaW1hcnlJbnRlbnQoc1NlbWFudGljT2JqZWN0OiBzdHJpbmcsIG1QYXJhbWV0ZXJzPzogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdHdhaXRGb3JQbHVnaW5zTG9hZCgpOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG4vKipcbiAqIE1vY2sgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNoZWxsU2VydmljZSBmb3IgT3BlbkZFXG4gKlxuICogQGltcGxlbWVudHMge0lTaGVsbFNlcnZpY2VzfVxuICogQHByaXZhdGVcbiAqL1xuY2xhc3MgU2hlbGxTZXJ2aWNlTW9jayBleHRlbmRzIFNlcnZpY2U8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPiBpbXBsZW1lbnRzIElTaGVsbFNlcnZpY2VzIHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPGFueT47XG5cblx0aW5zdGFuY2VUeXBlITogc3RyaW5nO1xuXG5cdGluaXQoKSB7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0XHR0aGlzLmluc3RhbmNlVHlwZSA9IFwibW9ja1wiO1xuXHR9XG5cblx0Z2V0TGlua3MoLypvQXJnczogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcblx0fVxuXG5cdGdldExpbmtzV2l0aENhY2hlKC8qb0FyZ3M6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG5cdH1cblxuXHR0b0V4dGVybmFsKC8qb05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0Ki8pIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRnZXRTdGFydHVwQXBwU3RhdGUoLypvQXJnczogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG5cdH1cblxuXHRiYWNrVG9QcmV2aW91c0FwcCgpIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRocmVmRm9yRXh0ZXJuYWwoLypvQXJncz86IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCwgYkFzeW5jPzogYm9vbGVhbiovKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHRocmVmRm9yRXh0ZXJuYWxBc3luYygvKm9BcmdzPzogb2JqZWN0LCBvQ29tcG9uZW50Pzogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGdldEFwcFN0YXRlKC8qb0NvbXBvbmVudDogb2JqZWN0LCBzQXBwU3RhdGVLZXk6IHN0cmluZyovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRjcmVhdGVFbXB0eUFwcFN0YXRlKC8qb0NvbXBvbmVudDogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGNyZWF0ZUVtcHR5QXBwU3RhdGVBc3luYygvKm9Db21wb25lbnQ6IG9iamVjdCovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQoLypvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMoKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRleHBhbmRDb21wYWN0SGFzaCgvKnNIYXNoRnJhZ21lbnQ6IHN0cmluZyovKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRwYXJzZVNoZWxsSGFzaCgvKnNIYXNoOiBzdHJpbmcqLykge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdHNwbGl0SGFzaCgvKnNIYXNoOiBzdHJpbmcqLykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0Y29uc3RydWN0U2hlbGxIYXNoKC8qb05ld1NoZWxsSGFzaDogb2JqZWN0Ki8pIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdHNldERpcnR5RmxhZygvKmJEaXJ0eTogYm9vbGVhbiovKSB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0cmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoLypmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24qLykge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoLypmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24qLykge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdGNyZWF0ZVJlbmRlcmVyKCkge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGdldFVzZXIoKSB7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG5cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcigvKmZuTmF2RmlsdGVyOiBGdW5jdGlvbiovKTogdm9pZCB7XG5cdFx0LyogRG8gTm90aGluZyAqL1xuXHR9XG5cblx0dW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoLypmbk5hdkZpbHRlcjogRnVuY3Rpb24qLyk6IHZvaWQge1xuXHRcdC8qIERvIE5vdGhpbmcgKi9cblx0fVxuXG5cdHNldEJhY2tOYXZpZ2F0aW9uKC8qZm5DYWxsQmFjaz86IEZ1bmN0aW9uKi8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRzZXRIaWVyYXJjaHkoLyphSGllcmFyY2h5TGV2ZWxzOiBBcnJheTxvYmplY3Q+Ki8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRzZXRUaXRsZSgvKnNUaXRsZTogc3RyaW5nKi8pOiB2b2lkIHtcblx0XHQvKiBEbyBOb3RoaW5nICovXG5cdH1cblxuXHRnZXRDb250ZW50RGVuc2l0eSgpOiBzdHJpbmcge1xuXHRcdC8vIGluIGNhc2UgdGhlcmUgaXMgbm8gc2hlbGwgd2UgcHJvYmFibHkgbmVlZCB0byBsb29rIGF0IHRoZSBjbGFzc2VzIGJlaW5nIGRlZmluZWQgb24gdGhlIGJvZHlcblx0XHRpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJzYXBVaVNpemVDb3p5XCIpKSB7XG5cdFx0XHRyZXR1cm4gXCJjb3p5XCI7XG5cdFx0fSBlbHNlIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhcInNhcFVpU2l6ZUNvbXBhY3RcIikpIHtcblx0XHRcdHJldHVybiBcImNvbXBhY3RcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0fVxuXHR9XG5cblx0Z2V0UHJpbWFyeUludGVudCgvKnNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCovKTogUHJvbWlzZTxhbnk+IHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdH1cblxuXHR3YWl0Rm9yUGx1Z2luc0xvYWQoKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcblx0fVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIFNoZWxsU2VydmljZXNTZXR0aW5nc1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IHR5cGUgU2hlbGxTZXJ2aWNlc1NldHRpbmdzID0ge1xuXHRzaGVsbENvbnRhaW5lcj86IENvbnRhaW5lcjtcbn07XG5cbi8qKlxuICogV3JhcCBhIEpRdWVyeSBQcm9taXNlIHdpdGhpbiBhIG5hdGl2ZSB7UHJvbWlzZX0uXG4gKlxuICogQHRlbXBsYXRlIHtvYmplY3R9IFRcbiAqIEBwYXJhbSBqcXVlcnlQcm9taXNlIFRoZSBvcmlnaW5hbCBqcXVlcnkgcHJvbWlzZVxuICogQHJldHVybnMgQSBuYXRpdmUgcHJvbWlzZSB3cmFwcGluZyB0aGUgc2FtZSBvYmplY3RcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHdyYXBKUXVlcnlQcm9taXNlPFQ+KGpxdWVyeVByb21pc2U6IGpRdWVyeS5Qcm9taXNlKTogUHJvbWlzZTxUPiB7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0anF1ZXJ5UHJvbWlzZS5kb25lKHJlc29sdmUgYXMgYW55KS5mYWlsKHJlamVjdCk7XG5cdH0pO1xufVxuXG4vKipcbiAqIEJhc2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAaW1wbGVtZW50cyB7SVNoZWxsU2VydmljZXN9XG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzIGV4dGVuZHMgU2VydmljZTxSZXF1aXJlZDxTaGVsbFNlcnZpY2VzU2V0dGluZ3M+PiBpbXBsZW1lbnRzIElTaGVsbFNlcnZpY2VzIHtcblx0cmVzb2x2ZUZuOiBhbnk7XG5cblx0cmVqZWN0Rm46IGFueTtcblxuXHRpbml0UHJvbWlzZSE6IFByb21pc2U8YW55PjtcblxuXHQvLyAhOiBtZWFucyB0aGF0IHdlIGtub3cgaXQgd2lsbCBiZSBhc3NpZ25lZCBiZWZvcmUgdXNhZ2Vcblx0Y3Jvc3NBcHBOYXZTZXJ2aWNlITogQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb247XG5cblx0dXJsUGFyc2luZ1NlcnZpY2UhOiBVUkxQYXJzaW5nO1xuXG5cdHNoZWxsTmF2aWdhdGlvbiE6IFNoZWxsTmF2aWdhdGlvbjtcblxuXHRzaGVsbFBsdWdpbk1hbmFnZXIhOiB7XG5cdFx0Z2V0UGx1Z2luTG9hZGluZ1Byb21pc2UoY2F0ZWdvcnk6IHN0cmluZyk6IGpRdWVyeS5Qcm9taXNlO1xuXHR9O1xuXG5cdG9TaGVsbENvbnRhaW5lciE6IENvbnRhaW5lcjtcblxuXHRzaGVsbFVJU2VydmljZSE6IGFueTtcblxuXHRpbnN0YW5jZVR5cGUhOiBzdHJpbmc7XG5cblx0bGlua3NDYWNoZSE6IGFueTtcblxuXHRmbkZpbmRTZW1hbnRpY09iamVjdHNJbkNhY2hlOiBhbnk7XG5cblx0aW5pdCgpIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXHRcdGNvbnN0IG9Db21wb25lbnQgPSBvQ29udGV4dC5zY29wZU9iamVjdCBhcyBhbnk7XG5cdFx0dGhpcy5vU2hlbGxDb250YWluZXIgPSBvQ29udGV4dC5zZXR0aW5ncy5zaGVsbENvbnRhaW5lcjtcblx0XHR0aGlzLmluc3RhbmNlVHlwZSA9IFwicmVhbFwiO1xuXHRcdHRoaXMubGlua3NDYWNoZSA9IHt9O1xuXHRcdHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZSA9IGZ1bmN0aW9uIChvQXJnczogYW55KTogb2JqZWN0IHtcblx0XHRcdGNvbnN0IF9vQXJnczogYW55ID0gb0FyZ3M7XG5cdFx0XHRjb25zdCBhQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRjb25zdCBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IF9vQXJncy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoISFfb0FyZ3NbaV1bMF0gJiYgISFfb0FyZ3NbaV1bMF0uc2VtYW50aWNPYmplY3QpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0pIHtcblx0XHRcdFx0XHRcdGFDYWNoZWRTZW1hbnRpY09iamVjdHMucHVzaCh0aGlzLmxpbmtzQ2FjaGVbX29BcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XS5saW5rcyk7XG5cdFx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkob0FyZ3NbaV1bMF0sIFwibGlua3NcIiwge1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTogdGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0ubGlua3Ncblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLnB1c2goX29BcmdzW2ldKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB7IG9sZEFyZ3M6IG9BcmdzLCBuZXdBcmdzOiBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLCBjYWNoZWRMaW5rczogYUNhY2hlZFNlbWFudGljT2JqZWN0cyB9O1xuXHRcdH07XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMucmVzb2x2ZUZuID0gcmVzb2x2ZTtcblx0XHRcdHRoaXMucmVqZWN0Rm4gPSByZWplY3Q7XG5cdFx0fSk7XG5cdFx0Y29uc3Qgb0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblwiKTtcblx0XHRjb25zdCBvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlID0gdGhpcy5vU2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiVVJMUGFyc2luZ1wiKTtcblx0XHRjb25zdCBvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJTaGVsbE5hdmlnYXRpb25cIik7XG5cdFx0Y29uc3Qgb1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJQbHVnaW5NYW5hZ2VyXCIpO1xuXHRcdGNvbnN0IG9TaGVsbFVJU2VydmljZVByb21pc2UgPSBvQ29tcG9uZW50LmdldFNlcnZpY2UoXCJTaGVsbFVJU2VydmljZVwiKTtcblx0XHRQcm9taXNlLmFsbChbXG5cdFx0XHRvQ3Jvc3NBcHBOYXZTZXJ2aWNlUHJvbWlzZSxcblx0XHRcdG9VcmxQYXJzaW5nU2VydmljZVByb21pc2UsXG5cdFx0XHRvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UsXG5cdFx0XHRvU2hlbGxVSVNlcnZpY2VQcm9taXNlLFxuXHRcdFx0b1NoZWxsUGx1Z2luTWFuYWdlclByb21pc2Vcblx0XHRdKVxuXHRcdFx0LnRoZW4oKFtvQ3Jvc3NBcHBOYXZTZXJ2aWNlLCBvVXJsUGFyc2luZ1NlcnZpY2UsIG9TaGVsbE5hdmlnYXRpb24sIG9TaGVsbFVJU2VydmljZSwgb1NoZWxsUGx1Z2luTWFuYWdlcl0pID0+IHtcblx0XHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgPSBvQ3Jvc3NBcHBOYXZTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnVybFBhcnNpbmdTZXJ2aWNlID0gb1VybFBhcnNpbmdTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnNoZWxsTmF2aWdhdGlvbiA9IG9TaGVsbE5hdmlnYXRpb247XG5cdFx0XHRcdHRoaXMuc2hlbGxVSVNlcnZpY2UgPSBvU2hlbGxVSVNlcnZpY2U7XG5cdFx0XHRcdHRoaXMuc2hlbGxQbHVnaW5NYW5hZ2VyID0gb1NoZWxsUGx1Z2luTWFuYWdlcjtcblx0XHRcdFx0dGhpcy5yZXNvbHZlRm4oKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2godGhpcy5yZWplY3RGbik7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb25cblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzKG9BcmdzOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHR0aGlzLmNyb3NzQXBwTmF2U2VydmljZVxuXHRcdFx0XHQuZ2V0TGlua3Mob0FyZ3MpXG5cdFx0XHRcdC5mYWlsKChvRXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYCR7b0Vycm9yfSBzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzRmFjdG9yeS5nZXRMaW5rc2ApKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4ocmVzb2x2ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb24gaW4gY2FjaGVcblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzV2l0aENhY2hlKG9BcmdzOiBvYmplY3QpOiBQcm9taXNlPGFueVtdPiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0aWYgKChvQXJncyBhcyBPYmplY3RbXSkubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHJlc29sdmUoW10pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3Qgb0NhY2hlUmVzdWx0cyA9IHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZShvQXJncyk7XG5cblx0XHRcdFx0aWYgKG9DYWNoZVJlc3VsdHMubmV3QXJncy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXNvbHZlKG9DYWNoZVJlc3VsdHMuY2FjaGVkTGlua3MpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0XHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlXG5cdFx0XHRcdFx0XHQuZ2V0TGlua3Mob0NhY2hlUmVzdWx0cy5uZXdBcmdzKVxuXHRcdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoYCR7b0Vycm9yfSBzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzRmFjdG9yeS5nZXRMaW5rc1dpdGhDYWNoZWApKTtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQudGhlbigoYUxpbmtzOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGFMaW5rcy5sZW5ndGggIT09IDApIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBvU2VtYW50aWNPYmplY3RzTGlua3M6IGFueSA9IHt9O1xuXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhTGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhTGlua3NbaV0ubGVuZ3RoID4gMCAmJiBvQ2FjaGVSZXN1bHRzLm5ld0FyZ3NbaV1bMF0ubGlua3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvU2VtYW50aWNPYmplY3RzTGlua3Nbb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5rczogYUxpbmtzW2ldXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubGlua3NDYWNoZSA9IE9iamVjdC5hc3NpZ24odGhpcy5saW5rc0NhY2hlLCBvU2VtYW50aWNPYmplY3RzTGlua3MpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGlmIChvQ2FjaGVSZXN1bHRzLmNhY2hlZExpbmtzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYUxpbmtzKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBhTWVyZ2VkTGlua3MgPSBbXTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgaiA9IDA7XG5cblx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBrID0gMDsgayA8IG9DYWNoZVJlc3VsdHMub2xkQXJncy5sZW5ndGg7IGsrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGogPCBhTGlua3MubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhTGlua3Nbal0ubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5zZW1hbnRpY09iamVjdCA9PT0gb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2pdWzBdLnNlbWFudGljT2JqZWN0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKGFMaW5rc1tqXSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aisrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYU1lcmdlZExpbmtzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIHJldHJpZXZlIHRoZSBTaGVsbENvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIHNhcC51c2hlbGwuY29udGFpbmVyXG5cdCAqIEByZXR1cm5zIE9iamVjdCB3aXRoIHByZWRlZmluZWQgc2hlbGxDb250YWluZXIgbWV0aG9kc1xuXHQgKi9cblx0Z2V0U2hlbGxDb250YWluZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMub1NoZWxsQ29udGFpbmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCB0b0V4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggTmF2aWdhdGlvbiBBcmd1bWVudHMgYW5kIG9Db21wb25lbnQuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb05hdkFyZ3VtZW50c0FyciBBbmRcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+dG9FeHRlcm5hbCBhcmd1bWVudHNcblx0ICovXG5cdHRvRXh0ZXJuYWwob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KTogdm9pZCB7XG5cdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UudG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHRhcmdldCBzdGFydHVwQXBwU3RhdGVcblx0ICogV2lsbCBjaGVjayB0aGUgZXhpc3RhbmNlIG9mIHRoZSBTaGVsbENvbnRhaW5lciBhbmQgcmV0cmlldmUgdGhlIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uXG5cdCAqIHNlcnZpY2UgcmVmZXJlbmNlIGNhbGwgdGhlIGdldFN0YXJ0dXBBcHBTdGF0ZSBtZXRob2QuIEluIGNhc2Ugc2VydmljZSBpcyBub3QgYXZhaWxhYmxlIG9yIGFueSBleGNlcHRpb25cblx0ICogbWV0aG9kIHRocm93cyBleGNlcHRpb24gZXJyb3IgaW4gY29uc29sZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQXJncyBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5nZXRTdGFydHVwQXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBPYmplY3Rcblx0ICovXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZShvQXJnczogQ29tcG9uZW50KTogUHJvbWlzZTx1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGU+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gSlF1ZXJ5IFByb21pc2UgYmVoYXZlcyBkaWZmZXJlbnRseVxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHQodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgYXMgYW55KVxuXHRcdFx0XHQuZ2V0U3RhcnR1cEFwcFN0YXRlKG9BcmdzKVxuXHRcdFx0XHQuZmFpbCgob0Vycm9yOiBhbnkpID0+IHtcblx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKGAke29FcnJvcn0gc2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc0ZhY3RvcnkuZ2V0U3RhcnR1cEFwcFN0YXRlYCkpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQudGhlbigoc3RhcnR1cEFwcFN0YXRlOiB1bmRlZmluZWQgfCBTdGFydHVwQXBwU3RhdGUpID0+IHJlc29sdmUoc3RhcnR1cEFwcFN0YXRlKSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGJhY2tUb1ByZXZpb3VzQXBwIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBTb21ldGhpbmcgdGhhdCBpbmRpY2F0ZSB3ZSd2ZSBuYXZpZ2F0ZWRcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRiYWNrVG9QcmV2aW91c0FwcCgpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuYmFja1RvUHJldmlvdXNBcHAoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgaHJlZkZvckV4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9BcmdzIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50IFRoZSBhcHBDb21wb25lbnRcblx0ICogQHBhcmFtIGJBc3luYyBXaGV0aGVyIHRoaXMgY2FsbCBzaG91bGQgYmUgYXN5bmMgb3Igbm90XG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmhyZWZGb3JFeHRlcm5hbCBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsKG9BcmdzOiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4pIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaHJlZkZvckV4dGVybmFsKG9BcmdzLCBvQ29tcG9uZW50IGFzIG9iamVjdCwgISFiQXN5bmMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBocmVmRm9yRXh0ZXJuYWwgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogQHBhcmFtIG9Db21wb25lbnQgVGhlIGFwcENvbXBvbmVudFxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5ocmVmRm9yRXh0ZXJuYWxBc3luYyBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsQXN5bmMob0FyZ3M6IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5ocmVmRm9yRXh0ZXJuYWxBc3luYyhvQXJncywgb0NvbXBvbmVudCBhcyBvYmplY3QpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBnZXRBcHBTdGF0ZSBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIG9Db21wb25lbnQgYW5kIG9BcHBTdGF0ZUtleS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50XG5cdCAqIEBwYXJhbSBzQXBwU3RhdGVLZXkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0QXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBvYmplY3Rcblx0ICovXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gd3JhcEpRdWVyeVByb21pc2UoKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlIGFzIGFueSkuZ2V0QXBwU3RhdGUob0NvbXBvbmVudCwgc0FwcFN0YXRlS2V5KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNyZWF0ZUVtcHR5QXBwU3RhdGUgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2Ugd2l0aCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Y3JlYXRlRW1wdHlBcHBTdGF0ZSBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQpIHtcblx0XHRyZXR1cm4gKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlIGFzIGFueSkuY3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgY3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggb0NvbXBvbmVudC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBvQ29tcG9uZW50IENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmNyZWF0ZUVtcHR5QXBwU3RhdGVBc3luYyBhcmd1bWVudHNcblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZUFzeW5jKG9Db21wb25lbnQ6IENvbXBvbmVudCkge1xuXHRcdHJldHVybiAodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UgYXMgYW55KS5jcmVhdGVFbXB0eUFwcFN0YXRlQXN5bmMob0NvbXBvbmVudCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzTmF2aWdhdGlvblN1cHBvcnRlZCBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIE5hdmlnYXRpb24gQXJndW1lbnRzIGFuZCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIG9OYXZBcmd1bWVudHNBcnJcblx0ICogQHBhcmFtIG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+aXNOYXZpZ2F0aW9uU3VwcG9ydGVkIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIHdyYXBKUXVlcnlQcm9taXNlKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmlzTmF2aWdhdGlvblN1cHBvcnRlZChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzSW5pdGlhbE5hdmlnYXRpb24gbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gYm9vbGVhblxuXHQgKi9cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaXNJbml0aWFsTmF2aWdhdGlvbigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBpc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gYm9vbGVhblxuXHQgKi9cblx0aXNJbml0aWFsTmF2aWdhdGlvbkFzeW5jKCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5pc0luaXRpYWxOYXZpZ2F0aW9uQXN5bmMoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZXhwYW5kQ29tcGFjdEhhc2ggbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBzSGFzaEZyYWdtZW50IEFuIChpbnRlcm5hbCBmb3JtYXQpIHNoZWxsIGhhc2hcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHRoZSBzdWNjZXNzIGhhbmRsZXIgb2YgdGhlIHJlc29sdmUgcHJvbWlzZSBnZXQgYW4gZXhwYW5kZWQgc2hlbGwgaGFzaCBhcyBmaXJzdCBhcmd1bWVudFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdGV4cGFuZENvbXBhY3RIYXNoKHNIYXNoRnJhZ21lbnQ6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5leHBhbmRDb21wYWN0SGFzaChzSGFzaEZyYWdtZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgcGFyc2VTaGVsbEhhc2ggbWV0aG9kIG9mIFVSTFBhcnNpbmcgc2VydmljZSB3aXRoIGdpdmVuIHNIYXNoLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+cGFyc2VTaGVsbEhhc2ggYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIFRoZSBwYXJzZWQgdXJsXG5cdCAqL1xuXHRwYXJzZVNoZWxsSGFzaChzSGFzaDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMudXJsUGFyc2luZ1NlcnZpY2UucGFyc2VTaGVsbEhhc2goc0hhc2gpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzcGxpdEhhc2ggbWV0aG9kIG9mIFVSTFBhcnNpbmcgc2VydmljZSB3aXRoIGdpdmVuIHNIYXNoLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+c3BsaXRIYXNoIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRzcGxpdEhhc2goc0hhc2g6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLnVybFBhcnNpbmdTZXJ2aWNlLnNwbGl0SGFzaChzSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNvbnN0cnVjdFNoZWxsSGFzaCBtZXRob2Qgb2YgVVJMUGFyc2luZyBzZXJ2aWNlIHdpdGggZ2l2ZW4gc0hhc2guXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gb05ld1NoZWxsSGFzaCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLlVSTFBhcnNpbmc9PmNvbnN0cnVjdFNoZWxsSGFzaCBhcmd1bWVudHNcblx0ICogQHJldHVybnMgU2hlbGwgSGFzaCBzdHJpbmdcblx0ICovXG5cdGNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gdGhpcy51cmxQYXJzaW5nU2VydmljZS5jb25zdHJ1Y3RTaGVsbEhhc2gob05ld1NoZWxsSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldERpcnR5RmxhZyBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSBiRGlydHkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIuc2V0RGlydHlGbGFnIGFyZ3VtZW50c1xuXHQgKi9cblx0c2V0RGlydHlGbGFnKGJEaXJ0eTogYm9vbGVhbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLnNldERpcnR5RmxhZyhiRGlydHkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZSBwcm92aWRlciBjYWxsYmFjayBtZXRob2QuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0gZm5EaXJ0eVN0YXRlUHJvdmlkZXIgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIucmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pIHtcblx0XHR0aGlzLm9TaGVsbENvbnRhaW5lci5yZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcik7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgbWV0aG9kIHdpdGggZ2l2ZW4gZGlydHkgc3RhdGUgcHJvdmlkZXIgY2FsbGJhY2sgbWV0aG9kLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIGZuRGlydHlTdGF0ZVByb3ZpZGVyIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mIHNhcC51c2hlbGwuQ29udGFpbmVyLmRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLmRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBjcmVhdGVSZW5kZXJlciBtZXRob2Qgb2YgdXNoZWxsIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgcmVuZGVyZXIgb2JqZWN0XG5cdCAqL1xuXHRjcmVhdGVSZW5kZXJlcigpIHtcblx0XHRyZXR1cm4gdGhpcy5vU2hlbGxDb250YWluZXIuY3JlYXRlUmVuZGVyZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZ2V0VXNlciBtZXRob2Qgb2YgdXNoZWxsIGNvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgVXNlciBvYmplY3Rcblx0ICovXG5cdGdldFVzZXIoKSB7XG5cdFx0cmV0dXJuICh0aGlzLm9TaGVsbENvbnRhaW5lciBhcyBhbnkpLmdldFVzZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNoZWNrIGlmIHVzaGVsbCBjb250YWluZXIgaXMgYXZhaWxhYmxlIG9yIG5vdC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZVxuXHQgKi9cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZuTmF2RmlsdGVyIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gcmVnaXN0ZXJcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKSB7XG5cdFx0KHRoaXMuc2hlbGxOYXZpZ2F0aW9uIGFzIGFueSkucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgdW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIGZuTmF2RmlsdGVyIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gdW5yZWdpc3RlclxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbikge1xuXHRcdCh0aGlzLnNoZWxsTmF2aWdhdGlvbiBhcyBhbnkpLnVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgc2V0QmFja05hdmlnYXRpb24gbWV0aG9kIG9mIFNoZWxsVUlTZXJ2aWNlXG5cdCAqIHRoYXQgZGlzcGxheXMgdGhlIGJhY2sgYnV0dG9uIGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBbZm5DYWxsQmFja10gQSBjYWxsYmFjayBmdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQgaW4gdGhlIFVJLlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHNldEJhY2tOYXZpZ2F0aW9uKGZuQ2FsbEJhY2s/OiBGdW5jdGlvbik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjayk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldEhpZXJhcmNoeSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gaGllcmFyY2h5IGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSBbYUhpZXJhcmNoeUxldmVsc10gQW4gYXJyYXkgcmVwcmVzZW50aW5nIGhpZXJhcmNoaWVzIG9mIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGFwcC5cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0Pik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0SGllcmFyY2h5KGFIaWVyYXJjaHlMZXZlbHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzZXRUaXRsZSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gdGl0bGUgaW4gdGhlIHNoZWxsIGhlYWRlci5cblx0ICpcblx0ICogQHBhcmFtIFtzVGl0bGVdIFRoZSBuZXcgdGl0bGUuIFRoZSBkZWZhdWx0IHRpdGxlIGlzIHNldCBpZiB0aGlzIGFyZ3VtZW50IGlzIG5vdCBnaXZlbi5cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0VGl0bGUoc1RpdGxlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnRseSBkZWZpbmVkIGNvbnRlbnQgZGVuc2l0eS5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGNvbnRlbnQgZGVuc2l0eSB2YWx1ZVxuXHQgKi9cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gKHRoaXMub1NoZWxsQ29udGFpbmVyIGFzIGFueSkuZ2V0VXNlcigpLmdldENvbnRlbnREZW5zaXR5KCk7XG5cdH1cblxuXHQvKipcblx0ICogRm9yIGEgZ2l2ZW4gc2VtYW50aWMgb2JqZWN0LCB0aGlzIG1ldGhvZCBjb25zaWRlcnMgYWxsIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZW1hbnRpYyBvYmplY3QgYW5kXG5cdCAqIHJldHVybnMgdGhlIG9uZSB0YWdnZWQgYXMgYSBcInByaW1hcnlBY3Rpb25cIi4gSWYgbm8gaW5ib3VuZCB0YWdnZWQgYXMgXCJwcmltYXJ5QWN0aW9uXCIgZXhpc3RzLCB0aGVuIGl0IHJldHVybnNcblx0ICogdGhlIGludGVudCBvZiB0aGUgZmlyc3QgaW5ib3VuZCAoYWZ0ZXIgc29ydGluZyBoYXMgYmVlbiBhcHBsaWVkKSBtYXRjaGluZyB0aGUgYWN0aW9uIFwiZGlzcGxheUZhY3RTaGVldFwiLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3QuXG5cdCAqIEBwYXJhbSBtUGFyYW1ldGVycyBTZWUgI0Nyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uI2dldExpbmtzIGZvciBkZXNjcmlwdGlvbi5cblx0ICogQHJldHVybnMgUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGludGVudCBpZiBpdCBleGlzdHMuXG5cdCAqL1xuXHRnZXRQcmltYXJ5SW50ZW50KHNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2Vcblx0XHRcdFx0LmdldFByaW1hcnlJbnRlbnQoc1NlbWFudGljT2JqZWN0LCBtUGFyYW1ldGVycylcblx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcihgJHtvRXJyb3J9IHNhcC5mZS5jb3JlLnNlcnZpY2VzLlNoZWxsU2VydmljZXNGYWN0b3J5LmdldFByaW1hcnlJbnRlbnRgKSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKHJlc29sdmUpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdhaXQgZm9yIHRoZSByZW5kZXIgZXh0ZW5zaW9ucyBwbHVnaW4gdG8gYmUgbG9hZGVkLlxuXHQgKiBJZiB0cnVlIGlzIHJldHVybmVkIGJ5IHRoZSBwcm9taXNlIHdlIHdlcmUgYWJsZSB0byB3YWl0IGZvciBpdCwgb3RoZXJ3aXNlIHdlIGNvdWxkbid0IGFuZCBjYW5ub3QgcmVseSBvbiBpdC5cblx0ICovXG5cdHdhaXRGb3JQbHVnaW5zTG9hZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcblx0XHRcdGlmICghdGhpcy5zaGVsbFBsdWdpbk1hbmFnZXI/LmdldFBsdWdpbkxvYWRpbmdQcm9taXNlKSB7XG5cdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHRcdHRoaXMuc2hlbGxQbHVnaW5NYW5hZ2VyXG5cdFx0XHRcdFx0LmdldFBsdWdpbkxvYWRpbmdQcm9taXNlKFwiUmVuZGVyZXJFeHRlbnNpb25zXCIpXG5cdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogdW5rbm93bikgPT4ge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKG9FcnJvciBhcyBzdHJpbmcsIFwic2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc0ZhY3Rvcnkud2FpdEZvclBsdWdpbnNMb2FkXCIpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQudGhlbigoKSA9PiByZXNvbHZlKHRydWUpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuXG4vKipcbiAqIFNlcnZpY2UgRmFjdG9yeSBmb3IgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzRmFjdG9yeSBleHRlbmRzIFNlcnZpY2VGYWN0b3J5PFNoZWxsU2VydmljZXNTZXR0aW5ncz4ge1xuXHQvKipcblx0ICogQ3JlYXRlcyBlaXRoZXIgYSBzdGFuZGFyZCBvciBhIG1vY2sgU2hlbGwgc2VydmljZSBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvU2VydmljZUNvbnRleHQgVGhlIHNoZWxsc2VydmljZSBjb250ZXh0XG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYSBzaGVsbCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uXG5cdCAqIEBzZWUgU2VydmljZUZhY3RvcnkjY3JlYXRlSW5zdGFuY2Vcblx0ICovXG5cdGNyZWF0ZUluc3RhbmNlKG9TZXJ2aWNlQ29udGV4dDogU2VydmljZUNvbnRleHQ8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPik6IFByb21pc2U8SVNoZWxsU2VydmljZXM+IHtcblx0XHRvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIChzYXAudXNoZWxsLkNvbnRhaW5lciBhcyBDb250YWluZXIpO1xuXHRcdGNvbnN0IG9TaGVsbFNlcnZpY2UgPSBvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXJcblx0XHRcdD8gbmV3IFNoZWxsU2VydmljZXMob1NlcnZpY2VDb250ZXh0IGFzIFNlcnZpY2VDb250ZXh0PFJlcXVpcmVkPFNoZWxsU2VydmljZXNTZXR0aW5ncz4+KVxuXHRcdFx0OiBuZXcgU2hlbGxTZXJ2aWNlTW9jayhvU2VydmljZUNvbnRleHQpO1xuXHRcdHJldHVybiBvU2hlbGxTZXJ2aWNlLmluaXRQcm9taXNlLnRoZW4oKCkgPT4ge1xuXHRcdFx0Ly8gRW5yaWNoIHRoZSBhcHBDb21wb25lbnQgd2l0aCB0aGlzIG1ldGhvZFxuXHRcdFx0b1NlcnZpY2VDb250ZXh0LnNjb3BlT2JqZWN0LmdldFNoZWxsU2VydmljZXMgPSAoKSA9PiBvU2hlbGxTZXJ2aWNlO1xuXHRcdFx0cmV0dXJuIG9TaGVsbFNlcnZpY2U7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hlbGxTZXJ2aWNlc0ZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7OztFQStGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxJQU1NQSxnQkFBZ0I7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBQUEsT0FLckJDLElBQUksR0FBSixnQkFBTztNQUNOLElBQUksQ0FBQ0MsV0FBVyxHQUFHQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUM7TUFDeEMsSUFBSSxDQUFDQyxZQUFZLEdBQUcsTUFBTTtJQUMzQixDQUFDO0lBQUEsT0FFREMsUUFBUSxHQUFSLG1CQUFTO0lBQUEsRUFBbUI7TUFDM0IsT0FBT0gsT0FBTyxDQUFDQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFBQSxPQUVERyxpQkFBaUIsR0FBakIsNEJBQWtCO0lBQUEsRUFBbUI7TUFDcEMsT0FBT0osT0FBTyxDQUFDQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFBQSxPQUVESSxVQUFVLEdBQVYscUJBQVc7SUFBQSxFQUF5RDtNQUNuRTtJQUFBLENBQ0E7SUFBQSxPQUVEQyxrQkFBa0IsR0FBbEIsNkJBQW1CO0lBQUEsRUFBbUI7TUFDckMsT0FBT04sT0FBTyxDQUFDQyxPQUFPLENBQUNNLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBQUEsT0FFREMsaUJBQWlCLEdBQWpCLDZCQUFvQjtNQUNuQjtJQUFBLENBQ0E7SUFBQSxPQUVEQyxlQUFlLEdBQWYsMEJBQWdCO0lBQUEsRUFBMkQ7TUFDMUUsT0FBTyxFQUFFO0lBQ1YsQ0FBQztJQUFBLE9BRURDLG9CQUFvQixHQUFwQiwrQkFBcUI7SUFBQSxFQUF5QztNQUM3RCxPQUFPVixPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQUEs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
@@ -6,7 +6,7 @@ import type Container from "sap/ushell/services/Container";
6
6
  import type CrossApplicationNavigation from "sap/ushell/services/CrossApplicationNavigation";
7
7
  import type ShellNavigation from "sap/ushell/services/ShellNavigation";
8
8
  import type URLParsing from "sap/ushell/services/URLParsing";
9
- import type { ServiceContext } from "types/extension_types";
9
+ import type { ServiceContext } from "types/metamodel_types";
10
10
 
11
11
  export type StartupAppState = {
12
12
  getData(): {
@@ -101,6 +101,7 @@ export interface IShellServices {
101
101
  */
102
102
  class ShellServiceMock extends Service<ShellServicesSettings> implements IShellServices {
103
103
  initPromise!: Promise<any>;
104
+
104
105
  instanceType!: string;
105
106
 
106
107
  init() {
@@ -271,19 +272,30 @@ function wrapJQueryPromise<T>(jqueryPromise: jQuery.Promise): Promise<T> {
271
272
  */
272
273
  class ShellServices extends Service<Required<ShellServicesSettings>> implements IShellServices {
273
274
  resolveFn: any;
275
+
274
276
  rejectFn: any;
277
+
275
278
  initPromise!: Promise<any>;
279
+
276
280
  // !: means that we know it will be assigned before usage
277
281
  crossAppNavService!: CrossApplicationNavigation;
282
+
278
283
  urlParsingService!: URLParsing;
284
+
279
285
  shellNavigation!: ShellNavigation;
286
+
280
287
  shellPluginManager!: {
281
288
  getPluginLoadingPromise(category: string): jQuery.Promise;
282
289
  };
290
+
283
291
  oShellContainer!: Container;
292
+
284
293
  shellUIService!: any;
294
+
285
295
  instanceType!: string;
296
+
286
297
  linksCache!: any;
298
+
287
299
  fnFindSemanticObjectsInCache: any;
288
300
 
289
301
  init() {
@@ -848,7 +860,7 @@ class ShellServicesFactory extends ServiceFactory<ShellServicesSettings> {
848
860
  : new ShellServiceMock(oServiceContext);
849
861
  return oShellService.initPromise.then(() => {
850
862
  // Enrich the appComponent with this method
851
- (oServiceContext.scopeObject as any).getShellServices = () => oShellService;
863
+ oServiceContext.scopeObject.getShellServices = () => oShellService;
852
864
  return oShellService;
853
865
  });
854
866
  }