@sapui5/sap.fe.macros 1.138.0 → 1.140.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 (240) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/Breadcrumbs.js +269 -0
  4. package/src/sap/fe/macros/Breadcrumbs.tsx +243 -0
  5. package/src/sap/fe/macros/CommonHelper.js +2 -2
  6. package/src/sap/fe/macros/CommonHelper.ts +1 -1
  7. package/src/sap/fe/macros/Field.js +85 -58
  8. package/src/sap/fe/macros/Field.ts +104 -60
  9. package/src/sap/fe/macros/FooterContent.js +44 -11
  10. package/src/sap/fe/macros/FooterContent.tsx +48 -9
  11. package/src/sap/fe/macros/FormElement.js +2 -2
  12. package/src/sap/fe/macros/FormElement.ts +1 -2
  13. package/src/sap/fe/macros/MessageButton.js +1 -2
  14. package/src/sap/fe/macros/MessageButton.tsx +0 -1
  15. package/src/sap/fe/macros/MultiValueField.js +17 -6
  16. package/src/sap/fe/macros/MultiValueField.tsx +7 -4
  17. package/src/sap/fe/macros/RichTextEditor.js +30 -5
  18. package/src/sap/fe/macros/RichTextEditor.tsx +34 -6
  19. package/src/sap/fe/macros/Share.js +85 -40
  20. package/src/sap/fe/macros/Share.tsx +42 -1
  21. package/src/sap/fe/macros/Status.js +226 -0
  22. package/src/sap/fe/macros/Status.tsx +192 -0
  23. package/src/sap/fe/macros/ValueHelp.js +4 -29
  24. package/src/sap/fe/macros/ValueHelp.tsx +2 -43
  25. package/src/sap/fe/macros/ai/EasyFillButton.js +10 -4
  26. package/src/sap/fe/macros/ai/EasyFillButton.tsx +8 -1
  27. package/src/sap/fe/macros/ai/EasyFillDialog.js +25 -10
  28. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +32 -23
  29. package/src/sap/fe/macros/ai/EasyFilterBar.js +123 -114
  30. package/src/sap/fe/macros/ai/EasyFilterBar.tsx +140 -124
  31. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +11 -5
  32. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +14 -5
  33. package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
  34. package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
  35. package/src/sap/fe/macros/chart/ChartDelegate.js +4 -4
  36. package/src/sap/fe/macros/chart/ChartDelegate.ts +3 -3
  37. package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
  38. package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
  39. package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
  40. package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
  41. package/src/sap/fe/macros/chart/MdcChartTemplate.js +20 -6
  42. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +16 -8
  43. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +3 -1
  44. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +2 -0
  45. package/src/sap/fe/macros/controls/FieldWrapper.js +9 -3
  46. package/src/sap/fe/macros/controls/FieldWrapper.ts +11 -2
  47. package/src/sap/fe/macros/controls/FilterBar.js +49 -2
  48. package/src/sap/fe/macros/controls/FilterBar.ts +55 -1
  49. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
  50. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
  51. package/src/sap/fe/macros/controls/RequiredFlexBox.js +62 -0
  52. package/src/sap/fe/macros/controls/RequiredFlexBox.tsx +20 -0
  53. package/src/sap/fe/macros/controls/filterbar/VisualFilter.js +21 -11
  54. package/src/sap/fe/macros/controls/filterbar/VisualFilter.ts +25 -11
  55. package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.js +11 -2
  56. package/src/sap/fe/macros/controls/filterbar/VisualFilterContainer.ts +12 -1
  57. package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.js +18 -1
  58. package/src/sap/fe/macros/controls/filterbar/utils/VisualFilterUtils.ts +20 -0
  59. package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
  60. package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
  61. package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
  62. package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
  63. package/src/sap/fe/macros/designtime/Designtime.helper.js +39 -2
  64. package/src/sap/fe/macros/designtime/Designtime.helper.ts +39 -0
  65. package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +15 -4
  66. package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +5 -0
  67. package/src/sap/fe/macros/field/FieldBaseDelegate.js +20 -8
  68. package/src/sap/fe/macros/field/FieldBaseDelegate.ts +34 -9
  69. package/src/sap/fe/macros/field/FieldFormatOptions.js +73 -44
  70. package/src/sap/fe/macros/field/FieldFormatOptions.ts +20 -2
  71. package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
  72. package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
  73. package/src/sap/fe/macros/filter/FilterUtils.js +3 -5
  74. package/src/sap/fe/macros/filter/FilterUtils.ts +2 -4
  75. package/src/sap/fe/macros/filterBar/FilterBar.block.js +8 -2
  76. package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +2 -5
  77. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +8 -8
  78. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +8 -8
  79. package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.js +3 -1
  80. package/src/sap/fe/macros/filterBar/designtime/FilterBar.designtime.ts +2 -0
  81. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +1 -1
  82. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +1 -1
  83. package/src/sap/fe/macros/form/Form.js +1 -4
  84. package/src/sap/fe/macros/form/Form.tsx +0 -3
  85. package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -2
  86. package/src/sap/fe/macros/form/FormContainer.block.js +1 -2
  87. package/src/sap/fe/macros/form/FormContainer.block.ts +0 -1
  88. package/src/sap/fe/macros/form/FormContainer.fragment.xml +40 -0
  89. package/src/sap/fe/macros/form/FormContainerAPI.js +14 -16
  90. package/src/sap/fe/macros/form/FormContainerAPI.ts +13 -15
  91. package/src/sap/fe/macros/form/FormDelegate.js +20 -1
  92. package/src/sap/fe/macros/form/FormDelegate.ts +25 -0
  93. package/src/sap/fe/macros/form/FormHelper.js +1 -2
  94. package/src/sap/fe/macros/form/FormHelper.ts +0 -1
  95. package/src/sap/fe/macros/formatters/TableFormatter.js +10 -1
  96. package/src/sap/fe/macros/formatters/TableFormatter.ts +14 -5
  97. package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
  98. package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
  99. package/src/sap/fe/macros/inlineEdit/InlineEdit.js +15 -3
  100. package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +14 -2
  101. package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
  102. package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
  103. package/src/sap/fe/macros/internal/DataPoint.js +2 -1
  104. package/src/sap/fe/macros/internal/DataPoint.tsx +1 -0
  105. package/src/sap/fe/macros/internal/DataPointFormatOptions.js +11 -2
  106. package/src/sap/fe/macros/internal/DataPointFormatOptions.ts +3 -0
  107. package/src/sap/fe/macros/internal/FilterField.block.js +10 -2
  108. package/src/sap/fe/macros/internal/FilterField.block.ts +11 -1
  109. package/src/sap/fe/macros/internal/field/CheckBoxGroup.fragment.xml +25 -0
  110. package/src/sap/fe/macros/internal/field/DisplayStyle.js +51 -13
  111. package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +53 -6
  112. package/src/sap/fe/macros/internal/field/EditStyle.js +5 -1
  113. package/src/sap/fe/macros/internal/field/EditStyle.tsx +4 -0
  114. package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +9 -2
  115. package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +11 -0
  116. package/src/sap/fe/macros/internal/field/FieldStyles.js +1 -1
  117. package/src/sap/fe/macros/internal/field/FieldStyles.tsx +2 -1
  118. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
  119. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
  120. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
  121. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
  122. package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +2 -1
  123. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +16 -5
  124. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +21 -9
  125. package/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +1 -0
  126. package/src/sap/fe/macros/library.js +1 -1
  127. package/src/sap/fe/macros/mdc/adapter/StateHelper.js +7 -2
  128. package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +7 -3
  129. package/src/sap/fe/macros/messagebundle.properties +42 -32
  130. package/src/sap/fe/macros/messagebundle_ar.properties +12 -4
  131. package/src/sap/fe/macros/messagebundle_bg.properties +11 -3
  132. package/src/sap/fe/macros/messagebundle_ca.properties +15 -7
  133. package/src/sap/fe/macros/messagebundle_cnr.properties +12 -4
  134. package/src/sap/fe/macros/messagebundle_cs.properties +10 -2
  135. package/src/sap/fe/macros/messagebundle_cy.properties +12 -4
  136. package/src/sap/fe/macros/messagebundle_da.properties +11 -3
  137. package/src/sap/fe/macros/messagebundle_de.properties +18 -10
  138. package/src/sap/fe/macros/messagebundle_el.properties +13 -5
  139. package/src/sap/fe/macros/messagebundle_en.properties +16 -8
  140. package/src/sap/fe/macros/messagebundle_en_GB.properties +16 -8
  141. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +16 -8
  142. package/src/sap/fe/macros/messagebundle_es.properties +13 -5
  143. package/src/sap/fe/macros/messagebundle_es_MX.properties +14 -6
  144. package/src/sap/fe/macros/messagebundle_et.properties +13 -5
  145. package/src/sap/fe/macros/messagebundle_fi.properties +14 -6
  146. package/src/sap/fe/macros/messagebundle_fr.properties +14 -6
  147. package/src/sap/fe/macros/messagebundle_fr_CA.properties +15 -7
  148. package/src/sap/fe/macros/messagebundle_hi.properties +11 -3
  149. package/src/sap/fe/macros/messagebundle_hr.properties +11 -3
  150. package/src/sap/fe/macros/messagebundle_hu.properties +10 -2
  151. package/src/sap/fe/macros/messagebundle_id.properties +18 -10
  152. package/src/sap/fe/macros/messagebundle_it.properties +10 -2
  153. package/src/sap/fe/macros/messagebundle_iw.properties +10 -2
  154. package/src/sap/fe/macros/messagebundle_ja.properties +13 -5
  155. package/src/sap/fe/macros/messagebundle_kk.properties +15 -7
  156. package/src/sap/fe/macros/messagebundle_ko.properties +10 -2
  157. package/src/sap/fe/macros/messagebundle_lt.properties +11 -3
  158. package/src/sap/fe/macros/messagebundle_lv.properties +12 -4
  159. package/src/sap/fe/macros/messagebundle_mk.properties +12 -4
  160. package/src/sap/fe/macros/messagebundle_ms.properties +14 -6
  161. package/src/sap/fe/macros/messagebundle_nl.properties +13 -5
  162. package/src/sap/fe/macros/messagebundle_no.properties +12 -4
  163. package/src/sap/fe/macros/messagebundle_pl.properties +12 -4
  164. package/src/sap/fe/macros/messagebundle_pt.properties +13 -5
  165. package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -4
  166. package/src/sap/fe/macros/messagebundle_ro.properties +12 -4
  167. package/src/sap/fe/macros/messagebundle_ru.properties +13 -5
  168. package/src/sap/fe/macros/messagebundle_sh.properties +12 -4
  169. package/src/sap/fe/macros/messagebundle_sk.properties +11 -3
  170. package/src/sap/fe/macros/messagebundle_sl.properties +12 -4
  171. package/src/sap/fe/macros/messagebundle_sr.properties +12 -4
  172. package/src/sap/fe/macros/messagebundle_sv.properties +11 -3
  173. package/src/sap/fe/macros/messagebundle_th.properties +11 -3
  174. package/src/sap/fe/macros/messagebundle_tr.properties +10 -2
  175. package/src/sap/fe/macros/messagebundle_uk.properties +17 -9
  176. package/src/sap/fe/macros/messagebundle_vi.properties +12 -4
  177. package/src/sap/fe/macros/messagebundle_zh_CN.properties +11 -3
  178. package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -4
  179. package/src/sap/fe/macros/messages/MessageButton.js +55 -36
  180. package/src/sap/fe/macros/messages/MessageButton.ts +64 -39
  181. package/src/sap/fe/macros/messages/MessagePopover.js +2 -2
  182. package/src/sap/fe/macros/messages/MessagePopover.ts +4 -4
  183. package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
  184. package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
  185. package/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -2
  186. package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +0 -1
  187. package/src/sap/fe/macros/share/ShareAPI.js +4 -29
  188. package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
  189. package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
  190. package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
  191. package/src/sap/fe/macros/table/Action.js +24 -2
  192. package/src/sap/fe/macros/table/Action.ts +13 -0
  193. package/src/sap/fe/macros/table/ActionGroup.js +24 -2
  194. package/src/sap/fe/macros/table/ActionGroup.ts +13 -0
  195. package/src/sap/fe/macros/table/ActionGroupOverride.js +24 -2
  196. package/src/sap/fe/macros/table/ActionGroupOverride.ts +13 -0
  197. package/src/sap/fe/macros/table/ActionOverride.js +24 -2
  198. package/src/sap/fe/macros/table/ActionOverride.ts +13 -0
  199. package/src/sap/fe/macros/table/ActionsTemplating.js +73 -12
  200. package/src/sap/fe/macros/table/ActionsTemplating.tsx +69 -13
  201. package/src/sap/fe/macros/table/Column.js +3 -3
  202. package/src/sap/fe/macros/table/Column.ts +2 -2
  203. package/src/sap/fe/macros/table/MdcTableTemplate.js +20 -8
  204. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +36 -7
  205. package/src/sap/fe/macros/table/QuickFilterSelector.js +35 -14
  206. package/src/sap/fe/macros/table/QuickFilterSelector.tsx +22 -3
  207. package/src/sap/fe/macros/table/Table.block.js +137 -108
  208. package/src/sap/fe/macros/table/Table.block.tsx +29 -2
  209. package/src/sap/fe/macros/table/TableAPI.js +143 -133
  210. package/src/sap/fe/macros/table/TableAPI.ts +5 -1
  211. package/src/sap/fe/macros/table/TableDefinition.js +4 -2
  212. package/src/sap/fe/macros/table/TableDefinition.ts +3 -1
  213. package/src/sap/fe/macros/table/TableHelper.js +1 -2
  214. package/src/sap/fe/macros/table/TableHelper.ts +0 -1
  215. package/src/sap/fe/macros/table/TableRuntime.js +26 -7
  216. package/src/sap/fe/macros/table/TableRuntime.ts +33 -5
  217. package/src/sap/fe/macros/table/Utils.js +6 -2
  218. package/src/sap/fe/macros/table/Utils.ts +5 -1
  219. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
  220. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
  221. package/src/sap/fe/macros/table/delegates/TableDelegate.js +25 -20
  222. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +25 -24
  223. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
  224. package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
  225. package/src/sap/fe/macros/table/designtime/Table.designtime.js +3 -1
  226. package/src/sap/fe/macros/table/designtime/Table.designtime.ts +2 -0
  227. package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.js +3 -1
  228. package/src/sap/fe/macros/table/massEdit/designtime/MassEdit.designtime.ts +2 -1
  229. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -1
  230. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -0
  231. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +8 -1
  232. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +10 -0
  233. package/src/sap/fe/macros/table/mixin/TableSharing.js +3 -2
  234. package/src/sap/fe/macros/table/mixin/TableSharing.ts +9 -1
  235. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +20 -6
  236. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +36 -14
  237. package/src/sap/fe/macros/visualfilters/VisualFilter.js +95 -7
  238. package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +93 -3
  239. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +16 -5
  240. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +18 -4
@@ -65,7 +65,11 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/DelegateUtil", "sap/fe/
65
65
  $filter: stringFilters[0],
66
66
  $search: filterInfo.search ? CommonUtils.normalizeSearchTerm(filterInfo.search) : undefined
67
67
  });
68
- const value = await countBinding.requestValue();
68
+ const promiseValue = countBinding.requestValue();
69
+ if (params.batchGroupId && params.batchGroupId !== "$auto") {
70
+ oDataModel.submitBatch(params.batchGroupId);
71
+ }
72
+ const value = await promiseValue;
69
73
  countBinding.destroy();
70
74
  listBinding.destroy();
71
75
  return value;
@@ -316,4 +320,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/DelegateUtil", "sap/fe/
316
320
  };
317
321
  return tableUtils;
318
322
  }, false);
