@wavemaker/app-ng-runtime 11.8.0-next.139432 → 11.8.0-next.141156

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