@sap/open.fe 1.94.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 (1783) hide show
  1. package/LICENSE.txt +23 -0
  2. package/README.md +10 -0
  3. package/package.json +21 -0
  4. package/packages/sap.fe.common/src/sap/fe/common/.library +36 -0
  5. package/packages/sap.fe.common/src/sap/fe/common/.theming +6 -0
  6. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +1378 -0
  7. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +6 -0
  8. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter-dbg.js +36 -0
  9. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.js +6 -0
  10. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +56 -0
  11. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +6 -0
  12. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +41 -0
  13. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +18 -0
  14. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js.map +9 -0
  15. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +68 -0
  16. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +9 -0
  17. package/packages/sap.fe.common/src/sap/fe/common/library.js +6 -0
  18. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +40 -0
  19. package/packages/sap.fe.common/src/sap/fe/common/resources.json +186 -0
  20. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -0
  21. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -0
  22. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jsmeta.json +1 -0
  23. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jstemplates.json +1 -0
  24. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -0
  25. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmltemplates.json +1 -0
  26. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.91.json +23 -0
  27. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.94.json +23 -0
  28. package/packages/sap.fe.core/src/sap/fe/core/.library +60 -0
  29. package/packages/sap.fe.core/src/sap/fe/core/.supportrc +4 -0
  30. package/packages/sap.fe.core/src/sap/fe/core/.theming +6 -0
  31. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +409 -0
  32. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +6 -0
  33. package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +433 -0
  34. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +6 -0
  35. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +184 -0
  36. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +6 -0
  37. package/packages/sap.fe.core/src/sap/fe/core/BaseController-dbg.js +65 -0
  38. package/packages/sap.fe.core/src/sap/fe/core/BaseController.js +6 -0
  39. package/packages/sap.fe.core/src/sap/fe/core/BusyLocker-dbg.js +112 -0
  40. package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.js +6 -0
  41. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +2246 -0
  42. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +6 -0
  43. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +269 -0
  44. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +6 -0
  45. package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +120 -0
  46. package/packages/sap.fe.core/src/sap/fe/core/PageController.js +6 -0
  47. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +822 -0
  48. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +6 -0
  49. package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +38 -0
  50. package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +6 -0
  51. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +152 -0
  52. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +6 -0
  53. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +57 -0
  54. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +6 -0
  55. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1584 -0
  56. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +6 -0
  57. package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +584 -0
  58. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +6 -0
  59. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +439 -0
  60. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +6 -0
  61. package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft-dbg.js +23 -0
  62. package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.js +6 -0
  63. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +1174 -0
  64. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +6 -0
  65. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +121 -0
  66. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +6 -0
  67. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata-dbg.js +75 -0
  68. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +6 -0
  69. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1667 -0
  70. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +6 -0
  71. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +57 -0
  72. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +6 -0
  73. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +501 -0
  74. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +6 -0
  75. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +707 -0
  76. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +6 -0
  77. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +989 -0
  78. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +6 -0
  79. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +417 -0
  80. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +5 -0
  81. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +399 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +116 -0
  83. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +6 -0
  84. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +403 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +5 -0
  86. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +350 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +135 -0
  88. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +6 -0
  89. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +287 -0
  90. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +6 -0
  91. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +109 -0
  92. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +6 -0
  93. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +9 -0
  94. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.js +6 -0
  95. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +258 -0
  96. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +6 -0
  97. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +711 -0
  98. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +5 -0
  99. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +692 -0
  100. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +615 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +6 -0
  102. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +76 -0
  103. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionPartial.fragment.xml +91 -0
  104. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution-dbg.js +71 -0
  105. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.js +6 -0
  106. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +82 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.js +6 -0
  108. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +127 -0
  109. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +6 -0
  110. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +12 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +122 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +6 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +150 -0
  114. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +6 -0
  115. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar-dbg.js +162 -0
  116. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.js +6 -0
  117. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +47 -0
  118. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +6 -0
  119. package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +61 -0
  120. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +122 -0
  121. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.js +6 -0
  122. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +209 -0
  123. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +6 -0
  124. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +148 -0
  125. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +6 -0
  126. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +319 -0
  127. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +6 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +500 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +5 -0
  130. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +460 -0
  131. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +90 -0
  132. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +5 -0
  133. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +431 -0
  134. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +404 -0
  135. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +5 -0
  136. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +322 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1294 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +5 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +1172 -0
  140. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +100 -0
  141. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.js +5 -0
  142. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +126 -0
  143. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +335 -0
  144. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +5 -0
  145. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +306 -0
  146. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1692 -0
  147. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +5 -0
  148. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +349 -0
  149. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +5 -0
  150. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +353 -0
  151. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +206 -0
  152. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.js +5 -0
  153. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.ts +202 -0
  154. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +50 -0
  155. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality.js +5 -0
  156. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality.ts +33 -0
  157. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +276 -0
  158. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.js +5 -0
  159. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +296 -0
  160. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +222 -0
  161. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +5 -0
  162. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +241 -0
  163. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +181 -0
  164. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.js +5 -0
  165. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +220 -0
  166. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +2100 -0
  167. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +5 -0
  168. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +2446 -0
  169. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +499 -0
  170. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +5 -0
  171. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +545 -0
  172. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +335 -0
  173. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +5 -0
  174. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +316 -0
  175. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +495 -0
  176. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +5 -0
  177. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +502 -0
  178. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +674 -0
  179. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +5 -0
  180. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +711 -0
  181. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +204 -0
  182. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +5 -0
  183. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +176 -0
  184. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +96 -0
  185. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.js +5 -0
  186. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.ts +76 -0
  187. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +217 -0
  188. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.js +5 -0
  189. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +211 -0
  190. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +90 -0
  191. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +5 -0
  192. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +45 -0
  193. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +61 -0
  194. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +5 -0
  195. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +41 -0
  196. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key-dbg.js +86 -0
  197. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.js +5 -0
  198. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.ts +49 -0
  199. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +93 -0
  200. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +5 -0
  201. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +92 -0
  202. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +164 -0
  203. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions.js +5 -0
  204. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +160 -0
  205. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +427 -0
  206. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +5 -0
  207. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +414 -0
  208. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +552 -0
  209. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +5 -0
  210. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +601 -0
  211. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +320 -0
  212. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -0
  213. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +314 -0
  214. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +93 -0
  215. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +6 -0
  216. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +8 -0
  217. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +9 -0
  218. package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter-dbg.js +77 -0
  219. package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.js +5 -0
  220. package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.ts +58 -0
  221. package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter-dbg.js +51 -0
  222. package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.js +5 -0
  223. package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.ts +41 -0
  224. package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter-dbg.js +103 -0
  225. package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.js +5 -0
  226. package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.ts +88 -0
  227. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +100 -0
  228. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +5 -0
  229. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +80 -0
  230. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +23 -0
  231. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes.js +5 -0
  232. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes.ts +7 -0
  233. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +162 -0
  234. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.js +5 -0
  235. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +130 -0
  236. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component-dbg.js +58 -0
  237. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.js +6 -0
  238. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +64 -0
  239. package/packages/sap.fe.core/src/sap/fe/core/fpm/resources.json +18 -0
  240. package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +49 -0
  241. package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum.js +5 -0
  242. package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum.ts +18 -0
  243. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +1667 -0
  244. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +5 -0
  245. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +1765 -0
  246. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +314 -0
  247. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +5 -0
  248. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +232 -0
  249. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +62 -0
  250. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +6 -0
  251. package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState-dbg.js +92 -0
  252. package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.js +6 -0
  253. package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +53 -0
  254. package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.js +6 -0
  255. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +64 -0
  256. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.js +6 -0
  257. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +150 -0
  258. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +6 -0
  259. package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper-dbg.js +130 -0
  260. package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.js +6 -0
  261. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +327 -0
  262. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +6 -0
  263. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +78 -0
  264. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.js +6 -0
  265. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper-dbg.js +267 -0
  266. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.js +9 -0
  267. package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.ts +228 -0
  268. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx-dbg.js +75 -0
  269. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.js +5 -0
  270. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.ts +83 -0
  271. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +10 -0
  272. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs.js +5 -0
  273. package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs.ts +3 -0
  274. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +429 -0
  275. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +123 -0
  276. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +9 -0
  277. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +1201 -0
  278. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +9 -0
  279. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +148 -0
  280. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +9 -0
  281. package/packages/sap.fe.core/src/sap/fe/core/library.js +6 -0
  282. package/packages/sap.fe.core/src/sap/fe/core/library.support.js +32 -0
  283. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +121 -0
  284. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +417 -0
  285. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +273 -0
  286. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +273 -0
  287. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +273 -0
  288. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +273 -0
  289. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +273 -0
  290. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +273 -0
  291. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +273 -0
  292. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +273 -0
  293. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +273 -0
  294. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +273 -0
  295. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +273 -0
  296. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +275 -0
  297. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +273 -0
  298. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +273 -0
  299. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +273 -0
  300. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +273 -0
  301. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +273 -0
  302. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +273 -0
  303. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +273 -0
  304. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +273 -0
  305. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +273 -0
  306. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +273 -0
  307. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +273 -0
  308. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +273 -0
  309. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +273 -0
  310. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +273 -0
  311. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +273 -0
  312. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +273 -0
  313. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +273 -0
  314. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +273 -0
  315. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +273 -0
  316. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +273 -0
  317. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +273 -0
  318. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +273 -0
  319. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +273 -0
  320. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +273 -0
  321. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +273 -0
  322. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +273 -0
  323. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +273 -0
  324. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +273 -0
  325. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +273 -0
  326. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +273 -0
  327. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +273 -0
  328. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +273 -0
  329. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +273 -0
  330. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +273 -0
  331. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +273 -0
  332. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +273 -0
  333. package/packages/sap.fe.core/src/sap/fe/core/resources.json +4087 -0
  334. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +106 -0
  335. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +5 -0
  336. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +58 -0
  337. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +205 -0
  338. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +6 -0
  339. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +128 -0
  340. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +5 -0
  341. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +71 -0
  342. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +303 -0
  343. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +6 -0
  344. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +84 -0
  345. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +6 -0
  346. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +1099 -0
  347. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +6 -0
  348. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +819 -0
  349. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +5 -0
  350. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +720 -0
  351. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +731 -0
  352. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +5 -0
  353. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +668 -0
  354. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +471 -0
  355. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +6 -0
  356. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +12 -0
  357. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +6 -0
  358. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +8 -0
  359. package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.js +38 -0
  360. package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.ts +20 -0
  361. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetMissingID.support.js +38 -0
  362. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetMissingID.support.ts +18 -0
  363. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +38 -0
  364. package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +18 -0
  365. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper-dbg.js +71 -0
  366. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.js +5 -0
  367. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.ts +67 -0
  368. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics-dbg.js +73 -0
  369. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.js +5 -0
  370. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.ts +66 -0
  371. package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +156 -0
  372. package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters.js +5 -0
  373. package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters.ts +226 -0
  374. package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +77 -0
  375. package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters.js +5 -0
  376. package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters.ts +54 -0
  377. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +444 -0
  378. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +5 -0
  379. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +428 -0
  380. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +33 -0
  381. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +5 -0
  382. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +13 -0
  383. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper-dbg.js +89 -0
  384. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.js +5 -0
  385. package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.ts +53 -0
  386. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +331 -0
  387. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +5 -0
  388. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +310 -0
  389. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating-dbg.js +66 -0
  390. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating.js +5 -0
  391. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating.ts +39 -0
  392. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters-dbg.js +126 -0
  393. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters.js +5 -0
  394. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters.ts +86 -0
  395. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +303 -0
  396. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.js +5 -0
  397. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +209 -0
  398. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +525 -0
  399. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +5 -0
  400. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +489 -0
  401. package/packages/sap.fe.core/src/sap/fe/core/type/Email-dbg.js +20 -0
  402. package/packages/sap.fe.core/src/sap/fe/core/type/Email.js +5 -0
  403. package/packages/sap.fe.core/src/sap/fe/core/type/Email.ts +18 -0
  404. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -0
  405. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -0
  406. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -0
  407. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -0
  408. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -0
  409. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmltemplates.json +1 -0
  410. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/Component.js +56 -0
  411. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/App.controller.js +252 -0
  412. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/BaseController.js +46 -0
  413. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/ControllerExtensions.controller.js +380 -0
  414. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/CustomElements.controller.js +380 -0
  415. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/MacrosPage.controller.js +382 -0
  416. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/Overview.controller.js +99 -0
  417. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/Topic.controller.js +71 -0
  418. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controls/FileEditor.js +401 -0
  419. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/FileEditor.css +8 -0
  420. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/codesample.css +172 -0
  421. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/markdown-styles.css +3 -0
  422. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/style.css +48 -0
  423. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/topic.css +176 -0
  424. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/index.html +62 -0
  425. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/manifest.json +132 -0
  426. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ControllerExtensionNavigationModel.js +174 -0
  427. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/CustomElementNavigationModel.js +327 -0
  428. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ExploreSettingsModel.js +12 -0
  429. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +709 -0
  430. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/OverviewNavigationModel.js +15 -0
  431. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/scripts/boot.js +68 -0
  432. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/service-worker.js +100 -0
  433. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/.gitignore.tmpl +0 -0
  434. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/.npmrc.tmpl +0 -0
  435. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/README.md +43 -0
  436. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/package.json +31 -0
  437. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/ui5-local.yaml +25 -0
  438. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/ui5.yaml +25 -0
  439. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/Component.js +9 -0
  440. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/i18n/i18n.properties +9 -0
  441. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/index.html +28 -0
  442. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/manifest.json +165 -0
  443. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/Component.js +31 -0
  444. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/localService/Incidents.json +56 -0
  445. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/localService/service.cds +32 -0
  446. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/manifest.json +109 -0
  447. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.controller.js +6 -0
  448. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.view.xml +30 -0
  449. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FclNavigationButtons.html +37 -0
  450. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.html +24 -0
  451. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +23 -0
  452. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.controller.js +5 -0
  453. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +21 -0
  454. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/Component.js +36 -0
  455. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/ChildEntity.json +686 -0
  456. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/CreditLimitDetails.json +154 -0
  457. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/RootEntity.json +252 -0
  458. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/service.cds +122 -0
  459. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/manifest.json +69 -0
  460. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.controller.js +5 -0
  461. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.view.xml +20 -0
  462. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/Component.js +36 -0
  463. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/ChildEntity.json +686 -0
  464. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/CreditLimitDetails.json +154 -0
  465. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/RootEntity.json +252 -0
  466. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/service.cds +122 -0
  467. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/manifest.json +69 -0
  468. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.controller.js +5 -0
  469. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.view.xml +36 -0
  470. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/Component.js +36 -0
  471. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/ChildEntity.json +686 -0
  472. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/CreditLimitDetails.json +154 -0
  473. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/RootEntity.json +277 -0
  474. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/service.cds +122 -0
  475. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/manifest.json +69 -0
  476. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartDefault.html +37 -0
  477. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartQualifier.html +37 -0
  478. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartSelectionMode.html +37 -0
  479. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/Component.js +34 -0
  480. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/FieldDisplay.view.xml +64 -0
  481. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/ChildEntity.json +14 -0
  482. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/FieldDisplay.cds +94 -0
  483. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/RootEntity.json +23 -0
  484. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/ValueHelpEntity.js +11 -0
  485. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/manifest.json +68 -0
  486. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/Component.js +33 -0
  487. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.controller.js +10 -0
  488. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.view.xml +101 -0
  489. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/ChildEntity.json +14 -0
  490. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/FieldControlValueHelpEntity.json +14 -0
  491. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/FieldEdit.cds +77 -0
  492. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/RootEntity.json +14 -0
  493. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/localAnnotations.xml +38 -0
  494. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/manifest.json +75 -0
  495. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/Component.js +33 -0
  496. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.controller.js +23 -0
  497. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.view.xml +20 -0
  498. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/localService/Entities.json +6 -0
  499. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/localService/service.cds +6 -0
  500. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/manifest.json +68 -0
  501. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/Component.js +33 -0
  502. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.controller.js +10 -0
  503. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.view.xml +132 -0
  504. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Currencies.json +29 -0
  505. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Currencies_texts.json +38 -0
  506. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/FieldFormatOptions.cds +58 -0
  507. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Languages.json +17 -0
  508. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Languages_texts.json +38 -0
  509. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/RootEntity.json +13 -0
  510. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/UnitOfMeasure.json +12 -0
  511. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/manifest.json +68 -0
  512. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/Component.js +33 -0
  513. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.controller.js +10 -0
  514. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.view.xml +114 -0
  515. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/FieldNavProp.cds +161 -0
  516. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/NavProp1.json +25 -0
  517. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/NavProp2.json +7 -0
  518. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/RootEntity.json +14 -0
  519. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/ValueHelpEntity.json +14 -0
  520. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/manifest.json +68 -0
  521. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldDisplay.html +37 -0
  522. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldEdit.html +37 -0
  523. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldEvents.html +37 -0
  524. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldFormatOptions.html +37 -0
  525. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldNavProp.html +37 -0
  526. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/Component.js +36 -0
  527. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.controller.js +35 -0
  528. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.view.xml +58 -0
  529. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ChildEntity.json +686 -0
  530. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/CreditLimitDetails.json +154 -0
  531. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/RootEntity.json +102 -0
  532. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ValueHelpEntity.js +11 -0
  533. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +96 -0
  534. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/manifest.json +68 -0
  535. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarDefault.html +37 -0
  536. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/Component.js +33 -0
  537. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/FormElementCustomField.view.xml +49 -0
  538. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/localService/FormElementCustomField.cds +19 -0
  539. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/localService/RootEntity.json +13 -0
  540. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/manifest.json +68 -0
  541. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/Component.js +33 -0
  542. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/FormElementLabel.view.xml +32 -0
  543. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/localService/FormElementLabel.cds +19 -0
  544. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/localService/RootEntity.json +13 -0
  545. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/manifest.json +68 -0
  546. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElementCustomField.html +37 -0
  547. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElementLabel.html +37 -0
  548. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/i18n/i18n.properties +19 -0
  549. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartDefault.html +37 -0
  550. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartDynamicSize.html +37 -0
  551. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartHideOnNoData.html +37 -0
  552. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartShowOnlyChart.html +37 -0
  553. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/Component.js +36 -0
  554. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.controller.js +5 -0
  555. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.view.xml +83 -0
  556. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/ChildEntity.json +686 -0
  557. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/CreditLimitDetails.json +154 -0
  558. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/RootEntity.json +34 -0
  559. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/service.cds +308 -0
  560. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/manifest.json +69 -0
  561. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/Component.js +36 -0
  562. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.controller.js +5 -0
  563. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.view.xml +93 -0
  564. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/ChildEntity.json +686 -0
  565. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/CreditLimitDetails.json +154 -0
  566. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/RootEntity.json +34 -0
  567. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/service.cds +308 -0
  568. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/manifest.json +69 -0
  569. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/Component.js +36 -0
  570. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.controller.js +5 -0
  571. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.view.xml +91 -0
  572. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/ChildEntity.json +686 -0
  573. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/CreditLimitDetails.json +154 -0
  574. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/RootEntity.json +34 -0
  575. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/service.cds +308 -0
  576. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/manifest.json +69 -0
  577. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/Component.js +36 -0
  578. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.controller.js +5 -0
  579. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.view.xml +93 -0
  580. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/ChildEntity.json +686 -0
  581. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/CreditLimitDetails.json +154 -0
  582. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/RootEntity.json +34 -0
  583. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/service.cds +308 -0
  584. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/manifest.json +69 -0
  585. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/Component.js +36 -0
  586. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/PaginatorDefault.controller.js +27 -0
  587. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/PaginatorDefault.view.xml +45 -0
  588. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/RootEntity.json +102 -0
  589. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/ValueHelpEntity.js +11 -0
  590. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/service.cds +90 -0
  591. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/manifest.json +79 -0
  592. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginatorDefault.html +37 -0
  593. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Component.js +34 -0
  594. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Share.controller.js +5 -0
  595. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Share.view.xml +23 -0
  596. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/localService/RootEntity.json +5 -0
  597. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/localService/Share.cds +11 -0
  598. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/manifest.json +68 -0
  599. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/shareDefault.html +37 -0
  600. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Component.js +40 -0
  601. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +32 -0
  602. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +32 -0
  603. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.json +82 -0
  604. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/service.cds +82 -0
  605. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/manifest.json +78 -0
  606. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/Component.js +36 -0
  607. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.controller.js +5 -0
  608. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.view.xml +10 -0
  609. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/RootEntity.json +102 -0
  610. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/ValueHelpEntity.js +11 -0
  611. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/service.cds +90 -0
  612. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/manifest.json +79 -0
  613. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/Component.js +35 -0
  614. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.controller.js +19 -0
  615. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.view.xml +31 -0
  616. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/RootEntity.json +78 -0
  617. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/ValueHelpCurrencyEntity.json +5 -0
  618. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/ValueHelpEntity.js +11 -0
  619. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/service.cds +119 -0
  620. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/manifest.json +82 -0
  621. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableCustoms.html +37 -0
  622. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableDefault.html +37 -0
  623. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableEdit.html +37 -0
  624. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/Component.js +35 -0
  625. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/OPExtend.controller.js +41 -0
  626. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/RootEntity.json +12 -0
  627. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/service.cds +52 -0
  628. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/manifest.json +76 -0
  629. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility.html +37 -0
  630. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/controllerExtensionsOverview.html +24 -0
  631. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/controllerExtensionsOverview.md +18 -0
  632. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/Component.js +35 -0
  633. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/IntentBasedNavigation.controller.js +21 -0
  634. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/IntentBasedNavigation.view.xml +23 -0
  635. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/localService/RootEntity.json +12 -0
  636. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/localService/service.cds +40 -0
  637. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/manifest.json +76 -0
  638. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation.html +70 -0
  639. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/Component.js +35 -0
  640. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/extendLR.controller.js +63 -0
  641. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/extendOP.controller.js +13 -0
  642. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/localService/RootEntity.json +18 -0
  643. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/localService/service.cds +64 -0
  644. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/manifest.json +103 -0
  645. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility.html +70 -0
  646. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Component.js +35 -0
  647. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Share.controller.js +11 -0
  648. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Share.view.xml +21 -0
  649. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/ShareExtend.js +15 -0
  650. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/localService/RootEntity.json +5 -0
  651. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/localService/service.cds +11 -0
  652. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/manifest.json +68 -0
  653. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/shareExtensibility.html +37 -0
  654. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/Component.js +35 -0
  655. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/CustomSection.fragment.xml +15 -0
  656. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/OPExtend.controller.js +57 -0
  657. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/localService/RootEntity.json +12 -0
  658. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/localService/service.cds +40 -0
  659. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +86 -0
  660. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState.html +70 -0
  661. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/Component.js +35 -0
  662. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/CustomAction.js +41 -0
  663. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/extendOP.controller.js +9 -0
  664. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/ChildEntity.json +22 -0
  665. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/RootEntity.json +10 -0
  666. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/service.cds +73 -0
  667. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/manifest.json +133 -0
  668. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customActionContent.html +36 -0
  669. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/Component.js +35 -0
  670. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumn.js +25 -0
  671. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +11 -0
  672. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +5 -0
  673. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/ChildEntity.json +26 -0
  674. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/RootEntity.json +9 -0
  675. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +55 -0
  676. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +98 -0
  677. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumnContent.html +36 -0
  678. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.html +24 -0
  679. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.md +21 -0
  680. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/Component.js +35 -0
  681. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomFilter.js +28 -0
  682. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomRatingFilter.fragment.xml +8 -0
  683. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomRatingFilterOperator.fragment.xml +17 -0
  684. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/localService/RootEntity.json +37 -0
  685. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/localService/service.cds +75 -0
  686. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/manifest.json +87 -0
  687. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilterContent.html +36 -0
  688. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/Component.js +35 -0
  689. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetColumnChart.fragment.xml +19 -0
  690. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetDataPoint.fragment.xml +11 -0
  691. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetMicroChartAndFormElement.fragment.xml +42 -0
  692. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/RootEntity.json +12 -0
  693. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/service.cds +54 -0
  694. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/manifest.json +127 -0
  695. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacetContent.html +36 -0
  696. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/Component.js +35 -0
  697. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomDetailPage.controller.js +12 -0
  698. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomDetailPage.view.xml +64 -0
  699. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.controller.js +10 -0
  700. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.view.xml +39 -0
  701. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ChildEntity.json +23 -0
  702. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/RootEntity.json +41 -0
  703. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ValueHelpCurrencyEntity.json +5 -0
  704. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ValueHelpEntity.js +11 -0
  705. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/resources/275081.jpg +0 -0
  706. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/resources/275472.jpg +0 -0
  707. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/service.cds +144 -0
  708. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/manifest.json +119 -0
  709. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPageContent.html +70 -0
  710. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/Component.js +36 -0
  711. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSection.fragment.xml +13 -0
  712. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionFormElementAndTable.fragment.xml +36 -0
  713. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.fragment.xml +44 -0
  714. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.js +11 -0
  715. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/extendOP.controller.js +13 -0
  716. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ChildEntity.json +82 -0
  717. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/RootEntity.json +9 -0
  718. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ValueHelpCurrencyEntity.json +5 -0
  719. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ValueHelpEntity.js +11 -0
  720. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/service.cds +177 -0
  721. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/manifest.json +129 -0
  722. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSectionContent.html +36 -0
  723. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/Component.js +35 -0
  724. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomButton.js +12 -0
  725. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomViewWithButton.fragment.xml +12 -0
  726. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomViewWithTable.fragment.xml +46 -0
  727. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/LRExtend.controller.js +31 -0
  728. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/localService/RootEntity.json +37 -0
  729. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/localService/service.cds +70 -0
  730. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/manifest.json +100 -0
  731. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLRContent.html +36 -0
  732. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/i18n/i18n.properties +61 -0
  733. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/overview/introduction.html +24 -0
  734. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/overview/introduction.md +6 -0
  735. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/util/FileUtils.js +124 -0
  736. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/App.view.xml +60 -0
  737. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/ControllerExtensions.view.xml +97 -0
  738. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/CustomElements.view.xml +97 -0
  739. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/MacrosPage.view.xml +97 -0
  740. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/Overview.view.xml +13 -0
  741. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +140 -0
  742. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +142 -0
  743. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +504 -0
  744. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +751 -0
  745. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +74 -0
  746. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +75 -0
  747. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/BindingExpression-AnnotationExpression.spec.ts.snap +7 -0
  748. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +17450 -0
  749. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +582 -0
  750. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +515 -0
  751. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +636 -0
  752. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +547 -0
  753. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +60 -0
  754. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +57 -0
  755. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +436 -0
  756. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +469 -0
  757. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPITag.spec.js +346 -0
  758. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPITag.spec.ts +357 -0
  759. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +255 -0
  760. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +254 -0
  761. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +67 -0
  762. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +43 -0
  763. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.js +577 -0
  764. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.ts +593 -0
  765. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +1206 -0
  766. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +1361 -0
  767. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +21 -0
  768. package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +16 -0
  769. package/packages/sap.fe.core/test/sap/fe/core/jest/data/BindingExpression-AnnotationExpression.xml +248 -0
  770. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ConverterContext.cds +34 -0
  771. package/packages/sap.fe.core/test/sap/fe/core/jest/data/HeaderFacets.cds +199 -0
  772. package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPI.cds +320 -0
  773. package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPINone.cds +78 -0
  774. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ListReportConverter.cds +164 -0
  775. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverter.cds +43 -0
  776. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverterBoundAction.cds +31 -0
  777. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ObjectPageConverter.cds +161 -0
  778. package/packages/sap.fe.core/test/sap/fe/core/jest/data/PropertyHelper.cds +14 -0
  779. package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +285 -0
  780. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +98 -0
  781. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +242 -0
  782. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionNoOperationAvailable.cds +22 -0
  783. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableFalse.cds +25 -0
  784. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableTrue.cds +24 -0
  785. package/packages/sap.fe.core/test/sap/fe/core/jest/data/salesOrderMetadata.xml +4824 -0
  786. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.js +54 -0
  787. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.ts +70 -0
  788. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +607 -0
  789. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +540 -0
  790. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +62 -0
  791. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +45 -0
  792. package/packages/sap.fe.core/test/sap/fe/core/jest/type/Email.spec.js +34 -0
  793. package/packages/sap.fe.core/test/sap/fe/core/jest/type/Email.spec.ts +21 -0
  794. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +1328 -0
  795. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.js +18 -0
  796. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +233 -0
  797. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/index.js +33 -0
  798. package/packages/sap.fe.core/test/sap/fe/core/qunit/common/testHelper.js +81 -0
  799. package/packages/sap.fe.core/test/sap/fe/core/qunit/common/utility.js +28 -0
  800. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/ExcelFormatHelper.qunit.js +19 -0
  801. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/SemanticDateOperators.qunit.js +253 -0
  802. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/SemanticKeyHelper.qunit.js +211 -0
  803. package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/StableIdHelper.qunit.js +301 -0
  804. package/packages/sap.fe.core/test/sap/fe/core/qunit/services/CacheHandlerTest.qunit.js +924 -0
  805. package/packages/sap.fe.core/test/sap/fe/core/qunit/test/iteloMetadata.js +2752 -0
  806. package/packages/sap.fe.core/test/sap/fe/core/qunit/test/musicDraftMetadata.js +2301 -0
  807. package/packages/sap.fe.core/test/sap/fe/core/qunit/test/simpleMetadata.js +1186 -0
  808. package/packages/sap.fe.core/test/sap/fe/core/qunit/test/techServiceMetadata.js +3993 -0
  809. package/packages/sap.fe.core/test/sap/fe/core/qunit/testsuite.qunit.html +14 -0
  810. package/packages/sap.fe.core/test/sap/fe/core/qunit/testsuite.qunit.js +33 -0
  811. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.91.json +96 -0
  812. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.94.json +40 -0
  813. package/packages/sap.fe.macros/src/sap/fe/macros/.library +54 -0
  814. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +6 -0
  815. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.fragment.xml +171 -0
  816. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +200 -0
  817. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +6 -0
  818. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +530 -0
  819. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +6 -0
  820. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +1256 -0
  821. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +6 -0
  822. package/packages/sap.fe.macros/src/sap/fe/macros/Contact-dbg.designtime.js +93 -0
  823. package/packages/sap.fe.macros/src/sap/fe/macros/Contact.designtime.js +6 -0
  824. package/packages/sap.fe.macros/src/sap/fe/macros/Contact.fragment.xml +38 -0
  825. package/packages/sap.fe.macros/src/sap/fe/macros/Contact.metadata-dbg.js +91 -0
  826. package/packages/sap.fe.macros/src/sap/fe/macros/Contact.metadata.js +6 -0
  827. package/packages/sap.fe.macros/src/sap/fe/macros/ContactHelper-dbg.js +96 -0
  828. package/packages/sap.fe.macros/src/sap/fe/macros/ContactHelper.js +6 -0
  829. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +286 -0
  830. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +6 -0
  831. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.fragment.xml +37 -0
  832. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.metadata-dbg.js +91 -0
  833. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.metadata.js +6 -0
  834. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicatorRuntime-dbg.js +138 -0
  835. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicatorRuntime.js +6 -0
  836. package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +37 -0
  837. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata-dbg.js +144 -0
  838. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.js +5 -0
  839. package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.ts +136 -0
  840. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +234 -0
  841. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +5 -0
  842. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +177 -0
  843. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +55 -0
  844. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +6 -0
  845. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar-dbg.designtime.js +83 -0
  846. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.designtime.js +6 -0
  847. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +109 -0
  848. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +243 -0
  849. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +6 -0
  850. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +130 -0
  851. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +5 -0
  852. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +62 -0
  853. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +568 -0
  854. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +6 -0
  855. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper-dbg.js +48 -0
  856. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper.js +6 -0
  857. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField-dbg.designtime.js +339 -0
  858. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.designtime.js +6 -0
  859. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.fragment.xml +57 -0
  860. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata-dbg.js +130 -0
  861. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata.js +6 -0
  862. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +24 -0
  863. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.metadata-dbg.js +68 -0
  864. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.metadata.js +6 -0
  865. package/packages/sap.fe.macros/src/sap/fe/macros/Form-dbg.designtime.js +188 -0
  866. package/packages/sap.fe.macros/src/sap/fe/macros/Form.designtime.js +6 -0
  867. package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +94 -0
  868. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +209 -0
  869. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +6 -0
  870. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer-dbg.designtime.js +42 -0
  871. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.designtime.js +6 -0
  872. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +196 -0
  873. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata-dbg.js +132 -0
  874. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata.js +6 -0
  875. package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.fragment.xml +25 -0
  876. package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata-dbg.js +123 -0
  877. package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata.js +5 -0
  878. package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata.ts +113 -0
  879. package/packages/sap.fe.macros/src/sap/fe/macros/FormWrapper.fragment.xml +26 -0
  880. package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.fragment.xml +33 -0
  881. package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata-dbg.js +103 -0
  882. package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata.js +5 -0
  883. package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata.ts +106 -0
  884. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +197 -0
  885. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +5 -0
  886. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +120 -0
  887. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +92 -0
  888. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +6 -0
  889. package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime-dbg.js +33 -0
  890. package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime.js +5 -0
  891. package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime.ts +12 -0
  892. package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating-dbg.js +22 -0
  893. package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating.js +5 -0
  894. package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating.ts +9 -0
  895. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart-dbg.designtime.js +361 -0
  896. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.designtime.js +6 -0
  897. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.fragment.xml +36 -0
  898. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.metadata-dbg.js +149 -0
  899. package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.metadata.js +6 -0
  900. package/packages/sap.fe.macros/src/sap/fe/macros/ODataMetaModelUtil-dbg.js +600 -0
  901. package/packages/sap.fe.macros/src/sap/fe/macros/ODataMetaModelUtil.js +6 -0
  902. package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.fragment.xml +32 -0
  903. package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.metadata-dbg.js +61 -0
  904. package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.metadata.js +6 -0
  905. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +615 -0
  906. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +6 -0
  907. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm-dbg.designtime.js +215 -0
  908. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.designtime.js +6 -0
  909. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.fragment.xml +66 -0
  910. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata-dbg.js +84 -0
  911. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata.js +6 -0
  912. package/packages/sap.fe.macros/src/sap/fe/macros/ResourceModel-dbg.js +56 -0
  913. package/packages/sap.fe.macros/src/sap/fe/macros/ResourceModel.js +6 -0
  914. package/packages/sap.fe.macros/src/sap/fe/macros/Share.fragment.xml +21 -0
  915. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata-dbg.js +90 -0
  916. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata.js +6 -0
  917. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper-dbg.js +41 -0
  918. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper.js +6 -0
  919. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +236 -0
  920. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +489 -0
  921. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +6 -0
  922. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +469 -0
  923. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +5 -0
  924. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +487 -0
  925. package/packages/sap.fe.macros/src/sap/fe/macros/TraceInfo-dbg.js +462 -0
  926. package/packages/sap.fe.macros/src/sap/fe/macros/TraceInfo.js +6 -0
  927. package/packages/sap.fe.macros/src/sap/fe/macros/ValueHelp.metadata-dbg.js +135 -0
  928. package/packages/sap.fe.macros/src/sap/fe/macros/ValueHelp.metadata.js +6 -0
  929. package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.fragment.xml +87 -0
  930. package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.metadata-dbg.js +217 -0
  931. package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.metadata.js +6 -0
  932. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +468 -0
  933. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +6 -0
  934. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartRuntime-dbg.js +118 -0
  935. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartRuntime.js +6 -0
  936. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils-dbg.js +221 -0
  937. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils.js +6 -0
  938. package/packages/sap.fe.macros/src/sap/fe/macros/designtime/library-preload.designtime.js +17 -0
  939. package/packages/sap.fe.macros/src/sap/fe/macros/designtime/library-preload.designtime.js.map +9 -0
  940. package/packages/sap.fe.macros/src/sap/fe/macros/field/DraftPopOverAdminData.fragment.xml +53 -0
  941. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +1670 -0
  942. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +6 -0
  943. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +400 -0
  944. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +6 -0
  945. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +538 -0
  946. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +5 -0
  947. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +541 -0
  948. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +95 -0
  949. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +1136 -0
  950. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +6 -0
  951. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +26 -0
  952. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForDataField.fragment.xml +95 -0
  953. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForEntity.fragment.xml +76 -0
  954. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkWithFacets.fragment.xml +40 -0
  955. package/packages/sap.fe.macros/src/sap/fe/macros/filter/CustomFilter.fragment.xml +38 -0
  956. package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState-dbg.js +179 -0
  957. package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.fragment.xml +36 -0
  958. package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.js +6 -0
  959. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +149 -0
  960. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -0
  961. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating-dbg.js +23 -0
  962. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating.js +5 -0
  963. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating.ts +11 -0
  964. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +363 -0
  965. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +6 -0
  966. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue-dbg.js +53 -0
  967. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.js +6 -0
  968. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range-dbg.js +38 -0
  969. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.js +6 -0
  970. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value-dbg.js +219 -0
  971. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.js +6 -0
  972. package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/FormDelegate-dbg.js +152 -0
  973. package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/FormDelegate.js +6 -0
  974. package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/ValueHelpWrapper.fragment.xml +3 -0
  975. package/packages/sap.fe.macros/src/sap/fe/macros/form/AddressSection.fragment.xml +35 -0
  976. package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +44 -0
  977. package/packages/sap.fe.macros/src/sap/fe/macros/form/FormElement.fragment.xml +42 -0
  978. package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper-dbg.js +118 -0
  979. package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper.js +6 -0
  980. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFormElement.fragment.xml +10 -0
  981. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.fragment.xml +13 -0
  982. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.metadata-dbg.js +73 -0
  983. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.metadata.js +6 -0
  984. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomHeaderFieldElement.fragment.xml +17 -0
  985. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.fragment.xml +13 -0
  986. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.metadata-dbg.js +82 -0
  987. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.metadata.js +6 -0
  988. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/fpm-dbg.js +15 -0
  989. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/fpm.js +6 -0
  990. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.fragment.xml +33 -0
  991. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +167 -0
  992. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +5 -0
  993. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +179 -0
  994. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +123 -0
  995. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +162 -0
  996. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +6 -0
  997. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field-dbg.designtime.js +811 -0
  998. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.designtime.js +6 -0
  999. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +20 -0
  1000. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +534 -0
  1001. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +6 -0
  1002. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate-dbg.js +76 -0
  1003. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate.js +6 -0
  1004. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/ConnectedDataField.fragment.xml +39 -0
  1005. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldContent.fragment.xml +94 -0
  1006. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +55 -0
  1007. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/AmountWithCurrency.fragment.xml +41 -0
  1008. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Avatar.fragment.xml +57 -0
  1009. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Button.fragment.xml +56 -0
  1010. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Contact.fragment.xml +38 -0
  1011. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +45 -0
  1012. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +18 -0
  1013. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/File.fragment.xml +31 -0
  1014. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +65 -0
  1015. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +30 -0
  1016. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +45 -0
  1017. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +56 -0
  1018. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +37 -0
  1019. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +16 -0
  1020. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +35 -0
  1021. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +33 -0
  1022. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/CheckBox.fragment.xml +28 -0
  1023. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +32 -0
  1024. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +33 -0
  1025. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +55 -0
  1026. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +33 -0
  1027. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +77 -0
  1028. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +73 -0
  1029. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/RatingIndicator.fragment.xml +23 -0
  1030. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +34 -0
  1031. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +33 -0
  1032. package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating-dbg.js +65 -0
  1033. package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating.js +5 -0
  1034. package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating.ts +40 -0
  1035. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +244 -0
  1036. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +5 -0
  1037. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +229 -0
  1038. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +215 -0
  1039. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +6 -0
  1040. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp-dbg.designtime.js +466 -0
  1041. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp.designtime.js +6 -0
  1042. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp.fragment.xml +23 -0
  1043. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +62 -0
  1044. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating-dbg.js +155 -0
  1045. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.js +5 -0
  1046. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.ts +133 -0
  1047. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +57 -0
  1048. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListFilterBar.fragment.xml +20 -0
  1049. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +1286 -0
  1050. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +6 -0
  1051. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +67 -0
  1052. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTableColumnHeader.fragment.xml +25 -0
  1053. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +144 -0
  1054. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +190 -0
  1055. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +9 -0
  1056. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +696 -0
  1057. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +9 -0
  1058. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +6 -0
  1059. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary-dbg.js +126 -0
  1060. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary.js +6 -0
  1061. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +115 -0
  1062. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditDialog.fragment.xml +106 -0
  1063. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler-dbg.js +708 -0
  1064. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler.js +6 -0
  1065. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +115 -0
  1066. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +6 -0
  1067. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +215 -0
  1068. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +140 -0
  1069. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +140 -0
  1070. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +140 -0
  1071. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +140 -0
  1072. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +140 -0
  1073. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +140 -0
  1074. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +140 -0
  1075. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +140 -0
  1076. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +140 -0
  1077. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +140 -0
  1078. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +129 -0
  1079. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +129 -0
  1080. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +129 -0
  1081. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +140 -0
  1082. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +140 -0
  1083. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +140 -0
  1084. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +140 -0
  1085. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +140 -0
  1086. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +140 -0
  1087. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +140 -0
  1088. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +140 -0
  1089. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +140 -0
  1090. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +140 -0
  1091. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +140 -0
  1092. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +140 -0
  1093. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +140 -0
  1094. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +140 -0
  1095. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +140 -0
  1096. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +140 -0
  1097. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +140 -0
  1098. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +140 -0
  1099. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +140 -0
  1100. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +140 -0
  1101. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +140 -0
  1102. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +140 -0
  1103. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +140 -0
  1104. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +140 -0
  1105. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +140 -0
  1106. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +140 -0
  1107. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +140 -0
  1108. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +140 -0
  1109. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +140 -0
  1110. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +140 -0
  1111. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +140 -0
  1112. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +140 -0
  1113. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +140 -0
  1114. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +140 -0
  1115. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +140 -0
  1116. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartContainer-dbg.js +620 -0
  1117. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartContainer.js +6 -0
  1118. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper-dbg.js +491 -0
  1119. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper.js +6 -0
  1120. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/AreaMicroChart.fragment.xml +180 -0
  1121. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/BulletMicroChart.fragment.xml +111 -0
  1122. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ColumnMicroChart.fragment.xml +99 -0
  1123. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ComparisonMicroChart.fragment.xml +64 -0
  1124. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/HarveyBallMicroChart.fragment.xml +64 -0
  1125. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/LineMicroChart.fragment.xml +67 -0
  1126. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartContent.fragment.xml +41 -0
  1127. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +52 -0
  1128. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +58 -0
  1129. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/StackedBarMicroChart.fragment.xml +54 -0
  1130. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +4885 -0
  1131. package/packages/sap.fe.macros/src/sap/fe/macros/share/ShareSheet.fragment.xml +26 -0
  1132. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +215 -0
  1133. package/packages/sap.fe.macros/src/sap/fe/macros/table/BasicSearch-dbg.js +73 -0
  1134. package/packages/sap.fe.macros/src/sap/fe/macros/table/BasicSearch.js +6 -0
  1135. package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +27 -0
  1136. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +133 -0
  1137. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnProperty.fragment.xml +43 -0
  1138. package/packages/sap.fe.macros/src/sap/fe/macros/table/Columns.fragment.xml +37 -0
  1139. package/packages/sap.fe.macros/src/sap/fe/macros/table/CreationRow.fragment.xml +33 -0
  1140. package/packages/sap.fe.macros/src/sap/fe/macros/table/CustomColumn.fragment.xml +16 -0
  1141. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer-dbg.js +298 -0
  1142. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer.js +6 -0
  1143. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableFullScreenUtil-dbg.js +194 -0
  1144. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableFullScreenUtil.js +6 -0
  1145. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +1399 -0
  1146. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +6 -0
  1147. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +231 -0
  1148. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +6 -0
  1149. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +468 -0
  1150. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +6 -0
  1151. package/packages/sap.fe.macros/src/sap/fe/macros/table/ValueHelp.fragment.xml +34 -0
  1152. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegate-dbg.js +32 -0
  1153. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +6 -0
  1154. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin-dbg.js +100 -0
  1155. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin.js +6 -0
  1156. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalALPTableDelegate-dbg.js +36 -0
  1157. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalALPTableDelegate.js +6 -0
  1158. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalTableDelegate-dbg.js +147 -0
  1159. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalTableDelegate.js +6 -0
  1160. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +818 -0
  1161. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +6 -0
  1162. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar-dbg.designtime.js +83 -0
  1163. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.designtime.js +6 -0
  1164. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.fragment.xml +115 -0
  1165. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata-dbg.js +204 -0
  1166. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +6 -0
  1167. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper-dbg.js +476 -0
  1168. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +6 -0
  1169. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime-dbg.js +286 -0
  1170. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -0
  1171. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveBarChart.fragment.xml +70 -0
  1172. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +69 -0
  1173. package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveLineChart.fragment.xml +70 -0
  1174. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +1001 -0
  1175. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -0
  1176. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -0
  1177. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jstemplates.json +1 -0
  1178. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1179. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1180. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +64 -0
  1181. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +67 -0
  1182. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +326 -0
  1183. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +349 -0
  1184. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +127 -0
  1185. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +127 -0
  1186. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +184 -0
  1187. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +263 -0
  1188. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithValueHelp.spec.js +63 -0
  1189. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithValueHelp.spec.ts +72 -0
  1190. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +32 -0
  1191. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +28 -0
  1192. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.js +39 -0
  1193. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.ts +26 -0
  1194. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.js +53 -0
  1195. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.ts +54 -0
  1196. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +142 -0
  1197. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +178 -0
  1198. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +401 -0
  1199. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +662 -0
  1200. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +571 -0
  1201. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +778 -0
  1202. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +712 -0
  1203. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +800 -0
  1204. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.js +192 -0
  1205. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.ts +194 -0
  1206. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +37 -0
  1207. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MacroComponent.spec.ts.snap +7 -0
  1208. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/PhantomUtil.spec.ts.snap +184 -0
  1209. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +820 -0
  1210. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ValueHelpMacro.spec.ts.snap +279 -0
  1211. package/packages/sap.fe.macros/test/sap/fe/macros/jest/addTemplatingTest.md +51 -0
  1212. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/AdminDataPopOver.cds +8 -0
  1213. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/CollectionField.cds +48 -0
  1214. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +295 -0
  1215. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithSemanticKey.cds +62 -0
  1216. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithValueHelp.cds +131 -0
  1217. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterFieldMacro.cds +124 -0
  1218. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/MicroChart.cds +47 -0
  1219. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/PhantomUtil.cds +20 -0
  1220. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +248 -0
  1221. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +113 -0
  1222. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/ValueHelpMacro.cds +163 -0
  1223. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +129 -0
  1224. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.cds +115 -0
  1225. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +180 -0
  1226. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +215 -0
  1227. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/__snapshots__/FieldTemplating.spec.ts.snap +160 -0
  1228. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragment.xml +15 -0
  1229. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragmentRepeat.xml +27 -0
  1230. package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/TestTSX.spec.tsx +49 -0
  1231. package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/__snapshots__/TestTSX.spec.tsx.snap +33 -0
  1232. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/common/testHelper.js +24 -0
  1233. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +154 -0
  1234. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/AnalyticalTableDelegate.qunit.js +158 -0
  1235. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartDelegate.qunit.js +275 -0
  1236. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartHelper.qunit.js +601 -0
  1237. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartHelperTemplate.qunit.js +67 -0
  1238. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/CommonHelper.qunit.js +1607 -0
  1239. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +2478 -0
  1240. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +383 -0
  1241. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarDelegate.qunit.js +89 -0
  1242. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarHelper.qunit.js +223 -0
  1243. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterFieldHelper.qunit.js +712 -0
  1244. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +245 -0
  1245. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +83 -0
  1246. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormHelper.qunit.js +209 -0
  1247. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +577 -0
  1248. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +271 -0
  1249. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/InteractiveChartHelper.qunit.js +1227 -0
  1250. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +123 -0
  1251. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartContainer.qunit.js +1637 -0
  1252. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelper.qunit.js +619 -0
  1253. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelperForTemplate.qunit.js +360 -0
  1254. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/PhantomUtil.qunit.js +307 -0
  1255. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/QuickViewLinkDelegate.qunit.js +81 -0
  1256. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableDelegate.qunit.js +734 -0
  1257. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +2630 -0
  1258. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelperTemplate.qunit.js +201 -0
  1259. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableRuntime.qunit.js +861 -0
  1260. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueHelpTemplating.qunit.js +176 -0
  1261. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +1133 -0
  1262. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/chartMetadata/metadata.xml +461 -0
  1263. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/flexibility/FormDelegate.qunit.js +408 -0
  1264. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacro.fragment.xml +9 -0
  1265. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacroMissingID.fragment.xml +9 -0
  1266. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/TableMacro.fragment.xml +22 -0
  1267. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/metadata/simpleMetadata.js +1415 -0
  1268. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/teststarter.qunit.html +13 -0
  1269. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/testsuite.qunit.html +14 -0
  1270. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/testsuite.qunit.js +41 -0
  1271. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.91.json +76 -0
  1272. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.94.json +29 -0
  1273. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +36 -0
  1274. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +6 -0
  1275. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavError-dbg.js +49 -0
  1276. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavError.js +6 -0
  1277. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler-dbg.js +2215 -0
  1278. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +6 -0
  1279. package/packages/sap.fe.navigation/src/sap/fe/navigation/PresentationVariant-dbg.js +347 -0
  1280. package/packages/sap.fe.navigation/src/sap/fe/navigation/PresentationVariant.js +6 -0
  1281. package/packages/sap.fe.navigation/src/sap/fe/navigation/SelectionVariant-dbg.js +774 -0
  1282. package/packages/sap.fe.navigation/src/sap/fe/navigation/SelectionVariant.js +6 -0
  1283. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +170 -0
  1284. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +19 -0
  1285. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js.map +9 -0
  1286. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +129 -0
  1287. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +9 -0
  1288. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +6 -0
  1289. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +44 -0
  1290. package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +215 -0
  1291. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -0
  1292. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -0
  1293. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.jsmeta.json +1 -0
  1294. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.jstemplates.json +1 -0
  1295. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1296. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1297. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/index.json +17 -0
  1298. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/CrossAppNavigationServiceMock.js +110 -0
  1299. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/NavigationHandlerTest.qunit.js +8625 -0
  1300. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/PresentationVariantTest.qunit.js +179 -0
  1301. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/SelectionVariantTest.qunit.js +1366 -0
  1302. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/teststarter.qunit.html +13 -0
  1303. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/testsuite.qunit.html +14 -0
  1304. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/testsuite.qunit.js +41 -0
  1305. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +35 -0
  1306. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +5 -0
  1307. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/controller/Placeholder-dbg.controller.js +60 -0
  1308. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/controller/Placeholder.controller.js +6 -0
  1309. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +41 -0
  1310. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +20 -0
  1311. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js.map +9 -0
  1312. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +21 -0
  1313. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +9 -0
  1314. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +6 -0
  1315. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +49 -0
  1316. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +725 -0
  1317. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/.theming +5 -0
  1318. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/Placeholder.less +504 -0
  1319. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.css +3 -0
  1320. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.less +4 -0
  1321. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.source.less +1439 -0
  1322. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library-RTL.css +3 -0
  1323. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library-parameters.json +1 -0
  1324. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.css +3 -0
  1325. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.less +511 -0
  1326. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.source.less +3 -0
  1327. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library_skeleton-RTL.css +1 -0
  1328. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library_skeleton.css +1 -0
  1329. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/resources.json +70 -0
  1330. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/.theming +27 -0
  1331. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.css +4 -0
  1332. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.less +1497 -0
  1333. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.source.less +1487 -0
  1334. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library-RTL.css +4 -0
  1335. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library-parameters.json +1 -0
  1336. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.css +4 -0
  1337. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.less +6 -0
  1338. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.source.less +3 -0
  1339. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library_skeleton-RTL.css +1 -0
  1340. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library_skeleton.css +1 -0
  1341. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/resources.json +64 -0
  1342. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/.theming +6 -0
  1343. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.css +3 -0
  1344. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.less +1463 -0
  1345. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.source.less +1453 -0
  1346. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library-RTL.css +3 -0
  1347. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library-parameters.json +1 -0
  1348. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.css +3 -0
  1349. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.less +6 -0
  1350. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.source.less +3 -0
  1351. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library_skeleton-RTL.css +1 -0
  1352. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library_skeleton.css +1 -0
  1353. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/resources.json +64 -0
  1354. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/.theming +6 -0
  1355. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.css +3 -0
  1356. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.less +1463 -0
  1357. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.source.less +1453 -0
  1358. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library-RTL.css +3 -0
  1359. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library-parameters.json +1 -0
  1360. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.css +3 -0
  1361. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.less +6 -0
  1362. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.source.less +3 -0
  1363. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library_skeleton-RTL.css +1 -0
  1364. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library_skeleton.css +1 -0
  1365. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/resources.json +64 -0
  1366. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/.theming +26 -0
  1367. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.css +4 -0
  1368. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.less +1497 -0
  1369. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.source.less +1487 -0
  1370. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library-RTL.css +4 -0
  1371. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library-parameters.json +1 -0
  1372. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.css +4 -0
  1373. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.less +6 -0
  1374. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.source.less +3 -0
  1375. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library_skeleton-RTL.css +1 -0
  1376. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library_skeleton.css +1 -0
  1377. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/resources.json +64 -0
  1378. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/.theming +6 -0
  1379. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.css +3 -0
  1380. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.less +1468 -0
  1381. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.source.less +1458 -0
  1382. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library-RTL.css +3 -0
  1383. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library-parameters.json +1 -0
  1384. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.css +3 -0
  1385. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.less +6 -0
  1386. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.source.less +3 -0
  1387. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library_skeleton-RTL.css +1 -0
  1388. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library_skeleton.css +1 -0
  1389. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/resources.json +64 -0
  1390. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/.theming +6 -0
  1391. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.css +3 -0
  1392. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.less +1468 -0
  1393. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.source.less +1458 -0
  1394. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library-RTL.css +3 -0
  1395. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library-parameters.json +1 -0
  1396. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.css +3 -0
  1397. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.less +6 -0
  1398. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.source.less +3 -0
  1399. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library_skeleton-RTL.css +1 -0
  1400. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library_skeleton.css +1 -0
  1401. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/resources.json +64 -0
  1402. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/.theming +6 -0
  1403. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.css +3 -0
  1404. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.less +1464 -0
  1405. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.source.less +1454 -0
  1406. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library-RTL.css +3 -0
  1407. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library-parameters.json +1 -0
  1408. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.css +3 -0
  1409. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.less +6 -0
  1410. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.source.less +3 -0
  1411. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library_skeleton-RTL.css +1 -0
  1412. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library_skeleton.css +1 -0
  1413. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/resources.json +64 -0
  1414. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/.theming +6 -0
  1415. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.css +3 -0
  1416. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.less +1464 -0
  1417. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.source.less +1454 -0
  1418. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library-RTL.css +3 -0
  1419. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library-parameters.json +1 -0
  1420. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.css +3 -0
  1421. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.less +6 -0
  1422. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.source.less +3 -0
  1423. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library_skeleton-RTL.css +1 -0
  1424. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library_skeleton.css +1 -0
  1425. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/resources.json +64 -0
  1426. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +10 -0
  1427. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.view.xml +11 -0
  1428. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderLR.fragment.html +8 -0
  1429. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderLR.view.xml +11 -0
  1430. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOP.fragment.html +8 -0
  1431. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOP.view.xml +11 -0
  1432. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +8 -0
  1433. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.view.xml +11 -0
  1434. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -0
  1435. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -0
  1436. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.jsmeta.json +1 -0
  1437. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.jstemplates.json +1 -0
  1438. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1439. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1440. package/packages/sap.fe.templates/src/sap/fe/templates/.library +74 -0
  1441. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +6 -0
  1442. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/Component-dbg.js +15 -0
  1443. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/Component.js +6 -0
  1444. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate-dbg.js +37 -0
  1445. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +6 -0
  1446. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +27 -0
  1447. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +27 -0
  1448. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +121 -0
  1449. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +6 -0
  1450. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +42 -0
  1451. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +6 -0
  1452. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +95 -0
  1453. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +6 -0
  1454. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +199 -0
  1455. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +954 -0
  1456. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +6 -0
  1457. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +28 -0
  1458. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +52 -0
  1459. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +6 -0
  1460. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +124 -0
  1461. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +6 -0
  1462. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +264 -0
  1463. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +6 -0
  1464. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +79 -0
  1465. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +32 -0
  1466. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CustomView.fragment.xml +10 -0
  1467. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.xml +49 -0
  1468. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +457 -0
  1469. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +6 -0
  1470. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +139 -0
  1471. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +6 -0
  1472. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +130 -0
  1473. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +6 -0
  1474. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +184 -0
  1475. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +1460 -0
  1476. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +6 -0
  1477. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +90 -0
  1478. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +6 -0
  1479. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableVBox-dbg.js +27 -0
  1480. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +6 -0
  1481. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock-dbg.js +57 -0
  1482. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +6 -0
  1483. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox-dbg.designtime.js +19 -0
  1484. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +6 -0
  1485. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableHBox-dbg.designtime.js +51 -0
  1486. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +6 -0
  1487. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableVBox-dbg.designtime.js +38 -0
  1488. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +6 -0
  1489. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility-dbg.js +19 -0
  1490. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +6 -0
  1491. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility-dbg.js +15 -0
  1492. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +6 -0
  1493. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +122 -0
  1494. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation-dbg.js +55 -0
  1495. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +6 -0
  1496. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/InternalRouting-dbg.js +20 -0
  1497. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +6 -0
  1498. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/MessageHandler-dbg.js +20 -0
  1499. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +6 -0
  1500. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Routing-dbg.js +21 -0
  1501. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Routing.js +6 -0
  1502. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +303 -0
  1503. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share.js +6 -0
  1504. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +45 -0
  1505. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +6 -0
  1506. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +282 -0
  1507. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +117 -0
  1508. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +5 -0
  1509. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +124 -0
  1510. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +183 -0
  1511. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +160 -0
  1512. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +117 -0
  1513. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +79 -0
  1514. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FormActions.fragment.xml +24 -0
  1515. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderContent.fragment.xml +54 -0
  1516. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +26 -0
  1517. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +69 -0
  1518. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +90 -0
  1519. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +41 -0
  1520. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderImage.fragment.xml +24 -0
  1521. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +20 -0
  1522. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +72 -0
  1523. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/RelatedApps.fragment.xml +22 -0
  1524. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +71 -0
  1525. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +175 -0
  1526. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionCustomSection.fragment.xml +18 -0
  1527. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +18 -0
  1528. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +18 -0
  1529. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionPresentationVisualization.fragment.xml +17 -0
  1530. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SideContentCustomContainer.fragment.xml +19 -0
  1531. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/TitleAndSubtitle.fragment.xml +24 -0
  1532. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +816 -0
  1533. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +6 -0
  1534. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +176 -0
  1535. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +6 -0
  1536. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +441 -0
  1537. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +6 -0
  1538. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/overrides/EditFlow-dbg.js +18 -0
  1539. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +6 -0
  1540. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +15 -0
  1541. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +9 -0
  1542. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/PlaceholderLR.view.xml +617 -0
  1543. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/PlaceholderOP.view.xml +588 -0
  1544. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Chart.fragment.xml +20 -0
  1545. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +26 -0
  1546. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +6 -0
  1547. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator-dbg.js +174 -0
  1548. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator.control.xml +24 -0
  1549. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator.js +6 -0
  1550. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +23 -0
  1551. package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js +10 -0
  1552. package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js.map +9 -0
  1553. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +72 -0
  1554. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +77 -0
  1555. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +9 -0
  1556. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +154 -0
  1557. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +9 -0
  1558. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +6 -0
  1559. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +136 -0
  1560. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle.properties +210 -0
  1561. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +135 -0
  1562. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +135 -0
  1563. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +135 -0
  1564. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +135 -0
  1565. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +135 -0
  1566. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +135 -0
  1567. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +135 -0
  1568. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +135 -0
  1569. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +135 -0
  1570. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +135 -0
  1571. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +135 -0
  1572. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +135 -0
  1573. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +135 -0
  1574. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +135 -0
  1575. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +135 -0
  1576. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +135 -0
  1577. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +135 -0
  1578. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +135 -0
  1579. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +135 -0
  1580. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +135 -0
  1581. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +135 -0
  1582. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +135 -0
  1583. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +135 -0
  1584. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +135 -0
  1585. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +135 -0
  1586. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +135 -0
  1587. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +135 -0
  1588. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +135 -0
  1589. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +135 -0
  1590. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +135 -0
  1591. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +135 -0
  1592. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +135 -0
  1593. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +135 -0
  1594. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +135 -0
  1595. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +135 -0
  1596. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +135 -0
  1597. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +135 -0
  1598. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +135 -0
  1599. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +135 -0
  1600. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +135 -0
  1601. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +135 -0
  1602. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +135 -0
  1603. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +135 -0
  1604. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +135 -0
  1605. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +135 -0
  1606. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +135 -0
  1607. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +135 -0
  1608. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +135 -0
  1609. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +2103 -0
  1610. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/Component.js +9 -0
  1611. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/WEB-INF/web.xml +120 -0
  1612. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/annotations/annotations.xml +43 -0
  1613. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/i18n/i18n.properties +13 -0
  1614. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +176 -0
  1615. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/manifestCreateDialogWithFCL.json +87 -0
  1616. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/testFLP.html +71 -0
  1617. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/testFLPService.html +82 -0
  1618. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/flpSandbox.html +24 -0
  1619. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/flpSandbox.js +225 -0
  1620. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/mockServer.js +780 -0
  1621. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/mockServerHelper.js +195 -0
  1622. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -0
  1623. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -0
  1624. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -0
  1625. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jstemplates.json +1 -0
  1626. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1627. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1628. package/packages/sap.fe.templates/test/sap/fe/templates/qunit/common/testHelper.js +80 -0
  1629. package/packages/sap.fe.templates/test/sap/fe/templates/qunit/common/utility.js +28 -0
  1630. package/packages/sap.fe.templates/test/sap/fe/templates/qunit/testsuite.qunit.html +14 -0
  1631. package/packages/sap.fe.templates/test/sap/fe/templates/qunit/testsuite.qunit.js +33 -0
  1632. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.91.json +134 -0
  1633. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.94.json +34 -0
  1634. package/packages/sap.fe.test/src/sap/fe/test/.library +30 -0
  1635. package/packages/sap.fe.test/src/sap/fe/test/.theming +6 -0
  1636. package/packages/sap.fe.test/src/sap/fe/test/BaseActions-dbg.js +107 -0
  1637. package/packages/sap.fe.test/src/sap/fe/test/BaseActions.js +6 -0
  1638. package/packages/sap.fe.test/src/sap/fe/test/BaseArrangements-dbg.js +199 -0
  1639. package/packages/sap.fe.test/src/sap/fe/test/BaseArrangements.js +6 -0
  1640. package/packages/sap.fe.test/src/sap/fe/test/BaseAssertions-dbg.js +56 -0
  1641. package/packages/sap.fe.test/src/sap/fe/test/BaseAssertions.js +6 -0
  1642. package/packages/sap.fe.test/src/sap/fe/test/ConfirmDialog-dbg.js +72 -0
  1643. package/packages/sap.fe.test/src/sap/fe/test/ConfirmDialog.js +6 -0
  1644. package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +86 -0
  1645. package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +6 -0
  1646. package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +743 -0
  1647. package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +6 -0
  1648. package/packages/sap.fe.test/src/sap/fe/test/FlexibleColumnLayout-dbg.js +149 -0
  1649. package/packages/sap.fe.test/src/sap/fe/test/FlexibleColumnLayout.js +6 -0
  1650. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +284 -0
  1651. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +5 -0
  1652. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +242 -0
  1653. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner-dbg.js +314 -0
  1654. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner.js +6 -0
  1655. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +525 -0
  1656. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +6 -0
  1657. package/packages/sap.fe.test/src/sap/fe/test/LocationUtil-dbg.js +54 -0
  1658. package/packages/sap.fe.test/src/sap/fe/test/LocationUtil.js +6 -0
  1659. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +857 -0
  1660. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +6 -0
  1661. package/packages/sap.fe.test/src/sap/fe/test/Shell-dbg.js +226 -0
  1662. package/packages/sap.fe.test/src/sap/fe/test/Shell.js +6 -0
  1663. package/packages/sap.fe.test/src/sap/fe/test/Stubs-dbg.js +97 -0
  1664. package/packages/sap.fe.test/src/sap/fe/test/Stubs.js +6 -0
  1665. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +447 -0
  1666. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +6 -0
  1667. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils-dbg.js +243 -0
  1668. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils.js +6 -0
  1669. package/packages/sap.fe.test/src/sap/fe/test/Utils-dbg.js +301 -0
  1670. package/packages/sap.fe.test/src/sap/fe/test/Utils.js +6 -0
  1671. package/packages/sap.fe.test/src/sap/fe/test/api/APIHelper-dbg.js +117 -0
  1672. package/packages/sap.fe.test/src/sap/fe/test/api/APIHelper.js +6 -0
  1673. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +285 -0
  1674. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI.js +6 -0
  1675. package/packages/sap.fe.test/src/sap/fe/test/api/ChartActions-dbg.js +131 -0
  1676. package/packages/sap.fe.test/src/sap/fe/test/api/ChartActions.js +6 -0
  1677. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions-dbg.js +114 -0
  1678. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions.js +6 -0
  1679. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +93 -0
  1680. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +6 -0
  1681. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +101 -0
  1682. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +6 -0
  1683. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +123 -0
  1684. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +6 -0
  1685. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions-dbg.js +44 -0
  1686. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions.js +6 -0
  1687. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions-dbg.js +55 -0
  1688. package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions.js +6 -0
  1689. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions-dbg.js +59 -0
  1690. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions.js +6 -0
  1691. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions-dbg.js +87 -0
  1692. package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions.js +6 -0
  1693. package/packages/sap.fe.test/src/sap/fe/test/api/DialogType-dbg.js +76 -0
  1694. package/packages/sap.fe.test/src/sap/fe/test/api/DialogType.js +6 -0
  1695. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions-dbg.js +317 -0
  1696. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions.js +6 -0
  1697. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions-dbg.js +263 -0
  1698. package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions.js +6 -0
  1699. package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +67 -0
  1700. package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +6 -0
  1701. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI-dbg.js +197 -0
  1702. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI.js +6 -0
  1703. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +310 -0
  1704. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +6 -0
  1705. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAssertions-dbg.js +413 -0
  1706. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAssertions.js +6 -0
  1707. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAPI-dbg.js +37 -0
  1708. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAPI.js +6 -0
  1709. package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsBase-dbg.js +47 -0
  1710. package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsBase.js +6 -0
  1711. package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsOP-dbg.js +83 -0
  1712. package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsOP.js +6 -0
  1713. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsBase-dbg.js +66 -0
  1714. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsBase.js +6 -0
  1715. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsOP-dbg.js +98 -0
  1716. package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsOP.js +6 -0
  1717. package/packages/sap.fe.test/src/sap/fe/test/api/FormAPI-dbg.js +82 -0
  1718. package/packages/sap.fe.test/src/sap/fe/test/api/FormAPI.js +6 -0
  1719. package/packages/sap.fe.test/src/sap/fe/test/api/FormActions-dbg.js +180 -0
  1720. package/packages/sap.fe.test/src/sap/fe/test/api/FormActions.js +6 -0
  1721. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +182 -0
  1722. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +6 -0
  1723. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAPI-dbg.js +152 -0
  1724. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAPI.js +6 -0
  1725. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActions-dbg.js +232 -0
  1726. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActions.js +6 -0
  1727. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActionsLR-dbg.js +94 -0
  1728. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActionsLR.js +6 -0
  1729. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertions-dbg.js +495 -0
  1730. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertions.js +6 -0
  1731. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertionsLR-dbg.js +110 -0
  1732. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertionsLR.js +6 -0
  1733. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderLR-dbg.js +74 -0
  1734. package/packages/sap.fe.test/src/sap/fe/test/api/HeaderLR.js +6 -0
  1735. package/packages/sap.fe.test/src/sap/fe/test/api/TableAPI-dbg.js +452 -0
  1736. package/packages/sap.fe.test/src/sap/fe/test/api/TableAPI.js +6 -0
  1737. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +958 -0
  1738. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions.js +6 -0
  1739. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +697 -0
  1740. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +6 -0
  1741. package/packages/sap.fe.test/src/sap/fe/test/builder/DialogBuilder-dbg.js +118 -0
  1742. package/packages/sap.fe.test/src/sap/fe/test/builder/DialogBuilder.js +6 -0
  1743. package/packages/sap.fe.test/src/sap/fe/test/builder/FEBuilder-dbg.js +428 -0
  1744. package/packages/sap.fe.test/src/sap/fe/test/builder/FEBuilder.js +6 -0
  1745. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder-dbg.js +56 -0
  1746. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder.js +6 -0
  1747. package/packages/sap.fe.test/src/sap/fe/test/builder/MacroFieldBuilder-dbg.js +174 -0
  1748. package/packages/sap.fe.test/src/sap/fe/test/builder/MacroFieldBuilder.js +6 -0
  1749. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFieldBuilder-dbg.js +254 -0
  1750. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFieldBuilder.js +6 -0
  1751. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterBarBuilder-dbg.js +112 -0
  1752. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterBarBuilder.js +6 -0
  1753. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterFieldBuilder-dbg.js +54 -0
  1754. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +6 -0
  1755. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +1069 -0
  1756. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +6 -0
  1757. package/packages/sap.fe.test/src/sap/fe/test/builder/OverflowToolbarBuilder-dbg.js +89 -0
  1758. package/packages/sap.fe.test/src/sap/fe/test/builder/OverflowToolbarBuilder.js +6 -0
  1759. package/packages/sap.fe.test/src/sap/fe/test/builder/VMBuilder-dbg.js +268 -0
  1760. package/packages/sap.fe.test/src/sap/fe/test/builder/VMBuilder.js +6 -0
  1761. package/packages/sap.fe.test/src/sap/fe/test/internal/FEArrangements-dbg.js +66 -0
  1762. package/packages/sap.fe.test/src/sap/fe/test/internal/FEArrangements.js +6 -0
  1763. package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner-dbg.js +55 -0
  1764. package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner.js +6 -0
  1765. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +37 -0
  1766. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +78 -0
  1767. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +9 -0
  1768. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +587 -0
  1769. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +9 -0
  1770. package/packages/sap.fe.test/src/sap/fe/test/library.js +6 -0
  1771. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +39 -0
  1772. package/packages/sap.fe.test/src/sap/fe/test/massEdit-dbg.js +99 -0
  1773. package/packages/sap.fe.test/src/sap/fe/test/massEdit.js +6 -0
  1774. package/packages/sap.fe.test/src/sap/fe/test/resources.json +1972 -0
  1775. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -0
  1776. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -0
  1777. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -0
  1778. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jstemplates.json +1 -0
  1779. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -0
  1780. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmltemplates.json +1 -0
  1781. package/packages/sap.fe.test/test/sap/fe/test/mockserver/MockServer.js +134870 -0
  1782. package/src/LICENSE.txt +23 -0
  1783. package/ui5.yaml +66 -0
@@ -0,0 +1,1692 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define([], function () {
6
+ "use strict";
7
+
8
+ var _exports = {};
9
+
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
11
+
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+
18
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
19
+
20
+ function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
21
+
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+
26
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
+
28
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
29
+
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
+
32
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
33
+
34
+ var Path = function Path(pathExpression, targetName, annotationsTerm, annotationType, term) {
35
+ _classCallCheck(this, Path);
36
+
37
+ this.path = pathExpression.Path;
38
+ this.type = "Path";
39
+ this.$target = targetName;
40
+ this.term = term, this.annotationType = annotationType, this.annotationsTerm = annotationsTerm;
41
+ };
42
+
43
+ var TermToTypes;
44
+
45
+ (function (TermToTypes) {
46
+ TermToTypes["Org.OData.Authorization.V1.SecuritySchemes"] = "Org.OData.Authorization.V1.SecurityScheme";
47
+ TermToTypes["Org.OData.Authorization.V1.Authorizations"] = "Org.OData.Authorization.V1.Authorization";
48
+ TermToTypes["Org.OData.Core.V1.Revisions"] = "Org.OData.Core.V1.RevisionType";
49
+ TermToTypes["Org.OData.Core.V1.Links"] = "Org.OData.Core.V1.Link";
50
+ TermToTypes["Org.OData.Core.V1.Example"] = "Org.OData.Core.V1.ExampleValue";
51
+ TermToTypes["Org.OData.Core.V1.Messages"] = "Org.OData.Core.V1.MessageType";
52
+ TermToTypes["Org.OData.Core.V1.ValueException"] = "Org.OData.Core.V1.ValueExceptionType";
53
+ TermToTypes["Org.OData.Core.V1.ResourceException"] = "Org.OData.Core.V1.ResourceExceptionType";
54
+ TermToTypes["Org.OData.Core.V1.DataModificationException"] = "Org.OData.Core.V1.DataModificationExceptionType";
55
+ TermToTypes["Org.OData.Core.V1.IsLanguageDependent"] = "Org.OData.Core.V1.Tag";
56
+ TermToTypes["Org.OData.Core.V1.DereferenceableIDs"] = "Org.OData.Core.V1.Tag";
57
+ TermToTypes["Org.OData.Core.V1.ConventionalIDs"] = "Org.OData.Core.V1.Tag";
58
+ TermToTypes["Org.OData.Core.V1.Permissions"] = "Org.OData.Core.V1.Permission";
59
+ TermToTypes["Org.OData.Core.V1.DefaultNamespace"] = "Org.OData.Core.V1.Tag";
60
+ TermToTypes["Org.OData.Core.V1.Immutable"] = "Org.OData.Core.V1.Tag";
61
+ TermToTypes["Org.OData.Core.V1.Computed"] = "Org.OData.Core.V1.Tag";
62
+ TermToTypes["Org.OData.Core.V1.ComputedDefaultValue"] = "Org.OData.Core.V1.Tag";
63
+ TermToTypes["Org.OData.Core.V1.IsURL"] = "Org.OData.Core.V1.Tag";
64
+ TermToTypes["Org.OData.Core.V1.IsMediaType"] = "Org.OData.Core.V1.Tag";
65
+ TermToTypes["Org.OData.Core.V1.ContentDisposition"] = "Org.OData.Core.V1.ContentDispositionType";
66
+ TermToTypes["Org.OData.Core.V1.OptimisticConcurrency"] = "Edm.PropertyPath";
67
+ TermToTypes["Org.OData.Core.V1.AdditionalProperties"] = "Org.OData.Core.V1.Tag";
68
+ TermToTypes["Org.OData.Core.V1.AutoExpand"] = "Org.OData.Core.V1.Tag";
69
+ TermToTypes["Org.OData.Core.V1.AutoExpandReferences"] = "Org.OData.Core.V1.Tag";
70
+ TermToTypes["Org.OData.Core.V1.MayImplement"] = "Org.OData.Core.V1.QualifiedTypeName";
71
+ TermToTypes["Org.OData.Core.V1.Ordered"] = "Org.OData.Core.V1.Tag";
72
+ TermToTypes["Org.OData.Core.V1.PositionalInsert"] = "Org.OData.Core.V1.Tag";
73
+ TermToTypes["Org.OData.Core.V1.AlternateKeys"] = "Org.OData.Core.V1.AlternateKey";
74
+ TermToTypes["Org.OData.Core.V1.OptionalParameter"] = "Org.OData.Core.V1.OptionalParameterType";
75
+ TermToTypes["Org.OData.Core.V1.OperationAvailable"] = "Edm.Boolean";
76
+ TermToTypes["Org.OData.Core.V1.SymbolicName"] = "Org.OData.Core.V1.SimpleIdentifier";
77
+ TermToTypes["Org.OData.Capabilities.V1.ConformanceLevel"] = "Org.OData.Capabilities.V1.ConformanceLevelType";
78
+ TermToTypes["Org.OData.Capabilities.V1.AsynchronousRequestsSupported"] = "Org.OData.Core.V1.Tag";
79
+ TermToTypes["Org.OData.Capabilities.V1.BatchContinueOnErrorSupported"] = "Org.OData.Core.V1.Tag";
80
+ TermToTypes["Org.OData.Capabilities.V1.IsolationSupported"] = "Org.OData.Capabilities.V1.IsolationLevel";
81
+ TermToTypes["Org.OData.Capabilities.V1.CrossJoinSupported"] = "Org.OData.Core.V1.Tag";
82
+ TermToTypes["Org.OData.Capabilities.V1.CallbackSupported"] = "Org.OData.Capabilities.V1.CallbackType";
83
+ TermToTypes["Org.OData.Capabilities.V1.ChangeTracking"] = "Org.OData.Capabilities.V1.ChangeTrackingType";
84
+ TermToTypes["Org.OData.Capabilities.V1.CountRestrictions"] = "Org.OData.Capabilities.V1.CountRestrictionsType";
85
+ TermToTypes["Org.OData.Capabilities.V1.NavigationRestrictions"] = "Org.OData.Capabilities.V1.NavigationRestrictionsType";
86
+ TermToTypes["Org.OData.Capabilities.V1.IndexableByKey"] = "Org.OData.Core.V1.Tag";
87
+ TermToTypes["Org.OData.Capabilities.V1.TopSupported"] = "Org.OData.Core.V1.Tag";
88
+ TermToTypes["Org.OData.Capabilities.V1.SkipSupported"] = "Org.OData.Core.V1.Tag";
89
+ TermToTypes["Org.OData.Capabilities.V1.ComputeSupported"] = "Org.OData.Core.V1.Tag";
90
+ TermToTypes["Org.OData.Capabilities.V1.SelectSupport"] = "Org.OData.Capabilities.V1.SelectSupportType";
91
+ TermToTypes["Org.OData.Capabilities.V1.BatchSupported"] = "Org.OData.Core.V1.Tag";
92
+ TermToTypes["Org.OData.Capabilities.V1.BatchSupport"] = "Org.OData.Capabilities.V1.BatchSupportType";
93
+ TermToTypes["Org.OData.Capabilities.V1.FilterRestrictions"] = "Org.OData.Capabilities.V1.FilterRestrictionsType";
94
+ TermToTypes["Org.OData.Capabilities.V1.SortRestrictions"] = "Org.OData.Capabilities.V1.SortRestrictionsType";
95
+ TermToTypes["Org.OData.Capabilities.V1.ExpandRestrictions"] = "Org.OData.Capabilities.V1.ExpandRestrictionsType";
96
+ TermToTypes["Org.OData.Capabilities.V1.SearchRestrictions"] = "Org.OData.Capabilities.V1.SearchRestrictionsType";
97
+ TermToTypes["Org.OData.Capabilities.V1.KeyAsSegmentSupported"] = "Org.OData.Core.V1.Tag";
98
+ TermToTypes["Org.OData.Capabilities.V1.QuerySegmentSupported"] = "Org.OData.Core.V1.Tag";
99
+ TermToTypes["Org.OData.Capabilities.V1.InsertRestrictions"] = "Org.OData.Capabilities.V1.InsertRestrictionsType";
100
+ TermToTypes["Org.OData.Capabilities.V1.DeepInsertSupport"] = "Org.OData.Capabilities.V1.DeepInsertSupportType";
101
+ TermToTypes["Org.OData.Capabilities.V1.UpdateRestrictions"] = "Org.OData.Capabilities.V1.UpdateRestrictionsType";
102
+ TermToTypes["Org.OData.Capabilities.V1.DeepUpdateSupport"] = "Org.OData.Capabilities.V1.DeepUpdateSupportType";
103
+ TermToTypes["Org.OData.Capabilities.V1.DeleteRestrictions"] = "Org.OData.Capabilities.V1.DeleteRestrictionsType";
104
+ TermToTypes["Org.OData.Capabilities.V1.CollectionPropertyRestrictions"] = "Org.OData.Capabilities.V1.CollectionPropertyRestrictionsType";
105
+ TermToTypes["Org.OData.Capabilities.V1.OperationRestrictions"] = "Org.OData.Capabilities.V1.OperationRestrictionsType";
106
+ TermToTypes["Org.OData.Capabilities.V1.AnnotationValuesInQuerySupported"] = "Org.OData.Core.V1.Tag";
107
+ TermToTypes["Org.OData.Capabilities.V1.ModificationQueryOptions"] = "Org.OData.Capabilities.V1.ModificationQueryOptionsType";
108
+ TermToTypes["Org.OData.Capabilities.V1.ReadRestrictions"] = "Org.OData.Capabilities.V1.ReadRestrictionsType";
109
+ TermToTypes["Org.OData.Capabilities.V1.CustomHeaders"] = "Org.OData.Capabilities.V1.CustomParameter";
110
+ TermToTypes["Org.OData.Capabilities.V1.CustomQueryOptions"] = "Org.OData.Capabilities.V1.CustomParameter";
111
+ TermToTypes["Org.OData.Capabilities.V1.MediaLocationUpdateSupported"] = "Org.OData.Core.V1.Tag";
112
+ TermToTypes["Org.OData.Aggregation.V1.ApplySupported"] = "Org.OData.Aggregation.V1.ApplySupportedType";
113
+ TermToTypes["Org.OData.Aggregation.V1.Groupable"] = "Org.OData.Core.V1.Tag";
114
+ TermToTypes["Org.OData.Aggregation.V1.Aggregatable"] = "Org.OData.Core.V1.Tag";
115
+ TermToTypes["Org.OData.Aggregation.V1.ContextDefiningProperties"] = "Edm.PropertyPath";
116
+ TermToTypes["Org.OData.Aggregation.V1.LeveledHierarchy"] = "Edm.PropertyPath";
117
+ TermToTypes["Org.OData.Aggregation.V1.RecursiveHierarchy"] = "Org.OData.Aggregation.V1.RecursiveHierarchyType";
118
+ TermToTypes["Org.OData.Aggregation.V1.AvailableOnAggregates"] = "Org.OData.Aggregation.V1.AvailableOnAggregatesType";
119
+ TermToTypes["Org.OData.Validation.V1.Minimum"] = "Edm.PrimitiveType";
120
+ TermToTypes["Org.OData.Validation.V1.Maximum"] = "Edm.PrimitiveType";
121
+ TermToTypes["Org.OData.Validation.V1.Exclusive"] = "Org.OData.Core.V1.Tag";
122
+ TermToTypes["Org.OData.Validation.V1.AllowedValues"] = "Org.OData.Validation.V1.AllowedValue";
123
+ TermToTypes["Org.OData.Validation.V1.MultipleOf"] = "Edm.Decimal";
124
+ TermToTypes["Org.OData.Validation.V1.Constraint"] = "Org.OData.Validation.V1.ConstraintType";
125
+ TermToTypes["Org.OData.Validation.V1.ItemsOf"] = "Org.OData.Validation.V1.ItemsOfType";
126
+ TermToTypes["Org.OData.Validation.V1.OpenPropertyTypeConstraint"] = "Org.OData.Core.V1.QualifiedTypeName";
127
+ TermToTypes["Org.OData.Validation.V1.DerivedTypeConstraint"] = "Org.OData.Core.V1.QualifiedTypeName";
128
+ TermToTypes["Org.OData.Validation.V1.AllowedTerms"] = "Org.OData.Core.V1.QualifiedTermName";
129
+ TermToTypes["Org.OData.Validation.V1.ApplicableTerms"] = "Org.OData.Core.V1.QualifiedTermName";
130
+ TermToTypes["Org.OData.Validation.V1.MaxItems"] = "Edm.Int64";
131
+ TermToTypes["Org.OData.Validation.V1.MinItems"] = "Edm.Int64";
132
+ TermToTypes["Org.OData.Measures.V1.Scale"] = "Edm.Byte";
133
+ TermToTypes["Org.OData.Measures.V1.DurationGranularity"] = "Org.OData.Measures.V1.DurationGranularityType";
134
+ TermToTypes["com.sap.vocabularies.Analytics.v1.Dimension"] = "Org.OData.Core.V1.Tag";
135
+ TermToTypes["com.sap.vocabularies.Analytics.v1.Measure"] = "Org.OData.Core.V1.Tag";
136
+ TermToTypes["com.sap.vocabularies.Analytics.v1.AccumulativeMeasure"] = "Org.OData.Core.V1.Tag";
137
+ TermToTypes["com.sap.vocabularies.Analytics.v1.RolledUpPropertyCount"] = "Edm.Int16";
138
+ TermToTypes["com.sap.vocabularies.Analytics.v1.PlanningAction"] = "Org.OData.Core.V1.Tag";
139
+ TermToTypes["com.sap.vocabularies.Analytics.v1.AggregatedProperties"] = "com.sap.vocabularies.Analytics.v1.AggregatedPropertyType";
140
+ TermToTypes["com.sap.vocabularies.Common.v1.ServiceVersion"] = "Edm.Int32";
141
+ TermToTypes["com.sap.vocabularies.Common.v1.ServiceSchemaVersion"] = "Edm.Int32";
142
+ TermToTypes["com.sap.vocabularies.Common.v1.TextFor"] = "Edm.PropertyPath";
143
+ TermToTypes["com.sap.vocabularies.Common.v1.IsLanguageIdentifier"] = "Org.OData.Core.V1.Tag";
144
+ TermToTypes["com.sap.vocabularies.Common.v1.TextFormat"] = "com.sap.vocabularies.Common.v1.TextFormatType";
145
+ TermToTypes["com.sap.vocabularies.Common.v1.IsDigitSequence"] = "Org.OData.Core.V1.Tag";
146
+ TermToTypes["com.sap.vocabularies.Common.v1.IsUpperCase"] = "Org.OData.Core.V1.Tag";
147
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCurrency"] = "Org.OData.Core.V1.Tag";
148
+ TermToTypes["com.sap.vocabularies.Common.v1.IsUnit"] = "Org.OData.Core.V1.Tag";
149
+ TermToTypes["com.sap.vocabularies.Common.v1.UnitSpecificScale"] = "Edm.PrimitiveType";
150
+ TermToTypes["com.sap.vocabularies.Common.v1.UnitSpecificPrecision"] = "Edm.PrimitiveType";
151
+ TermToTypes["com.sap.vocabularies.Common.v1.SecondaryKey"] = "Edm.PropertyPath";
152
+ TermToTypes["com.sap.vocabularies.Common.v1.MinOccurs"] = "Edm.Int64";
153
+ TermToTypes["com.sap.vocabularies.Common.v1.MaxOccurs"] = "Edm.Int64";
154
+ TermToTypes["com.sap.vocabularies.Common.v1.AssociationEntity"] = "Edm.NavigationPropertyPath";
155
+ TermToTypes["com.sap.vocabularies.Common.v1.DerivedNavigation"] = "Edm.NavigationPropertyPath";
156
+ TermToTypes["com.sap.vocabularies.Common.v1.Masked"] = "Org.OData.Core.V1.Tag";
157
+ TermToTypes["com.sap.vocabularies.Common.v1.MaskedAlways"] = "Org.OData.Core.V1.Tag";
158
+ TermToTypes["com.sap.vocabularies.Common.v1.SemanticObjectMapping"] = "com.sap.vocabularies.Common.v1.SemanticObjectMappingType";
159
+ TermToTypes["com.sap.vocabularies.Common.v1.IsInstanceAnnotation"] = "Org.OData.Core.V1.Tag";
160
+ TermToTypes["com.sap.vocabularies.Common.v1.FilterExpressionRestrictions"] = "com.sap.vocabularies.Common.v1.FilterExpressionRestrictionType";
161
+ TermToTypes["com.sap.vocabularies.Common.v1.FieldControl"] = "com.sap.vocabularies.Common.v1.FieldControlType";
162
+ TermToTypes["com.sap.vocabularies.Common.v1.Application"] = "com.sap.vocabularies.Common.v1.ApplicationType";
163
+ TermToTypes["com.sap.vocabularies.Common.v1.Timestamp"] = "Edm.DateTimeOffset";
164
+ TermToTypes["com.sap.vocabularies.Common.v1.ErrorResolution"] = "com.sap.vocabularies.Common.v1.ErrorResolutionType";
165
+ TermToTypes["com.sap.vocabularies.Common.v1.Messages"] = "Edm.ComplexType";
166
+ TermToTypes["com.sap.vocabularies.Common.v1.numericSeverity"] = "com.sap.vocabularies.Common.v1.NumericMessageSeverityType";
167
+ TermToTypes["com.sap.vocabularies.Common.v1.MaximumNumericMessageSeverity"] = "com.sap.vocabularies.Common.v1.NumericMessageSeverityType";
168
+ TermToTypes["com.sap.vocabularies.Common.v1.IsActionCritical"] = "Edm.Boolean";
169
+ TermToTypes["com.sap.vocabularies.Common.v1.Attributes"] = "Edm.PropertyPath";
170
+ TermToTypes["com.sap.vocabularies.Common.v1.RelatedRecursiveHierarchy"] = "Edm.AnnotationPath";
171
+ TermToTypes["com.sap.vocabularies.Common.v1.Interval"] = "com.sap.vocabularies.Common.v1.IntervalType";
172
+ TermToTypes["com.sap.vocabularies.Common.v1.ResultContext"] = "Org.OData.Core.V1.Tag";
173
+ TermToTypes["com.sap.vocabularies.Common.v1.WeakReferentialConstraint"] = "com.sap.vocabularies.Common.v1.WeakReferentialConstraintType";
174
+ TermToTypes["com.sap.vocabularies.Common.v1.IsNaturalPerson"] = "Org.OData.Core.V1.Tag";
175
+ TermToTypes["com.sap.vocabularies.Common.v1.ValueList"] = "com.sap.vocabularies.Common.v1.ValueListType";
176
+ TermToTypes["com.sap.vocabularies.Common.v1.ValueListRelevantQualifiers"] = "com.sap.vocabularies.Common.v1.SimpleIdentifier";
177
+ TermToTypes["com.sap.vocabularies.Common.v1.ValueListWithFixedValues"] = "Org.OData.Core.V1.Tag";
178
+ TermToTypes["com.sap.vocabularies.Common.v1.ValueListMapping"] = "com.sap.vocabularies.Common.v1.ValueListMappingType";
179
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarYear"] = "Org.OData.Core.V1.Tag";
180
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarHalfyear"] = "Org.OData.Core.V1.Tag";
181
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarQuarter"] = "Org.OData.Core.V1.Tag";
182
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarMonth"] = "Org.OData.Core.V1.Tag";
183
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarWeek"] = "Org.OData.Core.V1.Tag";
184
+ TermToTypes["com.sap.vocabularies.Common.v1.IsDayOfCalendarMonth"] = "Org.OData.Core.V1.Tag";
185
+ TermToTypes["com.sap.vocabularies.Common.v1.IsDayOfCalendarYear"] = "Org.OData.Core.V1.Tag";
186
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarYearHalfyear"] = "Org.OData.Core.V1.Tag";
187
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarYearQuarter"] = "Org.OData.Core.V1.Tag";
188
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarYearMonth"] = "Org.OData.Core.V1.Tag";
189
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarYearWeek"] = "Org.OData.Core.V1.Tag";
190
+ TermToTypes["com.sap.vocabularies.Common.v1.IsCalendarDate"] = "Org.OData.Core.V1.Tag";
191
+ TermToTypes["com.sap.vocabularies.Common.v1.IsFiscalYear"] = "Org.OData.Core.V1.Tag";
192
+ TermToTypes["com.sap.vocabularies.Common.v1.IsFiscalPeriod"] = "Org.OData.Core.V1.Tag";
193
+ TermToTypes["com.sap.vocabularies.Common.v1.IsFiscalYearPeriod"] = "Org.OData.Core.V1.Tag";
194
+ TermToTypes["com.sap.vocabularies.Common.v1.IsFiscalQuarter"] = "Org.OData.Core.V1.Tag";
195
+ TermToTypes["com.sap.vocabularies.Common.v1.IsFiscalYearQuarter"] = "Org.OData.Core.V1.Tag";
196
+ TermToTypes["com.sap.vocabularies.Common.v1.IsFiscalWeek"] = "Org.OData.Core.V1.Tag";
197
+ TermToTypes["com.sap.vocabularies.Common.v1.IsFiscalYearWeek"] = "Org.OData.Core.V1.Tag";
198
+ TermToTypes["com.sap.vocabularies.Common.v1.IsDayOfFiscalYear"] = "Org.OData.Core.V1.Tag";
199
+ TermToTypes["com.sap.vocabularies.Common.v1.IsFiscalYearVariant"] = "Org.OData.Core.V1.Tag";
200
+ TermToTypes["com.sap.vocabularies.Common.v1.MutuallyExclusiveTerm"] = "Org.OData.Core.V1.Tag";
201
+ TermToTypes["com.sap.vocabularies.Common.v1.DraftRoot"] = "com.sap.vocabularies.Common.v1.DraftRootType";
202
+ TermToTypes["com.sap.vocabularies.Common.v1.DraftNode"] = "com.sap.vocabularies.Common.v1.DraftNodeType";
203
+ TermToTypes["com.sap.vocabularies.Common.v1.DraftActivationVia"] = "com.sap.vocabularies.Common.v1.SimpleIdentifier";
204
+ TermToTypes["com.sap.vocabularies.Common.v1.EditableFieldFor"] = "Edm.PropertyPath";
205
+ TermToTypes["com.sap.vocabularies.Common.v1.SemanticKey"] = "Edm.PropertyPath";
206
+ TermToTypes["com.sap.vocabularies.Common.v1.SideEffects"] = "com.sap.vocabularies.Common.v1.SideEffectsType";
207
+ TermToTypes["com.sap.vocabularies.Common.v1.DefaultValuesFunction"] = "com.sap.vocabularies.Common.v1.QualifiedName";
208
+ TermToTypes["com.sap.vocabularies.Common.v1.FilterDefaultValue"] = "Edm.PrimitiveType";
209
+ TermToTypes["com.sap.vocabularies.Common.v1.FilterDefaultValueHigh"] = "Edm.PrimitiveType";
210
+ TermToTypes["com.sap.vocabularies.Common.v1.SortOrder"] = "com.sap.vocabularies.Common.v1.SortOrderType";
211
+ TermToTypes["com.sap.vocabularies.Common.v1.RecursiveHierarchy"] = "com.sap.vocabularies.Common.v1.RecursiveHierarchyType";
212
+ TermToTypes["com.sap.vocabularies.Common.v1.CreatedAt"] = "Edm.DateTimeOffset";
213
+ TermToTypes["com.sap.vocabularies.Common.v1.CreatedBy"] = "com.sap.vocabularies.Common.v1.UserID";
214
+ TermToTypes["com.sap.vocabularies.Common.v1.ChangedAt"] = "Edm.DateTimeOffset";
215
+ TermToTypes["com.sap.vocabularies.Common.v1.ChangedBy"] = "com.sap.vocabularies.Common.v1.UserID";
216
+ TermToTypes["com.sap.vocabularies.Common.v1.ApplyMultiUnitBehaviorForSortingAndFiltering"] = "Org.OData.Core.V1.Tag";
217
+ TermToTypes["com.sap.vocabularies.CodeList.v1.CurrencyCodes"] = "com.sap.vocabularies.CodeList.v1.CodeListSource";
218
+ TermToTypes["com.sap.vocabularies.CodeList.v1.UnitsOfMeasure"] = "com.sap.vocabularies.CodeList.v1.CodeListSource";
219
+ TermToTypes["com.sap.vocabularies.CodeList.v1.StandardCode"] = "Edm.PropertyPath";
220
+ TermToTypes["com.sap.vocabularies.CodeList.v1.ExternalCode"] = "Edm.PropertyPath";
221
+ TermToTypes["com.sap.vocabularies.CodeList.v1.IsConfigurationDeprecationCode"] = "Edm.Boolean";
222
+ TermToTypes["com.sap.vocabularies.Communication.v1.Contact"] = "com.sap.vocabularies.Communication.v1.ContactType";
223
+ TermToTypes["com.sap.vocabularies.Communication.v1.Address"] = "com.sap.vocabularies.Communication.v1.AddressType";
224
+ TermToTypes["com.sap.vocabularies.Communication.v1.IsEmailAddress"] = "Org.OData.Core.V1.Tag";
225
+ TermToTypes["com.sap.vocabularies.Communication.v1.IsPhoneNumber"] = "Org.OData.Core.V1.Tag";
226
+ TermToTypes["com.sap.vocabularies.Communication.v1.Event"] = "com.sap.vocabularies.Communication.v1.EventData";
227
+ TermToTypes["com.sap.vocabularies.Communication.v1.Task"] = "com.sap.vocabularies.Communication.v1.TaskData";
228
+ TermToTypes["com.sap.vocabularies.Communication.v1.Message"] = "com.sap.vocabularies.Communication.v1.MessageData";
229
+ TermToTypes["com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy"] = "com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchyType";
230
+ TermToTypes["com.sap.vocabularies.PersonalData.v1.EntitySemantics"] = "com.sap.vocabularies.PersonalData.v1.EntitySemanticsType";
231
+ TermToTypes["com.sap.vocabularies.PersonalData.v1.FieldSemantics"] = "com.sap.vocabularies.PersonalData.v1.FieldSemanticsType";
232
+ TermToTypes["com.sap.vocabularies.PersonalData.v1.IsPotentiallyPersonal"] = "Org.OData.Core.V1.Tag";
233
+ TermToTypes["com.sap.vocabularies.PersonalData.v1.IsPotentiallySensitive"] = "Org.OData.Core.V1.Tag";
234
+ TermToTypes["com.sap.vocabularies.Session.v1.StickySessionSupported"] = "com.sap.vocabularies.Session.v1.StickySessionSupportedType";
235
+ TermToTypes["com.sap.vocabularies.UI.v1.HeaderInfo"] = "com.sap.vocabularies.UI.v1.HeaderInfoType";
236
+ TermToTypes["com.sap.vocabularies.UI.v1.Identification"] = "com.sap.vocabularies.UI.v1.DataFieldAbstract";
237
+ TermToTypes["com.sap.vocabularies.UI.v1.Badge"] = "com.sap.vocabularies.UI.v1.BadgeType";
238
+ TermToTypes["com.sap.vocabularies.UI.v1.LineItem"] = "com.sap.vocabularies.UI.v1.DataFieldAbstract";
239
+ TermToTypes["com.sap.vocabularies.UI.v1.StatusInfo"] = "com.sap.vocabularies.UI.v1.DataFieldAbstract";
240
+ TermToTypes["com.sap.vocabularies.UI.v1.FieldGroup"] = "com.sap.vocabularies.UI.v1.FieldGroupType";
241
+ TermToTypes["com.sap.vocabularies.UI.v1.ConnectedFields"] = "com.sap.vocabularies.UI.v1.ConnectedFieldsType";
242
+ TermToTypes["com.sap.vocabularies.UI.v1.GeoLocations"] = "com.sap.vocabularies.UI.v1.GeoLocationType";
243
+ TermToTypes["com.sap.vocabularies.UI.v1.GeoLocation"] = "com.sap.vocabularies.UI.v1.GeoLocationType";
244
+ TermToTypes["com.sap.vocabularies.UI.v1.Contacts"] = "Edm.AnnotationPath";
245
+ TermToTypes["com.sap.vocabularies.UI.v1.MediaResource"] = "com.sap.vocabularies.UI.v1.MediaResourceType";
246
+ TermToTypes["com.sap.vocabularies.UI.v1.DataPoint"] = "com.sap.vocabularies.UI.v1.DataPointType";
247
+ TermToTypes["com.sap.vocabularies.UI.v1.KPI"] = "com.sap.vocabularies.UI.v1.KPIType";
248
+ TermToTypes["com.sap.vocabularies.UI.v1.Chart"] = "com.sap.vocabularies.UI.v1.ChartDefinitionType";
249
+ TermToTypes["com.sap.vocabularies.UI.v1.ValueCriticality"] = "com.sap.vocabularies.UI.v1.ValueCriticalityType";
250
+ TermToTypes["com.sap.vocabularies.UI.v1.CriticalityLabels"] = "com.sap.vocabularies.UI.v1.CriticalityLabelType";
251
+ TermToTypes["com.sap.vocabularies.UI.v1.SelectionFields"] = "Edm.PropertyPath";
252
+ TermToTypes["com.sap.vocabularies.UI.v1.Facets"] = "com.sap.vocabularies.UI.v1.Facet";
253
+ TermToTypes["com.sap.vocabularies.UI.v1.HeaderFacets"] = "com.sap.vocabularies.UI.v1.Facet";
254
+ TermToTypes["com.sap.vocabularies.UI.v1.QuickViewFacets"] = "com.sap.vocabularies.UI.v1.Facet";
255
+ TermToTypes["com.sap.vocabularies.UI.v1.QuickCreateFacets"] = "com.sap.vocabularies.UI.v1.Facet";
256
+ TermToTypes["com.sap.vocabularies.UI.v1.FilterFacets"] = "com.sap.vocabularies.UI.v1.ReferenceFacet";
257
+ TermToTypes["com.sap.vocabularies.UI.v1.SelectionPresentationVariant"] = "com.sap.vocabularies.UI.v1.SelectionPresentationVariantType";
258
+ TermToTypes["com.sap.vocabularies.UI.v1.PresentationVariant"] = "com.sap.vocabularies.UI.v1.PresentationVariantType";
259
+ TermToTypes["com.sap.vocabularies.UI.v1.SelectionVariant"] = "com.sap.vocabularies.UI.v1.SelectionVariantType";
260
+ TermToTypes["com.sap.vocabularies.UI.v1.ThingPerspective"] = "Org.OData.Core.V1.Tag";
261
+ TermToTypes["com.sap.vocabularies.UI.v1.IsSummary"] = "Org.OData.Core.V1.Tag";
262
+ TermToTypes["com.sap.vocabularies.UI.v1.PartOfPreview"] = "Org.OData.Core.V1.Tag";
263
+ TermToTypes["com.sap.vocabularies.UI.v1.Map"] = "Org.OData.Core.V1.Tag";
264
+ TermToTypes["com.sap.vocabularies.UI.v1.Gallery"] = "Org.OData.Core.V1.Tag";
265
+ TermToTypes["com.sap.vocabularies.UI.v1.IsImageURL"] = "Org.OData.Core.V1.Tag";
266
+ TermToTypes["com.sap.vocabularies.UI.v1.IsImage"] = "Org.OData.Core.V1.Tag";
267
+ TermToTypes["com.sap.vocabularies.UI.v1.MultiLineText"] = "Org.OData.Core.V1.Tag";
268
+ TermToTypes["com.sap.vocabularies.UI.v1.TextArrangement"] = "com.sap.vocabularies.UI.v1.TextArrangementType";
269
+ TermToTypes["com.sap.vocabularies.UI.v1.Importance"] = "com.sap.vocabularies.UI.v1.ImportanceType";
270
+ TermToTypes["com.sap.vocabularies.UI.v1.Hidden"] = "Org.OData.Core.V1.Tag";
271
+ TermToTypes["com.sap.vocabularies.UI.v1.CreateHidden"] = "Org.OData.Core.V1.Tag";
272
+ TermToTypes["com.sap.vocabularies.UI.v1.UpdateHidden"] = "Org.OData.Core.V1.Tag";
273
+ TermToTypes["com.sap.vocabularies.UI.v1.DeleteHidden"] = "Org.OData.Core.V1.Tag";
274
+ TermToTypes["com.sap.vocabularies.UI.v1.HiddenFilter"] = "Org.OData.Core.V1.Tag";
275
+ TermToTypes["com.sap.vocabularies.UI.v1.DataFieldDefault"] = "com.sap.vocabularies.UI.v1.DataFieldAbstract";
276
+ TermToTypes["com.sap.vocabularies.UI.v1.Criticality"] = "com.sap.vocabularies.UI.v1.CriticalityType";
277
+ TermToTypes["com.sap.vocabularies.UI.v1.CriticalityCalculation"] = "com.sap.vocabularies.UI.v1.CriticalityCalculationType";
278
+ TermToTypes["com.sap.vocabularies.UI.v1.Emphasized"] = "Org.OData.Core.V1.Tag";
279
+ TermToTypes["com.sap.vocabularies.UI.v1.OrderBy"] = "Edm.PropertyPath";
280
+ TermToTypes["com.sap.vocabularies.UI.v1.ParameterDefaultValue"] = "Edm.PrimitiveType";
281
+ TermToTypes["com.sap.vocabularies.UI.v1.RecommendationState"] = "com.sap.vocabularies.UI.v1.RecommendationStateType";
282
+ TermToTypes["com.sap.vocabularies.UI.v1.RecommendationList"] = "com.sap.vocabularies.UI.v1.RecommendationListType";
283
+ TermToTypes["com.sap.vocabularies.UI.v1.ExcludeFromNavigationContext"] = "Org.OData.Core.V1.Tag";
284
+ TermToTypes["com.sap.vocabularies.HTML5.v1.CssDefaults"] = "com.sap.vocabularies.HTML5.v1.CssDefaultsType";
285
+ })(TermToTypes || (TermToTypes = {}));
286
+
287
+ var defaultReferences = [{
288
+ alias: "Capabilities",
289
+ namespace: "Org.OData.Capabilities.V1",
290
+ uri: ""
291
+ }, {
292
+ alias: "Aggregation",
293
+ namespace: "Org.OData.Aggregation.V1",
294
+ uri: ""
295
+ }, {
296
+ alias: "Validation",
297
+ namespace: "Org.OData.Validation.V1",
298
+ uri: ""
299
+ }, {
300
+ namespace: "Org.OData.Core.V1",
301
+ alias: "Core",
302
+ uri: ""
303
+ }, {
304
+ namespace: "Org.OData.Measures.V1",
305
+ alias: "Measures",
306
+ uri: ""
307
+ }, {
308
+ namespace: "com.sap.vocabularies.Common.v1",
309
+ alias: "Common",
310
+ uri: ""
311
+ }, {
312
+ namespace: "com.sap.vocabularies.UI.v1",
313
+ alias: "UI",
314
+ uri: ""
315
+ }, {
316
+ namespace: "com.sap.vocabularies.Session.v1",
317
+ alias: "Session",
318
+ uri: ""
319
+ }, {
320
+ namespace: "com.sap.vocabularies.Analytics.v1",
321
+ alias: "Analytics",
322
+ uri: ""
323
+ }, {
324
+ namespace: "com.sap.vocabularies.CodeList.v1",
325
+ alias: "CodeList",
326
+ uri: ""
327
+ }, {
328
+ namespace: "com.sap.vocabularies.PersonalData.v1",
329
+ alias: "PersonalData",
330
+ uri: ""
331
+ }, {
332
+ namespace: "com.sap.vocabularies.Communication.v1",
333
+ alias: "Communication",
334
+ uri: ""
335
+ }, {
336
+ namespace: "com.sap.vocabularies.HTML5.v1",
337
+ alias: "HTML5",
338
+ uri: ""
339
+ }];
340
+ _exports.defaultReferences = defaultReferences;
341
+
342
+ function alias(references, unaliasedValue) {
343
+ if (!references.reverseReferenceMap) {
344
+ references.reverseReferenceMap = references.reduce(function (map, reference) {
345
+ map[reference.namespace] = reference;
346
+ return map;
347
+ }, {});
348
+ }
349
+
350
+ if (!unaliasedValue) {
351
+ return unaliasedValue;
352
+ }
353
+
354
+ var lastDotIndex = unaliasedValue.lastIndexOf(".");
355
+ var namespace = unaliasedValue.substr(0, lastDotIndex);
356
+ var value = unaliasedValue.substr(lastDotIndex + 1);
357
+ var reference = references.reverseReferenceMap[namespace];
358
+
359
+ if (reference) {
360
+ return "".concat(reference.alias, ".").concat(value);
361
+ } else {
362
+ // Try to see if it's an annotation Path like to_SalesOrder/@UI.LineItem
363
+ if (unaliasedValue.indexOf("@") !== -1) {
364
+ var _unaliasedValue$split = unaliasedValue.split("@"),
365
+ _unaliasedValue$split2 = _toArray(_unaliasedValue$split),
366
+ preAlias = _unaliasedValue$split2[0],
367
+ postAlias = _unaliasedValue$split2.slice(1);
368
+
369
+ return "".concat(preAlias, "@").concat(alias(references, postAlias.join("@")));
370
+ } else {
371
+ return unaliasedValue;
372
+ }
373
+ }
374
+ }
375
+
376
+ function unalias(references, aliasedValue) {
377
+ if (!references.referenceMap) {
378
+ references.referenceMap = references.reduce(function (map, reference) {
379
+ map[reference.alias] = reference;
380
+ return map;
381
+ }, {});
382
+ }
383
+
384
+ if (!aliasedValue) {
385
+ return aliasedValue;
386
+ }
387
+
388
+ var _aliasedValue$split = aliasedValue.split("."),
389
+ _aliasedValue$split2 = _toArray(_aliasedValue$split),
390
+ alias = _aliasedValue$split2[0],
391
+ value = _aliasedValue$split2.slice(1);
392
+
393
+ var reference = references.referenceMap[alias];
394
+
395
+ if (reference) {
396
+ return "".concat(reference.namespace, ".").concat(value.join("."));
397
+ } else {
398
+ // Try to see if it's an annotation Path like to_SalesOrder/@UI.LineItem
399
+ if (aliasedValue.indexOf("@") !== -1) {
400
+ var _aliasedValue$split3 = aliasedValue.split("@"),
401
+ _aliasedValue$split4 = _toArray(_aliasedValue$split3),
402
+ preAlias = _aliasedValue$split4[0],
403
+ postAlias = _aliasedValue$split4.slice(1);
404
+
405
+ return "".concat(preAlias, "@").concat(unalias(references, postAlias.join("@")));
406
+ } else {
407
+ return aliasedValue;
408
+ }
409
+ }
410
+ }
411
+
412
+ function buildObjectMap(parserOutput) {
413
+ var objectMap = {};
414
+
415
+ if (parserOutput.schema.entityContainer && parserOutput.schema.entityContainer.fullyQualifiedName) {
416
+ objectMap[parserOutput.schema.entityContainer.fullyQualifiedName] = parserOutput.schema.entityContainer;
417
+ }
418
+
419
+ parserOutput.schema.entitySets.forEach(function (entitySet) {
420
+ objectMap[entitySet.fullyQualifiedName] = entitySet;
421
+ });
422
+ parserOutput.schema.actions.forEach(function (action) {
423
+ objectMap[action.fullyQualifiedName] = action;
424
+
425
+ if (action.isBound) {
426
+ var unBoundActionName = action.fullyQualifiedName.split("(")[0];
427
+
428
+ if (!objectMap[unBoundActionName]) {
429
+ objectMap[unBoundActionName] = {
430
+ _type: "UnboundGenericAction",
431
+ actions: []
432
+ };
433
+ }
434
+
435
+ objectMap[unBoundActionName].actions.push(action);
436
+ }
437
+
438
+ action.parameters.forEach(function (parameter) {
439
+ objectMap[parameter.fullyQualifiedName] = parameter;
440
+ });
441
+ });
442
+ parserOutput.schema.complexTypes.forEach(function (complexType) {
443
+ objectMap[complexType.fullyQualifiedName] = complexType;
444
+ complexType.properties.forEach(function (property) {
445
+ objectMap[property.fullyQualifiedName] = property;
446
+ });
447
+ });
448
+ parserOutput.schema.entityTypes.forEach(function (entityType) {
449
+ objectMap[entityType.fullyQualifiedName] = entityType;
450
+ entityType.entityProperties.forEach(function (property) {
451
+ objectMap[property.fullyQualifiedName] = property;
452
+
453
+ if (property.type.indexOf("Edm") === -1) {
454
+ // Handle complex types
455
+ var complexTypeDefinition = objectMap[property.type];
456
+
457
+ if (complexTypeDefinition && complexTypeDefinition.properties) {
458
+ complexTypeDefinition.properties.forEach(function (complexTypeProp) {
459
+ var complexTypePropTarget = Object.assign(complexTypeProp, {
460
+ _type: "Property",
461
+ fullyQualifiedName: property.fullyQualifiedName + "/" + complexTypeProp.name
462
+ });
463
+ objectMap[complexTypePropTarget.fullyQualifiedName] = complexTypePropTarget;
464
+ });
465
+ }
466
+ }
467
+ });
468
+ entityType.navigationProperties.forEach(function (navProperty) {
469
+ objectMap[navProperty.fullyQualifiedName] = navProperty;
470
+ });
471
+ });
472
+ Object.keys(parserOutput.schema.annotations).forEach(function (annotationSource) {
473
+ parserOutput.schema.annotations[annotationSource].forEach(function (annotationList) {
474
+ var currentTargetName = unalias(parserOutput.references, annotationList.target);
475
+ annotationList.annotations.forEach(function (annotation) {
476
+ var annotationFQN = "".concat(currentTargetName, "@").concat(unalias(parserOutput.references, annotation.term));
477
+
478
+ if (annotation.qualifier) {
479
+ annotationFQN += "#".concat(annotation.qualifier);
480
+ }
481
+
482
+ if (typeof annotation !== "object") {
483
+ debugger;
484
+ }
485
+
486
+ objectMap[annotationFQN] = annotation;
487
+ annotation.fullyQualifiedName = annotationFQN;
488
+ });
489
+ });
490
+ });
491
+ return objectMap;
492
+ }
493
+
494
+ function combinePath(currentTarget, path) {
495
+ if (path.startsWith("@")) {
496
+ return currentTarget + unalias(defaultReferences, path);
497
+ } else {
498
+ return currentTarget + "/" + path;
499
+ }
500
+ }
501
+
502
+ function addAnnotationErrorMessage(path, oErrorMsg) {
503
+ if (!ALL_ANNOTATION_ERRORS[path]) {
504
+ ALL_ANNOTATION_ERRORS[path] = [oErrorMsg];
505
+ } else {
506
+ ALL_ANNOTATION_ERRORS[path].push(oErrorMsg);
507
+ }
508
+ }
509
+
510
+ function resolveTarget(objectMap, currentTarget, path) {
511
+ var pathOnly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
512
+ var includeVisitedObjects = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
513
+ var annotationType = arguments.length > 5 ? arguments[5] : undefined;
514
+ var annotationsTerm = arguments.length > 6 ? arguments[6] : undefined;
515
+
516
+ if (!path) {
517
+ return undefined;
518
+ } //const propertyPath = path;
519
+
520
+
521
+ var aVisitedObjects = [];
522
+
523
+ if (currentTarget && currentTarget._type === "Property") {
524
+ currentTarget = objectMap[currentTarget.fullyQualifiedName.split("/")[0]];
525
+ }
526
+
527
+ path = combinePath(currentTarget.fullyQualifiedName, path);
528
+ var pathSplit = path.split("/");
529
+ var targetPathSplit = [];
530
+ pathSplit.forEach(function (pathPart) {
531
+ // Separate out the annotation
532
+ if (pathPart.indexOf("@") !== -1) {
533
+ var _pathPart$split = pathPart.split("@"),
534
+ _pathPart$split2 = _slicedToArray(_pathPart$split, 2),
535
+ _path = _pathPart$split2[0],
536
+ annotationPath = _pathPart$split2[1];
537
+
538
+ targetPathSplit.push(_path);
539
+ targetPathSplit.push("@".concat(annotationPath));
540
+ } else {
541
+ targetPathSplit.push(pathPart);
542
+ }
543
+ });
544
+ var currentPath = path;
545
+ var currentContext = currentTarget;
546
+ var target = targetPathSplit.reduce(function (currentValue, pathPart) {
547
+ if (pathPart === "$Type" && currentValue._type === "EntityType") {
548
+ return currentValue;
549
+ }
550
+
551
+ if (pathPart.length === 0) {
552
+ // Empty Path after an entitySet means entityType
553
+ if (currentValue && currentValue._type === "EntitySet" && currentValue.entityType) {
554
+ if (includeVisitedObjects) {
555
+ aVisitedObjects.push(currentValue);
556
+ }
557
+
558
+ currentValue = currentValue.entityType;
559
+ }
560
+
561
+ if (currentValue && currentValue._type === "NavigationProperty" && currentValue.targetType) {
562
+ if (includeVisitedObjects) {
563
+ aVisitedObjects.push(currentValue);
564
+ }
565
+
566
+ currentValue = currentValue.targetType;
567
+ }
568
+
569
+ return currentValue;
570
+ }
571
+
572
+ if (includeVisitedObjects && currentValue !== null && currentValue !== undefined) {
573
+ aVisitedObjects.push(currentValue);
574
+ }
575
+
576
+ if (!currentValue) {
577
+ currentPath = pathPart;
578
+ } else if (currentValue._type === "EntitySet" && pathPart === "$Type") {
579
+ currentValue = currentValue.targetType;
580
+ return currentValue;
581
+ } else if (currentValue._type === "EntitySet" && currentValue.entityType) {
582
+ currentPath = combinePath(currentValue.entityTypeName, pathPart);
583
+ } else if (currentValue._type === "NavigationProperty" && currentValue.targetTypeName) {
584
+ currentPath = combinePath(currentValue.targetTypeName, pathPart);
585
+ } else if (currentValue._type === "NavigationProperty" && currentValue.targetType) {
586
+ currentPath = combinePath(currentValue.targetType.fullyQualifiedName, pathPart);
587
+ } else if (currentValue._type === "Property") {
588
+ // ComplexType or Property
589
+ if (currentValue.targetType) {
590
+ currentPath = combinePath(currentValue.targetType.fullyQualifiedName, pathPart);
591
+ } else {
592
+ currentPath = combinePath(currentValue.fullyQualifiedName, pathPart);
593
+ }
594
+ } else if (currentValue._type === "Action" && currentValue.isBound) {
595
+ currentPath = combinePath(currentValue.fullyQualifiedName, pathPart);
596
+
597
+ if (!objectMap[currentPath]) {
598
+ currentPath = combinePath(currentValue.sourceType, pathPart);
599
+ }
600
+ } else if (currentValue._type === "ActionParameter" && currentValue.isEntitySet) {
601
+ currentPath = combinePath(currentValue.type, pathPart);
602
+ } else if (currentValue._type === "ActionParameter" && !currentValue.isEntitySet) {
603
+ currentPath = combinePath(currentTarget.fullyQualifiedName.substr(0, currentTarget.fullyQualifiedName.lastIndexOf("/")), pathPart);
604
+
605
+ if (!objectMap[currentPath]) {
606
+ var lastIdx = currentTarget.fullyQualifiedName.lastIndexOf("/");
607
+
608
+ if (lastIdx === -1) {
609
+ lastIdx = currentTarget.fullyQualifiedName.length;
610
+ }
611
+
612
+ currentPath = combinePath(objectMap[currentTarget.fullyQualifiedName.substr(0, lastIdx)].sourceType, pathPart);
613
+ }
614
+ } else {
615
+ currentPath = combinePath(currentValue.fullyQualifiedName, pathPart);
616
+
617
+ if (pathPart !== "name" && currentValue[pathPart] !== undefined) {
618
+ return currentValue[pathPart];
619
+ } else if (pathPart === "$AnnotationPath" && currentValue.$target) {
620
+ var _currentContext = objectMap[currentValue.fullyQualifiedName.split("@")[0]];
621
+ var subTarget = resolveTarget(objectMap, _currentContext, currentValue.value, false, true);
622
+ subTarget.visitedObjects.forEach(function (visitedSubObject) {
623
+ if (aVisitedObjects.indexOf(visitedSubObject) === -1) {
624
+ aVisitedObjects.push(visitedSubObject);
625
+ }
626
+ });
627
+ return subTarget.target;
628
+ } else if (pathPart === "$Path" && currentValue.$target) {
629
+ currentContext = aVisitedObjects.concat().reverse().find(function (obj) {
630
+ return obj._type === "EntityType" || obj._type === "EntitySet" || obj._type === "NavigationProperty";
631
+ });
632
+
633
+ if (currentContext) {
634
+ var _subTarget = resolveTarget(objectMap, currentContext, currentValue.path, false, true);
635
+
636
+ _subTarget.visitedObjects.forEach(function (visitedSubObject) {
637
+ if (aVisitedObjects.indexOf(visitedSubObject) === -1) {
638
+ aVisitedObjects.push(visitedSubObject);
639
+ }
640
+ });
641
+
642
+ return _subTarget.target;
643
+ }
644
+
645
+ return currentValue.$target;
646
+ } else if (pathPart.startsWith("$Path") && currentValue.$target) {
647
+ var intermediateTarget = currentValue.$target;
648
+ currentPath = combinePath(intermediateTarget.fullyQualifiedName, pathPart.substr(5));
649
+ } else if (currentValue.hasOwnProperty("$Type") && !objectMap[currentPath]) {
650
+ // This is now an annotation value
651
+ var entityType = objectMap[currentValue.fullyQualifiedName.split("@")[0]];
652
+
653
+ if (entityType) {
654
+ currentPath = combinePath(entityType.fullyQualifiedName, pathPart);
655
+ }
656
+ }
657
+ }
658
+
659
+ return objectMap[currentPath];
660
+ }, null);
661
+
662
+ if (!target) {
663
+ if (annotationsTerm && annotationType) {
664
+ var oErrorMsg = {
665
+ message: "Unable to resolve the path expression: " + "\n" + path + "\n" + "\n" + "Hint: Check and correct the path values under the following structure in the metadata (annotation.xml file or CDS annotations for the application): \n\n" + "<Annotation Term = " + annotationsTerm + ">" + "\n" + "<Record Type = " + annotationType + ">" + "\n" + "<AnnotationPath = " + path + ">"
666
+ };
667
+ addAnnotationErrorMessage(path, oErrorMsg);
668
+ } else {
669
+ var oErrorMsg = {
670
+ message: "Unable to resolve the path expression: " + path + "\n" + "\n" + "Hint: Check and correct the path values under the following structure in the metadata (annotation.xml file or CDS annotations for the application): \n\n" + "<Annotation Term = " + pathSplit[0] + ">" + "\n" + "<PropertyValue Path= " + pathSplit[1] + ">"
671
+ };
672
+ addAnnotationErrorMessage(path, oErrorMsg);
673
+ } // console.log("Missing target " + path);
674
+
675
+ }
676
+
677
+ if (pathOnly) {
678
+ return currentPath;
679
+ }
680
+
681
+ if (includeVisitedObjects) {
682
+ return {
683
+ visitedObjects: aVisitedObjects,
684
+ target: target
685
+ };
686
+ }
687
+
688
+ return target;
689
+ }
690
+
691
+ function isAnnotationPath(pathStr) {
692
+ return pathStr.indexOf("@") !== -1;
693
+ }
694
+
695
+ function parseValue(propertyValue, valueFQN, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, annotationType, annotationsTerm) {
696
+ if (propertyValue === undefined) {
697
+ return undefined;
698
+ }
699
+
700
+ switch (propertyValue.type) {
701
+ case "String":
702
+ return propertyValue.String;
703
+
704
+ case "Int":
705
+ return propertyValue.Int;
706
+
707
+ case "Bool":
708
+ return propertyValue.Bool;
709
+
710
+ case "Decimal":
711
+ return propertyValue.Decimal;
712
+
713
+ case "Date":
714
+ return propertyValue.Date;
715
+
716
+ case "EnumMember":
717
+ return alias(parserOutput.references, propertyValue.EnumMember);
718
+
719
+ case "PropertyPath":
720
+ return {
721
+ type: "PropertyPath",
722
+ value: propertyValue.PropertyPath,
723
+ fullyQualifiedName: valueFQN,
724
+ $target: resolveTarget(objectMap, currentTarget, propertyValue.PropertyPath, false, false, annotationType, annotationsTerm)
725
+ };
726
+
727
+ case "NavigationPropertyPath":
728
+ return {
729
+ type: "NavigationPropertyPath",
730
+ value: propertyValue.NavigationPropertyPath,
731
+ fullyQualifiedName: valueFQN,
732
+ $target: resolveTarget(objectMap, currentTarget, propertyValue.NavigationPropertyPath, false, false, annotationType, annotationsTerm)
733
+ };
734
+
735
+ case "AnnotationPath":
736
+ var annotationTarget = resolveTarget(objectMap, currentTarget, unalias(parserOutput.references, propertyValue.AnnotationPath), true, false, annotationType, annotationsTerm);
737
+ var annotationPath = {
738
+ type: "AnnotationPath",
739
+ value: propertyValue.AnnotationPath,
740
+ fullyQualifiedName: valueFQN,
741
+ $target: annotationTarget,
742
+ annotationType: annotationType,
743
+ annotationsTerm: annotationsTerm,
744
+ term: "",
745
+ path: ""
746
+ };
747
+ toResolve.push({
748
+ inline: false,
749
+ toResolve: annotationPath
750
+ });
751
+ return annotationPath;
752
+
753
+ case "Path":
754
+ var $target = resolveTarget(objectMap, currentTarget, propertyValue.Path, true, false, annotationType, annotationsTerm);
755
+ var path = new Path(propertyValue, $target, annotationsTerm, annotationType, "");
756
+ toResolve.push({
757
+ inline: isAnnotationPath(propertyValue.Path),
758
+ toResolve: path
759
+ });
760
+ return path;
761
+
762
+ case "Record":
763
+ return parseRecord(propertyValue.Record, valueFQN, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, annotationType, annotationsTerm);
764
+
765
+ case "Collection":
766
+ return parseCollection(propertyValue.Collection, valueFQN, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, annotationType, annotationsTerm);
767
+
768
+ case "Apply":
769
+ case "Not":
770
+ case "Eq":
771
+ case "Ne":
772
+ case "Gt":
773
+ case "Ge":
774
+ case "Lt":
775
+ case "Le":
776
+ case "If":
777
+ case "And":
778
+ case "Or":
779
+ return propertyValue;
780
+ }
781
+ }
782
+
783
+ function inferTypeFromTerm(annotationsTerm, parserOutput, annotationTarget) {
784
+ var targetType = TermToTypes[annotationsTerm];
785
+ var oErrorMsg = {
786
+ isError: false,
787
+ message: "The type of the record used within the term ".concat(annotationsTerm, " was not defined and was inferred as ").concat(targetType, ".\nHint: If possible, try to maintain the Type property for each Record.\n<Annotations Target=\"").concat(annotationTarget, "\">\n\t<Annotation Term=\"").concat(annotationsTerm, "\">\n\t\t<Record>...</Record>\n\t</Annotation>\n</Annotations>")
788
+ };
789
+ addAnnotationErrorMessage(annotationTarget + "/" + annotationsTerm, oErrorMsg);
790
+ return targetType;
791
+ }
792
+
793
+ function parseRecord(recordDefinition, currentFQN, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, annotationType, annotationsTerm) {
794
+ var targetType;
795
+
796
+ if (!recordDefinition.type && annotationsTerm) {
797
+ targetType = inferTypeFromTerm(annotationsTerm, parserOutput, currentTarget.fullyQualifiedName);
798
+ } else {
799
+ targetType = unalias(parserOutput.references, recordDefinition.type);
800
+ }
801
+
802
+ var annotationTerm = {
803
+ $Type: targetType,
804
+ fullyQualifiedName: currentFQN
805
+ };
806
+ var annotationContent = {};
807
+
808
+ if (recordDefinition.annotations && Array.isArray(recordDefinition.annotations)) {
809
+ var subAnnotationList = {
810
+ target: currentFQN,
811
+ annotations: recordDefinition.annotations,
812
+ __source: annotationSource
813
+ };
814
+ unresolvedAnnotations.push(subAnnotationList);
815
+ }
816
+
817
+ recordDefinition.propertyValues.forEach(function (propertyValue) {
818
+ annotationContent[propertyValue.name] = parseValue(propertyValue.value, "".concat(currentFQN, "/").concat(propertyValue.name), parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, annotationType, annotationsTerm);
819
+
820
+ if (propertyValue.annotations && Array.isArray(propertyValue.annotations)) {
821
+ var _subAnnotationList = {
822
+ target: "".concat(currentFQN, "/").concat(propertyValue.name),
823
+ annotations: propertyValue.annotations,
824
+ __source: annotationSource
825
+ };
826
+ unresolvedAnnotations.push(_subAnnotationList);
827
+ }
828
+
829
+ if (annotationContent.hasOwnProperty("Action") && (annotationTerm.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" || annotationTerm.$Type === "com.sap.vocabularies.UI.v1.DataFieldWithAction")) {
830
+ annotationContent.ActionTarget = currentTarget.actions && currentTarget.actions[annotationContent.Action] || objectMap[annotationContent.Action];
831
+
832
+ if (!annotationContent.ActionTarget) {
833
+ // Add to diagnostics debugger;
834
+ ANNOTATION_ERRORS.push({
835
+ message: "Unable to resolve the action " + annotationContent.Action + " defined for " + annotationTerm.fullyQualifiedName
836
+ });
837
+ }
838
+ }
839
+ });
840
+ return Object.assign(annotationTerm, annotationContent);
841
+ }
842
+
843
+ function getOrInferCollectionType(collectionDefinition) {
844
+ var type = collectionDefinition.type;
845
+
846
+ if (type === undefined && collectionDefinition.length > 0) {
847
+ var firstColItem = collectionDefinition[0];
848
+
849
+ if (firstColItem.hasOwnProperty("PropertyPath")) {
850
+ type = "PropertyPath";
851
+ } else if (firstColItem.hasOwnProperty("Path")) {
852
+ type = "Path";
853
+ } else if (firstColItem.hasOwnProperty("AnnotationPath")) {
854
+ type = "AnnotationPath";
855
+ } else if (firstColItem.hasOwnProperty("NavigationPropertyPath")) {
856
+ type = "NavigationPropertyPath";
857
+ } else if (typeof firstColItem === "object" && (firstColItem.hasOwnProperty("type") || firstColItem.hasOwnProperty("propertyValues"))) {
858
+ type = "Record";
859
+ } else if (typeof firstColItem === "string") {
860
+ type = "String";
861
+ }
862
+ } else if (type === undefined) {
863
+ type = "EmptyCollection";
864
+ }
865
+
866
+ return type;
867
+ }
868
+
869
+ function parseCollection(collectionDefinition, parentFQN, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, annotationType, annotationsTerm) {
870
+ var collectionDefinitionType = getOrInferCollectionType(collectionDefinition);
871
+
872
+ switch (collectionDefinitionType) {
873
+ case "PropertyPath":
874
+ return collectionDefinition.map(function (propertyPath, propertyIdx) {
875
+ return {
876
+ type: "PropertyPath",
877
+ value: propertyPath.PropertyPath,
878
+ fullyQualifiedName: "".concat(parentFQN, "/").concat(propertyIdx),
879
+ $target: resolveTarget(objectMap, currentTarget, propertyPath.PropertyPath, false, false, annotationType, annotationsTerm)
880
+ };
881
+ });
882
+
883
+ case "Path":
884
+ return collectionDefinition.map(function (pathValue) {
885
+ var $target = resolveTarget(objectMap, currentTarget, pathValue.Path, true, false, annotationType, annotationsTerm);
886
+ var path = new Path(pathValue, $target, annotationsTerm, annotationType, "");
887
+ toResolve.push({
888
+ inline: isAnnotationPath(pathValue.Path),
889
+ toResolve: path
890
+ });
891
+ return path;
892
+ });
893
+
894
+ case "AnnotationPath":
895
+ return collectionDefinition.map(function (annotationPath, annotationIdx) {
896
+ var annotationTarget = resolveTarget(objectMap, currentTarget, annotationPath.AnnotationPath, true, false, annotationType, annotationsTerm);
897
+ var annotationCollectionElement = {
898
+ type: "AnnotationPath",
899
+ value: annotationPath.AnnotationPath,
900
+ fullyQualifiedName: "".concat(parentFQN, "/").concat(annotationIdx),
901
+ $target: annotationTarget,
902
+ annotationType: annotationType,
903
+ annotationsTerm: annotationsTerm,
904
+ term: "",
905
+ path: ""
906
+ };
907
+ toResolve.push({
908
+ inline: false,
909
+ toResolve: annotationCollectionElement
910
+ });
911
+ return annotationCollectionElement;
912
+ });
913
+
914
+ case "NavigationPropertyPath":
915
+ return collectionDefinition.map(function (navPropertyPath, navPropIdx) {
916
+ return {
917
+ type: "NavigationPropertyPath",
918
+ value: navPropertyPath.NavigationPropertyPath,
919
+ fullyQualifiedName: "".concat(parentFQN, "/").concat(navPropIdx),
920
+ $target: resolveTarget(objectMap, currentTarget, navPropertyPath.NavigationPropertyPath, false, false, annotationType, annotationsTerm)
921
+ };
922
+ });
923
+
924
+ case "Record":
925
+ return collectionDefinition.map(function (recordDefinition, recordIdx) {
926
+ return parseRecord(recordDefinition, "".concat(parentFQN, "/").concat(recordIdx), parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, annotationType, annotationsTerm);
927
+ });
928
+
929
+ case "Apply":
930
+ case "If":
931
+ case "Eq":
932
+ case "Ne":
933
+ case "Lt":
934
+ case "Gt":
935
+ case "Le":
936
+ case "Ge":
937
+ case "Not":
938
+ case "And":
939
+ case "Or":
940
+ return collectionDefinition.map(function (ifValue) {
941
+ return ifValue;
942
+ });
943
+
944
+ case "String":
945
+ return collectionDefinition.map(function (stringValue) {
946
+ if (typeof stringValue === "string") {
947
+ return stringValue;
948
+ } else if (stringValue === undefined) {
949
+ return stringValue;
950
+ } else {
951
+ return stringValue.String;
952
+ }
953
+ });
954
+
955
+ default:
956
+ if (collectionDefinition.length === 0) {
957
+ return [];
958
+ }
959
+
960
+ throw new Error("Unsupported case");
961
+ }
962
+ }
963
+
964
+ function convertAnnotation(annotation, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations) {
965
+ if (annotation.record) {
966
+ var annotationType = annotation.record.type ? unalias(parserOutput.references, annotation.record.type) : inferTypeFromTerm(annotation.term, parserOutput, currentTarget.fullyQualifiedName);
967
+ var annotationTerm = {
968
+ $Type: annotationType,
969
+ fullyQualifiedName: annotation.fullyQualifiedName,
970
+ qualifier: annotation.qualifier
971
+ };
972
+ var annotationContent = {};
973
+ annotation.record.propertyValues.forEach(function (propertyValue) {
974
+ annotationContent[propertyValue.name] = parseValue(propertyValue.value, "".concat(annotation.fullyQualifiedName, "/").concat(propertyValue.name), parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, annotationType, annotation.term);
975
+
976
+ if (annotationContent.hasOwnProperty("Action") && (!annotation.record || annotationTerm.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" || annotationTerm.$Type === "com.sap.vocabularies.UI.v1.DataFieldWithAction")) {
977
+ annotationContent.ActionTarget = currentTarget.actions && currentTarget.actions[annotationContent.Action] || objectMap[annotationContent.Action];
978
+
979
+ if (!annotationContent.ActionTarget) {
980
+ ANNOTATION_ERRORS.push({
981
+ message: "Unable to resolve the action " + annotationContent.Action + " defined for " + annotation.fullyQualifiedName
982
+ }); // Add to diagnostics
983
+ // debugger;
984
+ }
985
+ }
986
+ });
987
+ return Object.assign(annotationTerm, annotationContent);
988
+ } else if (annotation.collection === undefined) {
989
+ if (annotation.value) {
990
+ return parseValue(annotation.value, annotation.fullyQualifiedName, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, "", annotation.term);
991
+ } else {
992
+ return true;
993
+ }
994
+ } else if (annotation.collection) {
995
+ var collection = parseCollection(annotation.collection, annotation.fullyQualifiedName, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations, "", annotation.term);
996
+ collection.fullyQualifiedName = annotation.fullyQualifiedName;
997
+ return collection;
998
+ } else {
999
+ throw new Error("Unsupported case");
1000
+ }
1001
+ }
1002
+
1003
+ function createResolvePathFn(entityType, objectMap) {
1004
+ return function (relativePath, includeVisitedObjects) {
1005
+ var annotationTerm = "";
1006
+ var annotationType = "";
1007
+ return resolveTarget(objectMap, entityType, relativePath, false, includeVisitedObjects, annotationType, annotationTerm);
1008
+ };
1009
+ }
1010
+
1011
+ function resolveNavigationProperties(entityTypes, associations, objectMap) {
1012
+ entityTypes.forEach(function (entityType) {
1013
+ entityType.navigationProperties = entityType.navigationProperties.map(function (navProp) {
1014
+ var outNavProp = {
1015
+ _type: "NavigationProperty",
1016
+ name: navProp.name,
1017
+ fullyQualifiedName: navProp.fullyQualifiedName,
1018
+ partner: navProp.hasOwnProperty("partner") ? navProp.partner : undefined,
1019
+ // targetTypeName: FullyQualifiedName;
1020
+ // targetType: EntityType;
1021
+ isCollection: navProp.hasOwnProperty("isCollection") ? navProp.isCollection : false,
1022
+ containsTarget: navProp.hasOwnProperty("containsTarget") ? navProp.containsTarget : false,
1023
+ referentialConstraint: navProp.referentialConstraint ? navProp.referentialConstraint : [],
1024
+ annotations: {}
1025
+ };
1026
+
1027
+ if (navProp.targetTypeName) {
1028
+ outNavProp.targetType = objectMap[navProp.targetTypeName];
1029
+ } else if (navProp.relationship) {
1030
+ var targetAssociation = associations.find(function (association) {
1031
+ return association.fullyQualifiedName === navProp.relationship;
1032
+ });
1033
+
1034
+ if (targetAssociation) {
1035
+ var associationEnd = targetAssociation.associationEnd.find(function (end) {
1036
+ return end.role === navProp.toRole;
1037
+ });
1038
+
1039
+ if (associationEnd) {
1040
+ outNavProp.targetType = objectMap[associationEnd.type];
1041
+ outNavProp.isCollection = associationEnd.multiplicity === "*";
1042
+ }
1043
+ }
1044
+ }
1045
+
1046
+ if (outNavProp.targetType) {
1047
+ outNavProp.targetTypeName = outNavProp.targetType.fullyQualifiedName;
1048
+ }
1049
+
1050
+ var outNavPropReq = outNavProp;
1051
+ objectMap[outNavPropReq.fullyQualifiedName] = outNavPropReq;
1052
+ return outNavPropReq;
1053
+ });
1054
+ entityType.resolvePath = createResolvePathFn(entityType, objectMap);
1055
+ });
1056
+ }
1057
+
1058
+ function linkActionsToEntityType(namespace, actions, objectMap) {
1059
+ actions.forEach(function (action) {
1060
+ if (!action.annotations) {
1061
+ action.annotations = {};
1062
+ }
1063
+
1064
+ if (action.isBound) {
1065
+ var sourceEntityType = objectMap[action.sourceType];
1066
+ action.sourceEntityType = sourceEntityType;
1067
+
1068
+ if (sourceEntityType) {
1069
+ if (!sourceEntityType.actions) {
1070
+ sourceEntityType.actions = {};
1071
+ }
1072
+
1073
+ sourceEntityType.actions[action.name] = action;
1074
+ sourceEntityType.actions["".concat(namespace, ".").concat(action.name)] = action;
1075
+ }
1076
+
1077
+ action.returnEntityType = objectMap[action.returnType];
1078
+ }
1079
+ });
1080
+ }
1081
+
1082
+ function linkEntityTypeToEntitySet(entitySets, objectMap, references) {
1083
+ entitySets.forEach(function (entitySet) {
1084
+ entitySet.entityType = objectMap[entitySet.entityTypeName];
1085
+
1086
+ if (!entitySet.entityType) {
1087
+ entitySet.entityType = objectMap[unalias(references, entitySet.entityTypeName)];
1088
+ }
1089
+
1090
+ if (!entitySet.annotations) {
1091
+ entitySet.annotations = {};
1092
+ }
1093
+
1094
+ if (!entitySet.entityType.annotations) {
1095
+ entitySet.entityType.annotations = {};
1096
+ }
1097
+
1098
+ entitySet.entityType.keys.forEach(function (keyProp) {
1099
+ keyProp.isKey = true;
1100
+ });
1101
+ });
1102
+ }
1103
+
1104
+ function linkEntityTypeToSingleton(singletons, objectMap, references) {
1105
+ singletons.forEach(function (singleton) {
1106
+ singleton.type = objectMap[singleton.typeName];
1107
+
1108
+ if (!singleton.type) {
1109
+ singleton.type = objectMap[unalias(references, singleton.typeName)];
1110
+ }
1111
+
1112
+ if (!singleton.annotations) {
1113
+ singleton.annotations = {};
1114
+ }
1115
+
1116
+ if (!singleton.type.annotations) {
1117
+ singleton.type.annotations = {};
1118
+ }
1119
+
1120
+ singleton.type.keys.forEach(function (keyProp) {
1121
+ keyProp.isKey = true;
1122
+ });
1123
+ });
1124
+ }
1125
+
1126
+ function linkPropertiesToComplexTypes(entityTypes, objectMap) {
1127
+ entityTypes.forEach(function (entityType) {
1128
+ entityType.entityProperties.forEach(function (entityProperty) {
1129
+ if (!entityProperty.annotations) {
1130
+ entityProperty.annotations = {};
1131
+ }
1132
+
1133
+ if (entityProperty.type.indexOf("Edm") === -1) {
1134
+ if (entityProperty.type.startsWith("Collection")) {
1135
+ var complexTypeName = entityProperty.type.substr(11, entityProperty.type.length - 12);
1136
+ var complexType = objectMap[complexTypeName];
1137
+
1138
+ if (complexType) {
1139
+ entityProperty.targetType = complexType;
1140
+ }
1141
+ } else {
1142
+ var _complexType = objectMap[entityProperty.type];
1143
+
1144
+ if (_complexType) {
1145
+ entityProperty.targetType = _complexType;
1146
+ }
1147
+ }
1148
+ }
1149
+ });
1150
+ });
1151
+ }
1152
+
1153
+ function prepareComplexTypes(complexTypes, associations, objectMap) {
1154
+ complexTypes.forEach(function (complexType) {
1155
+ complexType.annotations = {};
1156
+ complexType.properties.forEach(function (property) {
1157
+ if (!property.annotations) {
1158
+ property.annotations = {};
1159
+ }
1160
+ });
1161
+ complexType.navigationProperties = complexType.navigationProperties.map(function (navProp) {
1162
+ if (!navProp.annotations) {
1163
+ navProp.annotations = {};
1164
+ }
1165
+
1166
+ var outNavProp = {
1167
+ _type: "NavigationProperty",
1168
+ name: navProp.name,
1169
+ fullyQualifiedName: navProp.fullyQualifiedName,
1170
+ partner: navProp.hasOwnProperty("partner") ? navProp.partner : undefined,
1171
+ // targetTypeName: FullyQualifiedName;
1172
+ // targetType: EntityType;
1173
+ isCollection: navProp.hasOwnProperty("isCollection") ? navProp.isCollection : false,
1174
+ containsTarget: navProp.hasOwnProperty("containsTarget") ? navProp.containsTarget : false,
1175
+ referentialConstraint: navProp.referentialConstraint ? navProp.referentialConstraint : []
1176
+ };
1177
+
1178
+ if (navProp.targetTypeName) {
1179
+ outNavProp.targetType = objectMap[navProp.targetTypeName];
1180
+ } else if (navProp.relationship) {
1181
+ var targetAssociation = associations.find(function (association) {
1182
+ return association.fullyQualifiedName === navProp.relationship;
1183
+ });
1184
+
1185
+ if (targetAssociation) {
1186
+ var associationEnd = targetAssociation.associationEnd.find(function (end) {
1187
+ return end.role === navProp.toRole;
1188
+ });
1189
+
1190
+ if (associationEnd) {
1191
+ outNavProp.targetType = objectMap[associationEnd.type];
1192
+ outNavProp.isCollection = associationEnd.multiplicity === "*";
1193
+ }
1194
+ }
1195
+ }
1196
+
1197
+ if (outNavProp.targetType) {
1198
+ outNavProp.targetTypeName = outNavProp.targetType.fullyQualifiedName;
1199
+ }
1200
+
1201
+ var outNavPropReq = outNavProp;
1202
+ objectMap[outNavPropReq.fullyQualifiedName] = outNavPropReq;
1203
+ return outNavPropReq;
1204
+ });
1205
+ });
1206
+ }
1207
+
1208
+ function splitTerm(references, termValue) {
1209
+ var aliasedTerm = alias(references, termValue);
1210
+ var lastDot = aliasedTerm.lastIndexOf(".");
1211
+ var termAlias = aliasedTerm.substr(0, lastDot);
1212
+ var term = aliasedTerm.substr(lastDot + 1);
1213
+ return [termAlias, term];
1214
+ }
1215
+ /**
1216
+ * Resolve a specific path
1217
+ * @param sPath
1218
+ */
1219
+
1220
+
1221
+ function createGlobalResolve(convertedOutput, objectMap) {
1222
+ return function resolvePath(sPath) {
1223
+ var aPathSplit = sPath.split("/");
1224
+
1225
+ if (aPathSplit.shift() !== "") {
1226
+ throw new Error("Cannot deal with relative path");
1227
+ }
1228
+
1229
+ var entitySetName = aPathSplit.shift();
1230
+ var entitySet = convertedOutput.entitySets.find(function (et) {
1231
+ return et.name === entitySetName;
1232
+ });
1233
+
1234
+ if (!entitySet) {
1235
+ return {
1236
+ target: convertedOutput.entityContainer,
1237
+ objectPath: [convertedOutput.entityContainer]
1238
+ };
1239
+ }
1240
+
1241
+ if (aPathSplit.length === 0) {
1242
+ return {
1243
+ target: entitySet,
1244
+ objectPath: [convertedOutput.entityContainer, entitySet]
1245
+ };
1246
+ } else {
1247
+ var targetResolution = resolveTarget(objectMap, entitySet, "/" + aPathSplit.join("/"), false, true);
1248
+
1249
+ if (targetResolution.target) {
1250
+ targetResolution.visitedObjects.push(targetResolution.target);
1251
+ }
1252
+
1253
+ return {
1254
+ target: targetResolution.target,
1255
+ objectPath: targetResolution.visitedObjects
1256
+ };
1257
+ }
1258
+ };
1259
+ }
1260
+
1261
+ var ANNOTATION_ERRORS = [];
1262
+ var ALL_ANNOTATION_ERRORS = {};
1263
+
1264
+ function convertTypes(parserOutput) {
1265
+ ANNOTATION_ERRORS = [];
1266
+ var objectMap = buildObjectMap(parserOutput);
1267
+ resolveNavigationProperties(parserOutput.schema.entityTypes, parserOutput.schema.associations, objectMap);
1268
+
1269
+ if (!parserOutput.schema.entityContainer.annotations) {
1270
+ parserOutput.schema.entityContainer.annotations = {};
1271
+ }
1272
+
1273
+ linkActionsToEntityType(parserOutput.schema.namespace, parserOutput.schema.actions, objectMap);
1274
+ linkEntityTypeToEntitySet(parserOutput.schema.entitySets, objectMap, parserOutput.references);
1275
+ linkEntityTypeToSingleton(parserOutput.schema.singletons, objectMap, parserOutput.references);
1276
+ linkPropertiesToComplexTypes(parserOutput.schema.entityTypes, objectMap);
1277
+ prepareComplexTypes(parserOutput.schema.complexTypes, parserOutput.schema.associations, objectMap);
1278
+ var toResolve = [];
1279
+ var unresolvedAnnotations = [];
1280
+ Object.keys(parserOutput.schema.annotations).forEach(function (annotationSource) {
1281
+ parserOutput.schema.annotations[annotationSource].forEach(function (annotationList) {
1282
+ var currentTargetName = unalias(parserOutput.references, annotationList.target);
1283
+ var objectMapElement = objectMap[currentTargetName];
1284
+
1285
+ if (!objectMapElement) {
1286
+ if (currentTargetName && currentTargetName.indexOf("@") !== -1) {
1287
+ annotationList.__source = annotationSource;
1288
+ unresolvedAnnotations.push(annotationList);
1289
+ }
1290
+ } else if (typeof objectMapElement === "object") {
1291
+ var allTargets = [objectMapElement];
1292
+ var bOverrideExisting = true;
1293
+
1294
+ if (objectMapElement._type === "UnboundGenericAction") {
1295
+ allTargets = objectMapElement.actions;
1296
+ bOverrideExisting = false;
1297
+ }
1298
+
1299
+ allTargets.forEach(function (currentTarget) {
1300
+ if (currentTargetName !== currentTarget.fullyQualifiedName) {
1301
+ currentTargetName = currentTarget.fullyQualifiedName;
1302
+ }
1303
+
1304
+ if (!currentTarget.annotations) {
1305
+ currentTarget.annotations = {};
1306
+ }
1307
+
1308
+ annotationList.annotations.forEach(function (annotation) {
1309
+ var _currentTarget$annota, _currentTarget$annota2;
1310
+
1311
+ var _splitTerm = splitTerm(defaultReferences, annotation.term),
1312
+ _splitTerm2 = _slicedToArray(_splitTerm, 2),
1313
+ vocAlias = _splitTerm2[0],
1314
+ vocTerm = _splitTerm2[1];
1315
+
1316
+ if (!currentTarget.annotations[vocAlias]) {
1317
+ currentTarget.annotations[vocAlias] = {};
1318
+ }
1319
+
1320
+ if (!currentTarget.annotations._annotations) {
1321
+ currentTarget.annotations._annotations = {};
1322
+ }
1323
+
1324
+ var vocTermWithQualifier = "".concat(vocTerm).concat(annotation.qualifier ? "#".concat(annotation.qualifier) : "");
1325
+
1326
+ if (!bOverrideExisting && ((_currentTarget$annota = currentTarget.annotations) === null || _currentTarget$annota === void 0 ? void 0 : (_currentTarget$annota2 = _currentTarget$annota[vocAlias]) === null || _currentTarget$annota2 === void 0 ? void 0 : _currentTarget$annota2[vocTermWithQualifier]) !== undefined) {
1327
+ return;
1328
+ }
1329
+
1330
+ currentTarget.annotations[vocAlias][vocTermWithQualifier] = convertAnnotation(annotation, parserOutput, currentTarget, objectMap, toResolve, annotationSource, unresolvedAnnotations);
1331
+
1332
+ switch (typeof currentTarget.annotations[vocAlias][vocTermWithQualifier]) {
1333
+ case "string":
1334
+ currentTarget.annotations[vocAlias][vocTermWithQualifier] = new String(currentTarget.annotations[vocAlias][vocTermWithQualifier]);
1335
+ break;
1336
+
1337
+ case "boolean":
1338
+ currentTarget.annotations[vocAlias][vocTermWithQualifier] = new Boolean(currentTarget.annotations[vocAlias][vocTermWithQualifier]);
1339
+ break;
1340
+ }
1341
+
1342
+ if (currentTarget.annotations[vocAlias][vocTermWithQualifier] !== null && typeof currentTarget.annotations[vocAlias][vocTermWithQualifier] === "object") {
1343
+ currentTarget.annotations[vocAlias][vocTermWithQualifier].term = unalias(defaultReferences, "".concat(vocAlias, ".").concat(vocTerm));
1344
+ currentTarget.annotations[vocAlias][vocTermWithQualifier].qualifier = annotation.qualifier;
1345
+ currentTarget.annotations[vocAlias][vocTermWithQualifier].__source = annotationSource;
1346
+ }
1347
+
1348
+ var annotationTarget = "".concat(currentTargetName, "@").concat(unalias(defaultReferences, vocAlias + "." + vocTermWithQualifier));
1349
+
1350
+ if (annotation.annotations && Array.isArray(annotation.annotations)) {
1351
+ var subAnnotationList = {
1352
+ target: annotationTarget,
1353
+ annotations: annotation.annotations,
1354
+ __source: annotationSource
1355
+ };
1356
+ unresolvedAnnotations.push(subAnnotationList);
1357
+ } else if (annotation.annotations && !currentTarget.annotations[vocAlias][vocTermWithQualifier].annotations) {
1358
+ currentTarget.annotations[vocAlias][vocTermWithQualifier].annotations = annotation.annotations;
1359
+ }
1360
+
1361
+ currentTarget.annotations._annotations["".concat(vocAlias, ".").concat(vocTermWithQualifier)] = currentTarget.annotations[vocAlias][vocTermWithQualifier];
1362
+ objectMap[annotationTarget] = currentTarget.annotations[vocAlias][vocTermWithQualifier];
1363
+ });
1364
+ });
1365
+ }
1366
+ });
1367
+ });
1368
+ var extraUnresolvedAnnotations = [];
1369
+ unresolvedAnnotations.forEach(function (annotationList) {
1370
+ var currentTargetName = unalias(parserOutput.references, annotationList.target);
1371
+
1372
+ var _currentTargetName$sp = currentTargetName.split("@"),
1373
+ _currentTargetName$sp2 = _slicedToArray(_currentTargetName$sp, 2),
1374
+ baseObj = _currentTargetName$sp2[0],
1375
+ annotationPart = _currentTargetName$sp2[1];
1376
+
1377
+ var targetSplit = annotationPart.split("/");
1378
+ baseObj = baseObj + "@" + targetSplit[0];
1379
+ var currentTarget = targetSplit.slice(1).reduce(function (currentObj, path) {
1380
+ if (!currentObj) {
1381
+ return null;
1382
+ }
1383
+
1384
+ return currentObj[path];
1385
+ }, objectMap[baseObj]);
1386
+
1387
+ if (!currentTarget) {
1388
+ ANNOTATION_ERRORS.push({
1389
+ message: "The following annotation target was not found on the service " + currentTargetName
1390
+ }); // console.log("Missing target again " + currentTargetName);
1391
+ } else if (typeof currentTarget === "object") {
1392
+ if (!currentTarget.annotations) {
1393
+ currentTarget.annotations = {};
1394
+ }
1395
+
1396
+ annotationList.annotations.forEach(function (annotation) {
1397
+ var _splitTerm3 = splitTerm(defaultReferences, annotation.term),
1398
+ _splitTerm4 = _slicedToArray(_splitTerm3, 2),
1399
+ vocAlias = _splitTerm4[0],
1400
+ vocTerm = _splitTerm4[1];
1401
+
1402
+ if (!currentTarget.annotations[vocAlias]) {
1403
+ currentTarget.annotations[vocAlias] = {};
1404
+ }
1405
+
1406
+ if (!currentTarget.annotations._annotations) {
1407
+ currentTarget.annotations._annotations = {};
1408
+ }
1409
+
1410
+ var vocTermWithQualifier = "".concat(vocTerm).concat(annotation.qualifier ? "#".concat(annotation.qualifier) : "");
1411
+ currentTarget.annotations[vocAlias][vocTermWithQualifier] = convertAnnotation(annotation, parserOutput, currentTarget, objectMap, toResolve, annotationList.__source, extraUnresolvedAnnotations);
1412
+
1413
+ if (currentTarget.annotations[vocAlias][vocTermWithQualifier] !== null && typeof currentTarget.annotations[vocAlias][vocTermWithQualifier] === "object") {
1414
+ currentTarget.annotations[vocAlias][vocTermWithQualifier].term = unalias(defaultReferences, "".concat(vocAlias, ".").concat(vocTerm));
1415
+ currentTarget.annotations[vocAlias][vocTermWithQualifier].qualifier = annotation.qualifier;
1416
+ currentTarget.annotations[vocAlias][vocTermWithQualifier].__source = annotationList.__source;
1417
+ }
1418
+
1419
+ currentTarget.annotations._annotations["".concat(vocAlias, ".").concat(vocTermWithQualifier)] = currentTarget.annotations[vocAlias][vocTermWithQualifier];
1420
+ objectMap["".concat(currentTargetName, "@").concat(unalias(defaultReferences, vocAlias + "." + vocTermWithQualifier))] = currentTarget.annotations[vocAlias][vocTermWithQualifier];
1421
+ });
1422
+ }
1423
+ });
1424
+ toResolve.forEach(function (resolveable) {
1425
+ var toResolve = resolveable.toResolve;
1426
+ var targetStr = toResolve.$target;
1427
+ var resolvedTarget = objectMap[targetStr];
1428
+ var annotationsTerm = toResolve.annotationsTerm,
1429
+ annotationType = toResolve.annotationType;
1430
+ delete toResolve.annotationType;
1431
+ delete toResolve.annotationsTerm;
1432
+
1433
+ if (resolveable.inline && !(resolvedTarget instanceof String)) {
1434
+ // inline the resolved target
1435
+ var keys;
1436
+
1437
+ for (keys in toResolve) {
1438
+ delete toResolve[keys];
1439
+ }
1440
+
1441
+ Object.assign(toResolve, resolvedTarget);
1442
+ } else {
1443
+ // assign the resolved target
1444
+ toResolve.$target = resolvedTarget;
1445
+ }
1446
+
1447
+ if (!resolvedTarget) {
1448
+ toResolve.targetString = targetStr;
1449
+
1450
+ if (annotationsTerm && annotationType) {
1451
+ var oErrorMsg = {
1452
+ message: "Unable to resolve the path expression: " + targetStr + "\n" + "\n" + "Hint: Check and correct the path values under the following structure in the metadata (annotation.xml file or CDS annotations for the application): \n\n" + "<Annotation Term = " + annotationsTerm + ">" + "\n" + "<Record Type = " + annotationType + ">" + "\n" + "<AnnotationPath = " + targetStr + ">"
1453
+ };
1454
+ addAnnotationErrorMessage(targetStr, oErrorMsg);
1455
+ } else {
1456
+ var _property = toResolve.term;
1457
+ var path = toResolve.path;
1458
+ var termInfo = targetStr ? targetStr.split("/")[0] : targetStr;
1459
+ var _oErrorMsg = {
1460
+ message: "Unable to resolve the path expression: " + targetStr + "\n" + "\n" + "Hint: Check and correct the path values under the following structure in the metadata (annotation.xml file or CDS annotations for the application): \n\n" + "<Annotation Term = " + termInfo + ">" + "\n" + "<PropertyValue Property = " + _property + " Path= " + path + ">"
1461
+ };
1462
+ addAnnotationErrorMessage(targetStr, _oErrorMsg);
1463
+ }
1464
+ }
1465
+ });
1466
+
1467
+ for (var property in ALL_ANNOTATION_ERRORS) {
1468
+ ANNOTATION_ERRORS.push(ALL_ANNOTATION_ERRORS[property][0]);
1469
+ }
1470
+
1471
+ parserOutput.entitySets = parserOutput.schema.entitySets;
1472
+ var convertedOutput = {
1473
+ version: parserOutput.version,
1474
+ annotations: parserOutput.schema.annotations,
1475
+ namespace: parserOutput.schema.namespace,
1476
+ entityContainer: parserOutput.schema.entityContainer,
1477
+ actions: parserOutput.schema.actions,
1478
+ entitySets: parserOutput.schema.entitySets,
1479
+ singletons: parserOutput.schema.singletons,
1480
+ entityTypes: parserOutput.schema.entityTypes,
1481
+ complexTypes: parserOutput.schema.complexTypes,
1482
+ references: defaultReferences,
1483
+ diagnostics: ANNOTATION_ERRORS.concat()
1484
+ };
1485
+ convertedOutput.resolvePath = createGlobalResolve(convertedOutput, objectMap);
1486
+ return convertedOutput;
1487
+ }
1488
+
1489
+ _exports.convertTypes = convertTypes;
1490
+
1491
+ function revertValueToGenericType(references, value) {
1492
+ var result;
1493
+
1494
+ if (typeof value === "string") {
1495
+ var valueMatches = value.match(/(\w+)\.\w+\/.*/);
1496
+
1497
+ if (valueMatches && references.find(function (ref) {
1498
+ return ref.alias === valueMatches[1];
1499
+ })) {
1500
+ result = {
1501
+ type: "EnumMember",
1502
+ EnumMember: value
1503
+ };
1504
+ } else {
1505
+ result = {
1506
+ type: "String",
1507
+ String: value
1508
+ };
1509
+ }
1510
+ } else if (Array.isArray(value)) {
1511
+ result = {
1512
+ type: "Collection",
1513
+ Collection: value.map(function (anno) {
1514
+ return revertCollectionItemToGenericType(references, anno);
1515
+ })
1516
+ };
1517
+ } else if (typeof value === "boolean") {
1518
+ result = {
1519
+ type: "Bool",
1520
+ Bool: value
1521
+ };
1522
+ } else if (typeof value === "number") {
1523
+ if (value.toString() === value.toFixed()) {
1524
+ result = {
1525
+ type: "Int",
1526
+ Int: value
1527
+ };
1528
+ } else {
1529
+ result = {
1530
+ type: "Decimal",
1531
+ Decimal: value
1532
+ };
1533
+ }
1534
+ } else if (typeof value === "object" && value.isDecimal && value.isDecimal()) {
1535
+ result = {
1536
+ type: "Decimal",
1537
+ Decimal: value.valueOf()
1538
+ };
1539
+ } else if (value.type === "Path") {
1540
+ result = {
1541
+ type: "Path",
1542
+ Path: value.path
1543
+ };
1544
+ } else if (value.type === "AnnotationPath") {
1545
+ result = {
1546
+ type: "AnnotationPath",
1547
+ AnnotationPath: value.value
1548
+ };
1549
+ } else if (value.type === "PropertyPath") {
1550
+ result = {
1551
+ type: "PropertyPath",
1552
+ PropertyPath: value.value
1553
+ };
1554
+ } else if (value.type === "NavigationPropertyPath") {
1555
+ result = {
1556
+ type: "NavigationPropertyPath",
1557
+ NavigationPropertyPath: value.value
1558
+ };
1559
+ } else if (Object.prototype.hasOwnProperty.call(value, "$Type")) {
1560
+ result = {
1561
+ type: "Record",
1562
+ Record: revertCollectionItemToGenericType(references, value)
1563
+ };
1564
+ }
1565
+
1566
+ return result;
1567
+ }
1568
+
1569
+ function revertCollectionItemToGenericType(references, collectionItem) {
1570
+ if (typeof collectionItem === "string") {
1571
+ return collectionItem;
1572
+ } else if (typeof collectionItem === "object") {
1573
+ if (collectionItem.hasOwnProperty("$Type")) {
1574
+ // Annotation Record
1575
+ var outItem = {
1576
+ type: collectionItem.$Type,
1577
+ propertyValues: []
1578
+ }; // Could validate keys and type based on $Type
1579
+
1580
+ Object.keys(collectionItem).forEach(function (collectionKey) {
1581
+ if (collectionKey !== "$Type" && collectionKey !== "term" && collectionKey !== "__source" && collectionKey !== "qualifier" && collectionKey !== "ActionTarget" && collectionKey !== "fullyQualifiedName" && collectionKey !== "annotations") {
1582
+ var value = collectionItem[collectionKey];
1583
+ outItem.propertyValues.push({
1584
+ name: collectionKey,
1585
+ value: revertValueToGenericType(references, value)
1586
+ });
1587
+ } else if (collectionKey === "annotations") {
1588
+ var annotations = collectionItem[collectionKey];
1589
+ outItem.annotations = [];
1590
+ Object.keys(annotations).filter(function (key) {
1591
+ return key !== "_annotations";
1592
+ }).forEach(function (key) {
1593
+ Object.keys(annotations[key]).forEach(function (term) {
1594
+ var _outItem$annotations;
1595
+
1596
+ var parsedAnnotation = revertTermToGenericType(references, annotations[key][term]);
1597
+
1598
+ if (!parsedAnnotation.term) {
1599
+ var unaliasedTerm = unalias(references, "".concat(key, ".").concat(term));
1600
+
1601
+ if (unaliasedTerm) {
1602
+ var qualifiedSplit = unaliasedTerm.split("#");
1603
+ parsedAnnotation.term = qualifiedSplit[0];
1604
+
1605
+ if (qualifiedSplit.length > 1) {
1606
+ parsedAnnotation.qualifier = qualifiedSplit[1];
1607
+ }
1608
+ }
1609
+ }
1610
+
1611
+ (_outItem$annotations = outItem.annotations) === null || _outItem$annotations === void 0 ? void 0 : _outItem$annotations.push(parsedAnnotation);
1612
+ });
1613
+ });
1614
+ }
1615
+ });
1616
+ return outItem;
1617
+ } else if (collectionItem.type === "PropertyPath") {
1618
+ return {
1619
+ type: "PropertyPath",
1620
+ PropertyPath: collectionItem.value
1621
+ };
1622
+ } else if (collectionItem.type === "AnnotationPath") {
1623
+ return {
1624
+ type: "AnnotationPath",
1625
+ AnnotationPath: collectionItem.value
1626
+ };
1627
+ } else if (collectionItem.type === "NavigationPropertyPath") {
1628
+ return {
1629
+ type: "NavigationPropertyPath",
1630
+ NavigationPropertyPath: collectionItem.value
1631
+ };
1632
+ }
1633
+ }
1634
+ }
1635
+
1636
+ function revertTermToGenericType(references, annotation) {
1637
+ var baseAnnotation = {
1638
+ term: annotation.term,
1639
+ qualifier: annotation.qualifier
1640
+ };
1641
+
1642
+ if (Array.isArray(annotation)) {
1643
+ // Collection
1644
+ if (annotation.hasOwnProperty("annotations")) {
1645
+ baseAnnotation.annotations = [];
1646
+ var currentAnnotations = annotation.annotations;
1647
+ Object.keys(currentAnnotations).filter(function (key) {
1648
+ return key !== "_annotations";
1649
+ }).forEach(function (key) {
1650
+ Object.keys(currentAnnotations[key]).forEach(function (term) {
1651
+ var _baseAnnotation$annot;
1652
+
1653
+ var parsedAnnotation = revertTermToGenericType(references, currentAnnotations[key][term]);
1654
+
1655
+ if (!parsedAnnotation.term) {
1656
+ var unaliasedTerm = unalias(references, "".concat(key, ".").concat(term));
1657
+
1658
+ if (unaliasedTerm) {
1659
+ var qualifiedSplit = unaliasedTerm.split("#");
1660
+ parsedAnnotation.term = qualifiedSplit[0];
1661
+
1662
+ if (qualifiedSplit.length > 1) {
1663
+ parsedAnnotation.qualifier = qualifiedSplit[1];
1664
+ }
1665
+ }
1666
+ }
1667
+
1668
+ (_baseAnnotation$annot = baseAnnotation.annotations) === null || _baseAnnotation$annot === void 0 ? void 0 : _baseAnnotation$annot.push(parsedAnnotation);
1669
+ });
1670
+ });
1671
+ }
1672
+
1673
+ return _objectSpread(_objectSpread({}, baseAnnotation), {}, {
1674
+ collection: annotation.map(function (anno) {
1675
+ return revertCollectionItemToGenericType(references, anno);
1676
+ })
1677
+ });
1678
+ } else if (annotation.hasOwnProperty("$Type")) {
1679
+ return _objectSpread(_objectSpread({}, baseAnnotation), {}, {
1680
+ record: revertCollectionItemToGenericType(references, annotation)
1681
+ });
1682
+ } else {
1683
+ return _objectSpread(_objectSpread({}, baseAnnotation), {}, {
1684
+ value: revertValueToGenericType(references, annotation)
1685
+ });
1686
+ }
1687
+ }
1688
+
1689
+ _exports.revertTermToGenericType = revertTermToGenericType;
1690
+ return _exports;
1691
+ });
1692
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbW1vbi9Bbm5vdGF0aW9uQ29udmVydGVyLnRzIl0sIm5hbWVzIjpbIlBhdGgiLCJwYXRoRXhwcmVzc2lvbiIsInRhcmdldE5hbWUiLCJhbm5vdGF0aW9uc1Rlcm0iLCJhbm5vdGF0aW9uVHlwZSIsInRlcm0iLCJwYXRoIiwidHlwZSIsIiR0YXJnZXQiLCJUZXJtVG9UeXBlcyIsImRlZmF1bHRSZWZlcmVuY2VzIiwiYWxpYXMiLCJuYW1lc3BhY2UiLCJ1cmkiLCJyZWZlcmVuY2VzIiwidW5hbGlhc2VkVmFsdWUiLCJyZXZlcnNlUmVmZXJlbmNlTWFwIiwicmVkdWNlIiwibWFwIiwicmVmZXJlbmNlIiwibGFzdERvdEluZGV4IiwibGFzdEluZGV4T2YiLCJzdWJzdHIiLCJ2YWx1ZSIsImluZGV4T2YiLCJzcGxpdCIsInByZUFsaWFzIiwicG9zdEFsaWFzIiwiam9pbiIsInVuYWxpYXMiLCJhbGlhc2VkVmFsdWUiLCJyZWZlcmVuY2VNYXAiLCJidWlsZE9iamVjdE1hcCIsInBhcnNlck91dHB1dCIsIm9iamVjdE1hcCIsInNjaGVtYSIsImVudGl0eUNvbnRhaW5lciIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsImVudGl0eVNldHMiLCJmb3JFYWNoIiwiZW50aXR5U2V0IiwiYWN0aW9ucyIsImFjdGlvbiIsImlzQm91bmQiLCJ1bkJvdW5kQWN0aW9uTmFtZSIsIl90eXBlIiwicHVzaCIsInBhcmFtZXRlcnMiLCJwYXJhbWV0ZXIiLCJjb21wbGV4VHlwZXMiLCJjb21wbGV4VHlwZSIsInByb3BlcnRpZXMiLCJwcm9wZXJ0eSIsImVudGl0eVR5cGVzIiwiZW50aXR5VHlwZSIsImVudGl0eVByb3BlcnRpZXMiLCJjb21wbGV4VHlwZURlZmluaXRpb24iLCJjb21wbGV4VHlwZVByb3AiLCJjb21wbGV4VHlwZVByb3BUYXJnZXQiLCJPYmplY3QiLCJhc3NpZ24iLCJuYW1lIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJuYXZQcm9wZXJ0eSIsImtleXMiLCJhbm5vdGF0aW9ucyIsImFubm90YXRpb25Tb3VyY2UiLCJhbm5vdGF0aW9uTGlzdCIsImN1cnJlbnRUYXJnZXROYW1lIiwidGFyZ2V0IiwiYW5ub3RhdGlvbiIsImFubm90YXRpb25GUU4iLCJxdWFsaWZpZXIiLCJjb21iaW5lUGF0aCIsImN1cnJlbnRUYXJnZXQiLCJzdGFydHNXaXRoIiwiYWRkQW5ub3RhdGlvbkVycm9yTWVzc2FnZSIsIm9FcnJvck1zZyIsIkFMTF9BTk5PVEFUSU9OX0VSUk9SUyIsInJlc29sdmVUYXJnZXQiLCJwYXRoT25seSIsImluY2x1ZGVWaXNpdGVkT2JqZWN0cyIsInVuZGVmaW5lZCIsImFWaXNpdGVkT2JqZWN0cyIsInBhdGhTcGxpdCIsInRhcmdldFBhdGhTcGxpdCIsInBhdGhQYXJ0IiwiYW5ub3RhdGlvblBhdGgiLCJjdXJyZW50UGF0aCIsImN1cnJlbnRDb250ZXh0IiwiY3VycmVudFZhbHVlIiwibGVuZ3RoIiwidGFyZ2V0VHlwZSIsImVudGl0eVR5cGVOYW1lIiwidGFyZ2V0VHlwZU5hbWUiLCJzb3VyY2VUeXBlIiwiaXNFbnRpdHlTZXQiLCJsYXN0SWR4Iiwic3ViVGFyZ2V0IiwidmlzaXRlZE9iamVjdHMiLCJ2aXNpdGVkU3ViT2JqZWN0IiwiY29uY2F0IiwicmV2ZXJzZSIsImZpbmQiLCJvYmoiLCJpbnRlcm1lZGlhdGVUYXJnZXQiLCJoYXNPd25Qcm9wZXJ0eSIsIm1lc3NhZ2UiLCJpc0Fubm90YXRpb25QYXRoIiwicGF0aFN0ciIsInBhcnNlVmFsdWUiLCJwcm9wZXJ0eVZhbHVlIiwidmFsdWVGUU4iLCJ0b1Jlc29sdmUiLCJ1bnJlc29sdmVkQW5ub3RhdGlvbnMiLCJTdHJpbmciLCJJbnQiLCJCb29sIiwiRGVjaW1hbCIsIkRhdGUiLCJFbnVtTWVtYmVyIiwiUHJvcGVydHlQYXRoIiwiTmF2aWdhdGlvblByb3BlcnR5UGF0aCIsImFubm90YXRpb25UYXJnZXQiLCJBbm5vdGF0aW9uUGF0aCIsImlubGluZSIsInBhcnNlUmVjb3JkIiwiUmVjb3JkIiwicGFyc2VDb2xsZWN0aW9uIiwiQ29sbGVjdGlvbiIsImluZmVyVHlwZUZyb21UZXJtIiwiaXNFcnJvciIsInJlY29yZERlZmluaXRpb24iLCJjdXJyZW50RlFOIiwiYW5ub3RhdGlvblRlcm0iLCIkVHlwZSIsImFubm90YXRpb25Db250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwic3ViQW5ub3RhdGlvbkxpc3QiLCJfX3NvdXJjZSIsInByb3BlcnR5VmFsdWVzIiwiQWN0aW9uVGFyZ2V0IiwiQWN0aW9uIiwiQU5OT1RBVElPTl9FUlJPUlMiLCJnZXRPckluZmVyQ29sbGVjdGlvblR5cGUiLCJjb2xsZWN0aW9uRGVmaW5pdGlvbiIsImZpcnN0Q29sSXRlbSIsInBhcmVudEZRTiIsImNvbGxlY3Rpb25EZWZpbml0aW9uVHlwZSIsInByb3BlcnR5UGF0aCIsInByb3BlcnR5SWR4IiwicGF0aFZhbHVlIiwiYW5ub3RhdGlvbklkeCIsImFubm90YXRpb25Db2xsZWN0aW9uRWxlbWVudCIsIm5hdlByb3BlcnR5UGF0aCIsIm5hdlByb3BJZHgiLCJyZWNvcmRJZHgiLCJpZlZhbHVlIiwic3RyaW5nVmFsdWUiLCJFcnJvciIsImNvbnZlcnRBbm5vdGF0aW9uIiwicmVjb3JkIiwiY29sbGVjdGlvbiIsImNyZWF0ZVJlc29sdmVQYXRoRm4iLCJyZWxhdGl2ZVBhdGgiLCJyZXNvbHZlTmF2aWdhdGlvblByb3BlcnRpZXMiLCJhc3NvY2lhdGlvbnMiLCJuYXZQcm9wIiwib3V0TmF2UHJvcCIsInBhcnRuZXIiLCJpc0NvbGxlY3Rpb24iLCJjb250YWluc1RhcmdldCIsInJlZmVyZW50aWFsQ29uc3RyYWludCIsInJlbGF0aW9uc2hpcCIsInRhcmdldEFzc29jaWF0aW9uIiwiYXNzb2NpYXRpb24iLCJhc3NvY2lhdGlvbkVuZCIsImVuZCIsInJvbGUiLCJ0b1JvbGUiLCJtdWx0aXBsaWNpdHkiLCJvdXROYXZQcm9wUmVxIiwicmVzb2x2ZVBhdGgiLCJsaW5rQWN0aW9uc1RvRW50aXR5VHlwZSIsInNvdXJjZUVudGl0eVR5cGUiLCJyZXR1cm5FbnRpdHlUeXBlIiwicmV0dXJuVHlwZSIsImxpbmtFbnRpdHlUeXBlVG9FbnRpdHlTZXQiLCJrZXlQcm9wIiwiaXNLZXkiLCJsaW5rRW50aXR5VHlwZVRvU2luZ2xldG9uIiwic2luZ2xldG9ucyIsInNpbmdsZXRvbiIsInR5cGVOYW1lIiwibGlua1Byb3BlcnRpZXNUb0NvbXBsZXhUeXBlcyIsImVudGl0eVByb3BlcnR5IiwiY29tcGxleFR5cGVOYW1lIiwicHJlcGFyZUNvbXBsZXhUeXBlcyIsInNwbGl0VGVybSIsInRlcm1WYWx1ZSIsImFsaWFzZWRUZXJtIiwibGFzdERvdCIsInRlcm1BbGlhcyIsImNyZWF0ZUdsb2JhbFJlc29sdmUiLCJjb252ZXJ0ZWRPdXRwdXQiLCJzUGF0aCIsImFQYXRoU3BsaXQiLCJzaGlmdCIsImVudGl0eVNldE5hbWUiLCJldCIsIm9iamVjdFBhdGgiLCJ0YXJnZXRSZXNvbHV0aW9uIiwiY29udmVydFR5cGVzIiwib2JqZWN0TWFwRWxlbWVudCIsImFsbFRhcmdldHMiLCJiT3ZlcnJpZGVFeGlzdGluZyIsInZvY0FsaWFzIiwidm9jVGVybSIsIl9hbm5vdGF0aW9ucyIsInZvY1Rlcm1XaXRoUXVhbGlmaWVyIiwiQm9vbGVhbiIsImV4dHJhVW5yZXNvbHZlZEFubm90YXRpb25zIiwiYmFzZU9iaiIsImFubm90YXRpb25QYXJ0IiwidGFyZ2V0U3BsaXQiLCJzbGljZSIsImN1cnJlbnRPYmoiLCJyZXNvbHZlYWJsZSIsInRhcmdldFN0ciIsInJlc29sdmVkVGFyZ2V0IiwidGFyZ2V0U3RyaW5nIiwidGVybUluZm8iLCJ2ZXJzaW9uIiwiZGlhZ25vc3RpY3MiLCJyZXZlcnRWYWx1ZVRvR2VuZXJpY1R5cGUiLCJyZXN1bHQiLCJ2YWx1ZU1hdGNoZXMiLCJtYXRjaCIsInJlZiIsImFubm8iLCJyZXZlcnRDb2xsZWN0aW9uSXRlbVRvR2VuZXJpY1R5cGUiLCJ0b1N0cmluZyIsInRvRml4ZWQiLCJpc0RlY2ltYWwiLCJ2YWx1ZU9mIiwicHJvdG90eXBlIiwiY2FsbCIsImNvbGxlY3Rpb25JdGVtIiwib3V0SXRlbSIsImNvbGxlY3Rpb25LZXkiLCJmaWx0ZXIiLCJrZXkiLCJwYXJzZWRBbm5vdGF0aW9uIiwicmV2ZXJ0VGVybVRvR2VuZXJpY1R5cGUiLCJ1bmFsaWFzZWRUZXJtIiwicXVhbGlmaWVkU3BsaXQiLCJiYXNlQW5ub3RhdGlvbiIsImN1cnJlbnRBbm5vdGF0aW9ucyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bc0NNQSxJLEdBUUwsY0FDQ0MsY0FERCxFQUVDQyxVQUZELEVBR0NDLGVBSEQsRUFJQ0MsY0FKRCxFQUtDQyxJQUxELEVBTUU7QUFBQTs7QUFDRCxTQUFLQyxJQUFMLEdBQVlMLGNBQWMsQ0FBQ0QsSUFBM0I7QUFDQSxTQUFLTyxJQUFMLEdBQVksTUFBWjtBQUNBLFNBQUtDLE9BQUwsR0FBZU4sVUFBZjtBQUNDLFNBQUtHLElBQUwsR0FBWUEsSUFBYixFQUFxQixLQUFLRCxjQUFMLEdBQXNCQSxjQUEzQyxFQUE2RCxLQUFLRCxlQUFMLEdBQXVCQSxlQUFwRjtBQUNBLEc7O01BR0dNLFc7O2FBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFBQSxJQUFBQSxXO0FBQUFBLElBQUFBLFc7QUFBQUEsSUFBQUEsVztBQUFB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LGNBQXVCdlAsSUFBdkIsRUFBN0I7O0FBQ0Esa0JBQUkwUCxhQUFKLEVBQW1CO0FBQ2xCLG9CQUFNQyxjQUFjLEdBQUdELGFBQWEsQ0FBQ3RPLEtBQWQsQ0FBb0IsR0FBcEIsQ0FBdkI7QUFDQW9PLGdCQUFBQSxnQkFBZ0IsQ0FBQ3hQLElBQWpCLEdBQXdCMlAsY0FBYyxDQUFDLENBQUQsQ0FBdEM7O0FBQ0Esb0JBQUlBLGNBQWMsQ0FBQ3JLLE1BQWYsR0FBd0IsQ0FBNUIsRUFBK0I7QUFDOUJrSyxrQkFBQUEsZ0JBQWdCLENBQUNyTCxTQUFqQixHQUE2QndMLGNBQWMsQ0FBQyxDQUFELENBQTNDO0FBQ0E7QUFDRDtBQUNEOztBQUNELHFDQUFBQyxjQUFjLENBQUNoTSxXQUFmLGdGQUE0Qm5CLElBQTVCLENBQWlDK00sZ0JBQWpDO0FBQ0EsV0FiRDtBQWNBLFNBakJGO0FBa0JBOztBQUNELDZDQUNJSSxjQURKO0FBRUM5RixRQUFBQSxVQUFVLEVBQUU3RixVQUFVLENBQUNwRCxHQUFYLENBQWUsVUFBQThOLElBQUk7QUFBQSxpQkFBSUMsaUNBQWlDLENBQUNuTyxVQUFELEVBQWFrTyxJQUFiLENBQXJDO0FBQUEsU0FBbkI7QUFGYjtBQUlBLEtBNUJELE1BNEJPLElBQUkxSyxVQUFVLENBQUNvQyxjQUFYLENBQTBCLE9BQTFCLENBQUosRUFBd0M7QUFDOUMsNkNBQVl1SixjQUFaO0FBQTRCL0YsUUFBQUEsTUFBTSxFQUFFK0UsaUNBQWlDLENBQUNuTyxVQUFELEVBQWF3RCxVQUFiO0FBQXJFO0FBQ0EsS0FGTSxNQUVBO0FBQ04sNkNBQVkyTCxjQUFaO0FBQTRCMU8sUUFBQUEsS0FBSyxFQUFFb04sd0JBQXdCLENBQUM3TixVQUFELEVBQWF3RCxVQUFiO0FBQTNEO0FBQ0E7QUFDRCIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0QW5ub3RhdGlvbiBhcyBFZG1Bbm5vdGF0aW9uLFxuXHRBbm5vdGF0aW9uTGlzdCxcblx0QW5ub3RhdGlvblJlY29yZCxcblx0QW5ub3RhdGlvblRlcm0sXG5cdENvbnZlcnRlck91dHB1dCxcblx0RXhwcmVzc2lvbixcblx0UGFyc2VyT3V0cHV0LFxuXHRQYXRoRXhwcmVzc2lvbixcblx0UHJvcGVydHlQYXRoLFxuXHRQcm9wZXJ0eVZhbHVlLFxuXHRBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb24sXG5cdE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhFeHByZXNzaW9uLFxuXHRQcm9wZXJ0eVBhdGhFeHByZXNzaW9uXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHtcblx0QXNzb2NpYXRpb24sXG5cdEdlbmVyaWNOYXZpZ2F0aW9uUHJvcGVydHksXG5cdFJlZmVyZW5jZSxcblx0UHJvcGVydHkgYXMgUGFyc2VyUHJvcGVydHksXG5cdEVudGl0eVR5cGUgYXMgUGFyc2VyRW50aXR5VHlwZSxcblx0Q29tcGxleFR5cGUgYXMgUGFyc2VyQ29tcGxleFR5cGUsXG5cdFYyTmF2aWdhdGlvblByb3BlcnR5LFxuXHRWNE5hdmlnYXRpb25Qcm9wZXJ0eVxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9QYXJzZXJcIjtcbmltcG9ydCB7XG5cdEFubm90YXRpb24sXG5cdEVudGl0eVR5cGUsXG5cdENvbXBsZXhUeXBlLFxuXHRBY3Rpb24sXG5cdEVudGl0eVNldCxcblx0U2luZ2xldG9uLFxuXHRQcm9wZXJ0eSxcblx0TmF2aWdhdGlvblByb3BlcnR5LFxuXHRFbnRpdHlDb250YWluZXIsXG5cdFNlcnZpY2VPYmplY3RBbmRBbm5vdGF0aW9uLFxuXHRSZXNvbHV0aW9uVGFyZ2V0XG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9kaXN0L0NvbnZlcnRlclwiO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwidHMtbm9kZVwiO1xuXG5jbGFzcyBQYXRoIHtcblx0cGF0aDogc3RyaW5nO1xuXHQkdGFyZ2V0OiBzdHJpbmc7XG5cdHR5cGU6IHN0cmluZztcblx0YW5ub3RhdGlvbnNUZXJtOiBzdHJpbmc7XG5cdGFubm90YXRpb25UeXBlOiBzdHJpbmc7XG5cdHRlcm06IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwYXRoRXhwcmVzc2lvbjogUGF0aEV4cHJlc3Npb24sXG5cdFx0dGFyZ2V0TmFtZTogc3RyaW5nLFxuXHRcdGFubm90YXRpb25zVGVybTogc3RyaW5nLFxuXHRcdGFubm90YXRpb25UeXBlOiBzdHJpbmcsXG5cdFx0dGVybTogc3RyaW5nXG5cdCkge1xuXHRcdHRoaXMucGF0aCA9IHBhdGhFeHByZXNzaW9uLlBhdGg7XG5cdFx0dGhpcy50eXBlID0gXCJQYXRoXCI7XG5cdFx0dGhpcy4kdGFyZ2V0ID0gdGFyZ2V0TmFtZTtcblx0XHQodGhpcy50ZXJtID0gdGVybSksICh0aGlzLmFubm90YXRpb25UeXBlID0gYW5ub3RhdGlvblR5cGUpLCAodGhpcy5hbm5vdGF0aW9uc1Rlcm0gPSBhbm5vdGF0aW9uc1Rlcm0pO1xuXHR9XG59XG5cbmVudW0gVGVybVRvVHlwZXMge1xuXHRcIk9yZy5PRGF0YS5BdXRob3JpemF0aW9uLlYxLlNlY3VyaXR5U2NoZW1lc1wiID0gXCJPcmcuT0RhdGEuQXV0aG9yaXphdGlvbi5WMS5TZWN1cml0eVNjaGVtZVwiLFxuXHRcIk9yZy5PRGF0YS5BdXRob3JpemF0aW9uLlYxLkF1dGhvcml6YXRpb25zXCIgPSBcIk9yZy5PRGF0YS5BdXRob3JpemF0aW9uLlYxLkF1dGhvcml6YXRpb25cIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5SZXZpc2lvbnNcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuUmV2aXNpb25UeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNvcmUuVjEuTGlua3NcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuTGlua1wiLFxuXHRcIk9yZy5PRGF0YS5Db3JlLlYxLkV4YW1wbGVcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuRXhhbXBsZVZhbHVlXCIsXG5cdFwiT3JnLk9EYXRhLkNvcmUuVjEuTWVzc2FnZXNcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuTWVzc2FnZVR5cGVcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5WYWx1ZUV4Y2VwdGlvblwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5WYWx1ZUV4Y2VwdGlvblR5cGVcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5SZXNvdXJjZUV4Y2VwdGlvblwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5SZXNvdXJjZUV4Y2VwdGlvblR5cGVcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5EYXRhTW9kaWZpY2F0aW9uRXhjZXB0aW9uXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLkRhdGFNb2RpZmljYXRpb25FeGNlcHRpb25UeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNvcmUuVjEuSXNMYW5ndWFnZURlcGVuZGVudFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5EZXJlZmVyZW5jZWFibGVJRHNcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLkNvcmUuVjEuQ29udmVudGlvbmFsSURzXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcIk9yZy5PRGF0YS5Db3JlLlYxLlBlcm1pc3Npb25zXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlBlcm1pc3Npb25cIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5EZWZhdWx0TmFtZXNwYWNlXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcIk9yZy5PRGF0YS5Db3JlLlYxLkltbXV0YWJsZVwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5Db21wdXRlZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5Db21wdXRlZERlZmF1bHRWYWx1ZVwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5Jc1VSTFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5Jc01lZGlhVHlwZVwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5Db250ZW50RGlzcG9zaXRpb25cIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuQ29udGVudERpc3Bvc2l0aW9uVHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5Db3JlLlYxLk9wdGltaXN0aWNDb25jdXJyZW5jeVwiID0gXCJFZG0uUHJvcGVydHlQYXRoXCIsXG5cdFwiT3JnLk9EYXRhLkNvcmUuVjEuQWRkaXRpb25hbFByb3BlcnRpZXNcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLkNvcmUuVjEuQXV0b0V4cGFuZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5BdXRvRXhwYW5kUmVmZXJlbmNlc1wiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5NYXlJbXBsZW1lbnRcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuUXVhbGlmaWVkVHlwZU5hbWVcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5PcmRlcmVkXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcIk9yZy5PRGF0YS5Db3JlLlYxLlBvc2l0aW9uYWxJbnNlcnRcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLkNvcmUuVjEuQWx0ZXJuYXRlS2V5c1wiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5BbHRlcm5hdGVLZXlcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5PcHRpb25hbFBhcmFtZXRlclwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5PcHRpb25hbFBhcmFtZXRlclR5cGVcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5PcGVyYXRpb25BdmFpbGFibGVcIiA9IFwiRWRtLkJvb2xlYW5cIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMS5TeW1ib2xpY05hbWVcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuU2ltcGxlSWRlbnRpZmllclwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuQ29uZm9ybWFuY2VMZXZlbFwiID0gXCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkNvbmZvcm1hbmNlTGV2ZWxUeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5Bc3luY2hyb25vdXNSZXF1ZXN0c1N1cHBvcnRlZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkJhdGNoQ29udGludWVPbkVycm9yU3VwcG9ydGVkXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuSXNvbGF0aW9uU3VwcG9ydGVkXCIgPSBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuSXNvbGF0aW9uTGV2ZWxcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkNyb3NzSm9pblN1cHBvcnRlZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkNhbGxiYWNrU3VwcG9ydGVkXCIgPSBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuQ2FsbGJhY2tUeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5DaGFuZ2VUcmFja2luZ1wiID0gXCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkNoYW5nZVRyYWNraW5nVHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuQ291bnRSZXN0cmljdGlvbnNcIiA9IFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5Db3VudFJlc3RyaWN0aW9uc1R5cGVcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLk5hdmlnYXRpb25SZXN0cmljdGlvbnNcIiA9IFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5OYXZpZ2F0aW9uUmVzdHJpY3Rpb25zVHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuSW5kZXhhYmxlQnlLZXlcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5Ub3BTdXBwb3J0ZWRcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5Ta2lwU3VwcG9ydGVkXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuQ29tcHV0ZVN1cHBvcnRlZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLlNlbGVjdFN1cHBvcnRcIiA9IFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5TZWxlY3RTdXBwb3J0VHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuQmF0Y2hTdXBwb3J0ZWRcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5CYXRjaFN1cHBvcnRcIiA9IFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5CYXRjaFN1cHBvcnRUeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5GaWx0ZXJSZXN0cmljdGlvbnNcIiA9IFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5GaWx0ZXJSZXN0cmljdGlvbnNUeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5Tb3J0UmVzdHJpY3Rpb25zXCIgPSBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuU29ydFJlc3RyaWN0aW9uc1R5cGVcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkV4cGFuZFJlc3RyaWN0aW9uc1wiID0gXCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkV4cGFuZFJlc3RyaWN0aW9uc1R5cGVcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLlNlYXJjaFJlc3RyaWN0aW9uc1wiID0gXCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLlNlYXJjaFJlc3RyaWN0aW9uc1R5cGVcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLktleUFzU2VnbWVudFN1cHBvcnRlZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLlF1ZXJ5U2VnbWVudFN1cHBvcnRlZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkluc2VydFJlc3RyaWN0aW9uc1wiID0gXCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkluc2VydFJlc3RyaWN0aW9uc1R5cGVcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkRlZXBJbnNlcnRTdXBwb3J0XCIgPSBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuRGVlcEluc2VydFN1cHBvcnRUeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5VcGRhdGVSZXN0cmljdGlvbnNcIiA9IFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5VcGRhdGVSZXN0cmljdGlvbnNUeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5EZWVwVXBkYXRlU3VwcG9ydFwiID0gXCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkRlZXBVcGRhdGVTdXBwb3J0VHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuRGVsZXRlUmVzdHJpY3Rpb25zXCIgPSBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuRGVsZXRlUmVzdHJpY3Rpb25zVHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuQ29sbGVjdGlvblByb3BlcnR5UmVzdHJpY3Rpb25zXCIgPSBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuQ29sbGVjdGlvblByb3BlcnR5UmVzdHJpY3Rpb25zVHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuT3BlcmF0aW9uUmVzdHJpY3Rpb25zXCIgPSBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuT3BlcmF0aW9uUmVzdHJpY3Rpb25zVHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuQW5ub3RhdGlvblZhbHVlc0luUXVlcnlTdXBwb3J0ZWRcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5Nb2RpZmljYXRpb25RdWVyeU9wdGlvbnNcIiA9IFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5Nb2RpZmljYXRpb25RdWVyeU9wdGlvbnNUeXBlXCIsXG5cdFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5SZWFkUmVzdHJpY3Rpb25zXCIgPSBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuUmVhZFJlc3RyaWN0aW9uc1R5cGVcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkN1c3RvbUhlYWRlcnNcIiA9IFwiT3JnLk9EYXRhLkNhcGFiaWxpdGllcy5WMS5DdXN0b21QYXJhbWV0ZXJcIixcblx0XCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkN1c3RvbVF1ZXJ5T3B0aW9uc1wiID0gXCJPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLkN1c3RvbVBhcmFtZXRlclwiLFxuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuTWVkaWFMb2NhdGlvblVwZGF0ZVN1cHBvcnRlZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQXBwbHlTdXBwb3J0ZWRcIiA9IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5Hcm91cGFibGVcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFnZ3JlZ2F0YWJsZVwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQ29udGV4dERlZmluaW5nUHJvcGVydGllc1wiID0gXCJFZG0uUHJvcGVydHlQYXRoXCIsXG5cdFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkxldmVsZWRIaWVyYXJjaHlcIiA9IFwiRWRtLlByb3BlcnR5UGF0aFwiLFxuXHRcIk9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5SZWN1cnNpdmVIaWVyYXJjaHlcIiA9IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLlJlY3Vyc2l2ZUhpZXJhcmNoeVR5cGVcIixcblx0XCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQXZhaWxhYmxlT25BZ2dyZWdhdGVzXCIgPSBcIk9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5BdmFpbGFibGVPbkFnZ3JlZ2F0ZXNUeXBlXCIsXG5cdFwiT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuTWluaW11bVwiID0gXCJFZG0uUHJpbWl0aXZlVHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLk1heGltdW1cIiA9IFwiRWRtLlByaW1pdGl2ZVR5cGVcIixcblx0XCJPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5FeGNsdXNpdmVcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuQWxsb3dlZFZhbHVlc1wiID0gXCJPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5BbGxvd2VkVmFsdWVcIixcblx0XCJPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5NdWx0aXBsZU9mXCIgPSBcIkVkbS5EZWNpbWFsXCIsXG5cdFwiT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuQ29uc3RyYWludFwiID0gXCJPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5Db25zdHJhaW50VHlwZVwiLFxuXHRcIk9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLkl0ZW1zT2ZcIiA9IFwiT3JnLk9EYXRhLlZhbGlkYXRpb24uVjEuSXRlbXNPZlR5cGVcIixcblx0XCJPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMS5PcGVuUHJvcGVydHlUeXBlQ29uc3RyYWludFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5RdWFsaWZpZWRUeXBlTmFtZVwiLFxuXHRcIk9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLkRlcml2ZWRUeXBlQ29uc3RyYWludFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5RdWFsaWZpZWRUeXBlTmFtZVwiLFxuXHRcIk9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLkFsbG93ZWRUZXJtc1wiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5RdWFsaWZpZWRUZXJtTmFtZVwiLFxuXHRcIk9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLkFwcGxpY2FibGVUZXJtc1wiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5RdWFsaWZpZWRUZXJtTmFtZVwiLFxuXHRcIk9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLk1heEl0ZW1zXCIgPSBcIkVkbS5JbnQ2NFwiLFxuXHRcIk9yZy5PRGF0YS5WYWxpZGF0aW9uLlYxLk1pbkl0ZW1zXCIgPSBcIkVkbS5JbnQ2NFwiLFxuXHRcIk9yZy5PRGF0YS5NZWFzdXJlcy5WMS5TY2FsZVwiID0gXCJFZG0uQnl0ZVwiLFxuXHRcIk9yZy5PRGF0YS5NZWFzdXJlcy5WMS5EdXJhdGlvbkdyYW51bGFyaXR5XCIgPSBcIk9yZy5PRGF0YS5NZWFzdXJlcy5WMS5EdXJhdGlvbkdyYW51bGFyaXR5VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkFuYWx5dGljcy52MS5EaW1lbnNpb25cIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQW5hbHl0aWNzLnYxLk1lYXN1cmVcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQW5hbHl0aWNzLnYxLkFjY3VtdWxhdGl2ZU1lYXN1cmVcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQW5hbHl0aWNzLnYxLlJvbGxlZFVwUHJvcGVydHlDb3VudFwiID0gXCJFZG0uSW50MTZcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5BbmFseXRpY3MudjEuUGxhbm5pbmdBY3Rpb25cIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQW5hbHl0aWNzLnYxLkFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkFuYWx5dGljcy52MS5BZ2dyZWdhdGVkUHJvcGVydHlUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlNlcnZpY2VWZXJzaW9uXCIgPSBcIkVkbS5JbnQzMlwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5TZXJ2aWNlU2NoZW1hVmVyc2lvblwiID0gXCJFZG0uSW50MzJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dEZvclwiID0gXCJFZG0uUHJvcGVydHlQYXRoXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzTGFuZ3VhZ2VJZGVudGlmaWVyXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5UZXh0Rm9ybWF0XCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5UZXh0Rm9ybWF0VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0RpZ2l0U2VxdWVuY2VcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzVXBwZXJDYXNlXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0N1cnJlbmN5XCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc1VuaXRcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlVuaXRTcGVjaWZpY1NjYWxlXCIgPSBcIkVkbS5QcmltaXRpdmVUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlVuaXRTcGVjaWZpY1ByZWNpc2lvblwiID0gXCJFZG0uUHJpbWl0aXZlVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5TZWNvbmRhcnlLZXlcIiA9IFwiRWRtLlByb3BlcnR5UGF0aFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5NaW5PY2N1cnNcIiA9IFwiRWRtLkludDY0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLk1heE9jY3Vyc1wiID0gXCJFZG0uSW50NjRcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuQXNzb2NpYXRpb25FbnRpdHlcIiA9IFwiRWRtLk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRGVyaXZlZE5hdmlnYXRpb25cIiA9IFwiRWRtLk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTWFza2VkXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5NYXNrZWRBbHdheXNcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlNlbWFudGljT2JqZWN0TWFwcGluZ1wiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuU2VtYW50aWNPYmplY3RNYXBwaW5nVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0luc3RhbmNlQW5ub3RhdGlvblwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9uc1wiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9uVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5GaWVsZENvbnRyb2xcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkZpZWxkQ29udHJvbFR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuQXBwbGljYXRpb25cIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkFwcGxpY2F0aW9uVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5UaW1lc3RhbXBcIiA9IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkVycm9yUmVzb2x1dGlvblwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRXJyb3JSZXNvbHV0aW9uVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5NZXNzYWdlc1wiID0gXCJFZG0uQ29tcGxleFR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEubnVtZXJpY1NldmVyaXR5XCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5OdW1lcmljTWVzc2FnZVNldmVyaXR5VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5NYXhpbXVtTnVtZXJpY01lc3NhZ2VTZXZlcml0eVwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTnVtZXJpY01lc3NhZ2VTZXZlcml0eVR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNBY3Rpb25Dcml0aWNhbFwiID0gXCJFZG0uQm9vbGVhblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5BdHRyaWJ1dGVzXCIgPSBcIkVkbS5Qcm9wZXJ0eVBhdGhcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuUmVsYXRlZFJlY3Vyc2l2ZUhpZXJhcmNoeVwiID0gXCJFZG0uQW5ub3RhdGlvblBhdGhcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSW50ZXJ2YWxcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkludGVydmFsVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5SZXN1bHRDb250ZXh0XCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5XZWFrUmVmZXJlbnRpYWxDb25zdHJhaW50XCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5XZWFrUmVmZXJlbnRpYWxDb25zdHJhaW50VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc05hdHVyYWxQZXJzb25cIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlZhbHVlTGlzdFwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RSZWxldmFudFF1YWxpZmllcnNcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlNpbXBsZUlkZW50aWZpZXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RNYXBwaW5nXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5WYWx1ZUxpc3RNYXBwaW5nVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0NhbGVuZGFyWWVhclwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNDYWxlbmRhckhhbGZ5ZWFyXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0NhbGVuZGFyUXVhcnRlclwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNDYWxlbmRhck1vbnRoXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0NhbGVuZGFyV2Vla1wiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNEYXlPZkNhbGVuZGFyTW9udGhcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzRGF5T2ZDYWxlbmRhclllYXJcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzQ2FsZW5kYXJZZWFySGFsZnllYXJcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzQ2FsZW5kYXJZZWFyUXVhcnRlclwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNDYWxlbmRhclllYXJNb250aFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNDYWxlbmRhclllYXJXZWVrXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0NhbGVuZGFyRGF0ZVwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNGaXNjYWxZZWFyXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0Zpc2NhbFBlcmlvZFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNGaXNjYWxZZWFyUGVyaW9kXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Jc0Zpc2NhbFF1YXJ0ZXJcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzRmlzY2FsWWVhclF1YXJ0ZXJcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzRmlzY2FsV2Vla1wiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNGaXNjYWxZZWFyV2Vla1wiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuSXNEYXlPZkZpc2NhbFllYXJcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLklzRmlzY2FsWWVhclZhcmlhbnRcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLk11dHVhbGx5RXhjbHVzaXZlVGVybVwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnRSb290XCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3RUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Tm9kZVwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRHJhZnROb2RlVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdEFjdGl2YXRpb25WaWFcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlNpbXBsZUlkZW50aWZpZXJcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRWRpdGFibGVGaWVsZEZvclwiID0gXCJFZG0uUHJvcGVydHlQYXRoXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlNlbWFudGljS2V5XCIgPSBcIkVkbS5Qcm9wZXJ0eVBhdGhcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuU2lkZUVmZmVjdHNcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlNpZGVFZmZlY3RzVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EZWZhdWx0VmFsdWVzRnVuY3Rpb25cIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlF1YWxpZmllZE5hbWVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuRmlsdGVyRGVmYXVsdFZhbHVlXCIgPSBcIkVkbS5QcmltaXRpdmVUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkZpbHRlckRlZmF1bHRWYWx1ZUhpZ2hcIiA9IFwiRWRtLlByaW1pdGl2ZVR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuU29ydE9yZGVyXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Tb3J0T3JkZXJUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLlJlY3Vyc2l2ZUhpZXJhcmNoeVwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuUmVjdXJzaXZlSGllcmFyY2h5VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5DcmVhdGVkQXRcIiA9IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkNyZWF0ZWRCeVwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVXNlcklEXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkNoYW5nZWRBdFwiID0gXCJFZG0uRGF0ZVRpbWVPZmZzZXRcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuQ2hhbmdlZEJ5XCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5Vc2VySURcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuQXBwbHlNdWx0aVVuaXRCZWhhdmlvckZvclNvcnRpbmdBbmRGaWx0ZXJpbmdcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29kZUxpc3QudjEuQ3VycmVuY3lDb2Rlc1wiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db2RlTGlzdC52MS5Db2RlTGlzdFNvdXJjZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvZGVMaXN0LnYxLlVuaXRzT2ZNZWFzdXJlXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvZGVMaXN0LnYxLkNvZGVMaXN0U291cmNlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29kZUxpc3QudjEuU3RhbmRhcmRDb2RlXCIgPSBcIkVkbS5Qcm9wZXJ0eVBhdGhcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db2RlTGlzdC52MS5FeHRlcm5hbENvZGVcIiA9IFwiRWRtLlByb3BlcnR5UGF0aFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvZGVMaXN0LnYxLklzQ29uZmlndXJhdGlvbkRlcHJlY2F0aW9uQ29kZVwiID0gXCJFZG0uQm9vbGVhblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuQ29udGFjdFwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tdW5pY2F0aW9uLnYxLkNvbnRhY3RUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbXVuaWNhdGlvbi52MS5BZGRyZXNzXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuQWRkcmVzc1R5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tdW5pY2F0aW9uLnYxLklzRW1haWxBZGRyZXNzXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuSXNQaG9uZU51bWJlclwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tdW5pY2F0aW9uLnYxLkV2ZW50XCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuRXZlbnREYXRhXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbXVuaWNhdGlvbi52MS5UYXNrXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjEuVGFza0RhdGFcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tdW5pY2F0aW9uLnYxLk1lc3NhZ2VcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbXVuaWNhdGlvbi52MS5NZXNzYWdlRGF0YVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkhpZXJhcmNoeS52MS5SZWN1cnNpdmVIaWVyYXJjaHlcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuSGllcmFyY2h5LnYxLlJlY3Vyc2l2ZUhpZXJhcmNoeVR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5QZXJzb25hbERhdGEudjEuRW50aXR5U2VtYW50aWNzXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlBlcnNvbmFsRGF0YS52MS5FbnRpdHlTZW1hbnRpY3NUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuUGVyc29uYWxEYXRhLnYxLkZpZWxkU2VtYW50aWNzXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlBlcnNvbmFsRGF0YS52MS5GaWVsZFNlbWFudGljc1R5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5QZXJzb25hbERhdGEudjEuSXNQb3RlbnRpYWxseVBlcnNvbmFsXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlBlcnNvbmFsRGF0YS52MS5Jc1BvdGVudGlhbGx5U2Vuc2l0aXZlXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlNlc3Npb24udjEuU3RpY2t5U2Vzc2lvblN1cHBvcnRlZFwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWRUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVySW5mb1wiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJJbmZvVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLklkZW50aWZpY2F0aW9uXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEFic3RyYWN0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQmFkZ2VcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQmFkZ2VUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW1cIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkQWJzdHJhY3RcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TdGF0dXNJbmZvXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEFic3RyYWN0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRmllbGRHcm91cFwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNvbm5lY3RlZEZpZWxkc1wiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Db25uZWN0ZWRGaWVsZHNUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuR2VvTG9jYXRpb25zXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkdlb0xvY2F0aW9uVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkdlb0xvY2F0aW9uXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkdlb0xvY2F0aW9uVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNvbnRhY3RzXCIgPSBcIkVkbS5Bbm5vdGF0aW9uUGF0aFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLk1lZGlhUmVzb3VyY2VcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTWVkaWFSZXNvdXJjZVR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnRcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLktQSVwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5LUElUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnREZWZpbml0aW9uVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlZhbHVlQ3JpdGljYWxpdHlcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuVmFsdWVDcml0aWNhbGl0eVR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Dcml0aWNhbGl0eUxhYmVsc1wiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5Dcml0aWNhbGl0eUxhYmVsVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wiID0gXCJFZG0uUHJvcGVydHlQYXRoXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRmFjZXRzXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZhY2V0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZhY2V0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuUXVpY2tWaWV3RmFjZXRzXCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZhY2V0XCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuUXVpY2tDcmVhdGVGYWNldHNcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRmFjZXRcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWx0ZXJGYWNldHNcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuUmVmZXJlbmNlRmFjZXRcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuUHJlc2VudGF0aW9uVmFyaWFudFwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5QcmVzZW50YXRpb25WYXJpYW50VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvblZhcmlhbnRcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuU2VsZWN0aW9uVmFyaWFudFR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5UaGluZ1BlcnNwZWN0aXZlXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLklzU3VtbWFyeVwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5QYXJ0T2ZQcmV2aWV3XCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLk1hcFwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5HYWxsZXJ5XCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLklzSW1hZ2VVUkxcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSXNJbWFnZVwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5NdWx0aUxpbmVUZXh0XCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlRleHRBcnJhbmdlbWVudFwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5UZXh0QXJyYW5nZW1lbnRUeXBlXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSW1wb3J0YW5jZVwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5JbXBvcnRhbmNlVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhpZGRlblwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DcmVhdGVIaWRkZW5cIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuVXBkYXRlSGlkZGVuXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRlbGV0ZUhpZGRlblwiID0gXCJPcmcuT0RhdGEuQ29yZS5WMS5UYWdcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IaWRkZW5GaWx0ZXJcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRGVmYXVsdFwiID0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRBYnN0cmFjdFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNyaXRpY2FsaXR5XCIgPSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNyaXRpY2FsaXR5VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb25cIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ3JpdGljYWxpdHlDYWxjdWxhdGlvblR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5FbXBoYXNpemVkXCIgPSBcIk9yZy5PRGF0YS5Db3JlLlYxLlRhZ1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLk9yZGVyQnlcIiA9IFwiRWRtLlByb3BlcnR5UGF0aFwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlBhcmFtZXRlckRlZmF1bHRWYWx1ZVwiID0gXCJFZG0uUHJpbWl0aXZlVHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlJlY29tbWVuZGF0aW9uU3RhdGVcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuUmVjb21tZW5kYXRpb25TdGF0ZVR5cGVcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5SZWNvbW1lbmRhdGlvbkxpc3RcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuUmVjb21tZW5kYXRpb25MaXN0VHlwZVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkV4Y2x1ZGVGcm9tTmF2aWdhdGlvbkNvbnRleHRcIiA9IFwiT3JnLk9EYXRhLkNvcmUuVjEuVGFnXCIsXG5cdFwiY29tLnNhcC52b2NhYnVsYXJpZXMuSFRNTDUudjEuQ3NzRGVmYXVsdHNcIiA9IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuSFRNTDUudjEuQ3NzRGVmYXVsdHNUeXBlXCJcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRSZWZlcmVuY2VzOiBSZWZlcmVuY2VzV2l0aE1hcCA9IFtcblx0eyBhbGlhczogXCJDYXBhYmlsaXRpZXNcIiwgbmFtZXNwYWNlOiBcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjFcIiwgdXJpOiBcIlwiIH0sXG5cdHsgYWxpYXM6IFwiQWdncmVnYXRpb25cIiwgbmFtZXNwYWNlOiBcIk9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMVwiLCB1cmk6IFwiXCIgfSxcblx0eyBhbGlhczogXCJWYWxpZGF0aW9uXCIsIG5hbWVzcGFjZTogXCJPcmcuT0RhdGEuVmFsaWRhdGlvbi5WMVwiLCB1cmk6IFwiXCIgfSxcblx0eyBuYW1lc3BhY2U6IFwiT3JnLk9EYXRhLkNvcmUuVjFcIiwgYWxpYXM6IFwiQ29yZVwiLCB1cmk6IFwiXCIgfSxcblx0eyBuYW1lc3BhY2U6IFwiT3JnLk9EYXRhLk1lYXN1cmVzLlYxXCIsIGFsaWFzOiBcIk1lYXN1cmVzXCIsIHVyaTogXCJcIiB9LFxuXHR7IG5hbWVzcGFjZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjFcIiwgYWxpYXM6IFwiQ29tbW9uXCIsIHVyaTogXCJcIiB9LFxuXHR7IG5hbWVzcGFjZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MVwiLCBhbGlhczogXCJVSVwiLCB1cmk6IFwiXCIgfSxcblx0eyBuYW1lc3BhY2U6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MVwiLCBhbGlhczogXCJTZXNzaW9uXCIsIHVyaTogXCJcIiB9LFxuXHR7IG5hbWVzcGFjZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5BbmFseXRpY3MudjFcIiwgYWxpYXM6IFwiQW5hbHl0aWNzXCIsIHVyaTogXCJcIiB9LFxuXHR7IG5hbWVzcGFjZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5Db2RlTGlzdC52MVwiLCBhbGlhczogXCJDb2RlTGlzdFwiLCB1cmk6IFwiXCIgfSxcblx0eyBuYW1lc3BhY2U6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuUGVyc29uYWxEYXRhLnYxXCIsIGFsaWFzOiBcIlBlcnNvbmFsRGF0YVwiLCB1cmk6IFwiXCIgfSxcblx0eyBuYW1lc3BhY2U6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbXVuaWNhdGlvbi52MVwiLCBhbGlhczogXCJDb21tdW5pY2F0aW9uXCIsIHVyaTogXCJcIiB9LFxuXHR7IG5hbWVzcGFjZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5IVE1MNS52MVwiLCBhbGlhczogXCJIVE1MNVwiLCB1cmk6IFwiXCIgfVxuXTtcblxudHlwZSBSZWZlcmVuY2VzV2l0aE1hcCA9IFJlZmVyZW5jZVtdICYge1xuXHRyZWZlcmVuY2VNYXA/OiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+O1xuXHRyZXZlcnNlUmVmZXJlbmNlTWFwPzogUmVjb3JkPHN0cmluZywgUmVmZXJlbmNlPjtcbn07XG5cbmZ1bmN0aW9uIGFsaWFzKHJlZmVyZW5jZXM6IFJlZmVyZW5jZXNXaXRoTWFwLCB1bmFsaWFzZWRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0aWYgKCFyZWZlcmVuY2VzLnJldmVyc2VSZWZlcmVuY2VNYXApIHtcblx0XHRyZWZlcmVuY2VzLnJldmVyc2VSZWZlcmVuY2VNYXAgPSByZWZlcmVuY2VzLnJlZHVjZSgobWFwOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+LCByZWZlcmVuY2UpID0+IHtcblx0XHRcdG1hcFtyZWZlcmVuY2UubmFtZXNwYWNlXSA9IHJlZmVyZW5jZTtcblx0XHRcdHJldHVybiBtYXA7XG5cdFx0fSwge30pO1xuXHR9XG5cdGlmICghdW5hbGlhc2VkVmFsdWUpIHtcblx0XHRyZXR1cm4gdW5hbGlhc2VkVmFsdWU7XG5cdH1cblx0Y29uc3QgbGFzdERvdEluZGV4ID0gdW5hbGlhc2VkVmFsdWUubGFzdEluZGV4T2YoXCIuXCIpO1xuXHRjb25zdCBuYW1lc3BhY2UgPSB1bmFsaWFzZWRWYWx1ZS5zdWJzdHIoMCwgbGFzdERvdEluZGV4KTtcblx0Y29uc3QgdmFsdWUgPSB1bmFsaWFzZWRWYWx1ZS5zdWJzdHIobGFzdERvdEluZGV4ICsgMSk7XG5cdGNvbnN0IHJlZmVyZW5jZSA9IHJlZmVyZW5jZXMucmV2ZXJzZVJlZmVyZW5jZU1hcFtuYW1lc3BhY2VdO1xuXHRpZiAocmVmZXJlbmNlKSB7XG5cdFx0cmV0dXJuIGAke3JlZmVyZW5jZS5hbGlhc30uJHt2YWx1ZX1gO1xuXHR9IGVsc2Uge1xuXHRcdC8vIFRyeSB0byBzZWUgaWYgaXQncyBhbiBhbm5vdGF0aW9uIFBhdGggbGlrZSB0b19TYWxlc09yZGVyL0BVSS5MaW5lSXRlbVxuXHRcdGlmICh1bmFsaWFzZWRWYWx1ZS5pbmRleE9mKFwiQFwiKSAhPT0gLTEpIHtcblx0XHRcdGNvbnN0IFtwcmVBbGlhcywgLi4ucG9zdEFsaWFzXSA9IHVuYWxpYXNlZFZhbHVlLnNwbGl0KFwiQFwiKTtcblx0XHRcdHJldHVybiBgJHtwcmVBbGlhc31AJHthbGlhcyhyZWZlcmVuY2VzLCBwb3N0QWxpYXMuam9pbihcIkBcIikpfWA7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmFsaWFzZWRWYWx1ZTtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gdW5hbGlhcyhyZWZlcmVuY2VzOiBSZWZlcmVuY2VzV2l0aE1hcCwgYWxpYXNlZFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAoIXJlZmVyZW5jZXMucmVmZXJlbmNlTWFwKSB7XG5cdFx0cmVmZXJlbmNlcy5yZWZlcmVuY2VNYXAgPSByZWZlcmVuY2VzLnJlZHVjZSgobWFwOiBSZWNvcmQ8c3RyaW5nLCBSZWZlcmVuY2U+LCByZWZlcmVuY2UpID0+IHtcblx0XHRcdG1hcFtyZWZlcmVuY2UuYWxpYXNdID0gcmVmZXJlbmNlO1xuXHRcdFx0cmV0dXJuIG1hcDtcblx0XHR9LCB7fSk7XG5cdH1cblx0aWYgKCFhbGlhc2VkVmFsdWUpIHtcblx0XHRyZXR1cm4gYWxpYXNlZFZhbHVlO1xuXHR9XG5cdGNvbnN0IFthbGlhcywgLi4udmFsdWVdID0gYWxpYXNlZFZhbHVlLnNwbGl0KFwiLlwiKTtcblx0Y29uc3QgcmVmZXJlbmNlID0gcmVmZXJlbmNlcy5yZWZlcmVuY2VNYXBbYWxpYXNdO1xuXHRpZiAocmVmZXJlbmNlKSB7XG5cdFx0cmV0dXJuIGAke3JlZmVyZW5jZS5uYW1lc3BhY2V9LiR7dmFsdWUuam9pbihcIi5cIil9YDtcblx0fSBlbHNlIHtcblx0XHQvLyBUcnkgdG8gc2VlIGlmIGl0J3MgYW4gYW5ub3RhdGlvbiBQYXRoIGxpa2UgdG9fU2FsZXNPcmRlci9AVUkuTGluZUl0ZW1cblx0XHRpZiAoYWxpYXNlZFZhbHVlLmluZGV4T2YoXCJAXCIpICE9PSAtMSkge1xuXHRcdFx0Y29uc3QgW3ByZUFsaWFzLCAuLi5wb3N0QWxpYXNdID0gYWxpYXNlZFZhbHVlLnNwbGl0KFwiQFwiKTtcblx0XHRcdHJldHVybiBgJHtwcmVBbGlhc31AJHt1bmFsaWFzKHJlZmVyZW5jZXMsIHBvc3RBbGlhcy5qb2luKFwiQFwiKSl9YDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGFsaWFzZWRWYWx1ZTtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gYnVpbGRPYmplY3RNYXAocGFyc2VyT3V0cHV0OiBQYXJzZXJPdXRwdXQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcblx0Y29uc3Qgb2JqZWN0TWFwOiBhbnkgPSB7fTtcblx0aWYgKHBhcnNlck91dHB1dC5zY2hlbWEuZW50aXR5Q29udGFpbmVyICYmIHBhcnNlck91dHB1dC5zY2hlbWEuZW50aXR5Q29udGFpbmVyLmZ1bGx5UXVhbGlmaWVkTmFtZSkge1xuXHRcdG9iamVjdE1hcFtwYXJzZXJPdXRwdXQuc2NoZW1hLmVudGl0eUNvbnRhaW5lci5mdWxseVF1YWxpZmllZE5hbWVdID0gcGFyc2VyT3V0cHV0LnNjaGVtYS5lbnRpdHlDb250YWluZXI7XG5cdH1cblx0cGFyc2VyT3V0cHV0LnNjaGVtYS5lbnRpdHlTZXRzLmZvckVhY2goZW50aXR5U2V0ID0+IHtcblx0XHRvYmplY3RNYXBbZW50aXR5U2V0LmZ1bGx5UXVhbGlmaWVkTmFtZV0gPSBlbnRpdHlTZXQ7XG5cdH0pO1xuXHRwYXJzZXJPdXRwdXQuc2NoZW1hLmFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4ge1xuXHRcdG9iamVjdE1hcFthY3Rpb24uZnVsbHlRdWFsaWZpZWROYW1lXSA9IGFjdGlvbjtcblx0XHRpZiAoYWN0aW9uLmlzQm91bmQpIHtcblx0XHRcdGNvbnN0IHVuQm91bmRBY3Rpb25OYW1lID0gYWN0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZS5zcGxpdChcIihcIilbMF07XG5cdFx0XHRpZiAoIW9iamVjdE1hcFt1bkJvdW5kQWN0aW9uTmFtZV0pIHtcblx0XHRcdFx0b2JqZWN0TWFwW3VuQm91bmRBY3Rpb25OYW1lXSA9IHtcblx0XHRcdFx0XHRfdHlwZTogXCJVbmJvdW5kR2VuZXJpY0FjdGlvblwiLFxuXHRcdFx0XHRcdGFjdGlvbnM6IFtdXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHRvYmplY3RNYXBbdW5Cb3VuZEFjdGlvbk5hbWVdLmFjdGlvbnMucHVzaChhY3Rpb24pO1xuXHRcdH1cblxuXHRcdGFjdGlvbi5wYXJhbWV0ZXJzLmZvckVhY2gocGFyYW1ldGVyID0+IHtcblx0XHRcdG9iamVjdE1hcFtwYXJhbWV0ZXIuZnVsbHlRdWFsaWZpZWROYW1lXSA9IHBhcmFtZXRlcjtcblx0XHR9KTtcblx0fSk7XG5cdHBhcnNlck91dHB1dC5zY2hlbWEuY29tcGxleFR5cGVzLmZvckVhY2goY29tcGxleFR5cGUgPT4ge1xuXHRcdG9iamVjdE1hcFtjb21wbGV4VHlwZS5mdWxseVF1YWxpZmllZE5hbWVdID0gY29tcGxleFR5cGU7XG5cdFx0Y29tcGxleFR5cGUucHJvcGVydGllcy5mb3JFYWNoKHByb3BlcnR5ID0+IHtcblx0XHRcdG9iamVjdE1hcFtwcm9wZXJ0eS5mdWxseVF1YWxpZmllZE5hbWVdID0gcHJvcGVydHk7XG5cdFx0fSk7XG5cdH0pO1xuXHRwYXJzZXJPdXRwdXQuc2NoZW1hLmVudGl0eVR5cGVzLmZvckVhY2goZW50aXR5VHlwZSA9PiB7XG5cdFx0b2JqZWN0TWFwW2VudGl0eVR5cGUuZnVsbHlRdWFsaWZpZWROYW1lXSA9IGVudGl0eVR5cGU7XG5cdFx0ZW50aXR5VHlwZS5lbnRpdHlQcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuXHRcdFx0b2JqZWN0TWFwW3Byb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZV0gPSBwcm9wZXJ0eTtcblx0XHRcdGlmIChwcm9wZXJ0eS50eXBlLmluZGV4T2YoXCJFZG1cIikgPT09IC0xKSB7XG5cdFx0XHRcdC8vIEhhbmRsZSBjb21wbGV4IHR5cGVzXG5cdFx0XHRcdGNvbnN0IGNvbXBsZXhUeXBlRGVmaW5pdGlvbiA9IG9iamVjdE1hcFtwcm9wZXJ0eS50eXBlXSBhcyBDb21wbGV4VHlwZTtcblx0XHRcdFx0aWYgKGNvbXBsZXhUeXBlRGVmaW5pdGlvbiAmJiBjb21wbGV4VHlwZURlZmluaXRpb24ucHJvcGVydGllcykge1xuXHRcdFx0XHRcdGNvbXBsZXhUeXBlRGVmaW5pdGlvbi5wcm9wZXJ0aWVzLmZvckVhY2goY29tcGxleFR5cGVQcm9wID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGNvbXBsZXhUeXBlUHJvcFRhcmdldDogUGFyc2VyUHJvcGVydHkgPSBPYmplY3QuYXNzaWduKGNvbXBsZXhUeXBlUHJvcCwge1xuXHRcdFx0XHRcdFx0XHRfdHlwZTogXCJQcm9wZXJ0eVwiLFxuXHRcdFx0XHRcdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IHByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZSArIFwiL1wiICsgY29tcGxleFR5cGVQcm9wLm5hbWVcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0b2JqZWN0TWFwW2NvbXBsZXhUeXBlUHJvcFRhcmdldC5mdWxseVF1YWxpZmllZE5hbWVdID0gY29tcGxleFR5cGVQcm9wVGFyZ2V0O1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZW50aXR5VHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKG5hdlByb3BlcnR5ID0+IHtcblx0XHRcdG9iamVjdE1hcFtuYXZQcm9wZXJ0eS5mdWxseVF1YWxpZmllZE5hbWVdID0gbmF2UHJvcGVydHk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdE9iamVjdC5rZXlzKHBhcnNlck91dHB1dC5zY2hlbWEuYW5ub3RhdGlvbnMpLmZvckVhY2goYW5ub3RhdGlvblNvdXJjZSA9PiB7XG5cdFx0cGFyc2VyT3V0cHV0LnNjaGVtYS5hbm5vdGF0aW9uc1thbm5vdGF0aW9uU291cmNlXS5mb3JFYWNoKGFubm90YXRpb25MaXN0ID0+IHtcblx0XHRcdGNvbnN0IGN1cnJlbnRUYXJnZXROYW1lID0gdW5hbGlhcyhwYXJzZXJPdXRwdXQucmVmZXJlbmNlcywgYW5ub3RhdGlvbkxpc3QudGFyZ2V0KTtcblx0XHRcdGFubm90YXRpb25MaXN0LmFubm90YXRpb25zLmZvckVhY2goYW5ub3RhdGlvbiA9PiB7XG5cdFx0XHRcdGxldCBhbm5vdGF0aW9uRlFOID0gYCR7Y3VycmVudFRhcmdldE5hbWV9QCR7dW5hbGlhcyhwYXJzZXJPdXRwdXQucmVmZXJlbmNlcywgYW5ub3RhdGlvbi50ZXJtKX1gO1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbi5xdWFsaWZpZXIpIHtcblx0XHRcdFx0XHRhbm5vdGF0aW9uRlFOICs9IGAjJHthbm5vdGF0aW9uLnF1YWxpZmllcn1gO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0eXBlb2YgYW5ub3RhdGlvbiAhPT0gXCJvYmplY3RcIikge1xuXHRcdFx0XHRcdGRlYnVnZ2VyO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG9iamVjdE1hcFthbm5vdGF0aW9uRlFOXSA9IGFubm90YXRpb247XG5cdFx0XHRcdChhbm5vdGF0aW9uIGFzIEFubm90YXRpb24pLmZ1bGx5UXVhbGlmaWVkTmFtZSA9IGFubm90YXRpb25GUU47XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fSk7XG5cdHJldHVybiBvYmplY3RNYXA7XG59XG5cbmZ1bmN0aW9uIGNvbWJpbmVQYXRoKGN1cnJlbnRUYXJnZXQ6IHN0cmluZywgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcblx0aWYgKHBhdGguc3RhcnRzV2l0aChcIkBcIikpIHtcblx0XHRyZXR1cm4gY3VycmVudFRhcmdldCArIHVuYWxpYXMoZGVmYXVsdFJlZmVyZW5jZXMsIHBhdGgpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBjdXJyZW50VGFyZ2V0ICsgXCIvXCIgKyBwYXRoO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGFkZEFubm90YXRpb25FcnJvck1lc3NhZ2UocGF0aDogc3RyaW5nLCBvRXJyb3JNc2c6IGFueSkge1xuXHRpZiAoIUFMTF9BTk5PVEFUSU9OX0VSUk9SU1twYXRoXSkge1xuXHRcdEFMTF9BTk5PVEFUSU9OX0VSUk9SU1twYXRoXSA9IFtvRXJyb3JNc2ddO1xuXHR9IGVsc2Uge1xuXHRcdEFMTF9BTk5PVEFUSU9OX0VSUk9SU1twYXRoXS5wdXNoKG9FcnJvck1zZyk7XG5cdH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVRhcmdldChcblx0b2JqZWN0TWFwOiBhbnksXG5cdGN1cnJlbnRUYXJnZXQ6IGFueSxcblx0cGF0aDogc3RyaW5nLFxuXHRwYXRoT25seTogYm9vbGVhbiA9IGZhbHNlLFxuXHRpbmNsdWRlVmlzaXRlZE9iamVjdHM6IGJvb2xlYW4gPSBmYWxzZSxcblx0YW5ub3RhdGlvblR5cGU/OiBzdHJpbmcsXG5cdGFubm90YXRpb25zVGVybT86IHN0cmluZ1xuKSB7XG5cdGlmICghcGF0aCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0Ly9jb25zdCBwcm9wZXJ0eVBhdGggPSBwYXRoO1xuXHRsZXQgYVZpc2l0ZWRPYmplY3RzOiBhbnlbXSA9IFtdO1xuXHRpZiAoY3VycmVudFRhcmdldCAmJiBjdXJyZW50VGFyZ2V0Ll90eXBlID09PSBcIlByb3BlcnR5XCIpIHtcblx0XHRjdXJyZW50VGFyZ2V0ID0gb2JqZWN0TWFwW2N1cnJlbnRUYXJnZXQuZnVsbHlRdWFsaWZpZWROYW1lLnNwbGl0KFwiL1wiKVswXV07XG5cdH1cblx0cGF0aCA9IGNvbWJpbmVQYXRoKGN1cnJlbnRUYXJnZXQuZnVsbHlRdWFsaWZpZWROYW1lLCBwYXRoKTtcblxuXHRjb25zdCBwYXRoU3BsaXQgPSBwYXRoLnNwbGl0KFwiL1wiKTtcblx0Y29uc3QgdGFyZ2V0UGF0aFNwbGl0OiBzdHJpbmdbXSA9IFtdO1xuXHRwYXRoU3BsaXQuZm9yRWFjaChwYXRoUGFydCA9PiB7XG5cdFx0Ly8gU2VwYXJhdGUgb3V0IHRoZSBhbm5vdGF0aW9uXG5cdFx0aWYgKHBhdGhQYXJ0LmluZGV4T2YoXCJAXCIpICE9PSAtMSkge1xuXHRcdFx0Y29uc3QgW3BhdGgsIGFubm90YXRpb25QYXRoXSA9IHBhdGhQYXJ0LnNwbGl0KFwiQFwiKTtcblx0XHRcdHRhcmdldFBhdGhTcGxpdC5wdXNoKHBhdGgpO1xuXHRcdFx0dGFyZ2V0UGF0aFNwbGl0LnB1c2goYEAke2Fubm90YXRpb25QYXRofWApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0YXJnZXRQYXRoU3BsaXQucHVzaChwYXRoUGFydCk7XG5cdFx0fVxuXHR9KTtcblx0bGV0IGN1cnJlbnRQYXRoID0gcGF0aDtcblx0bGV0IGN1cnJlbnRDb250ZXh0ID0gY3VycmVudFRhcmdldDtcblx0Y29uc3QgdGFyZ2V0ID0gdGFyZ2V0UGF0aFNwbGl0LnJlZHVjZSgoY3VycmVudFZhbHVlOiBhbnksIHBhdGhQYXJ0KSA9PiB7XG5cdFx0aWYgKHBhdGhQYXJ0ID09PSBcIiRUeXBlXCIgJiYgY3VycmVudFZhbHVlLl90eXBlID09PSBcIkVudGl0eVR5cGVcIikge1xuXHRcdFx0cmV0dXJuIGN1cnJlbnRWYWx1ZTtcblx0XHR9XG5cdFx0aWYgKHBhdGhQYXJ0Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0Ly8gRW1wdHkgUGF0aCBhZnRlciBhbiBlbnRpdHlTZXQgbWVhbnMgZW50aXR5VHlwZVxuXHRcdFx0aWYgKGN1cnJlbnRWYWx1ZSAmJiBjdXJyZW50VmFsdWUuX3R5cGUgPT09IFwiRW50aXR5U2V0XCIgJiYgY3VycmVudFZhbHVlLmVudGl0eVR5cGUpIHtcblx0XHRcdFx0aWYgKGluY2x1ZGVWaXNpdGVkT2JqZWN0cykge1xuXHRcdFx0XHRcdGFWaXNpdGVkT2JqZWN0cy5wdXNoKGN1cnJlbnRWYWx1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y3VycmVudFZhbHVlID0gY3VycmVudFZhbHVlLmVudGl0eVR5cGU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoY3VycmVudFZhbHVlICYmIGN1cnJlbnRWYWx1ZS5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIiAmJiBjdXJyZW50VmFsdWUudGFyZ2V0VHlwZSkge1xuXHRcdFx0XHRpZiAoaW5jbHVkZVZpc2l0ZWRPYmplY3RzKSB7XG5cdFx0XHRcdFx0YVZpc2l0ZWRPYmplY3RzLnB1c2goY3VycmVudFZhbHVlKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjdXJyZW50VmFsdWUgPSBjdXJyZW50VmFsdWUudGFyZ2V0VHlwZTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBjdXJyZW50VmFsdWU7XG5cdFx0fVxuXHRcdGlmIChpbmNsdWRlVmlzaXRlZE9iamVjdHMgJiYgY3VycmVudFZhbHVlICE9PSBudWxsICYmIGN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRhVmlzaXRlZE9iamVjdHMucHVzaChjdXJyZW50VmFsdWUpO1xuXHRcdH1cblx0XHRpZiAoIWN1cnJlbnRWYWx1ZSkge1xuXHRcdFx0Y3VycmVudFBhdGggPSBwYXRoUGFydDtcblx0XHR9IGVsc2UgaWYgKGN1cnJlbnRWYWx1ZS5fdHlwZSA9PT0gXCJFbnRpdHlTZXRcIiAmJiBwYXRoUGFydCA9PT0gXCIkVHlwZVwiKSB7XG5cdFx0XHRjdXJyZW50VmFsdWUgPSBjdXJyZW50VmFsdWUudGFyZ2V0VHlwZTtcblx0XHRcdHJldHVybiBjdXJyZW50VmFsdWU7XG5cdFx0fSBlbHNlIGlmIChjdXJyZW50VmFsdWUuX3R5cGUgPT09IFwiRW50aXR5U2V0XCIgJiYgY3VycmVudFZhbHVlLmVudGl0eVR5cGUpIHtcblx0XHRcdGN1cnJlbnRQYXRoID0gY29tYmluZVBhdGgoY3VycmVudFZhbHVlLmVudGl0eVR5cGVOYW1lLCBwYXRoUGFydCk7XG5cdFx0fSBlbHNlIGlmIChjdXJyZW50VmFsdWUuX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIgJiYgY3VycmVudFZhbHVlLnRhcmdldFR5cGVOYW1lKSB7XG5cdFx0XHRjdXJyZW50UGF0aCA9IGNvbWJpbmVQYXRoKGN1cnJlbnRWYWx1ZS50YXJnZXRUeXBlTmFtZSwgcGF0aFBhcnQpO1xuXHRcdH0gZWxzZSBpZiAoY3VycmVudFZhbHVlLl90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiICYmIGN1cnJlbnRWYWx1ZS50YXJnZXRUeXBlKSB7XG5cdFx0XHRjdXJyZW50UGF0aCA9IGNvbWJpbmVQYXRoKGN1cnJlbnRWYWx1ZS50YXJnZXRUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZSwgcGF0aFBhcnQpO1xuXHRcdH0gZWxzZSBpZiAoY3VycmVudFZhbHVlLl90eXBlID09PSBcIlByb3BlcnR5XCIpIHtcblx0XHRcdC8vIENvbXBsZXhUeXBlIG9yIFByb3BlcnR5XG5cdFx0XHRpZiAoY3VycmVudFZhbHVlLnRhcmdldFR5cGUpIHtcblx0XHRcdFx0Y3VycmVudFBhdGggPSBjb21iaW5lUGF0aChjdXJyZW50VmFsdWUudGFyZ2V0VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsIHBhdGhQYXJ0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN1cnJlbnRQYXRoID0gY29tYmluZVBhdGgoY3VycmVudFZhbHVlLmZ1bGx5UXVhbGlmaWVkTmFtZSwgcGF0aFBhcnQpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoY3VycmVudFZhbHVlLl90eXBlID09PSBcIkFjdGlvblwiICYmIGN1cnJlbnRWYWx1ZS5pc0JvdW5kKSB7XG5cdFx0XHRjdXJyZW50UGF0aCA9IGNvbWJpbmVQYXRoKGN1cnJlbnRWYWx1ZS5mdWxseVF1YWxpZmllZE5hbWUsIHBhdGhQYXJ0KTtcblx0XHRcdGlmICghb2JqZWN0TWFwW2N1cnJlbnRQYXRoXSkge1xuXHRcdFx0XHRjdXJyZW50UGF0aCA9IGNvbWJpbmVQYXRoKGN1cnJlbnRWYWx1ZS5zb3VyY2VUeXBlLCBwYXRoUGFydCk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChjdXJyZW50VmFsdWUuX3R5cGUgPT09IFwiQWN0aW9uUGFyYW1ldGVyXCIgJiYgY3VycmVudFZhbHVlLmlzRW50aXR5U2V0KSB7XG5cdFx0XHRjdXJyZW50UGF0aCA9IGNvbWJpbmVQYXRoKGN1cnJlbnRWYWx1ZS50eXBlLCBwYXRoUGFydCk7XG5cdFx0fSBlbHNlIGlmIChjdXJyZW50VmFsdWUuX3R5cGUgPT09IFwiQWN0aW9uUGFyYW1ldGVyXCIgJiYgIWN1cnJlbnRWYWx1ZS5pc0VudGl0eVNldCkge1xuXHRcdFx0Y3VycmVudFBhdGggPSBjb21iaW5lUGF0aChcblx0XHRcdFx0Y3VycmVudFRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUuc3Vic3RyKDAsIGN1cnJlbnRUYXJnZXQuZnVsbHlRdWFsaWZpZWROYW1lLmxhc3RJbmRleE9mKFwiL1wiKSksXG5cdFx0XHRcdHBhdGhQYXJ0XG5cdFx0XHQpO1xuXHRcdFx0aWYgKCFvYmplY3RNYXBbY3VycmVudFBhdGhdKSB7XG5cdFx0XHRcdGxldCBsYXN0SWR4ID0gY3VycmVudFRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUubGFzdEluZGV4T2YoXCIvXCIpO1xuXHRcdFx0XHRpZiAobGFzdElkeCA9PT0gLTEpIHtcblx0XHRcdFx0XHRsYXN0SWR4ID0gY3VycmVudFRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUubGVuZ3RoO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGN1cnJlbnRQYXRoID0gY29tYmluZVBhdGgoXG5cdFx0XHRcdFx0KG9iamVjdE1hcFtjdXJyZW50VGFyZ2V0LmZ1bGx5UXVhbGlmaWVkTmFtZS5zdWJzdHIoMCwgbGFzdElkeCldIGFzIEFjdGlvbikuc291cmNlVHlwZSxcblx0XHRcdFx0XHRwYXRoUGFydFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJyZW50UGF0aCA9IGNvbWJpbmVQYXRoKGN1cnJlbnRWYWx1ZS5mdWxseVF1YWxpZmllZE5hbWUsIHBhdGhQYXJ0KTtcblx0XHRcdGlmIChwYXRoUGFydCAhPT0gXCJuYW1lXCIgJiYgY3VycmVudFZhbHVlW3BhdGhQYXJ0XSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHJldHVybiBjdXJyZW50VmFsdWVbcGF0aFBhcnRdO1xuXHRcdFx0fSBlbHNlIGlmIChwYXRoUGFydCA9PT0gXCIkQW5ub3RhdGlvblBhdGhcIiAmJiBjdXJyZW50VmFsdWUuJHRhcmdldCkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50Q29udGV4dCA9IG9iamVjdE1hcFtjdXJyZW50VmFsdWUuZnVsbHlRdWFsaWZpZWROYW1lLnNwbGl0KFwiQFwiKVswXV07XG5cdFx0XHRcdGNvbnN0IHN1YlRhcmdldDogYW55ID0gcmVzb2x2ZVRhcmdldChvYmplY3RNYXAsIGN1cnJlbnRDb250ZXh0LCBjdXJyZW50VmFsdWUudmFsdWUsIGZhbHNlLCB0cnVlKTtcblx0XHRcdFx0c3ViVGFyZ2V0LnZpc2l0ZWRPYmplY3RzLmZvckVhY2goKHZpc2l0ZWRTdWJPYmplY3Q6IGFueSkgPT4ge1xuXHRcdFx0XHRcdGlmIChhVmlzaXRlZE9iamVjdHMuaW5kZXhPZih2aXNpdGVkU3ViT2JqZWN0KSA9PT0gLTEpIHtcblx0XHRcdFx0XHRcdGFWaXNpdGVkT2JqZWN0cy5wdXNoKHZpc2l0ZWRTdWJPYmplY3QpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiBzdWJUYXJnZXQudGFyZ2V0O1xuXHRcdFx0fSBlbHNlIGlmIChwYXRoUGFydCA9PT0gXCIkUGF0aFwiICYmIGN1cnJlbnRWYWx1ZS4kdGFyZ2V0KSB7XG5cdFx0XHRcdGN1cnJlbnRDb250ZXh0ID0gYVZpc2l0ZWRPYmplY3RzXG5cdFx0XHRcdFx0LmNvbmNhdCgpXG5cdFx0XHRcdFx0LnJldmVyc2UoKVxuXHRcdFx0XHRcdC5maW5kKFxuXHRcdFx0XHRcdFx0b2JqID0+XG5cdFx0XHRcdFx0XHRcdG9iai5fdHlwZSA9PT0gXCJFbnRpdHlUeXBlXCIgfHxcblx0XHRcdFx0XHRcdFx0b2JqLl90eXBlID09PSBcIkVudGl0eVNldFwiIHx8XG5cdFx0XHRcdFx0XHRcdG9iai5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdGlmIChjdXJyZW50Q29udGV4dCkge1xuXHRcdFx0XHRcdGNvbnN0IHN1YlRhcmdldDogYW55ID0gcmVzb2x2ZVRhcmdldChvYmplY3RNYXAsIGN1cnJlbnRDb250ZXh0LCBjdXJyZW50VmFsdWUucGF0aCwgZmFsc2UsIHRydWUpO1xuXHRcdFx0XHRcdHN1YlRhcmdldC52aXNpdGVkT2JqZWN0cy5mb3JFYWNoKCh2aXNpdGVkU3ViT2JqZWN0OiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdGlmIChhVmlzaXRlZE9iamVjdHMuaW5kZXhPZih2aXNpdGVkU3ViT2JqZWN0KSA9PT0gLTEpIHtcblx0XHRcdFx0XHRcdFx0YVZpc2l0ZWRPYmplY3RzLnB1c2godmlzaXRlZFN1Yk9iamVjdCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0cmV0dXJuIHN1YlRhcmdldC50YXJnZXQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGN1cnJlbnRWYWx1ZS4kdGFyZ2V0O1xuXHRcdFx0fSBlbHNlIGlmIChwYXRoUGFydC5zdGFydHNXaXRoKFwiJFBhdGhcIikgJiYgY3VycmVudFZhbHVlLiR0YXJnZXQpIHtcblx0XHRcdFx0Y29uc3QgaW50ZXJtZWRpYXRlVGFyZ2V0ID0gY3VycmVudFZhbHVlLiR0YXJnZXQ7XG5cdFx0XHRcdGN1cnJlbnRQYXRoID0gY29tYmluZVBhdGgoaW50ZXJtZWRpYXRlVGFyZ2V0LmZ1bGx5UXVhbGlmaWVkTmFtZSwgcGF0aFBhcnQuc3Vic3RyKDUpKTtcblx0XHRcdH0gZWxzZSBpZiAoY3VycmVudFZhbHVlLmhhc093blByb3BlcnR5KFwiJFR5cGVcIikgJiYgIW9iamVjdE1hcFtjdXJyZW50UGF0aF0pIHtcblx0XHRcdFx0Ly8gVGhpcyBpcyBub3cgYW4gYW5ub3RhdGlvbiB2YWx1ZVxuXHRcdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gb2JqZWN0TWFwW2N1cnJlbnRWYWx1ZS5mdWxseVF1YWxpZmllZE5hbWUuc3BsaXQoXCJAXCIpWzBdXTtcblx0XHRcdFx0aWYgKGVudGl0eVR5cGUpIHtcblx0XHRcdFx0XHRjdXJyZW50UGF0aCA9IGNvbWJpbmVQYXRoKGVudGl0eVR5cGUuZnVsbHlRdWFsaWZpZWROYW1lLCBwYXRoUGFydCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG9iamVjdE1hcFtjdXJyZW50UGF0aF07XG5cdH0sIG51bGwpO1xuXHRpZiAoIXRhcmdldCkge1xuXHRcdGlmIChhbm5vdGF0aW9uc1Rlcm0gJiYgYW5ub3RhdGlvblR5cGUpIHtcblx0XHRcdHZhciBvRXJyb3JNc2cgPSB7XG5cdFx0XHRcdG1lc3NhZ2U6XG5cdFx0XHRcdFx0XCJVbmFibGUgdG8gcmVzb2x2ZSB0aGUgcGF0aCBleHByZXNzaW9uOiBcIiArXG5cdFx0XHRcdFx0XCJcXG5cIiArXG5cdFx0XHRcdFx0cGF0aCArXG5cdFx0XHRcdFx0XCJcXG5cIiArXG5cdFx0XHRcdFx0XCJcXG5cIiArXG5cdFx0XHRcdFx0XCJIaW50OiBDaGVjayBhbmQgY29ycmVjdCB0aGUgcGF0aCB2YWx1ZXMgdW5kZXIgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgaW4gdGhlIG1ldGFkYXRhIChhbm5vdGF0aW9uLnhtbCBmaWxlIG9yIENEUyBhbm5vdGF0aW9ucyBmb3IgdGhlIGFwcGxpY2F0aW9uKTogXFxuXFxuXCIgK1xuXHRcdFx0XHRcdFwiPEFubm90YXRpb24gVGVybSA9IFwiICtcblx0XHRcdFx0XHRhbm5vdGF0aW9uc1Rlcm0gK1xuXHRcdFx0XHRcdFwiPlwiICtcblx0XHRcdFx0XHRcIlxcblwiICtcblx0XHRcdFx0XHRcIjxSZWNvcmQgVHlwZSA9IFwiICtcblx0XHRcdFx0XHRhbm5vdGF0aW9uVHlwZSArXG5cdFx0XHRcdFx0XCI+XCIgK1xuXHRcdFx0XHRcdFwiXFxuXCIgK1xuXHRcdFx0XHRcdFwiPEFubm90YXRpb25QYXRoID0gXCIgK1xuXHRcdFx0XHRcdHBhdGggK1xuXHRcdFx0XHRcdFwiPlwiXG5cdFx0XHR9O1xuXHRcdFx0YWRkQW5ub3RhdGlvbkVycm9yTWVzc2FnZShwYXRoLCBvRXJyb3JNc2cpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YXIgb0Vycm9yTXNnID0ge1xuXHRcdFx0XHRtZXNzYWdlOlxuXHRcdFx0XHRcdFwiVW5hYmxlIHRvIHJlc29sdmUgdGhlIHBhdGggZXhwcmVzc2lvbjogXCIgK1xuXHRcdFx0XHRcdHBhdGggK1xuXHRcdFx0XHRcdFwiXFxuXCIgK1xuXHRcdFx0XHRcdFwiXFxuXCIgK1xuXHRcdFx0XHRcdFwiSGludDogQ2hlY2sgYW5kIGNvcnJlY3QgdGhlIHBhdGggdmFsdWVzIHVuZGVyIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlIGluIHRoZSBtZXRhZGF0YSAoYW5ub3RhdGlvbi54bWwgZmlsZSBvciBDRFMgYW5ub3RhdGlvbnMgZm9yIHRoZSBhcHBsaWNhdGlvbik6IFxcblxcblwiICtcblx0XHRcdFx0XHRcIjxBbm5vdGF0aW9uIFRlcm0gPSBcIiArXG5cdFx0XHRcdFx0cGF0aFNwbGl0WzBdICtcblx0XHRcdFx0XHRcIj5cIiArXG5cdFx0XHRcdFx0XCJcXG5cIiArXG5cdFx0XHRcdFx0XCI8UHJvcGVydHlWYWx1ZSAgUGF0aD0gXCIgK1xuXHRcdFx0XHRcdHBhdGhTcGxpdFsxXSArXG5cdFx0XHRcdFx0XCI+XCJcblx0XHRcdH07XG5cdFx0XHRhZGRBbm5vdGF0aW9uRXJyb3JNZXNzYWdlKHBhdGgsIG9FcnJvck1zZyk7XG5cdFx0fVxuXHRcdC8vIGNvbnNvbGUubG9nKFwiTWlzc2luZyB0YXJnZXQgXCIgKyBwYXRoKTtcblx0fVxuXHRpZiAocGF0aE9ubHkpIHtcblx0XHRyZXR1cm4gY3VycmVudFBhdGg7XG5cdH1cblx0aWYgKGluY2x1ZGVWaXNpdGVkT2JqZWN0cykge1xuXHRcdHJldHVybiB7XG5cdFx0XHR2aXNpdGVkT2JqZWN0czogYVZpc2l0ZWRPYmplY3RzLFxuXHRcdFx0dGFyZ2V0OiB0YXJnZXRcblx0XHR9O1xuXHR9XG5cdHJldHVybiB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIGlzQW5ub3RhdGlvblBhdGgocGF0aFN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdHJldHVybiBwYXRoU3RyLmluZGV4T2YoXCJAXCIpICE9PSAtMTtcbn1cblxuZnVuY3Rpb24gcGFyc2VWYWx1ZShcblx0cHJvcGVydHlWYWx1ZTogRXhwcmVzc2lvbixcblx0dmFsdWVGUU46IHN0cmluZyxcblx0cGFyc2VyT3V0cHV0OiBQYXJzZXJPdXRwdXQsXG5cdGN1cnJlbnRUYXJnZXQ6IGFueSxcblx0b2JqZWN0TWFwOiBhbnksXG5cdHRvUmVzb2x2ZTogUmVzb2x2ZWFibGVbXSxcblx0YW5ub3RhdGlvblNvdXJjZTogc3RyaW5nLFxuXHR1bnJlc29sdmVkQW5ub3RhdGlvbnM6IEFubm90YXRpb25MaXN0W10sXG5cdGFubm90YXRpb25UeXBlOiBzdHJpbmcsXG5cdGFubm90YXRpb25zVGVybTogc3RyaW5nXG4pIHtcblx0aWYgKHByb3BlcnR5VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0c3dpdGNoIChwcm9wZXJ0eVZhbHVlLnR5cGUpIHtcblx0XHRjYXNlIFwiU3RyaW5nXCI6XG5cdFx0XHRyZXR1cm4gcHJvcGVydHlWYWx1ZS5TdHJpbmc7XG5cdFx0Y2FzZSBcIkludFwiOlxuXHRcdFx0cmV0dXJuIHByb3BlcnR5VmFsdWUuSW50O1xuXHRcdGNhc2UgXCJCb29sXCI6XG5cdFx0XHRyZXR1cm4gcHJvcGVydHlWYWx1ZS5Cb29sO1xuXHRcdGNhc2UgXCJEZWNpbWFsXCI6XG5cdFx0XHRyZXR1cm4gcHJvcGVydHlWYWx1ZS5EZWNpbWFsO1xuXHRcdGNhc2UgXCJEYXRlXCI6XG5cdFx0XHRyZXR1cm4gcHJvcGVydHlWYWx1ZS5EYXRlO1xuXHRcdGNhc2UgXCJFbnVtTWVtYmVyXCI6XG5cdFx0XHRyZXR1cm4gYWxpYXMocGFyc2VyT3V0cHV0LnJlZmVyZW5jZXMsIHByb3BlcnR5VmFsdWUuRW51bU1lbWJlcik7XG5cdFx0Y2FzZSBcIlByb3BlcnR5UGF0aFwiOlxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dHlwZTogXCJQcm9wZXJ0eVBhdGhcIixcblx0XHRcdFx0dmFsdWU6IHByb3BlcnR5VmFsdWUuUHJvcGVydHlQYXRoLFxuXHRcdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IHZhbHVlRlFOLFxuXHRcdFx0XHQkdGFyZ2V0OiByZXNvbHZlVGFyZ2V0KFxuXHRcdFx0XHRcdG9iamVjdE1hcCxcblx0XHRcdFx0XHRjdXJyZW50VGFyZ2V0LFxuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWUuUHJvcGVydHlQYXRoLFxuXHRcdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHRcdGFubm90YXRpb25UeXBlLFxuXHRcdFx0XHRcdGFubm90YXRpb25zVGVybVxuXHRcdFx0XHQpXG5cdFx0XHR9O1xuXHRcdGNhc2UgXCJOYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCI6XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0eXBlOiBcIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIixcblx0XHRcdFx0dmFsdWU6IHByb3BlcnR5VmFsdWUuTmF2aWdhdGlvblByb3BlcnR5UGF0aCxcblx0XHRcdFx0ZnVsbHlRdWFsaWZpZWROYW1lOiB2YWx1ZUZRTixcblx0XHRcdFx0JHRhcmdldDogcmVzb2x2ZVRhcmdldChcblx0XHRcdFx0XHRvYmplY3RNYXAsXG5cdFx0XHRcdFx0Y3VycmVudFRhcmdldCxcblx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlLk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgsXG5cdFx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdFx0YW5ub3RhdGlvblR5cGUsXG5cdFx0XHRcdFx0YW5ub3RhdGlvbnNUZXJtXG5cdFx0XHRcdClcblx0XHRcdH07XG5cdFx0Y2FzZSBcIkFubm90YXRpb25QYXRoXCI6XG5cdFx0XHRjb25zdCBhbm5vdGF0aW9uVGFyZ2V0ID0gcmVzb2x2ZVRhcmdldChcblx0XHRcdFx0b2JqZWN0TWFwLFxuXHRcdFx0XHRjdXJyZW50VGFyZ2V0LFxuXHRcdFx0XHR1bmFsaWFzKHBhcnNlck91dHB1dC5yZWZlcmVuY2VzLCBwcm9wZXJ0eVZhbHVlLkFubm90YXRpb25QYXRoKSBhcyBzdHJpbmcsXG5cdFx0XHRcdHRydWUsXG5cdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHRhbm5vdGF0aW9uVHlwZSxcblx0XHRcdFx0YW5ub3RhdGlvbnNUZXJtXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgYW5ub3RhdGlvblBhdGggPSB7XG5cdFx0XHRcdHR5cGU6IFwiQW5ub3RhdGlvblBhdGhcIixcblx0XHRcdFx0dmFsdWU6IHByb3BlcnR5VmFsdWUuQW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogdmFsdWVGUU4sXG5cdFx0XHRcdCR0YXJnZXQ6IGFubm90YXRpb25UYXJnZXQsXG5cdFx0XHRcdGFubm90YXRpb25UeXBlOiBhbm5vdGF0aW9uVHlwZSxcblx0XHRcdFx0YW5ub3RhdGlvbnNUZXJtOiBhbm5vdGF0aW9uc1Rlcm0sXG5cdFx0XHRcdHRlcm06IFwiXCIsXG5cdFx0XHRcdHBhdGg6IFwiXCJcblx0XHRcdH07XG5cdFx0XHR0b1Jlc29sdmUucHVzaCh7IGlubGluZTogZmFsc2UsIHRvUmVzb2x2ZTogYW5ub3RhdGlvblBhdGggfSk7XG5cdFx0XHRyZXR1cm4gYW5ub3RhdGlvblBhdGg7XG5cdFx0Y2FzZSBcIlBhdGhcIjpcblx0XHRcdGNvbnN0ICR0YXJnZXQgPSByZXNvbHZlVGFyZ2V0KFxuXHRcdFx0XHRvYmplY3RNYXAsXG5cdFx0XHRcdGN1cnJlbnRUYXJnZXQsXG5cdFx0XHRcdHByb3BlcnR5VmFsdWUuUGF0aCxcblx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdGFubm90YXRpb25UeXBlLFxuXHRcdFx0XHRhbm5vdGF0aW9uc1Rlcm1cblx0XHRcdCk7XG5cdFx0XHRjb25zdCBwYXRoID0gbmV3IFBhdGgocHJvcGVydHlWYWx1ZSwgJHRhcmdldCwgYW5ub3RhdGlvbnNUZXJtLCBhbm5vdGF0aW9uVHlwZSwgXCJcIik7XG5cdFx0XHR0b1Jlc29sdmUucHVzaCh7XG5cdFx0XHRcdGlubGluZTogaXNBbm5vdGF0aW9uUGF0aChwcm9wZXJ0eVZhbHVlLlBhdGgpLFxuXHRcdFx0XHR0b1Jlc29sdmU6IHBhdGhcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHBhdGg7XG5cblx0XHRjYXNlIFwiUmVjb3JkXCI6XG5cdFx0XHRyZXR1cm4gcGFyc2VSZWNvcmQoXG5cdFx0XHRcdHByb3BlcnR5VmFsdWUuUmVjb3JkLFxuXHRcdFx0XHR2YWx1ZUZRTixcblx0XHRcdFx0cGFyc2VyT3V0cHV0LFxuXHRcdFx0XHRjdXJyZW50VGFyZ2V0LFxuXHRcdFx0XHRvYmplY3RNYXAsXG5cdFx0XHRcdHRvUmVzb2x2ZSxcblx0XHRcdFx0YW5ub3RhdGlvblNvdXJjZSxcblx0XHRcdFx0dW5yZXNvbHZlZEFubm90YXRpb25zLFxuXHRcdFx0XHRhbm5vdGF0aW9uVHlwZSxcblx0XHRcdFx0YW5ub3RhdGlvbnNUZXJtXG5cdFx0XHQpO1xuXHRcdGNhc2UgXCJDb2xsZWN0aW9uXCI6XG5cdFx0XHRyZXR1cm4gcGFyc2VDb2xsZWN0aW9uKFxuXHRcdFx0XHRwcm9wZXJ0eVZhbHVlLkNvbGxlY3Rpb24sXG5cdFx0XHRcdHZhbHVlRlFOLFxuXHRcdFx0XHRwYXJzZXJPdXRwdXQsXG5cdFx0XHRcdGN1cnJlbnRUYXJnZXQsXG5cdFx0XHRcdG9iamVjdE1hcCxcblx0XHRcdFx0dG9SZXNvbHZlLFxuXHRcdFx0XHRhbm5vdGF0aW9uU291cmNlLFxuXHRcdFx0XHR1bnJlc29sdmVkQW5ub3RhdGlvbnMsXG5cdFx0XHRcdGFubm90YXRpb25UeXBlLFxuXHRcdFx0XHRhbm5vdGF0aW9uc1Rlcm1cblx0XHRcdCk7XG5cdFx0Y2FzZSBcIkFwcGx5XCI6XG5cdFx0Y2FzZSBcIk5vdFwiOlxuXHRcdGNhc2UgXCJFcVwiOlxuXHRcdGNhc2UgXCJOZVwiOlxuXHRcdGNhc2UgXCJHdFwiOlxuXHRcdGNhc2UgXCJHZVwiOlxuXHRcdGNhc2UgXCJMdFwiOlxuXHRcdGNhc2UgXCJMZVwiOlxuXHRcdGNhc2UgXCJJZlwiOlxuXHRcdGNhc2UgXCJBbmRcIjpcblx0XHRjYXNlIFwiT3JcIjpcblx0XHRcdHJldHVybiBwcm9wZXJ0eVZhbHVlO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGluZmVyVHlwZUZyb21UZXJtKGFubm90YXRpb25zVGVybTogc3RyaW5nLCBwYXJzZXJPdXRwdXQ6IFBhcnNlck91dHB1dCwgYW5ub3RhdGlvblRhcmdldDogc3RyaW5nKSB7XG5cdGNvbnN0IHRhcmdldFR5cGUgPSAoVGVybVRvVHlwZXMgYXMgYW55KVthbm5vdGF0aW9uc1Rlcm1dO1xuXHR2YXIgb0Vycm9yTXNnID0ge1xuXHRcdGlzRXJyb3I6IGZhbHNlLFxuXHRcdG1lc3NhZ2U6IGBUaGUgdHlwZSBvZiB0aGUgcmVjb3JkIHVzZWQgd2l0aGluIHRoZSB0ZXJtICR7YW5ub3RhdGlvbnNUZXJtfSB3YXMgbm90IGRlZmluZWQgYW5kIHdhcyBpbmZlcnJlZCBhcyAke3RhcmdldFR5cGV9LlxuSGludDogSWYgcG9zc2libGUsIHRyeSB0byBtYWludGFpbiB0aGUgVHlwZSBwcm9wZXJ0eSBmb3IgZWFjaCBSZWNvcmQuXG48QW5ub3RhdGlvbnMgVGFyZ2V0PVwiJHthbm5vdGF0aW9uVGFyZ2V0fVwiPlxuXHQ8QW5ub3RhdGlvbiBUZXJtPVwiJHthbm5vdGF0aW9uc1Rlcm19XCI+XG5cdFx0PFJlY29yZD4uLi48L1JlY29yZD5cblx0PC9Bbm5vdGF0aW9uPlxuPC9Bbm5vdGF0aW9ucz5gXG5cdH07XG5cdGFkZEFubm90YXRpb25FcnJvck1lc3NhZ2UoYW5ub3RhdGlvblRhcmdldCArIFwiL1wiICsgYW5ub3RhdGlvbnNUZXJtLCBvRXJyb3JNc2cpO1xuXHRyZXR1cm4gdGFyZ2V0VHlwZTtcbn1cblxuZnVuY3Rpb24gcGFyc2VSZWNvcmQoXG5cdHJlY29yZERlZmluaXRpb246IEFubm90YXRpb25SZWNvcmQsXG5cdGN1cnJlbnRGUU46IHN0cmluZyxcblx0cGFyc2VyT3V0cHV0OiBQYXJzZXJPdXRwdXQsXG5cdGN1cnJlbnRUYXJnZXQ6IGFueSxcblx0b2JqZWN0TWFwOiBhbnksXG5cdHRvUmVzb2x2ZTogUmVzb2x2ZWFibGVbXSxcblx0YW5ub3RhdGlvblNvdXJjZTogc3RyaW5nLFxuXHR1bnJlc29sdmVkQW5ub3RhdGlvbnM6IEFubm90YXRpb25MaXN0W10sXG5cdGFubm90YXRpb25UeXBlOiBzdHJpbmcsXG5cdGFubm90YXRpb25zVGVybTogc3RyaW5nXG4pIHtcblx0bGV0IHRhcmdldFR5cGU7XG5cdGlmICghcmVjb3JkRGVmaW5pdGlvbi50eXBlICYmIGFubm90YXRpb25zVGVybSkge1xuXHRcdHRhcmdldFR5cGUgPSBpbmZlclR5cGVGcm9tVGVybShhbm5vdGF0aW9uc1Rlcm0sIHBhcnNlck91dHB1dCwgY3VycmVudFRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUpO1xuXHR9IGVsc2Uge1xuXHRcdHRhcmdldFR5cGUgPSB1bmFsaWFzKHBhcnNlck91dHB1dC5yZWZlcmVuY2VzLCByZWNvcmREZWZpbml0aW9uLnR5cGUpO1xuXHR9XG5cdGNvbnN0IGFubm90YXRpb25UZXJtOiBhbnkgPSB7XG5cdFx0JFR5cGU6IHRhcmdldFR5cGUsXG5cdFx0ZnVsbHlRdWFsaWZpZWROYW1lOiBjdXJyZW50RlFOXG5cdH07XG5cdGNvbnN0IGFubm90YXRpb25Db250ZW50OiBhbnkgPSB7fTtcblx0aWYgKHJlY29yZERlZmluaXRpb24uYW5ub3RhdGlvbnMgJiYgQXJyYXkuaXNBcnJheShyZWNvcmREZWZpbml0aW9uLmFubm90YXRpb25zKSkge1xuXHRcdGNvbnN0IHN1YkFubm90YXRpb25MaXN0ID0ge1xuXHRcdFx0dGFyZ2V0OiBjdXJyZW50RlFOLFxuXHRcdFx0YW5ub3RhdGlvbnM6IHJlY29yZERlZmluaXRpb24uYW5ub3RhdGlvbnMsXG5cdFx0XHRfX3NvdXJjZTogYW5ub3RhdGlvblNvdXJjZVxuXHRcdH07XG5cdFx0dW5yZXNvbHZlZEFubm90YXRpb25zLnB1c2goc3ViQW5ub3RhdGlvbkxpc3QpO1xuXHR9XG5cdHJlY29yZERlZmluaXRpb24ucHJvcGVydHlWYWx1ZXMuZm9yRWFjaCgocHJvcGVydHlWYWx1ZTogUHJvcGVydHlWYWx1ZSkgPT4ge1xuXHRcdGFubm90YXRpb25Db250ZW50W3Byb3BlcnR5VmFsdWUubmFtZV0gPSBwYXJzZVZhbHVlKFxuXHRcdFx0cHJvcGVydHlWYWx1ZS52YWx1ZSxcblx0XHRcdGAke2N1cnJlbnRGUU59LyR7cHJvcGVydHlWYWx1ZS5uYW1lfWAsXG5cdFx0XHRwYXJzZXJPdXRwdXQsXG5cdFx0XHRjdXJyZW50VGFyZ2V0LFxuXHRcdFx0b2JqZWN0TWFwLFxuXHRcdFx0dG9SZXNvbHZlLFxuXHRcdFx0YW5ub3RhdGlvblNvdXJjZSxcblx0XHRcdHVucmVzb2x2ZWRBbm5vdGF0aW9ucyxcblx0XHRcdGFubm90YXRpb25UeXBlLFxuXHRcdFx0YW5ub3RhdGlvbnNUZXJtXG5cdFx0KTtcblx0XHRpZiAocHJvcGVydHlWYWx1ZS5hbm5vdGF0aW9ucyAmJiBBcnJheS5pc0FycmF5KHByb3BlcnR5VmFsdWUuYW5ub3RhdGlvbnMpKSB7XG5cdFx0XHRjb25zdCBzdWJBbm5vdGF0aW9uTGlzdCA9IHtcblx0XHRcdFx0dGFyZ2V0OiBgJHtjdXJyZW50RlFOfS8ke3Byb3BlcnR5VmFsdWUubmFtZX1gLFxuXHRcdFx0XHRhbm5vdGF0aW9uczogcHJvcGVydHlWYWx1ZS5hbm5vdGF0aW9ucyxcblx0XHRcdFx0X19zb3VyY2U6IGFubm90YXRpb25Tb3VyY2Vcblx0XHRcdH07XG5cdFx0XHR1bnJlc29sdmVkQW5ub3RhdGlvbnMucHVzaChzdWJBbm5vdGF0aW9uTGlzdCk7XG5cdFx0fVxuXHRcdGlmIChcblx0XHRcdGFubm90YXRpb25Db250ZW50Lmhhc093blByb3BlcnR5KFwiQWN0aW9uXCIpICYmXG5cdFx0XHQoYW5ub3RhdGlvblRlcm0uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIgfHxcblx0XHRcdFx0YW5ub3RhdGlvblRlcm0uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkV2l0aEFjdGlvblwiKVxuXHRcdCkge1xuXHRcdFx0YW5ub3RhdGlvbkNvbnRlbnQuQWN0aW9uVGFyZ2V0ID1cblx0XHRcdFx0KGN1cnJlbnRUYXJnZXQuYWN0aW9ucyAmJiBjdXJyZW50VGFyZ2V0LmFjdGlvbnNbYW5ub3RhdGlvbkNvbnRlbnQuQWN0aW9uXSkgfHxcblx0XHRcdFx0b2JqZWN0TWFwW2Fubm90YXRpb25Db250ZW50LkFjdGlvbl07XG5cdFx0XHRpZiAoIWFubm90YXRpb25Db250ZW50LkFjdGlvblRhcmdldCkge1xuXHRcdFx0XHQvLyBBZGQgdG8gZGlhZ25vc3RpY3MgZGVidWdnZXI7XG5cdFx0XHRcdEFOTk9UQVRJT05fRVJST1JTLnB1c2goe1xuXHRcdFx0XHRcdG1lc3NhZ2U6XG5cdFx0XHRcdFx0XHRcIlVuYWJsZSB0byByZXNvbHZlIHRoZSBhY3Rpb24gXCIgK1xuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbkNvbnRlbnQuQWN0aW9uICtcblx0XHRcdFx0XHRcdFwiIGRlZmluZWQgZm9yIFwiICtcblx0XHRcdFx0XHRcdGFubm90YXRpb25UZXJtLmZ1bGx5UXVhbGlmaWVkTmFtZVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihhbm5vdGF0aW9uVGVybSwgYW5ub3RhdGlvbkNvbnRlbnQpO1xufVxuXG5leHBvcnQgdHlwZSBDb2xsZWN0aW9uVHlwZSA9XG5cdHwgXCJQcm9wZXJ0eVBhdGhcIlxuXHR8IFwiUGF0aFwiXG5cdHwgXCJJZlwiXG5cdHwgXCJBcHBseVwiXG5cdHwgXCJBbmRcIlxuXHR8IFwiRXFcIlxuXHR8IFwiTmVcIlxuXHR8IFwiTm90XCJcblx0fCBcIkd0XCJcblx0fCBcIkdlXCJcblx0fCBcIkx0XCJcblx0fCBcIkxlXCJcblx0fCBcIk9yXCJcblx0fCBcIkFubm90YXRpb25QYXRoXCJcblx0fCBcIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIlxuXHR8IFwiUmVjb3JkXCJcblx0fCBcIlN0cmluZ1wiXG5cdHwgXCJFbXB0eUNvbGxlY3Rpb25cIjtcblxuZnVuY3Rpb24gZ2V0T3JJbmZlckNvbGxlY3Rpb25UeXBlKGNvbGxlY3Rpb25EZWZpbml0aW9uOiBhbnlbXSk6IENvbGxlY3Rpb25UeXBlIHtcblx0bGV0IHR5cGU6IENvbGxlY3Rpb25UeXBlID0gKGNvbGxlY3Rpb25EZWZpbml0aW9uIGFzIGFueSkudHlwZTtcblx0aWYgKHR5cGUgPT09IHVuZGVmaW5lZCAmJiBjb2xsZWN0aW9uRGVmaW5pdGlvbi5sZW5ndGggPiAwKSB7XG5cdFx0Y29uc3QgZmlyc3RDb2xJdGVtID0gY29sbGVjdGlvbkRlZmluaXRpb25bMF07XG5cdFx0aWYgKGZpcnN0Q29sSXRlbS5oYXNPd25Qcm9wZXJ0eShcIlByb3BlcnR5UGF0aFwiKSkge1xuXHRcdFx0dHlwZSA9IFwiUHJvcGVydHlQYXRoXCI7XG5cdFx0fSBlbHNlIGlmIChmaXJzdENvbEl0ZW0uaGFzT3duUHJvcGVydHkoXCJQYXRoXCIpKSB7XG5cdFx0XHR0eXBlID0gXCJQYXRoXCI7XG5cdFx0fSBlbHNlIGlmIChmaXJzdENvbEl0ZW0uaGFzT3duUHJvcGVydHkoXCJBbm5vdGF0aW9uUGF0aFwiKSkge1xuXHRcdFx0dHlwZSA9IFwiQW5ub3RhdGlvblBhdGhcIjtcblx0XHR9IGVsc2UgaWYgKGZpcnN0Q29sSXRlbS5oYXNPd25Qcm9wZXJ0eShcIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIikpIHtcblx0XHRcdHR5cGUgPSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIjtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0dHlwZW9mIGZpcnN0Q29sSXRlbSA9PT0gXCJvYmplY3RcIiAmJlxuXHRcdFx0KGZpcnN0Q29sSXRlbS5oYXNPd25Qcm9wZXJ0eShcInR5cGVcIikgfHwgZmlyc3RDb2xJdGVtLmhhc093blByb3BlcnR5KFwicHJvcGVydHlWYWx1ZXNcIikpXG5cdFx0KSB7XG5cdFx0XHR0eXBlID0gXCJSZWNvcmRcIjtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBmaXJzdENvbEl0ZW0gPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdHR5cGUgPSBcIlN0cmluZ1wiO1xuXHRcdH1cblx0fSBlbHNlIGlmICh0eXBlID09PSB1bmRlZmluZWQpIHtcblx0XHR0eXBlID0gXCJFbXB0eUNvbGxlY3Rpb25cIjtcblx0fVxuXHRyZXR1cm4gdHlwZTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDb2xsZWN0aW9uKFxuXHRjb2xsZWN0aW9uRGVmaW5pdGlvbjogYW55W10sXG5cdHBhcmVudEZRTjogc3RyaW5nLFxuXHRwYXJzZXJPdXRwdXQ6IFBhcnNlck91dHB1dCxcblx0Y3VycmVudFRhcmdldDogYW55LFxuXHRvYmplY3RNYXA6IGFueSxcblx0dG9SZXNvbHZlOiBSZXNvbHZlYWJsZVtdLFxuXHRhbm5vdGF0aW9uU291cmNlOiBzdHJpbmcsXG5cdHVucmVzb2x2ZWRBbm5vdGF0aW9uczogQW5ub3RhdGlvbkxpc3RbXSxcblx0YW5ub3RhdGlvblR5cGU6IHN0cmluZyxcblx0YW5ub3RhdGlvbnNUZXJtOiBzdHJpbmdcbikge1xuXHRjb25zdCBjb2xsZWN0aW9uRGVmaW5pdGlvblR5cGUgPSBnZXRPckluZmVyQ29sbGVjdGlvblR5cGUoY29sbGVjdGlvbkRlZmluaXRpb24pO1xuXHRzd2l0Y2ggKGNvbGxlY3Rpb25EZWZpbml0aW9uVHlwZSkge1xuXHRcdGNhc2UgXCJQcm9wZXJ0eVBhdGhcIjpcblx0XHRcdHJldHVybiBjb2xsZWN0aW9uRGVmaW5pdGlvbi5tYXAoKHByb3BlcnR5UGF0aCwgcHJvcGVydHlJZHgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHR0eXBlOiBcIlByb3BlcnR5UGF0aFwiLFxuXHRcdFx0XHRcdHZhbHVlOiBwcm9wZXJ0eVBhdGguUHJvcGVydHlQYXRoLFxuXHRcdFx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYCR7cGFyZW50RlFOfS8ke3Byb3BlcnR5SWR4fWAsXG5cdFx0XHRcdFx0JHRhcmdldDogcmVzb2x2ZVRhcmdldChcblx0XHRcdFx0XHRcdG9iamVjdE1hcCxcblx0XHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQsXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVBhdGguUHJvcGVydHlQYXRoLFxuXHRcdFx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25UeXBlLFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbnNUZXJtXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9O1xuXHRcdFx0fSk7XG5cdFx0Y2FzZSBcIlBhdGhcIjpcblx0XHRcdHJldHVybiBjb2xsZWN0aW9uRGVmaW5pdGlvbi5tYXAocGF0aFZhbHVlID0+IHtcblx0XHRcdFx0Y29uc3QgJHRhcmdldCA9IHJlc29sdmVUYXJnZXQoXG5cdFx0XHRcdFx0b2JqZWN0TWFwLFxuXHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQsXG5cdFx0XHRcdFx0cGF0aFZhbHVlLlBhdGgsXG5cdFx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0XHRhbm5vdGF0aW9uVHlwZSxcblx0XHRcdFx0XHRhbm5vdGF0aW9uc1Rlcm1cblx0XHRcdFx0KTtcblx0XHRcdFx0Y29uc3QgcGF0aCA9IG5ldyBQYXRoKHBhdGhWYWx1ZSwgJHRhcmdldCwgYW5ub3RhdGlvbnNUZXJtLCBhbm5vdGF0aW9uVHlwZSwgXCJcIik7XG5cdFx0XHRcdHRvUmVzb2x2ZS5wdXNoKHtcblx0XHRcdFx0XHRpbmxpbmU6IGlzQW5ub3RhdGlvblBhdGgocGF0aFZhbHVlLlBhdGgpLFxuXHRcdFx0XHRcdHRvUmVzb2x2ZTogcGF0aFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIHBhdGg7XG5cdFx0XHR9KTtcblx0XHRjYXNlIFwiQW5ub3RhdGlvblBhdGhcIjpcblx0XHRcdHJldHVybiBjb2xsZWN0aW9uRGVmaW5pdGlvbi5tYXAoKGFubm90YXRpb25QYXRoLCBhbm5vdGF0aW9uSWR4KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGFubm90YXRpb25UYXJnZXQgPSByZXNvbHZlVGFyZ2V0KFxuXHRcdFx0XHRcdG9iamVjdE1hcCxcblx0XHRcdFx0XHRjdXJyZW50VGFyZ2V0LFxuXHRcdFx0XHRcdGFubm90YXRpb25QYXRoLkFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdHRydWUsXG5cdFx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdFx0YW5ub3RhdGlvblR5cGUsXG5cdFx0XHRcdFx0YW5ub3RhdGlvbnNUZXJtXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGNvbnN0IGFubm90YXRpb25Db2xsZWN0aW9uRWxlbWVudCA9IHtcblx0XHRcdFx0XHR0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsXG5cdFx0XHRcdFx0dmFsdWU6IGFubm90YXRpb25QYXRoLkFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYCR7cGFyZW50RlFOfS8ke2Fubm90YXRpb25JZHh9YCxcblx0XHRcdFx0XHQkdGFyZ2V0OiBhbm5vdGF0aW9uVGFyZ2V0LFxuXHRcdFx0XHRcdGFubm90YXRpb25UeXBlOiBhbm5vdGF0aW9uVHlwZSxcblx0XHRcdFx0XHRhbm5vdGF0aW9uc1Rlcm06IGFubm90YXRpb25zVGVybSxcblx0XHRcdFx0XHR0ZXJtOiBcIlwiLFxuXHRcdFx0XHRcdHBhdGg6IFwiXCJcblx0XHRcdFx0fTtcblx0XHRcdFx0dG9SZXNvbHZlLnB1c2goe1xuXHRcdFx0XHRcdGlubGluZTogZmFsc2UsXG5cdFx0XHRcdFx0dG9SZXNvbHZlOiBhbm5vdGF0aW9uQ29sbGVjdGlvbkVsZW1lbnRcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiBhbm5vdGF0aW9uQ29sbGVjdGlvbkVsZW1lbnQ7XG5cdFx0XHR9KTtcblx0XHRjYXNlIFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiOlxuXHRcdFx0cmV0dXJuIGNvbGxlY3Rpb25EZWZpbml0aW9uLm1hcCgobmF2UHJvcGVydHlQYXRoLCBuYXZQcm9wSWR4KSA9PiB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0dHlwZTogXCJOYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIsXG5cdFx0XHRcdFx0dmFsdWU6IG5hdlByb3BlcnR5UGF0aC5OYXZpZ2F0aW9uUHJvcGVydHlQYXRoLFxuXHRcdFx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYCR7cGFyZW50RlFOfS8ke25hdlByb3BJZHh9YCxcblx0XHRcdFx0XHQkdGFyZ2V0OiByZXNvbHZlVGFyZ2V0KFxuXHRcdFx0XHRcdFx0b2JqZWN0TWFwLFxuXHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldCxcblx0XHRcdFx0XHRcdG5hdlByb3BlcnR5UGF0aC5OYXZpZ2F0aW9uUHJvcGVydHlQYXRoLFxuXHRcdFx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25UeXBlLFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbnNUZXJtXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9O1xuXHRcdFx0fSk7XG5cdFx0Y2FzZSBcIlJlY29yZFwiOlxuXHRcdFx0cmV0dXJuIGNvbGxlY3Rpb25EZWZpbml0aW9uLm1hcCgocmVjb3JkRGVmaW5pdGlvbiwgcmVjb3JkSWR4KSA9PiB7XG5cdFx0XHRcdHJldHVybiBwYXJzZVJlY29yZChcblx0XHRcdFx0XHRyZWNvcmREZWZpbml0aW9uLFxuXHRcdFx0XHRcdGAke3BhcmVudEZRTn0vJHtyZWNvcmRJZHh9YCxcblx0XHRcdFx0XHRwYXJzZXJPdXRwdXQsXG5cdFx0XHRcdFx0Y3VycmVudFRhcmdldCxcblx0XHRcdFx0XHRvYmplY3RNYXAsXG5cdFx0XHRcdFx0dG9SZXNvbHZlLFxuXHRcdFx0XHRcdGFubm90YXRpb25Tb3VyY2UsXG5cdFx0XHRcdFx0dW5yZXNvbHZlZEFubm90YXRpb25zLFxuXHRcdFx0XHRcdGFubm90YXRpb25UeXBlLFxuXHRcdFx0XHRcdGFubm90YXRpb25zVGVybVxuXHRcdFx0XHQpO1xuXHRcdFx0fSk7XG5cdFx0Y2FzZSBcIkFwcGx5XCI6XG5cdFx0Y2FzZSBcIklmXCI6XG5cdFx0Y2FzZSBcIkVxXCI6XG5cdFx0Y2FzZSBcIk5lXCI6XG5cdFx0Y2FzZSBcIkx0XCI6XG5cdFx0Y2FzZSBcIkd0XCI6XG5cdFx0Y2FzZSBcIkxlXCI6XG5cdFx0Y2FzZSBcIkdlXCI6XG5cdFx0Y2FzZSBcIk5vdFwiOlxuXHRcdGNhc2UgXCJBbmRcIjpcblx0XHRjYXNlIFwiT3JcIjpcblx0XHRcdHJldHVybiBjb2xsZWN0aW9uRGVmaW5pdGlvbi5tYXAoaWZWYWx1ZSA9PiB7XG5cdFx0XHRcdHJldHVybiBpZlZhbHVlO1xuXHRcdFx0fSk7XG5cdFx0Y2FzZSBcIlN0cmluZ1wiOlxuXHRcdFx0cmV0dXJuIGNvbGxlY3Rpb25EZWZpbml0aW9uLm1hcChzdHJpbmdWYWx1ZSA9PiB7XG5cdFx0XHRcdGlmICh0eXBlb2Ygc3RyaW5nVmFsdWUgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdFx0XHRyZXR1cm4gc3RyaW5nVmFsdWU7XG5cdFx0XHRcdH0gZWxzZSBpZiAoc3RyaW5nVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdHJldHVybiBzdHJpbmdWYWx1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gc3RyaW5nVmFsdWUuU3RyaW5nO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRkZWZhdWx0OlxuXHRcdFx0aWYgKGNvbGxlY3Rpb25EZWZpbml0aW9uLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRyZXR1cm4gW107XG5cdFx0XHR9XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBjYXNlXCIpO1xuXHR9XG59XG5cbnR5cGUgUmVzb2x2ZWFibGUgPSB7XG5cdGlubGluZTogYm9vbGVhbjtcblx0dG9SZXNvbHZlOiB7XG5cdFx0JHRhcmdldDogc3RyaW5nO1xuXHRcdHRhcmdldFN0cmluZz86IHN0cmluZztcblx0XHRhbm5vdGF0aW9uc1Rlcm06IHN0cmluZztcblx0XHRhbm5vdGF0aW9uVHlwZTogc3RyaW5nO1xuXHRcdHRlcm06IHN0cmluZztcblx0XHRwYXRoOiBzdHJpbmc7XG5cdH07XG59O1xuXG5mdW5jdGlvbiBjb252ZXJ0QW5ub3RhdGlvbihcblx0YW5ub3RhdGlvbjogQW5ub3RhdGlvbixcblx0cGFyc2VyT3V0cHV0OiBQYXJzZXJPdXRwdXQsXG5cdGN1cnJlbnRUYXJnZXQ6IGFueSxcblx0b2JqZWN0TWFwOiBhbnksXG5cdHRvUmVzb2x2ZTogUmVzb2x2ZWFibGVbXSxcblx0YW5ub3RhdGlvblNvdXJjZTogc3RyaW5nLFxuXHR1bnJlc29sdmVkQW5ub3RhdGlvbnM6IEFubm90YXRpb25MaXN0W11cbik6IGFueSB7XG5cdGlmIChhbm5vdGF0aW9uLnJlY29yZCkge1xuXHRcdGNvbnN0IGFubm90YXRpb25UeXBlID0gYW5ub3RhdGlvbi5yZWNvcmQudHlwZVxuXHRcdFx0PyB1bmFsaWFzKHBhcnNlck91dHB1dC5yZWZlcmVuY2VzLCBhbm5vdGF0aW9uLnJlY29yZC50eXBlKVxuXHRcdFx0OiBpbmZlclR5cGVGcm9tVGVybShhbm5vdGF0aW9uLnRlcm0sIHBhcnNlck91dHB1dCwgY3VycmVudFRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUpO1xuXHRcdGNvbnN0IGFubm90YXRpb25UZXJtOiBhbnkgPSB7XG5cdFx0XHQkVHlwZTogYW5ub3RhdGlvblR5cGUsXG5cdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IGFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0cXVhbGlmaWVyOiBhbm5vdGF0aW9uLnF1YWxpZmllclxuXHRcdH07XG5cdFx0Y29uc3QgYW5ub3RhdGlvbkNvbnRlbnQ6IGFueSA9IHt9O1xuXHRcdGFubm90YXRpb24ucmVjb3JkLnByb3BlcnR5VmFsdWVzLmZvckVhY2goKHByb3BlcnR5VmFsdWU6IFByb3BlcnR5VmFsdWUpID0+IHtcblx0XHRcdGFubm90YXRpb25Db250ZW50W3Byb3BlcnR5VmFsdWUubmFtZV0gPSBwYXJzZVZhbHVlKFxuXHRcdFx0XHRwcm9wZXJ0eVZhbHVlLnZhbHVlLFxuXHRcdFx0XHRgJHthbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZX0vJHtwcm9wZXJ0eVZhbHVlLm5hbWV9YCxcblx0XHRcdFx0cGFyc2VyT3V0cHV0LFxuXHRcdFx0XHRjdXJyZW50VGFyZ2V0LFxuXHRcdFx0XHRvYmplY3RNYXAsXG5cdFx0XHRcdHRvUmVzb2x2ZSxcblx0XHRcdFx0YW5ub3RhdGlvblNvdXJjZSxcblx0XHRcdFx0dW5yZXNvbHZlZEFubm90YXRpb25zLFxuXHRcdFx0XHRhbm5vdGF0aW9uVHlwZSxcblx0XHRcdFx0YW5ub3RhdGlvbi50ZXJtXG5cdFx0XHQpO1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRhbm5vdGF0aW9uQ29udGVudC5oYXNPd25Qcm9wZXJ0eShcIkFjdGlvblwiKSAmJlxuXHRcdFx0XHQoIWFubm90YXRpb24ucmVjb3JkIHx8XG5cdFx0XHRcdFx0YW5ub3RhdGlvblRlcm0uJFR5cGUgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRm9yQWN0aW9uXCIgfHxcblx0XHRcdFx0XHRhbm5vdGF0aW9uVGVybS4kVHlwZSA9PT0gXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRXaXRoQWN0aW9uXCIpXG5cdFx0XHQpIHtcblx0XHRcdFx0YW5ub3RhdGlvbkNvbnRlbnQuQWN0aW9uVGFyZ2V0ID1cblx0XHRcdFx0XHQoY3VycmVudFRhcmdldC5hY3Rpb25zICYmIGN1cnJlbnRUYXJnZXQuYWN0aW9uc1thbm5vdGF0aW9uQ29udGVudC5BY3Rpb25dKSB8fFxuXHRcdFx0XHRcdG9iamVjdE1hcFthbm5vdGF0aW9uQ29udGVudC5BY3Rpb25dO1xuXHRcdFx0XHRpZiAoIWFubm90YXRpb25Db250ZW50LkFjdGlvblRhcmdldCkge1xuXHRcdFx0XHRcdEFOTk9UQVRJT05fRVJST1JTLnB1c2goe1xuXHRcdFx0XHRcdFx0bWVzc2FnZTpcblx0XHRcdFx0XHRcdFx0XCJVbmFibGUgdG8gcmVzb2x2ZSB0aGUgYWN0aW9uIFwiICtcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvbkNvbnRlbnQuQWN0aW9uICtcblx0XHRcdFx0XHRcdFx0XCIgZGVmaW5lZCBmb3IgXCIgK1xuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdC8vIEFkZCB0byBkaWFnbm9zdGljc1xuXHRcdFx0XHRcdC8vIGRlYnVnZ2VyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24oYW5ub3RhdGlvblRlcm0sIGFubm90YXRpb25Db250ZW50KTtcblx0fSBlbHNlIGlmIChhbm5vdGF0aW9uLmNvbGxlY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuXHRcdGlmIChhbm5vdGF0aW9uLnZhbHVlKSB7XG5cdFx0XHRyZXR1cm4gcGFyc2VWYWx1ZShcblx0XHRcdFx0YW5ub3RhdGlvbi52YWx1ZSxcblx0XHRcdFx0YW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdHBhcnNlck91dHB1dCxcblx0XHRcdFx0Y3VycmVudFRhcmdldCxcblx0XHRcdFx0b2JqZWN0TWFwLFxuXHRcdFx0XHR0b1Jlc29sdmUsXG5cdFx0XHRcdGFubm90YXRpb25Tb3VyY2UsXG5cdFx0XHRcdHVucmVzb2x2ZWRBbm5vdGF0aW9ucyxcblx0XHRcdFx0XCJcIixcblx0XHRcdFx0YW5ub3RhdGlvbi50ZXJtXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH0gZWxzZSBpZiAoYW5ub3RhdGlvbi5jb2xsZWN0aW9uKSB7XG5cdFx0Y29uc3QgY29sbGVjdGlvbjogYW55ID0gcGFyc2VDb2xsZWN0aW9uKFxuXHRcdFx0YW5ub3RhdGlvbi5jb2xsZWN0aW9uLFxuXHRcdFx0YW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRwYXJzZXJPdXRwdXQsXG5cdFx0XHRjdXJyZW50VGFyZ2V0LFxuXHRcdFx0b2JqZWN0TWFwLFxuXHRcdFx0dG9SZXNvbHZlLFxuXHRcdFx0YW5ub3RhdGlvblNvdXJjZSxcblx0XHRcdHVucmVzb2x2ZWRBbm5vdGF0aW9ucyxcblx0XHRcdFwiXCIsXG5cdFx0XHRhbm5vdGF0aW9uLnRlcm1cblx0XHQpO1xuXHRcdGNvbGxlY3Rpb24uZnVsbHlRdWFsaWZpZWROYW1lID0gYW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWU7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb247XG5cdH0gZWxzZSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgY2FzZVwiKTtcblx0fVxufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXNvbHZlUGF0aEZuKGVudGl0eVR5cGU6IEVudGl0eVR5cGUsIG9iamVjdE1hcDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuXHRyZXR1cm4gZnVuY3Rpb24ocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGluY2x1ZGVWaXNpdGVkT2JqZWN0czogYm9vbGVhbik6IGFueSB7XG5cdFx0Y29uc3QgYW5ub3RhdGlvblRlcm06IHN0cmluZyA9IFwiXCI7XG5cdFx0Y29uc3QgYW5ub3RhdGlvblR5cGU6IHN0cmluZyA9IFwiXCI7XG5cdFx0cmV0dXJuIHJlc29sdmVUYXJnZXQoXG5cdFx0XHRvYmplY3RNYXAsXG5cdFx0XHRlbnRpdHlUeXBlLFxuXHRcdFx0cmVsYXRpdmVQYXRoLFxuXHRcdFx0ZmFsc2UsXG5cdFx0XHRpbmNsdWRlVmlzaXRlZE9iamVjdHMsXG5cdFx0XHRhbm5vdGF0aW9uVHlwZSxcblx0XHRcdGFubm90YXRpb25UZXJtXG5cdFx0KTtcblx0fTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU5hdmlnYXRpb25Qcm9wZXJ0aWVzKFxuXHRlbnRpdHlUeXBlczogUGFyc2VyRW50aXR5VHlwZVtdLFxuXHRhc3NvY2lhdGlvbnM6IEFzc29jaWF0aW9uW10sXG5cdG9iamVjdE1hcDogUmVjb3JkPHN0cmluZywgYW55PlxuKTogdm9pZCB7XG5cdGVudGl0eVR5cGVzLmZvckVhY2goZW50aXR5VHlwZSA9PiB7XG5cdFx0ZW50aXR5VHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcyA9IGVudGl0eVR5cGUubmF2aWdhdGlvblByb3BlcnRpZXMubWFwKG5hdlByb3AgPT4ge1xuXHRcdFx0Y29uc3Qgb3V0TmF2UHJvcDogUGFydGlhbDxOYXZpZ2F0aW9uUHJvcGVydHk+ID0ge1xuXHRcdFx0XHRfdHlwZTogXCJOYXZpZ2F0aW9uUHJvcGVydHlcIixcblx0XHRcdFx0bmFtZTogbmF2UHJvcC5uYW1lLFxuXHRcdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IG5hdlByb3AuZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRwYXJ0bmVyOiAobmF2UHJvcCBhcyBhbnkpLmhhc093blByb3BlcnR5KFwicGFydG5lclwiKSA/IChuYXZQcm9wIGFzIGFueSkucGFydG5lciA6IHVuZGVmaW5lZCxcblx0XHRcdFx0Ly8gdGFyZ2V0VHlwZU5hbWU6IEZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRcdFx0Ly8gdGFyZ2V0VHlwZTogRW50aXR5VHlwZTtcblx0XHRcdFx0aXNDb2xsZWN0aW9uOiAobmF2UHJvcCBhcyBhbnkpLmhhc093blByb3BlcnR5KFwiaXNDb2xsZWN0aW9uXCIpID8gKG5hdlByb3AgYXMgYW55KS5pc0NvbGxlY3Rpb24gOiBmYWxzZSxcblx0XHRcdFx0Y29udGFpbnNUYXJnZXQ6IChuYXZQcm9wIGFzIGFueSkuaGFzT3duUHJvcGVydHkoXCJjb250YWluc1RhcmdldFwiKVxuXHRcdFx0XHRcdD8gKG5hdlByb3AgYXMgYW55KS5jb250YWluc1RhcmdldFxuXHRcdFx0XHRcdDogZmFsc2UsXG5cdFx0XHRcdHJlZmVyZW50aWFsQ29uc3RyYWludDogKG5hdlByb3AgYXMgYW55KS5yZWZlcmVudGlhbENvbnN0cmFpbnRcblx0XHRcdFx0XHQ/IChuYXZQcm9wIGFzIGFueSkucmVmZXJlbnRpYWxDb25zdHJhaW50XG5cdFx0XHRcdFx0OiBbXSxcblx0XHRcdFx0YW5ub3RhdGlvbnM6IHt9XG5cdFx0XHR9O1xuXHRcdFx0aWYgKChuYXZQcm9wIGFzIEdlbmVyaWNOYXZpZ2F0aW9uUHJvcGVydHkpLnRhcmdldFR5cGVOYW1lKSB7XG5cdFx0XHRcdG91dE5hdlByb3AudGFyZ2V0VHlwZSA9IG9iamVjdE1hcFsobmF2UHJvcCBhcyBWNE5hdmlnYXRpb25Qcm9wZXJ0eSkudGFyZ2V0VHlwZU5hbWVdO1xuXHRcdFx0fSBlbHNlIGlmICgobmF2UHJvcCBhcyBWMk5hdmlnYXRpb25Qcm9wZXJ0eSkucmVsYXRpb25zaGlwKSB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldEFzc29jaWF0aW9uID0gYXNzb2NpYXRpb25zLmZpbmQoXG5cdFx0XHRcdFx0YXNzb2NpYXRpb24gPT4gYXNzb2NpYXRpb24uZnVsbHlRdWFsaWZpZWROYW1lID09PSAobmF2UHJvcCBhcyBWMk5hdmlnYXRpb25Qcm9wZXJ0eSkucmVsYXRpb25zaGlwXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmICh0YXJnZXRBc3NvY2lhdGlvbikge1xuXHRcdFx0XHRcdGNvbnN0IGFzc29jaWF0aW9uRW5kID0gdGFyZ2V0QXNzb2NpYXRpb24uYXNzb2NpYXRpb25FbmQuZmluZChcblx0XHRcdFx0XHRcdGVuZCA9PiBlbmQucm9sZSA9PT0gKG5hdlByb3AgYXMgVjJOYXZpZ2F0aW9uUHJvcGVydHkpLnRvUm9sZVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKGFzc29jaWF0aW9uRW5kKSB7XG5cdFx0XHRcdFx0XHRvdXROYXZQcm9wLnRhcmdldFR5cGUgPSBvYmplY3RNYXBbYXNzb2NpYXRpb25FbmQudHlwZV07XG5cdFx0XHRcdFx0XHRvdXROYXZQcm9wLmlzQ29sbGVjdGlvbiA9IGFzc29jaWF0aW9uRW5kLm11bHRpcGxpY2l0eSA9PT0gXCIqXCI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAob3V0TmF2UHJvcC50YXJnZXRUeXBlKSB7XG5cdFx0XHRcdG91dE5hdlByb3AudGFyZ2V0VHlwZU5hbWUgPSBvdXROYXZQcm9wLnRhcmdldFR5cGUuZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgb3V0TmF2UHJvcFJlcSA9IG91dE5hdlByb3AgYXMgTmF2aWdhdGlvblByb3BlcnR5O1xuXHRcdFx0b2JqZWN0TWFwW291dE5hdlByb3BSZXEuZnVsbHlRdWFsaWZpZWROYW1lXSA9IG91dE5hdlByb3BSZXE7XG5cdFx0XHRyZXR1cm4gb3V0TmF2UHJvcFJlcTtcblx0XHR9KTtcblx0XHQoZW50aXR5VHlwZSBhcyBFbnRpdHlUeXBlKS5yZXNvbHZlUGF0aCA9IGNyZWF0ZVJlc29sdmVQYXRoRm4oZW50aXR5VHlwZSBhcyBFbnRpdHlUeXBlLCBvYmplY3RNYXApO1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gbGlua0FjdGlvbnNUb0VudGl0eVR5cGUobmFtZXNwYWNlOiBzdHJpbmcsIGFjdGlvbnM6IEFjdGlvbltdLCBvYmplY3RNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkIHtcblx0YWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XG5cdFx0aWYgKCFhY3Rpb24uYW5ub3RhdGlvbnMpIHtcblx0XHRcdGFjdGlvbi5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdH1cblx0XHRpZiAoYWN0aW9uLmlzQm91bmQpIHtcblx0XHRcdGNvbnN0IHNvdXJjZUVudGl0eVR5cGUgPSBvYmplY3RNYXBbYWN0aW9uLnNvdXJjZVR5cGVdO1xuXHRcdFx0YWN0aW9uLnNvdXJjZUVudGl0eVR5cGUgPSBzb3VyY2VFbnRpdHlUeXBlO1xuXHRcdFx0aWYgKHNvdXJjZUVudGl0eVR5cGUpIHtcblx0XHRcdFx0aWYgKCFzb3VyY2VFbnRpdHlUeXBlLmFjdGlvbnMpIHtcblx0XHRcdFx0XHRzb3VyY2VFbnRpdHlUeXBlLmFjdGlvbnMgPSB7fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRzb3VyY2VFbnRpdHlUeXBlLmFjdGlvbnNbYWN0aW9uLm5hbWVdID0gYWN0aW9uO1xuXHRcdFx0XHRzb3VyY2VFbnRpdHlUeXBlLmFjdGlvbnNbYCR7bmFtZXNwYWNlfS4ke2FjdGlvbi5uYW1lfWBdID0gYWN0aW9uO1xuXHRcdFx0fVxuXHRcdFx0YWN0aW9uLnJldHVybkVudGl0eVR5cGUgPSBvYmplY3RNYXBbYWN0aW9uLnJldHVyblR5cGVdO1xuXHRcdH1cblx0fSk7XG59XG5cbmZ1bmN0aW9uIGxpbmtFbnRpdHlUeXBlVG9FbnRpdHlTZXQoXG5cdGVudGl0eVNldHM6IEVudGl0eVNldFtdLFxuXHRvYmplY3RNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4sXG5cdHJlZmVyZW5jZXM6IFJlZmVyZW5jZXNXaXRoTWFwXG4pOiB2b2lkIHtcblx0ZW50aXR5U2V0cy5mb3JFYWNoKGVudGl0eVNldCA9PiB7XG5cdFx0ZW50aXR5U2V0LmVudGl0eVR5cGUgPSBvYmplY3RNYXBbZW50aXR5U2V0LmVudGl0eVR5cGVOYW1lXTtcblx0XHRpZiAoIWVudGl0eVNldC5lbnRpdHlUeXBlKSB7XG5cdFx0XHRlbnRpdHlTZXQuZW50aXR5VHlwZSA9IG9iamVjdE1hcFt1bmFsaWFzKHJlZmVyZW5jZXMsIGVudGl0eVNldC5lbnRpdHlUeXBlTmFtZSkgYXMgc3RyaW5nXTtcblx0XHR9XG5cdFx0aWYgKCFlbnRpdHlTZXQuYW5ub3RhdGlvbnMpIHtcblx0XHRcdGVudGl0eVNldC5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdH1cblx0XHRpZiAoIWVudGl0eVNldC5lbnRpdHlUeXBlLmFubm90YXRpb25zKSB7XG5cdFx0XHRlbnRpdHlTZXQuZW50aXR5VHlwZS5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdH1cblx0XHRlbnRpdHlTZXQuZW50aXR5VHlwZS5rZXlzLmZvckVhY2goKGtleVByb3A6IFByb3BlcnR5KSA9PiB7XG5cdFx0XHRrZXlQcm9wLmlzS2V5ID0gdHJ1ZTtcblx0XHR9KTtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIGxpbmtFbnRpdHlUeXBlVG9TaW5nbGV0b24oXG5cdHNpbmdsZXRvbnM6IFNpbmdsZXRvbltdLFxuXHRvYmplY3RNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4sXG5cdHJlZmVyZW5jZXM6IFJlZmVyZW5jZXNXaXRoTWFwXG4pOiB2b2lkIHtcblx0c2luZ2xldG9ucy5mb3JFYWNoKHNpbmdsZXRvbiA9PiB7XG5cdFx0c2luZ2xldG9uLnR5cGUgPSBvYmplY3RNYXBbc2luZ2xldG9uLnR5cGVOYW1lXTtcblx0XHRpZiAoIXNpbmdsZXRvbi50eXBlKSB7XG5cdFx0XHRzaW5nbGV0b24udHlwZSA9IG9iamVjdE1hcFt1bmFsaWFzKHJlZmVyZW5jZXMsIHNpbmdsZXRvbi50eXBlTmFtZSkgYXMgc3RyaW5nXTtcblx0XHR9XG5cdFx0aWYgKCFzaW5nbGV0b24uYW5ub3RhdGlvbnMpIHtcblx0XHRcdHNpbmdsZXRvbi5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdH1cblx0XHRpZiAoIXNpbmdsZXRvbi50eXBlLmFubm90YXRpb25zKSB7XG5cdFx0XHRzaW5nbGV0b24udHlwZS5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdH1cblx0XHRzaW5nbGV0b24udHlwZS5rZXlzLmZvckVhY2goKGtleVByb3A6IFByb3BlcnR5KSA9PiB7XG5cdFx0XHRrZXlQcm9wLmlzS2V5ID0gdHJ1ZTtcblx0XHR9KTtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIGxpbmtQcm9wZXJ0aWVzVG9Db21wbGV4VHlwZXMoZW50aXR5VHlwZXM6IEVudGl0eVR5cGVbXSwgb2JqZWN0TWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG5cdGVudGl0eVR5cGVzLmZvckVhY2goZW50aXR5VHlwZSA9PiB7XG5cdFx0ZW50aXR5VHlwZS5lbnRpdHlQcm9wZXJ0aWVzLmZvckVhY2goZW50aXR5UHJvcGVydHkgPT4ge1xuXHRcdFx0aWYgKCFlbnRpdHlQcm9wZXJ0eS5hbm5vdGF0aW9ucykge1xuXHRcdFx0XHRlbnRpdHlQcm9wZXJ0eS5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0aWYgKGVudGl0eVByb3BlcnR5LnR5cGUuaW5kZXhPZihcIkVkbVwiKSA9PT0gLTEpIHtcblx0XHRcdFx0aWYgKGVudGl0eVByb3BlcnR5LnR5cGUuc3RhcnRzV2l0aChcIkNvbGxlY3Rpb25cIikpIHtcblx0XHRcdFx0XHRjb25zdCBjb21wbGV4VHlwZU5hbWUgPSBlbnRpdHlQcm9wZXJ0eS50eXBlLnN1YnN0cigxMSwgZW50aXR5UHJvcGVydHkudHlwZS5sZW5ndGggLSAxMik7XG5cdFx0XHRcdFx0Y29uc3QgY29tcGxleFR5cGUgPSBvYmplY3RNYXBbY29tcGxleFR5cGVOYW1lXSBhcyBDb21wbGV4VHlwZTtcblx0XHRcdFx0XHRpZiAoY29tcGxleFR5cGUpIHtcblx0XHRcdFx0XHRcdChlbnRpdHlQcm9wZXJ0eSBhcyBQcm9wZXJ0eSkudGFyZ2V0VHlwZSA9IGNvbXBsZXhUeXBlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb25zdCBjb21wbGV4VHlwZSA9IG9iamVjdE1hcFtlbnRpdHlQcm9wZXJ0eS50eXBlXSBhcyBDb21wbGV4VHlwZTtcblx0XHRcdFx0XHRpZiAoY29tcGxleFR5cGUpIHtcblx0XHRcdFx0XHRcdChlbnRpdHlQcm9wZXJ0eSBhcyBQcm9wZXJ0eSkudGFyZ2V0VHlwZSA9IGNvbXBsZXhUeXBlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9KTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZUNvbXBsZXhUeXBlcyhcblx0Y29tcGxleFR5cGVzOiBQYXJzZXJDb21wbGV4VHlwZVtdLFxuXHRhc3NvY2lhdGlvbnM6IEFzc29jaWF0aW9uW10sXG5cdG9iamVjdE1hcDogUmVjb3JkPHN0cmluZywgYW55PlxuKSB7XG5cdGNvbXBsZXhUeXBlcy5mb3JFYWNoKGNvbXBsZXhUeXBlID0+IHtcblx0XHQoY29tcGxleFR5cGUgYXMgQ29tcGxleFR5cGUpLmFubm90YXRpb25zID0ge307XG5cdFx0Y29tcGxleFR5cGUucHJvcGVydGllcy5mb3JFYWNoKHByb3BlcnR5ID0+IHtcblx0XHRcdGlmICghKHByb3BlcnR5IGFzIFByb3BlcnR5KS5hbm5vdGF0aW9ucykge1xuXHRcdFx0XHQocHJvcGVydHkgYXMgUHJvcGVydHkpLmFubm90YXRpb25zID0ge307XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0Y29tcGxleFR5cGUubmF2aWdhdGlvblByb3BlcnRpZXMgPSBjb21wbGV4VHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5tYXAobmF2UHJvcCA9PiB7XG5cdFx0XHRpZiAoIShuYXZQcm9wIGFzIE5hdmlnYXRpb25Qcm9wZXJ0eSkuYW5ub3RhdGlvbnMpIHtcblx0XHRcdFx0KG5hdlByb3AgYXMgTmF2aWdhdGlvblByb3BlcnR5KS5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgb3V0TmF2UHJvcDogUGFydGlhbDxOYXZpZ2F0aW9uUHJvcGVydHk+ID0ge1xuXHRcdFx0XHRfdHlwZTogXCJOYXZpZ2F0aW9uUHJvcGVydHlcIixcblx0XHRcdFx0bmFtZTogbmF2UHJvcC5uYW1lLFxuXHRcdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IG5hdlByb3AuZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRwYXJ0bmVyOiAobmF2UHJvcCBhcyBhbnkpLmhhc093blByb3BlcnR5KFwicGFydG5lclwiKSA/IChuYXZQcm9wIGFzIGFueSkucGFydG5lciA6IHVuZGVmaW5lZCxcblx0XHRcdFx0Ly8gdGFyZ2V0VHlwZU5hbWU6IEZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRcdFx0Ly8gdGFyZ2V0VHlwZTogRW50aXR5VHlwZTtcblx0XHRcdFx0aXNDb2xsZWN0aW9uOiAobmF2UHJvcCBhcyBhbnkpLmhhc093blByb3BlcnR5KFwiaXNDb2xsZWN0aW9uXCIpID8gKG5hdlByb3AgYXMgYW55KS5pc0NvbGxlY3Rpb24gOiBmYWxzZSxcblx0XHRcdFx0Y29udGFpbnNUYXJnZXQ6IChuYXZQcm9wIGFzIGFueSkuaGFzT3duUHJvcGVydHkoXCJjb250YWluc1RhcmdldFwiKVxuXHRcdFx0XHRcdD8gKG5hdlByb3AgYXMgYW55KS5jb250YWluc1RhcmdldFxuXHRcdFx0XHRcdDogZmFsc2UsXG5cdFx0XHRcdHJlZmVyZW50aWFsQ29uc3RyYWludDogKG5hdlByb3AgYXMgYW55KS5yZWZlcmVudGlhbENvbnN0cmFpbnRcblx0XHRcdFx0XHQ/IChuYXZQcm9wIGFzIGFueSkucmVmZXJlbnRpYWxDb25zdHJhaW50XG5cdFx0XHRcdFx0OiBbXVxuXHRcdFx0fTtcblx0XHRcdGlmICgobmF2UHJvcCBhcyBHZW5lcmljTmF2aWdhdGlvblByb3BlcnR5KS50YXJnZXRUeXBlTmFtZSkge1xuXHRcdFx0XHRvdXROYXZQcm9wLnRhcmdldFR5cGUgPSBvYmplY3RNYXBbKG5hdlByb3AgYXMgVjROYXZpZ2F0aW9uUHJvcGVydHkpLnRhcmdldFR5cGVOYW1lXTtcblx0XHRcdH0gZWxzZSBpZiAoKG5hdlByb3AgYXMgVjJOYXZpZ2F0aW9uUHJvcGVydHkpLnJlbGF0aW9uc2hpcCkge1xuXHRcdFx0XHRjb25zdCB0YXJnZXRBc3NvY2lhdGlvbiA9IGFzc29jaWF0aW9ucy5maW5kKFxuXHRcdFx0XHRcdGFzc29jaWF0aW9uID0+IGFzc29jaWF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gKG5hdlByb3AgYXMgVjJOYXZpZ2F0aW9uUHJvcGVydHkpLnJlbGF0aW9uc2hpcFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAodGFyZ2V0QXNzb2NpYXRpb24pIHtcblx0XHRcdFx0XHRjb25zdCBhc3NvY2lhdGlvbkVuZCA9IHRhcmdldEFzc29jaWF0aW9uLmFzc29jaWF0aW9uRW5kLmZpbmQoXG5cdFx0XHRcdFx0XHRlbmQgPT4gZW5kLnJvbGUgPT09IChuYXZQcm9wIGFzIFYyTmF2aWdhdGlvblByb3BlcnR5KS50b1JvbGVcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmIChhc3NvY2lhdGlvbkVuZCkge1xuXHRcdFx0XHRcdFx0b3V0TmF2UHJvcC50YXJnZXRUeXBlID0gb2JqZWN0TWFwW2Fzc29jaWF0aW9uRW5kLnR5cGVdO1xuXHRcdFx0XHRcdFx0b3V0TmF2UHJvcC5pc0NvbGxlY3Rpb24gPSBhc3NvY2lhdGlvbkVuZC5tdWx0aXBsaWNpdHkgPT09IFwiKlwiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKG91dE5hdlByb3AudGFyZ2V0VHlwZSkge1xuXHRcdFx0XHRvdXROYXZQcm9wLnRhcmdldFR5cGVOYW1lID0gb3V0TmF2UHJvcC50YXJnZXRUeXBlLmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IG91dE5hdlByb3BSZXEgPSBvdXROYXZQcm9wIGFzIE5hdmlnYXRpb25Qcm9wZXJ0eTtcblx0XHRcdG9iamVjdE1hcFtvdXROYXZQcm9wUmVxLmZ1bGx5UXVhbGlmaWVkTmFtZV0gPSBvdXROYXZQcm9wUmVxO1xuXHRcdFx0cmV0dXJuIG91dE5hdlByb3BSZXE7XG5cdFx0fSk7XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBzcGxpdFRlcm0ocmVmZXJlbmNlczogUmVmZXJlbmNlc1dpdGhNYXAsIHRlcm1WYWx1ZTogc3RyaW5nKSB7XG5cdGNvbnN0IGFsaWFzZWRUZXJtID0gYWxpYXMocmVmZXJlbmNlcywgdGVybVZhbHVlKTtcblx0Y29uc3QgbGFzdERvdCA9IGFsaWFzZWRUZXJtLmxhc3RJbmRleE9mKFwiLlwiKTtcblx0bGV0IHRlcm1BbGlhcyA9IGFsaWFzZWRUZXJtLnN1YnN0cigwLCBsYXN0RG90KTtcblx0bGV0IHRlcm0gPSBhbGlhc2VkVGVybS5zdWJzdHIobGFzdERvdCArIDEpO1xuXHRyZXR1cm4gW3Rlcm1BbGlhcywgdGVybV07XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIHNwZWNpZmljIHBhdGhcbiAqIEBwYXJhbSBzUGF0aFxuICovXG5mdW5jdGlvbiBjcmVhdGVHbG9iYWxSZXNvbHZlKGNvbnZlcnRlZE91dHB1dDogQ29udmVydGVyT3V0cHV0LCBvYmplY3RNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcblx0cmV0dXJuIGZ1bmN0aW9uIHJlc29sdmVQYXRoPFQgZXh0ZW5kcyBTZXJ2aWNlT2JqZWN0QW5kQW5ub3RhdGlvbj4oc1BhdGg6IHN0cmluZyk6IFJlc29sdXRpb25UYXJnZXQ8VD4ge1xuXHRcdGNvbnN0IGFQYXRoU3BsaXQgPSBzUGF0aC5zcGxpdChcIi9cIik7XG5cdFx0aWYgKGFQYXRoU3BsaXQuc2hpZnQoKSAhPT0gXCJcIikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlYWwgd2l0aCByZWxhdGl2ZSBwYXRoXCIpO1xuXHRcdH1cblx0XHRjb25zdCBlbnRpdHlTZXROYW1lID0gYVBhdGhTcGxpdC5zaGlmdCgpO1xuXHRcdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlZE91dHB1dC5lbnRpdHlTZXRzLmZpbmQoZXQgPT4gZXQubmFtZSA9PT0gZW50aXR5U2V0TmFtZSk7XG5cdFx0aWYgKCFlbnRpdHlTZXQpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHRhcmdldDogY29udmVydGVkT3V0cHV0LmVudGl0eUNvbnRhaW5lcixcblx0XHRcdFx0b2JqZWN0UGF0aDogW2NvbnZlcnRlZE91dHB1dC5lbnRpdHlDb250YWluZXJdXG5cdFx0XHR9IGFzIFJlc29sdXRpb25UYXJnZXQ8VD47XG5cdFx0fVxuXHRcdGlmIChhUGF0aFNwbGl0Lmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0dGFyZ2V0OiBlbnRpdHlTZXQsXG5cdFx0XHRcdG9iamVjdFBhdGg6IFtjb252ZXJ0ZWRPdXRwdXQuZW50aXR5Q29udGFpbmVyLCBlbnRpdHlTZXRdXG5cdFx0XHR9IGFzIFJlc29sdXRpb25UYXJnZXQ8VD47XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IHRhcmdldFJlc29sdXRpb246IGFueSA9IHJlc29sdmVUYXJnZXQob2JqZWN0TWFwLCBlbnRpdHlTZXQsIFwiL1wiICsgYVBhdGhTcGxpdC5qb2luKFwiL1wiKSwgZmFsc2UsIHRydWUpO1xuXHRcdFx0aWYgKHRhcmdldFJlc29sdXRpb24udGFyZ2V0KSB7XG5cdFx0XHRcdHRhcmdldFJlc29sdXRpb24udmlzaXRlZE9iamVjdHMucHVzaCh0YXJnZXRSZXNvbHV0aW9uLnRhcmdldCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0YXJnZXQ6IHRhcmdldFJlc29sdXRpb24udGFyZ2V0LFxuXHRcdFx0XHRvYmplY3RQYXRoOiB0YXJnZXRSZXNvbHV0aW9uLnZpc2l0ZWRPYmplY3RzXG5cdFx0XHR9O1xuXHRcdH1cblx0fTtcbn1cblxubGV0IEFOTk9UQVRJT05fRVJST1JTOiB7IG1lc3NhZ2U6IHN0cmluZyB9W10gPSBbXTtcbmxldCBBTExfQU5OT1RBVElPTl9FUlJPUlM6IGFueSA9IHt9O1xuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFR5cGVzKHBhcnNlck91dHB1dDogUGFyc2VyT3V0cHV0KTogQ29udmVydGVyT3V0cHV0IHtcblx0QU5OT1RBVElPTl9FUlJPUlMgPSBbXTtcblx0Y29uc3Qgb2JqZWN0TWFwID0gYnVpbGRPYmplY3RNYXAocGFyc2VyT3V0cHV0KTtcblx0cmVzb2x2ZU5hdmlnYXRpb25Qcm9wZXJ0aWVzKFxuXHRcdHBhcnNlck91dHB1dC5zY2hlbWEuZW50aXR5VHlwZXMgYXMgRW50aXR5VHlwZVtdLFxuXHRcdHBhcnNlck91dHB1dC5zY2hlbWEuYXNzb2NpYXRpb25zLFxuXHRcdG9iamVjdE1hcFxuXHQpO1xuXHRpZiAoIShwYXJzZXJPdXRwdXQuc2NoZW1hLmVudGl0eUNvbnRhaW5lciBhcyBFbnRpdHlDb250YWluZXIpLmFubm90YXRpb25zKSB7XG5cdFx0KHBhcnNlck91dHB1dC5zY2hlbWEuZW50aXR5Q29udGFpbmVyIGFzIEVudGl0eUNvbnRhaW5lcikuYW5ub3RhdGlvbnMgPSB7fTtcblx0fVxuXHRsaW5rQWN0aW9uc1RvRW50aXR5VHlwZShwYXJzZXJPdXRwdXQuc2NoZW1hLm5hbWVzcGFjZSwgcGFyc2VyT3V0cHV0LnNjaGVtYS5hY3Rpb25zIGFzIEFjdGlvbltdLCBvYmplY3RNYXApO1xuXHRsaW5rRW50aXR5VHlwZVRvRW50aXR5U2V0KHBhcnNlck91dHB1dC5zY2hlbWEuZW50aXR5U2V0cyBhcyBFbnRpdHlTZXRbXSwgb2JqZWN0TWFwLCBwYXJzZXJPdXRwdXQucmVmZXJlbmNlcyk7XG5cdGxpbmtFbnRpdHlUeXBlVG9TaW5nbGV0b24ocGFyc2VyT3V0cHV0LnNjaGVtYS5zaW5nbGV0b25zIGFzIFNpbmdsZXRvbltdLCBvYmplY3RNYXAsIHBhcnNlck91dHB1dC5yZWZlcmVuY2VzKTtcblx0bGlua1Byb3BlcnRpZXNUb0NvbXBsZXhUeXBlcyhwYXJzZXJPdXRwdXQuc2NoZW1hLmVudGl0eVR5cGVzIGFzIEVudGl0eVR5cGVbXSwgb2JqZWN0TWFwKTtcblx0cHJlcGFyZUNvbXBsZXhUeXBlcyhwYXJzZXJPdXRwdXQuc2NoZW1hLmNvbXBsZXhUeXBlcyBhcyBDb21wbGV4VHlwZVtdLCBwYXJzZXJPdXRwdXQuc2NoZW1hLmFzc29jaWF0aW9ucywgb2JqZWN0TWFwKTtcblx0Y29uc3QgdG9SZXNvbHZlOiBSZXNvbHZlYWJsZVtdID0gW107XG5cdGNvbnN0IHVucmVzb2x2ZWRBbm5vdGF0aW9uczogQW5ub3RhdGlvbkxpc3RbXSA9IFtdO1xuXG5cdE9iamVjdC5rZXlzKHBhcnNlck91dHB1dC5zY2hlbWEuYW5ub3RhdGlvbnMpLmZvckVhY2goYW5ub3RhdGlvblNvdXJjZSA9PiB7XG5cdFx0cGFyc2VyT3V0cHV0LnNjaGVtYS5hbm5vdGF0aW9uc1thbm5vdGF0aW9uU291cmNlXS5mb3JFYWNoKGFubm90YXRpb25MaXN0ID0+IHtcblx0XHRcdGxldCBjdXJyZW50VGFyZ2V0TmFtZSA9IHVuYWxpYXMocGFyc2VyT3V0cHV0LnJlZmVyZW5jZXMsIGFubm90YXRpb25MaXN0LnRhcmdldCkgYXMgc3RyaW5nO1xuXHRcdFx0Y29uc3Qgb2JqZWN0TWFwRWxlbWVudCA9IG9iamVjdE1hcFtjdXJyZW50VGFyZ2V0TmFtZV07XG5cdFx0XHRpZiAoIW9iamVjdE1hcEVsZW1lbnQpIHtcblx0XHRcdFx0aWYgKGN1cnJlbnRUYXJnZXROYW1lICYmIGN1cnJlbnRUYXJnZXROYW1lLmluZGV4T2YoXCJAXCIpICE9PSAtMSkge1xuXHRcdFx0XHRcdChhbm5vdGF0aW9uTGlzdCBhcyBhbnkpLl9fc291cmNlID0gYW5ub3RhdGlvblNvdXJjZTtcblx0XHRcdFx0XHR1bnJlc29sdmVkQW5ub3RhdGlvbnMucHVzaChhbm5vdGF0aW9uTGlzdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIG9iamVjdE1hcEVsZW1lbnQgPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0bGV0IGFsbFRhcmdldHMgPSBbb2JqZWN0TWFwRWxlbWVudF07XG5cdFx0XHRcdGxldCBiT3ZlcnJpZGVFeGlzdGluZyA9IHRydWU7XG5cdFx0XHRcdGlmIChvYmplY3RNYXBFbGVtZW50Ll90eXBlID09PSBcIlVuYm91bmRHZW5lcmljQWN0aW9uXCIpIHtcblx0XHRcdFx0XHRhbGxUYXJnZXRzID0gb2JqZWN0TWFwRWxlbWVudC5hY3Rpb25zO1xuXHRcdFx0XHRcdGJPdmVycmlkZUV4aXN0aW5nID0gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0YWxsVGFyZ2V0cy5mb3JFYWNoKGN1cnJlbnRUYXJnZXQgPT4ge1xuXHRcdFx0XHRcdGlmIChjdXJyZW50VGFyZ2V0TmFtZSAhPT0gY3VycmVudFRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUpIHtcblx0XHRcdFx0XHRcdGN1cnJlbnRUYXJnZXROYW1lID0gY3VycmVudFRhcmdldC5mdWxseVF1YWxpZmllZE5hbWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICghY3VycmVudFRhcmdldC5hbm5vdGF0aW9ucykge1xuXHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRhbm5vdGF0aW9uTGlzdC5hbm5vdGF0aW9ucy5mb3JFYWNoKGFubm90YXRpb24gPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgW3ZvY0FsaWFzLCB2b2NUZXJtXSA9IHNwbGl0VGVybShkZWZhdWx0UmVmZXJlbmNlcywgYW5ub3RhdGlvbi50ZXJtKTtcblx0XHRcdFx0XHRcdGlmICghY3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc10pIHtcblx0XHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc10gPSB7fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmICghY3VycmVudFRhcmdldC5hbm5vdGF0aW9ucy5fYW5ub3RhdGlvbnMpIHtcblx0XHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9ucy5fYW5ub3RhdGlvbnMgPSB7fTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Y29uc3Qgdm9jVGVybVdpdGhRdWFsaWZpZXIgPSBgJHt2b2NUZXJtfSR7XG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24ucXVhbGlmaWVyID8gYCMke2Fubm90YXRpb24ucXVhbGlmaWVyfWAgOiBcIlwiXG5cdFx0XHRcdFx0XHR9YDtcblx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0IWJPdmVycmlkZUV4aXN0aW5nICYmXG5cdFx0XHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnM/Llt2b2NBbGlhc10/Llt2b2NUZXJtV2l0aFF1YWxpZmllcl0gIT09IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXSA9IGNvbnZlcnRBbm5vdGF0aW9uKFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uIGFzIEFubm90YXRpb24sXG5cdFx0XHRcdFx0XHRcdHBhcnNlck91dHB1dCxcblx0XHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldCxcblx0XHRcdFx0XHRcdFx0b2JqZWN0TWFwLFxuXHRcdFx0XHRcdFx0XHR0b1Jlc29sdmUsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25Tb3VyY2UsXG5cdFx0XHRcdFx0XHRcdHVucmVzb2x2ZWRBbm5vdGF0aW9uc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHN3aXRjaCAodHlwZW9mIGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXSkge1xuXHRcdFx0XHRcdFx0XHRjYXNlIFwic3RyaW5nXCI6XG5cdFx0XHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc11bdm9jVGVybVdpdGhRdWFsaWZpZXJdID0gbmV3IFN0cmluZyhcblx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXVxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdGNhc2UgXCJib29sZWFuXCI6XG5cdFx0XHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc11bdm9jVGVybVdpdGhRdWFsaWZpZXJdID0gbmV3IEJvb2xlYW4oXG5cdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50VGFyZ2V0LmFubm90YXRpb25zW3ZvY0FsaWFzXVt2b2NUZXJtV2l0aFF1YWxpZmllcl1cblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHRjdXJyZW50VGFyZ2V0LmFubm90YXRpb25zW3ZvY0FsaWFzXVt2b2NUZXJtV2l0aFF1YWxpZmllcl0gIT09IG51bGwgJiZcblx0XHRcdFx0XHRcdFx0dHlwZW9mIGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXSA9PT0gXCJvYmplY3RcIlxuXHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXS50ZXJtID0gdW5hbGlhcyhcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0UmVmZXJlbmNlcyxcblx0XHRcdFx0XHRcdFx0XHRgJHt2b2NBbGlhc30uJHt2b2NUZXJtfWBcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc11bdm9jVGVybVdpdGhRdWFsaWZpZXJdLnF1YWxpZmllciA9IGFubm90YXRpb24ucXVhbGlmaWVyO1xuXHRcdFx0XHRcdFx0XHRjdXJyZW50VGFyZ2V0LmFubm90YXRpb25zW3ZvY0FsaWFzXVt2b2NUZXJtV2l0aFF1YWxpZmllcl0uX19zb3VyY2UgPSBhbm5vdGF0aW9uU291cmNlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Y29uc3QgYW5ub3RhdGlvblRhcmdldCA9IGAke2N1cnJlbnRUYXJnZXROYW1lfUAke3VuYWxpYXMoXG5cdFx0XHRcdFx0XHRcdGRlZmF1bHRSZWZlcmVuY2VzLFxuXHRcdFx0XHRcdFx0XHR2b2NBbGlhcyArIFwiLlwiICsgdm9jVGVybVdpdGhRdWFsaWZpZXJcblx0XHRcdFx0XHRcdCl9YDtcblx0XHRcdFx0XHRcdGlmIChhbm5vdGF0aW9uLmFubm90YXRpb25zICYmIEFycmF5LmlzQXJyYXkoYW5ub3RhdGlvbi5hbm5vdGF0aW9ucykpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3ViQW5ub3RhdGlvbkxpc3QgPSB7XG5cdFx0XHRcdFx0XHRcdFx0dGFyZ2V0OiBhbm5vdGF0aW9uVGFyZ2V0LFxuXHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb25zOiBhbm5vdGF0aW9uLmFubm90YXRpb25zLFxuXHRcdFx0XHRcdFx0XHRcdF9fc291cmNlOiBhbm5vdGF0aW9uU291cmNlXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdHVucmVzb2x2ZWRBbm5vdGF0aW9ucy5wdXNoKHN1YkFubm90YXRpb25MaXN0KTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb24uYW5ub3RhdGlvbnMgJiZcblx0XHRcdFx0XHRcdFx0IWN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXS5hbm5vdGF0aW9uc1xuXHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXS5hbm5vdGF0aW9ucyA9XG5cdFx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvbi5hbm5vdGF0aW9ucztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnMuX2Fubm90YXRpb25zW2Ake3ZvY0FsaWFzfS4ke3ZvY1Rlcm1XaXRoUXVhbGlmaWVyfWBdID1cblx0XHRcdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc11bdm9jVGVybVdpdGhRdWFsaWZpZXJdO1xuXHRcdFx0XHRcdFx0b2JqZWN0TWFwW2Fubm90YXRpb25UYXJnZXRdID0gY3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc11bdm9jVGVybVdpdGhRdWFsaWZpZXJdO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSk7XG5cdGNvbnN0IGV4dHJhVW5yZXNvbHZlZEFubm90YXRpb25zOiBBbm5vdGF0aW9uTGlzdFtdID0gW107XG5cdHVucmVzb2x2ZWRBbm5vdGF0aW9ucy5mb3JFYWNoKGFubm90YXRpb25MaXN0ID0+IHtcblx0XHRjb25zdCBjdXJyZW50VGFyZ2V0TmFtZSA9IHVuYWxpYXMocGFyc2VyT3V0cHV0LnJlZmVyZW5jZXMsIGFubm90YXRpb25MaXN0LnRhcmdldCkgYXMgc3RyaW5nO1xuXHRcdGxldCBbYmFzZU9iaiwgYW5ub3RhdGlvblBhcnRdID0gY3VycmVudFRhcmdldE5hbWUuc3BsaXQoXCJAXCIpO1xuXHRcdGNvbnN0IHRhcmdldFNwbGl0ID0gYW5ub3RhdGlvblBhcnQuc3BsaXQoXCIvXCIpO1xuXHRcdGJhc2VPYmogPSBiYXNlT2JqICsgXCJAXCIgKyB0YXJnZXRTcGxpdFswXTtcblx0XHRjb25zdCBjdXJyZW50VGFyZ2V0ID0gdGFyZ2V0U3BsaXQuc2xpY2UoMSkucmVkdWNlKChjdXJyZW50T2JqLCBwYXRoKSA9PiB7XG5cdFx0XHRpZiAoIWN1cnJlbnRPYmopIHtcblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY3VycmVudE9ialtwYXRoXTtcblx0XHR9LCBvYmplY3RNYXBbYmFzZU9ial0pO1xuXHRcdGlmICghY3VycmVudFRhcmdldCkge1xuXHRcdFx0QU5OT1RBVElPTl9FUlJPUlMucHVzaCh7XG5cdFx0XHRcdG1lc3NhZ2U6IFwiVGhlIGZvbGxvd2luZyBhbm5vdGF0aW9uIHRhcmdldCB3YXMgbm90IGZvdW5kIG9uIHRoZSBzZXJ2aWNlIFwiICsgY3VycmVudFRhcmdldE5hbWVcblx0XHRcdH0pO1xuXHRcdFx0Ly8gY29uc29sZS5sb2coXCJNaXNzaW5nIHRhcmdldCBhZ2FpbiBcIiArIGN1cnJlbnRUYXJnZXROYW1lKTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBjdXJyZW50VGFyZ2V0ID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRpZiAoIWN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnMpIHtcblx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9ucyA9IHt9O1xuXHRcdFx0fVxuXHRcdFx0YW5ub3RhdGlvbkxpc3QuYW5ub3RhdGlvbnMuZm9yRWFjaChhbm5vdGF0aW9uID0+IHtcblx0XHRcdFx0Y29uc3QgW3ZvY0FsaWFzLCB2b2NUZXJtXSA9IHNwbGl0VGVybShkZWZhdWx0UmVmZXJlbmNlcywgYW5ub3RhdGlvbi50ZXJtKTtcblx0XHRcdFx0aWYgKCFjdXJyZW50VGFyZ2V0LmFubm90YXRpb25zW3ZvY0FsaWFzXSkge1xuXHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdID0ge307XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFjdXJyZW50VGFyZ2V0LmFubm90YXRpb25zLl9hbm5vdGF0aW9ucykge1xuXHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnMuX2Fubm90YXRpb25zID0ge307XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCB2b2NUZXJtV2l0aFF1YWxpZmllciA9IGAke3ZvY1Rlcm19JHthbm5vdGF0aW9uLnF1YWxpZmllciA/IGAjJHthbm5vdGF0aW9uLnF1YWxpZmllcn1gIDogXCJcIn1gO1xuXHRcdFx0XHRjdXJyZW50VGFyZ2V0LmFubm90YXRpb25zW3ZvY0FsaWFzXVt2b2NUZXJtV2l0aFF1YWxpZmllcl0gPSBjb252ZXJ0QW5ub3RhdGlvbihcblx0XHRcdFx0XHRhbm5vdGF0aW9uIGFzIEFubm90YXRpb24sXG5cdFx0XHRcdFx0cGFyc2VyT3V0cHV0LFxuXHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQsXG5cdFx0XHRcdFx0b2JqZWN0TWFwLFxuXHRcdFx0XHRcdHRvUmVzb2x2ZSxcblx0XHRcdFx0XHQoYW5ub3RhdGlvbkxpc3QgYXMgYW55KS5fX3NvdXJjZSxcblx0XHRcdFx0XHRleHRyYVVucmVzb2x2ZWRBbm5vdGF0aW9uc1xuXHRcdFx0XHQpO1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc11bdm9jVGVybVdpdGhRdWFsaWZpZXJdICE9PSBudWxsICYmXG5cdFx0XHRcdFx0dHlwZW9mIGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXSA9PT0gXCJvYmplY3RcIlxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRjdXJyZW50VGFyZ2V0LmFubm90YXRpb25zW3ZvY0FsaWFzXVt2b2NUZXJtV2l0aFF1YWxpZmllcl0udGVybSA9IHVuYWxpYXMoXG5cdFx0XHRcdFx0XHRkZWZhdWx0UmVmZXJlbmNlcyxcblx0XHRcdFx0XHRcdGAke3ZvY0FsaWFzfS4ke3ZvY1Rlcm19YFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9uc1t2b2NBbGlhc11bdm9jVGVybVdpdGhRdWFsaWZpZXJdLnF1YWxpZmllciA9IGFubm90YXRpb24ucXVhbGlmaWVyO1xuXHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW1xuXHRcdFx0XHRcdFx0dm9jVGVybVdpdGhRdWFsaWZpZXJcblx0XHRcdFx0XHRdLl9fc291cmNlID0gKGFubm90YXRpb25MaXN0IGFzIGFueSkuX19zb3VyY2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y3VycmVudFRhcmdldC5hbm5vdGF0aW9ucy5fYW5ub3RhdGlvbnNbYCR7dm9jQWxpYXN9LiR7dm9jVGVybVdpdGhRdWFsaWZpZXJ9YF0gPVxuXHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXTtcblx0XHRcdFx0b2JqZWN0TWFwW2Ake2N1cnJlbnRUYXJnZXROYW1lfUAke3VuYWxpYXMoZGVmYXVsdFJlZmVyZW5jZXMsIHZvY0FsaWFzICsgXCIuXCIgKyB2b2NUZXJtV2l0aFF1YWxpZmllcil9YF0gPVxuXHRcdFx0XHRcdGN1cnJlbnRUYXJnZXQuYW5ub3RhdGlvbnNbdm9jQWxpYXNdW3ZvY1Rlcm1XaXRoUXVhbGlmaWVyXTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fSk7XG5cdHRvUmVzb2x2ZS5mb3JFYWNoKHJlc29sdmVhYmxlID0+IHtcblx0XHRjb25zdCB0b1Jlc29sdmUgPSByZXNvbHZlYWJsZS50b1Jlc29sdmU7XG5cdFx0Y29uc3QgdGFyZ2V0U3RyID0gdG9SZXNvbHZlLiR0YXJnZXQ7XG5cdFx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBvYmplY3RNYXBbdGFyZ2V0U3RyXTtcblx0XHRjb25zdCB7IGFubm90YXRpb25zVGVybSwgYW5ub3RhdGlvblR5cGUgfSA9IHRvUmVzb2x2ZTtcblx0XHRkZWxldGUgdG9SZXNvbHZlLmFubm90YXRpb25UeXBlO1xuXHRcdGRlbGV0ZSB0b1Jlc29sdmUuYW5ub3RhdGlvbnNUZXJtO1xuXG5cdFx0aWYgKHJlc29sdmVhYmxlLmlubGluZSAmJiAhKHJlc29sdmVkVGFyZ2V0IGluc3RhbmNlb2YgU3RyaW5nKSkge1xuXHRcdFx0Ly8gaW5saW5lIHRoZSByZXNvbHZlZCB0YXJnZXRcblx0XHRcdGxldCBrZXlzOiBrZXlvZiB0eXBlb2YgdG9SZXNvbHZlO1xuXHRcdFx0Zm9yIChrZXlzIGluIHRvUmVzb2x2ZSkgZGVsZXRlIHRvUmVzb2x2ZVtrZXlzXTtcblxuXHRcdFx0T2JqZWN0LmFzc2lnbih0b1Jlc29sdmUsIHJlc29sdmVkVGFyZ2V0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gYXNzaWduIHRoZSByZXNvbHZlZCB0YXJnZXRcblx0XHRcdHRvUmVzb2x2ZS4kdGFyZ2V0ID0gcmVzb2x2ZWRUYXJnZXQ7XG5cdFx0fVxuXG5cdFx0aWYgKCFyZXNvbHZlZFRhcmdldCkge1xuXHRcdFx0dG9SZXNvbHZlLnRhcmdldFN0cmluZyA9IHRhcmdldFN0cjtcblx0XHRcdGlmIChhbm5vdGF0aW9uc1Rlcm0gJiYgYW5ub3RhdGlvblR5cGUpIHtcblx0XHRcdFx0Y29uc3Qgb0Vycm9yTXNnID0ge1xuXHRcdFx0XHRcdG1lc3NhZ2U6XG5cdFx0XHRcdFx0XHRcIlVuYWJsZSB0byByZXNvbHZlIHRoZSBwYXRoIGV4cHJlc3Npb246IFwiICtcblx0XHRcdFx0XHRcdHRhcmdldFN0ciArXG5cdFx0XHRcdFx0XHRcIlxcblwiICtcblx0XHRcdFx0XHRcdFwiXFxuXCIgK1xuXHRcdFx0XHRcdFx0XCJIaW50OiBDaGVjayBhbmQgY29ycmVjdCB0aGUgcGF0aCB2YWx1ZXMgdW5kZXIgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgaW4gdGhlIG1ldGFkYXRhIChhbm5vdGF0aW9uLnhtbCBmaWxlIG9yIENEUyBhbm5vdGF0aW9ucyBmb3IgdGhlIGFwcGxpY2F0aW9uKTogXFxuXFxuXCIgK1xuXHRcdFx0XHRcdFx0XCI8QW5ub3RhdGlvbiBUZXJtID0gXCIgK1xuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbnNUZXJtICtcblx0XHRcdFx0XHRcdFwiPlwiICtcblx0XHRcdFx0XHRcdFwiXFxuXCIgK1xuXHRcdFx0XHRcdFx0XCI8UmVjb3JkIFR5cGUgPSBcIiArXG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uVHlwZSArXG5cdFx0XHRcdFx0XHRcIj5cIiArXG5cdFx0XHRcdFx0XHRcIlxcblwiICtcblx0XHRcdFx0XHRcdFwiPEFubm90YXRpb25QYXRoID0gXCIgK1xuXHRcdFx0XHRcdFx0dGFyZ2V0U3RyICtcblx0XHRcdFx0XHRcdFwiPlwiXG5cdFx0XHRcdH07XG5cdFx0XHRcdGFkZEFubm90YXRpb25FcnJvck1lc3NhZ2UodGFyZ2V0U3RyLCBvRXJyb3JNc2cpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgcHJvcGVydHkgPSB0b1Jlc29sdmUudGVybTtcblx0XHRcdFx0Y29uc3QgcGF0aCA9IHRvUmVzb2x2ZS5wYXRoO1xuXHRcdFx0XHRjb25zdCB0ZXJtSW5mbyA9IHRhcmdldFN0ciA/IHRhcmdldFN0ci5zcGxpdChcIi9cIilbMF0gOiB0YXJnZXRTdHI7XG5cdFx0XHRcdGNvbnN0IG9FcnJvck1zZyA9IHtcblx0XHRcdFx0XHRtZXNzYWdlOlxuXHRcdFx0XHRcdFx0XCJVbmFibGUgdG8gcmVzb2x2ZSB0aGUgcGF0aCBleHByZXNzaW9uOiBcIiArXG5cdFx0XHRcdFx0XHR0YXJnZXRTdHIgK1xuXHRcdFx0XHRcdFx0XCJcXG5cIiArXG5cdFx0XHRcdFx0XHRcIlxcblwiICtcblx0XHRcdFx0XHRcdFwiSGludDogQ2hlY2sgYW5kIGNvcnJlY3QgdGhlIHBhdGggdmFsdWVzIHVuZGVyIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlIGluIHRoZSBtZXRhZGF0YSAoYW5ub3RhdGlvbi54bWwgZmlsZSBvciBDRFMgYW5ub3RhdGlvbnMgZm9yIHRoZSBhcHBsaWNhdGlvbik6IFxcblxcblwiICtcblx0XHRcdFx0XHRcdFwiPEFubm90YXRpb24gVGVybSA9IFwiICtcblx0XHRcdFx0XHRcdHRlcm1JbmZvICtcblx0XHRcdFx0XHRcdFwiPlwiICtcblx0XHRcdFx0XHRcdFwiXFxuXCIgK1xuXHRcdFx0XHRcdFx0XCI8UHJvcGVydHlWYWx1ZSBQcm9wZXJ0eSA9IFwiICtcblx0XHRcdFx0XHRcdHByb3BlcnR5ICtcblx0XHRcdFx0XHRcdFwiICAgICAgICBQYXRoPSBcIiArXG5cdFx0XHRcdFx0XHRwYXRoICtcblx0XHRcdFx0XHRcdFwiPlwiXG5cdFx0XHRcdH07XG5cdFx0XHRcdGFkZEFubm90YXRpb25FcnJvck1lc3NhZ2UodGFyZ2V0U3RyLCBvRXJyb3JNc2cpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cdGZvciAodmFyIHByb3BlcnR5IGluIEFMTF9BTk5PVEFUSU9OX0VSUk9SUykge1xuXHRcdEFOTk9UQVRJT05fRVJST1JTLnB1c2goQUxMX0FOTk9UQVRJT05fRVJST1JTW3Byb3BlcnR5XVswXSk7XG5cdH1cblx0KHBhcnNlck91dHB1dCBhcyBhbnkpLmVudGl0eVNldHMgPSBwYXJzZXJPdXRwdXQuc2NoZW1hLmVudGl0eVNldHM7XG5cblx0Y29uc3QgY29udmVydGVkT3V0cHV0OiBQYXJ0aWFsPENvbnZlcnRlck91dHB1dD4gPSB7XG5cdFx0dmVyc2lvbjogcGFyc2VyT3V0cHV0LnZlcnNpb24sXG5cdFx0YW5ub3RhdGlvbnM6IHBhcnNlck91dHB1dC5zY2hlbWEuYW5ub3RhdGlvbnMsXG5cdFx0bmFtZXNwYWNlOiBwYXJzZXJPdXRwdXQuc2NoZW1hLm5hbWVzcGFjZSxcblx0XHRlbnRpdHlDb250YWluZXI6IHBhcnNlck91dHB1dC5zY2hlbWEuZW50aXR5Q29udGFpbmVyIGFzIEVudGl0eUNvbnRhaW5lcixcblx0XHRhY3Rpb25zOiBwYXJzZXJPdXRwdXQuc2NoZW1hLmFjdGlvbnMgYXMgQWN0aW9uW10sXG5cdFx0ZW50aXR5U2V0czogcGFyc2VyT3V0cHV0LnNjaGVtYS5lbnRpdHlTZXRzIGFzIEVudGl0eVNldFtdLFxuXHRcdHNpbmdsZXRvbnM6IHBhcnNlck91dHB1dC5zY2hlbWEuc2luZ2xldG9ucyBhcyBTaW5nbGV0b25bXSxcblx0XHRlbnRpdHlUeXBlczogcGFyc2VyT3V0cHV0LnNjaGVtYS5lbnRpdHlUeXBlcyBhcyBFbnRpdHlUeXBlW10sXG5cdFx0Y29tcGxleFR5cGVzOiBwYXJzZXJPdXRwdXQuc2NoZW1hLmNvbXBsZXhUeXBlcyBhcyBDb21wbGV4VHlwZVtdLFxuXHRcdHJlZmVyZW5jZXM6IGRlZmF1bHRSZWZlcmVuY2VzLFxuXHRcdGRpYWdub3N0aWNzOiBBTk5PVEFUSU9OX0VSUk9SUy5jb25jYXQoKVxuXHR9O1xuXHRjb252ZXJ0ZWRPdXRwdXQucmVzb2x2ZVBhdGggPSBjcmVhdGVHbG9iYWxSZXNvbHZlKGNvbnZlcnRlZE91dHB1dCBhcyBDb252ZXJ0ZXJPdXRwdXQsIG9iamVjdE1hcCk7XG5cdHJldHVybiBjb252ZXJ0ZWRPdXRwdXQgYXMgQ29udmVydGVyT3V0cHV0O1xufVxuXG5mdW5jdGlvbiByZXZlcnRWYWx1ZVRvR2VuZXJpY1R5cGUocmVmZXJlbmNlczogUmVmZXJlbmNlW10sIHZhbHVlOiBhbnkpOiBFeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcblx0bGV0IHJlc3VsdDogRXhwcmVzc2lvbiB8IHVuZGVmaW5lZDtcblx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdGNvbnN0IHZhbHVlTWF0Y2hlcyA9IHZhbHVlLm1hdGNoKC8oXFx3KylcXC5cXHcrXFwvLiovKTtcblx0XHRpZiAodmFsdWVNYXRjaGVzICYmIHJlZmVyZW5jZXMuZmluZChyZWYgPT4gcmVmLmFsaWFzID09PSB2YWx1ZU1hdGNoZXNbMV0pKSB7XG5cdFx0XHRyZXN1bHQgPSB7XG5cdFx0XHRcdHR5cGU6IFwiRW51bU1lbWJlclwiLFxuXHRcdFx0XHRFbnVtTWVtYmVyOiB2YWx1ZVxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVzdWx0ID0ge1xuXHRcdFx0XHR0eXBlOiBcIlN0cmluZ1wiLFxuXHRcdFx0XHRTdHJpbmc6IHZhbHVlXG5cdFx0XHR9O1xuXHRcdH1cblx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdHJlc3VsdCA9IHtcblx0XHRcdHR5cGU6IFwiQ29sbGVjdGlvblwiLFxuXHRcdFx0Q29sbGVjdGlvbjogdmFsdWUubWFwKGFubm8gPT4gcmV2ZXJ0Q29sbGVjdGlvbkl0ZW1Ub0dlbmVyaWNUeXBlKHJlZmVyZW5jZXMsIGFubm8pKSBhcyBhbnlbXVxuXHRcdH07XG5cdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuXHRcdHJlc3VsdCA9IHtcblx0XHRcdHR5cGU6IFwiQm9vbFwiLFxuXHRcdFx0Qm9vbDogdmFsdWVcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuXHRcdGlmICh2YWx1ZS50b1N0cmluZygpID09PSB2YWx1ZS50b0ZpeGVkKCkpIHtcblx0XHRcdHJlc3VsdCA9IHtcblx0XHRcdFx0dHlwZTogXCJJbnRcIixcblx0XHRcdFx0SW50OiB2YWx1ZVxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVzdWx0ID0ge1xuXHRcdFx0XHR0eXBlOiBcIkRlY2ltYWxcIixcblx0XHRcdFx0RGVjaW1hbDogdmFsdWVcblx0XHRcdH07XG5cdFx0fVxuXHR9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZS5pc0RlY2ltYWwgJiYgdmFsdWUuaXNEZWNpbWFsKCkpIHtcblx0XHRyZXN1bHQgPSB7XG5cdFx0XHR0eXBlOiBcIkRlY2ltYWxcIixcblx0XHRcdERlY2ltYWw6IHZhbHVlLnZhbHVlT2YoKVxuXHRcdH07XG5cdH0gZWxzZSBpZiAodmFsdWUudHlwZSA9PT0gXCJQYXRoXCIpIHtcblx0XHRyZXN1bHQgPSB7XG5cdFx0XHR0eXBlOiBcIlBhdGhcIixcblx0XHRcdFBhdGg6IHZhbHVlLnBhdGhcblx0XHR9O1xuXHR9IGVsc2UgaWYgKHZhbHVlLnR5cGUgPT09IFwiQW5ub3RhdGlvblBhdGhcIikge1xuXHRcdHJlc3VsdCA9IHtcblx0XHRcdHR5cGU6IFwiQW5ub3RhdGlvblBhdGhcIixcblx0XHRcdEFubm90YXRpb25QYXRoOiB2YWx1ZS52YWx1ZVxuXHRcdH07XG5cdH0gZWxzZSBpZiAodmFsdWUudHlwZSA9PT0gXCJQcm9wZXJ0eVBhdGhcIikge1xuXHRcdHJlc3VsdCA9IHtcblx0XHRcdHR5cGU6IFwiUHJvcGVydHlQYXRoXCIsXG5cdFx0XHRQcm9wZXJ0eVBhdGg6IHZhbHVlLnZhbHVlXG5cdFx0fTtcblx0fSBlbHNlIGlmICh2YWx1ZS50eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIikge1xuXHRcdHJlc3VsdCA9IHtcblx0XHRcdHR5cGU6IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiLFxuXHRcdFx0TmF2aWdhdGlvblByb3BlcnR5UGF0aDogdmFsdWUudmFsdWVcblx0XHR9O1xuXHR9IGVsc2UgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgXCIkVHlwZVwiKSkge1xuXHRcdHJlc3VsdCA9IHtcblx0XHRcdHR5cGU6IFwiUmVjb3JkXCIsXG5cdFx0XHRSZWNvcmQ6IHJldmVydENvbGxlY3Rpb25JdGVtVG9HZW5lcmljVHlwZShyZWZlcmVuY2VzLCB2YWx1ZSkgYXMgQW5ub3RhdGlvblJlY29yZFxuXHRcdH07XG5cdH1cblx0cmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gcmV2ZXJ0Q29sbGVjdGlvbkl0ZW1Ub0dlbmVyaWNUeXBlKFxuXHRyZWZlcmVuY2VzOiBSZWZlcmVuY2VbXSxcblx0Y29sbGVjdGlvbkl0ZW06IGFueVxuKTpcblx0fCBBbm5vdGF0aW9uUmVjb3JkXG5cdHwgc3RyaW5nXG5cdHwgUHJvcGVydHlQYXRoRXhwcmVzc2lvblxuXHR8IFBhdGhFeHByZXNzaW9uXG5cdHwgTmF2aWdhdGlvblByb3BlcnR5UGF0aEV4cHJlc3Npb25cblx0fCBBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb25cblx0fCB1bmRlZmluZWQge1xuXHRpZiAodHlwZW9mIGNvbGxlY3Rpb25JdGVtID09PSBcInN0cmluZ1wiKSB7XG5cdFx0cmV0dXJuIGNvbGxlY3Rpb25JdGVtO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBjb2xsZWN0aW9uSXRlbSA9PT0gXCJvYmplY3RcIikge1xuXHRcdGlmIChjb2xsZWN0aW9uSXRlbS5oYXNPd25Qcm9wZXJ0eShcIiRUeXBlXCIpKSB7XG5cdFx0XHQvLyBBbm5vdGF0aW9uIFJlY29yZFxuXHRcdFx0Y29uc3Qgb3V0SXRlbTogQW5ub3RhdGlvblJlY29yZCA9IHtcblx0XHRcdFx0dHlwZTogY29sbGVjdGlvbkl0ZW0uJFR5cGUsXG5cdFx0XHRcdHByb3BlcnR5VmFsdWVzOiBbXSBhcyBhbnlbXVxuXHRcdFx0fTtcblx0XHRcdC8vIENvdWxkIHZhbGlkYXRlIGtleXMgYW5kIHR5cGUgYmFzZWQgb24gJFR5cGVcblx0XHRcdE9iamVjdC5rZXlzKGNvbGxlY3Rpb25JdGVtKS5mb3JFYWNoKGNvbGxlY3Rpb25LZXkgPT4ge1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0Y29sbGVjdGlvbktleSAhPT0gXCIkVHlwZVwiICYmXG5cdFx0XHRcdFx0Y29sbGVjdGlvbktleSAhPT0gXCJ0ZXJtXCIgJiZcblx0XHRcdFx0XHRjb2xsZWN0aW9uS2V5ICE9PSBcIl9fc291cmNlXCIgJiZcblx0XHRcdFx0XHRjb2xsZWN0aW9uS2V5ICE9PSBcInF1YWxpZmllclwiICYmXG5cdFx0XHRcdFx0Y29sbGVjdGlvbktleSAhPT0gXCJBY3Rpb25UYXJnZXRcIiAmJlxuXHRcdFx0XHRcdGNvbGxlY3Rpb25LZXkgIT09IFwiZnVsbHlRdWFsaWZpZWROYW1lXCIgJiZcblx0XHRcdFx0XHRjb2xsZWN0aW9uS2V5ICE9PSBcImFubm90YXRpb25zXCJcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0Y29uc3QgdmFsdWUgPSBjb2xsZWN0aW9uSXRlbVtjb2xsZWN0aW9uS2V5XTtcblx0XHRcdFx0XHRvdXRJdGVtLnByb3BlcnR5VmFsdWVzLnB1c2goe1xuXHRcdFx0XHRcdFx0bmFtZTogY29sbGVjdGlvbktleSxcblx0XHRcdFx0XHRcdHZhbHVlOiByZXZlcnRWYWx1ZVRvR2VuZXJpY1R5cGUocmVmZXJlbmNlcywgdmFsdWUpIGFzIEV4cHJlc3Npb25cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBlbHNlIGlmIChjb2xsZWN0aW9uS2V5ID09PSBcImFubm90YXRpb25zXCIpIHtcblx0XHRcdFx0XHRjb25zdCBhbm5vdGF0aW9ucyA9IGNvbGxlY3Rpb25JdGVtW2NvbGxlY3Rpb25LZXldO1xuXHRcdFx0XHRcdG91dEl0ZW0uYW5ub3RhdGlvbnMgPSBbXTtcblx0XHRcdFx0XHRPYmplY3Qua2V5cyhhbm5vdGF0aW9ucylcblx0XHRcdFx0XHRcdC5maWx0ZXIoa2V5ID0+IGtleSAhPT0gXCJfYW5ub3RhdGlvbnNcIilcblx0XHRcdFx0XHRcdC5mb3JFYWNoKGtleSA9PiB7XG5cdFx0XHRcdFx0XHRcdE9iamVjdC5rZXlzKGFubm90YXRpb25zW2tleV0pLmZvckVhY2godGVybSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgcGFyc2VkQW5ub3RhdGlvbiA9IHJldmVydFRlcm1Ub0dlbmVyaWNUeXBlKHJlZmVyZW5jZXMsIGFubm90YXRpb25zW2tleV1bdGVybV0pO1xuXHRcdFx0XHRcdFx0XHRcdGlmICghcGFyc2VkQW5ub3RhdGlvbi50ZXJtKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCB1bmFsaWFzZWRUZXJtID0gdW5hbGlhcyhyZWZlcmVuY2VzLCBgJHtrZXl9LiR7dGVybX1gKTtcblx0XHRcdFx0XHRcdFx0XHRcdGlmICh1bmFsaWFzZWRUZXJtKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHF1YWxpZmllZFNwbGl0ID0gdW5hbGlhc2VkVGVybS5zcGxpdChcIiNcIik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhcnNlZEFubm90YXRpb24udGVybSA9IHF1YWxpZmllZFNwbGl0WzBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAocXVhbGlmaWVkU3BsaXQubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhcnNlZEFubm90YXRpb24ucXVhbGlmaWVyID0gcXVhbGlmaWVkU3BsaXRbMV07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0b3V0SXRlbS5hbm5vdGF0aW9ucz8ucHVzaChwYXJzZWRBbm5vdGF0aW9uKTtcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gb3V0SXRlbTtcblx0XHR9IGVsc2UgaWYgKGNvbGxlY3Rpb25JdGVtLnR5cGUgPT09IFwiUHJvcGVydHlQYXRoXCIpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHR5cGU6IFwiUHJvcGVydHlQYXRoXCIsXG5cdFx0XHRcdFByb3BlcnR5UGF0aDogY29sbGVjdGlvbkl0ZW0udmFsdWVcblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChjb2xsZWN0aW9uSXRlbS50eXBlID09PSBcIkFubm90YXRpb25QYXRoXCIpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHR5cGU6IFwiQW5ub3RhdGlvblBhdGhcIixcblx0XHRcdFx0QW5ub3RhdGlvblBhdGg6IGNvbGxlY3Rpb25JdGVtLnZhbHVlXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAoY29sbGVjdGlvbkl0ZW0udHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHR5cGU6IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiLFxuXHRcdFx0XHROYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBjb2xsZWN0aW9uSXRlbS52YWx1ZVxuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldmVydFRlcm1Ub0dlbmVyaWNUeXBlKHJlZmVyZW5jZXM6IFJlZmVyZW5jZVtdLCBhbm5vdGF0aW9uOiBBbm5vdGF0aW9uVGVybTxhbnk+KTogRWRtQW5ub3RhdGlvbiB7XG5cdGNvbnN0IGJhc2VBbm5vdGF0aW9uOiBFZG1Bbm5vdGF0aW9uID0ge1xuXHRcdHRlcm06IGFubm90YXRpb24udGVybSxcblx0XHRxdWFsaWZpZXI6IGFubm90YXRpb24ucXVhbGlmaWVyXG5cdH07XG5cdGlmIChBcnJheS5pc0FycmF5KGFubm90YXRpb24pKSB7XG5cdFx0Ly8gQ29sbGVjdGlvblxuXHRcdGlmIChhbm5vdGF0aW9uLmhhc093blByb3BlcnR5KFwiYW5ub3RhdGlvbnNcIikpIHtcblx0XHRcdGJhc2VBbm5vdGF0aW9uLmFubm90YXRpb25zID0gW107XG5cdFx0XHRjb25zdCBjdXJyZW50QW5ub3RhdGlvbnMgPSAoYW5ub3RhdGlvbiBhcyBhbnkpLmFubm90YXRpb25zO1xuXHRcdFx0T2JqZWN0LmtleXMoY3VycmVudEFubm90YXRpb25zKVxuXHRcdFx0XHQuZmlsdGVyKGtleSA9PiBrZXkgIT09IFwiX2Fubm90YXRpb25zXCIpXG5cdFx0XHRcdC5mb3JFYWNoKGtleSA9PiB7XG5cdFx0XHRcdFx0T2JqZWN0LmtleXMoY3VycmVudEFubm90YXRpb25zW2tleV0pLmZvckVhY2godGVybSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBwYXJzZWRBbm5vdGF0aW9uID0gcmV2ZXJ0VGVybVRvR2VuZXJpY1R5cGUocmVmZXJlbmNlcywgY3VycmVudEFubm90YXRpb25zW2tleV1bdGVybV0pO1xuXHRcdFx0XHRcdFx0aWYgKCFwYXJzZWRBbm5vdGF0aW9uLnRlcm0pIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdW5hbGlhc2VkVGVybSA9IHVuYWxpYXMocmVmZXJlbmNlcywgYCR7a2V5fS4ke3Rlcm19YCk7XG5cdFx0XHRcdFx0XHRcdGlmICh1bmFsaWFzZWRUZXJtKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgcXVhbGlmaWVkU3BsaXQgPSB1bmFsaWFzZWRUZXJtLnNwbGl0KFwiI1wiKTtcblx0XHRcdFx0XHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uLnRlcm0gPSBxdWFsaWZpZWRTcGxpdFswXTtcblx0XHRcdFx0XHRcdFx0XHRpZiAocXVhbGlmaWVkU3BsaXQubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbi5xdWFsaWZpZXIgPSBxdWFsaWZpZWRTcGxpdFsxXTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGJhc2VBbm5vdGF0aW9uLmFubm90YXRpb25zPy5wdXNoKHBhcnNlZEFubm90YXRpb24pO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLmJhc2VBbm5vdGF0aW9uLFxuXHRcdFx0Y29sbGVjdGlvbjogYW5ub3RhdGlvbi5tYXAoYW5ubyA9PiByZXZlcnRDb2xsZWN0aW9uSXRlbVRvR2VuZXJpY1R5cGUocmVmZXJlbmNlcywgYW5ubykpIGFzIGFueVtdXG5cdFx0fTtcblx0fSBlbHNlIGlmIChhbm5vdGF0aW9uLmhhc093blByb3BlcnR5KFwiJFR5cGVcIikpIHtcblx0XHRyZXR1cm4geyAuLi5iYXNlQW5ub3RhdGlvbiwgcmVjb3JkOiByZXZlcnRDb2xsZWN0aW9uSXRlbVRvR2VuZXJpY1R5cGUocmVmZXJlbmNlcywgYW5ub3RhdGlvbikgYXMgYW55IH07XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHsgLi4uYmFzZUFubm90YXRpb24sIHZhbHVlOiByZXZlcnRWYWx1ZVRvR2VuZXJpY1R5cGUocmVmZXJlbmNlcywgYW5ub3RhdGlvbikgfTtcblx0fVxufVxuIl19