319
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRIaWRkZW5GaWx0ZXJzIiwib1RhYmxlIiwiYUZpbHRlcnMiLCJoaWRkZW5GaWx0ZXJzIiwiZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsInBhdGhzIiwiZm9yRWFjaCIsIm1QYXRoIiwib1N2RmlsdGVycyIsIkNvbW1vblV0aWxzIiwiZ2V0RmlsdGVyc0Zyb21Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJjb25jYXQiLCJnZXRFeHRlcm5hbEZpbHRlcnMiLCJ0YWJsZSIsImZpbHRlcnMiLCJxdWlja0ZpbHRlciIsImdldFF1aWNrRmlsdGVyIiwiZ2V0U2VsZWN0ZWRLZXkiLCJnZXRMaXN0QmluZGluZ0ZvckNvdW50IiwicGFnZUJpbmRpbmdDb250ZXh0IiwicGFyYW1zIiwib0RhdGFNb2RlbCIsImdldE1vZGVsIiwidGFibGVBUEkiLCJnZXRQYXJlbnQiLCJmaWx0ZXJJbmZvIiwidGFibGVVdGlscyIsImdldEZpbHRlckluZm8iLCJhZGRpdGlvbmFsRmlsdGVycyIsImdldFAxM25GaWx0ZXJzIiwiYmluZGluZ0luZm8iLCJwYXRoIiwiYmluZGluZ1BhdGgiLCJnZXRSb3dDb2xsZWN0aW9uUGF0aCIsIkZpbHRlciIsImFuZCIsImZpcmVFdmVudCIsImNvbGxlY3Rpb25CaW5kaW5nSW5mbyIsIkNvbGxlY3Rpb25CaW5kaW5nSW5mb0FQSSIsImxpc3RCaW5kaW5nUGF0aCIsInN0YXJ0c1dpdGgiLCJnZXRQYXRoIiwibGlzdEJpbmRpbmciLCJiaW5kTGlzdCIsImdldEJpbmRpbmdDb250ZXh0Iiwic3RyaW5nRmlsdGVycyIsImZldGNoRmlsdGVyIiwiZ2V0Q29udGV4dCIsImNvdW50QmluZGluZyIsImJpbmRQcm9wZXJ0eSIsIiQkZ3JvdXBJZCIsImJhdGNoR3JvdXBJZCIsIiRmaWx0ZXIiLCIkc2VhcmNoIiwic2VhcmNoIiwibm9ybWFsaXplU2VhcmNoVGVybSIsInVuZGVmaW5lZCIsInZhbHVlIiwicmVxdWVzdFZhbHVlIiwiZGVzdHJveSIsImdldENvdW50Rm9ybWF0dGVkIiwiaUNvdW50Iiwib0NvdW50Rm9ybWF0dGVyIiwiTnVtYmVyRm9ybWF0IiwiZ2V0SW50ZWdlckluc3RhbmNlIiwiZ3JvdXBpbmdFbmFibGVkIiwiZm9ybWF0IiwiaWdub3JlUHJvcGVydGllcyIsIm9UYWJsZURlZmluaXRpb24iLCJnZXRUYWJsZURlZmluaXRpb24iLCJhSWdub3JlUHJvcGVydGllcyIsImVuYWJsZUFuYWx5dGljcyIsImVuYWJsZUJhc2ljU2VhcmNoIiwiY29udHJvbCIsInR5cGUiLCJGaWx0ZXJVdGlscyIsImdldEZpbHRlciIsImlnbm9yZWRQcm9wZXJ0aWVzIiwidGFyZ2V0Q29udHJvbCIsIm9Db250cm9sIiwicDEzbk1vZGUiLCJnZXRQMTNuTW9kZSIsInAxM25Qcm9wZXJ0aWVzIiwiaW5jbHVkZXMiLCJpc0EiLCJnZXRFbmhhbmNlZEZldGNoZWRQcm9wZXJ0eUluZm9zIiwiZmlsdGVyIiwicHJvcGVydHkiLCJmaWx0ZXJhYmxlIiwiRGVsZWdhdGVVdGlsIiwiZ2V0Q3VzdG9tRGF0YSIsIm9Db250cm9sUHJvcGVydHkiLCJwcm9wZXJ0aWVzTWV0YWRhdGEiLCJnZXRBbGxGaWx0ZXJJbmZvIiwib0lGaWx0ZXJJbmZvIiwiZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5Iiwib2JqIiwia2V5IiwibGlzdCIsInB1c2giLCJjaGlsZHJlbiIsIk9iamVjdCIsImtleXMiLCJjaGlsZCIsImZpbmRWYWx1ZXMiLCJpc0ZpbHRlckVsaWdpYmxlRm9yT3B0aW1pc3RpY0JhdGNoIiwibWRjVGFibGUiLCJmaWx0ZXJCYXIiLCJmaWx0ZXJzRnJvbVRhYmxlIiwiZmlsdGVyc0NvbmRpdGlvbnMiLCJnZXRDb25kaXRpb25zIiwiZmlsdGVyc0NvbmRpdGlvbnNQYXRocyIsInRhYmxlUm93QmluZGluZ3NJbmZvUGF0aCIsIm1ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGUiLCJmaWx0ZXJzUGF0aHNGcm9tVGFibGUiLCJnZXRGaWx0ZXJzUGF0aHNGcm9tVGFibGUiLCJmaWx0ZXJzUGF0aHNGcm9tRmlsdGVyQmFyIiwiZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhciIsImVkbURhdGVUeXBlcyIsImFsbEZpbHRlcnNQYXRocyIsInBvdGVudGlhbGx5U2Vuc2l0aXZlQW5ub3RhdGlvbiIsImdldE9iamVjdCIsImZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzIiwiZmlsdGVyUGF0aCIsImdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyIsImdldEZpbHRlcnMiLCJmaWx0ZXJSZXN1bHQiLCJsZW5ndGgiLCJpIiwibGVmdCIsInJpZ2h0Iiwid2hlbkJvdW5kIiwiX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyIsInByb21pc2UiLCJvblRhYmxlQm91bmQiLCJvQm91bmRQcm9taXNlSW5mbyIsInJlc29sdmUiLCJmblJlc29sdmUiLCJQcm9taXNlIiwiaXNCb3VuZCIsInVwZGF0ZUZpbHRlcnNGb3JFeHRlcm5hbElEIiwiZW50aXR5VHlwZVBhdGgiLCJjb25kaXRpb24iLCJuZXN0ZWRGaWx0ZXJzIiwiZXh0ZXJuYWxJZFByb3BQYXRoIiwic1BhdGgiLCIkUGF0aCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUluZm8gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9MaXN0UmVwb3J0L0ZpbHRlckJhclwiO1xuaW1wb3J0IERlbGVnYXRlVXRpbCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCB0eXBlIHsgSUZpbHRlckNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB0eXBlIFF1aWNrRmlsdGVyU2VsZWN0b3IgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvUXVpY2tGaWx0ZXJTZWxlY3RvclwiO1xuaW1wb3J0IHR5cGUgVGFibGVBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVGFibGVBUElcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBOdW1iZXJGb3JtYXQgZnJvbSBcInNhcC91aS9jb3JlL2Zvcm1hdC9OdW1iZXJGb3JtYXRcIjtcbmltcG9ydCB0eXBlIE1EQ0NoYXJ0IGZyb20gXCJzYXAvdWkvbWRjL0NoYXJ0XCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBNRENUYWJsZVByb3BlcnR5SW5mbyBhcyBUYWJsZVByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IENvbmRpdGlvbk9iamVjdCB9IGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgRmlsdGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyXCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBDb2xsZWN0aW9uQmluZGluZ0luZm9BUEkgZnJvbSBcIi4uL0NvbGxlY3Rpb25CaW5kaW5nSW5mb1wiO1xuXG50eXBlIEZpbHRlckluZm8gPSB7XG5cdGZpbHRlcnM6IEZpbHRlcltdO1xuXHRzZWFyY2g6IHN0cmluZztcblx0YmluZGluZ1BhdGg6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEludGVybmFsQmluZGluZ0luZm8gPSB7XG5cdHBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXHRmaWx0ZXJzOiBGaWx0ZXJbXTtcblx0c2VhcmNoPzogc3RyaW5nIHwgbnVsbDtcblx0YmluZGluZ1BhdGg/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBnZXRIaWRkZW5GaWx0ZXJzKG9UYWJsZTogQ29udHJvbCk6IEZpbHRlcltdIHtcblx0bGV0IGFGaWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xuXHRjb25zdCBoaWRkZW5GaWx0ZXJzID0gb1RhYmxlLmRhdGEoXCJoaWRkZW5GaWx0ZXJzXCIpO1xuXHRpZiAoaGlkZGVuRmlsdGVycyAmJiBBcnJheS5pc0FycmF5KGhpZGRlbkZpbHRlcnMucGF0aHMpKSB7XG5cdFx0aGlkZGVuRmlsdGVycy5wYXRocy5mb3JFYWNoKGZ1bmN0aW9uIChtUGF0aDogeyBhbm5vdGF0aW9uUGF0aDogc3RyaW5nIH0pIHtcblx0XHRcdGNvbnN0IG9TdkZpbHRlcnMgPSBDb21tb25VdGlscy5nZXRGaWx0ZXJzRnJvbUFubm90YXRpb24ob1RhYmxlLCBtUGF0aC5hbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRhRmlsdGVycyA9IGFGaWx0ZXJzLmNvbmNhdChvU3ZGaWx0ZXJzKTtcblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gYUZpbHRlcnM7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBleHRlcm5hbCBmaWx0ZXJzIGNvbmZpZ3VyZWQgb24gdGhlIHRhYmxlLlxuICogQHBhcmFtIHRhYmxlIFRoZSB0YWJsZVxuICogQHJldHVybnMgIFRoZSBmaWx0ZXJzXG4gKi9cbmZ1bmN0aW9uIGdldEV4dGVybmFsRmlsdGVycyh0YWJsZTogVGFibGUpOiBGaWx0ZXJbXSB7XG5cdGxldCBmaWx0ZXJzOiBGaWx0ZXJbXSA9IGdldEhpZGRlbkZpbHRlcnModGFibGUpO1xuXHRjb25zdCBxdWlja0ZpbHRlciA9IHRhYmxlLmdldFF1aWNrRmlsdGVyKCkgYXMgUXVpY2tGaWx0ZXJTZWxlY3Rvcjtcblx0aWYgKHF1aWNrRmlsdGVyKSB7XG5cdFx0ZmlsdGVycyA9IGZpbHRlcnMuY29uY2F0KENvbW1vblV0aWxzLmdldEZpbHRlcnNGcm9tQW5ub3RhdGlvbih0YWJsZSwgcXVpY2tGaWx0ZXIuZ2V0U2VsZWN0ZWRLZXkoKSkpO1xuXHR9XG5cdHJldHVybiBmaWx0ZXJzO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgY291bnQgb2YgdGhlIE9EYXRhIGxpc3QgYmluZGluZy5cbiAqIEBwYXJhbSB0YWJsZSBUaGUgdGFibGUgdXNlZCB0byBnZXQgdGhlIGluaXRpYWwgT0RhdGEgbGlzdCBiaW5kaW5nXG4gKiBAcGFyYW0gcGFnZUJpbmRpbmdDb250ZXh0IFRoZSBiaW5kaW5nIGNvbnRleHQgb2YgdGhlIHBhZ2VcbiAqIEBwYXJhbSBwYXJhbXMgQ29udGFpbnMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0gcGFyYW1zLmJhdGNoR3JvdXBJZCBUaGUgZ3JvdXBJZCBvZiB0aGUgYmF0Y2ggcmVxdWVzdFxuICogQHBhcmFtIHBhcmFtcy5hZGRpdGlvbmFsRmlsdGVycyBUaGUgYWRkaXRpb25hbCBmaWx0ZXJzIHRvIGFwcGx5IHRvIHRoZSBvcmlnaW5hbCBPRGF0YSBsaXN0IGJpbmRpbmdcbiAqIEByZXR1cm5zIFRoZSBjb3VudFxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMaXN0QmluZGluZ0ZvckNvdW50KFxuXHR0YWJsZTogVGFibGUsXG5cdHBhZ2VCaW5kaW5nQ29udGV4dDogQ29udGV4dCB8IG51bGwgfCB1bmRlZmluZWQsXG5cdHBhcmFtczogeyBiYXRjaEdyb3VwSWQ/OiBzdHJpbmc7IGFkZGl0aW9uYWxGaWx0ZXJzPzogRmlsdGVyW10gfVxuKTogUHJvbWlzZTxudW1iZXI+IHtcblx0Y29uc3Qgb0RhdGFNb2RlbCA9IHRhYmxlLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbDtcblx0Y29uc3QgdGFibGVBUEkgPSB0YWJsZS5nZXRQYXJlbnQoKSBhcyBUYWJsZUFQSTtcblx0Y29uc3QgZmlsdGVySW5mbyA9IHRhYmxlVXRpbHMuZ2V0RmlsdGVySW5mbyh0YWJsZSk7XG5cdGNvbnN0IGZpbHRlcnMgPSAoQXJyYXkuaXNBcnJheShwYXJhbXMuYWRkaXRpb25hbEZpbHRlcnMpID8gcGFyYW1zLmFkZGl0aW9uYWxGaWx0ZXJzIDogW10pXG5cdFx0LmNvbmNhdChmaWx0ZXJJbmZvLmZpbHRlcnMpXG5cdFx0LmNvbmNhdCh0YWJsZVV0aWxzLmdldFAxM25GaWx0ZXJzKHRhYmxlKSk7XG5cdGNvbnN0IGJpbmRpbmdJbmZvID0ge1xuXHRcdHBhdGg6IGZpbHRlckluZm8uYmluZGluZ1BhdGggPyBmaWx0ZXJJbmZvLmJpbmRpbmdQYXRoIDogdGFibGVBUEkuZ2V0Um93Q29sbGVjdGlvblBhdGgoKSxcblx0XHRmaWx0ZXJzOiBuZXcgRmlsdGVyKHtcblx0XHRcdGZpbHRlcnM6IGZpbHRlcnMsXG5cdFx0XHRhbmQ6IHRydWVcblx0XHR9KVxuXHR9O1xuXHR0YWJsZS5nZXRQYXJlbnQoKT8uZmlyZUV2ZW50KFwiYmVmb3JlUmViaW5kVGFibGVcIiwgeyBjb2xsZWN0aW9uQmluZGluZ0luZm86IG5ldyBDb2xsZWN0aW9uQmluZGluZ0luZm9BUEkoYmluZGluZ0luZm8pIH0pO1xuXG5cdC8vIE5lZWQgdG8gcGFzcyBieSBhIHRlbXBvcmFyeSBMaXN0QmluZGluZyBpbiBvcmRlciB0byBnZXQgJGZpbHRlciBxdWVyeSBvcHRpb24gKGFzIHN0cmluZykgdGhhbmtzIHRvIGZldGNoRmlsdGVyIG9mIE9kYXRhTGlzdEJpbmRpbmdcblx0Y29uc3QgbGlzdEJpbmRpbmdQYXRoID1cblx0XHRwYWdlQmluZGluZ0NvbnRleHQgJiYgIWJpbmRpbmdJbmZvLnBhdGguc3RhcnRzV2l0aChcIi9cIikgPyBgJHtwYWdlQmluZGluZ0NvbnRleHQuZ2V0UGF0aCgpfS8ke2JpbmRpbmdJbmZvLnBhdGh9YCA6IGJpbmRpbmdJbmZvLnBhdGg7XG5cdGNvbnN0IGxpc3RCaW5kaW5nID0gb0RhdGFNb2RlbC5iaW5kTGlzdChsaXN0QmluZGluZ1BhdGgsIHRhYmxlLmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCwgW10sIGJpbmRpbmdJbmZvLmZpbHRlcnMpO1xuXHRjb25zdCBzdHJpbmdGaWx0ZXJzOiBzdHJpbmdbXSA9IGF3YWl0IChsaXN0QmluZGluZyBhcyBPRGF0YUxpc3RCaW5kaW5nICYgeyBmZXRjaEZpbHRlcjogRnVuY3Rpb24gfSkuZmV0Y2hGaWx0ZXIoXG5cdFx0bGlzdEJpbmRpbmcuZ2V0Q29udGV4dCgpXG5cdCk7XG5cdGNvbnN0IGNvdW50QmluZGluZyA9IG9EYXRhTW9kZWwuYmluZFByb3BlcnR5KGAke2xpc3RCaW5kaW5nLmdldFBhdGgoKX0vJGNvdW50YCwgbGlzdEJpbmRpbmcuZ2V0Q29udGV4dCgpLCB7XG5cdFx0JCRncm91cElkOiBwYXJhbXMuYmF0Y2hHcm91cElkID8/IFwiJGF1dG9cIixcblx0XHQkZmlsdGVyOiBzdHJpbmdGaWx0ZXJzWzBdLFxuXHRcdCRzZWFyY2g6IGZpbHRlckluZm8uc2VhcmNoID8gQ29tbW9uVXRpbHMubm9ybWFsaXplU2VhcmNoVGVybShmaWx0ZXJJbmZvLnNlYXJjaCkgOiB1bmRlZmluZWRcblx0fSk7XG5cdGNvbnN0IHZhbHVlID0gYXdhaXQgY291bnRCaW5kaW5nLnJlcXVlc3RWYWx1ZSgpO1xuXHRjb3VudEJpbmRpbmcuZGVzdHJveSgpO1xuXHRsaXN0QmluZGluZy5kZXN0cm95KCk7XG5cdHJldHVybiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldENvdW50Rm9ybWF0dGVkKGlDb3VudDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgb0NvdW50Rm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh7IGdyb3VwaW5nRW5hYmxlZDogdHJ1ZSB9KTtcblx0cmV0dXJuIG9Db3VudEZvcm1hdHRlci5mb3JtYXQoaUNvdW50KTtcbn1cbmZ1bmN0aW9uIGdldEZpbHRlckluZm8ob1RhYmxlOiBUYWJsZSwgaWdub3JlUHJvcGVydGllcz86IHN0cmluZ1tdKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB7XG5cdGNvbnN0IG9UYWJsZURlZmluaXRpb24gPSAob1RhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJKS5nZXRUYWJsZURlZmluaXRpb24oKTtcblx0bGV0IGFJZ25vcmVQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IGlnbm9yZVByb3BlcnRpZXMgfHwgW107XG5cblx0aWYgKG9UYWJsZURlZmluaXRpb24uZW5hYmxlQW5hbHl0aWNzKSB7XG5cdFx0aWYgKCFvVGFibGVEZWZpbml0aW9uLmVuYWJsZUJhc2ljU2VhcmNoKSB7XG5cdFx0XHQvLyBTZWFyY2ggaXNuJ3QgYWxsb3cgYXMgYSAkYXBwbHkgdHJhbnNmb3JtYXRpb24gZm9yIHRoaXMgdGFibGVcblx0XHRcdGFJZ25vcmVQcm9wZXJ0aWVzID0gYUlnbm9yZVByb3BlcnRpZXMuY29uY2F0KFtcInNlYXJjaFwiXSk7XG5cdFx0fVxuXHRcdGFJZ25vcmVQcm9wZXJ0aWVzID0gYUlnbm9yZVByb3BlcnRpZXMuY29uY2F0KFtcIiRlZGl0U3RhdGVcIl0pO1xuXHR9IGVsc2UgaWYgKG9UYWJsZURlZmluaXRpb24uY29udHJvbC50eXBlID09PSBcIlRyZWVUYWJsZVwiKSB7XG5cdFx0YUlnbm9yZVByb3BlcnRpZXMgPSBhSWdub3JlUHJvcGVydGllcy5jb25jYXQoW1wiJGVkaXRTdGF0ZVwiXSk7XG5cdH1cblx0cmV0dXJuIEZpbHRlclV0aWxzLmdldEZpbHRlckluZm8ob1RhYmxlLmdldEZpbHRlcigpLCB7XG5cdFx0aWdub3JlZFByb3BlcnRpZXM6IGFJZ25vcmVQcm9wZXJ0aWVzLFxuXHRcdHRhcmdldENvbnRyb2w6IG9UYWJsZVxuXHR9KTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYWxsIGZpbHRlcnMgY29uZmlndXJlZCBpbiB0aGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZyBvZiB0aGUgdGFibGUgb3IgY2hhcnQuXG4gKiBAcGFyYW0gb0NvbnRyb2wgVGFibGUgb3IgQ2hhcnQgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEZpbHRlcnMgY29uZmlndXJlZCBpbiB0aGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZyBvZiB0aGUgdGFibGUgb3IgY2hhcnRcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGdldFAxM25GaWx0ZXJzKG9Db250cm9sOiBUYWJsZSB8IE1EQ0NoYXJ0KTogRmlsdGVyW10ge1xuXHRjb25zdCBwMTNuTW9kZSA9IG9Db250cm9sLmdldFAxM25Nb2RlKCk7XG5cdGxldCBwMTNuUHJvcGVydGllczogVGFibGVQcm9wZXJ0eUluZm9bXSB8IFByb3BlcnR5SW5mb1tdIHwgdW5kZWZpbmVkO1xuXHRpZiAocDEzbk1vZGUgJiYgcDEzbk1vZGUuaW5jbHVkZXMoXCJGaWx0ZXJcIikpIHtcblx0XHRpZiAob0NvbnRyb2wuaXNBPFRhYmxlPihcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdGNvbnN0IHRhYmxlQVBJID0gb0NvbnRyb2wuZ2V0UGFyZW50KCkgYXMgVGFibGVBUEk7XG5cdFx0XHRwMTNuUHJvcGVydGllcyA9IHRhYmxlQVBJLmdldEVuaGFuY2VkRmV0Y2hlZFByb3BlcnR5SW5mb3MoKS5maWx0ZXIoZnVuY3Rpb24gKHByb3BlcnR5KSB7XG5cdFx0XHRcdHJldHVybiBwcm9wZXJ0eT8uZmlsdGVyYWJsZSAhPT0gZmFsc2U7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cDEzblByb3BlcnRpZXMgPSAoRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGE8UHJvcGVydHlJbmZvW10+KG9Db250cm9sLCBcInNhcF9mZV9Db250cm9sRGVsZWdhdGVfcHJvcGVydHlJbmZvTWFwXCIpIHx8IFtdKS5maWx0ZXIoXG5cdFx0XHRcdGZ1bmN0aW9uIChvQ29udHJvbFByb3BlcnR5OiBQcm9wZXJ0eUluZm8pIHtcblx0XHRcdFx0XHRyZXR1cm4gb0NvbnRyb2xQcm9wZXJ0eSAmJiAhKG9Db250cm9sUHJvcGVydHkuZmlsdGVyYWJsZSA9PT0gZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRjb25zdCBmaWx0ZXJJbmZvID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhvQ29udHJvbCBhcyB1bmtub3duIGFzIElGaWx0ZXJDb250cm9sLCB7XG5cdFx0XHRwcm9wZXJ0aWVzTWV0YWRhdGE6IHAxM25Qcm9wZXJ0aWVzIGFzIFByb3BlcnR5SW5mb1tdXG5cdFx0fSk7XG5cdFx0aWYgKGZpbHRlckluZm8gJiYgZmlsdGVySW5mby5maWx0ZXJzKSB7XG5cdFx0XHRyZXR1cm4gZmlsdGVySW5mby5maWx0ZXJzO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldEFsbEZpbHRlckluZm8ob1RhYmxlOiBUYWJsZSwgaWdub3JlUHJvcGVydGllcz86IHN0cmluZ1tdKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB7XG5cdGNvbnN0IG9JRmlsdGVySW5mbyA9IHRhYmxlVXRpbHMuZ2V0RmlsdGVySW5mbyhvVGFibGUsIGlnbm9yZVByb3BlcnRpZXMpO1xuXHRyZXR1cm4ge1xuXHRcdGZpbHRlcnM6IG9JRmlsdGVySW5mby5maWx0ZXJzLmNvbmNhdChnZXRFeHRlcm5hbEZpbHRlcnMob1RhYmxlKSwgdGFibGVVdGlscy5nZXRQMTNuRmlsdGVycyhvVGFibGUpKSxcblx0XHRzZWFyY2g6IG9JRmlsdGVySW5mby5zZWFyY2gsXG5cdFx0YmluZGluZ1BhdGg6IG9JRmlsdGVySW5mby5iaW5kaW5nUGF0aFxuXHR9O1xufVxuXG4vKipcbiAqIEZpbmQgYSB2YWx1ZSBpbiBhbiBvYmplY3QuXG4gKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gbG9vayBpbnRvXG4gKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoXG4gKiBAcGFyYW0gbGlzdCBBbiBhcnJheSB0byByZXR1cm4gaWYgb2JqIGlzIHVuZGVmaW5lZFxuICogQHJldHVybnMgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBrZXlzIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5KG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nLCBsaXN0OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcblx0aWYgKG9ialtrZXldKSB7XG5cdFx0bGlzdC5wdXNoKG9ialtrZXldIGFzIHN0cmluZyk7XG5cdH1cblx0Y29uc3QgY2hpbGRyZW4gPSBPYmplY3Qua2V5cyhvYmopO1xuXHRmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG5cdFx0aWYgKHR5cGVvZiBvYmpbY2hpbGRdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRsaXN0ID0gbGlzdC5jb25jYXQoZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5KG9ialtjaGlsZF0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleSwgW10pKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGxpc3Q7XG59XG5cbi8qKlxuICogRmluZCBhIHZhbHVlIGludG8gYW4gb2JqZWN0LlxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGxvb2sgaW50b1xuICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaFxuICogQHJldHVybnMgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBrZXlzIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gZmluZFZhbHVlcyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcblx0cmV0dXJuIGZpbmRWYWx1ZXNGb3JLZXlSZWN1cnNpdmVseShvYmosIGtleSwgW10pO1xufVxuXG4vKipcbiAqIENoZWNrIGFsbCBmaWx0ZXIgY29uZGl0aW9ucyBmb3IgZGF0ZSB0eXBlcyBvciBzZW5zaXRpdmUgZGF0YS5cbiAqIEBwYXJhbSBtZGNUYWJsZSBUYWJsZSBvciBDaGFydCBpbnN0YW5jZVxuICogQHBhcmFtIGZpbHRlckJhciBGaWx0ZXJCYXJcbiAqIEByZXR1cm5zIFRydWUgaWYgb25lIGZpbHRlciBoYXMgYSBkYXRlIHR5cGUgb3IgYSBzZW5zaXRpdmUgZGF0YVxuICovXG5mdW5jdGlvbiBpc0ZpbHRlckVsaWdpYmxlRm9yT3B0aW1pc3RpY0JhdGNoKG1kY1RhYmxlOiBUYWJsZSwgZmlsdGVyQmFyOiBGaWx0ZXJCYXIgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0aWYgKCFmaWx0ZXJCYXIpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Y29uc3QgZmlsdGVyc0Zyb21UYWJsZSA9IHRhYmxlVXRpbHMuZ2V0QWxsRmlsdGVySW5mbyhtZGNUYWJsZSkgYXMgdW5rbm93biBhcyBGaWx0ZXJJbmZvO1xuXHRjb25zdCBmaWx0ZXJzQ29uZGl0aW9ucyA9IGZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdGNvbnN0IGZpbHRlcnNDb25kaXRpb25zUGF0aHMgPSBPYmplY3Qua2V5cyhmaWx0ZXJzQ29uZGl0aW9ucyk7XG5cdGNvbnN0IHRhYmxlUm93QmluZGluZ3NJbmZvUGF0aCA9IG1kY1RhYmxlLmRhdGEoXCJtZXRhUGF0aFwiKTtcblx0Y29uc3QgbWV0YU1vZGVsID0gbWRjVGFibGUuZ2V0TW9kZWwoKT8uZ2V0TWV0YU1vZGVsKCk7XG5cdGxldCBmaWx0ZXJQcm9wZXJ0aWVzQXNQb3RlbnRpYWxseVNlbnNpdGl2ZURhdGFPckRhdGVUeXBlID0gZmFsc2U7XG5cdGNvbnN0IGZpbHRlcnNQYXRoc0Zyb21UYWJsZSA9IGdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSh0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgsIGZpbHRlcnNGcm9tVGFibGUpO1xuXHRjb25zdCBmaWx0ZXJzUGF0aHNGcm9tRmlsdGVyQmFyID0gZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhcih0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgsIGZpbHRlcnNDb25kaXRpb25zUGF0aHMpO1xuXHRjb25zdCBlZG1EYXRlVHlwZXMgPSBbXCJFZG0uRGF0ZVwiLCBcIkVkbS5EYXRlVGltZU9mZnNldFwiLCBcIkVkbS5UaW1lT2ZEYXlcIl07XG5cdGNvbnN0IGFsbEZpbHRlcnNQYXRocyA9IGZpbHRlcnNQYXRoc0Zyb21GaWx0ZXJCYXIuY29uY2F0KGZpbHRlcnNQYXRoc0Zyb21UYWJsZSk7XG5cdGZvciAoY29uc3QgcG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9uIG9mIGFsbEZpbHRlcnNQYXRocykge1xuXHRcdGlmIChcblx0XHRcdG1ldGFNb2RlbD8uZ2V0T2JqZWN0KGAke3BvdGVudGlhbGx5U2Vuc2l0aXZlQW5ub3RhdGlvbn1AY29tLnNhcC52b2NhYnVsYXJpZXMuUGVyc29uYWxEYXRhLnYxLklzUG90ZW50aWFsbHlTZW5zaXRpdmVgKSB8fFxuXHRcdFx0bWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7cG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9ufUBjb20uc2FwLnZvY2FidWxhcmllcy5QZXJzb25hbERhdGEudjEuSXNQb3RlbnRpYWxseVBlcnNvbmFsYClcblx0XHQpIHtcblx0XHRcdGZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGUgPSB0cnVlO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGlmIChlZG1EYXRlVHlwZXMuaW5jbHVkZXMobWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7cG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9ufS8kVHlwZWApKSkge1xuXHRcdFx0ZmlsdGVyUHJvcGVydGllc0FzUG90ZW50aWFsbHlTZW5zaXRpdmVEYXRhT3JEYXRlVHlwZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGU7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbiBwYXRocyBvZiBhbGwgZmlsdGVycyBvZiB0aGUgRmlsdGVyIEJhci5cbiAqIEBwYXJhbSB0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGggVGhlIHRhYmxlIG1ldGFQYXRoXG4gKiBAcGFyYW0gZmlsdGVyc0NvbmRpdGlvbnNQYXRocyBUaGUgcGF0aHMgb2YgYWxsIGZpbHRlcnMgY29uZGl0aW9uc1xuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcGF0aHMgb2YgYWxsIGZpbHRlcnNcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhcih0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGg6IHN0cmluZywgZmlsdGVyc0NvbmRpdGlvbnNQYXRoczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG5cdGNvbnN0IGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXHRmb3IgKGNvbnN0IGZpbHRlclBhdGggb2YgZmlsdGVyc0NvbmRpdGlvbnNQYXRocykge1xuXHRcdGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzLnB1c2goYCR7dGFibGVSb3dCaW5kaW5nc0luZm9QYXRofS8ke2ZpbHRlclBhdGh9YCk7XG5cdH1cblx0cmV0dXJuIGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBhdGhzIG9mIGFsbCBmaWx0ZXJzIGNvbmRpdGlvbnMuXG4gKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gZ2V0IHRoZSBwYXRoc1xuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcGF0aHMgY29uZGl0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMoZmlsdGVyOiBGaWx0ZXIpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG5cdGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXIuZ2V0RmlsdGVycygpO1xuXHRsZXQgZmlsdGVyUmVzdWx0ID0ge307XG5cdC8vIGZpbmQgYWxsIGZpbHRlcnMgaW4gbXVsdGkgZmlsdGVyc1xuXHRpZiAoZmlsdGVycykge1xuXHRcdGZpbHRlclJlc3VsdCA9IGdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyhmaWx0ZXJzW2ZpbHRlcnMubGVuZ3RoIC0gMV0pO1xuXHRcdGZvciAobGV0IGkgPSBmaWx0ZXJzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRmaWx0ZXJSZXN1bHQgPSB7XG5cdFx0XHRcdGxlZnQ6IGdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyhmaWx0ZXJzW2ldKSxcblx0XHRcdFx0cmlnaHQ6IGZpbHRlclJlc3VsdFxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhdGg6IGZpbHRlci5nZXRQYXRoKClcblx0XHR9O1xuXHR9XG5cdHJldHVybiBmaWx0ZXJSZXN1bHQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbiBwYXRocyBvZiBhbGwgdGFibGUgZmlsdGVycy5cbiAqIEBwYXJhbSB0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGggVGhlIHRhYmxlIG1ldGFQYXRoXG4gKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVycyB0byBjaGVjayBmb3IgcGF0aHNcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHBhdGhzIG9mIGFsbCBmaWx0ZXJzXG4gKi9cbmZ1bmN0aW9uIGdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSh0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGg6IHN0cmluZywgZmlsdGVyczogRmlsdGVySW5mbyk6IHN0cmluZ1tdIHtcblx0bGV0IHBhdGhzOiBzdHJpbmdbXTtcblx0Y29uc3QgZmlsdGVyc0Fubm90YXRpb25zUGF0aHM6IHN0cmluZ1tdID0gW107XG5cdGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMuZmlsdGVycykge1xuXHRcdHBhdGhzID0gZmluZFZhbHVlcyhnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMoZmlsdGVyKSwgXCJwYXRoXCIpO1xuXHRcdGZvciAoY29uc3QgZmlsdGVyUGF0aCBvZiBwYXRocykge1xuXHRcdFx0ZmlsdGVyc0Fubm90YXRpb25zUGF0aHMucHVzaChgJHt0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGh9LyR7ZmlsdGVyUGF0aH1gKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgdGFibGUgaXRzZWxmIHdoZW4gdGhlIHRhYmxlIHdhcyBib3VuZC5cbiAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRvIGNoZWNrIGZvciBiaW5kaW5nXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIHdoZW4gdGFibGUgaXMgYm91bmRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gd2hlbkJvdW5kKG9UYWJsZTogVGFibGUpOiBQcm9taXNlPFRhYmxlPiB7XG5cdHJldHVybiBfZ2V0T3JDcmVhdGVCb3VuZFByb21pc2VJbmZvKG9UYWJsZSkucHJvbWlzZTtcbn1cblxuLyoqXG4gKiBJZiBub3QgeWV0IGhhcHBlbmVkLCBpdCByZXNvbHZlcyB0aGUgdGFibGUgYm91bmQgcHJvbWlzZS5cbiAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRoYXQgd2FzIGJvdW5kXG4gKi9cbmZ1bmN0aW9uIG9uVGFibGVCb3VuZChvVGFibGU6IFRhYmxlKTogdm9pZCB7XG5cdGNvbnN0IG9Cb3VuZFByb21pc2VJbmZvID0gX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyhvVGFibGUpO1xuXHRpZiAob0JvdW5kUHJvbWlzZUluZm8ucmVzb2x2ZSkge1xuXHRcdG9Cb3VuZFByb21pc2VJbmZvLnJlc29sdmUob1RhYmxlKTtcblx0XHRvVGFibGUuZGF0YShcImJvdW5kUHJvbWlzZVJlc29sdmVcIiwgbnVsbCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyhvVGFibGU6IFRhYmxlKTogeyBwcm9taXNlOiBQcm9taXNlPFRhYmxlPjsgcmVzb2x2ZTogRnVuY3Rpb24gfSB7XG5cdGlmICghb1RhYmxlLmRhdGEoXCJib3VuZFByb21pc2VcIikpIHtcblx0XHRsZXQgZm5SZXNvbHZlITogRnVuY3Rpb247XG5cdFx0b1RhYmxlLmRhdGEoXG5cdFx0XHRcImJvdW5kUHJvbWlzZVwiLFxuXHRcdFx0bmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcblx0XHRcdFx0Zm5SZXNvbHZlID0gcmVzb2x2ZTtcblx0XHRcdH0pXG5cdFx0KTtcblx0XHRpZiAoKG9UYWJsZSBhcyB1bmtub3duIGFzIHsgaXNCb3VuZD86ICgpID0+IGJvb2xlYW4gfSkuaXNCb3VuZD8uKCkpIHtcblx0XHRcdGZuUmVzb2x2ZShvVGFibGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvVGFibGUuZGF0YShcImJvdW5kUHJvbWlzZVJlc29sdmVcIiwgZm5SZXNvbHZlKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHsgcHJvbWlzZTogb1RhYmxlLmRhdGEoXCJib3VuZFByb21pc2VcIiksIHJlc29sdmU6IG9UYWJsZS5kYXRhKFwiYm91bmRQcm9taXNlUmVzb2x2ZVwiKSB9O1xufVxuXG5mdW5jdGlvbiB1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRChtZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBmaWx0ZXJzOiBDb25kaXRpb25PYmplY3RbXSwgZW50aXR5VHlwZVBhdGg6IHN0cmluZyk6IHZvaWQge1xuXHRmaWx0ZXJzPy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcblx0XHRjb25zdCBuZXN0ZWRGaWx0ZXJzID0gY29uZGl0aW9uLmdldEZpbHRlcnMoKTtcblxuXHRcdGlmIChuZXN0ZWRGaWx0ZXJzKSB7XG5cdFx0XHR1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRChtZXRhTW9kZWwsIG5lc3RlZEZpbHRlcnMsIGVudGl0eVR5cGVQYXRoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgZXh0ZXJuYWxJZFByb3BQYXRoID0gbWV0YU1vZGVsLmdldE9iamVjdChlbnRpdHlUeXBlUGF0aCArIGNvbmRpdGlvbi5zUGF0aCArIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5FeHRlcm5hbElEXCIpXG5cdFx0XHRcdD8uJFBhdGg7XG5cdFx0XHRpZiAoZXh0ZXJuYWxJZFByb3BQYXRoKSB7XG5cdFx0XHRcdGNvbmRpdGlvbi5zUGF0aCA9IGV4dGVybmFsSWRQcm9wUGF0aDtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xufVxuXG5jb25zdCB0YWJsZVV0aWxzID0ge1xuXHRnZXRDb3VudEZvcm1hdHRlZDogZ2V0Q291bnRGb3JtYXR0ZWQsXG5cdGdldEhpZGRlbkZpbHRlcnM6IGdldEhpZGRlbkZpbHRlcnMsXG5cdGdldExpc3RCaW5kaW5nRm9yQ291bnQ6IGdldExpc3RCaW5kaW5nRm9yQ291bnQsXG5cdGdldEZpbHRlckluZm86IGdldEZpbHRlckluZm8sXG5cdGdldFAxM25GaWx0ZXJzOiBnZXRQMTNuRmlsdGVycyxcblx0Z2V0QWxsRmlsdGVySW5mbzogZ2V0QWxsRmlsdGVySW5mbyxcblx0aXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaDogaXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaCxcblx0d2hlbkJvdW5kOiB3aGVuQm91bmQsXG5cdG9uVGFibGVCb3VuZDogb25UYWJsZUJvdW5kLFxuXHR1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRDogdXBkYXRlRmlsdGVyc0ZvckV4dGVybmFsSURcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHRhYmxlVXRpbHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFrQ0EsU0FBU0EsZ0JBQWdCQSxDQUFDQyxNQUFlLEVBQVk7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
323
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRIaWRkZW5GaWx0ZXJzIiwib1RhYmxlIiwiYUZpbHRlcnMiLCJoaWRkZW5GaWx0ZXJzIiwiZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsInBhdGhzIiwiZm9yRWFjaCIsIm1QYXRoIiwib1N2RmlsdGVycyIsIkNvbW1vblV0aWxzIiwiZ2V0RmlsdGVyc0Zyb21Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJjb25jYXQiLCJnZXRFeHRlcm5hbEZpbHRlcnMiLCJ0YWJsZSIsImZpbHRlcnMiLCJxdWlja0ZpbHRlciIsImdldFF1aWNrRmlsdGVyIiwiZ2V0U2VsZWN0ZWRLZXkiLCJnZXRMaXN0QmluZGluZ0ZvckNvdW50IiwicGFnZUJpbmRpbmdDb250ZXh0IiwicGFyYW1zIiwib0RhdGFNb2RlbCIsImdldE1vZGVsIiwidGFibGVBUEkiLCJnZXRQYXJlbnQiLCJmaWx0ZXJJbmZvIiwidGFibGVVdGlscyIsImdldEZpbHRlckluZm8iLCJhZGRpdGlvbmFsRmlsdGVycyIsImdldFAxM25GaWx0ZXJzIiwiYmluZGluZ0luZm8iLCJwYXRoIiwiYmluZGluZ1BhdGgiLCJnZXRSb3dDb2xsZWN0aW9uUGF0aCIsIkZpbHRlciIsImFuZCIsImZpcmVFdmVudCIsImNvbGxlY3Rpb25CaW5kaW5nSW5mbyIsIkNvbGxlY3Rpb25CaW5kaW5nSW5mb0FQSSIsImxpc3RCaW5kaW5nUGF0aCIsInN0YXJ0c1dpdGgiLCJnZXRQYXRoIiwibGlzdEJpbmRpbmciLCJiaW5kTGlzdCIsImdldEJpbmRpbmdDb250ZXh0Iiwic3RyaW5nRmlsdGVycyIsImZldGNoRmlsdGVyIiwiZ2V0Q29udGV4dCIsImNvdW50QmluZGluZyIsImJpbmRQcm9wZXJ0eSIsIiQkZ3JvdXBJZCIsImJhdGNoR3JvdXBJZCIsIiRmaWx0ZXIiLCIkc2VhcmNoIiwic2VhcmNoIiwibm9ybWFsaXplU2VhcmNoVGVybSIsInVuZGVmaW5lZCIsInByb21pc2VWYWx1ZSIsInJlcXVlc3RWYWx1ZSIsInN1Ym1pdEJhdGNoIiwidmFsdWUiLCJkZXN0cm95IiwiZ2V0Q291bnRGb3JtYXR0ZWQiLCJpQ291bnQiLCJvQ291bnRGb3JtYXR0ZXIiLCJOdW1iZXJGb3JtYXQiLCJnZXRJbnRlZ2VySW5zdGFuY2UiLCJncm91cGluZ0VuYWJsZWQiLCJmb3JtYXQiLCJpZ25vcmVQcm9wZXJ0aWVzIiwib1RhYmxlRGVmaW5pdGlvbiIsImdldFRhYmxlRGVmaW5pdGlvbiIsImFJZ25vcmVQcm9wZXJ0aWVzIiwiZW5hYmxlQW5hbHl0aWNzIiwiZW5hYmxlQmFzaWNTZWFyY2giLCJjb250cm9sIiwidHlwZSIsIkZpbHRlclV0aWxzIiwiZ2V0RmlsdGVyIiwiaWdub3JlZFByb3BlcnRpZXMiLCJ0YXJnZXRDb250cm9sIiwib0NvbnRyb2wiLCJwMTNuTW9kZSIsImdldFAxM25Nb2RlIiwicDEzblByb3BlcnRpZXMiLCJpbmNsdWRlcyIsImlzQSIsImdldEVuaGFuY2VkRmV0Y2hlZFByb3BlcnR5SW5mb3MiLCJmaWx0ZXIiLCJwcm9wZXJ0eSIsImZpbHRlcmFibGUiLCJEZWxlZ2F0ZVV0aWwiLCJnZXRDdXN0b21EYXRhIiwib0NvbnRyb2xQcm9wZXJ0eSIsInByb3BlcnRpZXNNZXRhZGF0YSIsImdldEFsbEZpbHRlckluZm8iLCJvSUZpbHRlckluZm8iLCJmaW5kVmFsdWVzRm9yS2V5UmVjdXJzaXZlbHkiLCJvYmoiLCJrZXkiLCJsaXN0IiwicHVzaCIsImNoaWxkcmVuIiwiT2JqZWN0Iiwia2V5cyIsImNoaWxkIiwiZmluZFZhbHVlcyIsImlzRmlsdGVyRWxpZ2libGVGb3JPcHRpbWlzdGljQmF0Y2giLCJtZGNUYWJsZSIsImZpbHRlckJhciIsImZpbHRlcnNGcm9tVGFibGUiLCJmaWx0ZXJzQ29uZGl0aW9ucyIsImdldENvbmRpdGlvbnMiLCJmaWx0ZXJzQ29uZGl0aW9uc1BhdGhzIiwidGFibGVSb3dCaW5kaW5nc0luZm9QYXRoIiwibWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiZmlsdGVyUHJvcGVydGllc0FzUG90ZW50aWFsbHlTZW5zaXRpdmVEYXRhT3JEYXRlVHlwZSIsImZpbHRlcnNQYXRoc0Zyb21UYWJsZSIsImdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSIsImZpbHRlcnNQYXRoc0Zyb21GaWx0ZXJCYXIiLCJnZXRGaWx0ZXJzUGF0aHNGcm9tRmlsdGVyQmFyIiwiZWRtRGF0ZVR5cGVzIiwiYWxsRmlsdGVyc1BhdGhzIiwicG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9uIiwiZ2V0T2JqZWN0IiwiZmlsdGVyc0Fubm90YXRpb25zUGF0aHMiLCJmaWx0ZXJQYXRoIiwiZ2V0UmVmZXJlbmNlUGF0aHNGb3JGaWx0ZXJzIiwiZ2V0RmlsdGVycyIsImZpbHRlclJlc3VsdCIsImxlbmd0aCIsImkiLCJsZWZ0IiwicmlnaHQiLCJ3aGVuQm91bmQiLCJfZ2V0T3JDcmVhdGVCb3VuZFByb21pc2VJbmZvIiwicHJvbWlzZSIsIm9uVGFibGVCb3VuZCIsIm9Cb3VuZFByb21pc2VJbmZvIiwicmVzb2x2ZSIsImZuUmVzb2x2ZSIsIlByb21pc2UiLCJpc0JvdW5kIiwidXBkYXRlRmlsdGVyc0ZvckV4dGVybmFsSUQiLCJlbnRpdHlUeXBlUGF0aCIsImNvbmRpdGlvbiIsIm5lc3RlZEZpbHRlcnMiLCJleHRlcm5hbElkUHJvcFBhdGgiLCJzUGF0aCIsIiRQYXRoIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IHR5cGUgeyBJRmlsdGVyQ29udHJvbCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgUXVpY2tGaWx0ZXJTZWxlY3RvciBmcm9tIFwic2FwL2ZlL21hY3Jvcy90YWJsZS9RdWlja0ZpbHRlclNlbGVjdG9yXCI7XG5pbXBvcnQgdHlwZSBUYWJsZUFQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy90YWJsZS9UYWJsZUFQSVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IE51bWJlckZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L051bWJlckZvcm1hdFwiO1xuaW1wb3J0IHR5cGUgTURDQ2hhcnQgZnJvbSBcInNhcC91aS9tZGMvQ2hhcnRcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IE1EQ1RhYmxlUHJvcGVydHlJbmZvIGFzIFRhYmxlUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IENvbGxlY3Rpb25CaW5kaW5nSW5mb0FQSSBmcm9tIFwiLi4vQ29sbGVjdGlvbkJpbmRpbmdJbmZvXCI7XG5cbnR5cGUgRmlsdGVySW5mbyA9IHtcblx0ZmlsdGVyczogRmlsdGVyW107XG5cdHNlYXJjaDogc3RyaW5nO1xuXHRiaW5kaW5nUGF0aDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgSW50ZXJuYWxCaW5kaW5nSW5mbyA9IHtcblx0cGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdGZpbHRlcnM6IEZpbHRlcltdO1xuXHRzZWFyY2g/OiBzdHJpbmcgfCBudWxsO1xuXHRiaW5kaW5nUGF0aD86IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIGdldEhpZGRlbkZpbHRlcnMob1RhYmxlOiBDb250cm9sKTogRmlsdGVyW10ge1xuXHRsZXQgYUZpbHRlcnM6IEZpbHRlcltdID0gW107XG5cdGNvbnN0IGhpZGRlbkZpbHRlcnMgPSBvVGFibGUuZGF0YShcImhpZGRlbkZpbHRlcnNcIik7XG5cdGlmIChoaWRkZW5GaWx0ZXJzICYmIEFycmF5LmlzQXJyYXkoaGlkZGVuRmlsdGVycy5wYXRocykpIHtcblx0XHRoaWRkZW5GaWx0ZXJzLnBhdGhzLmZvckVhY2goZnVuY3Rpb24gKG1QYXRoOiB7IGFubm90YXRpb25QYXRoOiBzdHJpbmcgfSkge1xuXHRcdFx0Y29uc3Qgb1N2RmlsdGVycyA9IENvbW1vblV0aWxzLmdldEZpbHRlcnNGcm9tQW5ub3RhdGlvbihvVGFibGUsIG1QYXRoLmFubm90YXRpb25QYXRoKTtcblx0XHRcdGFGaWx0ZXJzID0gYUZpbHRlcnMuY29uY2F0KG9TdkZpbHRlcnMpO1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBhRmlsdGVycztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGV4dGVybmFsIGZpbHRlcnMgY29uZmlndXJlZCBvbiB0aGUgdGFibGUuXG4gKiBAcGFyYW0gdGFibGUgVGhlIHRhYmxlXG4gKiBAcmV0dXJucyAgVGhlIGZpbHRlcnNcbiAqL1xuZnVuY3Rpb24gZ2V0RXh0ZXJuYWxGaWx0ZXJzKHRhYmxlOiBUYWJsZSk6IEZpbHRlcltdIHtcblx0bGV0IGZpbHRlcnM6IEZpbHRlcltdID0gZ2V0SGlkZGVuRmlsdGVycyh0YWJsZSk7XG5cdGNvbnN0IHF1aWNrRmlsdGVyID0gdGFibGUuZ2V0UXVpY2tGaWx0ZXIoKSBhcyBRdWlja0ZpbHRlclNlbGVjdG9yO1xuXHRpZiAocXVpY2tGaWx0ZXIpIHtcblx0XHRmaWx0ZXJzID0gZmlsdGVycy5jb25jYXQoQ29tbW9uVXRpbHMuZ2V0RmlsdGVyc0Zyb21Bbm5vdGF0aW9uKHRhYmxlLCBxdWlja0ZpbHRlci5nZXRTZWxlY3RlZEtleSgpKSk7XG5cdH1cblx0cmV0dXJuIGZpbHRlcnM7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjb3VudCBvZiB0aGUgT0RhdGEgbGlzdCBiaW5kaW5nLlxuICogQHBhcmFtIHRhYmxlIFRoZSB0YWJsZSB1c2VkIHRvIGdldCB0aGUgaW5pdGlhbCBPRGF0YSBsaXN0IGJpbmRpbmdcbiAqIEBwYXJhbSBwYWdlQmluZGluZ0NvbnRleHQgVGhlIGJpbmRpbmcgY29udGV4dCBvZiB0aGUgcGFnZVxuICogQHBhcmFtIHBhcmFtcyBDb250YWlucyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBwYXJhbXMuYmF0Y2hHcm91cElkIFRoZSBncm91cElkIG9mIHRoZSBiYXRjaCByZXF1ZXN0XG4gKiBAcGFyYW0gcGFyYW1zLmFkZGl0aW9uYWxGaWx0ZXJzIFRoZSBhZGRpdGlvbmFsIGZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIG9yaWdpbmFsIE9EYXRhIGxpc3QgYmluZGluZ1xuICogQHJldHVybnMgVGhlIGNvdW50XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldExpc3RCaW5kaW5nRm9yQ291bnQoXG5cdHRhYmxlOiBUYWJsZSxcblx0cGFnZUJpbmRpbmdDb250ZXh0OiBDb250ZXh0IHwgbnVsbCB8IHVuZGVmaW5lZCxcblx0cGFyYW1zOiB7IGJhdGNoR3JvdXBJZD86IHN0cmluZzsgYWRkaXRpb25hbEZpbHRlcnM/OiBGaWx0ZXJbXSB9XG4pOiBQcm9taXNlPG51bWJlcj4ge1xuXHRjb25zdCBvRGF0YU1vZGVsID0gdGFibGUuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRjb25zdCB0YWJsZUFQSSA9IHRhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJO1xuXHRjb25zdCBmaWx0ZXJJbmZvID0gdGFibGVVdGlscy5nZXRGaWx0ZXJJbmZvKHRhYmxlKTtcblx0Y29uc3QgZmlsdGVycyA9IChBcnJheS5pc0FycmF5KHBhcmFtcy5hZGRpdGlvbmFsRmlsdGVycykgPyBwYXJhbXMuYWRkaXRpb25hbEZpbHRlcnMgOiBbXSlcblx0XHQuY29uY2F0KGZpbHRlckluZm8uZmlsdGVycylcblx0XHQuY29uY2F0KHRhYmxlVXRpbHMuZ2V0UDEzbkZpbHRlcnModGFibGUpKTtcblx0Y29uc3QgYmluZGluZ0luZm8gPSB7XG5cdFx0cGF0aDogZmlsdGVySW5mby5iaW5kaW5nUGF0aCA/IGZpbHRlckluZm8uYmluZGluZ1BhdGggOiB0YWJsZUFQSS5nZXRSb3dDb2xsZWN0aW9uUGF0aCgpLFxuXHRcdGZpbHRlcnM6IG5ldyBGaWx0ZXIoe1xuXHRcdFx0ZmlsdGVyczogZmlsdGVycyxcblx0XHRcdGFuZDogdHJ1ZVxuXHRcdH0pXG5cdH07XG5cdHRhYmxlLmdldFBhcmVudCgpPy5maXJlRXZlbnQoXCJiZWZvcmVSZWJpbmRUYWJsZVwiLCB7IGNvbGxlY3Rpb25CaW5kaW5nSW5mbzogbmV3IENvbGxlY3Rpb25CaW5kaW5nSW5mb0FQSShiaW5kaW5nSW5mbykgfSk7XG5cblx0Ly8gTmVlZCB0byBwYXNzIGJ5IGEgdGVtcG9yYXJ5IExpc3RCaW5kaW5nIGluIG9yZGVyIHRvIGdldCAkZmlsdGVyIHF1ZXJ5IG9wdGlvbiAoYXMgc3RyaW5nKSB0aGFua3MgdG8gZmV0Y2hGaWx0ZXIgb2YgT2RhdGFMaXN0QmluZGluZ1xuXHRjb25zdCBsaXN0QmluZGluZ1BhdGggPVxuXHRcdHBhZ2VCaW5kaW5nQ29udGV4dCAmJiAhYmluZGluZ0luZm8ucGF0aC5zdGFydHNXaXRoKFwiL1wiKSA/IGAke3BhZ2VCaW5kaW5nQ29udGV4dC5nZXRQYXRoKCl9LyR7YmluZGluZ0luZm8ucGF0aH1gIDogYmluZGluZ0luZm8ucGF0aDtcblx0Y29uc3QgbGlzdEJpbmRpbmcgPSBvRGF0YU1vZGVsLmJpbmRMaXN0KGxpc3RCaW5kaW5nUGF0aCwgdGFibGUuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0LCBbXSwgYmluZGluZ0luZm8uZmlsdGVycyk7XG5cdGNvbnN0IHN0cmluZ0ZpbHRlcnM6IHN0cmluZ1tdID0gYXdhaXQgKGxpc3RCaW5kaW5nIGFzIE9EYXRhTGlzdEJpbmRpbmcgJiB7IGZldGNoRmlsdGVyOiBGdW5jdGlvbiB9KS5mZXRjaEZpbHRlcihcblx0XHRsaXN0QmluZGluZy5nZXRDb250ZXh0KClcblx0KTtcblx0Y29uc3QgY291bnRCaW5kaW5nID0gb0RhdGFNb2RlbC5iaW5kUHJvcGVydHkoYCR7bGlzdEJpbmRpbmcuZ2V0UGF0aCgpfS8kY291bnRgLCBsaXN0QmluZGluZy5nZXRDb250ZXh0KCksIHtcblx0XHQkJGdyb3VwSWQ6IHBhcmFtcy5iYXRjaEdyb3VwSWQgPz8gXCIkYXV0b1wiLFxuXHRcdCRmaWx0ZXI6IHN0cmluZ0ZpbHRlcnNbMF0sXG5cdFx0JHNlYXJjaDogZmlsdGVySW5mby5zZWFyY2ggPyBDb21tb25VdGlscy5ub3JtYWxpemVTZWFyY2hUZXJtKGZpbHRlckluZm8uc2VhcmNoKSA6IHVuZGVmaW5lZFxuXHR9KTtcblx0Y29uc3QgcHJvbWlzZVZhbHVlID0gY291bnRCaW5kaW5nLnJlcXVlc3RWYWx1ZSgpO1xuXHRpZiAocGFyYW1zLmJhdGNoR3JvdXBJZCAmJiBwYXJhbXMuYmF0Y2hHcm91cElkICE9PSBcIiRhdXRvXCIpIHtcblx0XHRvRGF0YU1vZGVsLnN1Ym1pdEJhdGNoKHBhcmFtcy5iYXRjaEdyb3VwSWQpO1xuXHR9XG5cdGNvbnN0IHZhbHVlID0gYXdhaXQgcHJvbWlzZVZhbHVlO1xuXHRjb3VudEJpbmRpbmcuZGVzdHJveSgpO1xuXHRsaXN0QmluZGluZy5kZXN0cm95KCk7XG5cdHJldHVybiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldENvdW50Rm9ybWF0dGVkKGlDb3VudDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgb0NvdW50Rm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh7IGdyb3VwaW5nRW5hYmxlZDogdHJ1ZSB9KTtcblx0cmV0dXJuIG9Db3VudEZvcm1hdHRlci5mb3JtYXQoaUNvdW50KTtcbn1cbmZ1bmN0aW9uIGdldEZpbHRlckluZm8ob1RhYmxlOiBUYWJsZSwgaWdub3JlUHJvcGVydGllcz86IHN0cmluZ1tdKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB7XG5cdGNvbnN0IG9UYWJsZURlZmluaXRpb24gPSAob1RhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJKS5nZXRUYWJsZURlZmluaXRpb24oKTtcblx0bGV0IGFJZ25vcmVQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IGlnbm9yZVByb3BlcnRpZXMgfHwgW107XG5cblx0aWYgKG9UYWJsZURlZmluaXRpb24uZW5hYmxlQW5hbHl0aWNzKSB7XG5cdFx0aWYgKCFvVGFibGVEZWZpbml0aW9uLmVuYWJsZUJhc2ljU2VhcmNoKSB7XG5cdFx0XHQvLyBTZWFyY2ggaXNuJ3QgYWxsb3cgYXMgYSAkYXBwbHkgdHJhbnNmb3JtYXRpb24gZm9yIHRoaXMgdGFibGVcblx0XHRcdGFJZ25vcmVQcm9wZXJ0aWVzID0gYUlnbm9yZVByb3BlcnRpZXMuY29uY2F0KFtcInNlYXJjaFwiXSk7XG5cdFx0fVxuXHRcdGFJZ25vcmVQcm9wZXJ0aWVzID0gYUlnbm9yZVByb3BlcnRpZXMuY29uY2F0KFtcIiRlZGl0U3RhdGVcIl0pO1xuXHR9IGVsc2UgaWYgKG9UYWJsZURlZmluaXRpb24uY29udHJvbC50eXBlID09PSBcIlRyZWVUYWJsZVwiKSB7XG5cdFx0YUlnbm9yZVByb3BlcnRpZXMgPSBhSWdub3JlUHJvcGVydGllcy5jb25jYXQoW1wiJGVkaXRTdGF0ZVwiXSk7XG5cdH1cblx0cmV0dXJuIEZpbHRlclV0aWxzLmdldEZpbHRlckluZm8ob1RhYmxlLmdldEZpbHRlcigpLCB7XG5cdFx0aWdub3JlZFByb3BlcnRpZXM6IGFJZ25vcmVQcm9wZXJ0aWVzLFxuXHRcdHRhcmdldENvbnRyb2w6IG9UYWJsZVxuXHR9KTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYWxsIGZpbHRlcnMgY29uZmlndXJlZCBpbiB0aGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZyBvZiB0aGUgdGFibGUgb3IgY2hhcnQuXG4gKiBAcGFyYW0gb0NvbnRyb2wgVGFibGUgb3IgQ2hhcnQgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEZpbHRlcnMgY29uZmlndXJlZCBpbiB0aGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZyBvZiB0aGUgdGFibGUgb3IgY2hhcnRcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGdldFAxM25GaWx0ZXJzKG9Db250cm9sOiBUYWJsZSB8IE1EQ0NoYXJ0KTogRmlsdGVyW10ge1xuXHRjb25zdCBwMTNuTW9kZSA9IG9Db250cm9sLmdldFAxM25Nb2RlKCk7XG5cdGxldCBwMTNuUHJvcGVydGllczogVGFibGVQcm9wZXJ0eUluZm9bXSB8IFByb3BlcnR5SW5mb1tdIHwgdW5kZWZpbmVkO1xuXHRpZiAocDEzbk1vZGUgJiYgcDEzbk1vZGUuaW5jbHVkZXMoXCJGaWx0ZXJcIikpIHtcblx0XHRpZiAob0NvbnRyb2wuaXNBPFRhYmxlPihcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdGNvbnN0IHRhYmxlQVBJID0gb0NvbnRyb2wuZ2V0UGFyZW50KCkgYXMgVGFibGVBUEk7XG5cdFx0XHRwMTNuUHJvcGVydGllcyA9IHRhYmxlQVBJLmdldEVuaGFuY2VkRmV0Y2hlZFByb3BlcnR5SW5mb3MoKS5maWx0ZXIoZnVuY3Rpb24gKHByb3BlcnR5KSB7XG5cdFx0XHRcdHJldHVybiBwcm9wZXJ0eT8uZmlsdGVyYWJsZSAhPT0gZmFsc2U7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cDEzblByb3BlcnRpZXMgPSAoRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGE8UHJvcGVydHlJbmZvW10+KG9Db250cm9sLCBcInNhcF9mZV9Db250cm9sRGVsZWdhdGVfcHJvcGVydHlJbmZvTWFwXCIpIHx8IFtdKS5maWx0ZXIoXG5cdFx0XHRcdGZ1bmN0aW9uIChvQ29udHJvbFByb3BlcnR5OiBQcm9wZXJ0eUluZm8pIHtcblx0XHRcdFx0XHRyZXR1cm4gb0NvbnRyb2xQcm9wZXJ0eSAmJiAhKG9Db250cm9sUHJvcGVydHkuZmlsdGVyYWJsZSA9PT0gZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRjb25zdCBmaWx0ZXJJbmZvID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhvQ29udHJvbCBhcyB1bmtub3duIGFzIElGaWx0ZXJDb250cm9sLCB7XG5cdFx0XHRwcm9wZXJ0aWVzTWV0YWRhdGE6IHAxM25Qcm9wZXJ0aWVzIGFzIFByb3BlcnR5SW5mb1tdXG5cdFx0fSk7XG5cdFx0aWYgKGZpbHRlckluZm8gJiYgZmlsdGVySW5mby5maWx0ZXJzKSB7XG5cdFx0XHRyZXR1cm4gZmlsdGVySW5mby5maWx0ZXJzO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldEFsbEZpbHRlckluZm8ob1RhYmxlOiBUYWJsZSwgaWdub3JlUHJvcGVydGllcz86IHN0cmluZ1tdKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB7XG5cdGNvbnN0IG9JRmlsdGVySW5mbyA9IHRhYmxlVXRpbHMuZ2V0RmlsdGVySW5mbyhvVGFibGUsIGlnbm9yZVByb3BlcnRpZXMpO1xuXHRyZXR1cm4ge1xuXHRcdGZpbHRlcnM6IG9JRmlsdGVySW5mby5maWx0ZXJzLmNvbmNhdChnZXRFeHRlcm5hbEZpbHRlcnMob1RhYmxlKSwgdGFibGVVdGlscy5nZXRQMTNuRmlsdGVycyhvVGFibGUpKSxcblx0XHRzZWFyY2g6IG9JRmlsdGVySW5mby5zZWFyY2gsXG5cdFx0YmluZGluZ1BhdGg6IG9JRmlsdGVySW5mby5iaW5kaW5nUGF0aFxuXHR9O1xufVxuXG4vKipcbiAqIEZpbmQgYSB2YWx1ZSBpbiBhbiBvYmplY3QuXG4gKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gbG9vayBpbnRvXG4gKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoXG4gKiBAcGFyYW0gbGlzdCBBbiBhcnJheSB0byByZXR1cm4gaWYgb2JqIGlzIHVuZGVmaW5lZFxuICogQHJldHVybnMgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBrZXlzIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5KG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nLCBsaXN0OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcblx0aWYgKG9ialtrZXldKSB7XG5cdFx0bGlzdC5wdXNoKG9ialtrZXldIGFzIHN0cmluZyk7XG5cdH1cblx0Y29uc3QgY2hpbGRyZW4gPSBPYmplY3Qua2V5cyhvYmopO1xuXHRmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG5cdFx0aWYgKHR5cGVvZiBvYmpbY2hpbGRdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRsaXN0ID0gbGlzdC5jb25jYXQoZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5KG9ialtjaGlsZF0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleSwgW10pKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGxpc3Q7XG59XG5cbi8qKlxuICogRmluZCBhIHZhbHVlIGludG8gYW4gb2JqZWN0LlxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGxvb2sgaW50b1xuICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaFxuICogQHJldHVybnMgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBrZXlzIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gZmluZFZhbHVlcyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcblx0cmV0dXJuIGZpbmRWYWx1ZXNGb3JLZXlSZWN1cnNpdmVseShvYmosIGtleSwgW10pO1xufVxuXG4vKipcbiAqIENoZWNrIGFsbCBmaWx0ZXIgY29uZGl0aW9ucyBmb3IgZGF0ZSB0eXBlcyBvciBzZW5zaXRpdmUgZGF0YS5cbiAqIEBwYXJhbSBtZGNUYWJsZSBUYWJsZSBvciBDaGFydCBpbnN0YW5jZVxuICogQHBhcmFtIGZpbHRlckJhciBGaWx0ZXJCYXJcbiAqIEByZXR1cm5zIFRydWUgaWYgb25lIGZpbHRlciBoYXMgYSBkYXRlIHR5cGUgb3IgYSBzZW5zaXRpdmUgZGF0YVxuICovXG5mdW5jdGlvbiBpc0ZpbHRlckVsaWdpYmxlRm9yT3B0aW1pc3RpY0JhdGNoKG1kY1RhYmxlOiBUYWJsZSwgZmlsdGVyQmFyOiBGaWx0ZXJCYXIgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0aWYgKCFmaWx0ZXJCYXIpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Y29uc3QgZmlsdGVyc0Zyb21UYWJsZSA9IHRhYmxlVXRpbHMuZ2V0QWxsRmlsdGVySW5mbyhtZGNUYWJsZSkgYXMgdW5rbm93biBhcyBGaWx0ZXJJbmZvO1xuXHRjb25zdCBmaWx0ZXJzQ29uZGl0aW9ucyA9IGZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdGNvbnN0IGZpbHRlcnNDb25kaXRpb25zUGF0aHMgPSBPYmplY3Qua2V5cyhmaWx0ZXJzQ29uZGl0aW9ucyk7XG5cdGNvbnN0IHRhYmxlUm93QmluZGluZ3NJbmZvUGF0aCA9IG1kY1RhYmxlLmRhdGEoXCJtZXRhUGF0aFwiKTtcblx0Y29uc3QgbWV0YU1vZGVsID0gbWRjVGFibGUuZ2V0TW9kZWwoKT8uZ2V0TWV0YU1vZGVsKCk7XG5cdGxldCBmaWx0ZXJQcm9wZXJ0aWVzQXNQb3RlbnRpYWxseVNlbnNpdGl2ZURhdGFPckRhdGVUeXBlID0gZmFsc2U7XG5cdGNvbnN0IGZpbHRlcnNQYXRoc0Zyb21UYWJsZSA9IGdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSh0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgsIGZpbHRlcnNGcm9tVGFibGUpO1xuXHRjb25zdCBmaWx0ZXJzUGF0aHNGcm9tRmlsdGVyQmFyID0gZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhcih0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgsIGZpbHRlcnNDb25kaXRpb25zUGF0aHMpO1xuXHRjb25zdCBlZG1EYXRlVHlwZXMgPSBbXCJFZG0uRGF0ZVwiLCBcIkVkbS5EYXRlVGltZU9mZnNldFwiLCBcIkVkbS5UaW1lT2ZEYXlcIl07XG5cdGNvbnN0IGFsbEZpbHRlcnNQYXRocyA9IGZpbHRlcnNQYXRoc0Zyb21GaWx0ZXJCYXIuY29uY2F0KGZpbHRlcnNQYXRoc0Zyb21UYWJsZSk7XG5cdGZvciAoY29uc3QgcG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9uIG9mIGFsbEZpbHRlcnNQYXRocykge1xuXHRcdGlmIChcblx0XHRcdG1ldGFNb2RlbD8uZ2V0T2JqZWN0KGAke3BvdGVudGlhbGx5U2Vuc2l0aXZlQW5ub3RhdGlvbn1AY29tLnNhcC52b2NhYnVsYXJpZXMuUGVyc29uYWxEYXRhLnYxLklzUG90ZW50aWFsbHlTZW5zaXRpdmVgKSB8fFxuXHRcdFx0bWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7cG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9ufUBjb20uc2FwLnZvY2FidWxhcmllcy5QZXJzb25hbERhdGEudjEuSXNQb3RlbnRpYWxseVBlcnNvbmFsYClcblx0XHQpIHtcblx0XHRcdGZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGUgPSB0cnVlO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGlmIChlZG1EYXRlVHlwZXMuaW5jbHVkZXMobWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7cG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9ufS8kVHlwZWApKSkge1xuXHRcdFx0ZmlsdGVyUHJvcGVydGllc0FzUG90ZW50aWFsbHlTZW5zaXRpdmVEYXRhT3JEYXRlVHlwZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGU7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbiBwYXRocyBvZiBhbGwgZmlsdGVycyBvZiB0aGUgRmlsdGVyIEJhci5cbiAqIEBwYXJhbSB0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGggVGhlIHRhYmxlIG1ldGFQYXRoXG4gKiBAcGFyYW0gZmlsdGVyc0NvbmRpdGlvbnNQYXRocyBUaGUgcGF0aHMgb2YgYWxsIGZpbHRlcnMgY29uZGl0aW9uc1xuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcGF0aHMgb2YgYWxsIGZpbHRlcnNcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhcih0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGg6IHN0cmluZywgZmlsdGVyc0NvbmRpdGlvbnNQYXRoczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG5cdGNvbnN0IGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXHRmb3IgKGNvbnN0IGZpbHRlclBhdGggb2YgZmlsdGVyc0NvbmRpdGlvbnNQYXRocykge1xuXHRcdGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzLnB1c2goYCR7dGFibGVSb3dCaW5kaW5nc0luZm9QYXRofS8ke2ZpbHRlclBhdGh9YCk7XG5cdH1cblx0cmV0dXJuIGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBhdGhzIG9mIGFsbCBmaWx0ZXJzIGNvbmRpdGlvbnMuXG4gKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gZ2V0IHRoZSBwYXRoc1xuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcGF0aHMgY29uZGl0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMoZmlsdGVyOiBGaWx0ZXIpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG5cdGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXIuZ2V0RmlsdGVycygpO1xuXHRsZXQgZmlsdGVyUmVzdWx0ID0ge307XG5cdC8vIGZpbmQgYWxsIGZpbHRlcnMgaW4gbXVsdGkgZmlsdGVyc1xuXHRpZiAoZmlsdGVycykge1xuXHRcdGZpbHRlclJlc3VsdCA9IGdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyhmaWx0ZXJzW2ZpbHRlcnMubGVuZ3RoIC0gMV0pO1xuXHRcdGZvciAobGV0IGkgPSBmaWx0ZXJzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRmaWx0ZXJSZXN1bHQgPSB7XG5cdFx0XHRcdGxlZnQ6IGdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyhmaWx0ZXJzW2ldKSxcblx0XHRcdFx0cmlnaHQ6IGZpbHRlclJlc3VsdFxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhdGg6IGZpbHRlci5nZXRQYXRoKClcblx0XHR9O1xuXHR9XG5cdHJldHVybiBmaWx0ZXJSZXN1bHQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbiBwYXRocyBvZiBhbGwgdGFibGUgZmlsdGVycy5cbiAqIEBwYXJhbSB0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGggVGhlIHRhYmxlIG1ldGFQYXRoXG4gKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVycyB0byBjaGVjayBmb3IgcGF0aHNcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHBhdGhzIG9mIGFsbCBmaWx0ZXJzXG4gKi9cbmZ1bmN0aW9uIGdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSh0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGg6IHN0cmluZywgZmlsdGVyczogRmlsdGVySW5mbyk6IHN0cmluZ1tdIHtcblx0bGV0IHBhdGhzOiBzdHJpbmdbXTtcblx0Y29uc3QgZmlsdGVyc0Fubm90YXRpb25zUGF0aHM6IHN0cmluZ1tdID0gW107XG5cdGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMuZmlsdGVycykge1xuXHRcdHBhdGhzID0gZmluZFZhbHVlcyhnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMoZmlsdGVyKSwgXCJwYXRoXCIpO1xuXHRcdGZvciAoY29uc3QgZmlsdGVyUGF0aCBvZiBwYXRocykge1xuXHRcdFx0ZmlsdGVyc0Fubm90YXRpb25zUGF0aHMucHVzaChgJHt0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGh9LyR7ZmlsdGVyUGF0aH1gKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgdGFibGUgaXRzZWxmIHdoZW4gdGhlIHRhYmxlIHdhcyBib3VuZC5cbiAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRvIGNoZWNrIGZvciBiaW5kaW5nXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIHdoZW4gdGFibGUgaXMgYm91bmRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gd2hlbkJvdW5kKG9UYWJsZTogVGFibGUpOiBQcm9taXNlPFRhYmxlPiB7XG5cdHJldHVybiBfZ2V0T3JDcmVhdGVCb3VuZFByb21pc2VJbmZvKG9UYWJsZSkucHJvbWlzZTtcbn1cblxuLyoqXG4gKiBJZiBub3QgeWV0IGhhcHBlbmVkLCBpdCByZXNvbHZlcyB0aGUgdGFibGUgYm91bmQgcHJvbWlzZS5cbiAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRoYXQgd2FzIGJvdW5kXG4gKi9cbmZ1bmN0aW9uIG9uVGFibGVCb3VuZChvVGFibGU6IFRhYmxlKTogdm9pZCB7XG5cdGNvbnN0IG9Cb3VuZFByb21pc2VJbmZvID0gX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyhvVGFibGUpO1xuXHRpZiAob0JvdW5kUHJvbWlzZUluZm8ucmVzb2x2ZSkge1xuXHRcdG9Cb3VuZFByb21pc2VJbmZvLnJlc29sdmUob1RhYmxlKTtcblx0XHRvVGFibGUuZGF0YShcImJvdW5kUHJvbWlzZVJlc29sdmVcIiwgbnVsbCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyhvVGFibGU6IFRhYmxlKTogeyBwcm9taXNlOiBQcm9taXNlPFRhYmxlPjsgcmVzb2x2ZTogRnVuY3Rpb24gfSB7XG5cdGlmICghb1RhYmxlLmRhdGEoXCJib3VuZFByb21pc2VcIikpIHtcblx0XHRsZXQgZm5SZXNvbHZlITogRnVuY3Rpb247XG5cdFx0b1RhYmxlLmRhdGEoXG5cdFx0XHRcImJvdW5kUHJvbWlzZVwiLFxuXHRcdFx0bmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcblx0XHRcdFx0Zm5SZXNvbHZlID0gcmVzb2x2ZTtcblx0XHRcdH0pXG5cdFx0KTtcblx0XHRpZiAoKG9UYWJsZSBhcyB1bmtub3duIGFzIHsgaXNCb3VuZD86ICgpID0+IGJvb2xlYW4gfSkuaXNCb3VuZD8uKCkpIHtcblx0XHRcdGZuUmVzb2x2ZShvVGFibGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvVGFibGUuZGF0YShcImJvdW5kUHJvbWlzZVJlc29sdmVcIiwgZm5SZXNvbHZlKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHsgcHJvbWlzZTogb1RhYmxlLmRhdGEoXCJib3VuZFByb21pc2VcIiksIHJlc29sdmU6IG9UYWJsZS5kYXRhKFwiYm91bmRQcm9taXNlUmVzb2x2ZVwiKSB9O1xufVxuXG5mdW5jdGlvbiB1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRChtZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBmaWx0ZXJzOiBDb25kaXRpb25PYmplY3RbXSwgZW50aXR5VHlwZVBhdGg6IHN0cmluZyk6IHZvaWQge1xuXHRmaWx0ZXJzPy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcblx0XHRjb25zdCBuZXN0ZWRGaWx0ZXJzID0gY29uZGl0aW9uLmdldEZpbHRlcnMoKTtcblxuXHRcdGlmIChuZXN0ZWRGaWx0ZXJzKSB7XG5cdFx0XHR1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRChtZXRhTW9kZWwsIG5lc3RlZEZpbHRlcnMsIGVudGl0eVR5cGVQYXRoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgZXh0ZXJuYWxJZFByb3BQYXRoID0gbWV0YU1vZGVsLmdldE9iamVjdChlbnRpdHlUeXBlUGF0aCArIGNvbmRpdGlvbi5zUGF0aCArIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5FeHRlcm5hbElEXCIpXG5cdFx0XHRcdD8uJFBhdGg7XG5cdFx0XHRpZiAoZXh0ZXJuYWxJZFByb3BQYXRoKSB7XG5cdFx0XHRcdGNvbmRpdGlvbi5zUGF0aCA9IGV4dGVybmFsSWRQcm9wUGF0aDtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xufVxuXG5jb25zdCB0YWJsZVV0aWxzID0ge1xuXHRnZXRDb3VudEZvcm1hdHRlZDogZ2V0Q291bnRGb3JtYXR0ZWQsXG5cdGdldEhpZGRlbkZpbHRlcnM6IGdldEhpZGRlbkZpbHRlcnMsXG5cdGdldExpc3RCaW5kaW5nRm9yQ291bnQ6IGdldExpc3RCaW5kaW5nRm9yQ291bnQsXG5cdGdldEZpbHRlckluZm86IGdldEZpbHRlckluZm8sXG5cdGdldFAxM25GaWx0ZXJzOiBnZXRQMTNuRmlsdGVycyxcblx0Z2V0QWxsRmlsdGVySW5mbzogZ2V0QWxsRmlsdGVySW5mbyxcblx0aXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaDogaXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaCxcblx0d2hlbkJvdW5kOiB3aGVuQm91bmQsXG5cdG9uVGFibGVCb3VuZDogb25UYWJsZUJvdW5kLFxuXHR1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRDogdXBkYXRlRmlsdGVyc0ZvckV4dGVybmFsSURcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHRhYmxlVXRpbHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFrQ0EsU0FBU0EsZ0JBQWdCQSxDQUFDQyxNQUFlLEVBQVk7SUFDcEQsSUFBSUMsUUFBa0IsR0FBRyxFQUFFO0lBQzNCLE1BQU1DLGFBQWEsR0FBR0YsTUFBTSxDQUFDRyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2xELElBQUlELGFBQWEsSUFBSUUsS0FBSyxDQUFDQyxPQUFPLENBQUNILGFBQWEsQ0FBQ0ksS0FBSyxDQUFDLEVBQUU7TUFDeERKLGFBQWEsQ0FBQ0ksS0FBSyxDQUFDQyxPQUFPLENBQUMsVUFBVUMsS0FBaUMsRUFBRTtRQUN4RSxNQUFNQyxVQUFVLEdBQUdDLFdBQVcsQ0FBQ0Msd0JBQXdCLENBQUNYLE1BQU0sRUFBRVEsS0FBSyxDQUFDSSxjQUFjLENBQUM7UUFDckZYLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxNQUFNLENBQUNKLFVBQVUsQ0FBQztNQUN2QyxDQUFDLENBQUM7SUFDSDtJQUNBLE9BQU9SLFFBQVE7RUFDaEI7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLFNBQVNhLGtCQUFrQkEsQ0FBQ0MsS0FBWSxFQUFZO0lBQ25ELElBQUlDLE9BQWlCLEdBQUdqQixnQkFBZ0IsQ0FBQ2dCLEtBQUssQ0FBQztJQUMvQyxNQUFNRSxXQUFXLEdBQUdGLEtBQUssQ0FBQ0csY0FBYyxDQUFDLENBQXdCO0lBQ2pFLElBQUlELFdBQVcsRUFBRTtNQUNoQkQsT0FBTyxHQUFHQSxPQUFPLENBQUNILE1BQU0sQ0FBQ0gsV0FBVyxDQUFDQyx3QkFBd0IsQ0FBQ0ksS0FBSyxFQUFFRSxXQUFXLENBQUNFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRztJQUNBLE9BQU9ILE9BQU87RUFDZjs7RUFFQTtBQUNB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QkMsU0FBUyxHQUFHRCxPQUFPO01BQ3BCLENBQUMsQ0FDRixDQUFDO01BQ0QsSUFBSzlJLE1BQU0sQ0FBNENpSixPQUFPLEdBQUcsQ0FBQyxFQUFFO1FBQ25FRixTQUFTLENBQUMvSSxNQUFNLENBQUM7TUFDbEIsQ0FBQyxNQUFNO1FBQ05BLE1BQU0sQ0FBQ0csSUFBSSxDQUFDLHFCQUFxQixFQUFFNEksU0FBUyxDQUFDO01BQzlDO0lBQ0Q7SUFDQSxPQUFPO01BQUVKLE9BQU8sRUFBRTNJLE1BQU0sQ0FBQ0csSUFBSSxDQUFDLGNBQWMsQ0FBQztNQUFFMkksT0FBTyxFQUFFOUksTUFBTSxDQUFDRyxJQUFJLENBQUMscUJBQXFCO0lBQUUsQ0FBQztFQUM3RjtFQUVBLFNBQVMrSSwwQkFBMEJBLENBQUM3QixTQUF5QixFQUFFckcsT0FBMEIsRUFBRW1JLGNBQXNCLEVBQVE7SUFDeEhuSSxPQUFPLEVBQUVULE9BQU8sQ0FBRTZJLFNBQVMsSUFBSztNQUMvQixNQUFNQyxhQUFhLEdBQUdELFNBQVMsQ0FBQ2pCLFVBQVUsQ0FBQyxDQUFDO01BRTVDLElBQUlrQixhQUFhLEVBQUU7UUFDbEJILDBCQUEwQixDQUFDN0IsU0FBUyxFQUFFZ0MsYUFBYSxFQUFFRixjQUFjLENBQUM7TUFDckUsQ0FBQyxNQUFNO1FBQ04sTUFBTUcsa0JBQWtCLEdBQUdqQyxTQUFTLENBQUNVLFNBQVMsQ0FBQ29CLGNBQWMsR0FBR0MsU0FBUyxDQUFDRyxLQUFLLEdBQUcsNENBQTRDLENBQUMsRUFDNUhDLEtBQUs7UUFDUixJQUFJRixrQkFBa0IsRUFBRTtVQUN2QkYsU0FBUyxDQUFDRyxLQUFLLEdBQUdELGtCQUFrQjtRQUNyQztNQUNEO0lBQ0QsQ0FBQyxDQUFDO0VBQ0g7RUFFQSxNQUFNMUgsVUFBVSxHQUFHO0lBQ2xCb0MsaUJBQWlCLEVBQUVBLGlCQUFpQjtJQUNwQ2pFLGdCQUFnQixFQUFFQSxnQkFBZ0I7SUFDbENxQixzQkFBc0IsRUFBRUEsc0JBQXNCO0lBQzlDUyxhQUFhLEVBQUVBLGFBQWE7SUFDNUJFLGNBQWMsRUFBRUEsY0FBYztJQUM5QmtFLGdCQUFnQixFQUFFQSxnQkFBZ0I7SUFDbENZLGtDQUFrQyxFQUFFQSxrQ0FBa0M7SUFDdEU0QixTQUFTLEVBQUVBLFNBQVM7SUFDcEJHLFlBQVksRUFBRUEsWUFBWTtJQUMxQk0sMEJBQTBCLEVBQUVBO0VBQzdCLENBQUM7RUFBQyxPQUVhdEgsVUFBVTtBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -99,7 +99,11 @@ async function getListBindingForCount(
99
99
  $filter: stringFilters[0],
100
100
  $search: filterInfo.search ? CommonUtils.normalizeSearchTerm(filterInfo.search) : undefined
101
101
  });
