@wavemaker/app-ng-runtime 11.8.0-next.141670 → 11.8.0-next.141671

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 (1448) hide show
  1. package/build-task/bundles/index.umd.js +33 -9
  2. package/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +4 -2
  3. package/build-task/esm2022/advanced/carousel/carousel.build.mjs +1 -1
  4. package/build-task/esm2022/basic/default/label/label.build.mjs +1 -1
  5. package/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
  6. package/build-task/esm2022/containers/accordion/accordion.build.mjs +1 -1
  7. package/build-task/esm2022/containers/repeat-template.build.mjs +4 -2
  8. package/build-task/esm2022/containers/tabs/tabs.build.mjs +1 -1
  9. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +1 -1
  10. package/build-task/esm2022/data/form/form.build.mjs +5 -2
  11. package/build-task/esm2022/data/list/list.build.mjs +1 -1
  12. package/build-task/esm2022/data/media-list/media-list.build.mjs +1 -1
  13. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +1 -1
  14. package/build-task/esm2022/data/table/table.build.mjs +1 -1
  15. package/build-task/esm2022/dialogs/partial-dialog/partial-dialog.build.mjs +1 -1
  16. package/build-task/esm2022/input/file-upload/file-upload.build.mjs +1 -1
  17. package/build-task/esm2022/navigation/menu/menu.build.mjs +19 -2
  18. package/build-task/esm2022/navigation/popover/popover.build.mjs +1 -1
  19. package/build-task/esm2022/page/page-content/page-content.build.mjs +1 -1
  20. package/build-task/esm2022/page/page.build.mjs +3 -2
  21. package/build-task/esm2022/utils/utils.mjs +1 -1
  22. package/build-task/fesm2022/index.mjs +31 -6
  23. package/build-task/fesm2022/index.mjs.map +1 -1
  24. package/components/advanced/carousel/bundles/index.umd.js +26 -16
  25. package/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +2 -2
  26. package/components/advanced/carousel/carousel.directive.d.ts +2 -2
  27. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +12 -7
  28. package/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
  29. package/components/advanced/carousel/esm2022/carousel.directive.mjs +12 -7
  30. package/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
  31. package/components/advanced/carousel/fesm2022/index.mjs +25 -14
  32. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  33. package/components/advanced/login/bundles/index.umd.js +19 -13
  34. package/components/advanced/login/esm2022/login.component.mjs +17 -10
  35. package/components/advanced/login/esm2022/login.module.mjs +2 -2
  36. package/components/advanced/login/fesm2022/index.mjs +18 -11
  37. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  38. package/components/advanced/login/login.component.d.ts +2 -2
  39. package/components/advanced/marquee/bundles/index.umd.js +11 -6
  40. package/components/advanced/marquee/esm2022/marquee.directive.mjs +12 -7
  41. package/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
  42. package/components/advanced/marquee/fesm2022/index.mjs +13 -8
  43. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  44. package/components/advanced/marquee/marquee.directive.d.ts +2 -2
  45. package/components/base/bundles/index.umd.js +357 -270
  46. package/components/base/esm2022/components.module.mjs +2 -2
  47. package/components/base/esm2022/directives/show-in-device.directive.mjs +4 -4
  48. package/components/base/esm2022/pipes/custom-pipes.mjs +35 -34
  49. package/components/base/esm2022/pipes/image.pipe.mjs +2 -2
  50. package/components/base/esm2022/pipes/sanitize.pipe.mjs +3 -3
  51. package/components/base/esm2022/pipes/trust-as.pipe.mjs +3 -3
  52. package/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
  53. package/components/base/esm2022/utils/data-utils.mjs +29 -28
  54. package/components/base/esm2022/utils/form-utils.mjs +48 -42
  55. package/components/base/esm2022/utils/live-utils.mjs +8 -7
  56. package/components/base/esm2022/utils/widget-utils.mjs +28 -27
  57. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +8 -7
  58. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +24 -21
  59. package/components/base/esm2022/widgets/common/base/base.component.mjs +42 -16
  60. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +52 -18
  61. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +6 -5
  62. package/components/base/esm2022/widgets/common/base/stylable.component.mjs +3 -3
  63. package/components/base/esm2022/widgets/common/base/text-content.directive.mjs +3 -3
  64. package/components/base/esm2022/widgets/common/container/container.directive.mjs +12 -7
  65. package/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +5 -4
  66. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +12 -7
  67. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +3 -3
  68. package/components/base/esm2022/widgets/common/message/message.component.mjs +16 -10
  69. package/components/base/esm2022/widgets/common/partial/partial.directive.mjs +14 -8
  70. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +9 -8
  71. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +1 -1
  72. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +4 -4
  73. package/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +12 -7
  74. package/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +11 -10
  75. package/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
  76. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
  77. package/components/base/esm2022/widgets/framework/styler.mjs +1 -1
  78. package/components/base/esm2022/widgets/framework/widget-props.mjs +1 -1
  79. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
  80. package/components/base/esm2022/widgets/framework/widget-registry.mjs +1 -1
  81. package/components/base/fesm2022/index.mjs +362 -272
  82. package/components/base/fesm2022/index.mjs.map +1 -1
  83. package/components/base/pipes/custom-pipes.d.ts +1 -1
  84. package/components/base/utils/widget-utils.d.ts +2 -2
  85. package/components/base/widgets/common/base/base-container.component.d.ts +1 -1
  86. package/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  87. package/components/base/widgets/common/base/base.component.d.ts +4 -2
  88. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -1
  89. package/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
  90. package/components/base/widgets/common/container/container.directive.d.ts +2 -2
  91. package/components/base/widgets/common/item-template/item-template.directive.d.ts +2 -2
  92. package/components/base/widgets/common/message/message.component.d.ts +2 -2
  93. package/components/base/widgets/common/partial/partial.directive.d.ts +2 -2
  94. package/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +2 -2
  95. package/components/basic/default/anchor/anchor.component.d.ts +2 -2
  96. package/components/basic/default/audio/audio.component.d.ts +3 -2
  97. package/components/basic/default/bundles/index.umd.js +163 -119
  98. package/components/basic/default/esm2022/anchor/anchor.component.mjs +31 -27
  99. package/components/basic/default/esm2022/audio/audio.component.mjs +18 -11
  100. package/components/basic/default/esm2022/basic.module.mjs +2 -2
  101. package/components/basic/default/esm2022/html/html.directive.mjs +13 -8
  102. package/components/basic/default/esm2022/icon/icon.component.mjs +19 -14
  103. package/components/basic/default/esm2022/iframe/iframe.component.mjs +15 -9
  104. package/components/basic/default/esm2022/label/label.directive.mjs +15 -9
  105. package/components/basic/default/esm2022/picture/picture.directive.mjs +12 -7
  106. package/components/basic/default/esm2022/picture/picture.props.mjs +1 -1
  107. package/components/basic/default/esm2022/spinner/spinner.component.mjs +34 -30
  108. package/components/basic/default/esm2022/video/video.component.mjs +21 -17
  109. package/components/basic/default/fesm2022/index.mjs +162 -117
  110. package/components/basic/default/fesm2022/index.mjs.map +1 -1
  111. package/components/basic/default/html/html.directive.d.ts +2 -2
  112. package/components/basic/default/icon/icon.component.d.ts +2 -2
  113. package/components/basic/default/iframe/iframe.component.d.ts +2 -2
  114. package/components/basic/default/label/label.directive.d.ts +2 -2
  115. package/components/basic/default/picture/picture.directive.d.ts +2 -2
  116. package/components/basic/default/spinner/spinner.component.d.ts +2 -2
  117. package/components/basic/default/video/video.component.d.ts +2 -2
  118. package/components/basic/progress/bundles/index.umd.js +45 -32
  119. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +24 -17
  120. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +20 -12
  121. package/components/basic/progress/esm2022/progress.module.mjs +2 -2
  122. package/components/basic/progress/esm2022/utils.mjs +3 -3
  123. package/components/basic/progress/fesm2022/index.mjs +44 -30
  124. package/components/basic/progress/fesm2022/index.mjs.map +1 -1
  125. package/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -2
  126. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -2
  127. package/components/basic/rich-text-editor/bundles/index.umd.js +19 -13
  128. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +17 -10
  129. package/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +2 -2
  130. package/components/basic/rich-text-editor/fesm2022/index.mjs +18 -11
  131. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  132. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
  133. package/components/basic/search/bundles/index.umd.js +185 -175
  134. package/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
  135. package/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
  136. package/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
  137. package/components/basic/search/esm2022/scrollable.directive.mjs +3 -3
  138. package/components/basic/search/esm2022/search.component.mjs +147 -138
  139. package/components/basic/search/esm2022/search.module.mjs +2 -2
  140. package/components/basic/search/fesm2022/index.mjs +185 -174
  141. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  142. package/components/basic/search/search.component.d.ts +2 -2
  143. package/components/basic/tree/bundles/index.umd.js +23 -17
  144. package/components/basic/tree/esm2022/tree.component.mjs +21 -14
  145. package/components/basic/tree/esm2022/tree.module.mjs +2 -2
  146. package/components/basic/tree/fesm2022/index.mjs +22 -15
  147. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  148. package/components/basic/tree/tree.component.d.ts +2 -2
  149. package/components/chart/bundles/index.umd.js +97 -84
  150. package/components/chart/chart.component.d.ts +3 -3
  151. package/components/chart/chart.utils.d.ts +3 -3
  152. package/components/chart/esm2022/chart.component.mjs +82 -68
  153. package/components/chart/esm2022/chart.module.mjs +2 -2
  154. package/components/chart/esm2022/chart.utils.mjs +14 -13
  155. package/components/chart/fesm2022/index.mjs +95 -81
  156. package/components/chart/fesm2022/index.mjs.map +1 -1
  157. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -2
  158. package/components/containers/accordion/accordion.directive.d.ts +2 -2
  159. package/components/containers/accordion/bundles/index.umd.js +51 -40
  160. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +23 -17
  161. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.props.mjs +4 -4
  162. package/components/containers/accordion/esm2022/accordion.directive.mjs +25 -19
  163. package/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
  164. package/components/containers/accordion/fesm2022/index.mjs +50 -38
  165. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  166. package/components/containers/layout-grid/bundles/index.umd.js +32 -17
  167. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +13 -8
  168. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +12 -7
  169. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +12 -7
  170. package/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
  171. package/components/containers/layout-grid/fesm2022/index.mjs +34 -19
  172. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  173. package/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +2 -2
  174. package/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -2
  175. package/components/containers/layout-grid/layout-grid.directive.d.ts +2 -2
  176. package/components/containers/linear-layout/bundles/index.umd.js +21 -11
  177. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +12 -7
  178. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +12 -7
  179. package/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
  180. package/components/containers/linear-layout/fesm2022/index.mjs +23 -13
  181. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  182. package/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -2
  183. package/components/containers/linear-layout/linear-layout.directive.d.ts +2 -2
  184. package/components/containers/panel/bundles/index.umd.js +85 -85
  185. package/components/containers/panel/esm2022/panel.component.mjs +83 -82
  186. package/components/containers/panel/esm2022/panel.module.mjs +2 -2
  187. package/components/containers/panel/fesm2022/index.mjs +84 -83
  188. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  189. package/components/containers/panel/panel.component.d.ts +3 -3
  190. package/components/containers/tabs/bundles/index.umd.js +74 -63
  191. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +14 -8
  192. package/components/containers/tabs/esm2022/tab-pane/tab-pane.props.mjs +4 -4
  193. package/components/containers/tabs/esm2022/tabs.animator.mjs +1 -1
  194. package/components/containers/tabs/esm2022/tabs.component.mjs +57 -51
  195. package/components/containers/tabs/esm2022/tabs.module.mjs +2 -2
  196. package/components/containers/tabs/esm2022/tabs.props.mjs +1 -1
  197. package/components/containers/tabs/fesm2022/index.mjs +73 -61
  198. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  199. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -2
  200. package/components/containers/tabs/tabs.component.d.ts +2 -2
  201. package/components/containers/tile/bundles/index.umd.js +11 -6
  202. package/components/containers/tile/esm2022/tile.directive.mjs +12 -7
  203. package/components/containers/tile/esm2022/tile.module.mjs +2 -2
  204. package/components/containers/tile/fesm2022/index.mjs +13 -8
  205. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  206. package/components/containers/tile/tile.directive.d.ts +2 -2
  207. package/components/containers/wizard/bundles/index.umd.js +102 -98
  208. package/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +13 -8
  209. package/components/containers/wizard/esm2022/wizard.component.mjs +92 -93
  210. package/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
  211. package/components/containers/wizard/fesm2022/index.mjs +104 -100
  212. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  213. package/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -2
  214. package/components/containers/wizard/wizard.component.d.ts +2 -2
  215. package/components/data/card/bundles/index.umd.js +70 -50
  216. package/components/data/card/card-actions/card-actions.directive.d.ts +2 -2
  217. package/components/data/card/card-content/card-content.component.d.ts +2 -2
  218. package/components/data/card/card-footer/card-footer.directive.d.ts +2 -2
  219. package/components/data/card/card.component.d.ts +2 -2
  220. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +12 -7
  221. package/components/data/card/esm2022/card-content/card-content.component.mjs +15 -9
  222. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +12 -7
  223. package/components/data/card/esm2022/card.component.mjs +38 -34
  224. package/components/data/card/esm2022/card.module.mjs +2 -2
  225. package/components/data/card/fesm2022/index.mjs +72 -52
  226. package/components/data/card/fesm2022/index.mjs.map +1 -1
  227. package/components/data/form/bundles/index.umd.js +202 -188
  228. package/components/data/form/esm2022/form-action/form-action.directive.mjs +15 -9
  229. package/components/data/form/esm2022/form-field/form-field.directive.mjs +21 -16
  230. package/components/data/form/esm2022/form-field/form-field.props.mjs +1 -1
  231. package/components/data/form/esm2022/form-widget.directive.mjs +4 -4
  232. package/components/data/form/esm2022/form.component.mjs +139 -135
  233. package/components/data/form/esm2022/form.module.mjs +2 -2
  234. package/components/data/form/esm2022/form.props.mjs +1 -1
  235. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +4 -4
  236. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +4 -4
  237. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +7 -6
  238. package/components/data/form/esm2022/live-form/live-form.directive.mjs +18 -15
  239. package/components/data/form/fesm2022/index.mjs +206 -191
  240. package/components/data/form/fesm2022/index.mjs.map +1 -1
  241. package/components/data/form/form-action/form-action.directive.d.ts +2 -2
  242. package/components/data/form/form-field/form-field.directive.d.ts +2 -2
  243. package/components/data/form/form.component.d.ts +4 -4
  244. package/components/data/form/live-form/live-form.directive.d.ts +1 -1
  245. package/components/data/list/bundles/index.umd.js +826 -818
  246. package/components/data/list/esm2022/list-item.directive.mjs +4 -4
  247. package/components/data/list/esm2022/list.animator.mjs +5 -3
  248. package/components/data/list/esm2022/list.component.mjs +818 -810
  249. package/components/data/list/esm2022/list.module.mjs +2 -2
  250. package/components/data/list/fesm2022/index.mjs +825 -816
  251. package/components/data/list/fesm2022/index.mjs.map +1 -1
  252. package/components/data/list/list.component.d.ts +55 -54
  253. package/components/data/live-table/bundles/index.umd.js +13 -7
  254. package/components/data/live-table/esm2022/live-table.component.mjs +14 -8
  255. package/components/data/live-table/esm2022/live-table.module.mjs +2 -2
  256. package/components/data/live-table/fesm2022/index.mjs +15 -9
  257. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  258. package/components/data/live-table/live-table.component.d.ts +2 -2
  259. package/components/data/pagination/bundles/index.umd.js +111 -109
  260. package/components/data/pagination/esm2022/pagination.component.mjs +109 -106
  261. package/components/data/pagination/esm2022/pagination.module.mjs +2 -2
  262. package/components/data/pagination/fesm2022/index.mjs +110 -107
  263. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  264. package/components/data/pagination/pagination.component.d.ts +2 -2
  265. package/components/data/table/bundles/index.umd.js +311 -268
  266. package/components/data/table/esm2022/table-action/table-action.directive.mjs +15 -9
  267. package/components/data/table/esm2022/table-column/table-column.directive.mjs +40 -25
  268. package/components/data/table/esm2022/table-column/table-column.props.mjs +2 -2
  269. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +13 -8
  270. package/components/data/table/esm2022/table-cud.directive.mjs +10 -9
  271. package/components/data/table/esm2022/table-filter.directive.mjs +56 -58
  272. package/components/data/table/esm2022/table-row/table-row.directive.mjs +13 -8
  273. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +14 -8
  274. package/components/data/table/esm2022/table.component.mjs +162 -149
  275. package/components/data/table/esm2022/table.module.mjs +2 -2
  276. package/components/data/table/esm2022/table.props.mjs +2 -2
  277. package/components/data/table/fesm2022/index.mjs +310 -266
  278. package/components/data/table/fesm2022/index.mjs.map +1 -1
  279. package/components/data/table/table-action/table-action.directive.d.ts +2 -2
  280. package/components/data/table/table-column/table-column.directive.d.ts +8 -8
  281. package/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -2
  282. package/components/data/table/table-row/table-row.directive.d.ts +2 -2
  283. package/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -2
  284. package/components/data/table/table.component.d.ts +4 -4
  285. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -2
  286. package/components/dialogs/alert-dialog/bundles/index.umd.js +15 -9
  287. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +16 -10
  288. package/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
  289. package/components/dialogs/alert-dialog/fesm2022/index.mjs +17 -11
  290. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  291. package/components/dialogs/confirm-dialog/bundles/index.umd.js +17 -11
  292. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -2
  293. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +18 -12
  294. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
  295. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +19 -13
  296. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  297. package/components/dialogs/default/base-dialog.d.ts +2 -2
  298. package/components/dialogs/default/bundles/index.umd.js +75 -71
  299. package/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -2
  300. package/components/dialogs/default/esm2022/base-dialog.mjs +14 -9
  301. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +4 -4
  302. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +12 -7
  303. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +49 -55
  304. package/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
  305. package/components/dialogs/default/fesm2022/index.mjs +76 -72
  306. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  307. package/components/dialogs/design-dialog/bundles/index.umd.js +20 -14
  308. package/components/dialogs/design-dialog/dialog.component.d.ts +2 -2
  309. package/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +2 -2
  310. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +21 -15
  311. package/components/dialogs/design-dialog/fesm2022/index.mjs +22 -16
  312. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  313. package/components/dialogs/iframe-dialog/bundles/index.umd.js +20 -14
  314. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +21 -15
  315. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
  316. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +22 -16
  317. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  318. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -2
  319. package/components/dialogs/login-dialog/bundles/index.umd.js +4 -4
  320. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +4 -4
  321. package/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +2 -2
  322. package/components/dialogs/login-dialog/fesm2022/index.mjs +4 -4
  323. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  324. package/components/dialogs/partial-dialog/bundles/index.umd.js +16 -10
  325. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +17 -11
  326. package/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
  327. package/components/dialogs/partial-dialog/fesm2022/index.mjs +18 -12
  328. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  329. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +2 -2
  330. package/components/input/calendar/bundles/index.umd.js +46 -38
  331. package/components/input/calendar/calendar.component.d.ts +2 -2
  332. package/components/input/calendar/esm2022/calendar.component.mjs +44 -35
  333. package/components/input/calendar/esm2022/calendar.module.mjs +2 -2
  334. package/components/input/calendar/fesm2022/index.mjs +45 -36
  335. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  336. package/components/input/chips/bundles/index.umd.js +69 -61
  337. package/components/input/chips/chips.component.d.ts +3 -3
  338. package/components/input/chips/esm2022/chips.component.mjs +67 -58
  339. package/components/input/chips/esm2022/chips.module.mjs +2 -2
  340. package/components/input/chips/fesm2022/index.mjs +67 -58
  341. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  342. package/components/input/color-picker/bundles/index.umd.js +24 -11
  343. package/components/input/color-picker/color-picker.component.d.ts +2 -2
  344. package/components/input/color-picker/esm2022/color-picker.component.mjs +25 -12
  345. package/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
  346. package/components/input/color-picker/fesm2022/index.mjs +25 -12
  347. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  348. package/components/input/currency/bundles/index.umd.js +18 -11
  349. package/components/input/currency/currency.component.d.ts +2 -2
  350. package/components/input/currency/esm2022/currency.component.mjs +19 -12
  351. package/components/input/currency/esm2022/currency.module.mjs +2 -2
  352. package/components/input/currency/fesm2022/index.mjs +19 -12
  353. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  354. package/components/input/default/base-form.component.d.ts +3 -3
  355. package/components/input/default/bundles/index.umd.js +600 -482
  356. package/components/input/default/button/button.component.d.ts +2 -2
  357. package/components/input/default/button-group/button-group.directive.d.ts +2 -2
  358. package/components/input/default/checkbox/checkbox.component.d.ts +3 -2
  359. package/components/input/default/checkboxset/checkboxset.component.d.ts +2 -2
  360. package/components/input/default/composite/composite.directive.d.ts +2 -2
  361. package/components/input/default/dataset-aware-form.component.d.ts +4 -4
  362. package/components/input/default/esm2022/base-form-custom.component.mjs +3 -3
  363. package/components/input/default/esm2022/base-form.component.mjs +17 -11
  364. package/components/input/default/esm2022/button/button.component.mjs +32 -28
  365. package/components/input/default/esm2022/button-group/button-group.directive.mjs +12 -7
  366. package/components/input/default/esm2022/caption-position.directive.mjs +6 -6
  367. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +24 -15
  368. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +107 -103
  369. package/components/input/default/esm2022/composite/composite.directive.mjs +12 -7
  370. package/components/input/default/esm2022/dataset-aware-form.component.mjs +32 -26
  371. package/components/input/default/esm2022/input.module.mjs +2 -2
  372. package/components/input/default/esm2022/number/number.component.mjs +17 -10
  373. package/components/input/default/esm2022/radioset/radioset.component.mjs +105 -102
  374. package/components/input/default/esm2022/select/select.component.mjs +69 -68
  375. package/components/input/default/esm2022/switch/switch.component.mjs +38 -31
  376. package/components/input/default/esm2022/text/base/base-input.mjs +16 -10
  377. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +21 -11
  378. package/components/input/default/esm2022/text/color/input-color.component.mjs +21 -11
  379. package/components/input/default/esm2022/text/email/input-email.component.mjs +20 -11
  380. package/components/input/default/esm2022/text/locale/number-locale.mjs +35 -24
  381. package/components/input/default/esm2022/text/number/input-number.component.mjs +21 -12
  382. package/components/input/default/esm2022/text/text/input-text.component.mjs +20 -11
  383. package/components/input/default/esm2022/textarea/textarea.component.mjs +21 -12
  384. package/components/input/default/fesm2022/index.mjs +603 -483
  385. package/components/input/default/fesm2022/index.mjs.map +1 -1
  386. package/components/input/default/number/number.component.d.ts +2 -2
  387. package/components/input/default/radioset/radioset.component.d.ts +2 -2
  388. package/components/input/default/select/select.component.d.ts +3 -4
  389. package/components/input/default/switch/switch.component.d.ts +2 -2
  390. package/components/input/default/text/base/base-input.d.ts +2 -2
  391. package/components/input/default/text/calendar/input-calendar.component.d.ts +2 -2
  392. package/components/input/default/text/color/input-color.component.d.ts +2 -2
  393. package/components/input/default/text/email/input-email.component.d.ts +2 -2
  394. package/components/input/default/text/locale/number-locale.d.ts +1 -1
  395. package/components/input/default/text/number/input-number.component.d.ts +2 -2
  396. package/components/input/default/text/text/input-text.component.d.ts +2 -2
  397. package/components/input/default/textarea/textarea.component.d.ts +2 -2
  398. package/components/input/epoch/base-date-time.component.d.ts +2 -2
  399. package/components/input/epoch/bundles/index.umd.js +221 -162
  400. package/components/input/epoch/date/date.component.d.ts +3 -2
  401. package/components/input/epoch/date-time/date-time.component.d.ts +2 -2
  402. package/components/input/epoch/esm2022/base-date-time.component.mjs +45 -36
  403. package/components/input/epoch/esm2022/date/date.component.mjs +48 -23
  404. package/components/input/epoch/esm2022/date/date.props.mjs +2 -2
  405. package/components/input/epoch/esm2022/date/imaskUtil.mjs +8 -2
  406. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +42 -41
  407. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +47 -36
  408. package/components/input/epoch/esm2022/epoch.module.mjs +2 -2
  409. package/components/input/epoch/esm2022/picker/picker.component.mjs +7 -5
  410. package/components/input/epoch/esm2022/time/time.component.mjs +33 -23
  411. package/components/input/epoch/fesm2022/index.mjs +219 -159
  412. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  413. package/components/input/epoch/time/time.component.d.ts +2 -2
  414. package/components/input/file-upload/bundles/index.umd.js +133 -135
  415. package/components/input/file-upload/esm2022/file-upload.component.mjs +131 -132
  416. package/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  417. package/components/input/file-upload/fesm2022/index.mjs +132 -133
  418. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  419. package/components/input/file-upload/file-upload.component.d.ts +2 -2
  420. package/components/input/rating/bundles/index.umd.js +57 -50
  421. package/components/input/rating/esm2022/rating.component.mjs +55 -47
  422. package/components/input/rating/esm2022/rating.module.mjs +2 -2
  423. package/components/input/rating/fesm2022/index.mjs +55 -47
  424. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  425. package/components/input/rating/rating.component.d.ts +2 -2
  426. package/components/input/slider/bundles/index.umd.js +21 -12
  427. package/components/input/slider/esm2022/slider.component.mjs +22 -13
  428. package/components/input/slider/esm2022/slider.module.mjs +2 -2
  429. package/components/input/slider/fesm2022/index.mjs +22 -13
  430. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  431. package/components/input/slider/slider.component.d.ts +2 -2
  432. package/components/navigation/breadcrumb/breadcrumb.component.d.ts +2 -2
  433. package/components/navigation/breadcrumb/bundles/index.umd.js +33 -28
  434. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +34 -29
  435. package/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
  436. package/components/navigation/breadcrumb/fesm2022/index.mjs +35 -30
  437. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  438. package/components/navigation/menu/bundles/index.umd.js +154 -137
  439. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +13 -7
  440. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +5 -4
  441. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +27 -26
  442. package/components/navigation/menu/esm2022/menu.component.mjs +44 -40
  443. package/components/navigation/menu/esm2022/menu.module.mjs +2 -2
  444. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +12 -7
  445. package/components/navigation/menu/esm2022/nav/nav.component.mjs +60 -56
  446. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -3
  447. package/components/navigation/menu/fesm2022/index.mjs +153 -135
  448. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  449. package/components/navigation/menu/menu-adapator.component.d.ts +1 -1
  450. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
  451. package/components/navigation/menu/menu.component.d.ts +2 -2
  452. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +2 -2
  453. package/components/navigation/menu/nav/nav.component.d.ts +2 -2
  454. package/components/navigation/navbar/bundles/index.umd.js +29 -22
  455. package/components/navigation/navbar/esm2022/navbar.component.mjs +30 -23
  456. package/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
  457. package/components/navigation/navbar/fesm2022/index.mjs +31 -24
  458. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  459. package/components/navigation/navbar/navbar.component.d.ts +2 -2
  460. package/components/navigation/popover/bundles/index.umd.js +18 -11
  461. package/components/navigation/popover/esm2022/popover.component.mjs +19 -12
  462. package/components/navigation/popover/esm2022/popover.module.mjs +2 -2
  463. package/components/navigation/popover/fesm2022/index.mjs +20 -13
  464. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  465. package/components/navigation/popover/popover.component.d.ts +2 -2
  466. package/components/page/default/bundles/index.umd.js +63 -31
  467. package/components/page/default/content/content.component.d.ts +2 -2
  468. package/components/page/default/esm2022/content/content.component.mjs +13 -7
  469. package/components/page/default/esm2022/layout.directive.mjs +12 -7
  470. package/components/page/default/esm2022/page-content/page-content.component.mjs +13 -7
  471. package/components/page/default/esm2022/page.directive.mjs +12 -7
  472. package/components/page/default/esm2022/page.module.mjs +2 -2
  473. package/components/page/default/esm2022/router-outlet.directive.mjs +12 -7
  474. package/components/page/default/esm2022/spa-page.directive.mjs +12 -7
  475. package/components/page/default/fesm2022/index.mjs +65 -33
  476. package/components/page/default/fesm2022/index.mjs.map +1 -1
  477. package/components/page/default/layout.directive.d.ts +2 -2
  478. package/components/page/default/page-content/page-content.component.d.ts +2 -2
  479. package/components/page/default/page.directive.d.ts +2 -2
  480. package/components/page/default/router-outlet.directive.d.ts +2 -2
  481. package/components/page/default/spa-page.directive.d.ts +2 -2
  482. package/components/page/footer/bundles/index.umd.js +11 -6
  483. package/components/page/footer/esm2022/footer.directive.mjs +12 -7
  484. package/components/page/footer/esm2022/footer.module.mjs +2 -2
  485. package/components/page/footer/fesm2022/index.mjs +13 -8
  486. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  487. package/components/page/footer/footer.directive.d.ts +2 -2
  488. package/components/page/header/bundles/index.umd.js +12 -6
  489. package/components/page/header/esm2022/header.component.mjs +13 -7
  490. package/components/page/header/esm2022/header.module.mjs +2 -2
  491. package/components/page/header/fesm2022/index.mjs +14 -8
  492. package/components/page/header/fesm2022/index.mjs.map +1 -1
  493. package/components/page/header/header.component.d.ts +2 -2
  494. package/components/page/left-panel/bundles/index.umd.js +12 -7
  495. package/components/page/left-panel/esm2022/left-panel.animator.mjs +1 -1
  496. package/components/page/left-panel/esm2022/left-panel.directive.mjs +13 -8
  497. package/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  498. package/components/page/left-panel/fesm2022/index.mjs +14 -9
  499. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  500. package/components/page/left-panel/left-panel.directive.d.ts +2 -2
  501. package/components/page/right-panel/bundles/index.umd.js +11 -6
  502. package/components/page/right-panel/esm2022/right-panel.directive.mjs +12 -7
  503. package/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
  504. package/components/page/right-panel/fesm2022/index.mjs +13 -8
  505. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  506. package/components/page/right-panel/right-panel.directive.d.ts +2 -2
  507. package/components/page/top-nav/bundles/index.umd.js +11 -6
  508. package/components/page/top-nav/esm2022/top-nav.directive.mjs +12 -7
  509. package/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
  510. package/components/page/top-nav/fesm2022/index.mjs +13 -8
  511. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  512. package/components/page/top-nav/top-nav.directive.d.ts +2 -2
  513. package/components/prefab/bundles/index.umd.js +28 -18
  514. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +14 -8
  515. package/components/prefab/esm2022/prefab.directive.mjs +15 -9
  516. package/components/prefab/esm2022/prefab.module.mjs +2 -2
  517. package/components/prefab/fesm2022/index.mjs +26 -15
  518. package/components/prefab/fesm2022/index.mjs.map +1 -1
  519. package/components/prefab/prefab-container/prefab-container.directive.d.ts +2 -2
  520. package/components/prefab/prefab.directive.d.ts +2 -2
  521. package/core/bundles/index.umd.js +135 -146
  522. package/core/esm2022/core.module.mjs +2 -2
  523. package/core/esm2022/public_api.mjs +2 -2
  524. package/core/esm2022/services/constant.service.mjs +2 -2
  525. package/core/esm2022/services/field-type.service.mjs +5 -4
  526. package/core/esm2022/services/field-widget.service.mjs +5 -4
  527. package/core/esm2022/services/pagination.service.mjs +8 -7
  528. package/core/esm2022/services/script-loader.service.mjs +3 -3
  529. package/core/esm2022/services/state-persistence.service.mjs +18 -17
  530. package/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
  531. package/core/esm2022/services/utils.service.mjs +5 -4
  532. package/core/esm2022/services/viewport.service.mjs +5 -4
  533. package/core/esm2022/utils/build-utils.mjs +5 -4
  534. package/core/esm2022/utils/dom.mjs +1 -1
  535. package/core/esm2022/utils/event-notifier.mjs +1 -1
  536. package/core/esm2022/utils/expression-parser.mjs +6 -5
  537. package/core/esm2022/utils/id-generator.mjs +1 -1
  538. package/core/esm2022/utils/lru-cache.mjs +3 -2
  539. package/core/esm2022/utils/utils.mjs +79 -82
  540. package/core/esm2022/utils/watcher.mjs +9 -7
  541. package/core/esm2022/utils/wm-project-properties.mjs +1 -1
  542. package/core/fesm2022/index.mjs +134 -140
  543. package/core/fesm2022/index.mjs.map +1 -1
  544. package/core/public_api.d.ts +1 -1
  545. package/core/services/pagination.service.d.ts +1 -1
  546. package/core/utils/utils.d.ts +5 -9
  547. package/http/bundles/index.umd.js +10 -10
  548. package/http/esm2022/http-service.module.mjs +2 -2
  549. package/http/esm2022/http.service.mjs +7 -6
  550. package/http/esm2022/wm-http-request.mjs +1 -1
  551. package/http/esm2022/wm-http-response.mjs +1 -1
  552. package/http/fesm2022/index.mjs +7 -6
  553. package/http/fesm2022/index.mjs.map +1 -1
  554. package/locales/angular/global/af-na.js +4 -4
  555. package/locales/angular/global/af.js +4 -4
  556. package/locales/angular/global/agq.js +4 -4
  557. package/locales/angular/global/ak.js +4 -4
  558. package/locales/angular/global/am.js +4 -4
  559. package/locales/angular/global/ar-ae.js +4 -4
  560. package/locales/angular/global/ar-bh.js +4 -4
  561. package/locales/angular/global/ar-dj.js +4 -4
  562. package/locales/angular/global/ar-dz.js +4 -4
  563. package/locales/angular/global/ar-eg.js +4 -4
  564. package/locales/angular/global/ar-eh.js +4 -4
  565. package/locales/angular/global/ar-er.js +4 -4
  566. package/locales/angular/global/ar-il.js +4 -4
  567. package/locales/angular/global/ar-iq.js +4 -4
  568. package/locales/angular/global/ar-jo.js +4 -4
  569. package/locales/angular/global/ar-km.js +4 -4
  570. package/locales/angular/global/ar-kw.js +4 -4
  571. package/locales/angular/global/ar-lb.js +4 -4
  572. package/locales/angular/global/ar-ly.js +4 -4
  573. package/locales/angular/global/ar-ma.js +4 -4
  574. package/locales/angular/global/ar-mr.js +4 -4
  575. package/locales/angular/global/ar-om.js +4 -4
  576. package/locales/angular/global/ar-ps.js +4 -4
  577. package/locales/angular/global/ar-qa.js +4 -4
  578. package/locales/angular/global/ar-sa.js +4 -4
  579. package/locales/angular/global/ar-sd.js +4 -4
  580. package/locales/angular/global/ar-so.js +4 -4
  581. package/locales/angular/global/ar-ss.js +4 -4
  582. package/locales/angular/global/ar-sy.js +4 -4
  583. package/locales/angular/global/ar-td.js +4 -4
  584. package/locales/angular/global/ar-tn.js +4 -4
  585. package/locales/angular/global/ar-ye.js +4 -4
  586. package/locales/angular/global/ar.js +4 -4
  587. package/locales/angular/global/as.js +4 -4
  588. package/locales/angular/global/asa.js +4 -4
  589. package/locales/angular/global/ast.js +4 -4
  590. package/locales/angular/global/az-cyrl.js +4 -4
  591. package/locales/angular/global/az-latn.js +4 -4
  592. package/locales/angular/global/az.js +4 -4
  593. package/locales/angular/global/bas.js +4 -4
  594. package/locales/angular/global/be-tarask.js +4 -4
  595. package/locales/angular/global/be.js +4 -4
  596. package/locales/angular/global/bem.js +4 -4
  597. package/locales/angular/global/bez.js +4 -4
  598. package/locales/angular/global/bg.js +4 -4
  599. package/locales/angular/global/bm.js +4 -4
  600. package/locales/angular/global/bn-in.js +4 -4
  601. package/locales/angular/global/bn.js +4 -4
  602. package/locales/angular/global/bo-in.js +4 -4
  603. package/locales/angular/global/bo.js +4 -4
  604. package/locales/angular/global/br.js +4 -4
  605. package/locales/angular/global/brx.js +4 -4
  606. package/locales/angular/global/bs-cyrl.js +4 -4
  607. package/locales/angular/global/bs-latn.js +4 -4
  608. package/locales/angular/global/bs.js +4 -4
  609. package/locales/angular/global/ca-ad.js +4 -4
  610. package/locales/angular/global/ca-es-valencia.js +4 -4
  611. package/locales/angular/global/ca-fr.js +4 -4
  612. package/locales/angular/global/ca-it.js +4 -4
  613. package/locales/angular/global/ca.js +4 -4
  614. package/locales/angular/global/ccp-in.js +4 -4
  615. package/locales/angular/global/ccp.js +4 -4
  616. package/locales/angular/global/ce.js +4 -4
  617. package/locales/angular/global/ceb.js +4 -4
  618. package/locales/angular/global/cgg.js +4 -4
  619. package/locales/angular/global/chr.js +4 -4
  620. package/locales/angular/global/ckb-ir.js +4 -4
  621. package/locales/angular/global/ckb.js +4 -4
  622. package/locales/angular/global/cs.js +4 -4
  623. package/locales/angular/global/cy.js +4 -4
  624. package/locales/angular/global/da-gl.js +4 -4
  625. package/locales/angular/global/da.js +4 -4
  626. package/locales/angular/global/dav.js +4 -4
  627. package/locales/angular/global/de-at.js +4 -4
  628. package/locales/angular/global/de-be.js +4 -4
  629. package/locales/angular/global/de-ch.js +4 -4
  630. package/locales/angular/global/de-it.js +4 -4
  631. package/locales/angular/global/de-li.js +4 -4
  632. package/locales/angular/global/de-lu.js +4 -4
  633. package/locales/angular/global/de.js +4 -4
  634. package/locales/angular/global/dje.js +4 -4
  635. package/locales/angular/global/doi.js +4 -4
  636. package/locales/angular/global/dsb.js +4 -4
  637. package/locales/angular/global/dua.js +4 -4
  638. package/locales/angular/global/dyo.js +4 -4
  639. package/locales/angular/global/dz.js +4 -4
  640. package/locales/angular/global/ebu.js +4 -4
  641. package/locales/angular/global/ee-tg.js +4 -4
  642. package/locales/angular/global/ee.js +4 -4
  643. package/locales/angular/global/el-cy.js +4 -4
  644. package/locales/angular/global/el.js +4 -4
  645. package/locales/angular/global/en-001.js +4 -4
  646. package/locales/angular/global/en-150.js +4 -4
  647. package/locales/angular/global/en-ae.js +4 -4
  648. package/locales/angular/global/en-ag.js +4 -4
  649. package/locales/angular/global/en-ai.js +4 -4
  650. package/locales/angular/global/en-as.js +4 -4
  651. package/locales/angular/global/en-at.js +4 -4
  652. package/locales/angular/global/en-au.js +4 -4
  653. package/locales/angular/global/en-bb.js +4 -4
  654. package/locales/angular/global/en-be.js +4 -4
  655. package/locales/angular/global/en-bi.js +4 -4
  656. package/locales/angular/global/en-bm.js +4 -4
  657. package/locales/angular/global/en-bs.js +4 -4
  658. package/locales/angular/global/en-bw.js +4 -4
  659. package/locales/angular/global/en-bz.js +4 -4
  660. package/locales/angular/global/en-ca.js +4 -4
  661. package/locales/angular/global/en-cc.js +4 -4
  662. package/locales/angular/global/en-ch.js +4 -4
  663. package/locales/angular/global/en-ck.js +4 -4
  664. package/locales/angular/global/en-cm.js +4 -4
  665. package/locales/angular/global/en-cx.js +4 -4
  666. package/locales/angular/global/en-cy.js +4 -4
  667. package/locales/angular/global/en-de.js +4 -4
  668. package/locales/angular/global/en-dg.js +4 -4
  669. package/locales/angular/global/en-dk.js +4 -4
  670. package/locales/angular/global/en-dm.js +4 -4
  671. package/locales/angular/global/en-er.js +4 -4
  672. package/locales/angular/global/en-fi.js +4 -4
  673. package/locales/angular/global/en-fj.js +4 -4
  674. package/locales/angular/global/en-fk.js +4 -4
  675. package/locales/angular/global/en-fm.js +4 -4
  676. package/locales/angular/global/en-gb.js +4 -4
  677. package/locales/angular/global/en-gd.js +4 -4
  678. package/locales/angular/global/en-gg.js +4 -4
  679. package/locales/angular/global/en-gh.js +4 -4
  680. package/locales/angular/global/en-gi.js +4 -4
  681. package/locales/angular/global/en-gm.js +4 -4
  682. package/locales/angular/global/en-gu.js +4 -4
  683. package/locales/angular/global/en-gy.js +4 -4
  684. package/locales/angular/global/en-hk.js +4 -4
  685. package/locales/angular/global/en-ie.js +4 -4
  686. package/locales/angular/global/en-il.js +4 -4
  687. package/locales/angular/global/en-im.js +4 -4
  688. package/locales/angular/global/en-in.js +4 -4
  689. package/locales/angular/global/en-io.js +4 -4
  690. package/locales/angular/global/en-je.js +4 -4
  691. package/locales/angular/global/en-jm.js +4 -4
  692. package/locales/angular/global/en-ke.js +4 -4
  693. package/locales/angular/global/en-ki.js +4 -4
  694. package/locales/angular/global/en-kn.js +4 -4
  695. package/locales/angular/global/en-ky.js +4 -4
  696. package/locales/angular/global/en-lc.js +4 -4
  697. package/locales/angular/global/en-lr.js +4 -4
  698. package/locales/angular/global/en-ls.js +4 -4
  699. package/locales/angular/global/en-mg.js +4 -4
  700. package/locales/angular/global/en-mh.js +4 -4
  701. package/locales/angular/global/en-mo.js +4 -4
  702. package/locales/angular/global/en-mp.js +4 -4
  703. package/locales/angular/global/en-ms.js +4 -4
  704. package/locales/angular/global/en-mt.js +4 -4
  705. package/locales/angular/global/en-mu.js +4 -4
  706. package/locales/angular/global/en-mv.js +4 -4
  707. package/locales/angular/global/en-mw.js +4 -4
  708. package/locales/angular/global/en-my.js +4 -4
  709. package/locales/angular/global/en-na.js +4 -4
  710. package/locales/angular/global/en-nf.js +4 -4
  711. package/locales/angular/global/en-ng.js +4 -4
  712. package/locales/angular/global/en-nl.js +4 -4
  713. package/locales/angular/global/en-nr.js +4 -4
  714. package/locales/angular/global/en-nu.js +4 -4
  715. package/locales/angular/global/en-nz.js +4 -4
  716. package/locales/angular/global/en-pg.js +4 -4
  717. package/locales/angular/global/en-ph.js +4 -4
  718. package/locales/angular/global/en-pk.js +4 -4
  719. package/locales/angular/global/en-pn.js +4 -4
  720. package/locales/angular/global/en-pr.js +4 -4
  721. package/locales/angular/global/en-pw.js +4 -4
  722. package/locales/angular/global/en-rw.js +4 -4
  723. package/locales/angular/global/en-sb.js +4 -4
  724. package/locales/angular/global/en-sc.js +4 -4
  725. package/locales/angular/global/en-sd.js +4 -4
  726. package/locales/angular/global/en-se.js +4 -4
  727. package/locales/angular/global/en-sg.js +4 -4
  728. package/locales/angular/global/en-sh.js +4 -4
  729. package/locales/angular/global/en-si.js +4 -4
  730. package/locales/angular/global/en-sl.js +4 -4
  731. package/locales/angular/global/en-ss.js +4 -4
  732. package/locales/angular/global/en-sx.js +4 -4
  733. package/locales/angular/global/en-sz.js +4 -4
  734. package/locales/angular/global/en-tc.js +4 -4
  735. package/locales/angular/global/en-tk.js +4 -4
  736. package/locales/angular/global/en-to.js +4 -4
  737. package/locales/angular/global/en-tt.js +4 -4
  738. package/locales/angular/global/en-tv.js +4 -4
  739. package/locales/angular/global/en-tz.js +4 -4
  740. package/locales/angular/global/en-ug.js +4 -4
  741. package/locales/angular/global/en-um.js +4 -4
  742. package/locales/angular/global/en-vc.js +4 -4
  743. package/locales/angular/global/en-vg.js +4 -4
  744. package/locales/angular/global/en-vi.js +4 -4
  745. package/locales/angular/global/en-vu.js +4 -4
  746. package/locales/angular/global/en-ws.js +4 -4
  747. package/locales/angular/global/en-za.js +4 -4
  748. package/locales/angular/global/en-zm.js +4 -4
  749. package/locales/angular/global/en-zw.js +4 -4
  750. package/locales/angular/global/en.js +4 -4
  751. package/locales/angular/global/eo.js +4 -4
  752. package/locales/angular/global/es-419.js +4 -4
  753. package/locales/angular/global/es-ar.js +4 -4
  754. package/locales/angular/global/es-bo.js +4 -4
  755. package/locales/angular/global/es-br.js +4 -4
  756. package/locales/angular/global/es-bz.js +4 -4
  757. package/locales/angular/global/es-cl.js +4 -4
  758. package/locales/angular/global/es-co.js +4 -4
  759. package/locales/angular/global/es-cr.js +4 -4
  760. package/locales/angular/global/es-cu.js +4 -4
  761. package/locales/angular/global/es-do.js +4 -4
  762. package/locales/angular/global/es-ea.js +4 -4
  763. package/locales/angular/global/es-ec.js +4 -4
  764. package/locales/angular/global/es-gq.js +4 -4
  765. package/locales/angular/global/es-gt.js +4 -4
  766. package/locales/angular/global/es-hn.js +4 -4
  767. package/locales/angular/global/es-ic.js +4 -4
  768. package/locales/angular/global/es-mx.js +4 -4
  769. package/locales/angular/global/es-ni.js +4 -4
  770. package/locales/angular/global/es-pa.js +4 -4
  771. package/locales/angular/global/es-pe.js +4 -4
  772. package/locales/angular/global/es-ph.js +4 -4
  773. package/locales/angular/global/es-pr.js +4 -4
  774. package/locales/angular/global/es-py.js +4 -4
  775. package/locales/angular/global/es-sv.js +4 -4
  776. package/locales/angular/global/es-us.js +4 -4
  777. package/locales/angular/global/es-uy.js +4 -4
  778. package/locales/angular/global/es-ve.js +4 -4
  779. package/locales/angular/global/es.js +4 -4
  780. package/locales/angular/global/et.js +4 -4
  781. package/locales/angular/global/eu.js +4 -4
  782. package/locales/angular/global/ewo.js +4 -4
  783. package/locales/angular/global/fa-af.js +4 -4
  784. package/locales/angular/global/fa.js +4 -4
  785. package/locales/angular/global/ff-adlm-bf.js +4 -4
  786. package/locales/angular/global/ff-adlm-cm.js +4 -4
  787. package/locales/angular/global/ff-adlm-gh.js +4 -4
  788. package/locales/angular/global/ff-adlm-gm.js +4 -4
  789. package/locales/angular/global/ff-adlm-gw.js +4 -4
  790. package/locales/angular/global/ff-adlm-lr.js +4 -4
  791. package/locales/angular/global/ff-adlm-mr.js +4 -4
  792. package/locales/angular/global/ff-adlm-ne.js +4 -4
  793. package/locales/angular/global/ff-adlm-ng.js +4 -4
  794. package/locales/angular/global/ff-adlm-sl.js +4 -4
  795. package/locales/angular/global/ff-adlm-sn.js +4 -4
  796. package/locales/angular/global/ff-adlm.js +4 -4
  797. package/locales/angular/global/ff-cm.js +58 -44
  798. package/locales/angular/global/ff-gn.js +58 -44
  799. package/locales/angular/global/ff-latn-bf.js +4 -4
  800. package/locales/angular/global/ff-latn-cm.js +4 -4
  801. package/locales/angular/global/ff-latn-gh.js +4 -4
  802. package/locales/angular/global/ff-latn-gm.js +4 -4
  803. package/locales/angular/global/ff-latn-gn.js +4 -4
  804. package/locales/angular/global/ff-latn-gw.js +4 -4
  805. package/locales/angular/global/ff-latn-lr.js +4 -4
  806. package/locales/angular/global/ff-latn-mr.js +4 -4
  807. package/locales/angular/global/ff-latn-ne.js +4 -4
  808. package/locales/angular/global/ff-latn-ng.js +4 -4
  809. package/locales/angular/global/ff-latn-sl.js +4 -4
  810. package/locales/angular/global/ff-latn.js +4 -4
  811. package/locales/angular/global/ff-mr.js +58 -44
  812. package/locales/angular/global/ff.js +4 -4
  813. package/locales/angular/global/fi.js +4 -4
  814. package/locales/angular/global/fil.js +4 -4
  815. package/locales/angular/global/fo-dk.js +4 -4
  816. package/locales/angular/global/fo.js +4 -4
  817. package/locales/angular/global/fr-be.js +4 -4
  818. package/locales/angular/global/fr-bf.js +4 -4
  819. package/locales/angular/global/fr-bi.js +4 -4
  820. package/locales/angular/global/fr-bj.js +4 -4
  821. package/locales/angular/global/fr-bl.js +4 -4
  822. package/locales/angular/global/fr-ca.js +4 -4
  823. package/locales/angular/global/fr-cd.js +4 -4
  824. package/locales/angular/global/fr-cf.js +4 -4
  825. package/locales/angular/global/fr-cg.js +4 -4
  826. package/locales/angular/global/fr-ch.js +4 -4
  827. package/locales/angular/global/fr-ci.js +4 -4
  828. package/locales/angular/global/fr-cm.js +4 -4
  829. package/locales/angular/global/fr-dj.js +4 -4
  830. package/locales/angular/global/fr-dz.js +4 -4
  831. package/locales/angular/global/fr-ga.js +4 -4
  832. package/locales/angular/global/fr-gf.js +4 -4
  833. package/locales/angular/global/fr-gn.js +4 -4
  834. package/locales/angular/global/fr-gp.js +4 -4
  835. package/locales/angular/global/fr-gq.js +4 -4
  836. package/locales/angular/global/fr-ht.js +4 -4
  837. package/locales/angular/global/fr-km.js +4 -4
  838. package/locales/angular/global/fr-lu.js +4 -4
  839. package/locales/angular/global/fr-ma.js +4 -4
  840. package/locales/angular/global/fr-mc.js +4 -4
  841. package/locales/angular/global/fr-mf.js +4 -4
  842. package/locales/angular/global/fr-mg.js +4 -4
  843. package/locales/angular/global/fr-ml.js +4 -4
  844. package/locales/angular/global/fr-mq.js +4 -4
  845. package/locales/angular/global/fr-mr.js +4 -4
  846. package/locales/angular/global/fr-mu.js +4 -4
  847. package/locales/angular/global/fr-nc.js +4 -4
  848. package/locales/angular/global/fr-ne.js +4 -4
  849. package/locales/angular/global/fr-pf.js +4 -4
  850. package/locales/angular/global/fr-pm.js +4 -4
  851. package/locales/angular/global/fr-re.js +4 -4
  852. package/locales/angular/global/fr-rw.js +4 -4
  853. package/locales/angular/global/fr-sc.js +4 -4
  854. package/locales/angular/global/fr-sn.js +4 -4
  855. package/locales/angular/global/fr-sy.js +4 -4
  856. package/locales/angular/global/fr-td.js +4 -4
  857. package/locales/angular/global/fr-tg.js +4 -4
  858. package/locales/angular/global/fr-tn.js +4 -4
  859. package/locales/angular/global/fr-vu.js +4 -4
  860. package/locales/angular/global/fr-wf.js +4 -4
  861. package/locales/angular/global/fr-yt.js +4 -4
  862. package/locales/angular/global/fr.js +4 -4
  863. package/locales/angular/global/fur.js +4 -4
  864. package/locales/angular/global/fy.js +4 -4
  865. package/locales/angular/global/ga-gb.js +4 -4
  866. package/locales/angular/global/ga.js +4 -4
  867. package/locales/angular/global/gd.js +4 -4
  868. package/locales/angular/global/gl.js +4 -4
  869. package/locales/angular/global/gsw-fr.js +4 -4
  870. package/locales/angular/global/gsw-li.js +4 -4
  871. package/locales/angular/global/gsw.js +4 -4
  872. package/locales/angular/global/gu.js +4 -4
  873. package/locales/angular/global/guz.js +4 -4
  874. package/locales/angular/global/gv.js +4 -4
  875. package/locales/angular/global/ha-gh.js +4 -4
  876. package/locales/angular/global/ha-ne.js +4 -4
  877. package/locales/angular/global/ha.js +4 -4
  878. package/locales/angular/global/haw.js +4 -4
  879. package/locales/angular/global/he.js +4 -4
  880. package/locales/angular/global/hi-latn.js +4 -4
  881. package/locales/angular/global/hi.js +4 -4
  882. package/locales/angular/global/hr-ba.js +4 -4
  883. package/locales/angular/global/hr.js +4 -4
  884. package/locales/angular/global/hsb.js +4 -4
  885. package/locales/angular/global/hu.js +4 -4
  886. package/locales/angular/global/hy.js +4 -4
  887. package/locales/angular/global/ia.js +4 -4
  888. package/locales/angular/global/id.js +4 -4
  889. package/locales/angular/global/ig.js +4 -4
  890. package/locales/angular/global/ii.js +4 -4
  891. package/locales/angular/global/is.js +4 -4
  892. package/locales/angular/global/it-ch.js +4 -4
  893. package/locales/angular/global/it-sm.js +4 -4
  894. package/locales/angular/global/it-va.js +4 -4
  895. package/locales/angular/global/it.js +4 -4
  896. package/locales/angular/global/ja.js +4 -4
  897. package/locales/angular/global/jgo.js +4 -4
  898. package/locales/angular/global/jmc.js +4 -4
  899. package/locales/angular/global/jv.js +4 -4
  900. package/locales/angular/global/ka.js +4 -4
  901. package/locales/angular/global/kab.js +4 -4
  902. package/locales/angular/global/kam.js +4 -4
  903. package/locales/angular/global/kde.js +4 -4
  904. package/locales/angular/global/kea.js +4 -4
  905. package/locales/angular/global/kgp.js +4 -4
  906. package/locales/angular/global/khq.js +4 -4
  907. package/locales/angular/global/ki.js +4 -4
  908. package/locales/angular/global/kk.js +4 -4
  909. package/locales/angular/global/kkj.js +4 -4
  910. package/locales/angular/global/kl.js +4 -4
  911. package/locales/angular/global/kln.js +4 -4
  912. package/locales/angular/global/km.js +4 -4
  913. package/locales/angular/global/kn.js +4 -4
  914. package/locales/angular/global/ko-kp.js +4 -4
  915. package/locales/angular/global/ko.js +4 -4
  916. package/locales/angular/global/kok.js +4 -4
  917. package/locales/angular/global/ks-arab.js +4 -4
  918. package/locales/angular/global/ks-deva.js +4 -4
  919. package/locales/angular/global/ks.js +4 -4
  920. package/locales/angular/global/ksb.js +4 -4
  921. package/locales/angular/global/ksf.js +4 -4
  922. package/locales/angular/global/ksh.js +4 -4
  923. package/locales/angular/global/ku.js +4 -4
  924. package/locales/angular/global/kw.js +4 -4
  925. package/locales/angular/global/ky.js +4 -4
  926. package/locales/angular/global/lag.js +4 -4
  927. package/locales/angular/global/lb.js +4 -4
  928. package/locales/angular/global/lg.js +4 -4
  929. package/locales/angular/global/lkt.js +4 -4
  930. package/locales/angular/global/ln-ao.js +4 -4
  931. package/locales/angular/global/ln-cf.js +4 -4
  932. package/locales/angular/global/ln-cg.js +4 -4
  933. package/locales/angular/global/ln.js +4 -4
  934. package/locales/angular/global/lo.js +4 -4
  935. package/locales/angular/global/lrc-iq.js +4 -4
  936. package/locales/angular/global/lrc.js +4 -4
  937. package/locales/angular/global/lt.js +4 -4
  938. package/locales/angular/global/lu.js +4 -4
  939. package/locales/angular/global/luo.js +4 -4
  940. package/locales/angular/global/luy.js +4 -4
  941. package/locales/angular/global/lv.js +4 -4
  942. package/locales/angular/global/mai.js +4 -4
  943. package/locales/angular/global/mas-tz.js +4 -4
  944. package/locales/angular/global/mas.js +4 -4
  945. package/locales/angular/global/mer.js +4 -4
  946. package/locales/angular/global/mfe.js +4 -4
  947. package/locales/angular/global/mg.js +4 -4
  948. package/locales/angular/global/mgh.js +4 -4
  949. package/locales/angular/global/mgo.js +4 -4
  950. package/locales/angular/global/mi.js +4 -4
  951. package/locales/angular/global/mk.js +4 -4
  952. package/locales/angular/global/ml.js +4 -4
  953. package/locales/angular/global/mn.js +4 -4
  954. package/locales/angular/global/mni-beng.js +4 -4
  955. package/locales/angular/global/mni.js +4 -4
  956. package/locales/angular/global/mr.js +4 -4
  957. package/locales/angular/global/ms-bn.js +4 -4
  958. package/locales/angular/global/ms-id.js +4 -4
  959. package/locales/angular/global/ms-sg.js +4 -4
  960. package/locales/angular/global/ms.js +4 -4
  961. package/locales/angular/global/mt.js +4 -4
  962. package/locales/angular/global/mua.js +4 -4
  963. package/locales/angular/global/my.js +4 -4
  964. package/locales/angular/global/mzn.js +4 -4
  965. package/locales/angular/global/naq.js +4 -4
  966. package/locales/angular/global/nb-sj.js +4 -4
  967. package/locales/angular/global/nb.js +4 -4
  968. package/locales/angular/global/nd.js +4 -4
  969. package/locales/angular/global/nds-nl.js +4 -4
  970. package/locales/angular/global/nds.js +4 -4
  971. package/locales/angular/global/ne-in.js +4 -4
  972. package/locales/angular/global/ne.js +4 -4
  973. package/locales/angular/global/nl-aw.js +4 -4
  974. package/locales/angular/global/nl-be.js +4 -4
  975. package/locales/angular/global/nl-bq.js +4 -4
  976. package/locales/angular/global/nl-cw.js +4 -4
  977. package/locales/angular/global/nl-sr.js +4 -4
  978. package/locales/angular/global/nl-sx.js +4 -4
  979. package/locales/angular/global/nl.js +4 -4
  980. package/locales/angular/global/nmg.js +4 -4
  981. package/locales/angular/global/nn.js +4 -4
  982. package/locales/angular/global/nnh.js +4 -4
  983. package/locales/angular/global/no.js +4 -4
  984. package/locales/angular/global/nus.js +4 -4
  985. package/locales/angular/global/nyn.js +4 -4
  986. package/locales/angular/global/om-ke.js +4 -4
  987. package/locales/angular/global/om.js +4 -4
  988. package/locales/angular/global/or.js +4 -4
  989. package/locales/angular/global/os-ru.js +4 -4
  990. package/locales/angular/global/os.js +4 -4
  991. package/locales/angular/global/pa-arab.js +4 -4
  992. package/locales/angular/global/pa-guru.js +4 -4
  993. package/locales/angular/global/pa.js +4 -4
  994. package/locales/angular/global/pcm.js +4 -4
  995. package/locales/angular/global/pl.js +4 -4
  996. package/locales/angular/global/ps-pk.js +4 -4
  997. package/locales/angular/global/ps.js +4 -4
  998. package/locales/angular/global/pt-ao.js +4 -4
  999. package/locales/angular/global/pt-ch.js +4 -4
  1000. package/locales/angular/global/pt-cv.js +4 -4
  1001. package/locales/angular/global/pt-gq.js +4 -4
  1002. package/locales/angular/global/pt-gw.js +4 -4
  1003. package/locales/angular/global/pt-lu.js +4 -4
  1004. package/locales/angular/global/pt-mo.js +4 -4
  1005. package/locales/angular/global/pt-mz.js +4 -4
  1006. package/locales/angular/global/pt-pt.js +4 -4
  1007. package/locales/angular/global/pt-st.js +4 -4
  1008. package/locales/angular/global/pt-tl.js +4 -4
  1009. package/locales/angular/global/pt.js +4 -4
  1010. package/locales/angular/global/qu-bo.js +4 -4
  1011. package/locales/angular/global/qu-ec.js +4 -4
  1012. package/locales/angular/global/qu.js +4 -4
  1013. package/locales/angular/global/rm.js +4 -4
  1014. package/locales/angular/global/rn.js +4 -4
  1015. package/locales/angular/global/ro-md.js +4 -4
  1016. package/locales/angular/global/ro.js +4 -4
  1017. package/locales/angular/global/rof.js +4 -4
  1018. package/locales/angular/global/ru-by.js +4 -4
  1019. package/locales/angular/global/ru-kg.js +4 -4
  1020. package/locales/angular/global/ru-kz.js +4 -4
  1021. package/locales/angular/global/ru-md.js +4 -4
  1022. package/locales/angular/global/ru-ua.js +4 -4
  1023. package/locales/angular/global/ru.js +4 -4
  1024. package/locales/angular/global/rw.js +4 -4
  1025. package/locales/angular/global/rwk.js +4 -4
  1026. package/locales/angular/global/sa.js +4 -4
  1027. package/locales/angular/global/sah.js +4 -4
  1028. package/locales/angular/global/saq.js +4 -4
  1029. package/locales/angular/global/sat-olck.js +4 -4
  1030. package/locales/angular/global/sat.js +4 -4
  1031. package/locales/angular/global/sbp.js +4 -4
  1032. package/locales/angular/global/sc.js +4 -4
  1033. package/locales/angular/global/sd-arab.js +4 -4
  1034. package/locales/angular/global/sd-deva.js +4 -4
  1035. package/locales/angular/global/sd.js +4 -4
  1036. package/locales/angular/global/se-fi.js +4 -4
  1037. package/locales/angular/global/se-se.js +4 -4
  1038. package/locales/angular/global/se.js +4 -4
  1039. package/locales/angular/global/seh.js +4 -4
  1040. package/locales/angular/global/ses.js +4 -4
  1041. package/locales/angular/global/sg.js +4 -4
  1042. package/locales/angular/global/shi-latn.js +4 -4
  1043. package/locales/angular/global/shi-tfng.js +4 -4
  1044. package/locales/angular/global/shi.js +4 -4
  1045. package/locales/angular/global/si.js +4 -4
  1046. package/locales/angular/global/sk.js +4 -4
  1047. package/locales/angular/global/sl.js +4 -4
  1048. package/locales/angular/global/smn.js +4 -4
  1049. package/locales/angular/global/sn.js +4 -4
  1050. package/locales/angular/global/so-dj.js +4 -4
  1051. package/locales/angular/global/so-et.js +4 -4
  1052. package/locales/angular/global/so-ke.js +4 -4
  1053. package/locales/angular/global/so.js +4 -4
  1054. package/locales/angular/global/sq-mk.js +4 -4
  1055. package/locales/angular/global/sq-xk.js +4 -4
  1056. package/locales/angular/global/sq.js +4 -4
  1057. package/locales/angular/global/sr-cyrl-ba.js +4 -4
  1058. package/locales/angular/global/sr-cyrl-me.js +4 -4
  1059. package/locales/angular/global/sr-cyrl-xk.js +4 -4
  1060. package/locales/angular/global/sr-cyrl.js +4 -4
  1061. package/locales/angular/global/sr-latn-ba.js +4 -4
  1062. package/locales/angular/global/sr-latn-me.js +4 -4
  1063. package/locales/angular/global/sr-latn-xk.js +4 -4
  1064. package/locales/angular/global/sr-latn.js +4 -4
  1065. package/locales/angular/global/sr.js +4 -4
  1066. package/locales/angular/global/su-latn.js +4 -4
  1067. package/locales/angular/global/su.js +4 -4
  1068. package/locales/angular/global/sv-ax.js +4 -4
  1069. package/locales/angular/global/sv-fi.js +4 -4
  1070. package/locales/angular/global/sv.js +4 -4
  1071. package/locales/angular/global/sw-cd.js +4 -4
  1072. package/locales/angular/global/sw-ke.js +4 -4
  1073. package/locales/angular/global/sw-ug.js +4 -4
  1074. package/locales/angular/global/sw.js +4 -4
  1075. package/locales/angular/global/ta-lk.js +4 -4
  1076. package/locales/angular/global/ta-my.js +4 -4
  1077. package/locales/angular/global/ta-sg.js +4 -4
  1078. package/locales/angular/global/ta.js +4 -4
  1079. package/locales/angular/global/te.js +4 -4
  1080. package/locales/angular/global/teo-ke.js +4 -4
  1081. package/locales/angular/global/teo.js +4 -4
  1082. package/locales/angular/global/tg.js +4 -4
  1083. package/locales/angular/global/th.js +4 -4
  1084. package/locales/angular/global/ti-er.js +4 -4
  1085. package/locales/angular/global/ti.js +4 -4
  1086. package/locales/angular/global/tk.js +4 -4
  1087. package/locales/angular/global/to.js +4 -4
  1088. package/locales/angular/global/tr-cy.js +4 -4
  1089. package/locales/angular/global/tr.js +4 -4
  1090. package/locales/angular/global/tt.js +4 -4
  1091. package/locales/angular/global/twq.js +4 -4
  1092. package/locales/angular/global/tzm.js +4 -4
  1093. package/locales/angular/global/ug.js +4 -4
  1094. package/locales/angular/global/uk.js +4 -4
  1095. package/locales/angular/global/und.js +4 -4
  1096. package/locales/angular/global/ur-in.js +4 -4
  1097. package/locales/angular/global/ur.js +4 -4
  1098. package/locales/angular/global/uz-arab.js +4 -4
  1099. package/locales/angular/global/uz-cyrl.js +4 -4
  1100. package/locales/angular/global/uz-latn.js +4 -4
  1101. package/locales/angular/global/uz.js +4 -4
  1102. package/locales/angular/global/vai-latn.js +4 -4
  1103. package/locales/angular/global/vai-vaii.js +4 -4
  1104. package/locales/angular/global/vai.js +4 -4
  1105. package/locales/angular/global/vi.js +4 -4
  1106. package/locales/angular/global/vun.js +4 -4
  1107. package/locales/angular/global/wae.js +4 -4
  1108. package/locales/angular/global/wo.js +4 -4
  1109. package/locales/angular/global/xh.js +4 -4
  1110. package/locales/angular/global/xog.js +4 -4
  1111. package/locales/angular/global/yav.js +4 -4
  1112. package/locales/angular/global/yi.js +4 -4
  1113. package/locales/angular/global/yo-bj.js +4 -4
  1114. package/locales/angular/global/yo.js +4 -4
  1115. package/locales/angular/global/yrl-co.js +4 -4
  1116. package/locales/angular/global/yrl-ve.js +4 -4
  1117. package/locales/angular/global/yrl.js +4 -4
  1118. package/locales/angular/global/yue-hans.js +4 -4
  1119. package/locales/angular/global/yue-hant.js +4 -4
  1120. package/locales/angular/global/yue.js +4 -4
  1121. package/locales/angular/global/zgh.js +4 -4
  1122. package/locales/angular/global/zh-hans-hk.js +4 -4
  1123. package/locales/angular/global/zh-hans-mo.js +4 -4
  1124. package/locales/angular/global/zh-hans-sg.js +4 -4
  1125. package/locales/angular/global/zh-hans.js +4 -4
  1126. package/locales/angular/global/zh-hant-hk.js +4 -4
  1127. package/locales/angular/global/zh-hant-mo.js +4 -4
  1128. package/locales/angular/global/zh-hant.js +4 -4
  1129. package/locales/angular/global/zh.js +4 -4
  1130. package/locales/angular/global/zu.js +4 -4
  1131. package/mobile/components/basic/default/bundles/index.umd.js +148 -143
  1132. package/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +8 -7
  1133. package/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +7 -6
  1134. package/mobile/components/basic/default/esm2022/basic.module.mjs +2 -2
  1135. package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +47 -43
  1136. package/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +7 -5
  1137. package/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +6 -5
  1138. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +49 -47
  1139. package/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +2 -2
  1140. package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +31 -32
  1141. package/mobile/components/basic/default/fesm2022/index.mjs +146 -140
  1142. package/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  1143. package/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +2 -2
  1144. package/mobile/components/basic/search/bundles/index.umd.js +3 -3
  1145. package/mobile/components/basic/search/esm2022/search.directive.mjs +3 -3
  1146. package/mobile/components/basic/search/esm2022/search.module.mjs +2 -2
  1147. package/mobile/components/basic/search/fesm2022/index.mjs +3 -3
  1148. package/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
  1149. package/mobile/components/containers/segmented-control/bundles/index.umd.js +42 -30
  1150. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +14 -8
  1151. package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +28 -21
  1152. package/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +2 -2
  1153. package/mobile/components/containers/segmented-control/fesm2022/index.mjs +41 -28
  1154. package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  1155. package/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -2
  1156. package/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -2
  1157. package/mobile/components/data/media-list/bundles/index.umd.js +53 -48
  1158. package/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +2 -2
  1159. package/mobile/components/data/media-list/esm2022/media-list.component.mjs +48 -42
  1160. package/mobile/components/data/media-list/esm2022/media-list.module.mjs +2 -2
  1161. package/mobile/components/data/media-list/fesm2022/index.mjs +50 -44
  1162. package/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  1163. package/mobile/components/data/media-list/media-list.component.d.ts +2 -2
  1164. package/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -2
  1165. package/mobile/components/device/barcode-scanner/bundles/index.umd.js +14 -8
  1166. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +15 -9
  1167. package/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +2 -2
  1168. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs +16 -10
  1169. package/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  1170. package/mobile/components/device/camera/bundles/index.umd.js +15 -9
  1171. package/mobile/components/device/camera/camera.component.d.ts +2 -2
  1172. package/mobile/components/device/camera/esm2022/camera.component.mjs +16 -10
  1173. package/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
  1174. package/mobile/components/device/camera/fesm2022/index.mjs +17 -11
  1175. package/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  1176. package/mobile/components/input/file-upload/bundles/index.umd.js +3 -3
  1177. package/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +3 -3
  1178. package/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  1179. package/mobile/components/input/file-upload/fesm2022/index.mjs +3 -3
  1180. package/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  1181. package/mobile/components/page/default/bundles/index.umd.js +11 -10
  1182. package/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +4 -3
  1183. package/mobile/components/page/default/esm2022/page.directive.mjs +5 -4
  1184. package/mobile/components/page/default/esm2022/page.module.mjs +2 -2
  1185. package/mobile/components/page/default/fesm2022/index.mjs +8 -6
  1186. package/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
  1187. package/mobile/components/page/left-panel/bundles/index.umd.js +3 -3
  1188. package/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +3 -3
  1189. package/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  1190. package/mobile/components/page/left-panel/fesm2022/index.mjs +3 -3
  1191. package/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  1192. package/mobile/components/page/mobile-navbar/bundles/index.umd.js +40 -35
  1193. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +41 -36
  1194. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +2 -2
  1195. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +41 -36
  1196. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  1197. package/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +2 -2
  1198. package/mobile/components/page/tab-bar/bundles/index.umd.js +52 -46
  1199. package/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +2 -2
  1200. package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +50 -43
  1201. package/mobile/components/page/tab-bar/fesm2022/index.mjs +51 -44
  1202. package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  1203. package/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -2
  1204. package/mobile/core/bundles/index.umd.js +43 -43
  1205. package/mobile/core/esm2022/core.module.mjs +3 -3
  1206. package/mobile/core/esm2022/native.xhr.mjs +1 -1
  1207. package/mobile/core/esm2022/services/device-file-cache.service.mjs +3 -3
  1208. package/mobile/core/esm2022/services/device-file-download.service.mjs +7 -6
  1209. package/mobile/core/esm2022/services/device-file-opener.service.mjs +5 -4
  1210. package/mobile/core/esm2022/services/device-file-upload.service.mjs +6 -5
  1211. package/mobile/core/esm2022/services/device-file.service.mjs +8 -7
  1212. package/mobile/core/esm2022/services/device.service.mjs +5 -4
  1213. package/mobile/core/esm2022/services/ext-app-message.service.mjs +7 -6
  1214. package/mobile/core/esm2022/services/network.service.mjs +11 -10
  1215. package/mobile/core/fesm2022/index.mjs +40 -39
  1216. package/mobile/core/fesm2022/index.mjs.map +1 -1
  1217. package/mobile/core/services/ext-app-message.service.d.ts +1 -1
  1218. package/mobile/core/services/network.service.d.ts +7 -1
  1219. package/mobile/offline/bundles/index.umd.js +176 -159
  1220. package/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
  1221. package/mobile/offline/esm2022/offline.module.mjs +3 -3
  1222. package/mobile/offline/esm2022/services/change-log.service.mjs +9 -8
  1223. package/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +39 -37
  1224. package/mobile/offline/esm2022/services/local-db-management.service.mjs +56 -47
  1225. package/mobile/offline/esm2022/services/local-db.service.mjs +7 -6
  1226. package/mobile/offline/esm2022/services/local-key-value.service.mjs +2 -2
  1227. package/mobile/offline/esm2022/services/push.service.mjs +3 -3
  1228. package/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
  1229. package/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
  1230. package/mobile/offline/esm2022/services/workers/id-resolver.mjs +3 -3
  1231. package/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
  1232. package/mobile/offline/esm2022/utils/file-upload.utils.mjs +1 -1
  1233. package/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
  1234. package/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
  1235. package/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
  1236. package/mobile/offline/esm2022/utils/utils.mjs +1 -1
  1237. package/mobile/offline/fesm2022/index.mjs +171 -153
  1238. package/mobile/offline/fesm2022/index.mjs.map +1 -1
  1239. package/mobile/placeholder/runtime/bundles/index.umd.js +3 -2
  1240. package/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +3 -2
  1241. package/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
  1242. package/mobile/placeholder/runtime/fesm2022/index.mjs +3 -2
  1243. package/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
  1244. package/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +1 -1
  1245. package/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1246. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +1 -1
  1247. package/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1248. package/mobile/runtime/bundles/index.umd.js +21 -17
  1249. package/mobile/runtime/esm2022/components/app-ext.component.mjs +4 -3
  1250. package/mobile/runtime/esm2022/mobile-runtime.module.mjs +5 -4
  1251. package/mobile/runtime/esm2022/services/cookie.service.mjs +7 -3
  1252. package/mobile/runtime/esm2022/services/http-interceptor.service.mjs +6 -5
  1253. package/mobile/runtime/esm2022/services/webprocess.service.mjs +3 -3
  1254. package/mobile/runtime/fesm2022/index.mjs +18 -13
  1255. package/mobile/runtime/fesm2022/index.mjs.map +1 -1
  1256. package/mobile/runtime-dynamic/bundles/index.umd.js +5 -5
  1257. package/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1258. package/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +5 -5
  1259. package/mobile/runtime-dynamic/fesm2022/index.mjs +5 -5
  1260. package/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1261. package/mobile/variables/bundles/index.umd.js +28 -21
  1262. package/mobile/variables/esm2022/services/camera-service.mjs +5 -5
  1263. package/mobile/variables/esm2022/services/contacts-service.mjs +1 -1
  1264. package/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
  1265. package/mobile/variables/esm2022/services/device-service/device-service.mjs +1 -1
  1266. package/mobile/variables/esm2022/services/device-service/location-service.mjs +1 -1
  1267. package/mobile/variables/esm2022/services/file-service.mjs +11 -3
  1268. package/mobile/variables/esm2022/services/scan-service.mjs +1 -1
  1269. package/mobile/variables/esm2022/variables.module.mjs +3 -3
  1270. package/mobile/variables/fesm2022/index.mjs +24 -16
  1271. package/mobile/variables/fesm2022/index.mjs.map +1 -1
  1272. package/oAuth/bundles/index.umd.js +15 -15
  1273. package/oAuth/esm2022/oAuth.module.mjs +2 -2
  1274. package/oAuth/esm2022/oAuth.service.mjs +6 -5
  1275. package/oAuth/esm2022/oAuth.utils.mjs +8 -7
  1276. package/oAuth/fesm2022/index.mjs +12 -11
  1277. package/oAuth/fesm2022/index.mjs.map +1 -1
  1278. package/package.json +1 -1
  1279. package/runtime/base/bundles/index.umd.js +243 -237
  1280. package/runtime/base/esm2022/components/app-component/app.component.mjs +27 -27
  1281. package/runtime/base/esm2022/components/app-spinner.component.mjs +9 -8
  1282. package/runtime/base/esm2022/components/base-layout.component.mjs +5 -4
  1283. package/runtime/base/esm2022/components/base-page.component.mjs +16 -15
  1284. package/runtime/base/esm2022/components/base-partial.component.mjs +15 -14
  1285. package/runtime/base/esm2022/components/base-prefab.component.mjs +17 -16
  1286. package/runtime/base/esm2022/components/base-spa-page.component.mjs +16 -15
  1287. package/runtime/base/esm2022/components/custom-toaster.component.mjs +17 -15
  1288. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +4 -3
  1289. package/runtime/base/esm2022/components/prefab-preview.component.mjs +4 -3
  1290. package/runtime/base/esm2022/directives/accessroles.directive.mjs +13 -12
  1291. package/runtime/base/esm2022/directives/prefab.directive.mjs +4 -4
  1292. package/runtime/base/esm2022/guards/auth.guard.mjs +3 -3
  1293. package/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +3 -3
  1294. package/runtime/base/esm2022/guards/page-not-found.guard.mjs +3 -3
  1295. package/runtime/base/esm2022/guards/role.guard.mjs +5 -4
  1296. package/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +4 -4
  1297. package/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +5 -5
  1298. package/runtime/base/esm2022/resolves/app-extension.resolve.mjs +3 -3
  1299. package/runtime/base/esm2022/resolves/app-js.resolve.mjs +3 -3
  1300. package/runtime/base/esm2022/resolves/app-variables.resolve.mjs +3 -3
  1301. package/runtime/base/esm2022/resolves/i18n.resolve.mjs +3 -3
  1302. package/runtime/base/esm2022/resolves/metadata.resolve.mjs +3 -3
  1303. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +3 -3
  1304. package/runtime/base/esm2022/runtime-base.module.mjs +3 -3
  1305. package/runtime/base/esm2022/services/app-defaults.service.mjs +3 -3
  1306. package/runtime/base/esm2022/services/app.manager.service.mjs +19 -16
  1307. package/runtime/base/esm2022/services/app.service.mjs +9 -8
  1308. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +5 -4
  1309. package/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -5
  1310. package/runtime/base/esm2022/services/i18n.service.mjs +15 -13
  1311. package/runtime/base/esm2022/services/navigation.service.mjs +10 -9
  1312. package/runtime/base/esm2022/services/pipe-provider.service.mjs +3 -3
  1313. package/runtime/base/esm2022/services/pipe.service.mjs +3 -3
  1314. package/runtime/base/esm2022/services/prefab-manager.service.mjs +5 -4
  1315. package/runtime/base/esm2022/services/spinner.service.mjs +9 -8
  1316. package/runtime/base/esm2022/services/toaster.service.mjs +8 -7
  1317. package/runtime/base/esm2022/util/fragment-monitor.mjs +3 -3
  1318. package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +7 -8
  1319. package/runtime/base/fesm2022/index.mjs +253 -247
  1320. package/runtime/base/fesm2022/index.mjs.map +1 -1
  1321. package/runtime/base/overrides/wm_dom_renderer.d.ts +2 -2
  1322. package/runtime/base/services/i18n.service.d.ts +1 -1
  1323. package/runtime/dynamic/bundles/index.umd.js +22 -21
  1324. package/runtime/dynamic/esm2022/app/app.module.mjs +1 -1
  1325. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +4 -3
  1326. package/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +3 -3
  1327. package/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +3 -3
  1328. package/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +3 -3
  1329. package/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +3 -3
  1330. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +6 -5
  1331. package/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +3 -3
  1332. package/runtime/dynamic/esm2022/main.mjs +3 -2
  1333. package/runtime/dynamic/fesm2022/index.mjs +21 -19
  1334. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  1335. package/scripts/datatable/datatable.js +2 -1
  1336. package/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
  1337. package/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
  1338. package/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
  1339. package/security/bundles/index.umd.js +17 -17
  1340. package/security/esm2022/security.module.mjs +2 -2
  1341. package/security/esm2022/security.service.mjs +14 -13
  1342. package/security/fesm2022/index.mjs +14 -13
  1343. package/security/fesm2022/index.mjs.map +1 -1
  1344. package/security/security.service.d.ts +1 -1
  1345. package/swipey/esm2022/swipe.animation.mjs +1 -1
  1346. package/swipey/fesm2022/index.mjs.map +1 -1
  1347. package/transpiler/bundles/index.umd.js +10 -9
  1348. package/transpiler/esm2022/build.mjs +8 -6
  1349. package/transpiler/fesm2022/index.mjs +7 -5
  1350. package/transpiler/fesm2022/index.mjs.map +1 -1
  1351. package/variables/bundles/index.umd.js +160 -150
  1352. package/variables/esm2022/factory/variable.factory.mjs +1 -1
  1353. package/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
  1354. package/variables/esm2022/manager/action/logout-action.manager.mjs +1 -1
  1355. package/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
  1356. package/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
  1357. package/variables/esm2022/manager/variable/device-variable-manager.mjs +1 -1
  1358. package/variables/esm2022/manager/variable/device-variable-service.mjs +1 -1
  1359. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
  1360. package/variables/esm2022/model/action/notification-action.mjs +1 -1
  1361. package/variables/esm2022/service/metadata-service/metadata.service.mjs +3 -3
  1362. package/variables/esm2022/service/variables.service.mjs +9 -8
  1363. package/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
  1364. package/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
  1365. package/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
  1366. package/variables/esm2022/util/variable/variables.utils.mjs +75 -70
  1367. package/variables/esm2022/variables.module.mjs +2 -2
  1368. package/variables/fesm2022/index.mjs +174 -163
  1369. package/variables/fesm2022/index.mjs.map +1 -1
  1370. package/variables/util/variable/service-variable.utils.d.ts +1 -1
  1371. package/build-task/package.json +0 -28
  1372. package/components/advanced/carousel/package.json +0 -23
  1373. package/components/advanced/login/package.json +0 -23
  1374. package/components/advanced/marquee/package.json +0 -23
  1375. package/components/base/package.json +0 -28
  1376. package/components/basic/default/package.json +0 -23
  1377. package/components/basic/progress/package.json +0 -23
  1378. package/components/basic/rich-text-editor/package.json +0 -23
  1379. package/components/basic/search/package.json +0 -23
  1380. package/components/basic/tree/package.json +0 -23
  1381. package/components/chart/package.json +0 -23
  1382. package/components/containers/accordion/package.json +0 -23
  1383. package/components/containers/layout-grid/package.json +0 -23
  1384. package/components/containers/linear-layout/package.json +0 -23
  1385. package/components/containers/panel/package.json +0 -23
  1386. package/components/containers/tabs/package.json +0 -23
  1387. package/components/containers/tile/package.json +0 -23
  1388. package/components/containers/wizard/package.json +0 -23
  1389. package/components/data/card/package.json +0 -23
  1390. package/components/data/form/package.json +0 -23
  1391. package/components/data/list/package.json +0 -23
  1392. package/components/data/live-table/package.json +0 -23
  1393. package/components/data/pagination/package.json +0 -23
  1394. package/components/data/table/package.json +0 -23
  1395. package/components/dialogs/alert-dialog/package.json +0 -23
  1396. package/components/dialogs/confirm-dialog/package.json +0 -23
  1397. package/components/dialogs/default/package.json +0 -23
  1398. package/components/dialogs/design-dialog/package.json +0 -23
  1399. package/components/dialogs/iframe-dialog/package.json +0 -23
  1400. package/components/dialogs/login-dialog/package.json +0 -23
  1401. package/components/dialogs/partial-dialog/package.json +0 -23
  1402. package/components/input/calendar/package.json +0 -23
  1403. package/components/input/chips/package.json +0 -23
  1404. package/components/input/color-picker/package.json +0 -23
  1405. package/components/input/currency/package.json +0 -23
  1406. package/components/input/default/package.json +0 -23
  1407. package/components/input/epoch/package.json +0 -23
  1408. package/components/input/file-upload/package.json +0 -23
  1409. package/components/input/rating/package.json +0 -23
  1410. package/components/input/slider/package.json +0 -23
  1411. package/components/navigation/breadcrumb/package.json +0 -23
  1412. package/components/navigation/menu/package.json +0 -23
  1413. package/components/navigation/navbar/package.json +0 -23
  1414. package/components/navigation/popover/package.json +0 -23
  1415. package/components/page/default/package.json +0 -23
  1416. package/components/page/footer/package.json +0 -23
  1417. package/components/page/header/package.json +0 -23
  1418. package/components/page/left-panel/package.json +0 -23
  1419. package/components/page/right-panel/package.json +0 -23
  1420. package/components/page/top-nav/package.json +0 -23
  1421. package/components/prefab/package.json +0 -23
  1422. package/core/package.json +0 -29
  1423. package/http/package.json +0 -28
  1424. package/mobile/components/basic/default/package.json +0 -23
  1425. package/mobile/components/basic/search/package.json +0 -23
  1426. package/mobile/components/containers/segmented-control/package.json +0 -23
  1427. package/mobile/components/data/media-list/package.json +0 -23
  1428. package/mobile/components/device/barcode-scanner/package.json +0 -23
  1429. package/mobile/components/device/camera/package.json +0 -23
  1430. package/mobile/components/input/file-upload/package.json +0 -23
  1431. package/mobile/components/page/default/package.json +0 -23
  1432. package/mobile/components/page/left-panel/package.json +0 -23
  1433. package/mobile/components/page/mobile-navbar/package.json +0 -23
  1434. package/mobile/components/page/tab-bar/package.json +0 -23
  1435. package/mobile/core/package.json +0 -28
  1436. package/mobile/offline/package.json +0 -28
  1437. package/mobile/placeholder/runtime/package.json +0 -27
  1438. package/mobile/placeholder/runtime-dynamic/package.json +0 -23
  1439. package/mobile/runtime/package.json +0 -28
  1440. package/mobile/runtime-dynamic/package.json +0 -23
  1441. package/mobile/variables/package.json +0 -28
  1442. package/oAuth/package.json +0 -28
  1443. package/runtime/base/package.json +0 -28
  1444. package/runtime/dynamic/package.json +0 -28
  1445. package/security/package.json +0 -28
  1446. package/swipey/package.json +0 -28
  1447. package/transpiler/package.json +0 -29
  1448. package/variables/package.json +0 -28