102
- const value = await countBinding.requestValue();
102
+ const promiseValue = countBinding.requestValue();
103
+ if (params.batchGroupId && params.batchGroupId !== "$auto") {
104
+ oDataModel.submitBatch(params.batchGroupId);
105
+ }
106
+ const value = await promiseValue;
103
107
  countBinding.destroy();
104
108
  listBinding.destroy();
105
109
  return value;
@@ -11,7 +11,6 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/chart/ChartUtils", "sap
11
11
  * The class is experimental and the API/behaviour is not finalised and hence this should not be used for productive usage.
12
12
  * @author SAP SE
13
13
  * @private
14
- * @experimental
15
14
  * @since 1.69.0
16
15
  * @alias sap.fe.macros.ALPTableDelegate
17
16
  */
@@ -70,4 +69,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/chart/ChartUtils", "sap
70
69
  });
71
70
  return ALPTableDelegate;
72
71
  }, false);
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBTFBUYWJsZURlbGVnYXRlIiwiT2JqZWN0IiwiYXNzaWduIiwiVGFibGVEZWxlZ2F0ZSIsImFwaVZlcnNpb24iLCJfaW50ZXJuYWxVcGRhdGVCaW5kaW5nSW5mbyIsInRhYmxlIiwiYmluZGluZ0luZm8iLCJmaWx0ZXJJbmZvIiwiY2hhcnRGaWx0ZXJzIiwiX2NvbXB1dGVSb3dCaW5kaW5nSW5mb0Zyb21UZW1wbGF0ZSIsImdldFJvd0JpbmRpbmciLCJzdXNwZW5kZWQiLCJ2aWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwibWRjQ2hhcnQiLCJnZXRDb250cm9sbGVyIiwiZ2V0Q2hhcnRDb250cm9sIiwiY2hhcnRBUEkiLCJnZXRQYXJlbnQiLCJjaGFydFNlbGVjdGlvbnNFeGlzdCIsImhhc1NlbGVjdGlvbnMiLCJ0YWJsZUZpbHRlckluZm8iLCJUYWJsZVV0aWxzIiwiZ2V0QWxsRmlsdGVySW5mbyIsInRhYmxlRmlsdGVycyIsImZpbHRlcnMiLCJjaGFydEZpbHRlckluZm8iLCJDaGFydFV0aWxzIiwiZm9yRWFjaCIsImVsZW1lbnQiLCJnZXRQYXRoIiwic1BhdGgiLCJnZXRDaGFydFByb3BlcnRpZXNXaXRob3V0UHJlZml4ZXMiLCJmaW5hbEZpbHRlcnMiLCJjb25jYXQiLCJvRmlsdGVyIiwibGVuZ3RoIiwiRmlsdGVyIiwiYW5kIiwiYmluZGluZ1BhdGgiLCJwYXRoIiwidXBkYXRlQmluZGluZ0luZm9XaXRoU2VhcmNoUXVlcnkiLCJhZGRGaWx0ZXJPbkFjdGl2ZUVudGl0aWVzIiwicmViaW5kIiwiaW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsInRlbXBsYXRlQ29udGVudFZpZXciLCJnZXRQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQUxQVGFibGVEZWxlZ2F0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBDaGFydCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9DaGFydFwiO1xuaW1wb3J0IENoYXJ0VXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvY2hhcnQvQ2hhcnRVdGlsc1wiO1xuaW1wb3J0IFRhYmxlVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVXRpbHNcIjtcbmltcG9ydCBUYWJsZURlbGVnYXRlIGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL2RlbGVnYXRlcy9UYWJsZURlbGVnYXRlXCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIHsgQmFzZUFnZ3JlZ2F0aW9uQmluZGluZ0luZm8sIEJhc2VQcm9wZXJ0eUluZm8gfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgTURDQ2hhcnQgZnJvbSBcInNhcC91aS9tZGMvQ2hhcnRcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgRmlsdGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyXCI7XG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igc2FwLnVpLm1kYy5UYWJsZS5cbiAqIDxoMz48Yj5Ob3RlOjwvYj48L2gzPlxuICogVGhlIGNsYXNzIGlzIGV4cGVyaW1lbnRhbCBhbmQgdGhlIEFQSS9iZWhhdmlvdXIgaXMgbm90IGZpbmFsaXNlZCBhbmQgaGVuY2UgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgZm9yIHByb2R1Y3RpdmUgdXNhZ2UuXG4gKiBAYXV0aG9yIFNBUCBTRVxuICogQHByaXZhdGVcbiAqIEBleHBlcmltZW50YWxcbiAqIEBzaW5jZSAxLjY5LjBcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLkFMUFRhYmxlRGVsZWdhdGVcbiAqL1xuY29uc3QgQUxQVGFibGVEZWxlZ2F0ZSA9IE9iamVjdC5hc3NpZ24oe30sIFRhYmxlRGVsZWdhdGUsIHtcblx0YXBpVmVyc2lvbjogMixcblx0X2ludGVybmFsVXBkYXRlQmluZGluZ0luZm86IGZ1bmN0aW9uICh0YWJsZTogVGFibGUsIGJpbmRpbmdJbmZvOiBCYXNlUHJvcGVydHlJbmZvKSB7XG5cdFx0bGV0IGZpbHRlckluZm87XG5cdFx0bGV0IGNoYXJ0RmlsdGVycztcblxuXHRcdC8vIFdlIG5lZWQgdG8gZGVlcENsb25lIHRoZSBpbmZvIHdlIGdldCBmcm9tIHRoZSBjdXN0b20gZGF0YSwgb3RoZXJ3aXNlIHNvbWUgb2YgaXRzIHN1Ym9iamVjdHMgKGUuZy4gcGFyYW1ldGVycykgd2lsbFxuXHRcdC8vIGJlIHNoYXJlZCB3aXRoIG9CaW5kaW5nSW5mbyBhbmQgbW9kaWZpZWQgbGF0ZXIgKE9iamVjdC5hc3NpZ24gb25seSBkb2VzIGEgc2hhbGxvdyBjbG9uZSlcblx0XHRPYmplY3QuYXNzaWduKGJpbmRpbmdJbmZvLCBUYWJsZURlbGVnYXRlLl9jb21wdXRlUm93QmluZGluZ0luZm9Gcm9tVGVtcGxhdGUodGFibGUpKTtcblx0XHRpZiAodGFibGUuZ2V0Um93QmluZGluZygpKSB7XG5cdFx0XHRiaW5kaW5nSW5mby5zdXNwZW5kZWQgPSBmYWxzZTtcblx0XHR9XG5cdFx0Y29uc3QgdmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGFibGUpO1xuXHRcdGNvbnN0IG1kY0NoYXJ0ID0gKHZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyKS5nZXRDaGFydENvbnRyb2w/LigpIGFzIE1EQ0NoYXJ0O1xuXHRcdGNvbnN0IGNoYXJ0QVBJID0gbWRjQ2hhcnQ/LmdldFBhcmVudCgpIGFzIENoYXJ0O1xuXHRcdGNvbnN0IGNoYXJ0U2VsZWN0aW9uc0V4aXN0ID0gY2hhcnRBUEk/Lmhhc1NlbGVjdGlvbnMoKTtcblx0XHRjb25zdCB0YWJsZUZpbHRlckluZm8gPSBUYWJsZVV0aWxzLmdldEFsbEZpbHRlckluZm8odGFibGUpO1xuXHRcdGNvbnN0IHRhYmxlRmlsdGVycyA9IHRhYmxlRmlsdGVySW5mbyAmJiB0YWJsZUZpbHRlckluZm8uZmlsdGVycztcblx0XHRmaWx0ZXJJbmZvID0gdGFibGVGaWx0ZXJJbmZvO1xuXHRcdGlmIChjaGFydFNlbGVjdGlvbnNFeGlzdCkge1xuXHRcdFx0Y29uc3QgY2hhcnRGaWx0ZXJJbmZvID0gQ2hhcnRVdGlscy5nZXRBbGxGaWx0ZXJJbmZvKG1kY0NoYXJ0KTtcblx0XHRcdGlmIChjaGFydEZpbHRlckluZm8gJiYgY2hhcnRGaWx0ZXJJbmZvLmZpbHRlcnMpIHtcblx0XHRcdFx0Y2hhcnRGaWx0ZXJJbmZvLmZpbHRlcnMuZm9yRWFjaCgoZWxlbWVudDogRmlsdGVyKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGVsZW1lbnQuZ2V0UGF0aCgpKSB7XG5cdFx0XHRcdFx0XHQoZWxlbWVudCBhcyB7IHNQYXRoPzogc3RyaW5nIH0pLnNQYXRoID0gY2hhcnRBUEkuZ2V0Q2hhcnRQcm9wZXJ0aWVzV2l0aG91dFByZWZpeGVzKGVsZW1lbnQuZ2V0UGF0aCgpISk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdGNoYXJ0RmlsdGVycyA9IGNoYXJ0RmlsdGVySW5mbz8uZmlsdGVycyA/PyBudWxsO1xuXHRcdFx0ZmlsdGVySW5mbyA9IGNoYXJ0RmlsdGVySW5mbztcblx0XHR9XG5cdFx0Y29uc3QgZmluYWxGaWx0ZXJzID0gKHRhYmxlRmlsdGVycyAmJiBjaGFydEZpbHRlcnMgPyB0YWJsZUZpbHRlcnMuY29uY2F0KGNoYXJ0RmlsdGVycykgOiBjaGFydEZpbHRlcnMgfHwgdGFibGVGaWx0ZXJzKSB8fCBbXTtcblx0XHRjb25zdCBvRmlsdGVyID1cblx0XHRcdGZpbmFsRmlsdGVycy5sZW5ndGggPiAwXG5cdFx0XHRcdD8gbmV3IEZpbHRlcih7XG5cdFx0XHRcdFx0XHRmaWx0ZXJzOiBmaW5hbEZpbHRlcnMsXG5cdFx0XHRcdFx0XHRhbmQ6IHRydWVcblx0XHRcdFx0ICB9KVxuXHRcdFx0XHQ6IG51bGw7XG5cblx0XHRpZiAoZmlsdGVySW5mby5iaW5kaW5nUGF0aCkge1xuXHRcdFx0Ly8gSW4gY2FzZSBvZiBwYXJhbWV0ZXJzXG5cdFx0XHRiaW5kaW5nSW5mby5wYXRoID0gZmlsdGVySW5mby5iaW5kaW5nUGF0aDtcblx0XHR9XG5cblx0XHQvLyBQcmVwYXJlIGJpbmRpbmcgaW5mbyB3aXRoIGZpbHRlci9zZWFyY2ggcGFyYW1ldGVyc1xuXHRcdEFMUFRhYmxlRGVsZWdhdGUudXBkYXRlQmluZGluZ0luZm9XaXRoU2VhcmNoUXVlcnkoYmluZGluZ0luZm8sIGZpbHRlckluZm8sIG9GaWx0ZXIpO1xuXG5cdFx0VGFibGVEZWxlZ2F0ZS5hZGRGaWx0ZXJPbkFjdGl2ZUVudGl0aWVzKHRhYmxlLCBiaW5kaW5nSW5mbyk7XG5cdH0sXG5cdHJlYmluZDogZnVuY3Rpb24gKHRhYmxlOiBUYWJsZSwgYmluZGluZ0luZm86IEJhc2VBZ2dyZWdhdGlvbkJpbmRpbmdJbmZvKSB7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB0YWJsZS5nZXRCaW5kaW5nQ29udGV4dChcInBhZ2VJbnRlcm5hbFwiKTtcblx0XHRjb25zdCB0ZW1wbGF0ZUNvbnRlbnRWaWV3ID0gaW50ZXJuYWxNb2RlbENvbnRleHQ/LmdldFByb3BlcnR5KGAke2ludGVybmFsTW9kZWxDb250ZXh0LmdldFBhdGgoKX0vYWxwQ29udGVudFZpZXdgKTtcblx0XHRpZiAodGVtcGxhdGVDb250ZW50VmlldyAhPT0gXCJDaGFydFwiKSB7XG5cdFx0XHRUYWJsZURlbGVnYXRlLnJlYmluZCh0YWJsZSwgYmluZGluZ0luZm8pO1xuXHRcdH1cblx0fVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFMUFRhYmxlRGVsZWdhdGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLE1BQU1BLGdCQUFnQixHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRUMsYUFBYSxFQUFFO0lBQ3pEQyxVQUFVLEVBQUUsQ0FBQztJQUNiQywwQkFBMEIsRUFBRSxTQUFBQSxDQUFVQyxLQUFZLEVBQUVDLFdBQTZCLEVBQUU7TUFDbEYsSUFBSUMsVUFBVTtNQUNkLElBQUlDLFlBQVk7O01BRWhCO01BQ0E7TUFDQVIsTUFBTSxDQUFDQyxNQUFNLENBQUNLLFdBQVcsRUFBRUosYUFBYSxDQUFDTyxrQ0FBa0MsQ0FBQ0osS0FBSyxDQUFDLENBQUM7TUFDbkYsSUFBSUEsS0FBSyxDQUFDSyxhQUFhLENBQUMsQ0FBQyxFQUFFO1FBQzFCSixXQUFXLENBQUNLLFNBQVMsR0FBRyxLQUFLO01BQzlCO01BQ0EsTUFBTUMsSUFBSSxHQUFHQyxXQUFXLENBQUNDLGFBQWEsQ0FBQ1QsS0FBSyxDQUFDO01BQzdDLE1BQU1VLFFBQVEsR0FBSUgsSUFBSSxDQUFDSSxhQUFhLENBQUMsQ0FBQyxDQUEwQkMsZUFBZSxHQUFHLENBQWE7TUFDL0YsTUFBTUMsUUFBUSxHQUFHSCxRQUFRLEVBQUVJLFNBQVMsQ0FBQyxDQUFVO01BQy9DLE1BQU1DLG9CQUFvQixHQUFHRixRQUFRLEVBQUVHLGFBQWEsQ0FBQyxDQUFDO01BQ3RELE1BQU1DLGVBQWUsR0FBR0MsVUFBVSxDQUFDQyxnQkFBZ0IsQ0FBQ25CLEtBQUssQ0FBQztNQUMxRCxNQUFNb0IsWUFBWSxHQUFHSCxlQUFlLElBQUlBLGVBQWUsQ0FBQ0ksT0FBTztNQUMvRG5CLFVBQVUsR0FBR2UsZUFBZTtNQUM1QixJQUFJRixvQkFBb0IsRUFBRTtRQUN6QixNQUFNTyxlQUFlLEdBQUdDLFVBQVUsQ0FBQ0osZ0JBQWdCLENBQUNULFFBQVEsQ0FBQztRQUM3RCxJQUFJWSxlQUFlLElBQUlBLGVBQWUsQ0FBQ0QsT0FBTyxFQUFFO1VBQy9DQyxlQUFlLENBQUNELE9BQU8sQ0FBQ0csT0FBTyxDQUFFQyxPQUFlLElBQUs7WUFDcEQsSUFBSUEsT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2NBQ3JCRCxPQUFPLENBQXdCRSxLQUFLLEdBQUdkLFFBQVEsQ0FBQ2UsaUNBQWlDLENBQUNILE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUUsQ0FBQztZQUN2RztVQUNELENBQUMsQ0FBQztRQUNIO1FBQ0F2QixZQUFZLEdBQUdtQixlQUFlLEVBQUVELE9BQU8sSUFBSSxJQUFJO1FBQy9DbkIsVUFBVSxHQUFHb0IsZUFBZTtNQUM3QjtNQUNBLE1BQU1PLFlBQVksR0FBRyxDQUFDVCxZQUFZLElBQUlqQixZQUFZLEdBQUdpQixZQUFZLENBQUNVLE1BQU0sQ0FBQzNCLFlBQVksQ0FBQyxHQUFHQSxZQUFZLElBQUlpQixZQUFZLEtBQUssRUFBRTtNQUM1SCxNQUFNVyxPQUFPLEdBQ1pGLFlBQVksQ0FBQ0csTUFBTSxHQUFHLENBQUMsR0FDcEIsSUFBSUMsTUFBTSxDQUFDO1FBQ1haLE9BQU8sRUFBRVEsWUFBWTtRQUNyQkssR0FBRyxFQUFFO01BQ0wsQ0FBQyxDQUFDLEdBQ0YsSUFBSTtNQUVSLElBQUloQyxVQUFVLENBQUNpQyxXQUFXLEVBQUU7UUFDM0I7UUFDQWxDLFdBQVcsQ0FBQ21DLElBQUksR0FBR2xDLFVBQVUsQ0FBQ2lDLFdBQVc7TUFDMUM7O01BRUE7TUFDQXpDLGdCQUFnQixDQUFDMkMsZ0NBQWdDLENBQUNwQyxXQUFXLEVBQUVDLFVBQVUsRUFBRTZCLE9BQU8sQ0FBQztNQUVuRmxDLGFBQWEsQ0FBQ3lDLHlCQUF5QixDQUFDdEMsS0FBSyxFQUFFQyxXQUFXLENBQUM7SUFDNUQsQ0FBQztJQUNEc0MsTUFBTSxFQUFFLFNBQUFBLENBQVV2QyxLQUFZLEVBQUVDLFdBQXVDLEVBQUU7TUFDeEUsTUFBTXVDLG9CQUFvQixHQUFHeEMsS0FBSyxDQUFDeUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDO01BQ3BFLE1BQU1DLG1CQUFtQixHQUFHRixvQkFBb0IsRUFBRUcsV0FBVyxDQUFDLEdBQUdILG9CQUFvQixDQUFDZCxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztNQUNqSCxJQUFJZ0IsbUJBQW1CLEtBQUssT0FBTyxFQUFFO1FBQ3BDN0MsYUFBYSxDQUFDMEMsTUFBTSxDQUFDdkMsS0FBSyxFQUFFQyxXQUFXLENBQUM7TUFDekM7SUFDRDtFQUNELENBQUMsQ0FBQztFQUFDLE9BRVlQLGdCQUFnQjtBQUFBIiwiaWdub3JlTGlzdCI6W119
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBTFBUYWJsZURlbGVnYXRlIiwiT2JqZWN0IiwiYXNzaWduIiwiVGFibGVEZWxlZ2F0ZSIsImFwaVZlcnNpb24iLCJfaW50ZXJuYWxVcGRhdGVCaW5kaW5nSW5mbyIsInRhYmxlIiwiYmluZGluZ0luZm8iLCJmaWx0ZXJJbmZvIiwiY2hhcnRGaWx0ZXJzIiwiX2NvbXB1dGVSb3dCaW5kaW5nSW5mb0Zyb21UZW1wbGF0ZSIsImdldFJvd0JpbmRpbmciLCJzdXNwZW5kZWQiLCJ2aWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3IiwibWRjQ2hhcnQiLCJnZXRDb250cm9sbGVyIiwiZ2V0Q2hhcnRDb250cm9sIiwiY2hhcnRBUEkiLCJnZXRQYXJlbnQiLCJjaGFydFNlbGVjdGlvbnNFeGlzdCIsImhhc1NlbGVjdGlvbnMiLCJ0YWJsZUZpbHRlckluZm8iLCJUYWJsZVV0aWxzIiwiZ2V0QWxsRmlsdGVySW5mbyIsInRhYmxlRmlsdGVycyIsImZpbHRlcnMiLCJjaGFydEZpbHRlckluZm8iLCJDaGFydFV0aWxzIiwiZm9yRWFjaCIsImVsZW1lbnQiLCJnZXRQYXRoIiwic1BhdGgiLCJnZXRDaGFydFByb3BlcnRpZXNXaXRob3V0UHJlZml4ZXMiLCJmaW5hbEZpbHRlcnMiLCJjb25jYXQiLCJvRmlsdGVyIiwibGVuZ3RoIiwiRmlsdGVyIiwiYW5kIiwiYmluZGluZ1BhdGgiLCJwYXRoIiwidXBkYXRlQmluZGluZ0luZm9XaXRoU2VhcmNoUXVlcnkiLCJhZGRGaWx0ZXJPbkFjdGl2ZUVudGl0aWVzIiwicmViaW5kIiwiaW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsInRlbXBsYXRlQ29udGVudFZpZXciLCJnZXRQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQUxQVGFibGVEZWxlZ2F0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBDaGFydCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9DaGFydFwiO1xuaW1wb3J0IENoYXJ0VXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvY2hhcnQvQ2hhcnRVdGlsc1wiO1xuaW1wb3J0IFRhYmxlVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVXRpbHNcIjtcbmltcG9ydCBUYWJsZURlbGVnYXRlIGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL2RlbGVnYXRlcy9UYWJsZURlbGVnYXRlXCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIHsgQmFzZUFnZ3JlZ2F0aW9uQmluZGluZ0luZm8sIEJhc2VQcm9wZXJ0eUluZm8gfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgTURDQ2hhcnQgZnJvbSBcInNhcC91aS9tZGMvQ2hhcnRcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgRmlsdGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyXCI7XG4vKipcbiAqIEhlbHBlciBjbGFzcyBmb3Igc2FwLnVpLm1kYy5UYWJsZS5cbiAqIDxoMz48Yj5Ob3RlOjwvYj48L2gzPlxuICogVGhlIGNsYXNzIGlzIGV4cGVyaW1lbnRhbCBhbmQgdGhlIEFQSS9iZWhhdmlvdXIgaXMgbm90IGZpbmFsaXNlZCBhbmQgaGVuY2UgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgZm9yIHByb2R1Y3RpdmUgdXNhZ2UuXG4gKiBAYXV0aG9yIFNBUCBTRVxuICogQHByaXZhdGVcbiAqIEBzaW5jZSAxLjY5LjBcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLkFMUFRhYmxlRGVsZWdhdGVcbiAqL1xuY29uc3QgQUxQVGFibGVEZWxlZ2F0ZSA9IE9iamVjdC5hc3NpZ24oe30sIFRhYmxlRGVsZWdhdGUsIHtcblx0YXBpVmVyc2lvbjogMixcblx0X2ludGVybmFsVXBkYXRlQmluZGluZ0luZm86IGZ1bmN0aW9uICh0YWJsZTogVGFibGUsIGJpbmRpbmdJbmZvOiBCYXNlUHJvcGVydHlJbmZvKSB7XG5cdFx0bGV0IGZpbHRlckluZm87XG5cdFx0bGV0IGNoYXJ0RmlsdGVycztcblxuXHRcdC8vIFdlIG5lZWQgdG8gZGVlcENsb25lIHRoZSBpbmZvIHdlIGdldCBmcm9tIHRoZSBjdXN0b20gZGF0YSwgb3RoZXJ3aXNlIHNvbWUgb2YgaXRzIHN1Ym9iamVjdHMgKGUuZy4gcGFyYW1ldGVycykgd2lsbFxuXHRcdC8vIGJlIHNoYXJlZCB3aXRoIG9CaW5kaW5nSW5mbyBhbmQgbW9kaWZpZWQgbGF0ZXIgKE9iamVjdC5hc3NpZ24gb25seSBkb2VzIGEgc2hhbGxvdyBjbG9uZSlcblx0XHRPYmplY3QuYXNzaWduKGJpbmRpbmdJbmZvLCBUYWJsZURlbGVnYXRlLl9jb21wdXRlUm93QmluZGluZ0luZm9Gcm9tVGVtcGxhdGUodGFibGUpKTtcblx0XHRpZiAodGFibGUuZ2V0Um93QmluZGluZygpKSB7XG5cdFx0XHRiaW5kaW5nSW5mby5zdXNwZW5kZWQgPSBmYWxzZTtcblx0XHR9XG5cdFx0Y29uc3QgdmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGFibGUpO1xuXHRcdGNvbnN0IG1kY0NoYXJ0ID0gKHZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyKS5nZXRDaGFydENvbnRyb2w/LigpIGFzIE1EQ0NoYXJ0O1xuXHRcdGNvbnN0IGNoYXJ0QVBJID0gbWRjQ2hhcnQ/LmdldFBhcmVudCgpIGFzIENoYXJ0O1xuXHRcdGNvbnN0IGNoYXJ0U2VsZWN0aW9uc0V4aXN0ID0gY2hhcnRBUEk/Lmhhc1NlbGVjdGlvbnMoKTtcblx0XHRjb25zdCB0YWJsZUZpbHRlckluZm8gPSBUYWJsZVV0aWxzLmdldEFsbEZpbHRlckluZm8odGFibGUpO1xuXHRcdGNvbnN0IHRhYmxlRmlsdGVycyA9IHRhYmxlRmlsdGVySW5mbyAmJiB0YWJsZUZpbHRlckluZm8uZmlsdGVycztcblx0XHRmaWx0ZXJJbmZvID0gdGFibGVGaWx0ZXJJbmZvO1xuXHRcdGlmIChjaGFydFNlbGVjdGlvbnNFeGlzdCkge1xuXHRcdFx0Y29uc3QgY2hhcnRGaWx0ZXJJbmZvID0gQ2hhcnRVdGlscy5nZXRBbGxGaWx0ZXJJbmZvKG1kY0NoYXJ0KTtcblx0XHRcdGlmIChjaGFydEZpbHRlckluZm8gJiYgY2hhcnRGaWx0ZXJJbmZvLmZpbHRlcnMpIHtcblx0XHRcdFx0Y2hhcnRGaWx0ZXJJbmZvLmZpbHRlcnMuZm9yRWFjaCgoZWxlbWVudDogRmlsdGVyKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGVsZW1lbnQuZ2V0UGF0aCgpKSB7XG5cdFx0XHRcdFx0XHQoZWxlbWVudCBhcyB7IHNQYXRoPzogc3RyaW5nIH0pLnNQYXRoID0gY2hhcnRBUEkuZ2V0Q2hhcnRQcm9wZXJ0aWVzV2l0aG91dFByZWZpeGVzKGVsZW1lbnQuZ2V0UGF0aCgpISk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHRcdGNoYXJ0RmlsdGVycyA9IGNoYXJ0RmlsdGVySW5mbz8uZmlsdGVycyA/PyBudWxsO1xuXHRcdFx0ZmlsdGVySW5mbyA9IGNoYXJ0RmlsdGVySW5mbztcblx0XHR9XG5cdFx0Y29uc3QgZmluYWxGaWx0ZXJzID0gKHRhYmxlRmlsdGVycyAmJiBjaGFydEZpbHRlcnMgPyB0YWJsZUZpbHRlcnMuY29uY2F0KGNoYXJ0RmlsdGVycykgOiBjaGFydEZpbHRlcnMgfHwgdGFibGVGaWx0ZXJzKSB8fCBbXTtcblx0XHRjb25zdCBvRmlsdGVyID1cblx0XHRcdGZpbmFsRmlsdGVycy5sZW5ndGggPiAwXG5cdFx0XHRcdD8gbmV3IEZpbHRlcih7XG5cdFx0XHRcdFx0XHRmaWx0ZXJzOiBmaW5hbEZpbHRlcnMsXG5cdFx0XHRcdFx0XHRhbmQ6IHRydWVcblx0XHRcdFx0ICB9KVxuXHRcdFx0XHQ6IG51bGw7XG5cblx0XHRpZiAoZmlsdGVySW5mby5iaW5kaW5nUGF0aCkge1xuXHRcdFx0Ly8gSW4gY2FzZSBvZiBwYXJhbWV0ZXJzXG5cdFx0XHRiaW5kaW5nSW5mby5wYXRoID0gZmlsdGVySW5mby5iaW5kaW5nUGF0aDtcblx0XHR9XG5cblx0XHQvLyBQcmVwYXJlIGJpbmRpbmcgaW5mbyB3aXRoIGZpbHRlci9zZWFyY2ggcGFyYW1ldGVyc1xuXHRcdEFMUFRhYmxlRGVsZWdhdGUudXBkYXRlQmluZGluZ0luZm9XaXRoU2VhcmNoUXVlcnkoYmluZGluZ0luZm8sIGZpbHRlckluZm8sIG9GaWx0ZXIpO1xuXG5cdFx0VGFibGVEZWxlZ2F0ZS5hZGRGaWx0ZXJPbkFjdGl2ZUVudGl0aWVzKHRhYmxlLCBiaW5kaW5nSW5mbyk7XG5cdH0sXG5cdHJlYmluZDogZnVuY3Rpb24gKHRhYmxlOiBUYWJsZSwgYmluZGluZ0luZm86IEJhc2VBZ2dyZWdhdGlvbkJpbmRpbmdJbmZvKSB7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB0YWJsZS5nZXRCaW5kaW5nQ29udGV4dChcInBhZ2VJbnRlcm5hbFwiKTtcblx0XHRjb25zdCB0ZW1wbGF0ZUNvbnRlbnRWaWV3ID0gaW50ZXJuYWxNb2RlbENvbnRleHQ/LmdldFByb3BlcnR5KGAke2ludGVybmFsTW9kZWxDb250ZXh0LmdldFBhdGgoKX0vYWxwQ29udGVudFZpZXdgKTtcblx0XHRpZiAodGVtcGxhdGVDb250ZW50VmlldyAhPT0gXCJDaGFydFwiKSB7XG5cdFx0XHRUYWJsZURlbGVnYXRlLnJlYmluZCh0YWJsZSwgYmluZGluZ0luZm8pO1xuXHRcdH1cblx0fVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFMUFRhYmxlRGVsZWdhdGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxNQUFNQSxnQkFBZ0IsR0FBR0Ms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
@@ -14,7 +14,6 @@ import Filter from "sap/ui/model/Filter";
14
14
  * The class is experimental and the API/behaviour is not finalised and hence this should not be used for productive usage.
15
15
  * @author SAP SE
16
16
  * @private
17
- * @experimental
18
17
  * @since 1.69.0
19
18
  * @alias sap.fe.macros.ALPTableDelegate
20
19
  */