@@ -1,14 +1,15 @@
1
- import { Directive, Injector, Optional } from '@angular/core';
1
+ import { Directive, Inject, Injector, Optional } from '@angular/core';
2
2
  import { BaseComponent, provideAsWidgetRef } from '@wm/components/base';
3
3
  import { registerProps } from './form-action.props';
4
4
  import { FormComponent } from '../form.component';
5
+ import { isUndefined } from "lodash-es";
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../form.component";
7
8
  const WIDGET_CONFIG = { widgetType: 'wm-form-action', hostClass: '' };
8
9
  export class FormActionDirective extends BaseComponent {
9
10
  static { this.initializeProps = registerProps(); }
10
- constructor(inj, form) {
11
- super(inj, WIDGET_CONFIG);
11
+ constructor(inj, form, explicitContext) {
12
+ super(inj, WIDGET_CONFIG, explicitContext);
12
13
  this.form = form;
13
14
  }
14
15
  populateAction() {
@@ -18,7 +19,7 @@ export class FormActionDirective extends BaseComponent {
18
19
  show: this.show,
19
20
  class: this.class ? this.class : (this['widget-type'] === 'button' ? 'btn-secondary' : ''),
20
21
  iconclass: this.iconclass || '',
21
- title: _.isUndefined(this.title) ? (this['display-name'] || '') : this.title,
22
+ title: isUndefined(this.title) ? (this['display-name'] || '') : this.title,
22
23
  action: this.action,
23
24
  accessroles: this.accessroles,
24
25
  shortcutkey: this.shortcutkey,
@@ -51,12 +52,12 @@ export class FormActionDirective extends BaseComponent {
51
52
  break;
52
53
  }
53
54
  }
54
- static { this.ɵfac = function FormActionDirective_Factory(t) { return new (t || FormActionDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.FormComponent, 8)); }; }
55
+ static { this.ɵfac = function FormActionDirective_Factory(t) { return new (t || FormActionDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.FormComponent, 8), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
55
56
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FormActionDirective, selectors: [["", "wmFormAction", ""]], features: [i0.ɵɵProvidersFeature([
56
57
  provideAsWidgetRef(FormActionDirective)
57
58
  ]), i0.ɵɵInheritDefinitionFeature] }); }
58
59
  }
59
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormActionDirective, [{
60
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormActionDirective, [{
60
61
  type: Directive,
61
62
  args: [{
62
63
  selector: '[wmFormAction]',
@@ -64,7 +65,12 @@ export class FormActionDirective extends BaseComponent {
64
65
  provideAsWidgetRef(FormActionDirective)
65
66
  ]
66
67
  }]
67
- }], function () { return [{ type: i0.Injector }, { type: i1.FormComponent, decorators: [{
68
+ }], () => [{ type: i0.Injector }, { type: i1.FormComponent, decorators: [{
68
69
  type: Optional
69
- }] }]; }, null); })();
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvZm9ybS9zcmMvZm9ybS1hY3Rpb24vZm9ybS1hY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBSWxELE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztBQVFwRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTthQUMzQyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxDQUFDO0lBd0J6QyxZQUFZLEdBQWEsRUFBcUIsSUFBbUI7UUFDN0QsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQURnQixTQUFJLEdBQUosSUFBSSxDQUFlO0lBRWpFLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNiLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2pDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzFGLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUU7WUFDL0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDNUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBQ0QsUUFBUSxHQUFHLEVBQUU7WUFDVCxLQUFLLGNBQWM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3BDO2dCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixNQUFNO1NBQ1Q7SUFDTCxDQUFDO29GQXRFUSxtQkFBbUI7b0VBQW5CLG1CQUFtQiwwRUFKakI7Z0JBQ1Asa0JBQWtCLENBQUMsbUJBQW1CLENBQUM7YUFDMUM7O3VGQUVRLG1CQUFtQjtjQU4vQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsU0FBUyxFQUFFO29CQUNQLGtCQUFrQixxQkFBcUI7aUJBQzFDO2FBQ0o7O3NCQTBCK0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0b3IsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgcHJvdmlkZUFzV2lkZ2V0UmVmIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2Zvcm0tYWN0aW9uLnByb3BzJztcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtLmNvbXBvbmVudCc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tZm9ybS1hY3Rpb24nLCBob3N0Q2xhc3M6ICcnfTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21Gb3JtQWN0aW9uXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihGb3JtQWN0aW9uRGlyZWN0aXZlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUFjdGlvbkRpcmVjdGl2ZSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBhY2Nlc3Nyb2xlcztcbiAgICBhY3Rpb247XG4gICAgYmluZGluZztcbiAgICBjbGFzcztcbiAgICBkaXNhYmxlZDtcbiAgICBkaXNwbGF5TmFtZTtcbiAgICBpY29uY2xhc3M7XG4gICAgaWNvbm5hbWU7XG4gICAga2V5O1xuICAgIHBvc2l0aW9uO1xuICAgIHNob3J0Y3V0a2V5O1xuICAgIHNob3c7XG4gICAgdGFiaW5kZXg7XG4gICAgdGl0bGU7XG4gICAgdHlwZTtcbiAgICB1cGRhdGVNb2RlO1xuICAgIGJ1dHRvbkRlZjtcbiAgICBoeXBlcmxpbms7XG4gICAgdGFyZ2V0O1xuXG4gICAgcHJpdmF0ZSBfcHJvcHNJbml0aWFsaXplZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBPcHRpb25hbCgpIHB1YmxpYyBmb3JtOiBGb3JtQ29tcG9uZW50KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG4gICAgfVxuXG4gICAgcG9wdWxhdGVBY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuYnV0dG9uRGVmID0ge1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSB8fCB0aGlzLmJpbmRpbmcsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogdGhpc1snZGlzcGxheS1uYW1lJ10sXG4gICAgICAgICAgICBzaG93OiB0aGlzLnNob3csXG4gICAgICAgICAgICBjbGFzczogdGhpcy5jbGFzcyA/IHRoaXMuY2xhc3MgOiAodGhpc1snd2lkZ2V0LXR5cGUnXSA9PT0gJ2J1dHRvbicgPyAnYnRuLXNlY29uZGFyeScgOiAnJyksXG4gICAgICAgICAgICBpY29uY2xhc3M6IHRoaXMuaWNvbmNsYXNzIHx8ICcnLFxuICAgICAgICAgICAgdGl0bGU6IF8uaXNVbmRlZmluZWQodGhpcy50aXRsZSkgPyAodGhpc1snZGlzcGxheS1uYW1lJ10gfHwgJycpIDogdGhpcy50aXRsZSxcbiAgICAgICAgICAgIGFjdGlvbjogdGhpcy5hY3Rpb24sXG4gICAgICAgICAgICBhY2Nlc3Nyb2xlczogdGhpcy5hY2Nlc3Nyb2xlcyxcbiAgICAgICAgICAgIHNob3J0Y3V0a2V5OiB0aGlzLnNob3J0Y3V0a2V5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgICAgICB0YWJpbmRleDogdGhpcy50YWJpbmRleCxcbiAgICAgICAgICAgIGljb25uYW1lOiB0aGlzLmljb25uYW1lLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgdXBkYXRlTW9kZTogdGhpc1sndXBkYXRlLW1vZGUnXSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgd2lkZ2V0VHlwZTogdGhpc1snd2lkZ2V0LXR5cGUnXSxcbiAgICAgICAgICAgIGh5cGVybGluazogdGhpcy5oeXBlcmxpbmssXG4gICAgICAgICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX3Byb3BzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnBvcHVsYXRlQWN0aW9uKCk7XG4gICAgICAgIHRoaXMuZm9ybS5yZWdpc3RlckFjdGlvbnModGhpcy5idXR0b25EZWYpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9wcm9wc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXktbmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25EZWYuZGlzcGxheU5hbWUgPSBudjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25EZWZba2V5XSA9IG52O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
70
+ }] }, { type: undefined, decorators: [{
71
+ type: Inject,
72
+ args: ['EXPLICIT_CONTEXT']
73
+ }, {
74
+ type: Optional
75
+ }] }], null); })();
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvZm9ybS9zcmMvZm9ybS1hY3Rpb24vZm9ybS1hY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7O0FBRXRDLE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztBQVFwRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTthQUMzQyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQXdCekMsWUFBWSxHQUFhLEVBQXFCLElBQW1CLEVBQTBDLGVBQW9CO1FBQzNILEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBREQsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUVqRSxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxRixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQy9CLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDMUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1gsQ0FBQztRQUNELFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDVixLQUFLLGNBQWM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3BDO2dCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixNQUFNO1FBQ1YsQ0FBQztJQUNMLENBQUM7b0ZBdEVRLG1CQUFtQixxR0F5QitDLGtCQUFrQjtvRUF6QnBGLG1CQUFtQiwwRUFKakI7Z0JBQ1Asa0JBQWtCLENBQUMsbUJBQW1CLENBQUM7YUFDMUM7O2lGQUVRLG1CQUFtQjtjQU4vQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsU0FBUyxFQUFFO29CQUNQLGtCQUFrQixxQkFBcUI7aUJBQzFDO2FBQ0o7O3NCQTBCK0IsUUFBUTs7c0JBQWdDLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBwcm92aWRlQXNXaWRnZXRSZWYgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vZm9ybS1hY3Rpb24ucHJvcHMnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7aXNVbmRlZmluZWR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tZm9ybS1hY3Rpb24nLCBob3N0Q2xhc3M6ICcnfTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21Gb3JtQWN0aW9uXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihGb3JtQWN0aW9uRGlyZWN0aXZlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUFjdGlvbkRpcmVjdGl2ZSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBhY2Nlc3Nyb2xlcztcbiAgICBhY3Rpb247XG4gICAgYmluZGluZztcbiAgICBjbGFzcztcbiAgICBkaXNhYmxlZDtcbiAgICBkaXNwbGF5TmFtZTtcbiAgICBpY29uY2xhc3M7XG4gICAgaWNvbm5hbWU7XG4gICAga2V5O1xuICAgIHBvc2l0aW9uO1xuICAgIHNob3J0Y3V0a2V5O1xuICAgIHNob3c7XG4gICAgdGFiaW5kZXg7XG4gICAgdGl0bGU7XG4gICAgdHlwZTtcbiAgICB1cGRhdGVNb2RlO1xuICAgIGJ1dHRvbkRlZjtcbiAgICBoeXBlcmxpbms7XG4gICAgdGFyZ2V0O1xuXG4gICAgcHJpdmF0ZSBfcHJvcHNJbml0aWFsaXplZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBPcHRpb25hbCgpIHB1YmxpYyBmb3JtOiBGb3JtQ29tcG9uZW50LCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cblxuICAgIHBvcHVsYXRlQWN0aW9uKCkge1xuICAgICAgICB0aGlzLmJ1dHRvbkRlZiA9IHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXkgfHwgdGhpcy5iaW5kaW5nLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IHRoaXNbJ2Rpc3BsYXktbmFtZSddLFxuICAgICAgICAgICAgc2hvdzogdGhpcy5zaG93LFxuICAgICAgICAgICAgY2xhc3M6IHRoaXMuY2xhc3MgPyB0aGlzLmNsYXNzIDogKHRoaXNbJ3dpZGdldC10eXBlJ10gPT09ICdidXR0b24nID8gJ2J0bi1zZWNvbmRhcnknIDogJycpLFxuICAgICAgICAgICAgaWNvbmNsYXNzOiB0aGlzLmljb25jbGFzcyB8fCAnJyxcbiAgICAgICAgICAgIHRpdGxlOiBpc1VuZGVmaW5lZCh0aGlzLnRpdGxlKSA/ICh0aGlzWydkaXNwbGF5LW5hbWUnXSB8fCAnJykgOiB0aGlzLnRpdGxlLFxuICAgICAgICAgICAgYWN0aW9uOiB0aGlzLmFjdGlvbixcbiAgICAgICAgICAgIGFjY2Vzc3JvbGVzOiB0aGlzLmFjY2Vzc3JvbGVzLFxuICAgICAgICAgICAgc2hvcnRjdXRrZXk6IHRoaXMuc2hvcnRjdXRrZXksXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgICAgIHRhYmluZGV4OiB0aGlzLnRhYmluZGV4LFxuICAgICAgICAgICAgaWNvbm5hbWU6IHRoaXMuaWNvbm5hbWUsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICB1cGRhdGVNb2RlOiB0aGlzWyd1cGRhdGUtbW9kZSddLFxuICAgICAgICAgICAgcG9zaXRpb246IHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB3aWRnZXRUeXBlOiB0aGlzWyd3aWRnZXQtdHlwZSddLFxuICAgICAgICAgICAgaHlwZXJsaW5rOiB0aGlzLmh5cGVybGluayxcbiAgICAgICAgICAgIHRhcmdldDogdGhpcy50YXJnZXRcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fcHJvcHNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucG9wdWxhdGVBY3Rpb24oKTtcbiAgICAgICAgdGhpcy5mb3JtLnJlZ2lzdGVyQWN0aW9ucyh0aGlzLmJ1dHRvbkRlZik7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBpZiAoIXRoaXMuX3Byb3BzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnZGlzcGxheS1uYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkRlZi5kaXNwbGF5TmFtZSA9IG52O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkRlZltrZXldID0gbnY7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -6,6 +6,7 @@ import { BaseFieldValidations, Context, getDefaultViewModeWidget, getEvaluatedDa
6
6
  import { ListComponent } from '@wm/components/data/list';
7
7
  import { registerProps } from './form-field.props';
8
8
  import { FormComponent } from '../form.component';
9
+ import { forEach, get, isArray, isObject, join } from "lodash-es";
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../form.component";
11
12
  import * as i2 from "@angular/forms";
@@ -30,14 +31,14 @@ export class FormFieldDirective extends StylableComponent {
30
31
  handleClick(event) {
31
32
  this._clicktriggeredByUser = true;
32
33
  }
33
- constructor(inj, form, fb, viewport, app, parentList, bindChipclass, binddataset, binddisplayexpression, binddisplaylabel, _widgetType, name, binddisplayimagesrc, key, isRange, pcDisplay, mobileDisplay, tabletDisplay, contexts) {
34
+ constructor(inj, form, fb, viewport, app, parentList, bindChipclass, binddataset, binddisplayexpression, binddisplaylabel, _widgetType, name, binddisplayimagesrc, key, isRange, pcDisplay, mobileDisplay, tabletDisplay, contexts, explicitContext) {
34
35
  const WIDGET_CONFIG = {
35
36
  widgetType: 'wm-form-field',
36
37
  hostClass: '',
37
38
  widgetSubType: 'wm-form-field-' + (_widgetType || FormWidgetType.TEXT).trim()
38
39
  };
39
40
  let resolveFn = noop;
40
- super(inj, WIDGET_CONFIG, new Promise(res => resolveFn = res));
41
+ super(inj, WIDGET_CONFIG, explicitContext, new Promise(res => resolveFn = res));
41
42
  this._initPropsRes = resolveFn;
42
43
  this.app = app;
43
44
  this.fieldDefConfig = {};
@@ -123,10 +124,10 @@ export class FormFieldDirective extends StylableComponent {
123
124
  const value = this.value;
124
125
  const displayField = this.displayfield || this.displaylabel;
125
126
  const displayExpr = this.displayexpression;
126
- if (_.isObject(value)) {
127
- if (_.isArray(value)) {
128
- _.forEach(value, obj => {
129
- if (_.isObject(obj)) {
127
+ if (isObject(value)) {
128
+ if (isArray(value)) {
129
+ forEach(value, obj => {
130
+ if (isObject(obj)) {
130
131
  caption.push(this.evaluateExpr(obj, displayField, displayExpr));
131
132
  }
132
133
  });
@@ -134,16 +135,16 @@ export class FormFieldDirective extends StylableComponent {
134
135
  else {
135
136
  caption.push(this.evaluateExpr(value, displayField, displayExpr));
136
137
  }
137
- return _.join(caption, ',');
138
+ return join(caption, ',');
138
139
  }
139
140
  return (value === undefined || value === null) ? '' : this.value;
140
141
  }
141
142
  getCaption() {
142
- return (this.value === undefined || this.value === null) ? (_.get(this.form.dataoutput, this._fieldName) || '') : this.value;
143
+ return (this.value === undefined || this.value === null) ? (get(this.form.dataoutput, this._fieldName) || '') : this.value;
143
144
  }
144
145
  // Notifies changes to observing validation fields
145
146
  notifyChanges() {
146
- _.forEach(this.notifyForFields, field => {
147
+ forEach(this.notifyForFields, field => {
147
148
  field.fieldValidations.validate();
148
149
  });
149
150
  }
@@ -305,7 +306,6 @@ export class FormFieldDirective extends StylableComponent {
305
306
  // explicitly checking for input value or -webkit-autofill to see whether there are any autofilled fields - WMS-20141
306
307
  const hasValue = ((isDefined(val) && val !== '' && val !== null) || captionEl.find('input').val()) || captionEl.find('input:-webkit-autofill').length;
307
308
  this.app.notify('captionPositionAnimate', {
308
- isSelect: true,
309
309
  displayVal: hasValue,
310
310
  nativeEl: captionEl,
311
311
  isSelectMultiple: this.formWidget && this.formWidget.multiple,
@@ -412,7 +412,7 @@ export class FormFieldDirective extends StylableComponent {
412
412
  .subscribe(this.onValueChange.bind(this));
413
413
  this.registerDestroyListener(() => onMaxValueChangeSubscription.unsubscribe());
414
414
  }
415
- this.value = _.get(this.form.formdata, this._fieldName);
415
+ this.value = get(this.form.formdata, this._fieldName);
416
416
  }
417
417
  ngOnInit() {
418
418
  this.ngform = this.form.ngform;
@@ -482,7 +482,7 @@ export class FormFieldDirective extends StylableComponent {
482
482
  this.setReadOnlyState();
483
483
  });
484
484
  }
485
- static { this.ɵfac = function FormFieldDirective_Factory(t) { return new (t || FormFieldDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.FormComponent), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i3.Viewport), i0.ɵɵdirectiveInject(i3.App), i0.ɵɵdirectiveInject(i4.ListComponent, 8), i0.ɵɵinjectAttribute('chipclass.bind'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵinjectAttribute('displayexpression.bind'), i0.ɵɵinjectAttribute('displaylabel.bind'), i0.ɵɵinjectAttribute('widgettype'), i0.ɵɵinjectAttribute('name'), i0.ɵɵinjectAttribute('displayimagesrc.bind'), i0.ɵɵinjectAttribute('key'), i0.ɵɵinjectAttribute('is-range'), i0.ɵɵinjectAttribute('pc-display'), i0.ɵɵinjectAttribute('mobile-display'), i0.ɵɵinjectAttribute('tablet-display'), i0.ɵɵdirectiveInject(Context, 2)); }; }
485
+ static { this.ɵfac = function FormFieldDirective_Factory(t) { return new (t || FormFieldDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.FormComponent), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i3.Viewport), i0.ɵɵdirectiveInject(i3.App), i0.ɵɵdirectiveInject(i4.ListComponent, 8), i0.ɵɵinjectAttribute('chipclass.bind'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵinjectAttribute('displayexpression.bind'), i0.ɵɵinjectAttribute('displaylabel.bind'), i0.ɵɵinjectAttribute('widgettype'), i0.ɵɵinjectAttribute('name'), i0.ɵɵinjectAttribute('displayimagesrc.bind'), i0.ɵɵinjectAttribute('key'), i0.ɵɵinjectAttribute('is-range'), i0.ɵɵinjectAttribute('pc-display'), i0.ɵɵinjectAttribute('mobile-display'), i0.ɵɵinjectAttribute('tablet-display'), i0.ɵɵdirectiveInject(Context, 2), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
486
486
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FormFieldDirective, selectors: [["", "wmFormField", ""]], contentQueries: function FormFieldDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
487
487
  i0.ɵɵcontentQuery(dirIndex, _c0, 7);
488
488
  i0.ɵɵcontentQuery(dirIndex, _c1, 5);
@@ -498,7 +498,7 @@ export class FormFieldDirective extends StylableComponent {
498
498
  { provide: Context, useFactory: () => { return {}; }, multi: true }
499
499
  ]), i0.ɵɵInheritDefinitionFeature] }); }
500
500
  }
501
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormFieldDirective, [{
501
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormFieldDirective, [{
502
502
  type: Directive,
503
503
  args: [{
504
504
  selector: '[wmFormField]',
@@ -509,7 +509,7 @@ export class FormFieldDirective extends StylableComponent {
509
509
  { provide: Context, useFactory: () => { return {}; }, multi: true }
510
510
  ]
511
511
  }]
512
- }], function () { return [{ type: i0.Injector }, { type: i1.FormComponent }, { type: i2.FormBuilder }, { type: i3.Viewport }, { type: i3.App }, { type: i4.ListComponent, decorators: [{
512
+ }], () => [{ type: i0.Injector }, { type: i1.FormComponent }, { type: i2.FormBuilder }, { type: i3.Viewport }, { type: i3.App }, { type: i4.ListComponent, decorators: [{
513
513
  type: Optional
514
514
  }] }, { type: undefined, decorators: [{
515
515
  type: Attribute,
@@ -552,7 +552,12 @@ export class FormFieldDirective extends StylableComponent {
552
552
  }, {
553
553
  type: Inject,
554
554
  args: [Context]
555
- }] }]; }, { formWidget: [{
555
+ }] }, { type: undefined, decorators: [{
556
+ type: Inject,
557
+ args: ['EXPLICIT_CONTEXT']
558
+ }, {
559
+ type: Optional
560
+ }] }], { formWidget: [{
556
561
  type: ContentChild,
557
562
  args: ['formWidget', { static: true }]
558
563
  }], formWidgetMax: [{
@@ -565,4 +570,4 @@ export class FormFieldDirective extends StylableComponent {
565
570
  type: HostListener,
566
571
  args: ['click', ['$event']]
567
572
  }] }); })();
568
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9mb3JtL3NyYy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFFUixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixHQUFHLEVBQ0gsUUFBUSxFQUNSLGNBQWMsRUFDZCxjQUFjLEVBQ2QsU0FBUyxFQUNULFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNYLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGtCQUFrQixFQUNsQixpQkFBaUIsRUFDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7QUFJaEQsb0ZBQW9GO0FBQ3BGLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLEdB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O3VCQUFDLFlBQVk7O3NCQUN0QixTQUFTO3VCQUFDLGdCQUFnQjs7c0JBQzFCLFNBQVM7dUJBQUMsZ0JBQWdCOztzQkFDMUIsSUFBSTs7c0JBQUksTUFBTTt1QkFBQyxPQUFPO3dCQTdGaUIsVUFBVTtrQkFBckQsWUFBWTttQkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO1lBQ1gsYUFBYTtrQkFBM0MsWUFBWTttQkFBQyxlQUFlO1lBZ0VRLGdCQUFnQjtrQkFBcEQsWUFBWTttQkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFJQSxXQUFXO2tCQUE3QyxZQUFZO21CQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIGFkZEZvcklkQXR0cmlidXRlcyxcbiAgICBBcHAsXG4gICAgZGVib3VuY2UsXG4gICAgRm9ybVdpZGdldFR5cGUsXG4gICAgaXNEYXRlVGltZVR5cGUsXG4gICAgaXNEZWZpbmVkLFxuICAgIGlzTW9iaWxlLFxuICAgIG5vb3AsXG4gICAgVmlld3BvcnRcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBCYXNlRmllbGRWYWxpZGF0aW9ucyxcbiAgICBDb250ZXh0LFxuICAgIGdldERlZmF1bHRWaWV3TW9kZVdpZGdldCxcbiAgICBnZXRFdmFsdWF0ZWREYXRhLFxuICAgIHByb3ZpZGVBcyxcbiAgICBwcm92aWRlQXNXaWRnZXRSZWYsXG4gICAgU3R5bGFibGVDb21wb25lbnRcbn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0xpc3RDb21wb25lbnR9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RhdGEvbGlzdCc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9mb3JtLWZpZWxkLnByb3BzJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuXG5kZWNsYXJlIGNvbnN0IF8sICQ7XG5cbi8vIEN1c3RvbSB2YWxpZGF0b3IgdG8gc2hvdyB2YWxpZGF0aW9uIGVycm9yLCBpZiBzZXRWYWxpZGF0aW9uTWVzc2FnZSBtZXRob2QgaXMgdXNlZFxuY29uc3QgY3VzdG9tVmFsaWRhdG9yRm4gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHsgY3VzdG9tOiB0cnVlIH07XG59O1xuXG5jb25zdCBGSUxFX1RZUEVTID0ge1xuICAgICdpbWFnZScgOiAnaW1hZ2UvKicsXG4gICAgJ3ZpZGVvJyA6ICd2aWRlby8qJyxcbiAgICAnYXVkaW8nIDogJ2F1ZGlvLyonXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t3bUZvcm1GaWVsZF0nLFxuICAgIGV4cG9ydEFzOiAnd21Gb3JtRmllbGQnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoRm9ybUZpZWxkRGlyZWN0aXZlKSxcbiAgICAgICAgcHJvdmlkZUFzKEZvcm1GaWVsZERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICB7cHJvdmlkZTogQ29udGV4dCwgdXNlRmFjdG9yeTogKCkgPT4geyByZXR1cm4ge30gfSwgbXVsdGk6IHRydWV9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGREaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2Zvcm1XaWRnZXQnLCB7c3RhdGljOiB0cnVlfSkgZm9ybVdpZGdldDtcbiAgICBAQ29udGVudENoaWxkKCdmb3JtV2lkZ2V0TWF4JykgZm9ybVdpZGdldE1heDtcblxuICAgIHByaXZhdGUgZmI7XG4gICAgcHJpdmF0ZSB2aWV3cG9ydDtcblxuICAgIC8vIGV4Y2x1ZGVQcm9wcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBwcm9wcyB0aGF0IHNob3VsZCBub3QgYmUgYXBwbGllZCBvbiBpbm5lciB3aWRnZXRcbiAgICBwcml2YXRlIGV4Y2x1ZGVQcm9wcztcbiAgICBwcml2YXRlIF92YWxpZGF0b3JzO1xuICAgIHByaXZhdGUgX29sZFVwbG9hZFZhbDtcblxuICAgIG5nZm9ybTogRm9ybUdyb3VwO1xuICAgIGRlZmF1bHR2YWx1ZTtcbiAgICBkaXNwbGF5ZXhwcmVzc2lvbjtcbiAgICBkaXNwbGF5ZmllbGQ7XG4gICAgZGlzcGxheWxhYmVsO1xuICAgIGRpc3BsYXluYW1lO1xuICAgIGdlbmVyYXRvcjtcbiAgICBrZXk7XG4gICAgdGFyZ2V0O1xuICAgIGJpbmRpbmc7XG4gICAgd2lkZ2V0dHlwZTtcbiAgICBjbGFzcztcbiAgICByZWFkb25seTtcbiAgICBzaG93O1xuICAgIHR5cGU7XG4gICAgaXNEYXRhU2V0Qm91bmQ7XG4gICAgdmlld21vZGV3aWRnZXQ7XG4gICAgYmluZGRhdGFzZXQ7XG4gICAgYmluZGRpc3BsYXlleHByZXNzaW9uO1xuICAgIGJpbmRDaGlwY2xhc3M7XG4gICAgZGlzcGxheWltYWdlc3JjOiBzdHJpbmc7XG4gICAgYmluZGRpc3BsYXlpbWFnZXNyYztcbiAgICBiaW5kZGlzcGxheWxhYmVsO1xuICAgIGZvcm07XG4gICAgZmlsZXR5cGU7XG4gICAgZXh0ZW5zaW9ucztcbiAgICBwZXJtaXR0ZWQ7XG4gICAgcGVyaW9kO1xuICAgIGlzUmFuZ2U7XG4gICAgbmFtZTtcbiAgICAvLyBWYWxpZGF0aW9uIHByb3BlcnRpZXNcbiAgICByZXF1aXJlZDtcbiAgICBtYXhjaGFycztcbiAgICBtaW52YWx1ZTtcbiAgICBtYXh2YWx1ZTtcbiAgICByZWdleHA7XG4gICAgZmllbGREZWZDb25maWc7XG4gICAgcGxhY2Vob2xkZXI7XG4gICAgaW5wdXR0eXBlO1xuICAgIHZhbGlkYXRpb25tZXNzYWdlO1xuXG4gICAgcHVibGljIF9maWVsZE5hbWU7XG5cbiAgICBwcml2YXRlIF9kZWJvdW5jZVNldFVwVmFsaWRhdG9ycztcbiAgICBwcml2YXRlIF9pbml0UHJvcHNSZXM7XG4gICAgcHJpdmF0ZSBwYXJlbnRMaXN0O1xuICAgIHByaXZhdGUgc2hvd1BlbmRpbmdTcGlubmVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2FjdGl2ZUZpZWxkOiBib29sZWFuO1xuICAgIHByaXZhdGUgbm90aWZ5Rm9yRmllbGRzOiBhbnk7XG4gICAgcHJpdmF0ZSBmaWVsZFZhbGlkYXRpb25zO1xuICAgIHByaXZhdGUgX3RyaWdnZXJlZEJ5VXNlcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9jbGlja3RyaWdnZXJlZEJ5VXNlcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIGFwcDogQXBwO1xuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIGhhbmRsZUNsaWNrKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuX2NsaWNrdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRm9jdXNlZDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgZm9ybTogRm9ybUNvbXBvbmVudCxcbiAgICAgICAgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICB2aWV3cG9ydDogVmlld3BvcnQsXG4gICAgICAgIGFwcDogQXBwLFxuICAgICAgICBAT3B0aW9uYWwoKSBwYXJlbnRMaXN0OiBMaXN0Q29tcG9uZW50LFxuICAgICAgICBAQXR0cmlidXRlKCdjaGlwY2xhc3MuYmluZCcpIGJpbmRDaGlwY2xhc3M6IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGF0YXNldC5iaW5kJykgYmluZGRhdGFzZXQsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Rpc3BsYXlleHByZXNzaW9uLmJpbmQnKSBiaW5kZGlzcGxheWV4cHJlc3Npb246IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGlzcGxheWxhYmVsLmJpbmQnKSBiaW5kZGlzcGxheWxhYmVsOiBzdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3dpZGdldHR5cGUnKSBfd2lkZ2V0VHlwZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgnbmFtZScpIG5hbWUsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Rpc3BsYXlpbWFnZXNyYy5iaW5kJykgYmluZGRpc3BsYXlpbWFnZXNyYzogU3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCdrZXknKSBrZXksXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2lzLXJhbmdlJykgaXNSYW5nZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgncGMtZGlzcGxheScpIHBjRGlzcGxheSxcbiAgICAgICAgQEF0dHJpYnV0ZSgnbW9iaWxlLWRpc3BsYXknKSBtb2JpbGVEaXNwbGF5LFxuICAgICAgICBAQXR0cmlidXRlKCd0YWJsZXQtZGlzcGxheScpIHRhYmxldERpc3BsYXksXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChDb250ZXh0KSBjb250ZXh0czogQXJyYXk8YW55PlxuICAgICkge1xuICAgICAgICBjb25zdCBXSURHRVRfQ09ORklHID0ge1xuICAgICAgICAgICAgd2lkZ2V0VHlwZTogJ3dtLWZvcm0tZmllbGQnLFxuICAgICAgICAgICAgaG9zdENsYXNzOiAnJyxcbiAgICAgICAgICAgIHdpZGdldFN1YlR5cGU6ICd3bS1mb3JtLWZpZWxkLScgKyAoX3dpZGdldFR5cGUgfHwgRm9ybVdpZGdldFR5cGUuVEVYVCkudHJpbSgpXG4gICAgICAgIH07XG4gICAgICAgIGxldCByZXNvbHZlRm46IEZ1bmN0aW9uID0gbm9vcDtcblxuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIG5ldyBQcm9taXNlKHJlcyA9PiByZXNvbHZlRm4gPSByZXMpKTtcbiAgICAgICAgdGhpcy5faW5pdFByb3BzUmVzID0gcmVzb2x2ZUZuO1xuICAgICAgICB0aGlzLmFwcCA9IGFwcDtcbiAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZyA9IHt9O1xuICAgICAgICB0aGlzLmNsYXNzID0gJyc7XG4gICAgICAgIHRoaXMuYmluZGRhdGFzZXQgPSBiaW5kZGF0YXNldDtcbiAgICAgICAgdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjID0gYmluZGRpc3BsYXlpbWFnZXNyYztcbiAgICAgICAgdGhpcy5iaW5kZGlzcGxheWV4cHJlc3Npb24gPSBiaW5kZGlzcGxheWV4cHJlc3Npb247XG4gICAgICAgIHRoaXMuYmluZENoaXBjbGFzcyA9IGJpbmRDaGlwY2xhc3M7XG4gICAgICAgIHRoaXMuYmluZGRpc3BsYXlsYWJlbCA9IGJpbmRkaXNwbGF5bGFiZWw7XG4gICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgICAgIHRoaXMuZmIgPSBmYjtcbiAgICAgICAgdGhpcy52aWV3cG9ydCA9IHZpZXdwb3J0O1xuICAgICAgICB0aGlzLl9maWVsZE5hbWUgPSBrZXkgfHwgbmFtZTtcbiAgICAgICAgdGhpcy5pc1JhbmdlID0gaXNSYW5nZTtcbiAgICAgICAgdGhpcy5leGNsdWRlUHJvcHMgPSBuZXcgU2V0KFsndHlwZScsICduYW1lJ10pO1xuICAgICAgICB0aGlzLndpZGdldHR5cGUgPSBfd2lkZ2V0VHlwZTtcbiAgICAgICAgdGhpcy5wYXJlbnRMaXN0ID0gcGFyZW50TGlzdDtcbiAgICAgICAgdGhpcy5ub3RpZnlGb3JGaWVsZHMgPSBbXTtcblxuICAgICAgICBpZiAodGhpcy5iaW5kZGF0YXNldCB8fCB0aGlzLiRlbGVtZW50LmF0dHIoJ2RhdGFzZXQnKSkge1xuICAgICAgICAgICAgdGhpcy5pc0RhdGFTZXRCb3VuZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0c1swXS5fb25Gb2N1c0ZpZWxkID0gdGhpcy5fb25Gb2N1c0ZpZWxkLmJpbmQodGhpcyk7XG4gICAgICAgIGNvbnRleHRzWzBdLl9vbkJsdXJGaWVsZCA9IHRoaXMuX29uQmx1ckZpZWxkLmJpbmQodGhpcyk7XG5cbiAgICAgICAgdGhpcy5fZGVib3VuY2VTZXRVcFZhbGlkYXRvcnMgPSBkZWJvdW5jZSgoKSA9PiB0aGlzLnNldFVwVmFsaWRhdG9ycygpLCA1MDApO1xuICAgIH1cblxuICAgIF9vbkZvY3VzRmllbGQoJGV2dCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVGaWVsZCA9IHRydWU7XG4gICAgICAgICQoJGV2dC50YXJnZXQpLmNsb3Nlc3QoJy5saXZlLWZpZWxkJykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG4gICAgfVxuXG4gICAgLy8gRnVuY3Rpb24gdG8gZ2V0IHRoZSBhY3RpdmUgZWxlbWVudCBtYXJrdXAgYmFzZWQgb24gd2lkZ2V0IHR5cGVcbiAgICBnZXRBY3RpdmVFbGVtZW50KCkge1xuICAgICAgICBjb25zdCB3aWRnZXRUeXBlID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnd2lkZ2V0dHlwZScpO1xuICAgICAgICBzd2l0Y2ggKHdpZGdldFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzZWxlY3QnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRhcmVhJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEFyaWFBdHRyaWJ1dGVzKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgICAgIGlmICh0aGlzLm5nZm9ybS5jb250cm9sc1t0aGlzLl9maWVsZE5hbWVdLmludmFsaWQgJiYgdGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXS50b3VjaGVkICYmIHRoaXMuZm9ybS5pc1VwZGF0ZU1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ19fZXJyb3Jtc2cnLCBgJHt0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdfX3ZhbGlkYXRpb25JZCcpfWApO1xuICAgICAgICAgICAgZWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWludmFsaWQnLCBgJHt0aGlzLm5nZm9ybS5jb250cm9sc1t0aGlzLl9maWVsZE5hbWVdLmludmFsaWR9YCk7XG4gICAgICAgICAgICBlbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknLCBgJHt0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdfX3ZhbGlkYXRpb25JZCcpfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnX19lcnJvcm1zZycpO1xuICAgICAgICAgICAgZWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWludmFsaWQnKTtcbiAgICAgICAgICAgIGVsZW1lbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX29uQmx1ckZpZWxkKCRldnQpIHtcbiAgICAgICAgJCgkZXZ0LnRhcmdldCkuY2xvc2VzdCgnLmxpdmUtZmllbGQnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIGNvbnN0IGVsZSA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdwLnRleHQtZGFuZ2VyJyk7XG4gICAgICAgIC8vIEZpeCBmb3IgW1dNUy0yMzk1OV06IEFEQSBpc3N1ZSAtIGFkZGluZyBhcmlhLWRlc2NyaWJlZGJ5LCBhcmlhLWludmFsaWQsIF9fZXJyb3Jtc2cgYXR0cmlidXRlcyBvbmx5IHdoZW4gdGhlIGZvcm0gZmllbGQgaXMgaW52YWxpZCAsIGVsc2UgcmVtb3ZpbmcgdGhlIGF0dHJpYnV0ZXNcbiAgICAgICAgdGhpcy5zZXRBcmlhQXR0cmlidXRlcygpO1xuICAgICAgICB0aGlzLl9hY3RpdmVGaWVsZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl90cmlnZ2VyZWRCeVVzZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fY2xpY2t0cmlnZ2VyZWRCeVVzZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBFeHByZXNzaW9uIHRvIGJlIGV2YWx1YXRlZCBpbiB2aWV3IG1vZGUgb2YgZm9ybSBmaWVsZFxuICAgIGV2YWx1YXRlRXhwcihvYmplY3QsIGRpc3BsYXlGaWVsZCwgZGlzcGxheUV4cHIpIHtcbiAgICAgICAgaWYgKCFkaXNwbGF5RXhwciB8fCAhZGlzcGxheUZpZWxkKSB7XG4gICAgICAgICAgICBkaXNwbGF5RmllbGQgPSBPYmplY3Qua2V5cyhvYmplY3QpWzBdO1xuICAgICAgICAgICAgLy8gSWYgZGF0YXNldCBpcyBub3QgcmVhZHksIGRpc3BsYXkgZXhwcmVzc2lvbiB3aWxsIG5vdCBiZSBkZWZpbmVkXG4gICAgICAgICAgICBpZiAoIWRpc3BsYXlGaWVsZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0RXZhbHVhdGVkRGF0YShvYmplY3QsIHtcbiAgICAgICAgICAgIGZpZWxkOiBkaXNwbGF5RmllbGQsXG4gICAgICAgICAgICBleHByZXNzaW9uOiBkaXNwbGF5RXhwclxuICAgICAgICB9LCB0aGlzLnZpZXdQYXJlbnQpO1xuICAgIH1cblxuICAgIC8vIEV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkIGluIHZpZXcgbW9kZSBvZiBmb3JtIGZpZWxkXG4gICAgZ2V0RGlzcGxheUV4cHIoKSB7XG4gICAgICAgIGNvbnN0IGNhcHRpb24gPSBbXTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICBjb25zdCBkaXNwbGF5RmllbGQgPSB0aGlzLmRpc3BsYXlmaWVsZCB8fCB0aGlzLmRpc3BsYXlsYWJlbFxuICAgICAgICBjb25zdCBkaXNwbGF5RXhwciA9IHRoaXMuZGlzcGxheWV4cHJlc3Npb247XG4gICAgICAgIGlmIChfLmlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgaWYgKF8uaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBfLmZvckVhY2godmFsdWUsIG9iaiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChfLmlzT2JqZWN0KG9iaikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcHRpb24ucHVzaCh0aGlzLmV2YWx1YXRlRXhwcihvYmosIGRpc3BsYXlGaWVsZCwgZGlzcGxheUV4cHIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjYXB0aW9uLnB1c2godGhpcy5ldmFsdWF0ZUV4cHIodmFsdWUsIGRpc3BsYXlGaWVsZCwgZGlzcGxheUV4cHIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfLmpvaW4oY2FwdGlvbiwgJywnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpID8gJycgOiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIGdldENhcHRpb24oKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsdWUgPT09IG51bGwpID8gKF8uZ2V0KHRoaXMuZm9ybS5kYXRhb3V0cHV0LCB0aGlzLl9maWVsZE5hbWUpIHx8ICcnKSA6IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTm90aWZpZXMgY2hhbmdlcyB0byBvYnNlcnZpbmcgdmFsaWRhdGlvbiBmaWVsZHNcbiAgICBub3RpZnlDaGFuZ2VzKCkge1xuICAgICAgICBfLmZvckVhY2godGhpcy5ub3RpZnlGb3JGaWVsZHMsIGZpZWxkID0+IHtcbiAgICAgICAgICAgIGZpZWxkLmZpZWxkVmFsaWRhdGlvbnMudmFsaWRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUmVnaXN0ZXJzIG9ic2VydmVyIG9mIHZhbGlkYXRpb24gZmllbGRzXG4gICAgb2JzZXJ2ZU9uKGZpZWxkcykge1xuICAgICAgICB0aGlzLmZpZWxkVmFsaWRhdGlvbnMub2JzZXJ2ZU9uKGZpZWxkcywgJ2Zvcm1maWVsZHMnKTtcbiAgICB9XG5cbiAgICAvLyBNZXRob2QgdG8gc2V0dXAgdmFsaWRhdG9ycyBmb3IgcmVhY3RpdmUgZm9ybSBjb250cm9sXG4gICAgc2V0VXBWYWxpZGF0b3JzKGN1c3RvbVZhbGlkYXRvcj8pIHtcbiAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zLnNldFVwVmFsaWRhdG9ycyhjdXN0b21WYWxpZGF0b3IpO1xuICAgIH1cblxuICAgIC8vIHNldHMgdGhlIGN1c3RvbSBhc3luYyB2YWxpZGF0aW9uIG9uIHRoZSBmb3JtIGZpZWxkXG4gICAgc2V0QXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnMpIHtcbiAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zLnNldEFzeW5jVmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgICB9XG5cbiAgICAvLyBzZXRzIHRoZSBkZWZhdWx0IGFuZCBjdXN0b20gc3luYyB2YWxpZGF0aW9uIG9uIHRoZSBmb3JtIGZpZWxkXG4gICAgc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKSB7XG4gICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucy5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBzZXQgdGhlIHByb3BlcnRpZXMgb24gaW5uZXIgZm9ybSB3aWRnZXRcbiAgICBzZXRGb3JtV2lkZ2V0KGtleSwgdmFsKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1XaWRnZXQgJiYgdGhpcy5mb3JtV2lkZ2V0LndpZGdldCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0LndpZGdldFtrZXldID0gdmFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYm91bmRGbihmbikge1xuICAgICAgICByZXR1cm4gZm4oKTtcbiAgICB9XG5cbiAgICAvLyBNZXRob2QgdG8gc2V0IHRoZSBwcm9wZXJ0aWVzIG9uIGlubmVyIG1heCBmb3JtIHdpZGdldCAod2hlbiByYW5nZSBpcyBzZWxlY3RlZClcbiAgICBzZXRNYXhGb3JtV2lkZ2V0KGtleSwgdmFsKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1XaWRnZXRNYXgpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVdpZGdldE1heC53aWRnZXRba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG4gICAgICAgIGNvbnN0IGlzRm9ybURpcnR5ID0gdGhpcy5mb3JtLmRpcnR5O1xuXG4gICAgICAgIGlmIChrZXkgIT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZXhjbHVkZVByb3BzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcyB1cGxvYWQgd2lkZ2V0IGlzIGFuIEhUTUwgd2lkZ2V0LCBvbmx5IHJlcXVpcmVkIHByb3BlcnR5IGlzIHNldHVwXG4gICAgICAgIGlmICh0aGlzLndpZGdldHR5cGUgPT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCkge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlU2V0VXBWYWxpZGF0b3JzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldChrZXksIG52KTtcblxuICAgICAgICAvLyBQbGFjZWhvbGRlciBzaG91bGQgbm90IGJlIHNldHVwIG9uIG1heCB3aWRnZXRcbiAgICAgICAgaWYgKGtleSAhPT0gJ3BsYWNlaG9sZGVyJykge1xuICAgICAgICAgICAgdGhpcy5zZXRNYXhGb3JtV2lkZ2V0KGtleSwgbnYpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RlZmF1bHR2YWx1ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLm9uRmllbGREZWZhdWx0VmFsdWVDaGFuZ2UodGhpcywgbnYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWF4ZGVmYXVsdHZhbHVlJzpcbiAgICAgICAgICAgICAgICB0aGlzLm1heFZhbHVlID0gbnY7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNYXhGb3JtV2lkZ2V0KCdkYXRhdmFsdWUnLCBudik7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLm9uTWF4RGVmYXVsdFZhbHVlQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtYXhwbGFjZWhvbGRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRNYXhGb3JtV2lkZ2V0KCdwbGFjZWhvbGRlcicsIG52KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgICAgICAgICAgICAvLyBXTVMtMTg5MDYgOiBEbyBub3QgbWFrZSBmb3JtIGFzIGRpcnR5IGR1cmluZyByZXF1aXJlZCBwcm9wIGluaXRpYWxpemF0aW9uXG4gICAgICAgICAgICAgICAgaWYgKGlzRm9ybURpcnR5ICE9PSB0aGlzLmZvcm0uZGlydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbWF4Y2hhcnMnOlxuICAgICAgICAgICAgY2FzZSAnbWludmFsdWUnOlxuICAgICAgICAgICAgY2FzZSAnbWF4dmFsdWUnOlxuICAgICAgICAgICAgY2FzZSAncmVnZXhwJzpcbiAgICAgICAgICAgIGNhc2UgJ3Nob3cnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlU2V0VXBWYWxpZGF0b3JzKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwcmltYXJ5LWtleSc6XG4gICAgICAgICAgICAgICAgaWYgKG52KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5zZXRQcmltYXJ5S2V5KHRoaXMuX2ZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGlzcGxheS1uYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXluYW1lID0gbnY7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyZWFkb25seSc6XG4gICAgICAgICAgICAgICB0aGlzLnNldFJlYWRPbmx5U3RhdGUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU3R5bGVDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG4gICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldChrZXksIG52KTtcbiAgICAgICAgdGhpcy5zZXRNYXhGb3JtV2lkZ2V0KGtleSwgbnYpO1xuICAgICAgICBzdXBlci5vblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC5kYXRhdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IGRhdGF2YWx1ZSh2YWwpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnRyb2wgJiYgdGhpcy53aWRnZXR0eXBlICE9PSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUodmFsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YXZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZSh2YWwpIHtcbiAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSB2YWw7XG4gICAgfVxuXG4gICAgZ2V0IG1heFZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtV2lkZ2V0TWF4ICYmIHRoaXMuZm9ybVdpZGdldE1heC5kYXRhdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IG1heFZhbHVlKHZhbCkge1xuICAgICAgICBpZiAodGhpcy5fbWF4Q29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5fbWF4Q29udHJvbC5zZXRWYWx1ZSh2YWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IG1pblZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgbWluVmFsdWUodmFsKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgfVxuXG4gICAgLy8gR2V0IHRoZSByZWFjdGl2ZSBmb3JtIGNvbnRyb2xcbiAgICBnZXQgX2NvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nZm9ybSAmJiB0aGlzLm5nZm9ybS5jb250cm9sc1t0aGlzLl9maWVsZE5hbWVdO1xuICAgIH1cblxuICAgIC8vIEdldCB0aGUgcmVhY3RpdmUgbWF4IGZvcm0gY29udHJvbFxuICAgIGdldCBfbWF4Q29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdmb3JtICYmIHRoaXMubmdmb3JtLmNvbnRyb2xzW3RoaXMuX2ZpZWxkTmFtZSArICdfbWF4J107XG4gICAgfVxuXG4gICAgLy8gR2V0IHRoZSBkaXNwbGF5VmFsdWVcbiAgICBnZXQgZGlzcGxheVZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC5kaXNwbGF5VmFsdWU7XG4gICAgfVxuXG4gICAgLy9HZXQgdGhlIHRpbWVzdGFtcFxuICAgIGdldCB0aW1lc3RhbXAoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQudGltZXN0YW1wO1xuICAgIH1cblxuICAgIC8vR2V0IHRoZSBjaGFybGVuZ3RoXG4gICAgZ2V0IGNoYXJsZW5ndGgoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQuY2hhcmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIHJlYWN0aXZlIGZvcm0gY29udHJvbFxuICAgIGNyZWF0ZUNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZiLmNvbnRyb2wodW5kZWZpbmVkLCB7XG4gICAgICAgICAgICB2YWxpZGF0b3JzOiB0aGlzLl92YWxpZGF0b3JzXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIE9uIGZpZWxkIHZhbHVlIGNoYW5nZSwgcHJvcGFnYXRlIGV2ZW50IHRvIHBhcmVudCBmb3JtXG4gICAgb25WYWx1ZUNoYW5nZSh2YWwpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICBjb25zdCBjYXB0aW9uRWwgPSAgJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLmZpbmQoJy5jYXB0aW9uLWZsb2F0aW5nJyk7XG4gICAgICAgICAgICBpZiAoY2FwdGlvbkVsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAvLyBoYXNWYWx1ZSBjaGVjayB3aGV0aGVyIGZvcm0tZmllbGQgaGFzIGEgdmFsdWUgZnJvbSBwYXNzZWQgdmFsIGF0dHJpYnV0ZVxuICAgICAgICAgICAgICAgIC8vIEFkZGVkIHNhbml0eSBjaGVjayBvbiB2YWwgdG8gc3VwcG9ydCB2YWx1ZXMgbGlrZWQgMCwgZmFsc2UgZXRjIGFzIGlucHV0IHZhbCAtIFdNUy0yMDA4NFxuICAgICAgICAgICAgICAgIC8vIGV4cGxpY2l0bHkgY2hlY2tpbmcgZm9yIGlucHV0IHZhbHVlIG9yIC13ZWJraXQtYXV0b2ZpbGwgdG8gc2VlIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBhdXRvZmlsbGVkIGZpZWxkcyAtIFdNUy0yMDE0MVxuXG4gICAgICAgICAgICAgICAgY29uc3QgaGFzVmFsdWUgPSAoKGlzRGVmaW5lZCh2YWwpICYmIHZhbCAhPT0gJycgJiYgdmFsICE9PSBudWxsKSB8fCBjYXB0aW9uRWwuZmluZCgnaW5wdXQnKS52YWwoKSkgfHwgY2FwdGlvbkVsLmZpbmQoJ2lucHV0Oi13ZWJraXQtYXV0b2ZpbGwnKS5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmFwcC5ub3RpZnkoJ2NhcHRpb25Qb3NpdGlvbkFuaW1hdGUnLCB7XG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsOiBoYXNWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlRWw6IGNhcHRpb25FbCxcbiAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RNdWx0aXBsZTogdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgaXNGb2N1c2VkOiB0aGlzLl9hY3RpdmVGaWVsZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAvLyBGaXggZm9yIFtXTVMtMjM5NTldOiBBREEgaXNzdWUgLSBhZGRpbmcgYXJpYS1kZXNjcmliZWRieSwgYXJpYS1pbnZhbGlkLCBfX2Vycm9ybXNnIGF0dHJpYnV0ZXMgb25seSB3aGVuIHRoZSBmb3JtIGZpZWxkIGlzIGludmFsaWQgLCBlbHNlIHJlbW92aW5nIHRoZSBhdHRyaWJ1dGVzXG4gICAgICAgICAgICB0aGlzLnNldEFyaWFBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0ub25GaWVsZFZhbHVlQ2hhbmdlKHRoaXMsIHZhbCk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUNoYW5nZXMoKTtcbiAgICAgICAgICAgIC8vIERvIG1hcmsgYXMgdG91Y2hlZCwgb25seSBpbmNhc2Ugd2hlbiB1c2VyIGhhcyBlbnRlcmVkIGFuIGlucHV0IGJ1dCBub3QgdGhyb3VnaCB0aGUgc2NyaXB0LiBIZW5jZSBhZGRlZCBtb3VzZWRvd24gZXZlbnQgY2hlY2tcbiAgICAgICAgICAgIC8vIGFjdGl2ZSBjbGFzcyBjaGVja3Mgd2hldGhlciB1c2VyIGlzIG9uIHRoZSBjdXJyZW50IGZpZWxkLCBpZiBzbyBtYXJraW5nIHRoZSBmaWVsZCBhcyB0b3VjaGVkLiBBbmQgZm9ybSBmaWVsZCB2YWxpZGF0aW9uIGhhcHBlbnMgb25jZSBhIGZpZWxkIGlzIHRvdWNoZWRcbiAgICAgICAgICAgIC8vIF90cmlnZ2VyZWRCeVVzZXIgY2hlY2tzIHdoZXRoZXIgdGhlIGZpZWxkIGlzIHRvdWNoZWQgYnkgdGhlIHVzZXIgb3IgdHJpZ2dlcmVkIGZyb20gZXh0ZXJuYWwgc2NyaXB0XG4gICAgICAgICAgICAvLyBXTVMtMjI0NTY6IF9jbGlja3RyaWdnZXJlZEJ5VXNlciBjaGVja3Mgd2hlbiB1c2VyIHNlbGVjdHMgZGF0ZXRpbWV0eXBlIGZyb20gcGlja2VyLCBtYXJrIHRoZSBmaWVsZCBhcyB0b3VjaGVkIHRvIHNob3cgdmFsaWRhdGlvbiBlcnJvcnMgaW4gbW9iaWxlXG5cbiAgICAgICAgICAgIGlmICh0aGlzLiRlbGVtZW50LmZpbmQoJy5hY3RpdmUnKS5sZW5ndGggPiAwIHx8IHRoaXMuZm9ybS50b3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RyaWdnZXJlZEJ5VXNlciB8fCAoaXNNb2JpbGUoKSAmJiB0aGlzLl9jbGlja3RyaWdnZXJlZEJ5VXNlciAmJiBpc0RhdGVUaW1lVHlwZSh0aGlzLndpZGdldHR5cGUpKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5nZm9ybS5jb250cm9sc1t0aGlzLl9maWVsZE5hbWVdLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zLnNldEN1c3RvbVZhbGlkYXRpb25NZXNzYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN0YXR1c0NoYW5nZShzdGF0dXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dQZW5kaW5nU3Bpbm5lciA9IChzdGF0dXMgPT09ICdQRU5ESU5HJyk7XG4gICAgICAgICAgICAvLyB3aGlsZSBydW5uaW5nIHZhbGlkYXRpb24sIHdpZGdldCBpcyBkaXNhYmxlZCBhbmQgc3Bpbm5lciBpcyBzaG93blxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGZvcm1XaWRnZXQgZGlzYWJsZWQgc3RhdGUgaXMgcmVzZXQgdG8gdGhlIHN0YXRlIG9mIHRoZSBmb3JtRmllbGQuXG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSAnUEVORElORycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZvcm1XaWRnZXQuZGlzYWJsZWQgIT09ICh0aGlzIGFzIGFueSkuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXQuZGlzYWJsZWQgPSAodGhpcyBhcyBhbnkpLmRpc2FibGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIGV4cG9zZSB2YWxpZGF0aW9uIG1lc3NhZ2UgYW5kIHNldCBjb250cm9sIHRvIGludmFsaWRcbiAgICBzZXRWYWxpZGF0aW9uTWVzc2FnZSh2YWwpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlID0gdmFsO1xuICAgICAgICAgICAgdGhpcy5zZXRVcFZhbGlkYXRvcnMoY3VzdG9tVmFsaWRhdG9yRm4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRSZWFkT25seVN0YXRlKCkge1xuICAgICAgICBsZXQgcmVhZE9ubHk7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uaXNVcGRhdGVNb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpc1sncHJpbWFyeS1rZXknXSAmJiAhdGhpc1snaXMtcmVsYXRlZCddICYmICF0aGlzLnBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8qSWYgdGhlIGZpZWxkIGlzIHByaW1hcnkgYnV0IGlzIGFzc2lnbmVkIHNldCByZWFkb25seSBmYWxzZS5cbiAgICAgICAgICAgICAgICAgICBBc3NpZ25lZCBpcyB3aGVyZSB0aGUgdXNlciBpbnB1dHMgdGhlIHZhbHVlIHdoaWxlIGEgbmV3IGVudHJ5LlxuICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgbm90IGVkaXRhYmxlKGluIHVwZGF0ZSBtb2RlKSBvbmNlIGVudHJ5IGlzIHN1Y2Nlc3NmdWwqL1xuICAgICAgICAgICAgICAgIHJlYWRPbmx5ID0gISh0aGlzLmdlbmVyYXRvciA9PT0gJ2Fzc2lnbmVkJyAmJiB0aGlzLmZvcm0ub3BlcmF0aW9uVHlwZSAhPT0gJ3VwZGF0ZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWFkT25seSA9IHRoaXMucmVhZG9ubHk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJbiB2aWV3IG1vZGUsIHNldCB3aWRnZXQgc3RhdGUgdG8gcmVhZG9ubHkgYWx3YXlzXG4gICAgICAgICAgICByZWFkT25seSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdyZWFkb25seScsIHJlYWRPbmx5KTtcbiAgICB9XG5cbiAgICByZXNldERpc3BsYXlJbnB1dCgpIHtcbiAgICAgICAgaWYgKCghaXNEZWZpbmVkKHRoaXMudmFsdWUpIHx8IHRoaXMudmFsdWUgPT09ICcnKSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC5yZXNldERpc3BsYXlJbnB1dCAmJiB0aGlzLmZvcm1XaWRnZXQucmVzZXREaXNwbGF5SW5wdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyaWdnZXJVcGxvYWRFdmVudCgkZXZlbnQsIGV2ZW50TmFtZSkge1xuICAgICAgICBjb25zdCBwYXJhbXM6IGFueSA9IHsgJGV2ZW50IH07XG4gICAgICAgIGlmIChldmVudE5hbWUgPT09ICdjaGFuZ2UnKSB7XG4gICAgICAgICAgICBwYXJhbXMubmV3VmFsID0gJGV2ZW50LnRhcmdldC5maWxlcztcbiAgICAgICAgICAgIHBhcmFtcy5vbGRWYWwgPSB0aGlzLl9vbGRVcGxvYWRWYWw7XG4gICAgICAgICAgICB0aGlzLl9vbGRVcGxvYWRWYWwgPSBwYXJhbXMubmV3VmFsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjayhldmVudE5hbWUsIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckZvcm1GaWVsZCgpIHtcblxuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSB0aGlzLl9maWVsZE5hbWU7XG5cbiAgICAgICAgaWYgKHRoaXMucGFyZW50TGlzdCAmJiAhKHRoaXMuZm9ybS5wYXJlbnRMaXN0ID09PSB0aGlzLnBhcmVudExpc3QpKSB7XG4gICAgICAgICAgICBsZXQgY291bnRlciA9IDE7XG4gICAgICAgICAgICBsZXQgX2ZpZWxkTmFtZSA9IGZpZWxkTmFtZTtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLm5nZm9ybS5jb250cm9scy5oYXNPd25Qcm9wZXJ0eShfZmllbGROYW1lKSkge1xuICAgICAgICAgICAgICAgIF9maWVsZE5hbWUgPSBgJHtmaWVsZE5hbWV9XyR7Y291bnRlcn1gO1xuICAgICAgICAgICAgICAgIGNvdW50ZXIrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubmdmb3JtLmFkZENvbnRyb2woX2ZpZWxkTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKCkpO1xuICAgICAgICAgICAgdGhpcy5fZmllbGROYW1lID0gX2ZpZWxkTmFtZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmdmb3JtLmFkZENvbnRyb2woZmllbGROYW1lLCB0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb25WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuX2NvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjAwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5vblZhbHVlQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IG9uVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG5cbiAgICAgICAgY29uc3Qgb25TdGF0dXNDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLl9jb250cm9sLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLm9uU3RhdHVzQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IG9uU3RhdHVzQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgdGhpcy5uZ2Zvcm0uYWRkQ29udHJvbChmaWVsZE5hbWUgKyAnX21heCcsIHRoaXMuY3JlYXRlQ29udHJvbCgpKTtcbiAgICAgICAgICAgIC8vIHJlZ2lzdGVyaW5nIGZvciB2YWx1ZUNoYW5nZXMgb24gTWF4Zm9ybVdpZGdldFxuICAgICAgICAgICAgY29uc3Qgb25NYXhWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuX21heENvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLm9uVmFsdWVDaGFuZ2UuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IG9uTWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IF8uZ2V0KHRoaXMuZm9ybS5mb3JtZGF0YSwgdGhpcy5fZmllbGROYW1lKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5uZ2Zvcm0gPSB0aGlzLmZvcm0ubmdmb3JtO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRm9ybUZpZWxkKCk7XG4gICAgICAgIC8vIEluc3RhbnRpYXRlIGN1c3RvbSB2YWxpZGF0b3JzIGNsYXNzIGZvciBmb3JtIGZpZWxkXG4gICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucyA9IG5ldyBCYXNlRmllbGRWYWxpZGF0aW9ucyh0aGlzLCB0aGlzLmZvcm1XaWRnZXQsIHRoaXMud2lkZ2V0dHlwZSwgdGhpcy5fY29udHJvbCwgdGhpcy5mb3JtKTtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmZvcm1XaWRnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRQcm9wc1JlcygpO1xuXG4gICAgICAgICAgICAvLyBzZXR0aW5nIGRpc3BsYXlFeHByZXNzaW9ucyBvbiB0aGUgZm9ybXdpZGdldCBleHBsaWNpdGx5IGFzIGV4cHIgd2FzIGV2YWx1YXRlZCB0byBcIlwiLlxuICAgICAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kZGlzcGxheWxhYmVsJywgdGhpcy5iaW5kZGlzcGxheWxhYmVsKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldCgnYmluZGRpc3BsYXlleHByZXNzaW9uJywgdGhpcy5iaW5kZGlzcGxheWV4cHJlc3Npb24pO1xuICAgICAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kZGlzcGxheWltYWdlc3JjJywgdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldCgnYmluZENoaXBjbGFzcycsIHRoaXMuYmluZENoaXBjbGFzcyk7XG4gICAgICAgICAgICB0aGlzLnNldEZvcm1XaWRnZXQoJ2JpbmRkYXRhc2V0JywgdGhpcy5iaW5kZGF0YXNldCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlZ2lzdGVyUmVhZHlTdGF0ZUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMua2V5ID0gdGhpcy5fZmllbGROYW1lIHx8IHRoaXMudGFyZ2V0IHx8IHRoaXMuYmluZGluZztcbiAgICAgICAgICAgIHRoaXMudmlld21vZGV3aWRnZXQgPSB0aGlzLnZpZXdtb2Rld2lkZ2V0IHx8IGdldERlZmF1bHRWaWV3TW9kZVdpZGdldCh0aGlzLndpZGdldHR5cGUpO1xuXG4gICAgICAgICAgICAvLyBGb3IgdXBsb2FkIHdpZGdldCwgZ2VuZXJhdGUgdGhlIHBlcm1pdHRlZCBmaWVsZFxuICAgICAgICAgICAgaWYgKHRoaXMud2lkZ2V0dHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGVUeXBlO1xuICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgYWNjZXB0cyBzdHJpbmcgZnJvbSBmaWxlIHR5cGUgYW5kIGV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9IHRoaXMuZmlsZXR5cGUgPyBGSUxFX1RZUEVTW3RoaXMuZmlsZXR5cGVdIDogJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJtaXR0ZWQgPSBmaWxlVHlwZSArICh0aGlzLmV4dGVuc2lvbnMgPyAoZmlsZVR5cGUgPyAnLCcgOiAnJykgKyB0aGlzLmV4dGVuc2lvbnMgOiAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNNb2JpbGUoKSAmJiB0aGlzLnZpZXdwb3J0LmlzTW9iaWxlVHlwZSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpc1snbW9iaWxlLWRpc3BsYXknXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldC5zaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZpZXdwb3J0LmlzVGFibGV0VHlwZSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpc1sndGFibGV0LWRpc3BsYXknXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldC5zaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXNbJ3BjLWRpc3BsYXknXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldC5zaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLmRpc3BsYW5hbWUgPSB0aGlzLmRpc3BsYXluYW1lO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5zaG93ID0gdGhpcy5zaG93O1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5pc1JlbGF0ZWQgPSB0aGlzWydpcy1yZWxhdGVkJ107XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLmlucHV0dHlwZSA9IHRoaXMuaW5wdXR0eXBlO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5nZW5lcmF0b3IgPSB0aGlzLmdlbmVyYXRvcjtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5wcmltYXJ5S2V5ID0gdGhpc1sncHJpbWFyeS1rZXknXTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcucmVxdWlyZWQgPSB0aGlzLnJlcXVpcmVkO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5fcmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5yZWdleHAgPSB0aGlzLnJlZ2V4cDtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcua2V5ID0gdGhpcy5rZXk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLm1vYmlsZURpc3BsYXkgPSB0aGlzWydtb2JpbGUtZGlzcGxheSddO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5wY0Rpc3BsYXkgPSB0aGlzWydwYy1kaXNwbGF5J107XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnRhYmxldERpc3BsYXkgPSB0aGlzWyd0YWJsZXQtZGlzcGxheSddO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy52YWxpZGF0aW9ubWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbm1lc3NhZ2U7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnZpZXdtb2Rld2lkZ2V0ID0gdGhpcy52aWV3bW9kZXdpZGdldDtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcud2lkZ2V0ID0gdGhpcy53aWRnZXR0eXBlO1xuXG4gICAgICAgICAgICAvLyBSZWdpc3RlciB0aGUgZm9ybSBmaWVsZCB3aXRoIHBhcmVudCBmb3JtXG4gICAgICAgICAgICB0aGlzLmZvcm0ucmVnaXN0ZXJGb3JtRmllbGRzKHRoaXMud2lkZ2V0KTtcblxuICAgICAgICAgICAgYWRkRm9ySWRBdHRyaWJ1dGVzKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0UmVhZE9ubHlTdGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
573
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9mb3JtL3NyYy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFFUixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixHQUFHLEVBQ0gsUUFBUSxFQUNSLGNBQWMsRUFDZCxjQUFjLEVBQ2QsU0FBUyxFQUNULFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNYLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGtCQUFrQixFQUNsQixpQkFBaUIsRUFDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFJaEUsb0ZBQW9GO0FBQ3BGLE1BQU0saUJBQWlCLEdBQUcsR0FB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aXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBhZGRGb3JJZEF0dHJpYnV0ZXMsXG4gICAgQXBwLFxuICAgIGRlYm91bmNlLFxuICAgIEZvcm1XaWRnZXRUeXBlLFxuICAgIGlzRGF0ZVRpbWVUeXBlLFxuICAgIGlzRGVmaW5lZCxcbiAgICBpc01vYmlsZSxcbiAgICBub29wLFxuICAgIFZpZXdwb3J0XG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7XG4gICAgQmFzZUZpZWxkVmFsaWRhdGlvbnMsXG4gICAgQ29udGV4dCxcbiAgICBnZXREZWZhdWx0Vmlld01vZGVXaWRnZXQsXG4gICAgZ2V0RXZhbHVhdGVkRGF0YSxcbiAgICBwcm92aWRlQXMsXG4gICAgcHJvdmlkZUFzV2lkZ2V0UmVmLFxuICAgIFN0eWxhYmxlQ29tcG9uZW50XG59IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHtMaXN0Q29tcG9uZW50fSBmcm9tICdAd20vY29tcG9uZW50cy9kYXRhL2xpc3QnO1xuXG5pbXBvcnQge3JlZ2lzdGVyUHJvcHN9IGZyb20gJy4vZm9ybS1maWVsZC5wcm9wcyc7XG5pbXBvcnQge0Zvcm1Db21wb25lbnR9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7Zm9yRWFjaCwgZ2V0LCBpc0FycmF5LCBpc09iamVjdCwgam9pbn0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbi8vIEN1c3RvbSB2YWxpZGF0b3IgdG8gc2hvdyB2YWxpZGF0aW9uIGVycm9yLCBpZiBzZXRWYWxpZGF0aW9uTWVzc2FnZSBtZXRob2QgaXMgdXNlZFxuY29uc3QgY3VzdG9tVmFsaWRhdG9yRm4gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHsgY3VzdG9tOiB0cnVlIH07XG59O1xuXG5jb25zdCBGSUxFX1RZUEVTID0ge1xuICAgICdpbWFnZScgOiAnaW1hZ2UvKicsXG4gICAgJ3ZpZGVvJyA6ICd2aWRlby8qJyxcbiAgICAnYXVkaW8nIDogJ2F1ZGlvLyonXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t3bUZvcm1GaWVsZF0nLFxuICAgIGV4cG9ydEFzOiAnd21Gb3JtRmllbGQnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoRm9ybUZpZWxkRGlyZWN0aXZlKSxcbiAgICAgICAgcHJvdmlkZUFzKEZvcm1GaWVsZERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICB7cHJvdmlkZTogQ29udGV4dCwgdXNlRmFjdG9yeTogKCkgPT4geyByZXR1cm4ge30gfSwgbXVsdGk6IHRydWV9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGREaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2Zvcm1XaWRnZXQnLCB7c3RhdGljOiB0cnVlfSkgZm9ybVdpZGdldDtcbiAgICBAQ29udGVudENoaWxkKCdmb3JtV2lkZ2V0TWF4JykgZm9ybVdpZGdldE1heDtcblxuICAgIHByaXZhdGUgZmI7XG4gICAgcHJpdmF0ZSB2aWV3cG9ydDtcblxuICAgIC8vIGV4Y2x1ZGVQcm9wcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBwcm9wcyB0aGF0IHNob3VsZCBub3QgYmUgYXBwbGllZCBvbiBpbm5lciB3aWRnZXRcbiAgICBwcml2YXRlIGV4Y2x1ZGVQcm9wcztcbiAgICBwcml2YXRlIF92YWxpZGF0b3JzO1xuICAgIHByaXZhdGUgX29sZFVwbG9hZFZhbDtcblxuICAgIG5nZm9ybTogRm9ybUdyb3VwO1xuICAgIGRlZmF1bHR2YWx1ZTtcbiAgICBkaXNwbGF5ZXhwcmVzc2lvbjtcbiAgICBkaXNwbGF5ZmllbGQ7XG4gICAgZGlzcGxheWxhYmVsO1xuICAgIGRpc3BsYXluYW1lO1xuICAgIGdlbmVyYXRvcjtcbiAgICBrZXk7XG4gICAgdGFyZ2V0O1xuICAgIGJpbmRpbmc7XG4gICAgd2lkZ2V0dHlwZTtcbiAgICBjbGFzcztcbiAgICByZWFkb25seTtcbiAgICBzaG93O1xuICAgIHR5cGU7XG4gICAgaXNEYXRhU2V0Qm91bmQ7XG4gICAgdmlld21vZGV3aWRnZXQ7XG4gICAgYmluZGRhdGFzZXQ7XG4gICAgYmluZGRpc3BsYXlleHByZXNzaW9uO1xuICAgIGJpbmRDaGlwY2xhc3M7XG4gICAgZGlzcGxheWltYWdlc3JjOiBzdHJpbmc7XG4gICAgYmluZGRpc3BsYXlpbWFnZXNyYztcbiAgICBiaW5kZGlzcGxheWxhYmVsO1xuICAgIGZvcm07XG4gICAgZmlsZXR5cGU7XG4gICAgZXh0ZW5zaW9ucztcbiAgICBwZXJtaXR0ZWQ7XG4gICAgcGVyaW9kO1xuICAgIGlzUmFuZ2U7XG4gICAgbmFtZTtcbiAgICAvLyBWYWxpZGF0aW9uIHByb3BlcnRpZXNcbiAgICByZXF1aXJlZDtcbiAgICBtYXhjaGFycztcbiAgICBtaW52YWx1ZTtcbiAgICBtYXh2YWx1ZTtcbiAgICByZWdleHA7XG4gICAgZmllbGREZWZDb25maWc7XG4gICAgcGxhY2Vob2xkZXI7XG4gICAgaW5wdXR0eXBlO1xuICAgIHZhbGlkYXRpb25tZXNzYWdlO1xuXG4gICAgcHVibGljIF9maWVsZE5hbWU7XG5cbiAgICBwcml2YXRlIF9kZWJvdW5jZVNldFVwVmFsaWRhdG9ycztcbiAgICBwcml2YXRlIF9pbml0UHJvcHNSZXM7XG4gICAgcHJpdmF0ZSBwYXJlbnRMaXN0O1xuICAgIHByaXZhdGUgc2hvd1BlbmRpbmdTcGlubmVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2FjdGl2ZUZpZWxkOiBib29sZWFuO1xuICAgIHByaXZhdGUgbm90aWZ5Rm9yRmllbGRzOiBhbnk7XG4gICAgcHJpdmF0ZSBmaWVsZFZhbGlkYXRpb25zO1xuICAgIHByaXZhdGUgX3RyaWdnZXJlZEJ5VXNlcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9jbGlja3RyaWdnZXJlZEJ5VXNlcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIGFwcDogQXBwO1xuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIGhhbmRsZUNsaWNrKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuX2NsaWNrdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRm9jdXNlZDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgZm9ybTogRm9ybUNvbXBvbmVudCxcbiAgICAgICAgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICB2aWV3cG9ydDogVmlld3BvcnQsXG4gICAgICAgIGFwcDogQXBwLFxuICAgICAgICBAT3B0aW9uYWwoKSBwYXJlbnRMaXN0OiBMaXN0Q29tcG9uZW50LFxuICAgICAgICBAQXR0cmlidXRlKCdjaGlwY2xhc3MuYmluZCcpIGJpbmRDaGlwY2xhc3M6IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGF0YXNldC5iaW5kJykgYmluZGRhdGFzZXQsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Rpc3BsYXlleHByZXNzaW9uLmJpbmQnKSBiaW5kZGlzcGxheWV4cHJlc3Npb246IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGlzcGxheWxhYmVsLmJpbmQnKSBiaW5kZGlzcGxheWxhYmVsOiBzdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3dpZGdldHR5cGUnKSBfd2lkZ2V0VHlwZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgnbmFtZScpIG5hbWUsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Rpc3BsYXlpbWFnZXNyYy5iaW5kJykgYmluZGRpc3BsYXlpbWFnZXNyYzogU3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCdrZXknKSBrZXksXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2lzLXJhbmdlJykgaXNSYW5nZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgncGMtZGlzcGxheScpIHBjRGlzcGxheSxcbiAgICAgICAgQEF0dHJpYnV0ZSgnbW9iaWxlLWRpc3BsYXknKSBtb2JpbGVEaXNwbGF5LFxuICAgICAgICBAQXR0cmlidXRlKCd0YWJsZXQtZGlzcGxheScpIHRhYmxldERpc3BsYXksXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChDb250ZXh0KSBjb250ZXh0czogQXJyYXk8YW55PixcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IFdJREdFVF9DT05GSUcgPSB7XG4gICAgICAgICAgICB3aWRnZXRUeXBlOiAnd20tZm9ybS1maWVsZCcsXG4gICAgICAgICAgICBob3N0Q2xhc3M6ICcnLFxuICAgICAgICAgICAgd2lkZ2V0U3ViVHlwZTogJ3dtLWZvcm0tZmllbGQtJyArIChfd2lkZ2V0VHlwZSB8fCBGb3JtV2lkZ2V0VHlwZS5URVhUKS50cmltKClcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IHJlc29sdmVGbjogRnVuY3Rpb24gPSBub29wO1xuXG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0LCBuZXcgUHJvbWlzZShyZXMgPT4gcmVzb2x2ZUZuID0gcmVzKSk7XG4gICAgICAgIHRoaXMuX2luaXRQcm9wc1JlcyA9IHJlc29sdmVGbjtcbiAgICAgICAgdGhpcy5hcHAgPSBhcHA7XG4gICAgICAgIHRoaXMuZmllbGREZWZDb25maWcgPSB7fTtcbiAgICAgICAgdGhpcy5jbGFzcyA9ICcnO1xuICAgICAgICB0aGlzLmJpbmRkYXRhc2V0ID0gYmluZGRhdGFzZXQ7XG4gICAgICAgIHRoaXMuYmluZGRpc3BsYXlpbWFnZXNyYyA9IGJpbmRkaXNwbGF5aW1hZ2VzcmM7XG4gICAgICAgIHRoaXMuYmluZGRpc3BsYXlleHByZXNzaW9uID0gYmluZGRpc3BsYXlleHByZXNzaW9uO1xuICAgICAgICB0aGlzLmJpbmRDaGlwY2xhc3MgPSBiaW5kQ2hpcGNsYXNzO1xuICAgICAgICB0aGlzLmJpbmRkaXNwbGF5bGFiZWwgPSBiaW5kZGlzcGxheWxhYmVsO1xuICAgICAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgICAgICB0aGlzLmZiID0gZmI7XG4gICAgICAgIHRoaXMudmlld3BvcnQgPSB2aWV3cG9ydDtcbiAgICAgICAgdGhpcy5fZmllbGROYW1lID0ga2V5IHx8IG5hbWU7XG4gICAgICAgIHRoaXMuaXNSYW5nZSA9IGlzUmFuZ2U7XG4gICAgICAgIHRoaXMuZXhjbHVkZVByb3BzID0gbmV3IFNldChbJ3R5cGUnLCAnbmFtZSddKTtcbiAgICAgICAgdGhpcy53aWRnZXR0eXBlID0gX3dpZGdldFR5cGU7XG4gICAgICAgIHRoaXMucGFyZW50TGlzdCA9IHBhcmVudExpc3Q7XG4gICAgICAgIHRoaXMubm90aWZ5Rm9yRmllbGRzID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuYmluZGRhdGFzZXQgfHwgdGhpcy4kZWxlbWVudC5hdHRyKCdkYXRhc2V0JykpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEYXRhU2V0Qm91bmQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dHNbMF0uX29uRm9jdXNGaWVsZCA9IHRoaXMuX29uRm9jdXNGaWVsZC5iaW5kKHRoaXMpO1xuICAgICAgICBjb250ZXh0c1swXS5fb25CbHVyRmllbGQgPSB0aGlzLl9vbkJsdXJGaWVsZC5iaW5kKHRoaXMpO1xuXG4gICAgICAgIHRoaXMuX2RlYm91bmNlU2V0VXBWYWxpZGF0b3JzID0gZGVib3VuY2UoKCkgPT4gdGhpcy5zZXRVcFZhbGlkYXRvcnMoKSwgNTAwKTtcbiAgICB9XG5cbiAgICBfb25Gb2N1c0ZpZWxkKCRldnQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlRmllbGQgPSB0cnVlO1xuICAgICAgICAkKCRldnQudGFyZ2V0KS5jbG9zZXN0KCcubGl2ZS1maWVsZCcpLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuICAgIH1cblxuICAgIC8vIEZ1bmN0aW9uIHRvIGdldCB0aGUgYWN0aXZlIGVsZW1lbnQgbWFya3VwIGJhc2VkIG9uIHdpZGdldCB0eXBlXG4gICAgZ2V0QWN0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3Qgd2lkZ2V0VHlwZSA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3dpZGdldHR5cGUnKTtcbiAgICAgICAgc3dpdGNoICh3aWRnZXRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignc2VsZWN0Jyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRBcmlhQXR0cmlidXRlcygpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0QWN0aXZlRWxlbWVudCgpO1xuICAgICAgICBpZiAodGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXS5pbnZhbGlkICYmIHRoaXMubmdmb3JtLmNvbnRyb2xzW3RoaXMuX2ZpZWxkTmFtZV0udG91Y2hlZCAmJiB0aGlzLmZvcm0uaXNVcGRhdGVNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdfX2Vycm9ybXNnJywgYCR7dGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnX192YWxpZGF0aW9uSWQnKX1gKTtcbiAgICAgICAgICAgIGVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1pbnZhbGlkJywgYCR7dGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXS5pbnZhbGlkfWApO1xuICAgICAgICAgICAgZWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JywgYCR7dGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnX192YWxpZGF0aW9uSWQnKX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ19fZXJyb3Jtc2cnKTtcbiAgICAgICAgICAgIGVsZW1lbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1pbnZhbGlkJyk7XG4gICAgICAgICAgICBlbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9vbkJsdXJGaWVsZCgkZXZ0KSB7XG4gICAgICAgICQoJGV2dC50YXJnZXQpLmNsb3Nlc3QoJy5saXZlLWZpZWxkJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICBjb25zdCBlbGUgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigncC50ZXh0LWRhbmdlcicpO1xuICAgICAgICAvLyBGaXggZm9yIFtXTVMtMjM5NTldOiBBREEgaXNzdWUgLSBhZGRpbmcgYXJpYS1kZXNjcmliZWRieSwgYXJpYS1pbnZhbGlkLCBfX2Vycm9ybXNnIGF0dHJpYnV0ZXMgb25seSB3aGVuIHRoZSBmb3JtIGZpZWxkIGlzIGludmFsaWQgLCBlbHNlIHJlbW92aW5nIHRoZSBhdHRyaWJ1dGVzXG4gICAgICAgIHRoaXMuc2V0QXJpYUF0dHJpYnV0ZXMoKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlRmllbGQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlcmVkQnlVc2VyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NsaWNrdHJpZ2dlcmVkQnlVc2VyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gRXhwcmVzc2lvbiB0byBiZSBldmFsdWF0ZWQgaW4gdmlldyBtb2RlIG9mIGZvcm0gZmllbGRcbiAgICBldmFsdWF0ZUV4cHIob2JqZWN0LCBkaXNwbGF5RmllbGQsIGRpc3BsYXlFeHByKSB7XG4gICAgICAgIGlmICghZGlzcGxheUV4cHIgfHwgIWRpc3BsYXlGaWVsZCkge1xuICAgICAgICAgICAgZGlzcGxheUZpZWxkID0gT2JqZWN0LmtleXMob2JqZWN0KVswXTtcbiAgICAgICAgICAgIC8vIElmIGRhdGFzZXQgaXMgbm90IHJlYWR5LCBkaXNwbGF5IGV4cHJlc3Npb24gd2lsbCBub3QgYmUgZGVmaW5lZFxuICAgICAgICAgICAgaWYgKCFkaXNwbGF5RmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldEV2YWx1YXRlZERhdGEob2JqZWN0LCB7XG4gICAgICAgICAgICBmaWVsZDogZGlzcGxheUZpZWxkLFxuICAgICAgICAgICAgZXhwcmVzc2lvbjogZGlzcGxheUV4cHJcbiAgICAgICAgfSwgdGhpcy52aWV3UGFyZW50KTtcbiAgICB9XG5cbiAgICAvLyBFeHByZXNzaW9uIHRvIGJlIGV2YWx1YXRlZCBpbiB2aWV3IG1vZGUgb2YgZm9ybSBmaWVsZFxuICAgIGdldERpc3BsYXlFeHByKCkge1xuICAgICAgICBjb25zdCBjYXB0aW9uID0gW107XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkID0gdGhpcy5kaXNwbGF5ZmllbGQgfHwgdGhpcy5kaXNwbGF5bGFiZWxcbiAgICAgICAgY29uc3QgZGlzcGxheUV4cHIgPSB0aGlzLmRpc3BsYXlleHByZXNzaW9uO1xuICAgICAgICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBmb3JFYWNoKHZhbHVlLCBvYmogPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPYmplY3Qob2JqKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbi5wdXNoKHRoaXMuZXZhbHVhdGVFeHByKG9iaiwgZGlzcGxheUZpZWxkLCBkaXNwbGF5RXhwcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhcHRpb24ucHVzaCh0aGlzLmV2YWx1YXRlRXhwcih2YWx1ZSwgZGlzcGxheUZpZWxkLCBkaXNwbGF5RXhwcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGpvaW4oY2FwdGlvbiwgJywnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpID8gJycgOiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIGdldENhcHRpb24oKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsdWUgPT09IG51bGwpID8gKGdldCh0aGlzLmZvcm0uZGF0YW91dHB1dCwgdGhpcy5fZmllbGROYW1lKSB8fCAnJykgOiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIC8vIE5vdGlmaWVzIGNoYW5nZXMgdG8gb2JzZXJ2aW5nIHZhbGlkYXRpb24gZmllbGRzXG4gICAgbm90aWZ5Q2hhbmdlcygpIHtcbiAgICAgICAgZm9yRWFjaCh0aGlzLm5vdGlmeUZvckZpZWxkcywgZmllbGQgPT4ge1xuICAgICAgICAgICAgZmllbGQuZmllbGRWYWxpZGF0aW9ucy52YWxpZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBSZWdpc3RlcnMgb2JzZXJ2ZXIgb2YgdmFsaWRhdGlvbiBmaWVsZHNcbiAgICBvYnNlcnZlT24oZmllbGRzKSB7XG4gICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucy5vYnNlcnZlT24oZmllbGRzLCAnZm9ybWZpZWxkcycpO1xuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBzZXR1cCB2YWxpZGF0b3JzIGZvciByZWFjdGl2ZSBmb3JtIGNvbnRyb2xcbiAgICBzZXRVcFZhbGlkYXRvcnMoY3VzdG9tVmFsaWRhdG9yPykge1xuICAgICAgICB0aGlzLmZpZWxkVmFsaWRhdGlvbnMuc2V0VXBWYWxpZGF0b3JzKGN1c3RvbVZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgLy8gc2V0cyB0aGUgY3VzdG9tIGFzeW5jIHZhbGlkYXRpb24gb24gdGhlIGZvcm0gZmllbGRcbiAgICBzZXRBc3luY1ZhbGlkYXRvcnModmFsaWRhdG9ycykge1xuICAgICAgICB0aGlzLmZpZWxkVmFsaWRhdGlvbnMuc2V0QXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIH1cblxuICAgIC8vIHNldHMgdGhlIGRlZmF1bHQgYW5kIGN1c3RvbSBzeW5jIHZhbGlkYXRpb24gb24gdGhlIGZvcm0gZmllbGRcbiAgICBzZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpIHtcbiAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIHNldCB0aGUgcHJvcGVydGllcyBvbiBpbm5lciBmb3JtIHdpZGdldFxuICAgIHNldEZvcm1XaWRnZXQoa2V5LCB2YWwpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQud2lkZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXQud2lkZ2V0W2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib3VuZEZuKGZuKSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBzZXQgdGhlIHByb3BlcnRpZXMgb24gaW5uZXIgbWF4IGZvcm0gd2lkZ2V0ICh3aGVuIHJhbmdlIGlzIHNlbGVjdGVkKVxuICAgIHNldE1heEZvcm1XaWRnZXQoa2V5LCB2YWwpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybVdpZGdldE1heCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0TWF4LndpZGdldFtrZXldID0gdmFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgY29uc3QgaXNGb3JtRGlydHkgPSB0aGlzLmZvcm0uZGlydHk7XG5cbiAgICAgICAgaWYgKGtleSAhPT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5leGNsdWRlUHJvcHMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFzIHVwbG9hZCB3aWRnZXQgaXMgYW4gSFRNTCB3aWRnZXQsIG9ubHkgcmVxdWlyZWQgcHJvcGVydHkgaXMgc2V0dXBcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0dHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAncmVxdWlyZWQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VTZXRVcFZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KGtleSwgbnYpO1xuXG4gICAgICAgIC8vIFBsYWNlaG9sZGVyIHNob3VsZCBub3QgYmUgc2V0dXAgb24gbWF4IHdpZGdldFxuICAgICAgICBpZiAoa2V5ICE9PSAncGxhY2Vob2xkZXInKSB7XG4gICAgICAgICAgICB0aGlzLnNldE1heEZvcm1XaWRnZXQoa2V5LCBudik7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnZGVmYXVsdHZhbHVlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ub25GaWVsZERlZmF1bHRWYWx1ZUNoYW5nZSh0aGlzLCBudik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtYXhkZWZhdWx0dmFsdWUnOlxuICAgICAgICAgICAgICAgIHRoaXMubWF4VmFsdWUgPSBudjtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE1heEZvcm1XaWRnZXQoJ2RhdGF2YWx1ZScsIG52KTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ub25NYXhEZWZhdWx0VmFsdWVDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21heHBsYWNlaG9sZGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNldE1heEZvcm1XaWRnZXQoJ3BsYWNlaG9sZGVyJywgbnYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmVxdWlyZWQnOlxuICAgICAgICAgICAgICAgIC8vIFdNUy0xODkwNiA6IERvIG5vdCBtYWtlIGZvcm0gYXMgZGlydHkgZHVyaW5nIHJlcXVpcmVkIHByb3AgaW5pdGlhbGl6YXRpb25cbiAgICAgICAgICAgICAgICBpZiAoaXNGb3JtRGlydHkgIT09IHRoaXMuZm9ybS5kaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdtYXhjaGFycyc6XG4gICAgICAgICAgICBjYXNlICdtaW52YWx1ZSc6XG4gICAgICAgICAgICBjYXNlICdtYXh2YWx1ZSc6XG4gICAgICAgICAgICBjYXNlICdyZWdleHAnOlxuICAgICAgICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VTZXRVcFZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ByaW1hcnkta2V5JzpcbiAgICAgICAgICAgICAgICBpZiAobnYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnNldFByaW1hcnlLZXkodGhpcy5fZmllbGROYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkaXNwbGF5LW5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheW5hbWUgPSBudjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JlYWRvbmx5JzpcbiAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZE9ubHlTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdHlsZUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KGtleSwgbnYpO1xuICAgICAgICB0aGlzLnNldE1heEZvcm1XaWRnZXQoa2V5LCBudik7XG4gICAgICAgIHN1cGVyLm9uU3R5bGVDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgIH1cblxuICAgIGdldCBkYXRhdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1XaWRnZXQgJiYgdGhpcy5mb3JtV2lkZ2V0LmRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgZGF0YXZhbHVlKHZhbCkge1xuICAgICAgICBpZiAodGhpcy5fY29udHJvbCAmJiB0aGlzLndpZGdldHR5cGUgIT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCkge1xuICAgICAgICAgICAgdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh2YWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbCkge1xuICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IHZhbDtcbiAgICB9XG5cbiAgICBnZXQgbWF4VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1XaWRnZXRNYXggJiYgdGhpcy5mb3JtV2lkZ2V0TWF4LmRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgbWF4VmFsdWUodmFsKSB7XG4gICAgICAgIGlmICh0aGlzLl9tYXhDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl9tYXhDb250cm9sLnNldFZhbHVlKHZhbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbWluVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHNldCBtaW5WYWx1ZSh2YWwpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHJlYWN0aXZlIGZvcm0gY29udHJvbFxuICAgIGdldCBfY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdmb3JtICYmIHRoaXMubmdmb3JtLmNvbnRyb2xzW3RoaXMuX2ZpZWxkTmFtZV07XG4gICAgfVxuXG4gICAgLy8gR2V0IHRoZSByZWFjdGl2ZSBtYXggZm9ybSBjb250cm9sXG4gICAgZ2V0IF9tYXhDb250cm9sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ2Zvcm0gJiYgdGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lICsgJ19tYXgnXTtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIGRpc3BsYXlWYWx1ZVxuICAgIGdldCBkaXNwbGF5VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1XaWRnZXQgJiYgdGhpcy5mb3JtV2lkZ2V0LmRpc3BsYXlWYWx1ZTtcbiAgICB9XG5cbiAgICAvL0dldCB0aGUgdGltZXN0YW1wXG4gICAgZ2V0IHRpbWVzdGFtcCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC50aW1lc3RhbXA7XG4gICAgfVxuXG4gICAgLy9HZXQgdGhlIGNoYXJsZW5ndGhcbiAgICBnZXQgY2hhcmxlbmd0aCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC5jaGFybGVuZ3RoO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgcmVhY3RpdmUgZm9ybSBjb250cm9sXG4gICAgY3JlYXRlQ29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmIuY29udHJvbCh1bmRlZmluZWQsIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IHRoaXMuX3ZhbGlkYXRvcnNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gT24gZmllbGQgdmFsdWUgY2hhbmdlLCBwcm9wYWdhdGUgZXZlbnQgdG8gcGFyZW50IGZvcm1cbiAgICBvblZhbHVlQ2hhbmdlKHZhbCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhcHRpb25FbCA9ICAkKHRoaXMubmF0aXZlRWxlbWVudCkuZmluZCgnLmNhcHRpb24tZmxvYXRpbmcnKTtcbiAgICAgICAgICAgIGlmIChjYXB0aW9uRWwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIGhhc1ZhbHVlIGNoZWNrIHdoZXRoZXIgZm9ybS1maWVsZCBoYXMgYSB2YWx1ZSBmcm9tIHBhc3NlZCB2YWwgYXR0cmlidXRlXG4gICAgICAgICAgICAgICAgLy8gQWRkZWQgc2FuaXR5IGNoZWNrIG9uIHZhbCB0byBzdXBwb3J0IHZhbHVlcyBsaWtlZCAwLCBmYWxzZSBldGMgYXMgaW5wdXQgdmFsIC0gV01TLTIwMDg0XG4gICAgICAgICAgICAgICAgLy8gZXhwbGljaXRseSBjaGVja2luZyBmb3IgaW5wdXQgdmFsdWUgb3IgLXdlYmtpdC1hdXRvZmlsbCB0byBzZWUgd2hldGhlciB0aGVyZSBhcmUgYW55IGF1dG9maWxsZWQgZmllbGRzIC0gV01TLTIwMTQxXG5cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNWYWx1ZSA9ICgoaXNEZWZpbmVkKHZhbCkgJiYgdmFsICE9PSAnJyAmJiB2YWwgIT09IG51bGwpIHx8IGNhcHRpb25FbC5maW5kKCdpbnB1dCcpLnZhbCgpKSB8fCBjYXB0aW9uRWwuZmluZCgnaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCcpLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSgnY2FwdGlvblBvc2l0aW9uQW5pbWF0ZScsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbDogaGFzVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVsOiBjYXB0aW9uRWwsXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0TXVsdGlwbGU6IHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgIGlzRm9jdXNlZDogdGhpcy5fYWN0aXZlRmllbGRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgLy8gRml4IGZvciBbV01TLTIzOTU5XTogQURBIGlzc3VlIC0gYWRkaW5nIGFyaWEtZGVzY3JpYmVkYnksIGFyaWEtaW52YWxpZCwgX19lcnJvcm1zZyBhdHRyaWJ1dGVzIG9ubHkgd2hlbiB0aGUgZm9ybSBmaWVsZCBpcyBpbnZhbGlkICwgZWxzZSByZW1vdmluZyB0aGUgYXR0cmlidXRlc1xuICAgICAgICAgICAgdGhpcy5zZXRBcmlhQXR0cmlidXRlcygpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLm9uRmllbGRWYWx1ZUNoYW5nZSh0aGlzLCB2YWwpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlDaGFuZ2VzKCk7XG4gICAgICAgICAgICAvLyBEbyBtYXJrIGFzIHRvdWNoZWQsIG9ubHkgaW5jYXNlIHdoZW4gdXNlciBoYXMgZW50ZXJlZCBhbiBpbnB1dCBidXQgbm90IHRocm91Z2ggdGhlIHNjcmlwdC4gSGVuY2UgYWRkZWQgbW91c2Vkb3duIGV2ZW50IGNoZWNrXG4gICAgICAgICAgICAvLyBhY3RpdmUgY2xhc3MgY2hlY2tzIHdoZXRoZXIgdXNlciBpcyBvbiB0aGUgY3VycmVudCBmaWVsZCwgaWYgc28gbWFya2luZyB0aGUgZmllbGQgYXMgdG91Y2hlZC4gQW5kIGZvcm0gZmllbGQgdmFsaWRhdGlvbiBoYXBwZW5zIG9uY2UgYSBmaWVsZCBpcyB0b3VjaGVkXG4gICAgICAgICAgICAvLyBfdHJpZ2dlcmVkQnlVc2VyIGNoZWNrcyB3aGV0aGVyIHRoZSBmaWVsZCBpcyB0b3VjaGVkIGJ5IHRoZSB1c2VyIG9yIHRyaWdnZXJlZCBmcm9tIGV4dGVybmFsIHNjcmlwdFxuICAgICAgICAgICAgLy8gV01TLTIyNDU2OiBfY2xpY2t0cmlnZ2VyZWRCeVVzZXIgY2hlY2tzIHdoZW4gdXNlciBzZWxlY3RzIGRhdGV0aW1ldHlwZSBmcm9tIHBpY2tlciwgbWFyayB0aGUgZmllbGQgYXMgdG91Y2hlZCB0byBzaG93IHZhbGlkYXRpb24gZXJyb3JzIGluIG1vYmlsZVxuXG4gICAgICAgICAgICBpZiAodGhpcy4kZWxlbWVudC5maW5kKCcuYWN0aXZlJykubGVuZ3RoID4gMCB8fCB0aGlzLmZvcm0udG91Y2hlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90cmlnZ2VyZWRCeVVzZXIgfHwgKGlzTW9iaWxlKCkgJiYgdGhpcy5fY2xpY2t0cmlnZ2VyZWRCeVVzZXIgJiYgaXNEYXRlVGltZVR5cGUodGhpcy53aWRnZXR0eXBlKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucy5zZXRDdXN0b21WYWxpZGF0aW9uTWVzc2FnZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdGF0dXNDaGFuZ2Uoc3RhdHVzKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93UGVuZGluZ1NwaW5uZXIgPSAoc3RhdHVzID09PSAnUEVORElORycpO1xuICAgICAgICAgICAgLy8gd2hpbGUgcnVubmluZyB2YWxpZGF0aW9uLCB3aWRnZXQgaXMgZGlzYWJsZWQgYW5kIHNwaW5uZXIgaXMgc2hvd25cbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSBmb3JtV2lkZ2V0IGRpc2FibGVkIHN0YXRlIGlzIHJlc2V0IHRvIHRoZSBzdGF0ZSBvZiB0aGUgZm9ybUZpZWxkLlxuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtV2lkZ2V0LmRpc2FibGVkICE9PSAodGhpcyBhcyBhbnkpLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0LmRpc2FibGVkID0gKHRoaXMgYXMgYW55KS5kaXNhYmxlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBleHBvc2UgdmFsaWRhdGlvbiBtZXNzYWdlIGFuZCBzZXQgY29udHJvbCB0byBpbnZhbGlkXG4gICAgc2V0VmFsaWRhdGlvbk1lc3NhZ2UodmFsKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZSA9IHZhbDtcbiAgICAgICAgICAgIHRoaXMuc2V0VXBWYWxpZGF0b3JzKGN1c3RvbVZhbGlkYXRvckZuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0UmVhZE9ubHlTdGF0ZSgpIHtcbiAgICAgICAgbGV0IHJlYWRPbmx5O1xuICAgICAgICBpZiAodGhpcy5mb3JtLmlzVXBkYXRlTW9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXNbJ3ByaW1hcnkta2V5J10gJiYgIXRoaXNbJ2lzLXJlbGF0ZWQnXSAmJiAhdGhpcy5wZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvKklmIHRoZSBmaWVsZCBpcyBwcmltYXJ5IGJ1dCBpcyBhc3NpZ25lZCBzZXQgcmVhZG9ubHkgZmFsc2UuXG4gICAgICAgICAgICAgICAgICAgQXNzaWduZWQgaXMgd2hlcmUgdGhlIHVzZXIgaW5wdXRzIHRoZSB2YWx1ZSB3aGlsZSBhIG5ldyBlbnRyeS5cbiAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG5vdCBlZGl0YWJsZShpbiB1cGRhdGUgbW9kZSkgb25jZSBlbnRyeSBpcyBzdWNjZXNzZnVsKi9cbiAgICAgICAgICAgICAgICByZWFkT25seSA9ICEodGhpcy5nZW5lcmF0b3IgPT09ICdhc3NpZ25lZCcgJiYgdGhpcy5mb3JtLm9wZXJhdGlvblR5cGUgIT09ICd1cGRhdGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVhZE9ubHkgPSB0aGlzLnJlYWRvbmx5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSW4gdmlldyBtb2RlLCBzZXQgd2lkZ2V0IHN0YXRlIHRvIHJlYWRvbmx5IGFsd2F5c1xuICAgICAgICAgICAgcmVhZE9ubHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldCgncmVhZG9ubHknLCByZWFkT25seSk7XG4gICAgfVxuXG4gICAgcmVzZXREaXNwbGF5SW5wdXQoKSB7XG4gICAgICAgIGlmICgoIWlzRGVmaW5lZCh0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSAnJykpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQucmVzZXREaXNwbGF5SW5wdXQgJiYgdGhpcy5mb3JtV2lkZ2V0LnJlc2V0RGlzcGxheUlucHV0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmlnZ2VyVXBsb2FkRXZlbnQoJGV2ZW50LCBldmVudE5hbWUpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7ICRldmVudCB9O1xuICAgICAgICBpZiAoZXZlbnROYW1lID09PSAnY2hhbmdlJykge1xuICAgICAgICAgICAgcGFyYW1zLm5ld1ZhbCA9ICRldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgICAgICBwYXJhbXMub2xkVmFsID0gdGhpcy5fb2xkVXBsb2FkVmFsO1xuICAgICAgICAgICAgdGhpcy5fb2xkVXBsb2FkVmFsID0gcGFyYW1zLm5ld1ZhbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soZXZlbnROYW1lLCBwYXJhbXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJGb3JtRmllbGQoKSB7XG5cbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gdGhpcy5fZmllbGROYW1lO1xuXG4gICAgICAgIGlmICh0aGlzLnBhcmVudExpc3QgJiYgISh0aGlzLmZvcm0ucGFyZW50TGlzdCA9PT0gdGhpcy5wYXJlbnRMaXN0KSkge1xuICAgICAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICAgICAgbGV0IF9maWVsZE5hbWUgPSBmaWVsZE5hbWU7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5uZ2Zvcm0uY29udHJvbHMuaGFzT3duUHJvcGVydHkoX2ZpZWxkTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBfZmllbGROYW1lID0gYCR7ZmllbGROYW1lfV8ke2NvdW50ZXJ9YDtcbiAgICAgICAgICAgICAgICBjb3VudGVyKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm5nZm9ybS5hZGRDb250cm9sKF9maWVsZE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbCgpKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpZWxkTmFtZSA9IF9maWVsZE5hbWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5nZm9ybS5hZGRDb250cm9sKGZpZWxkTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKCkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9uVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLl9jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMub25WYWx1ZUNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBvblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgICAgIGNvbnN0IG9uU3RhdHVzQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5fY29udHJvbC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5vblN0YXR1c0NoYW5nZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBvblN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICBpZiAodGhpcy5pc1JhbmdlID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgIHRoaXMubmdmb3JtLmFkZENvbnRyb2woZmllbGROYW1lICsgJ19tYXgnLCB0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XG4gICAgICAgICAgICAvLyByZWdpc3RlcmluZyBmb3IgdmFsdWVDaGFuZ2VzIG9uIE1heGZvcm1XaWRnZXRcbiAgICAgICAgICAgIGNvbnN0IG9uTWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLl9tYXhDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5vblZhbHVlQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBvbk1heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWUgPSBnZXQodGhpcy5mb3JtLmZvcm1kYXRhLCB0aGlzLl9maWVsZE5hbWUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm5nZm9ybSA9IHRoaXMuZm9ybS5uZ2Zvcm07XG4gICAgICAgIHRoaXMucmVnaXN0ZXJGb3JtRmllbGQoKTtcbiAgICAgICAgLy8gSW5zdGFudGlhdGUgY3VzdG9tIHZhbGlkYXRvcnMgY2xhc3MgZm9yIGZvcm0gZmllbGRcbiAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zID0gbmV3IEJhc2VGaWVsZFZhbGlkYXRpb25zKHRoaXMsIHRoaXMuZm9ybVdpZGdldCwgdGhpcy53aWRnZXR0eXBlLCB0aGlzLl9jb250cm9sLCB0aGlzLmZvcm0pO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybVdpZGdldCkge1xuICAgICAgICAgICAgdGhpcy5faW5pdFByb3BzUmVzKCk7XG5cbiAgICAgICAgICAgIC8vIHNldHRpbmcgZGlzcGxheUV4cHJlc3Npb25zIG9uIHRoZSBmb3Jtd2lkZ2V0IGV4cGxpY2l0bHkgYXMgZXhwciB3YXMgZXZhbHVhdGVkIHRvIFwiXCIuXG4gICAgICAgICAgICB0aGlzLnNldEZvcm1XaWRnZXQoJ2JpbmRkaXNwbGF5bGFiZWwnLCB0aGlzLmJpbmRkaXNwbGF5bGFiZWwpO1xuICAgICAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kZGlzcGxheWV4cHJlc3Npb24nLCB0aGlzLmJpbmRkaXNwbGF5ZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB0aGlzLnNldEZvcm1XaWRnZXQoJ2JpbmRkaXNwbGF5aW1hZ2VzcmMnLCB0aGlzLmJpbmRkaXNwbGF5aW1hZ2VzcmMpO1xuICAgICAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kQ2hpcGNsYXNzJywgdGhpcy5iaW5kQ2hpcGNsYXNzKTtcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldCgnYmluZGRhdGFzZXQnLCB0aGlzLmJpbmRkYXRhc2V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJSZWFkeVN0YXRlTGlzdGVuZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5rZXkgPSB0aGlzLl9maWVsZE5hbWUgfHwgdGhpcy50YXJnZXQgfHwgdGhpcy5iaW5kaW5nO1xuICAgICAgICAgICAgdGhpcy52aWV3bW9kZXdpZGdldCA9IHRoaXMudmlld21vZGV3aWRnZXQgfHwgZ2V0RGVmYXVsdFZpZXdNb2RlV2lkZ2V0KHRoaXMud2lkZ2V0dHlwZSk7XG5cbiAgICAgICAgICAgIC8vIEZvciB1cGxvYWQgd2lkZ2V0LCBnZW5lcmF0ZSB0aGUgcGVybWl0dGVkIGZpZWxkXG4gICAgICAgICAgICBpZiAodGhpcy53aWRnZXR0eXBlID09PSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmlsZVR5cGU7XG4gICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBhY2NlcHRzIHN0cmluZyBmcm9tIGZpbGUgdHlwZSBhbmQgZXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gdGhpcy5maWxldHlwZSA/IEZJTEVfVFlQRVNbdGhpcy5maWxldHlwZV0gOiAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnBlcm1pdHRlZCA9IGZpbGVUeXBlICsgKHRoaXMuZXh0ZW5zaW9ucyA/IChmaWxlVHlwZSA/ICcsJyA6ICcnKSArIHRoaXMuZXh0ZW5zaW9ucyA6ICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc01vYmlsZSgpICYmIHRoaXMudmlld3BvcnQuaXNNb2JpbGVUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzWydtb2JpbGUtZGlzcGxheSddKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0LnNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmlld3BvcnQuaXNUYWJsZXRUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzWyd0YWJsZXQtZGlzcGxheSddKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0LnNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghdGhpc1sncGMtZGlzcGxheSddKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0LnNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcuZGlzcGxhbmFtZSA9IHRoaXMuZGlzcGxheW5hbWU7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnNob3cgPSB0aGlzLnNob3c7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLmlzUmVsYXRlZCA9IHRoaXNbJ2lzLXJlbGF0ZWQnXTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcuaW5wdXR0eXBlID0gdGhpcy5pbnB1dHR5cGU7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLmdlbmVyYXRvciA9IHRoaXMuZ2VuZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnByaW1hcnlLZXkgPSB0aGlzWydwcmltYXJ5LWtleSddO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5yZXF1aXJlZCA9IHRoaXMucmVxdWlyZWQ7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLl9yZWFkb25seSA9IHRoaXMucmVhZG9ubHk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnJlZ2V4cCA9IHRoaXMucmVnZXhwO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5rZXkgPSB0aGlzLmtleTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcubW9iaWxlRGlzcGxheSA9IHRoaXNbJ21vYmlsZS1kaXNwbGF5J107XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnBjRGlzcGxheSA9IHRoaXNbJ3BjLWRpc3BsYXknXTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcudGFibGV0RGlzcGxheSA9IHRoaXNbJ3RhYmxldC1kaXNwbGF5J107XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnZhbGlkYXRpb25tZXNzYWdlID0gdGhpcy52YWxpZGF0aW9ubWVzc2FnZTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcudmlld21vZGV3aWRnZXQgPSB0aGlzLnZpZXdtb2Rld2lkZ2V0O1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy53aWRnZXQgPSB0aGlzLndpZGdldHR5cGU7XG5cbiAgICAgICAgICAgIC8vIFJlZ2lzdGVyIHRoZSBmb3JtIGZpZWxkIHdpdGggcGFyZW50IGZvcm1cbiAgICAgICAgICAgIHRoaXMuZm9ybS5yZWdpc3RlckZvcm1GaWVsZHModGhpcy53aWRnZXQpO1xuXG4gICAgICAgICAgICBhZGRGb3JJZEF0dHJpYnV0ZXModGhpcy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seVN0YXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -49,4 +49,4 @@ export const registerProps = () => {
49
49
  });
50
50
  }
51
51
  };
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2Zvcm0vc3JjL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5HLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7SUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQ3hCO1FBQ0ksQ0FBQyxlQUFlLEVBQUUsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDckQsQ0FBQyxjQUFjLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDOUMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO1FBQzdCLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQztRQUM1QixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7UUFDN0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO1FBQ3RCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO1FBQ2xDLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUMxQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDMUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQ3JCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUMxQixDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztRQUNoQyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7UUFDMUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO1FBQzVCLENBQUMsYUFBYSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDO1FBQzlCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQztRQUNwQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7UUFDdEIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQzVCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUM3QixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDckIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQzFCLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO1FBQ2hDLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO1FBQy9CLENBQUMsZ0JBQWdCLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDbEQsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ3hCLENBQUMsWUFBWSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQzlDLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQztRQUM1QixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7UUFDN0IsQ0FBQyxxQkFBcUIsRUFBRSxXQUFXLENBQUM7UUFDcEMsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO1FBQzFCLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQ3hDLENBQUMsZ0JBQWdCLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDbEQsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQ3JCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO1FBQ2xDLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO1FBQy9CLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztLQUM5QixDQUNKLENBQUM7SUFFRixLQUFLLE1BQU0sR0FBRyxJQUFJLGNBQWMsRUFBRTtRQUM5QixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUQsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFTLEVBQUUsRUFBRTtZQUNsQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFO2dCQUNqQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN6QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0tBQ047QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtV2lkZ2V0VHlwZSB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgUFJPUF9CT09MRUFOLCBQUk9QX05VTUJFUiwgUFJPUF9TVFJJTkcsIGdldFdpZGdldFByb3BzQnlUeXBlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlclByb3BzID0gKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1GaWVsZE1hcCA9IG5ldyBNYXAoXG4gICAgICAgIFtcbiAgICAgICAgICAgIFsnZGF0YWVudHJ5bW9kZScsIHt2YWx1ZTogJ2RlZmF1bHQnLCAuLi5QUk9QX1NUUklOR31dLFxuICAgICAgICAgICAgWydkZWJvdW5jZXRpbWUnLCB7dmFsdWU6IDI1MCwgLi4uUFJPUF9OVU1CRVJ9XSxcbiAgICAgICAgICAgIFsnZGVmYXVsdHZhbHVlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydkaXNwbGF5bmFtZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnZGlzcGxheS1uYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydmaWVsZCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnZmlsdGVyZXhwcmVzc2lvbnMnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2ZpbHRlci1vbicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnZ2VuZXJhdG9yJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydoaW50JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydpbnB1dHR5cGUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2lzLXByaW1hcnkta2V5JywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgICAgIFsnaXMtcmFuZ2UnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgWydpcy1yZWxhdGVkJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgICAgIFsnaXNmb3JtZmllbGQnLCB7dmFsdWU6IHRydWV9XSxcbiAgICAgICAgICAgIFsna2V5JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydsaW1pdCcsIFBST1BfTlVNQkVSXSxcbiAgICAgICAgICAgIFsnbG9va3VwLXR5cGUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2xvb2t1cC1maWVsZCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnbmFtZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnbWF0Y2htb2RlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydtYXhkZWZhdWx0dmFsdWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ21heHBsYWNlaG9sZGVyJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydtb2JpbGUtZGlzcGxheScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICBbJ3BlcmlvZCcsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICBbJ3BjLWRpc3BsYXknLCB7dmFsdWU6IHRydWUsIC4uLlBST1BfQk9PTEVBTn1dLFxuICAgICAgICAgICAgWydwbGFjZWhvbGRlcicsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsncHJpbWFyeS1rZXknLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgWydyZWxhdGVkLWVudGl0eS1uYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydyZXF1aXJlZCcsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICBbJ3Nob3cnLCB7dmFsdWU6IHRydWUsIC4uLlBST1BfQk9PTEVBTn1dLFxuICAgICAgICAgICAgWyd0YWJsZXQtZGlzcGxheScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICBbJ3R5cGUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ3ZhbGlkYXRpb25tZXNzYWdlJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWyd2aWV3bW9kZXdpZGdldCcsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnd2lkZ2V0dHlwZScsIFBST1BfU1RSSU5HXVxuICAgICAgICBdXG4gICAgKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIEZvcm1XaWRnZXRUeXBlKSB7XG4gICAgICAgIGNvbnN0IHdpZGdldE5hbWUgPSAnd20tZm9ybS1maWVsZC0nICsgRm9ybVdpZGdldFR5cGVba2V5XTtcbiAgICAgICAgY29uc3Qgd2lkZ2V0UHJvcHMgPSBnZXRXaWRnZXRQcm9wc0J5VHlwZSh3aWRnZXROYW1lKTtcbiAgICAgICAgZm9ybUZpZWxkTWFwLmZvckVhY2goKHYsIGs6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKHdpZGdldFByb3BzLmdldChrKSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXRQcm9wcy5zZXQoaywgdik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5wcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL2Zvcm0vc3JjL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5HLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7SUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQ3hCO1FBQ0ksQ0FBQyxlQUFlLEVBQUUsRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDckQsQ0FBQyxjQUFjLEVBQUUsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFDLENBQUM7UUFDOUMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO1FBQzdCLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQztRQUM1QixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUM7UUFDN0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO1FBQ3RCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO1FBQ2xDLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUMxQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUM7UUFDMUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQ3JCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUMxQixDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztRQUNoQyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7UUFDMUIsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO1FBQzVCLENBQUMsYUFBYSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDO1FBQzlCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQztRQUNwQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7UUFDdEIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQzVCLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztRQUM3QixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDckIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO1FBQzFCLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDO1FBQ2hDLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO1FBQy9CLENBQUMsZ0JBQWdCLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDbEQsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQ3hCLENBQUMsWUFBWSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQzlDLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQztRQUM1QixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7UUFDN0IsQ0FBQyxxQkFBcUIsRUFBRSxXQUFXLENBQUM7UUFDcEMsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDO1FBQzFCLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksRUFBQyxDQUFDO1FBQ3hDLENBQUMsZ0JBQWdCLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxFQUFDLENBQUM7UUFDbEQsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQ3JCLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO1FBQ2xDLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO1FBQy9CLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztLQUM5QixDQUNKLENBQUM7SUFFRixLQUFLLE1BQU0sR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQVMsRUFBRSxFQUFFO1lBQ2xDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDbEMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnQHdtL2NvcmUnO1xuXG5pbXBvcnQgeyBQUk9QX0JPT0xFQU4sIFBST1BfTlVNQkVSLCBQUk9QX1NUUklORywgZ2V0V2lkZ2V0UHJvcHNCeVR5cGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyUHJvcHMgPSAoKSA9PiB7XG4gICAgY29uc3QgZm9ybUZpZWxkTWFwID0gbmV3IE1hcChcbiAgICAgICAgW1xuICAgICAgICAgICAgWydkYXRhZW50cnltb2RlJywge3ZhbHVlOiAnZGVmYXVsdCcsIC4uLlBST1BfU1RSSU5HfV0sXG4gICAgICAgICAgICBbJ2RlYm91bmNldGltZScsIHt2YWx1ZTogMjUwLCAuLi5QUk9QX05VTUJFUn1dLFxuICAgICAgICAgICAgWydkZWZhdWx0dmFsdWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2Rpc3BsYXluYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydkaXNwbGF5LW5hbWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2ZpZWxkJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydmaWx0ZXJleHByZXNzaW9ucycsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnZmlsdGVyLW9uJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydnZW5lcmF0b3InLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2hpbnQnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2lucHV0dHlwZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnaXMtcHJpbWFyeS1rZXknLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgWydpcy1yYW5nZScsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICBbJ2lzLXJlbGF0ZWQnLCBQUk9QX0JPT0xFQU5dLFxuICAgICAgICAgICAgWydpc2Zvcm1maWVsZCcsIHt2YWx1ZTogdHJ1ZX1dLFxuICAgICAgICAgICAgWydrZXknLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ2xpbWl0JywgUFJPUF9OVU1CRVJdLFxuICAgICAgICAgICAgWydsb29rdXAtdHlwZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnbG9va3VwLWZpZWxkJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWyduYW1lJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydtYXRjaG1vZGUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ21heGRlZmF1bHR2YWx1ZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsnbWF4cGxhY2Vob2xkZXInLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ21vYmlsZS1kaXNwbGF5Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgICAgIFsncGVyaW9kJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgICAgIFsncGMtZGlzcGxheScsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICBbJ3BsYWNlaG9sZGVyJywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWydwcmltYXJ5LWtleScsIFBST1BfQk9PTEVBTl0sXG4gICAgICAgICAgICBbJ3JlbGF0ZWQtZW50aXR5LW5hbWUnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ3JlcXVpcmVkJywgUFJPUF9CT09MRUFOXSxcbiAgICAgICAgICAgIFsnc2hvdycsIHt2YWx1ZTogdHJ1ZSwgLi4uUFJPUF9CT09MRUFOfV0sXG4gICAgICAgICAgICBbJ3RhYmxldC1kaXNwbGF5Jywge3ZhbHVlOiB0cnVlLCAuLi5QUk9QX0JPT0xFQU59XSxcbiAgICAgICAgICAgIFsndHlwZScsIFBST1BfU1RSSU5HXSxcbiAgICAgICAgICAgIFsndmFsaWRhdGlvbm1lc3NhZ2UnLCBQUk9QX1NUUklOR10sXG4gICAgICAgICAgICBbJ3ZpZXdtb2Rld2lkZ2V0JywgUFJPUF9TVFJJTkddLFxuICAgICAgICAgICAgWyd3aWRnZXR0eXBlJywgUFJPUF9TVFJJTkddXG4gICAgICAgIF1cbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gRm9ybVdpZGdldFR5cGUpIHtcbiAgICAgICAgY29uc3Qgd2lkZ2V0TmFtZSA9ICd3bS1mb3JtLWZpZWxkLScgKyBGb3JtV2lkZ2V0VHlwZVtrZXldO1xuICAgICAgICBjb25zdCB3aWRnZXRQcm9wcyA9IGdldFdpZGdldFByb3BzQnlUeXBlKHdpZGdldE5hbWUpO1xuICAgICAgICBmb3JtRmllbGRNYXAuZm9yRWFjaCgodiwgazogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAod2lkZ2V0UHJvcHMuZ2V0KGspID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHdpZGdldFByb3BzLnNldChrLCB2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcbiJdfQ==
@@ -45,12 +45,12 @@ export class FormWidgetDirective {
45
45
  static { this.ɵfac = function FormWidgetDirective_Factory(t) { return new (t || FormWidgetDirective)(i0.ɵɵdirectiveInject(FormComponent, 8), i0.ɵɵdirectiveInject(TableComponent, 8), i0.ɵɵdirectiveInject(WidgetRef, 2), i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵinjectAttribute('name'), i0.ɵɵinjectAttribute('key')); }; }
46
46
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FormWidgetDirective, selectors: [["", "wmFormWidget", ""]] }); }
47
47
  }
48
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormWidgetDirective, [{
48
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormWidgetDirective, [{
49
49
  type: Directive,
50
50
  args: [{
51
51
  selector: '[wmFormWidget]'
52
52
  }]
53
- }], function () { return [{ type: undefined, decorators: [{
53
+ }], () => [{ type: undefined, decorators: [{
54
54
  type: Optional
55
55
  }, {
56
56
  type: Inject,
@@ -71,5 +71,5 @@ export class FormWidgetDirective {
71
71
  }] }, { type: undefined, decorators: [{
72
72
  type: Attribute,
73
73
  args: ['key']
74
- }] }]; }, null); })();
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS13aWRnZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvZm9ybS9zcmMvZm9ybS13aWRnZXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBS2pELE1BQU0sT0FBTyxtQkFBbUI7SUFNNUIsWUFDdUMsSUFBSSxFQUNILEtBQUssRUFDUCxpQkFBaUIsRUFDbkQsRUFBZSxFQUNXLElBQUksRUFDTCxHQUFHO1FBSE0sc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFBO1FBRXpCLFNBQUksR0FBSixJQUFJLENBQUE7UUFDTCxRQUFHLEdBQUgsR0FBRyxDQUFBO1FBQzVCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM5QjtpQkFBTSxJQUFJLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7YUFDbkM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNaLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxVQUFVLENBQUMsU0FBUztRQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsUUFBUTtRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztRQUV4QyxJQUFJLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQzFEO0lBQ0wsQ0FBQztvRkFqRFEsbUJBQW1CLHVCQU9KLGFBQWEsMkJBQ2IsY0FBYywyQkFDbEIsU0FBUyxpRUFFZCxNQUFNLHdCQUNOLEtBQUs7b0VBWlgsbUJBQW1COzt1RkFBbkIsbUJBQW1CO2NBSC9CLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzdCOztzQkFRUSxRQUFROztzQkFBSSxNQUFNO3VCQUFDLGFBQWE7O3NCQUNoQyxRQUFROztzQkFBSSxNQUFNO3VCQUFDLGNBQWM7O3NCQUNqQyxJQUFJOztzQkFBSSxNQUFNO3VCQUFDLFNBQVM7O3NCQUV4QixTQUFTO3VCQUFDLE1BQU07O3NCQUNoQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5qZWN0LCBPbkluaXQsIFNlbGYsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBXaWRnZXRSZWYgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGF0YS90YWJsZSc7XG5cbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0uY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21Gb3JtV2lkZ2V0XSdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVdpZGdldERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBuZ2Zvcm06IEZvcm1Hcm91cDtcbiAgICBmYjtcbiAgICBwYXJlbnQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChGb3JtQ29tcG9uZW50KSBmb3JtLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRhYmxlQ29tcG9uZW50KSB0YWJsZSxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFdpZGdldFJlZikgcHVibGljIGNvbXBvbmVudEluc3RhbmNlLFxuICAgICAgICBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ25hbWUnKSBwdWJsaWMgbmFtZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgna2V5JykgcHVibGljIGtleSkge1xuICAgICAgICB0aGlzLmZiID0gZmI7XG4gICAgICAgIHRoaXMucGFyZW50ID0gZm9ybSB8fCB0YWJsZTtcbiAgICAgICAgdGhpcy5uZ2Zvcm0gPSB0aGlzLnBhcmVudC5uZ2Zvcm07XG5cbiAgICAgICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZS5yZWdpc3RlclByb3BlcnR5Q2hhbmdlTGlzdGVuZXIoKGssIG52KSA9PiB7XG4gICAgICAgICAgICBpZiAoayA9PT0gJ2RhdGF2YWx1ZScgJiYgdGhpcy5fY29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsdWUobnYpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChrID09PSAnbmFtZScgJiYgIXRoaXMuX2NvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZENvbnRyb2wodGhpcy5rZXkgfHwgbnYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgX2NvbnRyb2woKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHRoaXMua2V5IHx8IHRoaXMubmFtZTtcbiAgICAgICAgaWYgKCFmaWVsZE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubmdmb3JtICYmIHRoaXMubmdmb3JtLmNvbnRyb2xzW2ZpZWxkTmFtZV07XG4gICAgfVxuXG4gICAgYWRkQ29udHJvbChmaWVsZE5hbWUpIHtcbiAgICAgICAgdGhpcy5uZ2Zvcm0uYWRkQ29udHJvbChmaWVsZE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbCgpKTtcbiAgICB9XG5cbiAgICBjcmVhdGVDb250cm9sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mYi5jb250cm9sKHRoaXMuY29tcG9uZW50SW5zdGFuY2UuZGF0YXZhbHVlKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gdGhpcy5rZXkgfHwgdGhpcy5uYW1lO1xuXG4gICAgICAgIGlmIChmaWVsZE5hbWUgJiYgIXRoaXMuX2NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkQ29udHJvbChmaWVsZE5hbWUpO1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQucmVnaXN0ZXJGb3JtV2lkZ2V0KHRoaXMuY29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
74
+ }] }], null); })();
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS13aWRnZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvZm9ybS9zcmMvZm9ybS13aWRnZXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBS2pELE1BQU0sT0FBTyxtQkFBbUI7SUFNNUIsWUFDdUMsSUFBSSxFQUNILEtBQUssRUFDUCxpQkFBaUIsRUFDbkQsRUFBZSxFQUNXLElBQUksRUFDTCxHQUFHO1FBSE0sc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFBO1FBRXpCLFNBQUksR0FBSixJQUFJLENBQUE7UUFDTCxRQUFHLEdBQUgsR0FBRyxDQUFBO1FBQzVCLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLENBQUM7aUJBQU0sSUFBSSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDYixPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxVQUFVLENBQUMsU0FBUztRQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsUUFBUTtRQUNKLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztRQUV4QyxJQUFJLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNMLENBQUM7b0ZBakRRLG1CQUFtQix1QkFPSixhQUFhLDJCQUNiLGNBQWMsMkJBQ2xCLFNBQVMsaUVBRWQsTUFBTSx3QkFDTixLQUFLO29FQVpYLG1CQUFtQjs7aUZBQW5CLG1CQUFtQjtjQUgvQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjthQUM3Qjs7c0JBUVEsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxhQUFhOztzQkFDaEMsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxjQUFjOztzQkFDakMsSUFBSTs7c0JBQUksTUFBTTt1QkFBQyxTQUFTOztzQkFFeEIsU0FBUzt1QkFBQyxNQUFNOztzQkFDaEIsU0FBUzt1QkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBEaXJlY3RpdmUsIEluamVjdCwgT25Jbml0LCBTZWxmLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgV2lkZ2V0UmVmIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RhdGEvdGFibGUnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtRm9ybVdpZGdldF0nXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1XaWRnZXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgbmdmb3JtOiBGb3JtR3JvdXA7XG4gICAgZmI7XG4gICAgcGFyZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRm9ybUNvbXBvbmVudCkgZm9ybSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChUYWJsZUNvbXBvbmVudCkgdGFibGUsXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChXaWRnZXRSZWYpIHB1YmxpYyBjb21wb25lbnRJbnN0YW5jZSxcbiAgICAgICAgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBAQXR0cmlidXRlKCduYW1lJykgcHVibGljIG5hbWUsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2tleScpIHB1YmxpYyBrZXkpIHtcbiAgICAgICAgdGhpcy5mYiA9IGZiO1xuICAgICAgICB0aGlzLnBhcmVudCA9IGZvcm0gfHwgdGFibGU7XG4gICAgICAgIHRoaXMubmdmb3JtID0gdGhpcy5wYXJlbnQubmdmb3JtO1xuXG4gICAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UucmVnaXN0ZXJQcm9wZXJ0eUNoYW5nZUxpc3RlbmVyKChrLCBudikgPT4ge1xuICAgICAgICAgICAgaWYgKGsgPT09ICdkYXRhdmFsdWUnICYmIHRoaXMuX2NvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250cm9sLnNldFZhbHVlKG52KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoayA9PT0gJ25hbWUnICYmICF0aGlzLl9jb250cm9sKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRDb250cm9sKHRoaXMua2V5IHx8IG52KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IF9jb250cm9sKCkge1xuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSB0aGlzLmtleSB8fCB0aGlzLm5hbWU7XG4gICAgICAgIGlmICghZmllbGROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm5nZm9ybSAmJiB0aGlzLm5nZm9ybS5jb250cm9sc1tmaWVsZE5hbWVdO1xuICAgIH1cblxuICAgIGFkZENvbnRyb2woZmllbGROYW1lKSB7XG4gICAgICAgIHRoaXMubmdmb3JtLmFkZENvbnRyb2woZmllbGROYW1lLCB0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XG4gICAgfVxuXG4gICAgY3JlYXRlQ29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmIuY29udHJvbCh0aGlzLmNvbXBvbmVudEluc3RhbmNlLmRhdGF2YWx1ZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHRoaXMua2V5IHx8IHRoaXMubmFtZTtcblxuICAgICAgICBpZiAoZmllbGROYW1lICYmICF0aGlzLl9jb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLmFkZENvbnRyb2woZmllbGROYW1lKTtcbiAgICAgICAgICAgIHRoaXMucGFyZW50LnJlZ2lzdGVyRm9ybVdpZGdldCh0aGlzLmNvbXBvbmVudEluc3RhbmNlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==