@wavemaker/app-ng-runtime 11.9.4-rc.5977 → 11.10.0-next.142024

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 (1130) hide show
  1. app-ng-runtime/build-task/fesm2022/index.mjs +1 -1
  2. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  3. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +3 -3
  4. app-ng-runtime/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +2 -2
  5. app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +2 -2
  6. app-ng-runtime/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
  7. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +4 -4
  8. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  9. app-ng-runtime/components/advanced/login/bundles/index.umd.js +2 -2
  10. app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +2 -2
  11. app-ng-runtime/components/advanced/login/esm2022/login.module.mjs +2 -2
  12. app-ng-runtime/components/advanced/login/fesm2022/index.mjs +3 -3
  13. app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
  14. app-ng-runtime/components/advanced/marquee/bundles/index.umd.js +2 -2
  15. app-ng-runtime/components/advanced/marquee/esm2022/marquee.directive.mjs +2 -2
  16. app-ng-runtime/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
  17. app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs +3 -3
  18. app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  19. app-ng-runtime/components/base/bundles/index.umd.js +36 -36
  20. app-ng-runtime/components/base/esm2022/components.module.mjs +2 -2
  21. app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +2 -2
  22. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +16 -16
  23. app-ng-runtime/components/base/esm2022/pipes/image.pipe.mjs +2 -2
  24. app-ng-runtime/components/base/esm2022/pipes/sanitize.pipe.mjs +2 -2
  25. app-ng-runtime/components/base/esm2022/pipes/trust-as.pipe.mjs +2 -2
  26. app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +1 -1
  27. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +2 -2
  28. app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +2 -2
  29. app-ng-runtime/components/base/esm2022/widgets/common/base/stylable.component.mjs +2 -2
  30. app-ng-runtime/components/base/esm2022/widgets/common/base/text-content.directive.mjs +2 -2
  31. app-ng-runtime/components/base/esm2022/widgets/common/container/container.directive.mjs +2 -2
  32. app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +2 -2
  33. app-ng-runtime/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +2 -2
  34. app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +2 -2
  35. app-ng-runtime/components/base/esm2022/widgets/common/message/message.component.mjs +2 -2
  36. app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +2 -2
  37. app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +3 -3
  38. app-ng-runtime/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +2 -2
  39. app-ng-runtime/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +2 -2
  40. app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +2 -2
  41. app-ng-runtime/components/base/fesm2022/index.mjs +38 -38
  42. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  43. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  44. app-ng-runtime/components/basic/default/bundles/index.umd.js +10 -10
  45. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +2 -2
  46. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +2 -2
  47. app-ng-runtime/components/basic/default/esm2022/basic.module.mjs +2 -2
  48. app-ng-runtime/components/basic/default/esm2022/html/html.directive.mjs +2 -2
  49. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +2 -2
  50. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +2 -2
  51. app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +2 -2
  52. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  53. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +2 -2
  54. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +2 -2
  55. app-ng-runtime/components/basic/default/fesm2022/index.mjs +11 -11
  56. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  57. app-ng-runtime/components/basic/progress/bundles/index.umd.js +4 -4
  58. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +2 -2
  59. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +2 -2
  60. app-ng-runtime/components/basic/progress/esm2022/progress.module.mjs +2 -2
  61. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +4 -4
  62. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  63. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -2
  64. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -2
  65. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +2 -2
  66. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +3 -3
  67. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  68. app-ng-runtime/components/basic/search/bundles/index.umd.js +3 -3
  69. app-ng-runtime/components/basic/search/esm2022/scrollable.directive.mjs +2 -2
  70. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +2 -2
  71. app-ng-runtime/components/basic/search/esm2022/search.module.mjs +2 -2
  72. app-ng-runtime/components/basic/search/fesm2022/index.mjs +4 -4
  73. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  74. app-ng-runtime/components/basic/tree/bundles/index.umd.js +2 -2
  75. app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +2 -2
  76. app-ng-runtime/components/basic/tree/esm2022/tree.module.mjs +2 -2
  77. app-ng-runtime/components/basic/tree/fesm2022/index.mjs +3 -3
  78. app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
  79. app-ng-runtime/components/chart/bundles/index.umd.js +3 -3
  80. app-ng-runtime/components/chart/esm2022/chart.component.mjs +2 -2
  81. app-ng-runtime/components/chart/esm2022/chart.module.mjs +2 -2
  82. app-ng-runtime/components/chart/fesm2022/index.mjs +4 -4
  83. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  84. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +3 -3
  85. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +2 -2
  86. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +2 -2
  87. app-ng-runtime/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
  88. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +5 -5
  89. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  90. app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +4 -4
  91. app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +2 -2
  92. app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +2 -2
  93. app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +2 -2
  94. app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
  95. app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs +5 -5
  96. app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  97. app-ng-runtime/components/containers/linear-layout/bundles/index.umd.js +3 -3
  98. app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +2 -2
  99. app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +2 -2
  100. app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
  101. app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs +4 -4
  102. app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  103. app-ng-runtime/components/containers/panel/bundles/index.umd.js +2 -2
  104. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +2 -2
  105. app-ng-runtime/components/containers/panel/esm2022/panel.module.mjs +2 -2
  106. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +3 -3
  107. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  108. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +3 -3
  109. app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +2 -2
  110. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +2 -2
  111. app-ng-runtime/components/containers/tabs/esm2022/tabs.module.mjs +2 -2
  112. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +5 -5
  113. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  114. app-ng-runtime/components/containers/tile/bundles/index.umd.js +2 -2
  115. app-ng-runtime/components/containers/tile/esm2022/tile.directive.mjs +2 -2
  116. app-ng-runtime/components/containers/tile/esm2022/tile.module.mjs +2 -2
  117. app-ng-runtime/components/containers/tile/fesm2022/index.mjs +3 -3
  118. app-ng-runtime/components/containers/tile/fesm2022/index.mjs.map +1 -1
  119. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +3 -3
  120. app-ng-runtime/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +2 -2
  121. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +2 -2
  122. app-ng-runtime/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
  123. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +4 -4
  124. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  125. app-ng-runtime/components/data/card/bundles/index.umd.js +5 -5
  126. app-ng-runtime/components/data/card/esm2022/card-actions/card-actions.directive.mjs +2 -2
  127. app-ng-runtime/components/data/card/esm2022/card-content/card-content.component.mjs +2 -2
  128. app-ng-runtime/components/data/card/esm2022/card-footer/card-footer.directive.mjs +2 -2
  129. app-ng-runtime/components/data/card/esm2022/card.component.mjs +2 -2
  130. app-ng-runtime/components/data/card/esm2022/card.module.mjs +2 -2
  131. app-ng-runtime/components/data/card/fesm2022/index.mjs +6 -6
  132. app-ng-runtime/components/data/card/fesm2022/index.mjs.map +1 -1
  133. app-ng-runtime/components/data/form/bundles/index.umd.js +9 -9
  134. app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +2 -2
  135. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +2 -2
  136. app-ng-runtime/components/data/form/esm2022/form-widget.directive.mjs +2 -2
  137. app-ng-runtime/components/data/form/esm2022/form.component.mjs +2 -2
  138. app-ng-runtime/components/data/form/esm2022/form.module.mjs +2 -2
  139. app-ng-runtime/components/data/form/esm2022/live-actions/dependson.directive.mjs +2 -2
  140. app-ng-runtime/components/data/form/esm2022/live-actions/live-actions.directive.mjs +2 -2
  141. app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +2 -2
  142. app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +2 -2
  143. app-ng-runtime/components/data/form/fesm2022/index.mjs +11 -11
  144. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  145. app-ng-runtime/components/data/list/bundles/index.umd.js +3 -3
  146. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +2 -2
  147. app-ng-runtime/components/data/list/esm2022/list.component.mjs +2 -2
  148. app-ng-runtime/components/data/list/esm2022/list.module.mjs +2 -2
  149. app-ng-runtime/components/data/list/fesm2022/index.mjs +4 -4
  150. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  151. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  152. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +2 -2
  153. app-ng-runtime/components/data/live-table/esm2022/live-table.module.mjs +2 -2
  154. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +3 -3
  155. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  156. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -2
  157. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +2 -2
  158. app-ng-runtime/components/data/pagination/esm2022/pagination.module.mjs +2 -2
  159. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +3 -3
  160. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  161. app-ng-runtime/components/data/table/bundles/index.umd.js +9 -9
  162. app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +2 -2
  163. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +2 -2
  164. app-ng-runtime/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +2 -2
  165. app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +2 -2
  166. app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +2 -2
  167. app-ng-runtime/components/data/table/esm2022/table-row/table-row.directive.mjs +2 -2
  168. app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +2 -2
  169. app-ng-runtime/components/data/table/esm2022/table.component.mjs +2 -2
  170. app-ng-runtime/components/data/table/esm2022/table.module.mjs +2 -2
  171. app-ng-runtime/components/data/table/fesm2022/index.mjs +11 -11
  172. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  173. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +2 -2
  174. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +2 -2
  175. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
  176. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +3 -3
  177. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  178. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +2 -2
  179. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +2 -2
  180. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
  181. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +3 -3
  182. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  183. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +5 -5
  184. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +2 -2
  185. app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +2 -2
  186. app-ng-runtime/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +2 -2
  187. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +2 -2
  188. app-ng-runtime/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
  189. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +6 -6
  190. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  191. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +2 -2
  192. app-ng-runtime/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +2 -2
  193. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +2 -2
  194. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +3 -3
  195. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  196. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +2 -2
  197. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +2 -2
  198. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
  199. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +3 -3
  200. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  201. app-ng-runtime/components/dialogs/login-dialog/bundles/index.umd.js +2 -2
  202. app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +2 -2
  203. app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +2 -2
  204. app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs +2 -2
  205. app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  206. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +2 -2
  207. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +2 -2
  208. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
  209. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +3 -3
  210. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  211. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -2
  212. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +2 -2
  213. app-ng-runtime/components/input/calendar/esm2022/calendar.module.mjs +2 -2
  214. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +4 -4
  215. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  216. app-ng-runtime/components/input/chips/bundles/index.umd.js +2 -2
  217. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +2 -2
  218. app-ng-runtime/components/input/chips/esm2022/chips.module.mjs +2 -2
  219. app-ng-runtime/components/input/chips/fesm2022/index.mjs +3 -3
  220. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  221. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +2 -2
  222. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +2 -2
  223. app-ng-runtime/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
  224. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +2 -2
  225. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  226. app-ng-runtime/components/input/currency/bundles/index.umd.js +2 -2
  227. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +2 -2
  228. app-ng-runtime/components/input/currency/esm2022/currency.module.mjs +2 -2
  229. app-ng-runtime/components/input/currency/fesm2022/index.mjs +2 -2
  230. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  231. app-ng-runtime/components/input/default/bundles/index.umd.js +21 -21
  232. app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +2 -2
  233. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +2 -2
  234. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +2 -2
  235. app-ng-runtime/components/input/default/esm2022/button-group/button-group.directive.mjs +2 -2
  236. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +2 -2
  237. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +2 -2
  238. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +2 -2
  239. app-ng-runtime/components/input/default/esm2022/composite/composite.directive.mjs +2 -2
  240. app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +2 -2
  241. app-ng-runtime/components/input/default/esm2022/input.module.mjs +2 -2
  242. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +2 -2
  243. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +2 -2
  244. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +2 -2
  245. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +2 -2
  246. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +2 -2
  247. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +2 -2
  248. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +2 -2
  249. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +2 -2
  250. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +2 -2
  251. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +2 -2
  252. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +2 -2
  253. app-ng-runtime/components/input/default/fesm2022/index.mjs +26 -26
  254. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  255. app-ng-runtime/components/input/epoch/bundles/index.umd.js +10 -10
  256. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +1 -1
  257. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +2 -2
  258. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +4 -4
  259. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +2 -2
  260. app-ng-runtime/components/input/epoch/esm2022/epoch.module.mjs +2 -2
  261. app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +3 -3
  262. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +2 -2
  263. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +11 -11
  264. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  265. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +2 -2
  266. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +2 -2
  267. app-ng-runtime/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  268. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +3 -3
  269. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  270. app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
  271. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +2 -2
  272. app-ng-runtime/components/input/rating/esm2022/rating.module.mjs +2 -2
  273. app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
  274. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  275. app-ng-runtime/components/input/slider/bundles/index.umd.js +2 -2
  276. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +2 -2
  277. app-ng-runtime/components/input/slider/esm2022/slider.module.mjs +2 -2
  278. app-ng-runtime/components/input/slider/fesm2022/index.mjs +2 -2
  279. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  280. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +2 -2
  281. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +2 -2
  282. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
  283. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +3 -3
  284. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  285. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +8 -8
  286. app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +1 -1
  287. app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +2 -2
  288. app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +2 -2
  289. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
  290. app-ng-runtime/components/navigation/menu/esm2022/menu.module.mjs +2 -2
  291. app-ng-runtime/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +2 -2
  292. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  293. app-ng-runtime/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +2 -2
  294. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -10
  295. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  296. app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +2 -2
  297. app-ng-runtime/components/navigation/navbar/esm2022/navbar.component.mjs +2 -2
  298. app-ng-runtime/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
  299. app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs +3 -3
  300. app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  301. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +2 -2
  302. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +2 -2
  303. app-ng-runtime/components/navigation/popover/esm2022/popover.module.mjs +2 -2
  304. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +3 -3
  305. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  306. app-ng-runtime/components/page/default/bundles/index.umd.js +7 -7
  307. app-ng-runtime/components/page/default/esm2022/content/content.component.mjs +2 -2
  308. app-ng-runtime/components/page/default/esm2022/layout.directive.mjs +2 -2
  309. app-ng-runtime/components/page/default/esm2022/page-content/page-content.component.mjs +2 -2
  310. app-ng-runtime/components/page/default/esm2022/page.directive.mjs +2 -2
  311. app-ng-runtime/components/page/default/esm2022/page.module.mjs +2 -2
  312. app-ng-runtime/components/page/default/esm2022/router-outlet.directive.mjs +2 -2
  313. app-ng-runtime/components/page/default/esm2022/spa-page.directive.mjs +2 -2
  314. app-ng-runtime/components/page/default/fesm2022/index.mjs +8 -8
  315. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  316. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -2
  317. app-ng-runtime/components/page/footer/esm2022/footer.directive.mjs +2 -2
  318. app-ng-runtime/components/page/footer/esm2022/footer.module.mjs +2 -2
  319. app-ng-runtime/components/page/footer/fesm2022/index.mjs +3 -3
  320. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  321. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -2
  322. app-ng-runtime/components/page/header/esm2022/header.component.mjs +2 -2
  323. app-ng-runtime/components/page/header/esm2022/header.module.mjs +2 -2
  324. app-ng-runtime/components/page/header/fesm2022/index.mjs +3 -3
  325. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  326. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -2
  327. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +2 -2
  328. app-ng-runtime/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  329. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +3 -3
  330. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  331. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -2
  332. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +2 -2
  333. app-ng-runtime/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
  334. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +3 -3
  335. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  336. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -2
  337. app-ng-runtime/components/page/top-nav/esm2022/top-nav.directive.mjs +2 -2
  338. app-ng-runtime/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
  339. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +3 -3
  340. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  341. app-ng-runtime/components/prefab/bundles/index.umd.js +3 -3
  342. app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +2 -2
  343. app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +2 -2
  344. app-ng-runtime/components/prefab/esm2022/prefab.module.mjs +2 -2
  345. app-ng-runtime/components/prefab/fesm2022/index.mjs +3 -3
  346. app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
  347. app-ng-runtime/core/bundles/index.umd.js +11 -11
  348. app-ng-runtime/core/esm2022/core.module.mjs +2 -2
  349. app-ng-runtime/core/esm2022/services/constant.service.mjs +2 -2
  350. app-ng-runtime/core/esm2022/services/custom-icons-loader.service.mjs +2 -2
  351. app-ng-runtime/core/esm2022/services/field-type.service.mjs +2 -2
  352. app-ng-runtime/core/esm2022/services/field-widget.service.mjs +2 -2
  353. app-ng-runtime/core/esm2022/services/pagination.service.mjs +2 -2
  354. app-ng-runtime/core/esm2022/services/script-loader.service.mjs +2 -2
  355. app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +2 -2
  356. app-ng-runtime/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
  357. app-ng-runtime/core/esm2022/services/utils.service.mjs +2 -2
  358. app-ng-runtime/core/esm2022/services/viewport.service.mjs +2 -2
  359. app-ng-runtime/core/fesm2022/index.mjs +13 -13
  360. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  361. app-ng-runtime/http/bundles/index.umd.js +2 -2
  362. app-ng-runtime/http/esm2022/http-service.module.mjs +2 -2
  363. app-ng-runtime/http/esm2022/http.service.mjs +2 -2
  364. app-ng-runtime/http/fesm2022/index.mjs +2 -2
  365. app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
  366. app-ng-runtime/locales/angular/global/af-na.js +1 -1
  367. app-ng-runtime/locales/angular/global/af.js +1 -1
  368. app-ng-runtime/locales/angular/global/agq.js +1 -1
  369. app-ng-runtime/locales/angular/global/ak.js +1 -1
  370. app-ng-runtime/locales/angular/global/am.js +1 -1
  371. app-ng-runtime/locales/angular/global/ar-ae.js +1 -1
  372. app-ng-runtime/locales/angular/global/ar-bh.js +1 -1
  373. app-ng-runtime/locales/angular/global/ar-dj.js +1 -1
  374. app-ng-runtime/locales/angular/global/ar-dz.js +1 -1
  375. app-ng-runtime/locales/angular/global/ar-eg.js +1 -1
  376. app-ng-runtime/locales/angular/global/ar-eh.js +1 -1
  377. app-ng-runtime/locales/angular/global/ar-er.js +1 -1
  378. app-ng-runtime/locales/angular/global/ar-il.js +1 -1
  379. app-ng-runtime/locales/angular/global/ar-iq.js +1 -1
  380. app-ng-runtime/locales/angular/global/ar-jo.js +1 -1
  381. app-ng-runtime/locales/angular/global/ar-km.js +1 -1
  382. app-ng-runtime/locales/angular/global/ar-kw.js +1 -1
  383. app-ng-runtime/locales/angular/global/ar-lb.js +1 -1
  384. app-ng-runtime/locales/angular/global/ar-ly.js +1 -1
  385. app-ng-runtime/locales/angular/global/ar-ma.js +1 -1
  386. app-ng-runtime/locales/angular/global/ar-mr.js +1 -1
  387. app-ng-runtime/locales/angular/global/ar-om.js +1 -1
  388. app-ng-runtime/locales/angular/global/ar-ps.js +1 -1
  389. app-ng-runtime/locales/angular/global/ar-qa.js +1 -1
  390. app-ng-runtime/locales/angular/global/ar-sa.js +1 -1
  391. app-ng-runtime/locales/angular/global/ar-sd.js +1 -1
  392. app-ng-runtime/locales/angular/global/ar-so.js +1 -1
  393. app-ng-runtime/locales/angular/global/ar-ss.js +1 -1
  394. app-ng-runtime/locales/angular/global/ar-sy.js +1 -1
  395. app-ng-runtime/locales/angular/global/ar-td.js +1 -1
  396. app-ng-runtime/locales/angular/global/ar-tn.js +1 -1
  397. app-ng-runtime/locales/angular/global/ar-ye.js +1 -1
  398. app-ng-runtime/locales/angular/global/ar.js +1 -1
  399. app-ng-runtime/locales/angular/global/as.js +1 -1
  400. app-ng-runtime/locales/angular/global/asa.js +1 -1
  401. app-ng-runtime/locales/angular/global/ast.js +1 -1
  402. app-ng-runtime/locales/angular/global/az-cyrl.js +1 -1
  403. app-ng-runtime/locales/angular/global/az-latn.js +1 -1
  404. app-ng-runtime/locales/angular/global/az.js +1 -1
  405. app-ng-runtime/locales/angular/global/bas.js +1 -1
  406. app-ng-runtime/locales/angular/global/be-tarask.js +1 -1
  407. app-ng-runtime/locales/angular/global/be.js +1 -1
  408. app-ng-runtime/locales/angular/global/bem.js +1 -1
  409. app-ng-runtime/locales/angular/global/bez.js +1 -1
  410. app-ng-runtime/locales/angular/global/bg.js +1 -1
  411. app-ng-runtime/locales/angular/global/bm.js +1 -1
  412. app-ng-runtime/locales/angular/global/bn-in.js +1 -1
  413. app-ng-runtime/locales/angular/global/bn.js +1 -1
  414. app-ng-runtime/locales/angular/global/bo-in.js +1 -1
  415. app-ng-runtime/locales/angular/global/bo.js +1 -1
  416. app-ng-runtime/locales/angular/global/br.js +1 -1
  417. app-ng-runtime/locales/angular/global/brx.js +1 -1
  418. app-ng-runtime/locales/angular/global/bs-cyrl.js +1 -1
  419. app-ng-runtime/locales/angular/global/bs-latn.js +1 -1
  420. app-ng-runtime/locales/angular/global/bs.js +1 -1
  421. app-ng-runtime/locales/angular/global/ca-ad.js +1 -1
  422. app-ng-runtime/locales/angular/global/ca-es-valencia.js +1 -1
  423. app-ng-runtime/locales/angular/global/ca-fr.js +1 -1
  424. app-ng-runtime/locales/angular/global/ca-it.js +1 -1
  425. app-ng-runtime/locales/angular/global/ca.js +1 -1
  426. app-ng-runtime/locales/angular/global/ccp-in.js +1 -1
  427. app-ng-runtime/locales/angular/global/ccp.js +1 -1
  428. app-ng-runtime/locales/angular/global/ce.js +1 -1
  429. app-ng-runtime/locales/angular/global/ceb.js +1 -1
  430. app-ng-runtime/locales/angular/global/cgg.js +1 -1
  431. app-ng-runtime/locales/angular/global/chr.js +1 -1
  432. app-ng-runtime/locales/angular/global/ckb-ir.js +1 -1
  433. app-ng-runtime/locales/angular/global/ckb.js +1 -1
  434. app-ng-runtime/locales/angular/global/cs.js +1 -1
  435. app-ng-runtime/locales/angular/global/cy.js +1 -1
  436. app-ng-runtime/locales/angular/global/da-gl.js +1 -1
  437. app-ng-runtime/locales/angular/global/da.js +1 -1
  438. app-ng-runtime/locales/angular/global/dav.js +1 -1
  439. app-ng-runtime/locales/angular/global/de-at.js +1 -1
  440. app-ng-runtime/locales/angular/global/de-be.js +1 -1
  441. app-ng-runtime/locales/angular/global/de-ch.js +1 -1
  442. app-ng-runtime/locales/angular/global/de-it.js +1 -1
  443. app-ng-runtime/locales/angular/global/de-li.js +1 -1
  444. app-ng-runtime/locales/angular/global/de-lu.js +1 -1
  445. app-ng-runtime/locales/angular/global/de.js +1 -1
  446. app-ng-runtime/locales/angular/global/dje.js +1 -1
  447. app-ng-runtime/locales/angular/global/doi.js +1 -1
  448. app-ng-runtime/locales/angular/global/dsb.js +1 -1
  449. app-ng-runtime/locales/angular/global/dua.js +1 -1
  450. app-ng-runtime/locales/angular/global/dyo.js +1 -1
  451. app-ng-runtime/locales/angular/global/dz.js +1 -1
  452. app-ng-runtime/locales/angular/global/ebu.js +1 -1
  453. app-ng-runtime/locales/angular/global/ee-tg.js +1 -1
  454. app-ng-runtime/locales/angular/global/ee.js +1 -1
  455. app-ng-runtime/locales/angular/global/el-cy.js +1 -1
  456. app-ng-runtime/locales/angular/global/el.js +1 -1
  457. app-ng-runtime/locales/angular/global/en-001.js +1 -1
  458. app-ng-runtime/locales/angular/global/en-150.js +1 -1
  459. app-ng-runtime/locales/angular/global/en-ae.js +1 -1
  460. app-ng-runtime/locales/angular/global/en-ag.js +1 -1
  461. app-ng-runtime/locales/angular/global/en-ai.js +1 -1
  462. app-ng-runtime/locales/angular/global/en-as.js +1 -1
  463. app-ng-runtime/locales/angular/global/en-at.js +1 -1
  464. app-ng-runtime/locales/angular/global/en-au.js +1 -1
  465. app-ng-runtime/locales/angular/global/en-bb.js +1 -1
  466. app-ng-runtime/locales/angular/global/en-be.js +1 -1
  467. app-ng-runtime/locales/angular/global/en-bi.js +1 -1
  468. app-ng-runtime/locales/angular/global/en-bm.js +1 -1
  469. app-ng-runtime/locales/angular/global/en-bs.js +1 -1
  470. app-ng-runtime/locales/angular/global/en-bw.js +1 -1
  471. app-ng-runtime/locales/angular/global/en-bz.js +1 -1
  472. app-ng-runtime/locales/angular/global/en-ca.js +1 -1
  473. app-ng-runtime/locales/angular/global/en-cc.js +1 -1
  474. app-ng-runtime/locales/angular/global/en-ch.js +1 -1
  475. app-ng-runtime/locales/angular/global/en-ck.js +1 -1
  476. app-ng-runtime/locales/angular/global/en-cm.js +1 -1
  477. app-ng-runtime/locales/angular/global/en-cx.js +1 -1
  478. app-ng-runtime/locales/angular/global/en-cy.js +1 -1
  479. app-ng-runtime/locales/angular/global/en-de.js +1 -1
  480. app-ng-runtime/locales/angular/global/en-dg.js +1 -1
  481. app-ng-runtime/locales/angular/global/en-dk.js +1 -1
  482. app-ng-runtime/locales/angular/global/en-dm.js +1 -1
  483. app-ng-runtime/locales/angular/global/en-er.js +1 -1
  484. app-ng-runtime/locales/angular/global/en-fi.js +1 -1
  485. app-ng-runtime/locales/angular/global/en-fj.js +1 -1
  486. app-ng-runtime/locales/angular/global/en-fk.js +1 -1
  487. app-ng-runtime/locales/angular/global/en-fm.js +1 -1
  488. app-ng-runtime/locales/angular/global/en-gb.js +1 -1
  489. app-ng-runtime/locales/angular/global/en-gd.js +1 -1
  490. app-ng-runtime/locales/angular/global/en-gg.js +1 -1
  491. app-ng-runtime/locales/angular/global/en-gh.js +1 -1
  492. app-ng-runtime/locales/angular/global/en-gi.js +1 -1
  493. app-ng-runtime/locales/angular/global/en-gm.js +1 -1
  494. app-ng-runtime/locales/angular/global/en-gu.js +1 -1
  495. app-ng-runtime/locales/angular/global/en-gy.js +1 -1
  496. app-ng-runtime/locales/angular/global/en-hk.js +1 -1
  497. app-ng-runtime/locales/angular/global/en-ie.js +1 -1
  498. app-ng-runtime/locales/angular/global/en-il.js +1 -1
  499. app-ng-runtime/locales/angular/global/en-im.js +1 -1
  500. app-ng-runtime/locales/angular/global/en-in.js +1 -1
  501. app-ng-runtime/locales/angular/global/en-io.js +1 -1
  502. app-ng-runtime/locales/angular/global/en-je.js +1 -1
  503. app-ng-runtime/locales/angular/global/en-jm.js +1 -1
  504. app-ng-runtime/locales/angular/global/en-ke.js +1 -1
  505. app-ng-runtime/locales/angular/global/en-ki.js +1 -1
  506. app-ng-runtime/locales/angular/global/en-kn.js +1 -1
  507. app-ng-runtime/locales/angular/global/en-ky.js +1 -1
  508. app-ng-runtime/locales/angular/global/en-lc.js +1 -1
  509. app-ng-runtime/locales/angular/global/en-lr.js +1 -1
  510. app-ng-runtime/locales/angular/global/en-ls.js +1 -1
  511. app-ng-runtime/locales/angular/global/en-mg.js +1 -1
  512. app-ng-runtime/locales/angular/global/en-mh.js +1 -1
  513. app-ng-runtime/locales/angular/global/en-mo.js +1 -1
  514. app-ng-runtime/locales/angular/global/en-mp.js +1 -1
  515. app-ng-runtime/locales/angular/global/en-ms.js +1 -1
  516. app-ng-runtime/locales/angular/global/en-mt.js +1 -1
  517. app-ng-runtime/locales/angular/global/en-mu.js +1 -1
  518. app-ng-runtime/locales/angular/global/en-mv.js +1 -1
  519. app-ng-runtime/locales/angular/global/en-mw.js +1 -1
  520. app-ng-runtime/locales/angular/global/en-my.js +1 -1
  521. app-ng-runtime/locales/angular/global/en-na.js +1 -1
  522. app-ng-runtime/locales/angular/global/en-nf.js +1 -1
  523. app-ng-runtime/locales/angular/global/en-ng.js +1 -1
  524. app-ng-runtime/locales/angular/global/en-nl.js +1 -1
  525. app-ng-runtime/locales/angular/global/en-nr.js +1 -1
  526. app-ng-runtime/locales/angular/global/en-nu.js +1 -1
  527. app-ng-runtime/locales/angular/global/en-nz.js +1 -1
  528. app-ng-runtime/locales/angular/global/en-pg.js +1 -1
  529. app-ng-runtime/locales/angular/global/en-ph.js +1 -1
  530. app-ng-runtime/locales/angular/global/en-pk.js +1 -1
  531. app-ng-runtime/locales/angular/global/en-pn.js +1 -1
  532. app-ng-runtime/locales/angular/global/en-pr.js +1 -1
  533. app-ng-runtime/locales/angular/global/en-pw.js +1 -1
  534. app-ng-runtime/locales/angular/global/en-rw.js +1 -1
  535. app-ng-runtime/locales/angular/global/en-sb.js +1 -1
  536. app-ng-runtime/locales/angular/global/en-sc.js +1 -1
  537. app-ng-runtime/locales/angular/global/en-sd.js +1 -1
  538. app-ng-runtime/locales/angular/global/en-se.js +1 -1
  539. app-ng-runtime/locales/angular/global/en-sg.js +1 -1
  540. app-ng-runtime/locales/angular/global/en-sh.js +1 -1
  541. app-ng-runtime/locales/angular/global/en-si.js +1 -1
  542. app-ng-runtime/locales/angular/global/en-sl.js +1 -1
  543. app-ng-runtime/locales/angular/global/en-ss.js +1 -1
  544. app-ng-runtime/locales/angular/global/en-sx.js +1 -1
  545. app-ng-runtime/locales/angular/global/en-sz.js +1 -1
  546. app-ng-runtime/locales/angular/global/en-tc.js +1 -1
  547. app-ng-runtime/locales/angular/global/en-tk.js +1 -1
  548. app-ng-runtime/locales/angular/global/en-to.js +1 -1
  549. app-ng-runtime/locales/angular/global/en-tt.js +1 -1
  550. app-ng-runtime/locales/angular/global/en-tv.js +1 -1
  551. app-ng-runtime/locales/angular/global/en-tz.js +1 -1
  552. app-ng-runtime/locales/angular/global/en-ug.js +1 -1
  553. app-ng-runtime/locales/angular/global/en-um.js +1 -1
  554. app-ng-runtime/locales/angular/global/en-vc.js +1 -1
  555. app-ng-runtime/locales/angular/global/en-vg.js +1 -1
  556. app-ng-runtime/locales/angular/global/en-vi.js +1 -1
  557. app-ng-runtime/locales/angular/global/en-vu.js +1 -1
  558. app-ng-runtime/locales/angular/global/en-ws.js +1 -1
  559. app-ng-runtime/locales/angular/global/en-za.js +1 -1
  560. app-ng-runtime/locales/angular/global/en-zm.js +1 -1
  561. app-ng-runtime/locales/angular/global/en-zw.js +1 -1
  562. app-ng-runtime/locales/angular/global/en.js +1 -1
  563. app-ng-runtime/locales/angular/global/eo.js +1 -1
  564. app-ng-runtime/locales/angular/global/es-419.js +1 -1
  565. app-ng-runtime/locales/angular/global/es-ar.js +1 -1
  566. app-ng-runtime/locales/angular/global/es-bo.js +1 -1
  567. app-ng-runtime/locales/angular/global/es-br.js +1 -1
  568. app-ng-runtime/locales/angular/global/es-bz.js +1 -1
  569. app-ng-runtime/locales/angular/global/es-cl.js +1 -1
  570. app-ng-runtime/locales/angular/global/es-co.js +1 -1
  571. app-ng-runtime/locales/angular/global/es-cr.js +1 -1
  572. app-ng-runtime/locales/angular/global/es-cu.js +1 -1
  573. app-ng-runtime/locales/angular/global/es-do.js +1 -1
  574. app-ng-runtime/locales/angular/global/es-ea.js +1 -1
  575. app-ng-runtime/locales/angular/global/es-ec.js +1 -1
  576. app-ng-runtime/locales/angular/global/es-gq.js +1 -1
  577. app-ng-runtime/locales/angular/global/es-gt.js +1 -1
  578. app-ng-runtime/locales/angular/global/es-hn.js +1 -1
  579. app-ng-runtime/locales/angular/global/es-ic.js +1 -1
  580. app-ng-runtime/locales/angular/global/es-mx.js +1 -1
  581. app-ng-runtime/locales/angular/global/es-ni.js +1 -1
  582. app-ng-runtime/locales/angular/global/es-pa.js +1 -1
  583. app-ng-runtime/locales/angular/global/es-pe.js +1 -1
  584. app-ng-runtime/locales/angular/global/es-ph.js +1 -1
  585. app-ng-runtime/locales/angular/global/es-pr.js +1 -1
  586. app-ng-runtime/locales/angular/global/es-py.js +1 -1
  587. app-ng-runtime/locales/angular/global/es-sv.js +1 -1
  588. app-ng-runtime/locales/angular/global/es-us.js +1 -1
  589. app-ng-runtime/locales/angular/global/es-uy.js +1 -1
  590. app-ng-runtime/locales/angular/global/es-ve.js +1 -1
  591. app-ng-runtime/locales/angular/global/es.js +1 -1
  592. app-ng-runtime/locales/angular/global/et.js +1 -1
  593. app-ng-runtime/locales/angular/global/eu.js +1 -1
  594. app-ng-runtime/locales/angular/global/ewo.js +1 -1
  595. app-ng-runtime/locales/angular/global/fa-af.js +1 -1
  596. app-ng-runtime/locales/angular/global/fa.js +1 -1
  597. app-ng-runtime/locales/angular/global/ff-adlm-bf.js +1 -1
  598. app-ng-runtime/locales/angular/global/ff-adlm-cm.js +1 -1
  599. app-ng-runtime/locales/angular/global/ff-adlm-gh.js +1 -1
  600. app-ng-runtime/locales/angular/global/ff-adlm-gm.js +1 -1
  601. app-ng-runtime/locales/angular/global/ff-adlm-gw.js +1 -1
  602. app-ng-runtime/locales/angular/global/ff-adlm-lr.js +1 -1
  603. app-ng-runtime/locales/angular/global/ff-adlm-mr.js +1 -1
  604. app-ng-runtime/locales/angular/global/ff-adlm-ne.js +1 -1
  605. app-ng-runtime/locales/angular/global/ff-adlm-ng.js +1 -1
  606. app-ng-runtime/locales/angular/global/ff-adlm-sl.js +1 -1
  607. app-ng-runtime/locales/angular/global/ff-adlm-sn.js +1 -1
  608. app-ng-runtime/locales/angular/global/ff-adlm.js +1 -1
  609. app-ng-runtime/locales/angular/global/ff-cm.js +1 -1
  610. app-ng-runtime/locales/angular/global/ff-gn.js +1 -1
  611. app-ng-runtime/locales/angular/global/ff-latn-bf.js +1 -1
  612. app-ng-runtime/locales/angular/global/ff-latn-cm.js +1 -1
  613. app-ng-runtime/locales/angular/global/ff-latn-gh.js +1 -1
  614. app-ng-runtime/locales/angular/global/ff-latn-gm.js +1 -1
  615. app-ng-runtime/locales/angular/global/ff-latn-gn.js +1 -1
  616. app-ng-runtime/locales/angular/global/ff-latn-gw.js +1 -1
  617. app-ng-runtime/locales/angular/global/ff-latn-lr.js +1 -1
  618. app-ng-runtime/locales/angular/global/ff-latn-mr.js +1 -1
  619. app-ng-runtime/locales/angular/global/ff-latn-ne.js +1 -1
  620. app-ng-runtime/locales/angular/global/ff-latn-ng.js +1 -1
  621. app-ng-runtime/locales/angular/global/ff-latn-sl.js +1 -1
  622. app-ng-runtime/locales/angular/global/ff-latn.js +1 -1
  623. app-ng-runtime/locales/angular/global/ff-mr.js +1 -1
  624. app-ng-runtime/locales/angular/global/ff.js +1 -1
  625. app-ng-runtime/locales/angular/global/fi.js +1 -1
  626. app-ng-runtime/locales/angular/global/fil.js +1 -1
  627. app-ng-runtime/locales/angular/global/fo-dk.js +1 -1
  628. app-ng-runtime/locales/angular/global/fo.js +1 -1
  629. app-ng-runtime/locales/angular/global/fr-be.js +1 -1
  630. app-ng-runtime/locales/angular/global/fr-bf.js +1 -1
  631. app-ng-runtime/locales/angular/global/fr-bi.js +1 -1
  632. app-ng-runtime/locales/angular/global/fr-bj.js +1 -1
  633. app-ng-runtime/locales/angular/global/fr-bl.js +1 -1
  634. app-ng-runtime/locales/angular/global/fr-ca.js +1 -1
  635. app-ng-runtime/locales/angular/global/fr-cd.js +1 -1
  636. app-ng-runtime/locales/angular/global/fr-cf.js +1 -1
  637. app-ng-runtime/locales/angular/global/fr-cg.js +1 -1
  638. app-ng-runtime/locales/angular/global/fr-ch.js +1 -1
  639. app-ng-runtime/locales/angular/global/fr-ci.js +1 -1
  640. app-ng-runtime/locales/angular/global/fr-cm.js +1 -1
  641. app-ng-runtime/locales/angular/global/fr-dj.js +1 -1
  642. app-ng-runtime/locales/angular/global/fr-dz.js +1 -1
  643. app-ng-runtime/locales/angular/global/fr-ga.js +1 -1
  644. app-ng-runtime/locales/angular/global/fr-gf.js +1 -1
  645. app-ng-runtime/locales/angular/global/fr-gn.js +1 -1
  646. app-ng-runtime/locales/angular/global/fr-gp.js +1 -1
  647. app-ng-runtime/locales/angular/global/fr-gq.js +1 -1
  648. app-ng-runtime/locales/angular/global/fr-ht.js +1 -1
  649. app-ng-runtime/locales/angular/global/fr-km.js +1 -1
  650. app-ng-runtime/locales/angular/global/fr-lu.js +1 -1
  651. app-ng-runtime/locales/angular/global/fr-ma.js +1 -1
  652. app-ng-runtime/locales/angular/global/fr-mc.js +1 -1
  653. app-ng-runtime/locales/angular/global/fr-mf.js +1 -1
  654. app-ng-runtime/locales/angular/global/fr-mg.js +1 -1
  655. app-ng-runtime/locales/angular/global/fr-ml.js +1 -1
  656. app-ng-runtime/locales/angular/global/fr-mq.js +1 -1
  657. app-ng-runtime/locales/angular/global/fr-mr.js +1 -1
  658. app-ng-runtime/locales/angular/global/fr-mu.js +1 -1
  659. app-ng-runtime/locales/angular/global/fr-nc.js +1 -1
  660. app-ng-runtime/locales/angular/global/fr-ne.js +1 -1
  661. app-ng-runtime/locales/angular/global/fr-pf.js +1 -1
  662. app-ng-runtime/locales/angular/global/fr-pm.js +1 -1
  663. app-ng-runtime/locales/angular/global/fr-re.js +1 -1
  664. app-ng-runtime/locales/angular/global/fr-rw.js +1 -1
  665. app-ng-runtime/locales/angular/global/fr-sc.js +1 -1
  666. app-ng-runtime/locales/angular/global/fr-sn.js +1 -1
  667. app-ng-runtime/locales/angular/global/fr-sy.js +1 -1
  668. app-ng-runtime/locales/angular/global/fr-td.js +1 -1
  669. app-ng-runtime/locales/angular/global/fr-tg.js +1 -1
  670. app-ng-runtime/locales/angular/global/fr-tn.js +1 -1
  671. app-ng-runtime/locales/angular/global/fr-vu.js +1 -1
  672. app-ng-runtime/locales/angular/global/fr-wf.js +1 -1
  673. app-ng-runtime/locales/angular/global/fr-yt.js +1 -1
  674. app-ng-runtime/locales/angular/global/fr.js +1 -1
  675. app-ng-runtime/locales/angular/global/fur.js +1 -1
  676. app-ng-runtime/locales/angular/global/fy.js +1 -1
  677. app-ng-runtime/locales/angular/global/ga-gb.js +1 -1
  678. app-ng-runtime/locales/angular/global/ga.js +1 -1
  679. app-ng-runtime/locales/angular/global/gd.js +1 -1
  680. app-ng-runtime/locales/angular/global/gl.js +1 -1
  681. app-ng-runtime/locales/angular/global/gsw-fr.js +1 -1
  682. app-ng-runtime/locales/angular/global/gsw-li.js +1 -1
  683. app-ng-runtime/locales/angular/global/gsw.js +1 -1
  684. app-ng-runtime/locales/angular/global/gu.js +1 -1
  685. app-ng-runtime/locales/angular/global/guz.js +1 -1
  686. app-ng-runtime/locales/angular/global/gv.js +1 -1
  687. app-ng-runtime/locales/angular/global/ha-gh.js +1 -1
  688. app-ng-runtime/locales/angular/global/ha-ne.js +1 -1
  689. app-ng-runtime/locales/angular/global/ha.js +1 -1
  690. app-ng-runtime/locales/angular/global/haw.js +1 -1
  691. app-ng-runtime/locales/angular/global/he.js +1 -1
  692. app-ng-runtime/locales/angular/global/hi-latn.js +1 -1
  693. app-ng-runtime/locales/angular/global/hi.js +1 -1
  694. app-ng-runtime/locales/angular/global/hr-ba.js +1 -1
  695. app-ng-runtime/locales/angular/global/hr.js +1 -1
  696. app-ng-runtime/locales/angular/global/hsb.js +1 -1
  697. app-ng-runtime/locales/angular/global/hu.js +1 -1
  698. app-ng-runtime/locales/angular/global/hy.js +1 -1
  699. app-ng-runtime/locales/angular/global/ia.js +1 -1
  700. app-ng-runtime/locales/angular/global/id.js +1 -1
  701. app-ng-runtime/locales/angular/global/ig.js +1 -1
  702. app-ng-runtime/locales/angular/global/ii.js +1 -1
  703. app-ng-runtime/locales/angular/global/is.js +1 -1
  704. app-ng-runtime/locales/angular/global/it-ch.js +1 -1
  705. app-ng-runtime/locales/angular/global/it-sm.js +1 -1
  706. app-ng-runtime/locales/angular/global/it-va.js +1 -1
  707. app-ng-runtime/locales/angular/global/it.js +1 -1
  708. app-ng-runtime/locales/angular/global/ja.js +1 -1
  709. app-ng-runtime/locales/angular/global/jgo.js +1 -1
  710. app-ng-runtime/locales/angular/global/jmc.js +1 -1
  711. app-ng-runtime/locales/angular/global/jv.js +1 -1
  712. app-ng-runtime/locales/angular/global/ka.js +1 -1
  713. app-ng-runtime/locales/angular/global/kab.js +1 -1
  714. app-ng-runtime/locales/angular/global/kam.js +1 -1
  715. app-ng-runtime/locales/angular/global/kde.js +1 -1
  716. app-ng-runtime/locales/angular/global/kea.js +1 -1
  717. app-ng-runtime/locales/angular/global/kgp.js +1 -1
  718. app-ng-runtime/locales/angular/global/khq.js +1 -1
  719. app-ng-runtime/locales/angular/global/ki.js +1 -1
  720. app-ng-runtime/locales/angular/global/kk.js +1 -1
  721. app-ng-runtime/locales/angular/global/kkj.js +1 -1
  722. app-ng-runtime/locales/angular/global/kl.js +1 -1
  723. app-ng-runtime/locales/angular/global/kln.js +1 -1
  724. app-ng-runtime/locales/angular/global/km.js +1 -1
  725. app-ng-runtime/locales/angular/global/kn.js +1 -1
  726. app-ng-runtime/locales/angular/global/ko-kp.js +1 -1
  727. app-ng-runtime/locales/angular/global/ko.js +1 -1
  728. app-ng-runtime/locales/angular/global/kok.js +1 -1
  729. app-ng-runtime/locales/angular/global/ks-arab.js +1 -1
  730. app-ng-runtime/locales/angular/global/ks-deva.js +1 -1
  731. app-ng-runtime/locales/angular/global/ks.js +1 -1
  732. app-ng-runtime/locales/angular/global/ksb.js +1 -1
  733. app-ng-runtime/locales/angular/global/ksf.js +1 -1
  734. app-ng-runtime/locales/angular/global/ksh.js +1 -1
  735. app-ng-runtime/locales/angular/global/ku.js +1 -1
  736. app-ng-runtime/locales/angular/global/kw.js +1 -1
  737. app-ng-runtime/locales/angular/global/ky.js +1 -1
  738. app-ng-runtime/locales/angular/global/lag.js +1 -1
  739. app-ng-runtime/locales/angular/global/lb.js +1 -1
  740. app-ng-runtime/locales/angular/global/lg.js +1 -1
  741. app-ng-runtime/locales/angular/global/lkt.js +1 -1
  742. app-ng-runtime/locales/angular/global/ln-ao.js +1 -1
  743. app-ng-runtime/locales/angular/global/ln-cf.js +1 -1
  744. app-ng-runtime/locales/angular/global/ln-cg.js +1 -1
  745. app-ng-runtime/locales/angular/global/ln.js +1 -1
  746. app-ng-runtime/locales/angular/global/lo.js +1 -1
  747. app-ng-runtime/locales/angular/global/lrc-iq.js +1 -1
  748. app-ng-runtime/locales/angular/global/lrc.js +1 -1
  749. app-ng-runtime/locales/angular/global/lt.js +1 -1
  750. app-ng-runtime/locales/angular/global/lu.js +1 -1
  751. app-ng-runtime/locales/angular/global/luo.js +1 -1
  752. app-ng-runtime/locales/angular/global/luy.js +1 -1
  753. app-ng-runtime/locales/angular/global/lv.js +1 -1
  754. app-ng-runtime/locales/angular/global/mai.js +1 -1
  755. app-ng-runtime/locales/angular/global/mas-tz.js +1 -1
  756. app-ng-runtime/locales/angular/global/mas.js +1 -1
  757. app-ng-runtime/locales/angular/global/mer.js +1 -1
  758. app-ng-runtime/locales/angular/global/mfe.js +1 -1
  759. app-ng-runtime/locales/angular/global/mg.js +1 -1
  760. app-ng-runtime/locales/angular/global/mgh.js +1 -1
  761. app-ng-runtime/locales/angular/global/mgo.js +1 -1
  762. app-ng-runtime/locales/angular/global/mi.js +1 -1
  763. app-ng-runtime/locales/angular/global/mk.js +1 -1
  764. app-ng-runtime/locales/angular/global/ml.js +1 -1
  765. app-ng-runtime/locales/angular/global/mn.js +1 -1
  766. app-ng-runtime/locales/angular/global/mni-beng.js +1 -1
  767. app-ng-runtime/locales/angular/global/mni.js +1 -1
  768. app-ng-runtime/locales/angular/global/mr.js +1 -1
  769. app-ng-runtime/locales/angular/global/ms-bn.js +1 -1
  770. app-ng-runtime/locales/angular/global/ms-id.js +1 -1
  771. app-ng-runtime/locales/angular/global/ms-sg.js +1 -1
  772. app-ng-runtime/locales/angular/global/ms.js +1 -1
  773. app-ng-runtime/locales/angular/global/mt.js +1 -1
  774. app-ng-runtime/locales/angular/global/mua.js +1 -1
  775. app-ng-runtime/locales/angular/global/my.js +1 -1
  776. app-ng-runtime/locales/angular/global/mzn.js +1 -1
  777. app-ng-runtime/locales/angular/global/naq.js +1 -1
  778. app-ng-runtime/locales/angular/global/nb-sj.js +1 -1
  779. app-ng-runtime/locales/angular/global/nb.js +1 -1
  780. app-ng-runtime/locales/angular/global/nd.js +1 -1
  781. app-ng-runtime/locales/angular/global/nds-nl.js +1 -1
  782. app-ng-runtime/locales/angular/global/nds.js +1 -1
  783. app-ng-runtime/locales/angular/global/ne-in.js +1 -1
  784. app-ng-runtime/locales/angular/global/ne.js +1 -1
  785. app-ng-runtime/locales/angular/global/nl-aw.js +1 -1
  786. app-ng-runtime/locales/angular/global/nl-be.js +1 -1
  787. app-ng-runtime/locales/angular/global/nl-bq.js +1 -1
  788. app-ng-runtime/locales/angular/global/nl-cw.js +1 -1
  789. app-ng-runtime/locales/angular/global/nl-sr.js +1 -1
  790. app-ng-runtime/locales/angular/global/nl-sx.js +1 -1
  791. app-ng-runtime/locales/angular/global/nl.js +1 -1
  792. app-ng-runtime/locales/angular/global/nmg.js +1 -1
  793. app-ng-runtime/locales/angular/global/nn.js +1 -1
  794. app-ng-runtime/locales/angular/global/nnh.js +1 -1
  795. app-ng-runtime/locales/angular/global/no.js +1 -1
  796. app-ng-runtime/locales/angular/global/nus.js +1 -1
  797. app-ng-runtime/locales/angular/global/nyn.js +1 -1
  798. app-ng-runtime/locales/angular/global/om-ke.js +1 -1
  799. app-ng-runtime/locales/angular/global/om.js +1 -1
  800. app-ng-runtime/locales/angular/global/or.js +1 -1
  801. app-ng-runtime/locales/angular/global/os-ru.js +1 -1
  802. app-ng-runtime/locales/angular/global/os.js +1 -1
  803. app-ng-runtime/locales/angular/global/pa-arab.js +1 -1
  804. app-ng-runtime/locales/angular/global/pa-guru.js +1 -1
  805. app-ng-runtime/locales/angular/global/pa.js +1 -1
  806. app-ng-runtime/locales/angular/global/pcm.js +1 -1
  807. app-ng-runtime/locales/angular/global/pl.js +1 -1
  808. app-ng-runtime/locales/angular/global/ps-pk.js +1 -1
  809. app-ng-runtime/locales/angular/global/ps.js +1 -1
  810. app-ng-runtime/locales/angular/global/pt-ao.js +1 -1
  811. app-ng-runtime/locales/angular/global/pt-ch.js +1 -1
  812. app-ng-runtime/locales/angular/global/pt-cv.js +1 -1
  813. app-ng-runtime/locales/angular/global/pt-gq.js +1 -1
  814. app-ng-runtime/locales/angular/global/pt-gw.js +1 -1
  815. app-ng-runtime/locales/angular/global/pt-lu.js +1 -1
  816. app-ng-runtime/locales/angular/global/pt-mo.js +1 -1
  817. app-ng-runtime/locales/angular/global/pt-mz.js +1 -1
  818. app-ng-runtime/locales/angular/global/pt-pt.js +1 -1
  819. app-ng-runtime/locales/angular/global/pt-st.js +1 -1
  820. app-ng-runtime/locales/angular/global/pt-tl.js +1 -1
  821. app-ng-runtime/locales/angular/global/pt.js +1 -1
  822. app-ng-runtime/locales/angular/global/qu-bo.js +1 -1
  823. app-ng-runtime/locales/angular/global/qu-ec.js +1 -1
  824. app-ng-runtime/locales/angular/global/qu.js +1 -1
  825. app-ng-runtime/locales/angular/global/rm.js +1 -1
  826. app-ng-runtime/locales/angular/global/rn.js +1 -1
  827. app-ng-runtime/locales/angular/global/ro-md.js +1 -1
  828. app-ng-runtime/locales/angular/global/ro.js +1 -1
  829. app-ng-runtime/locales/angular/global/rof.js +1 -1
  830. app-ng-runtime/locales/angular/global/ru-by.js +1 -1
  831. app-ng-runtime/locales/angular/global/ru-kg.js +1 -1
  832. app-ng-runtime/locales/angular/global/ru-kz.js +1 -1
  833. app-ng-runtime/locales/angular/global/ru-md.js +1 -1
  834. app-ng-runtime/locales/angular/global/ru-ua.js +1 -1
  835. app-ng-runtime/locales/angular/global/ru.js +1 -1
  836. app-ng-runtime/locales/angular/global/rw.js +1 -1
  837. app-ng-runtime/locales/angular/global/rwk.js +1 -1
  838. app-ng-runtime/locales/angular/global/sa.js +1 -1
  839. app-ng-runtime/locales/angular/global/sah.js +1 -1
  840. app-ng-runtime/locales/angular/global/saq.js +1 -1
  841. app-ng-runtime/locales/angular/global/sat-olck.js +1 -1
  842. app-ng-runtime/locales/angular/global/sat.js +1 -1
  843. app-ng-runtime/locales/angular/global/sbp.js +1 -1
  844. app-ng-runtime/locales/angular/global/sc.js +1 -1
  845. app-ng-runtime/locales/angular/global/sd-arab.js +1 -1
  846. app-ng-runtime/locales/angular/global/sd-deva.js +1 -1
  847. app-ng-runtime/locales/angular/global/sd.js +1 -1
  848. app-ng-runtime/locales/angular/global/se-fi.js +1 -1
  849. app-ng-runtime/locales/angular/global/se-se.js +1 -1
  850. app-ng-runtime/locales/angular/global/se.js +1 -1
  851. app-ng-runtime/locales/angular/global/seh.js +1 -1
  852. app-ng-runtime/locales/angular/global/ses.js +1 -1
  853. app-ng-runtime/locales/angular/global/sg.js +1 -1
  854. app-ng-runtime/locales/angular/global/shi-latn.js +1 -1
  855. app-ng-runtime/locales/angular/global/shi-tfng.js +1 -1
  856. app-ng-runtime/locales/angular/global/shi.js +1 -1
  857. app-ng-runtime/locales/angular/global/si.js +1 -1
  858. app-ng-runtime/locales/angular/global/sk.js +1 -1
  859. app-ng-runtime/locales/angular/global/sl.js +1 -1
  860. app-ng-runtime/locales/angular/global/smn.js +1 -1
  861. app-ng-runtime/locales/angular/global/sn.js +1 -1
  862. app-ng-runtime/locales/angular/global/so-dj.js +1 -1
  863. app-ng-runtime/locales/angular/global/so-et.js +1 -1
  864. app-ng-runtime/locales/angular/global/so-ke.js +1 -1
  865. app-ng-runtime/locales/angular/global/so.js +1 -1
  866. app-ng-runtime/locales/angular/global/sq-mk.js +1 -1
  867. app-ng-runtime/locales/angular/global/sq-xk.js +1 -1
  868. app-ng-runtime/locales/angular/global/sq.js +1 -1
  869. app-ng-runtime/locales/angular/global/sr-cyrl-ba.js +1 -1
  870. app-ng-runtime/locales/angular/global/sr-cyrl-me.js +1 -1
  871. app-ng-runtime/locales/angular/global/sr-cyrl-xk.js +1 -1
  872. app-ng-runtime/locales/angular/global/sr-cyrl.js +1 -1
  873. app-ng-runtime/locales/angular/global/sr-latn-ba.js +1 -1
  874. app-ng-runtime/locales/angular/global/sr-latn-me.js +1 -1
  875. app-ng-runtime/locales/angular/global/sr-latn-xk.js +1 -1
  876. app-ng-runtime/locales/angular/global/sr-latn.js +1 -1
  877. app-ng-runtime/locales/angular/global/sr.js +1 -1
  878. app-ng-runtime/locales/angular/global/su-latn.js +1 -1
  879. app-ng-runtime/locales/angular/global/su.js +1 -1
  880. app-ng-runtime/locales/angular/global/sv-ax.js +1 -1
  881. app-ng-runtime/locales/angular/global/sv-fi.js +1 -1
  882. app-ng-runtime/locales/angular/global/sv.js +1 -1
  883. app-ng-runtime/locales/angular/global/sw-cd.js +1 -1
  884. app-ng-runtime/locales/angular/global/sw-ke.js +1 -1
  885. app-ng-runtime/locales/angular/global/sw-ug.js +1 -1
  886. app-ng-runtime/locales/angular/global/sw.js +1 -1
  887. app-ng-runtime/locales/angular/global/ta-lk.js +1 -1
  888. app-ng-runtime/locales/angular/global/ta-my.js +1 -1
  889. app-ng-runtime/locales/angular/global/ta-sg.js +1 -1
  890. app-ng-runtime/locales/angular/global/ta.js +1 -1
  891. app-ng-runtime/locales/angular/global/te.js +1 -1
  892. app-ng-runtime/locales/angular/global/teo-ke.js +1 -1
  893. app-ng-runtime/locales/angular/global/teo.js +1 -1
  894. app-ng-runtime/locales/angular/global/tg.js +1 -1
  895. app-ng-runtime/locales/angular/global/th.js +1 -1
  896. app-ng-runtime/locales/angular/global/ti-er.js +1 -1
  897. app-ng-runtime/locales/angular/global/ti.js +1 -1
  898. app-ng-runtime/locales/angular/global/tk.js +1 -1
  899. app-ng-runtime/locales/angular/global/to.js +1 -1
  900. app-ng-runtime/locales/angular/global/tr-cy.js +1 -1
  901. app-ng-runtime/locales/angular/global/tr.js +1 -1
  902. app-ng-runtime/locales/angular/global/tt.js +1 -1
  903. app-ng-runtime/locales/angular/global/twq.js +1 -1
  904. app-ng-runtime/locales/angular/global/tzm.js +1 -1
  905. app-ng-runtime/locales/angular/global/ug.js +1 -1
  906. app-ng-runtime/locales/angular/global/uk.js +1 -1
  907. app-ng-runtime/locales/angular/global/und.js +1 -1
  908. app-ng-runtime/locales/angular/global/ur-in.js +1 -1
  909. app-ng-runtime/locales/angular/global/ur.js +1 -1
  910. app-ng-runtime/locales/angular/global/uz-arab.js +1 -1
  911. app-ng-runtime/locales/angular/global/uz-cyrl.js +1 -1
  912. app-ng-runtime/locales/angular/global/uz-latn.js +1 -1
  913. app-ng-runtime/locales/angular/global/uz.js +1 -1
  914. app-ng-runtime/locales/angular/global/vai-latn.js +1 -1
  915. app-ng-runtime/locales/angular/global/vai-vaii.js +1 -1
  916. app-ng-runtime/locales/angular/global/vai.js +1 -1
  917. app-ng-runtime/locales/angular/global/vi.js +1 -1
  918. app-ng-runtime/locales/angular/global/vun.js +1 -1
  919. app-ng-runtime/locales/angular/global/wae.js +1 -1
  920. app-ng-runtime/locales/angular/global/wo.js +1 -1
  921. app-ng-runtime/locales/angular/global/xh.js +1 -1
  922. app-ng-runtime/locales/angular/global/xog.js +1 -1
  923. app-ng-runtime/locales/angular/global/yav.js +1 -1
  924. app-ng-runtime/locales/angular/global/yi.js +1 -1
  925. app-ng-runtime/locales/angular/global/yo-bj.js +1 -1
  926. app-ng-runtime/locales/angular/global/yo.js +1 -1
  927. app-ng-runtime/locales/angular/global/yrl-co.js +1 -1
  928. app-ng-runtime/locales/angular/global/yrl-ve.js +1 -1
  929. app-ng-runtime/locales/angular/global/yrl.js +1 -1
  930. app-ng-runtime/locales/angular/global/yue-hans.js +1 -1
  931. app-ng-runtime/locales/angular/global/yue-hant.js +1 -1
  932. app-ng-runtime/locales/angular/global/yue.js +1 -1
  933. app-ng-runtime/locales/angular/global/zgh.js +1 -1
  934. app-ng-runtime/locales/angular/global/zh-hans-hk.js +1 -1
  935. app-ng-runtime/locales/angular/global/zh-hans-mo.js +1 -1
  936. app-ng-runtime/locales/angular/global/zh-hans-sg.js +1 -1
  937. app-ng-runtime/locales/angular/global/zh-hans.js +1 -1
  938. app-ng-runtime/locales/angular/global/zh-hant-hk.js +1 -1
  939. app-ng-runtime/locales/angular/global/zh-hant-mo.js +1 -1
  940. app-ng-runtime/locales/angular/global/zh-hant.js +1 -1
  941. app-ng-runtime/locales/angular/global/zh.js +1 -1
  942. app-ng-runtime/locales/angular/global/zu.js +1 -1
  943. app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +37 -37
  944. app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +9 -9
  945. app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +2 -2
  946. app-ng-runtime/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +2 -2
  947. app-ng-runtime/mobile/components/basic/default/esm2022/basic.module.mjs +2 -2
  948. app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +2 -2
  949. app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +2 -2
  950. app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +2 -2
  951. app-ng-runtime/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +2 -2
  952. app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +2 -2
  953. app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +2 -2
  954. app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +10 -10
  955. app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  956. app-ng-runtime/mobile/components/basic/search/bundles/index.umd.js +2 -2
  957. app-ng-runtime/mobile/components/basic/search/esm2022/search.directive.mjs +2 -2
  958. app-ng-runtime/mobile/components/basic/search/esm2022/search.module.mjs +2 -2
  959. app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs +2 -2
  960. app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
  961. app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +3 -3
  962. app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +2 -2
  963. app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +2 -2
  964. app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +2 -2
  965. app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +4 -4
  966. app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  967. app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +3 -3
  968. app-ng-runtime/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +2 -2
  969. app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +2 -2
  970. app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.module.mjs +2 -2
  971. app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +4 -4
  972. app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  973. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -2
  974. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +2 -2
  975. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +2 -2
  976. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +3 -3
  977. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  978. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -2
  979. app-ng-runtime/mobile/components/device/camera/esm2022/camera.component.mjs +2 -2
  980. app-ng-runtime/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
  981. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +3 -3
  982. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  983. app-ng-runtime/mobile/components/input/file-upload/bundles/index.umd.js +2 -2
  984. app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +2 -2
  985. app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  986. app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs +2 -2
  987. app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  988. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +3 -3
  989. app-ng-runtime/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +2 -2
  990. app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +2 -2
  991. app-ng-runtime/mobile/components/page/default/esm2022/page.module.mjs +2 -2
  992. app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +3 -3
  993. app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
  994. app-ng-runtime/mobile/components/page/left-panel/bundles/index.umd.js +2 -2
  995. app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +2 -2
  996. app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  997. app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs +2 -2
  998. app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  999. app-ng-runtime/mobile/components/page/mobile-navbar/bundles/index.umd.js +2 -2
  1000. app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +2 -2
  1001. app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +2 -2
  1002. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs +2 -2
  1003. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  1004. app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +2 -2
  1005. app-ng-runtime/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +2 -2
  1006. app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +2 -2
  1007. app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +3 -3
  1008. app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  1009. app-ng-runtime/mobile/core/bundles/index.umd.js +9 -9
  1010. app-ng-runtime/mobile/core/esm2022/core.module.mjs +2 -2
  1011. app-ng-runtime/mobile/core/esm2022/services/device-file-cache.service.mjs +2 -2
  1012. app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +2 -2
  1013. app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +2 -2
  1014. app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +2 -2
  1015. app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +2 -2
  1016. app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +2 -2
  1017. app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +2 -2
  1018. app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +2 -2
  1019. app-ng-runtime/mobile/core/fesm2022/index.mjs +10 -10
  1020. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  1021. app-ng-runtime/mobile/offline/bundles/index.umd.js +8 -8
  1022. app-ng-runtime/mobile/offline/esm2022/offline.module.mjs +2 -2
  1023. app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +2 -2
  1024. app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +2 -2
  1025. app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +2 -2
  1026. app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +2 -2
  1027. app-ng-runtime/mobile/offline/esm2022/services/local-key-value.service.mjs +2 -2
  1028. app-ng-runtime/mobile/offline/esm2022/services/push.service.mjs +2 -2
  1029. app-ng-runtime/mobile/offline/esm2022/services/workers/id-resolver.mjs +2 -2
  1030. app-ng-runtime/mobile/offline/fesm2022/index.mjs +10 -10
  1031. app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
  1032. app-ng-runtime/mobile/placeholder/runtime/bundles/index.umd.js +2 -2
  1033. app-ng-runtime/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +2 -2
  1034. app-ng-runtime/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
  1035. app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs +2 -2
  1036. app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
  1037. app-ng-runtime/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +1 -1
  1038. app-ng-runtime/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1039. app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +1 -1
  1040. app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1041. app-ng-runtime/mobile/runtime/bundles/index.umd.js +5 -5
  1042. app-ng-runtime/mobile/runtime/esm2022/components/app-ext.component.mjs +2 -2
  1043. app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +2 -2
  1044. app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +2 -2
  1045. app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +2 -2
  1046. app-ng-runtime/mobile/runtime/esm2022/services/webprocess.service.mjs +2 -2
  1047. app-ng-runtime/mobile/runtime/fesm2022/index.mjs +5 -5
  1048. app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
  1049. app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +2 -2
  1050. app-ng-runtime/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1051. app-ng-runtime/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +2 -2
  1052. app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +2 -2
  1053. app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1054. app-ng-runtime/mobile/variables/bundles/index.umd.js +1 -1
  1055. app-ng-runtime/mobile/variables/esm2022/variables.module.mjs +2 -2
  1056. app-ng-runtime/mobile/variables/fesm2022/index.mjs +1 -1
  1057. app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
  1058. app-ng-runtime/oAuth/bundles/index.umd.js +2 -2
  1059. app-ng-runtime/oAuth/esm2022/oAuth.module.mjs +2 -2
  1060. app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +2 -2
  1061. app-ng-runtime/oAuth/fesm2022/index.mjs +2 -2
  1062. app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
  1063. app-ng-runtime/package.json +1 -1
  1064. app-ng-runtime/runtime/base/bundles/index.umd.js +44 -46
  1065. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +2 -2
  1066. app-ng-runtime/runtime/base/esm2022/components/app-spinner.component.mjs +2 -2
  1067. app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +2 -2
  1068. app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +2 -2
  1069. app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +2 -2
  1070. app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +2 -2
  1071. app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +2 -2
  1072. app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +2 -2
  1073. app-ng-runtime/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +2 -2
  1074. app-ng-runtime/runtime/base/esm2022/components/prefab-preview.component.mjs +2 -2
  1075. app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +2 -2
  1076. app-ng-runtime/runtime/base/esm2022/directives/prefab.directive.mjs +2 -2
  1077. app-ng-runtime/runtime/base/esm2022/guards/auth.guard.mjs +2 -2
  1078. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +3 -3
  1079. app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +2 -2
  1080. app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +2 -2
  1081. app-ng-runtime/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +6 -8
  1082. app-ng-runtime/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +3 -3
  1083. app-ng-runtime/runtime/base/esm2022/resolves/app-extension.resolve.mjs +2 -2
  1084. app-ng-runtime/runtime/base/esm2022/resolves/app-js.resolve.mjs +2 -2
  1085. app-ng-runtime/runtime/base/esm2022/resolves/app-variables.resolve.mjs +2 -2
  1086. app-ng-runtime/runtime/base/esm2022/resolves/i18n.resolve.mjs +2 -2
  1087. app-ng-runtime/runtime/base/esm2022/resolves/metadata.resolve.mjs +2 -2
  1088. app-ng-runtime/runtime/base/esm2022/resolves/security-config.resolve.mjs +2 -2
  1089. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +2 -2
  1090. app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +2 -2
  1091. app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +2 -2
  1092. app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +2 -2
  1093. app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +2 -2
  1094. app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +2 -2
  1095. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  1096. app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +2 -2
  1097. app-ng-runtime/runtime/base/esm2022/services/pipe-provider.service.mjs +2 -2
  1098. app-ng-runtime/runtime/base/esm2022/services/pipe.service.mjs +2 -2
  1099. app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +2 -2
  1100. app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +2 -2
  1101. app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +2 -2
  1102. app-ng-runtime/runtime/base/esm2022/util/fragment-monitor.mjs +2 -2
  1103. app-ng-runtime/runtime/base/fesm2022/index.mjs +47 -49
  1104. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  1105. app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
  1106. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +7 -7
  1107. app-ng-runtime/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +2 -2
  1108. app-ng-runtime/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +2 -2
  1109. app-ng-runtime/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +2 -2
  1110. app-ng-runtime/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +2 -2
  1111. app-ng-runtime/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +2 -2
  1112. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +2 -2
  1113. app-ng-runtime/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +2 -2
  1114. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +9 -9
  1115. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  1116. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -2
  1117. app-ng-runtime/security/bundles/index.umd.js +2 -2
  1118. app-ng-runtime/security/esm2022/security.module.mjs +2 -2
  1119. app-ng-runtime/security/esm2022/security.service.mjs +2 -2
  1120. app-ng-runtime/security/fesm2022/index.mjs +2 -2
  1121. app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
  1122. app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
  1123. app-ng-runtime/transpiler/fesm2022/index.mjs +1 -1
  1124. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  1125. app-ng-runtime/variables/bundles/index.umd.js +3 -3
  1126. app-ng-runtime/variables/esm2022/service/metadata-service/metadata.service.mjs +2 -2
  1127. app-ng-runtime/variables/esm2022/service/variables.service.mjs +2 -2
  1128. app-ng-runtime/variables/esm2022/variables.module.mjs +2 -2
  1129. app-ng-runtime/variables/fesm2022/index.mjs +4 -4
  1130. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
@@ -734,7 +734,7 @@ export class PaginationComponent extends StylableComponent {
734
734
  event.stopPropagation();
735
735
  };
736
736
  }
737
- static { this.ɵfac = function PaginationComponent_Factory(t) { return new (t || PaginationComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(WidgetRef, 4), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
737
+ static { this.ɵfac = function PaginationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(WidgetRef, 4), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
738
738
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaginationComponent, selectors: [["", "wmPagination", ""]], outputs: { resultEmitter: "resultEmitter", maxResultsEmitter: "maxResultsEmitter" }, features: [i0.ɵɵProvidersFeature([
739
739
  provideAsWidgetRef(PaginationComponent)
740
740
  ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 10, vars: 4, consts: [["pageTemplate", ""], ["prevTemplate", ""], ["nextTemplate", ""], [3, "class", 4, "ngIf"], ["class", "pagination basic", "role", "navigation", "firstText", "Firtst", "lastText", "Last", 3, "ngClass", "itemsPerPage", "totalItems", "ngModelOptions", "ngModel", "boundaryLinks", "maxSize", "directionLinks", "customPreviousTemplate", "customNextTemplate", "customPageTemplate", "pageChanged", 4, "ngIf"], ["class", "pagination", 4, "ngIf"], [3, "ngClass"], ["name", "first", "href", "javascript:void(0);", 3, "click", "title"], ["aria-hidden", "true"], [1, "wi", "wi-first-page"], [1, "sr-only"], ["name", "prev", "href", "javascript:void(0);", 3, "click", "title"], [1, "wi", "wi-chevron-left"], [1, "pagecount", "disabled"], ["href", "javascript:void(0);", "aria-label", "Change Page Number"], ["type", "number", 1, "form-control", 3, "ngModelChange", "keydown", "change", "ngModel", "disabled", "ngModelOptions"], [1, "disabled"], [3, "hidden"], ["name", "next", "href", "javascript:void(0);", 3, "click", "title"], [1, "wi", "wi-chevron-right"], ["name", "last", "href", "javascript:void(0);", 3, "click", "title"], [1, "wi", "wi-last-page"], ["class", "totalcount disabled", 4, "ngIf"], [1, "totalcount", "disabled"], ["href", "javascript:void(0);", "tabindex", "-1", "aria-disabled", "true"], [1, "previous", 3, "ngClass"], ["href", "javascript:void(0);", 3, "click"], [1, "next", 3, "ngClass"], ["role", "navigation", "firstText", "Firtst", "lastText", "Last", 1, "pagination", "basic", 3, "pageChanged", "ngClass", "itemsPerPage", "totalItems", "ngModelOptions", "ngModel", "boundaryLinks", "maxSize", "directionLinks", "customPreviousTemplate", "customNextTemplate", "customPageTemplate"], [1, "pagination"], [1, "totalcount", "disabled", "basiccount"], ["class", "sr-only", 4, "ngIf"]], template: function PaginationComponent_Template(rf, ctx) { if (rf & 1) {
@@ -770,4 +770,4 @@ export class PaginationComponent extends StylableComponent {
770
770
  type: Output
771
771
  }] }); })();
772
772
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationComponent, { className: "PaginationComponent", filePath: "pagination.component.ts", lineNumber: 41 }); })();
773
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9wYWdpbmF0aW9uL3NyYy9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL3BhZ2luYXRpb24vc3JjL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFpQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUNILFVBQVUsRUFDVixNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2hLLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztJQ2dDbkUsQUFESiw4QkFBd0QsWUFDYTtJQUFBLFlBQStDO0lBQ3BILEFBRG9ILGlCQUFJLEVBQ25IOzs7SUFEZ0UsZUFBK0M7SUFBL0MsMEZBQStDOzs7O0lBM0NoSCxBQURKLEFBREosMEJBQXNGLFlBQ3RDLFdBR0c7SUFBeEMsK0tBQVMsb0JBQWEsT0FBTyxTQUFTLEtBQUM7SUFD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QUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0b3IsIE91dHB1dCwgU2tpcFNlbGYsIEFmdGVyVmlld0luaXQsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgICAkYXBwRGlnZXN0LFxuICAgICR3YXRjaCxcbiAgICBBcHBDb25zdGFudHMsXG4gICAgRGF0YVNvdXJjZSxcbiAgICBkZWJvdW5jZSxcbiAgICBpc0RlZmluZWQsXG4gICAgc3dpdGNoQ2xhc3MsXG4gICAgdHJpZ2dlckZuXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IERFQk9VTkNFX1RJTUVTLCBnZXRPcmRlckJ5RXhwciwgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyLCBXaWRnZXRSZWYsIHVuc3VwcG9ydGVkU3RhdGVQZXJzaXN0ZW5jZVR5cGVzfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3BhZ2luYXRpb24ucHJvcHMnO1xuaW1wb3J0IHtmb3JFYWNoLCBnZXQsIGlzQXJyYXksIGlzRW1wdHksIGlzTnVsbCwgaXNTdHJpbmd9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWRhdGFuYXZpZ2F0b3IgY2xlYXJmaXgnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tcGFnaW5hdGlvbicsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG5jb25zdCBzaXplQ2xhc3NlcyA9IHtcbiAgICAnUGFnZXInOiB7XG4gICAgICAgICdzbWFsbCc6ICdwYWdlci1zbScsXG4gICAgICAgICdsYXJnZSc6ICdwYWdlci1sZydcbiAgICB9LFxuICAgICdCYXNpYyc6IHtcbiAgICAgICAgJ3NtYWxsJzogJ3BhZ2luYXRpb24tc20nLFxuICAgICAgICAnbGFyZ2UnOiAncGFnaW5hdGlvbi1sZydcbiAgICB9LFxuICAgICdDbGFzc2ljJzoge1xuICAgICAgICAnc21hbGwnOiAncGFnaW5hdGlvbi1zbScsXG4gICAgICAgICdsYXJnZSc6ICdwYWdpbmF0aW9uLWxnJ1xuICAgIH1cbn07XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bVBhZ2luYXRpb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihQYWdpbmF0aW9uQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBAT3V0cHV0KCkgcmVzdWx0RW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG1heFJlc3VsdHNFbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGRhdGFzb3VyY2U7XG4gICAgbWF4UmVzdWx0cztcbiAgICBuYXZpZ2F0aW9uc2l6ZTtcbiAgICBzaG93cmVjb3JkY291bnQ7XG5cbiAgICBuYXZjb250cm9scztcbiAgICBuYXZpZ2F0aW9uO1xuXG4gICAgYm91bmRhcnlsaW5rcztcbiAgICBkaXJlY3Rpb25saW5rcztcblxuICAgIG5hdmlnYXRpb25DbGFzcztcbiAgICBkbiA9IHtcbiAgICAgICAgY3VycmVudFBhZ2U6IDFcbiAgICB9O1xuXG4gICAgcGFnZUNvdW50ID0gMDtcbiAgICBpc0Rpc2FibGVOZXh0ID0gdHJ1ZTtcbiAgICBpc0Rpc2FibGVQcmV2aW91cyA9IHRydWU7XG4gICAgaXNEaXNhYmxlRmlyc3QgPSB0cnVlO1xuICAgIGlzRGlzYWJsZUxhc3QgPSB0cnVlO1xuICAgIGlzRGlzYWJsZUN1cnJlbnQ7XG4gICAgZGF0YVNpemU7XG4gICAgcHJldnNob3dyZWNvcmRjb3VudDtcbiAgICBpc0Rpc2FibGVDb3VudDtcbiAgICBmaXJzdFJvdztcbiAgICByZXN1bHQ7XG4gICAgX19mdWxsRGF0YTtcbiAgICBkYXRhc2V0O1xuICAgIG9wdGlvbnM7XG4gICAgc3RhdGVoYW5kbGVyO1xuICAgIGZpbHRlckZpZWxkcztcbiAgICBzb3J0T3B0aW9ucztcbiAgICBiaW5kZGF0YXNldDtcbiAgICBwYWdpbmF0aW9uO1xuICAgIGxvZ2ljYWxPcDtcblxuICAgIHByaXZhdGUgX2RlYm91bmNlZEFwcGx5RGF0YXNldCA9IGRlYm91bmNlKCgpID0+IHRoaXMud2lkZ2V0LmRhdGFzZXQgPSB0aGlzLmRhdGFzZXQsIERFQk9VTkNFX1RJTUVTLlBBR0lOQVRJT05fREVCT1VOQ0VfVElNRSk7XG4gICAgcHJpdmF0ZSBfZGVib3VuY2VkUGFnZUNoYW5nZWQgPSBkZWJvdW5jZShldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gZXZlbnQgJiYgZXZlbnQucGFnZTtcbiAgICAgICAgLy8gRG8gbm90IGNhbGwgZ29Ub1BhZ2UgaWYgcGFnZSBoYXMgbm90IGNoYW5nZWRcbiAgICAgICAgaWYgKGN1cnJlbnRQYWdlICE9PSB0aGlzLmRuLmN1cnJlbnRQYWdlKSB7XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gKHRoaXMgYXMgYW55KS5wYXJlbnQgfHwgdGhpcztcbiAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgPSBjdXJyZW50UGFnZTtcbiAgICAgICAgICAgIGluc3QuaW52b2tlRXZlbnRDYWxsYmFjaygncGFnaW5hdGlvbmNoYW5nZScsIHskZXZlbnQ6IHVuZGVmaW5lZCwgJGluZGV4OiB0aGlzLmRuLmN1cnJlbnRQYWdlfSk7XG4gICAgICAgICAgICB0aGlzLmdvVG9QYWdlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uID09PSAnQmFzaWMnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0QXJpYUZvckJhc2ljTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgREVCT1VOQ0VfVElNRVMuUEFHSU5BVElPTl9ERUJPVU5DRV9USU1FKTtcblxuICAgIHByaXZhdGUgX3NldEFyaWFGb3JCYXNpY05hdmlnYXRpb24oKSB7XG4gICAgICAgIGZvckVhY2godGhpcy5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyksIChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgnaHJlZicsICdqYXZhc2NyaXB0OnZvaWQoMCk7Jyk7XG4gICAgICAgICAgICBjb25zdCBjaGlsZE5vZGUgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKTtcbiAgICAgICAgICAgIGlmIChjaGlsZE5vZGU/LmRhdGFzZXQuaXNhY2l0dmVwYWdlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgICAgIGl0ZW0uc2V0QXR0cmlidXRlKCdhcmlhLWN1cnJlbnQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYoY2hpbGROb2RlPy5kYXRhc2V0LmlzZGlzYWJsZWQgPT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBAU2tpcFNlbGYoKSBASW5qZWN0KFdpZGdldFJlZikgcHVibGljIHBhcmVudCwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgc2V0UmVzdWx0KHJlc3VsdCkge1xuICAgICAgICAvLyBUT0RPOiBFbWl0IGV2ZW50IG9ubHkgaWYgcmVzdWx0IGlzIGNoYW5nZWRcbiAgICAgICAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMucmVzdWx0RW1pdHRlci5lbWl0KHRoaXMucmVzdWx0KTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgbmF2aWdhdGlvbkNsYXNzIGJhc2VkIG9uIG5hdmlnYXRpb24gYW5kIG5hdmlnYXRpb25TaXplIHByb3BzXG4gICAgcHJpdmF0ZSB1cGRhdGVOYXZTaXplKCkge1xuICAgICAgICBjb25zdCBzaXplQ2xzID0gc2l6ZUNsYXNzZXNbdGhpcy5uYXZjb250cm9sc107XG4gICAgICAgIGlmIChzaXplQ2xzICYmIHRoaXMubmF2aWdhdGlvbnNpemUpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkNsYXNzID0gc2l6ZUNsc1t0aGlzLm5hdmlnYXRpb25zaXplXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkNsYXNzID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGdW5jdGlvbiB0byByZXNldCB0aGUgcGFnaW5nIHZhbHVlcyB0byBkZWZhdWx0LlxuICAgIHJlc2V0UGFnZU5hdmlnYXRpb24oKSB7XG4gICAgICAgIHRoaXMucGFnZUNvdW50ID0gMDtcbiAgICAgICAgdGhpcy5kbi5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIHRoaXMuZGF0YVNpemUgPSAwO1xuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSBwYWdpbmcgdmFsdWVzLiovXG4gICAgY2FsY3VsYXRlUGFnaW5nVmFsdWVzKCkge1xuICAgICAgICB0aGlzLnBhZ2VDb3VudCA9ICh0aGlzLmRhdGFTaXplID4gdGhpcy5tYXhSZXN1bHRzKSA/IChNYXRoLmNlaWwodGhpcy5kYXRhU2l6ZSAvIHRoaXMubWF4UmVzdWx0cykpIDogKHRoaXMuZGF0YVNpemUgPCAwID8gMCA6IDEpO1xuICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gdGhpcy5kbi5jdXJyZW50UGFnZSB8fCAxO1xuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gc2V0IGRlZmF1bHQgdmFsdWVzIHRvIHRoZSBwYWdpbmcgcGFyYW1ldGVycyovXG4gICAgc2V0RGVmYXVsdFBhZ2luZ1ZhbHVlcyhkYXRhU2l6ZSwgbWF4UmVzdWx0cywgY3VycmVudFBhZ2UpIHtcbiAgICAgICAgLypJZiBuZWl0aGVyICdkYXRhU2l6ZScgbm9yICdtYXhSZXN1bHRzJyBpcyBzZXQsIHRoZW4gc2V0IGRlZmF1bHQgdmFsdWVzIHRvIHRoZSBwYWdpbmcgcGFyYW1ldGVycy4qL1xuICAgICAgICBpZiAoIWRhdGFTaXplICYmICFtYXhSZXN1bHRzKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VDb3VudCA9IDE7XG4gICAgICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gMTtcbiAgICAgICAgICAgIHRoaXMubWF4UmVzdWx0cyA9IGRhdGFTaXplO1xuICAgICAgICAgICAgdGhpcy5kYXRhU2l6ZSA9IGRhdGFTaXplO1xuICAgICAgICB9IGVsc2UgeyAvKkVsc2UsIHNldCB0aGUgc3BlY2lmaWVkIHZhbHVlcyBhbmQgcmVjYWxjdWxhdGUgcGFnaW5nIHBhcmFtZXRlcnMuKi9cbiAgICAgICAgICAgIHRoaXMubWF4UmVzdWx0cyA9IG1heFJlc3VsdHMgfHwgdGhpcy5tYXhSZXN1bHRzO1xuICAgICAgICAgICAgdGhpcy5kYXRhU2l6ZSA9IGlzRGVmaW5lZChkYXRhU2l6ZSkgPyBkYXRhU2l6ZSA6IHRoaXMuZGF0YVNpemU7XG4gICAgICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gY3VycmVudFBhZ2UgfHwgdGhpcy5kbi5jdXJyZW50UGFnZTtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnaW5nVmFsdWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tYXhSZXN1bHRzRW1pdHRlci5lbWl0KHRoaXMubWF4UmVzdWx0cyk7XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBjaGVjayB0aGUgZGF0YVNpemUgYW5kIG1hbmlwdWxhdGUgdGhlIG5hdmlnYXRvciBhY2NvcmRpbmdseS4qL1xuICAgIGNoZWNrRGF0YVNpemUoZGF0YVNpemUsIG51bWJlck9mRWxlbWVudHM/LCBzaXplPykge1xuICAgICAgICAvKklmIHRoZSBkYXRhU2l6ZSBpcyAtMSBvciBJbnRlZ2VyLk1BWF9WQUxVRSggd2hpY2ggaXMgMjE0NzQ4MzY0NyksIHRoZW4gdGhlIHRvdGFsIG51bWJlciBvZiByZWNvcmRzIGlzIG5vdCBrbm93bi5cbiAgICAgICAgICogSGVuY2UsXG4gICAgICAgICAqIDEuIEhpZGUgdGhlICdUb3RhbCBSZWNvcmQgQ291bnQnLlxuICAgICAgICAgKiAyLiBEaXNhYmxlIHRoZSAnR29Ub0xhc3RQYWdlJyBsaW5rIGFzIHRoZSBwYWdlIG51bWJlciBvZiB0aGUgbGFzdCBwYWdlIGlzIG5vdCBrbm93bi4qL1xuICAgICAgICBpZiAoZGF0YVNpemUgPT09IC0xIHx8IGRhdGFTaXplID09PSBBcHBDb25zdGFudHMuSU5UX01BWF9WQUxVRSkge1xuICAgICAgICAgICAgdGhpcy5wcmV2c2hvd3JlY29yZGNvdW50ID0gdGhpcy5zaG93cmVjb3JkY291bnQ7XG4gICAgICAgICAgICB0aGlzLmlzRGlzYWJsZUxhc3QgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVDb3VudCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNob3dyZWNvcmRjb3VudCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gSWYgbnVtYmVyIG9mIHJlY29yZHMgaW4gY3VycmVudCBwYWdlIGlzIGxlc3MgdGhhbiB0aGUgbWF4IHJlY29yZHMgc2l6ZSwgdGhpcyBpcyB0aGUgbGFzdCBwYWdlLiBTbyBkaXNhYmxlIG5leHQgYnV0dG9uLlxuICAgICAgICAgICAgaWYgKG51bWJlck9mRWxlbWVudHMgPCBzaXplKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVOZXh0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlQ291bnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2hvd3JlY29yZGNvdW50ID0gdGhpcy5wcmV2c2hvd3JlY29yZGNvdW50IHx8IHRoaXMuc2hvd3JlY29yZGNvdW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBkaXNhYmxlIG5hdmlnYXRpb24gYmFzZWQgb24gdGhlIGN1cnJlbnQgYW5kIHRvdGFsIHBhZ2VzLiovXG4gICAgZGlzYWJsZU5hdmlnYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IGlzQ3VycmVudFBhZ2VGaXJzdCA9ICh0aGlzLmRuLmN1cnJlbnRQYWdlID09PSAxKSxcbiAgICAgICAgICAgIGlzQ3VycmVudFBhZ2VMYXN0ID0gKHRoaXMuZG4uY3VycmVudFBhZ2UgPT09IHRoaXMucGFnZUNvdW50KTtcbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24/Lm5leHQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlRmlyc3QgPSB0aGlzLmlzRGlzYWJsZVByZXZpb3VzID0gaXNDdXJyZW50UGFnZUZpcnN0O1xuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVOZXh0ID0gdGhpcy5pc0Rpc2FibGVMYXN0ID0gaXNDdXJyZW50UGFnZUxhc3Q7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBXTVMtMTg4Njc6IEluIGNhc2Ugb2Ygc2VydmVyIHNpZGUgcGFnaW5hdGlvbiwgZm9yIHBhZ2VyIHR5cGUgcGFnaW5hdGlvbiBkZXBlbmQgb24gcHJldiBhbmQgbmV4dCBmbGFncyB3aGljaCBhcmUgc2V0IGJ5IGRldmVsb3BlclxuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVGaXJzdCA9IHRoaXMuaXNEaXNhYmxlUHJldmlvdXMgPSAhdGhpcy5wYWdpbmF0aW9uLnByZXY7XG4gICAgICAgICAgICB0aGlzLmlzRGlzYWJsZU5leHQgPSB0aGlzLmlzRGlzYWJsZUxhc3QgPSAhdGhpcy5wYWdpbmF0aW9uLm5leHQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0Rpc2FibGVDdXJyZW50ID0gaXNDdXJyZW50UGFnZUZpcnN0ICYmIGlzQ3VycmVudFBhZ2VMYXN0O1xuICAgICAgICAvLyBJbiBjYXNlIG9mIGNsaWVudCBzaWRlIHBhZ2luYXRpb24sIHdoZW4gbG9hZCBtb3JlIHJlYWNoZXMgbGFzdCBwYWdlIGhpZGUgdGhlIG9uLWRlbWFuZCBncmlkIGVsZVxuICAgICAgICBpZiAodGhpcy5kYXRhc2V0ICYmIHRoaXMuZGF0YXNldC5sZW5ndGggJiYgdGhpcy5pc0Rpc2FibGVOZXh0ICYmIHRoaXMucGFyZW50Lm9uRGVtYW5kTG9hZCAmJiB0aGlzLnBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5jYWxsRGF0YUdyaWRNZXRob2QoJ2hpZGVMb2FkaW5nSW5kaWNhdG9yJywgdGhpcy5pc0Rpc2FibGVOZXh0LCB0aGlzLnBhcmVudC5pbmZTY3JvbGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgdmFyaWFibGUgYm91bmQgdG8gdGhlIGRhdGEtbmF2aWdhdG9yIGhhcyBwYWdpbmcuKi9cbiAgICBpc0RhdGFTb3VyY2VIYXNQYWdpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2UgJiYgdGhpcy5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfUEFHRUFCTEUpO1xuICAgIH1cblxuICAgIC8vIFNldCB0aGUgcmVzdWx0IGZvciBjbGllbnQgc2lkZSBwYWdpbmF0aW9uXG4gICAgc2V0Tm9uUGFnZWFibGVEYXRhKG5ld1ZhbCkge1xuICAgICAgICBsZXQgZGF0YVNpemUsXG4gICAgICAgICAgICBtYXhSZXN1bHRzLFxuICAgICAgICAgICAgY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBzdGFydEluZGV4O1xuICAgICAgICBkYXRhU2l6ZSA9IGlzQXJyYXkobmV3VmFsKSA/IG5ld1ZhbC5sZW5ndGggOiAoaXNFbXB0eShuZXdWYWwpID8gMCA6IDEpO1xuICAgICAgICBtYXhSZXN1bHRzID0gKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubWF4UmVzdWx0cykgfHwgZGF0YVNpemU7XG5cbiAgICAgICAgLy8gRm9yIHN0YXRpYyB2YXJpYWJsZSwga2VlcCB0aGUgY3VycmVudCBwYWdlLiBGb3Igb3RoZXIgdmFyaWFibGVzIHdpdGhvdXQgcGFnaW5hdGlvbiByZXNldCB0aGUgcGFnZSB0byAxXG4gICAgICAgIC8vIEZpeCBmb3IgW1dNUy0yMzI2M106IGdyaWRPcHRpb25zLmlzTmV4dFBhZ2VEYXRhIGZsYWcgaXMgZmFsc2Ugd2hlbiBkYXRhc2V0IGlzIGNoYW5nZWQgZnJvbSBzY3JpcHQsIHNvIHNldHRpbmcgY3VycmVudCBwYWdlIHRvIDFcbiAgICAgICAgaWYgKHRoaXMuZGF0YXNvdXJjZSAmJiAodGhpcy5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSB8fCAodGhpcy5wYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJyAmJiAodGhpcy5wYXJlbnQuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpICYmIChnZXQodGhpcy5wYXJlbnQsICdncmlkT3B0aW9ucy5sYXN0QWN0aW9uUGVyZm9ybWVkJykgPT09IHRoaXMucGFyZW50LmdyaWRPcHRpb25zLkFDVElPTlMuREFUQVNFVF9VUERBVEUgfHwgIWdldCh0aGlzLnBhcmVudCwgJ2dyaWRPcHRpb25zLmlzTmV4dFBhZ2VEYXRhJykpKSkpKSB7XG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IHRoaXMuZG4uY3VycmVudFBhZ2UgfHwgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFBhZ2luZ1ZhbHVlcyhkYXRhU2l6ZSwgbWF4UmVzdWx0cywgY3VycmVudFBhZ2UpO1xuICAgICAgICB0aGlzLmRpc2FibGVOYXZpZ2F0aW9uKCk7XG5cbiAgICAgICAgc3RhcnRJbmRleCA9ICh0aGlzLmRuLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLm1heFJlc3VsdHM7XG4gICAgICAgIHRoaXMuc2V0UmVzdWx0KGlzQXJyYXkobmV3VmFsKSA/IG5ld1ZhbC5zbGljZShzdGFydEluZGV4LCBzdGFydEluZGV4ICsgdGhpcy5tYXhSZXN1bHRzKSA6IG5ld1ZhbCk7XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBzZXQgdGhlIHZhbHVlcyBuZWVkZWQgZm9yIHBhZ2luYXRpb24qL1xuICAgIHByaXZhdGUgc2V0UGFnaW5nVmFsdWVzKG5ld1ZhbCkge1xuICAgICAgICBsZXQgZGF0YVNpemUsXG4gICAgICAgICAgICBtYXhSZXN1bHRzLFxuICAgICAgICAgICAgY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBkYXRhU291cmNlO1xuICAgICAgICBsZXQgdmFyaWFibGVPcHRpb25zOiBhbnkgPSB7fTtcbiAgICAgICAgLy8gU3RvcmUgdGhlIGRhdGEgaW4gX19mdWxsRGF0YS4gVGhpcyBpcyB1c2VkIGZvciBjbGllbnQgc2lkZSBzZWFyY2hpbmcgd2l0dmFoIG91dCBtb2RpZnlpbmcgdGhlIGFjdHVhbCBkYXRhc2V0LlxuICAgICAgICB0aGlzLl9fZnVsbERhdGEgPSBuZXdWYWw7XG4gICAgICAgIC8qQ2hlY2sgZm9yIHNhbml0eSovXG4gICAgICAgIGlmICh0aGlzLmJpbmRkYXRhc2V0KSB7XG4gICAgICAgICAgICBkYXRhU291cmNlID0gdGhpcy5kYXRhc291cmNlIHx8IHt9O1xuICAgICAgICAgICAgdmFyaWFibGVPcHRpb25zID0gZGF0YVNvdXJjZS5fb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgIC8qQ2hlY2sgZm9yIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgZGF0YSBzZXQqL1xuICAgICAgICAgICAgaWYgKG5ld1ZhbCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGF0YVNvdXJjZUhhc1BhZ2luZygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHRoaXMuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9QQUdJTkdfT1BUSU9OUykgfHwge307XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIFwiZmlsdGVyRmllbGRzXCIgYW5kIFwic29ydE9wdGlvbnNcIiBoYXZlIGJlZW4gc2V0LCB0aGVuIHNldCB0aGVtIHNvIHRoYXQgdGhlIGZpbHRlcnMgY2FuIGJlIHJldGFpbmVkIHdoaWxlIGZldGNoaW5nIGRhdGEgdXBvbiBwYWdlIG5hdmlnYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyRmllbGRzID0gdmFyaWFibGVPcHRpb25zLmZpbHRlckZpZWxkcyB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpY2FsT3AgPSB2YXJpYWJsZU9wdGlvbnMubG9naWNhbE9wIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNvcnRPcHRpb25zID0gdmFyaWFibGVPcHRpb25zLm9yZGVyQnkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FycmF5KHRoaXMucGFnaW5hdGlvbi5zb3J0KSA/IGdldE9yZGVyQnlFeHByKHRoaXMucGFnaW5hdGlvbi5zb3J0KSA6ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVNpemUgPSB0aGlzLnBhZ2luYXRpb24udG90YWxFbGVtZW50cztcbiAgICAgICAgICAgICAgICAgICAgbWF4UmVzdWx0cyA9IHRoaXMucGFnaW5hdGlvbi5zaXplO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0aW9uLm51bWJlck9mRWxlbWVudHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZWZpbmVkKHRoaXMucGFnaW5hdGlvbi5udW1iZXIpKSB7IC8vIG51bWJlciBpcyBwYWdlIG51bWJlciByZWNlaXZlZCBmcm9tIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdpbmF0aW9uLm51bWJlciArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZSA9IHRoaXMuZG4uY3VycmVudFBhZ2UgfHwgMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvKiBTZW5kaW5nIHBhZ2VDb3VudCB1bmRlZmluZWQgdG8gY2FsY3VsYXRlIGl0IGFnYWluIGZvciBxdWVyeS4qL1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRQYWdpbmdWYWx1ZXMoZGF0YVNpemUsIG1heFJlc3VsdHMsIGN1cnJlbnRQYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrRGF0YVNpemUoZGF0YVNpemUsIHRoaXMucGFnaW5hdGlvbi5udW1iZXJPZkVsZW1lbnRzLCB0aGlzLnBhZ2luYXRpb24uc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVzdWx0KG5ld1ZhbCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaXNTdHJpbmcobmV3VmFsKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldE5vblBhZ2VhYmxlRGF0YShuZXdWYWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSZXN1bHQobmV3VmFsKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0UGFnZU5hdmlnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24gPT09ICdCYXNpYycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRBcmlhRm9yQmFzaWNOYXZpZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobmV3VmFsICYmICFpc1N0cmluZyhuZXdWYWwpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROb25QYWdlYWJsZURhdGEobmV3VmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgZmlyc3QgcGFnZSovXG4gICAgaXNGaXJzdFBhZ2UoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kbi5jdXJyZW50UGFnZSA9PT0gMSB8fCAhdGhpcy5kbi5jdXJyZW50UGFnZSk7XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgY3VycmVudCBwYWdlIGlzIHRoZSBsYXN0IHBhZ2UqL1xuICAgIGlzTGFzdFBhZ2UoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kbi5jdXJyZW50UGFnZSA9PT0gdGhpcy5wYWdlQ291bnQpO1xuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gbmF2aWdhdGUgdG8gdGhlIGxhc3QgcGFnZSovXG4gICAgZ29Ub0xhc3RQYWdlKGlzUmVmcmVzaCwgZXZlbnQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xhc3RQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VDb3VudDtcbiAgICAgICAgICAgIHRoaXMuZ29Ub1BhZ2UoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc1JlZnJlc2gpIHtcbiAgICAgICAgICAgIHRoaXMuZ29Ub1BhZ2UoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gbmF2aWdhdGUgdG8gdGhlIGZpcnN0IHBhZ2UqL1xuICAgIGdvVG9GaXJzdFBhZ2UoaXNSZWZyZXNoLCBldmVudCwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRmlyc3RQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgPSAxO1xuICAgICAgICAgICAgdGhpcy5nb1RvUGFnZShldmVudCwgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2UgaWYgKGlzUmVmcmVzaCkge1xuICAgICAgICAgICAgdGhpcy5nb1RvUGFnZShldmVudCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBuYXZpZ2F0ZSB0byB0aGUgY3VycmVudCBwYWdlKi9cbiAgICBnb1RvUGFnZShldmVudD8sIGNhbGxiYWNrPykge1xuICAgICAgICB0aGlzLmZpcnN0Um93ID0gKHRoaXMuZG4uY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMubWF4UmVzdWx0cztcbiAgICAgICAgY29uc3QgbW9kZSA9IHRoaXMucGFyZW50LnN0YXRlUGVyc2lzdGVuY2UuY29tcHV0ZU1vZGUodGhpcy5zdGF0ZWhhbmRsZXIpO1xuICAgICAgICBpZiAobW9kZSAmJiBtb2RlLnRvTG93ZXJDYXNlKCkgIT09ICdub25lJyAmJiAodGhpcy5wYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJyB8fCB0aGlzLnBhcmVudC53aWRnZXRUeXBlID09PSAnd20tbGlzdCcpKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5fc2VsZWN0ZWRJdGVtc0V4aXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmlyc3RQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudC5zdGF0ZVBlcnNpc3RlbmNlLnJlbW92ZVdpZGdldFN0YXRlKHRoaXMucGFyZW50LCAncGFnaW5hdGlvbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodW5zdXBwb3J0ZWRTdGF0ZVBlcnNpc3RlbmNlVHlwZXMuaW5kZXhPZih0aGlzLnBhcmVudC5uYXZpZ2F0aW9uKSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQuc3RhdGVQZXJzaXN0ZW5jZS5zZXRXaWRnZXRTdGF0ZSh0aGlzLnBhcmVudCwge3BhZ2luYXRpb246IHRoaXMuZG4uY3VycmVudFBhZ2V9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGFyZW50LndpZGdldFR5cGUgPT09ICd3bS1saXN0JyB8fHRoaXMucGFyZW50LndpZGdldFR5cGUgPT09ICd3bS10YWJsZScgKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignUmV0YWluIFN0YXRlIGhhbmRsaW5nIG9uIFdpZGdldCAnICsgdGhpcy5wYXJlbnQubmFtZSArICcgaXMgbm90IHN1cHBvcnRlZCBmb3IgY3VycmVudCBwYWdpbmF0aW9uIHR5cGUuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wYXJlbnQuY3VycmVudHBhZ2UgPSB0aGlzLmRuLmN1cnJlbnRQYWdlO1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQubmF0aXZlRWxlbWVudD8uc2V0QXR0cmlidXRlKCdjdXJyZW50cGFnZScsIHRoaXMuZG4uY3VycmVudFBhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNhbGwgZ2V0UGFnZURhdGEgYWZ0ZXIgY2hlY2tpbmcgc3RhdGUgY29uZmlnIHNvIHRoYXQgU3RhdGljIFZhcmlhYmxlcyBjYW4gdXNlIGl0XG4gICAgICAgIHRoaXMuZ2V0UGFnZURhdGEoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKkZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRhdGEgb2YgdGhlIHBhZ2UgaGFzIGJlZW4gZmV0Y2hlZC4qL1xuICAgIG9uUGFnZURhdGFSZWFkeShldmVudCwgZGF0YSwgY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlTmF2aWdhdGlvbigpO1xuICAgICAgICB0aGlzLmludm9rZVNldFJlY29yZChldmVudCwgZGF0YSk7XG4gICAgICAgIHRyaWdnZXJGbihjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBnZXQgZGF0YSBmb3IgdGhlIGN1cnJlbnQgcGFnZSovXG4gICAgZ2V0UGFnZURhdGEoZXZlbnQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBkYXRhLFxuICAgICAgICAgICAgc3RhcnRJbmRleDtcblxuICAgICAgICBpZiAodGhpcy5pc0RhdGFTb3VyY2VIYXNQYWdpbmcoKSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJbiB0YWJsZSBjb21wb25lbnQsIGluIGNhc2Ugb2Ygb24gZGVtYW5kIGFuZCBzY3JvbGwgcGFnaW5hdGlvblxuICAgICAgICAgICAgICogV2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiBkYXRhIGl0ZW0gd2hpY2ggaXMgbm90IGluIGN1cnJlbnQgcGFnZVxuICAgICAgICAgICAgICogRmV0Y2ggdGhlIGl0ZW1zIG9mIHRoZSBwYWdlIHdoZXJlIHRoZSBjaGFuZ2UgaXMgbWFkZVxuICAgICAgICAgICAgICogKi9cbiAgICAgICAgICAgIGxldCBwYWdlSW5kZXggPSB0aGlzLmRuLmN1cnJlbnRQYWdlO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNFZGl0Tm90SW5DdXJyZW50UGFnZSgpICYmIHRoaXMucGFyZW50LmdyaWRPcHRpb25zLmxhc3RBY3Rpb25QZXJmb3JtZWQgIT09ICdkZWxldGUnKSB7XG4gICAgICAgICAgICAgICAgcGFnZUluZGV4ID0gdGhpcy5wYXJlbnQuYWN0aW9uUm93UGFnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkxJU1RfUkVDT1JEUywge1xuICAgICAgICAgICAgICAgICdwYWdlJzogcGFnZUluZGV4LFxuICAgICAgICAgICAgICAgICdmaWx0ZXJGaWVsZHMnOiB0aGlzLmZpbHRlckZpZWxkcyxcbiAgICAgICAgICAgICAgICAnb3JkZXJCeSc6IHRoaXMuc29ydE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgJ2xvZ2ljYWxPcCc6IHRoaXMubG9naWNhbE9wLFxuICAgICAgICAgICAgICAgICdtYXRjaE1vZGUnOiAnYW55d2hlcmVpZ25vcmVjYXNlJ1xuICAgICAgICAgICAgfSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblBhZ2VEYXRhUmVhZHkoZXZlbnQsIHJlc3BvbnNlICYmIHJlc3BvbnNlLmRhdGEsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSWYgZXJyb3IgaXMgdW5kZWZpbmVkLCBkbyBub3Qgc2hvdyBhbnkgbWVzc2FnZSBhcyB0aGlzIG1heSBiZSBkaXNjYXJkZWQgcmVxdWVzdFxuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgRXJyb3JcbiAgICAgICAgICAgICAgICAgICAgLy8gd21Ub2FzdGVyLnNob3coJ2Vycm9yJywgJ0VSUk9SJywgJ1VuYWJsZSB0byBnZXQgZGF0YSBvZiBwYWdlIC0nICsgdGhpcy5kbi5jdXJyZW50UGFnZSArICc6JyArIGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRWRpdE5vdEluQ3VycmVudFBhZ2UoKSkge1xuICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSAodGhpcy5wYXJlbnQuYWN0aW9uUm93UGFnZSAtIDEpICogdGhpcy5tYXhSZXN1bHRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gKHRoaXMuZG4uY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMubWF4UmVzdWx0cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEgPSBpc0FycmF5KHRoaXMuX19mdWxsRGF0YSkgPyB0aGlzLl9fZnVsbERhdGEuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIHRoaXMubWF4UmVzdWx0cykgOiB0aGlzLl9fZnVsbERhdGE7XG4gICAgICAgICAgICB0aGlzLnNldFJlc3VsdChkYXRhKTtcbiAgICAgICAgICAgIHRoaXMub25QYWdlRGF0YVJlYWR5KGV2ZW50LCBkYXRhLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKlxuICAgIEZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBlZGl0IGFjdGlvbiBpcyBwZXJmb3JtZWQgb24gdGhlIHByZXZpb3VzIHBhZ2UgZGF0YSBvZiB0aGUgdGFibGVcbiAgICAqL1xuICAgIGlzRWRpdE5vdEluQ3VycmVudFBhZ2UoKSB7XG4gICAgICAgIGNvbnN0IHBhZ2VJbmRleCA9IHRoaXMuZG4uY3VycmVudFBhZ2U7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnICYmIHBhZ2VJbmRleCA9PT0gdGhpcy5wYXJlbnQuY3VycmVudFBhZ2UgJiZcbiAgICAgICAgICAgIHRoaXMucGFyZW50LmFjdGlvblJvd1BhZ2UgJiYgdGhpcy5wYXJlbnQuYWN0aW9uUm93UGFnZSA8IHBhZ2VJbmRleDtcbiAgICB9XG5cbiAgICBpbnZva2VTZXRSZWNvcmQoZXZlbnQsIGRhdGEpIHtcbiAgICAgICAgLy8gVHJpZ2dlciB0aGUgZXZlbnQgaGFuZGxlciBpZiBleGlzdHMuXG4gICAgICAgIGNvbnN0IHBhZ2VJbmZvID0ge1xuICAgICAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuZG4uY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBzaXplOiB0aGlzLm1heFJlc3VsdHMsXG4gICAgICAgICAgICB0b3RhbEVsZW1lbnRzOiB0aGlzLmRhdGFTaXplLFxuICAgICAgICAgICAgdG90YWxQYWdlczogdGhpcy5wYWdlQ291bnRcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5pbnZva2VFdmVudENhbGxiYWNrKCdzZXRyZWNvcmQnLCB7JGV2ZW50OiBldmVudCwgJGRhdGE6IGRhdGEsICRpbmRleDogdGhpcy5kbi5jdXJyZW50UGFnZSwgcGFnZUluZm8sIGRhdGF9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2V0cmVjb3JkJywgeyRldmVudDogZXZlbnQsICRkYXRhOiBkYXRhLCAkaW5kZXg6IHRoaXMuZG4uY3VycmVudFBhZ2UsIHBhZ2VJbmZvLCBkYXRhfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKkZ1bmN0aW9uIHRvIHZhbGlkYXRlIHRoZSBwYWdlIGlucHV0LlxuICAgICBJbiBjYXNlIG9mIGludmFsaWQgaW5wdXQsIG5hdmlnYXRlIHRvIHRoZSBhcHByb3ByaWF0ZSBwYWdlOyBhbHNvIHJldHVybiBmYWxzZS5cbiAgICAgSW4gY2FzZSBvZiB2YWxpZCBpbnB1dCwgcmV0dXJuIHRydWUuKi9cbiAgICB2YWxpZGF0ZUN1cnJlbnRQYWdlKGV2ZW50LCBjYWxsYmFjaz8pIHtcbiAgICAgICAgLypJZiB0aGUgdmFsdWUgZW50ZXJlZCBpcyBncmVhdGVyIHRoYW4gdGhlIGxhc3QgcGFnZSBudW1iZXIgb3IgaW52YWxpZCB2YWx1ZSwgdGhlbiBoaWdobGlnaHRpbmcgdGhlIGZpZWxkIHNob3dpbmcgZXJyb3IuKi9cbiAgICAgICAgaWYgKGV2ZW50ICYmIChpc05hTih0aGlzLmRuLmN1cnJlbnRQYWdlKSB8fCB0aGlzLmRuLmN1cnJlbnRQYWdlIDw9IDAgfHwgKHRoaXMucGFnZUNvdW50ICYmICh0aGlzLmRuLmN1cnJlbnRQYWdlID4gdGhpcy5wYWdlQ291bnQgfHwgaXNOdWxsKHRoaXMuZG4uY3VycmVudFBhZ2UpKSkpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kbi5jdXJyZW50UGFnZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kbi5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZG4uY3VycmVudFBhZ2UgPiB0aGlzLnBhZ2VDb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VDb3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKGV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0ZUN1cnJlbnRQYWdlKGV2ZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ29Ub1BhZ2UoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXRFbGUgPSAkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnYScpO1xuICAgICAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0tleUUnKSB7XG4gICAgICAgICAgICB0YXJnZXRFbGUuYWRkQ2xhc3MoJ25nLWludmFsaWQnKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXRFbGUucmVtb3ZlQ2xhc3MoJ25nLWludmFsaWQnKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcGFnZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgICAgIHRoaXMuX2RlYm91bmNlZFBhZ2VDaGFuZ2VkKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKkZ1bmN0aW9uIHRvIG5hdmlnYXRlIHRvIHRoZSByZXNwZWN0aXZlIHBhZ2VzLiovXG4gICAgbmF2aWdhdGVQYWdlKGluZGV4LCBldmVudCwgaXNSZWZyZXNoLCBjYWxsYmFjaykge1xuICAgICAgICAvLyB3aGVuIG5hdmlnYXRlZCB0byBuZXh0IHBhZ2UgdHVybiBvbiB0aGUgaXNEYXRhTG9hZGluZyBmbGFnIHRvIHNob3cgdGhlIGxvYWRpbmcgaW5kaWNhdG9yXG4gICAgICAgIGlmIChpc0RlZmluZWQodGhpcy5wYXJlbnQuaXNEYXRhTG9hZGluZykgJiYgIXRoaXMuaXNEaXNhYmxlTmV4dCkge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQuaXNEYXRhTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAvLyBJbiBjYXNlIG9mIGluZmluaXRlIHNjcm9sbCBjYWxsaW5nIHRoZSBzaG93TG9hZGluZ0luZGljYXRvciBtZXRob2QgdG8gdXBkYXRlIHRoZSBsb2FkaW5nIG1lc3NhZ2UgaW1tZWRpYXRlbHkgd2hlbiBuYXZpZ2F0ZWQgdG8gbmV4dCBwYWdlXG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQuaW5mU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQudmFyaWFibGVJbmZsaWdodCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQuY2FsbERhdGFHcmlkTWV0aG9kKCdzaG93TG9hZGluZ0luZGljYXRvcicsIHRoaXMucGFyZW50LmxvYWRpbmdkYXRhbXNnLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyByZXNldCB0aGUgbGFzdCBhY3Rpb24gcGVyZm9ybWVkIHRvIFwic2Nyb2xsXCIgYW5kIGlzRGF0YXNldFVwZGF0ZWQgdG8gZmFsc2VcbiAgICAgICAgaWYgKHRoaXMucGFyZW50LndpZGdldFR5cGUgPT09ICd3bS10YWJsZScgJiYgdGhpcy5wYXJlbnQuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5ncmlkT3B0aW9ucy5zZXRMYXN0QWN0aW9uUGVyZm9ybWVkKHRoaXMucGFyZW50LmdyaWRPcHRpb25zLkFDVElPTlMuREVGQVVMVCk7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5ncmlkT3B0aW9ucy5zZXRJc0RhdGFzZXRVcGRhdGVkKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3BhZ2luYXRpb25jaGFuZ2UnLCB7JGV2ZW50OiB1bmRlZmluZWQsICRpbmRleDogdGhpcy5kbi5jdXJyZW50UGFnZX0pO1xuXG4gICAgICAgIC8vIENvbnZlcnQgdGhlIGN1cnJlbnQgcGFnZSB0byBhIHZhbGlkIHBhZ2UgbnVtYmVyLlxuICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gK3RoaXMuZG4uY3VycmVudFBhZ2U7XG5cbiAgICAgICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICAgICAgY2FzZSAnZmlyc3QnOlxuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub0ZpcnN0UGFnZShpc1JlZnJlc2gsIGV2ZW50LCBjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY2FzZSAncHJldic6XG4gICAgICAgICAgICAgICAgLypSZXR1cm4gaWYgYWxyZWFkeSBvbiB0aGUgZmlyc3QgcGFnZS4qL1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wYWdpbmF0aW9uPy5uZXh0ICYmICh0aGlzLmlzRmlyc3RQYWdlKCkgfHwgIXRoaXMudmFsaWRhdGVDdXJyZW50UGFnZShldmVudCwgY2FsbGJhY2spKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBhZ2luYXRpb24/Lm5leHQpIHsgLy8gV01TLTE4ODY3OiBGb3Igc2VydmVyIHNpZGUgcGFnaW5hdGlvbiwgc2tpcHBpbmcgdGhlIHJlZ3VsYXIgZmxvdyBhbmQgZW5hYmxpbmcgaXNOZXh0IGZsYWcgaW4gcGFnaW5hdGlvbiBtZXRhZGF0YVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFzb3VyY2UucGFnaW5hdGlvbi5pc05leHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlLnBhZ2luYXRpb24uaXNQcmV2ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLypEZWNyZW1lbnQgdGhlIGN1cnJlbnQgcGFnZSBieSAxLiovXG4gICAgICAgICAgICAgICAgdGhpcy5kbi5jdXJyZW50UGFnZSAtPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbmV4dCc6XG4gICAgICAgICAgICAgICAgLypSZXR1cm4gaWYgYWxyZWFkeSBvbiB0aGUgbGFzdCBwYWdlLiovXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24/Lm5leHQgJiYgKHRoaXMuaXNMYXN0UGFnZSgpIHx8ICF0aGlzLnZhbGlkYXRlQ3VycmVudFBhZ2UoZXZlbnQsIGNhbGxiYWNrKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYWdpbmF0aW9uPy5uZXh0KSB7IC8vIFdNUy0xODg2NzogRm9yIHNlcnZlciBzaWRlIHBhZ2luYXRpb24sIHNraXBwaW5nIHRoZSByZWd1bGFyIGZsb3cgYW5kIGVuYWJsaW5nIGlzUHJldiBmbGFnIGluIHBhZ2luYXRpb24gbWV0YWRhdGFcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlLnBhZ2luYXRpb24uaXNOZXh0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlLnBhZ2luYXRpb24uaXNQcmV2ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8qSW5jcmVtZW50IHRoZSBjdXJyZW50IHBhZ2UgYnkgMS4qL1xuICAgICAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgKz0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub0xhc3RQYWdlKGlzUmVmcmVzaCwgZXZlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgLypOYXZpZ2F0ZSB0byB0aGUgY3VycmVudCBwYWdlLiovXG4gICAgICAgIHRoaXMuZ29Ub1BhZ2UoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBzZXRCaW5kRGF0YVNldChiaW5kZGF0YXNldCwgcGFyZW50LCBkYXRhU291cmNlLCBkYXRhc2V0PywgYmluZGRhdGFzb3VyY2U/LCBkYXRhc2V0Qm91bmRFeHByPywgc3RhdGVoYW5kbGVyPykge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IGJpbmRkYXRhc2V0LnNwbGl0KCcuJyk7XG4gICAgICAgIGxldCBiaW5kUGFnaW5nT3B0aW9ucztcbiAgICAgICAgdGhpcy5zdGF0ZWhhbmRsZXIgPSBzdGF0ZWhhbmRsZXI7XG4gICAgICAgIGlmIChwYXJ0c1swXSA9PT0gJ1ZhcmlhYmxlcycgfHwgcGFydHNbMF0gPT09ICdXaWRnZXRzJykge1xuICAgICAgICAgICAgYmluZFBhZ2luZ09wdGlvbnMgPSBgJHtwYXJ0c1swXX0uJHtwYXJ0c1sxXX0ucGFnaW5hdGlvbmA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFiaW5kZGF0YXNvdXJjZSAmJiBkYXRhc2V0ICYmICFkYXRhc2V0Qm91bmRFeHByKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXQgPSBkYXRhc2V0O1xuICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VkQXBwbHlEYXRhc2V0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iaW5kZGF0YXNldCA9IGJpbmRkYXRhc2V0O1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIHdhdGNoaW5nIGZvciBkYXRhc2V0IGNoYW5nZXMgZXZlbiB3aGVuIGRhdGFzZXQgaXMgYm91bmQgdG8gXCJpdGVtLlwiIChpLmUuIGJ5IGNoZWNraW5nIGZvciBkYXRhc2V0Qm91bmRFeHByKVxuICAgICAgICAgICAgLy8gaXRlbSBjb250ZXh0IGlzIHBhc3NlZCBhcyBkYXRhU291cmNlIGhlcmVcbiAgICAgICAgICAgIC8vIFtUb2RvLUNTUF06IGNoZWNrIGlmIHNhbWUgZXhwciBmbiBpcyBnZW5lcmF0ZWQgYnkgcGFyZW50IHdpZGdldCAobGlzdCwgdGFibGUpXG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgICAgICR3YXRjaChcbiAgICAgICAgICAgICAgICAgICAgYmluZGRhdGFzZXQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldEJvdW5kRXhwciA/IGRhdGFTb3VyY2UgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgbnYgPT4gIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YXNldCA9IG52O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlZEFwcGx5RGF0YXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdNUy0xOTI4NTogU2V0dGluZyBkYXRhc2V0IG9uIHByb3h5IG9ubHkgdG8gaGFuZGxlIHByb3BlcnR5Y2hhbmdlIGhhbmRsZXIgY2FsbCBmb3IgdW5kZWZpbmVkIGNhc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXQuZGF0YXNldCA9IG52O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gUmVnaXN0ZXIgYSB3YXRjaCBvbiBwYWdpbmcgb3B0aW9ucy4gQ2FsbCBkYXRhc2V0IHByb3BlcnR5IGNoYW5nZSBoYW5kbGVyIGV2ZW4gaWYgcGFnaW5nIG9wdGlvbnMgY2hhbmdlcyB0byByZWZsZWN0IHBhZ2luYXRpb24gc3RhdGVcbiAgICAgICAgICAgIGlmICghYmluZFBhZ2luZ09wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL1tUb2RvLUNTUF06IGVpdGhlciBnZW5lcmF0ZSB3YXRjaCBleHByIGZuIG9yIHJlZ2lzdGVyIGFuIGV2ZW50IGZyb20gdGhlIGRhdGFzb3VyY2UgaXRzZWxmXG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgICAgICR3YXRjaChcbiAgICAgICAgICAgICAgICAgICAgYmluZFBhZ2luZ09wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHRoaXMuX2RlYm91bmNlZEFwcGx5RGF0YXNldCgpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGFwcGx5IGRhdGFzb3VyY2Ugb25seSB3aGVuIGRhdGFzZXQgaXMgbm90IGJvdW5kIHRvIFwiaXRlbS5GSUVMRFwiXG4gICAgICAgIGlmICghZGF0YXNldEJvdW5kRXhwcikge1xuICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldCB0aGUgZGF0YXNvdXJjZSBvZiBwYWdpbmF0aW9uIGZyb20gdGhlIHBhcmVudCB3aWRnZXRcbiAgICBzZXREYXRhU291cmNlKGRhdGFTb3VyY2UpIHtcbiAgICAgICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudiwgb3YpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICAgICAgICBsZXQgZGF0YTtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5vbkRhdGFOYXZpZ2F0b3JEYXRhU2V0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IHRoaXMucGFyZW50Lm9uRGF0YU5hdmlnYXRvckRhdGFTZXRDaGFuZ2UobnYpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gbnY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTZXQgbGFzdCBhY3Rpb24gcGVyZm9ybWVkIHRvIFwiZGF0YXNldF91cGRhdGVcIiB3aGVuZXZlciBkYXRhc2V0IGlzIGNoYW5nZWQgaW4gdGFibGUgY29tcG9uZW50XG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJykge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Ll90cmlnZ2VyZWRCeVVzZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdoZW4gdGhlIGRhdGFzZXQgaXMgbm90IGluIGN1cnJlbnQgcGFnZSwgYnV0IGluIHByZXZpb3VzIG9uZXMgZGlyZWN0bHkgc2V0IHRoZSByZXN1bHQgd2l0aG91dCBzZXR0aW5nIHBhZ2UgdmFsdWVzXG4gICAgICAgICAgICBpZiAodGhpcy5pc0VkaXROb3RJbkN1cnJlbnRQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFJlc3VsdChkYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdpbmdWYWx1ZXMoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbmF2aWdhdGlvbicpIHtcbiAgICAgICAgICAgIGlmIChudiA9PT0gJ0FkdmFuY2VkJykgeyAvLyBTdXBwb3J0IGZvciBvbGRlciBwcm9qZWN0cyB3aGVyZSBuYXZpZ2F0aW9uIHR5cGUgd2FzIGFkdmFuY2VkIGluc3RlYWQgb2YgY2xhc2ljXG4gICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uID0gJ0NsYXNzaWMnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVOYXZTaXplKCk7XG4gICAgICAgICAgICB0aGlzLm5hdmNvbnRyb2xzID0gbnY7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbmF2aWdhdGlvbnNpemUnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5hdlNpemUoKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICduYXZpZ2F0aW9uYWxpZ24nKSB7XG4gICAgICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGB0ZXh0LSR7bnZ9YCwgYHRleHQtJHtvdn1gKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdtYXhSZXN1bHRzJykge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdpbmdWYWx1ZXModGhpcy5kYXRhc2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBwYWdpbmF0aW9uRWxlbSA9ICB0aGlzLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHBhZ2luYXRpb25FbGVtLm9uY2xpY2sgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIlxuPHVsIGNsYXNzPVwicGFnaW5hdGlvbiBhZHZhbmNlZCB7e25hdmlnYXRpb25DbGFzc319XCIgKm5nSWY9XCJuYXZjb250cm9scyA9PT0gJ0NsYXNzaWMnXCI+XG4gICAgPGxpIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmlzRGlzYWJsZUZpcnN0fVwiPlxuICAgICAgICA8YSBbdGl0bGVdPVwiYXBwTG9jYWxlLkxBQkVMX0ZJUlNUXCIgbmFtZT1cImZpcnN0XCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImlzRGlzYWJsZUZpcnN0XCJcbiAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUGFnZSgnZmlyc3QnLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj48aSBjbGFzcz1cIndpIHdpLWZpcnN0LXBhZ2VcIj48L2k+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+R28gdG8gZmlyc3QgcGFnZSB7eyBpc0Rpc2FibGVGaXJzdCA/ICcgLCBEaXNhYmxlZCcgOiAnJ319PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6aXNEaXNhYmxlUHJldmlvdXN9XCI+XG4gICAgICAgIDxhIFt0aXRsZV09XCJhcHBMb2NhbGUuTEFCRUxfUFJFVklPVVNcIiBuYW1lPVwicHJldlwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNEaXNhYmxlUHJldmlvdXNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUGFnZSgncHJldicsICRldmVudClcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxpIGNsYXNzPVwid2kgd2ktY2hldnJvbi1sZWZ0XCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkdvIHRvIHByZXZpb3VzIHBhZ2Uge3sgaXNEaXNhYmxlUHJldmlvdXMgPyAnLCBEaXNhYmxlZCcgOiAnJ319PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJwYWdlY291bnQgZGlzYWJsZWRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBhcmlhLWxhYmVsPVwiQ2hhbmdlIFBhZ2UgTnVtYmVyXCI+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJkbi5jdXJyZW50UGFnZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1Nob3dpbmcgUGFnZSAnICsgZG4uY3VycmVudFBhZ2UgKyAnIG9mICcgKyBwYWdlQ291bnRcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiIChjaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIi8+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImRpc2FibGVkXCI+XG4gICAgICAgIDxhIFtoaWRkZW5dPVwiaXNEaXNhYmxlQ291bnRcIj4gLyB7e3BhZ2VDb3VudH19PC9hPlxuICAgIDwvbGk+XG4gICAgPGxpIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmlzRGlzYWJsZU5leHR9XCI+XG4gICAgICAgIDxhIFt0aXRsZV09XCJhcHBMb2NhbGUuTEFCRUxfTkVYVFwiIG5hbWU9XCJuZXh0XCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImlzRGlzYWJsZU5leHRcIlxuICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVQYWdlKCduZXh0JywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PGkgY2xhc3M9XCJ3aSB3aS1jaGV2cm9uLXJpZ2h0XCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkdvIHRvIG5leHQgcGFnZSB7eyBpc0Rpc2FibGVOZXh0ID8gJyAsIERpc2FibGVkJyA6ICcnfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzppc0Rpc2FibGVMYXN0fVwiPlxuICAgICAgICA8YSBbdGl0bGVdPVwiYXBwTG9jYWxlLkxBQkVMX0xBU1RcIiBuYW1lPVwibGFzdFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0Rpc2FibGVMYXN0XCJcbiAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUGFnZSgnbGFzdCcsICRldmVudClcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxpIGNsYXNzPVwid2kgd2ktbGFzdC1wYWdlXCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkdvIHRvIGxhc3QgcGFnZSB7eyBpc0Rpc2FibGVMYXN0ID8gJyAsIERpc2FibGVkJyA6ICcnfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSAqbmdJZj1cInNob3dyZWNvcmRjb3VudFwiIGNsYXNzPVwidG90YWxjb3VudCBkaXNhYmxlZFwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIHRhYmluZGV4PVwiLTFcIiBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiPnt7YXBwTG9jYWxlLkxBQkVMX1RPVEFMX1JFQ09SRFN9fToge3tkYXRhU2l6ZX19PC9hPlxuICAgIDwvbGk+XG48L3VsPlxuPHVsIGNsYXNzPVwicGFnZXIge3tuYXZpZ2F0aW9uQ2xhc3N9fVwiICpuZ0lmPVwibmF2Y29udHJvbHMgPT09ICdQYWdlcidcIj5cbiAgICA8bGkgY2xhc3M9XCJwcmV2aW91c1wiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmlzRGlzYWJsZVByZXZpb3VzfVwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIChjbGljayk9XCJuYXZpZ2F0ZVBhZ2UoJ3ByZXYnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0Rpc2FibGVQcmV2aW91c1wiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PGkgY2xhc3M9XCJ3aSB3aS1jaGV2cm9uLWxlZnRcIj48L2k+PC9zcGFuPlxuICAgICAgICAgICAge3thcHBMb2NhbGUuTEFCRUxfUFJFVklPVVN9fVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgaXNEaXNhYmxlUHJldmlvdXMgPyAnICwgRGlzYWJsZWQnIDogJyd9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwibmV4dFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmlzRGlzYWJsZU5leHR9XCI+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgKGNsaWNrKT1cIm5hdmlnYXRlUGFnZSgnbmV4dCcsICRldmVudClcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImlzRGlzYWJsZU5leHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxpIGNsYXNzPVwid2kgd2ktY2hldnJvbi1yaWdodFwiPjwvaT48L3NwYW4+XG4gICAgICAgICAgICB7e2FwcExvY2FsZS5MQUJFTF9ORVhUfX1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7IGlzRGlzYWJsZU5leHQgPyAnICwgRGlzYWJsZWQnIDogJyd9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L3VsPlxuXG48cGFnaW5hdGlvbiBjbGFzcz1cInBhZ2luYXRpb24gYmFzaWNcIiBbbmdDbGFzc109XCJuYXZpZ2F0aW9uQ2xhc3NcIiAqbmdJZj1cIm5hdmNvbnRyb2xzID09PSAnQmFzaWMnXCIgcm9sZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJtYXhSZXN1bHRzXCIgW3RvdGFsSXRlbXNdPVwiZGF0YVNpemVcIlxuICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cInBhZ2VDaGFuZ2VkKCRldmVudClcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6dHJ1ZX1cIiBbbmdNb2RlbF09XCJkbi5jdXJyZW50UGFnZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTaG93aW5nIFBhZ2UgJyArIGRuLmN1cnJlbnRQYWdlICsgJyBvZiAnICsgcGFnZUNvdW50ICsgJyBwYWdlcydcIlxuICAgICAgICAgICAgW2JvdW5kYXJ5TGlua3NdPVwiYm91bmRhcnlsaW5rc1wiIFttYXhTaXplXT1cIm1heHNpemVcIlxuICAgICAgICAgICAgW2RpcmVjdGlvbkxpbmtzXT1cImRpcmVjdGlvbmxpbmtzXCJcbiAgICAgICAgICAgIGZpcnN0VGV4dD1cIkZpcnRzdFwiIGxhc3RUZXh0PVwiTGFzdFwiXG4gICAgICAgICAgICBbY3VzdG9tUHJldmlvdXNUZW1wbGF0ZV09XCJwcmV2VGVtcGxhdGVcIlxuICAgICAgICAgICAgW2N1c3RvbU5leHRUZW1wbGF0ZV09XCJuZXh0VGVtcGxhdGVcIlxuICAgICAgICAgICAgW2N1c3RvbVBhZ2VUZW1wbGF0ZV09XCJwYWdlVGVtcGxhdGVcIj48L3BhZ2luYXRpb24+XG5cbjx1bCAqbmdJZj1cIm5hdmNvbnRyb2xzID09PSAnQmFzaWMnICYmIHNob3dyZWNvcmRjb3VudFwiIGNsYXNzPVwicGFnaW5hdGlvblwiPlxuICAgIDxsaSBjbGFzcz1cInRvdGFsY291bnQgZGlzYWJsZWQgYmFzaWNjb3VudFwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIHRhYmluZGV4PVwiLTFcIiBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiPnt7YXBwTG9jYWxlLkxBQkVMX1RPVEFMX1JFQ09SRFN9fToge3tkYXRhU2l6ZX19PC9hPlxuICAgIDwvbGk+XG48L3VsPlxuXG48bmctdGVtcGxhdGUgI3BhZ2VUZW1wbGF0ZSBsZXQtcGFnZT5cbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIiBbYXR0ci5kYXRhLWlzYWNpdHZlcGFnZV09XCJwYWdlLmFjdGl2ZVwiPnt7J1BhZ2UgJ319PC9zcGFuPlxuICAgIHt7cGFnZS5udW1iZXJ9fVxuICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiICpuZ0lmPVwicGFnZS5hY3RpdmVcIj4ge3snLCBTaG93aW5nIHBhZ2UgJyArIHBhZ2UubnVtYmVyICsgJyBvZiAnICsgcGFnZUNvdW50fX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNwcmV2VGVtcGxhdGUgbGV0LWRpc2FibGVkPVwiZGlzYWJsZWRcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIiBbYXR0ci5kYXRhLWlzZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5HbyB0byBQcmV2aW91cyBwYWdlIHt7ZGlzYWJsZWQgPyAnLCBEaXNhYmxlZCcgOiAnJ319PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbmV4dFRlbXBsYXRlIGxldC1kaXNhYmxlZD1cImRpc2FibGVkXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCIgW2F0dHIuZGF0YS1pc2Rpc2FibGVkXT1cImRpc2FibGVkXCI+R28gdG8gTmV4dCBwYWdlIHt7ZGlzYWJsZWQgPyAnLCBEaXNhYmxlZCcgOiAnJ319PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
773
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9wYWdpbmF0aW9uL3NyYy9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhL3BhZ2luYXRpb24vc3JjL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFpQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUNILFVBQVUsRUFDVixNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2hLLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7OztJQ2dDbkUsQUFESiw4QkFBd0QsWUFDYTtJQUFBLFlBQStDO0lBQ3BILEFBRG9ILGlCQUFJLEVBQ25IOzs7SUFEZ0UsZUFBK0M7SUFBL0MsMEZBQStDOzs7O0lBM0NoSCxBQURKLEFBREosMEJBQXNGLFlBQ3RDLFdBR0c7SUFBeEMsK0tBQVMsb0JBQWEsT0FBTyxTQUFTLEtBQUM7SUFD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QUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0b3IsIE91dHB1dCwgU2tpcFNlbGYsIEFmdGVyVmlld0luaXQsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgICAkYXBwRGlnZXN0LFxuICAgICR3YXRjaCxcbiAgICBBcHBDb25zdGFudHMsXG4gICAgRGF0YVNvdXJjZSxcbiAgICBkZWJvdW5jZSxcbiAgICBpc0RlZmluZWQsXG4gICAgc3dpdGNoQ2xhc3MsXG4gICAgdHJpZ2dlckZuXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IERFQk9VTkNFX1RJTUVTLCBnZXRPcmRlckJ5RXhwciwgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyLCBXaWRnZXRSZWYsIHVuc3VwcG9ydGVkU3RhdGVQZXJzaXN0ZW5jZVR5cGVzfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3BhZ2luYXRpb24ucHJvcHMnO1xuaW1wb3J0IHtmb3JFYWNoLCBnZXQsIGlzQXJyYXksIGlzRW1wdHksIGlzTnVsbCwgaXNTdHJpbmd9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWRhdGFuYXZpZ2F0b3IgY2xlYXJmaXgnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tcGFnaW5hdGlvbicsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG5jb25zdCBzaXplQ2xhc3NlcyA9IHtcbiAgICAnUGFnZXInOiB7XG4gICAgICAgICdzbWFsbCc6ICdwYWdlci1zbScsXG4gICAgICAgICdsYXJnZSc6ICdwYWdlci1sZydcbiAgICB9LFxuICAgICdCYXNpYyc6IHtcbiAgICAgICAgJ3NtYWxsJzogJ3BhZ2luYXRpb24tc20nLFxuICAgICAgICAnbGFyZ2UnOiAncGFnaW5hdGlvbi1sZydcbiAgICB9LFxuICAgICdDbGFzc2ljJzoge1xuICAgICAgICAnc21hbGwnOiAncGFnaW5hdGlvbi1zbScsXG4gICAgICAgICdsYXJnZSc6ICdwYWdpbmF0aW9uLWxnJ1xuICAgIH1cbn07XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bVBhZ2luYXRpb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihQYWdpbmF0aW9uQ29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICBAT3V0cHV0KCkgcmVzdWx0RW1pdHRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG1heFJlc3VsdHNFbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGRhdGFzb3VyY2U7XG4gICAgbWF4UmVzdWx0cztcbiAgICBuYXZpZ2F0aW9uc2l6ZTtcbiAgICBzaG93cmVjb3JkY291bnQ7XG5cbiAgICBuYXZjb250cm9scztcbiAgICBuYXZpZ2F0aW9uO1xuXG4gICAgYm91bmRhcnlsaW5rcztcbiAgICBkaXJlY3Rpb25saW5rcztcblxuICAgIG5hdmlnYXRpb25DbGFzcztcbiAgICBkbiA9IHtcbiAgICAgICAgY3VycmVudFBhZ2U6IDFcbiAgICB9O1xuXG4gICAgcGFnZUNvdW50ID0gMDtcbiAgICBpc0Rpc2FibGVOZXh0ID0gdHJ1ZTtcbiAgICBpc0Rpc2FibGVQcmV2aW91cyA9IHRydWU7XG4gICAgaXNEaXNhYmxlRmlyc3QgPSB0cnVlO1xuICAgIGlzRGlzYWJsZUxhc3QgPSB0cnVlO1xuICAgIGlzRGlzYWJsZUN1cnJlbnQ7XG4gICAgZGF0YVNpemU7XG4gICAgcHJldnNob3dyZWNvcmRjb3VudDtcbiAgICBpc0Rpc2FibGVDb3VudDtcbiAgICBmaXJzdFJvdztcbiAgICByZXN1bHQ7XG4gICAgX19mdWxsRGF0YTtcbiAgICBkYXRhc2V0O1xuICAgIG9wdGlvbnM7XG4gICAgc3RhdGVoYW5kbGVyO1xuICAgIGZpbHRlckZpZWxkcztcbiAgICBzb3J0T3B0aW9ucztcbiAgICBiaW5kZGF0YXNldDtcbiAgICBwYWdpbmF0aW9uO1xuICAgIGxvZ2ljYWxPcDtcblxuICAgIHByaXZhdGUgX2RlYm91bmNlZEFwcGx5RGF0YXNldCA9IGRlYm91bmNlKCgpID0+IHRoaXMud2lkZ2V0LmRhdGFzZXQgPSB0aGlzLmRhdGFzZXQsIERFQk9VTkNFX1RJTUVTLlBBR0lOQVRJT05fREVCT1VOQ0VfVElNRSk7XG4gICAgcHJpdmF0ZSBfZGVib3VuY2VkUGFnZUNoYW5nZWQgPSBkZWJvdW5jZShldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gZXZlbnQgJiYgZXZlbnQucGFnZTtcbiAgICAgICAgLy8gRG8gbm90IGNhbGwgZ29Ub1BhZ2UgaWYgcGFnZSBoYXMgbm90IGNoYW5nZWRcbiAgICAgICAgaWYgKGN1cnJlbnRQYWdlICE9PSB0aGlzLmRuLmN1cnJlbnRQYWdlKSB7XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gKHRoaXMgYXMgYW55KS5wYXJlbnQgfHwgdGhpcztcbiAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgPSBjdXJyZW50UGFnZTtcbiAgICAgICAgICAgIGluc3QuaW52b2tlRXZlbnRDYWxsYmFjaygncGFnaW5hdGlvbmNoYW5nZScsIHskZXZlbnQ6IHVuZGVmaW5lZCwgJGluZGV4OiB0aGlzLmRuLmN1cnJlbnRQYWdlfSk7XG4gICAgICAgICAgICB0aGlzLmdvVG9QYWdlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uID09PSAnQmFzaWMnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0QXJpYUZvckJhc2ljTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgREVCT1VOQ0VfVElNRVMuUEFHSU5BVElPTl9ERUJPVU5DRV9USU1FKTtcblxuICAgIHByaXZhdGUgX3NldEFyaWFGb3JCYXNpY05hdmlnYXRpb24oKSB7XG4gICAgICAgIGZvckVhY2godGhpcy5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyksIChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZSgnaHJlZicsICdqYXZhc2NyaXB0OnZvaWQoMCk7Jyk7XG4gICAgICAgICAgICBjb25zdCBjaGlsZE5vZGUgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKTtcbiAgICAgICAgICAgIGlmIChjaGlsZE5vZGU/LmRhdGFzZXQuaXNhY2l0dmVwYWdlID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgICAgIGl0ZW0uc2V0QXR0cmlidXRlKCdhcmlhLWN1cnJlbnQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYoY2hpbGROb2RlPy5kYXRhc2V0LmlzZGlzYWJsZWQgPT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpdGVtLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBAU2tpcFNlbGYoKSBASW5qZWN0KFdpZGdldFJlZikgcHVibGljIHBhcmVudCwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgc2V0UmVzdWx0KHJlc3VsdCkge1xuICAgICAgICAvLyBUT0RPOiBFbWl0IGV2ZW50IG9ubHkgaWYgcmVzdWx0IGlzIGNoYW5nZWRcbiAgICAgICAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMucmVzdWx0RW1pdHRlci5lbWl0KHRoaXMucmVzdWx0KTtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgbmF2aWdhdGlvbkNsYXNzIGJhc2VkIG9uIG5hdmlnYXRpb24gYW5kIG5hdmlnYXRpb25TaXplIHByb3BzXG4gICAgcHJpdmF0ZSB1cGRhdGVOYXZTaXplKCkge1xuICAgICAgICBjb25zdCBzaXplQ2xzID0gc2l6ZUNsYXNzZXNbdGhpcy5uYXZjb250cm9sc107XG4gICAgICAgIGlmIChzaXplQ2xzICYmIHRoaXMubmF2aWdhdGlvbnNpemUpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkNsYXNzID0gc2l6ZUNsc1t0aGlzLm5hdmlnYXRpb25zaXplXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkNsYXNzID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGdW5jdGlvbiB0byByZXNldCB0aGUgcGFnaW5nIHZhbHVlcyB0byBkZWZhdWx0LlxuICAgIHJlc2V0UGFnZU5hdmlnYXRpb24oKSB7XG4gICAgICAgIHRoaXMucGFnZUNvdW50ID0gMDtcbiAgICAgICAgdGhpcy5kbi5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIHRoaXMuZGF0YVNpemUgPSAwO1xuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSBwYWdpbmcgdmFsdWVzLiovXG4gICAgY2FsY3VsYXRlUGFnaW5nVmFsdWVzKCkge1xuICAgICAgICB0aGlzLnBhZ2VDb3VudCA9ICh0aGlzLmRhdGFTaXplID4gdGhpcy5tYXhSZXN1bHRzKSA/IChNYXRoLmNlaWwodGhpcy5kYXRhU2l6ZSAvIHRoaXMubWF4UmVzdWx0cykpIDogKHRoaXMuZGF0YVNpemUgPCAwID8gMCA6IDEpO1xuICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gdGhpcy5kbi5jdXJyZW50UGFnZSB8fCAxO1xuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gc2V0IGRlZmF1bHQgdmFsdWVzIHRvIHRoZSBwYWdpbmcgcGFyYW1ldGVycyovXG4gICAgc2V0RGVmYXVsdFBhZ2luZ1ZhbHVlcyhkYXRhU2l6ZSwgbWF4UmVzdWx0cywgY3VycmVudFBhZ2UpIHtcbiAgICAgICAgLypJZiBuZWl0aGVyICdkYXRhU2l6ZScgbm9yICdtYXhSZXN1bHRzJyBpcyBzZXQsIHRoZW4gc2V0IGRlZmF1bHQgdmFsdWVzIHRvIHRoZSBwYWdpbmcgcGFyYW1ldGVycy4qL1xuICAgICAgICBpZiAoIWRhdGFTaXplICYmICFtYXhSZXN1bHRzKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VDb3VudCA9IDE7XG4gICAgICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gMTtcbiAgICAgICAgICAgIHRoaXMubWF4UmVzdWx0cyA9IGRhdGFTaXplO1xuICAgICAgICAgICAgdGhpcy5kYXRhU2l6ZSA9IGRhdGFTaXplO1xuICAgICAgICB9IGVsc2UgeyAvKkVsc2UsIHNldCB0aGUgc3BlY2lmaWVkIHZhbHVlcyBhbmQgcmVjYWxjdWxhdGUgcGFnaW5nIHBhcmFtZXRlcnMuKi9cbiAgICAgICAgICAgIHRoaXMubWF4UmVzdWx0cyA9IG1heFJlc3VsdHMgfHwgdGhpcy5tYXhSZXN1bHRzO1xuICAgICAgICAgICAgdGhpcy5kYXRhU2l6ZSA9IGlzRGVmaW5lZChkYXRhU2l6ZSkgPyBkYXRhU2l6ZSA6IHRoaXMuZGF0YVNpemU7XG4gICAgICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gY3VycmVudFBhZ2UgfHwgdGhpcy5kbi5jdXJyZW50UGFnZTtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFnaW5nVmFsdWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tYXhSZXN1bHRzRW1pdHRlci5lbWl0KHRoaXMubWF4UmVzdWx0cyk7XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBjaGVjayB0aGUgZGF0YVNpemUgYW5kIG1hbmlwdWxhdGUgdGhlIG5hdmlnYXRvciBhY2NvcmRpbmdseS4qL1xuICAgIGNoZWNrRGF0YVNpemUoZGF0YVNpemUsIG51bWJlck9mRWxlbWVudHM/LCBzaXplPykge1xuICAgICAgICAvKklmIHRoZSBkYXRhU2l6ZSBpcyAtMSBvciBJbnRlZ2VyLk1BWF9WQUxVRSggd2hpY2ggaXMgMjE0NzQ4MzY0NyksIHRoZW4gdGhlIHRvdGFsIG51bWJlciBvZiByZWNvcmRzIGlzIG5vdCBrbm93bi5cbiAgICAgICAgICogSGVuY2UsXG4gICAgICAgICAqIDEuIEhpZGUgdGhlICdUb3RhbCBSZWNvcmQgQ291bnQnLlxuICAgICAgICAgKiAyLiBEaXNhYmxlIHRoZSAnR29Ub0xhc3RQYWdlJyBsaW5rIGFzIHRoZSBwYWdlIG51bWJlciBvZiB0aGUgbGFzdCBwYWdlIGlzIG5vdCBrbm93bi4qL1xuICAgICAgICBpZiAoZGF0YVNpemUgPT09IC0xIHx8IGRhdGFTaXplID09PSBBcHBDb25zdGFudHMuSU5UX01BWF9WQUxVRSkge1xuICAgICAgICAgICAgdGhpcy5wcmV2c2hvd3JlY29yZGNvdW50ID0gdGhpcy5zaG93cmVjb3JkY291bnQ7XG4gICAgICAgICAgICB0aGlzLmlzRGlzYWJsZUxhc3QgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVDb3VudCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNob3dyZWNvcmRjb3VudCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gSWYgbnVtYmVyIG9mIHJlY29yZHMgaW4gY3VycmVudCBwYWdlIGlzIGxlc3MgdGhhbiB0aGUgbWF4IHJlY29yZHMgc2l6ZSwgdGhpcyBpcyB0aGUgbGFzdCBwYWdlLiBTbyBkaXNhYmxlIG5leHQgYnV0dG9uLlxuICAgICAgICAgICAgaWYgKG51bWJlck9mRWxlbWVudHMgPCBzaXplKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVOZXh0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlQ291bnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2hvd3JlY29yZGNvdW50ID0gdGhpcy5wcmV2c2hvd3JlY29yZGNvdW50IHx8IHRoaXMuc2hvd3JlY29yZGNvdW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBkaXNhYmxlIG5hdmlnYXRpb24gYmFzZWQgb24gdGhlIGN1cnJlbnQgYW5kIHRvdGFsIHBhZ2VzLiovXG4gICAgZGlzYWJsZU5hdmlnYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IGlzQ3VycmVudFBhZ2VGaXJzdCA9ICh0aGlzLmRuLmN1cnJlbnRQYWdlID09PSAxKSxcbiAgICAgICAgICAgIGlzQ3VycmVudFBhZ2VMYXN0ID0gKHRoaXMuZG4uY3VycmVudFBhZ2UgPT09IHRoaXMucGFnZUNvdW50KTtcbiAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24/Lm5leHQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNhYmxlRmlyc3QgPSB0aGlzLmlzRGlzYWJsZVByZXZpb3VzID0gaXNDdXJyZW50UGFnZUZpcnN0O1xuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVOZXh0ID0gdGhpcy5pc0Rpc2FibGVMYXN0ID0gaXNDdXJyZW50UGFnZUxhc3Q7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBXTVMtMTg4Njc6IEluIGNhc2Ugb2Ygc2VydmVyIHNpZGUgcGFnaW5hdGlvbiwgZm9yIHBhZ2VyIHR5cGUgcGFnaW5hdGlvbiBkZXBlbmQgb24gcHJldiBhbmQgbmV4dCBmbGFncyB3aGljaCBhcmUgc2V0IGJ5IGRldmVsb3BlclxuICAgICAgICAgICAgdGhpcy5pc0Rpc2FibGVGaXJzdCA9IHRoaXMuaXNEaXNhYmxlUHJldmlvdXMgPSAhdGhpcy5wYWdpbmF0aW9uLnByZXY7XG4gICAgICAgICAgICB0aGlzLmlzRGlzYWJsZU5leHQgPSB0aGlzLmlzRGlzYWJsZUxhc3QgPSAhdGhpcy5wYWdpbmF0aW9uLm5leHQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0Rpc2FibGVDdXJyZW50ID0gaXNDdXJyZW50UGFnZUZpcnN0ICYmIGlzQ3VycmVudFBhZ2VMYXN0O1xuICAgICAgICAvLyBJbiBjYXNlIG9mIGNsaWVudCBzaWRlIHBhZ2luYXRpb24sIHdoZW4gbG9hZCBtb3JlIHJlYWNoZXMgbGFzdCBwYWdlIGhpZGUgdGhlIG9uLWRlbWFuZCBncmlkIGVsZVxuICAgICAgICBpZiAodGhpcy5kYXRhc2V0ICYmIHRoaXMuZGF0YXNldC5sZW5ndGggJiYgdGhpcy5pc0Rpc2FibGVOZXh0ICYmIHRoaXMucGFyZW50Lm9uRGVtYW5kTG9hZCAmJiB0aGlzLnBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5jYWxsRGF0YUdyaWRNZXRob2QoJ2hpZGVMb2FkaW5nSW5kaWNhdG9yJywgdGhpcy5pc0Rpc2FibGVOZXh0LCB0aGlzLnBhcmVudC5pbmZTY3JvbGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgdmFyaWFibGUgYm91bmQgdG8gdGhlIGRhdGEtbmF2aWdhdG9yIGhhcyBwYWdpbmcuKi9cbiAgICBpc0RhdGFTb3VyY2VIYXNQYWdpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2UgJiYgdGhpcy5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfUEFHRUFCTEUpO1xuICAgIH1cblxuICAgIC8vIFNldCB0aGUgcmVzdWx0IGZvciBjbGllbnQgc2lkZSBwYWdpbmF0aW9uXG4gICAgc2V0Tm9uUGFnZWFibGVEYXRhKG5ld1ZhbCkge1xuICAgICAgICBsZXQgZGF0YVNpemUsXG4gICAgICAgICAgICBtYXhSZXN1bHRzLFxuICAgICAgICAgICAgY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBzdGFydEluZGV4O1xuICAgICAgICBkYXRhU2l6ZSA9IGlzQXJyYXkobmV3VmFsKSA/IG5ld1ZhbC5sZW5ndGggOiAoaXNFbXB0eShuZXdWYWwpID8gMCA6IDEpO1xuICAgICAgICBtYXhSZXN1bHRzID0gKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubWF4UmVzdWx0cykgfHwgZGF0YVNpemU7XG5cbiAgICAgICAgLy8gRm9yIHN0YXRpYyB2YXJpYWJsZSwga2VlcCB0aGUgY3VycmVudCBwYWdlLiBGb3Igb3RoZXIgdmFyaWFibGVzIHdpdGhvdXQgcGFnaW5hdGlvbiByZXNldCB0aGUgcGFnZSB0byAxXG4gICAgICAgIC8vIEZpeCBmb3IgW1dNUy0yMzI2M106IGdyaWRPcHRpb25zLmlzTmV4dFBhZ2VEYXRhIGZsYWcgaXMgZmFsc2Ugd2hlbiBkYXRhc2V0IGlzIGNoYW5nZWQgZnJvbSBzY3JpcHQsIHNvIHNldHRpbmcgY3VycmVudCBwYWdlIHRvIDFcbiAgICAgICAgaWYgKHRoaXMuZGF0YXNvdXJjZSAmJiAodGhpcy5kYXRhc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSB8fCAodGhpcy5wYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJyAmJiAodGhpcy5wYXJlbnQuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpICYmIChnZXQodGhpcy5wYXJlbnQsICdncmlkT3B0aW9ucy5sYXN0QWN0aW9uUGVyZm9ybWVkJykgPT09IHRoaXMucGFyZW50LmdyaWRPcHRpb25zLkFDVElPTlMuREFUQVNFVF9VUERBVEUgfHwgIWdldCh0aGlzLnBhcmVudCwgJ2dyaWRPcHRpb25zLmlzTmV4dFBhZ2VEYXRhJykpKSkpKSB7XG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IHRoaXMuZG4uY3VycmVudFBhZ2UgfHwgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFBhZ2luZ1ZhbHVlcyhkYXRhU2l6ZSwgbWF4UmVzdWx0cywgY3VycmVudFBhZ2UpO1xuICAgICAgICB0aGlzLmRpc2FibGVOYXZpZ2F0aW9uKCk7XG5cbiAgICAgICAgc3RhcnRJbmRleCA9ICh0aGlzLmRuLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLm1heFJlc3VsdHM7XG4gICAgICAgIHRoaXMuc2V0UmVzdWx0KGlzQXJyYXkobmV3VmFsKSA/IG5ld1ZhbC5zbGljZShzdGFydEluZGV4LCBzdGFydEluZGV4ICsgdGhpcy5tYXhSZXN1bHRzKSA6IG5ld1ZhbCk7XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBzZXQgdGhlIHZhbHVlcyBuZWVkZWQgZm9yIHBhZ2luYXRpb24qL1xuICAgIHByaXZhdGUgc2V0UGFnaW5nVmFsdWVzKG5ld1ZhbCkge1xuICAgICAgICBsZXQgZGF0YVNpemUsXG4gICAgICAgICAgICBtYXhSZXN1bHRzLFxuICAgICAgICAgICAgY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBkYXRhU291cmNlO1xuICAgICAgICBsZXQgdmFyaWFibGVPcHRpb25zOiBhbnkgPSB7fTtcbiAgICAgICAgLy8gU3RvcmUgdGhlIGRhdGEgaW4gX19mdWxsRGF0YS4gVGhpcyBpcyB1c2VkIGZvciBjbGllbnQgc2lkZSBzZWFyY2hpbmcgd2l0dmFoIG91dCBtb2RpZnlpbmcgdGhlIGFjdHVhbCBkYXRhc2V0LlxuICAgICAgICB0aGlzLl9fZnVsbERhdGEgPSBuZXdWYWw7XG4gICAgICAgIC8qQ2hlY2sgZm9yIHNhbml0eSovXG4gICAgICAgIGlmICh0aGlzLmJpbmRkYXRhc2V0KSB7XG4gICAgICAgICAgICBkYXRhU291cmNlID0gdGhpcy5kYXRhc291cmNlIHx8IHt9O1xuICAgICAgICAgICAgdmFyaWFibGVPcHRpb25zID0gZGF0YVNvdXJjZS5fb3B0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgIC8qQ2hlY2sgZm9yIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgZGF0YSBzZXQqL1xuICAgICAgICAgICAgaWYgKG5ld1ZhbCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzRGF0YVNvdXJjZUhhc1BhZ2luZygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHRoaXMuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkdFVF9QQUdJTkdfT1BUSU9OUykgfHwge307XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIFwiZmlsdGVyRmllbGRzXCIgYW5kIFwic29ydE9wdGlvbnNcIiBoYXZlIGJlZW4gc2V0LCB0aGVuIHNldCB0aGVtIHNvIHRoYXQgdGhlIGZpbHRlcnMgY2FuIGJlIHJldGFpbmVkIHdoaWxlIGZldGNoaW5nIGRhdGEgdXBvbiBwYWdlIG5hdmlnYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyRmllbGRzID0gdmFyaWFibGVPcHRpb25zLmZpbHRlckZpZWxkcyB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpY2FsT3AgPSB2YXJpYWJsZU9wdGlvbnMubG9naWNhbE9wIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNvcnRPcHRpb25zID0gdmFyaWFibGVPcHRpb25zLm9yZGVyQnkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FycmF5KHRoaXMucGFnaW5hdGlvbi5zb3J0KSA/IGdldE9yZGVyQnlFeHByKHRoaXMucGFnaW5hdGlvbi5zb3J0KSA6ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YVNpemUgPSB0aGlzLnBhZ2luYXRpb24udG90YWxFbGVtZW50cztcbiAgICAgICAgICAgICAgICAgICAgbWF4UmVzdWx0cyA9IHRoaXMucGFnaW5hdGlvbi5zaXplO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYWdpbmF0aW9uLm51bWJlck9mRWxlbWVudHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNEZWZpbmVkKHRoaXMucGFnaW5hdGlvbi5udW1iZXIpKSB7IC8vIG51bWJlciBpcyBwYWdlIG51bWJlciByZWNlaXZlZCBmcm9tIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gdGhpcy5wYWdpbmF0aW9uLm51bWJlciArIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZSA9IHRoaXMuZG4uY3VycmVudFBhZ2UgfHwgMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvKiBTZW5kaW5nIHBhZ2VDb3VudCB1bmRlZmluZWQgdG8gY2FsY3VsYXRlIGl0IGFnYWluIGZvciBxdWVyeS4qL1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRQYWdpbmdWYWx1ZXMoZGF0YVNpemUsIG1heFJlc3VsdHMsIGN1cnJlbnRQYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlTmF2aWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrRGF0YVNpemUoZGF0YVNpemUsIHRoaXMucGFnaW5hdGlvbi5udW1iZXJPZkVsZW1lbnRzLCB0aGlzLnBhZ2luYXRpb24uc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVzdWx0KG5ld1ZhbCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaXNTdHJpbmcobmV3VmFsKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldE5vblBhZ2VhYmxlRGF0YShuZXdWYWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSZXN1bHQobmV3VmFsKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0UGFnZU5hdmlnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24gPT09ICdCYXNpYycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRBcmlhRm9yQmFzaWNOYXZpZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobmV3VmFsICYmICFpc1N0cmluZyhuZXdWYWwpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXROb25QYWdlYWJsZURhdGEobmV3VmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgZmlyc3QgcGFnZSovXG4gICAgaXNGaXJzdFBhZ2UoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kbi5jdXJyZW50UGFnZSA9PT0gMSB8fCAhdGhpcy5kbi5jdXJyZW50UGFnZSk7XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgY3VycmVudCBwYWdlIGlzIHRoZSBsYXN0IHBhZ2UqL1xuICAgIGlzTGFzdFBhZ2UoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kbi5jdXJyZW50UGFnZSA9PT0gdGhpcy5wYWdlQ291bnQpO1xuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gbmF2aWdhdGUgdG8gdGhlIGxhc3QgcGFnZSovXG4gICAgZ29Ub0xhc3RQYWdlKGlzUmVmcmVzaCwgZXZlbnQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xhc3RQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VDb3VudDtcbiAgICAgICAgICAgIHRoaXMuZ29Ub1BhZ2UoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc1JlZnJlc2gpIHtcbiAgICAgICAgICAgIHRoaXMuZ29Ub1BhZ2UoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qRnVuY3Rpb24gdG8gbmF2aWdhdGUgdG8gdGhlIGZpcnN0IHBhZ2UqL1xuICAgIGdvVG9GaXJzdFBhZ2UoaXNSZWZyZXNoLCBldmVudCwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRmlyc3RQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgPSAxO1xuICAgICAgICAgICAgdGhpcy5nb1RvUGFnZShldmVudCwgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2UgaWYgKGlzUmVmcmVzaCkge1xuICAgICAgICAgICAgdGhpcy5nb1RvUGFnZShldmVudCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBuYXZpZ2F0ZSB0byB0aGUgY3VycmVudCBwYWdlKi9cbiAgICBnb1RvUGFnZShldmVudD8sIGNhbGxiYWNrPykge1xuICAgICAgICB0aGlzLmZpcnN0Um93ID0gKHRoaXMuZG4uY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMubWF4UmVzdWx0cztcbiAgICAgICAgY29uc3QgbW9kZSA9IHRoaXMucGFyZW50LnN0YXRlUGVyc2lzdGVuY2UuY29tcHV0ZU1vZGUodGhpcy5zdGF0ZWhhbmRsZXIpO1xuICAgICAgICBpZiAobW9kZSAmJiBtb2RlLnRvTG93ZXJDYXNlKCkgIT09ICdub25lJyAmJiAodGhpcy5wYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJyB8fCB0aGlzLnBhcmVudC53aWRnZXRUeXBlID09PSAnd20tbGlzdCcpKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5fc2VsZWN0ZWRJdGVtc0V4aXN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmlyc3RQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudC5zdGF0ZVBlcnNpc3RlbmNlLnJlbW92ZVdpZGdldFN0YXRlKHRoaXMucGFyZW50LCAncGFnaW5hdGlvbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodW5zdXBwb3J0ZWRTdGF0ZVBlcnNpc3RlbmNlVHlwZXMuaW5kZXhPZih0aGlzLnBhcmVudC5uYXZpZ2F0aW9uKSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQuc3RhdGVQZXJzaXN0ZW5jZS5zZXRXaWRnZXRTdGF0ZSh0aGlzLnBhcmVudCwge3BhZ2luYXRpb246IHRoaXMuZG4uY3VycmVudFBhZ2V9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGFyZW50LndpZGdldFR5cGUgPT09ICd3bS1saXN0JyB8fHRoaXMucGFyZW50LndpZGdldFR5cGUgPT09ICd3bS10YWJsZScgKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignUmV0YWluIFN0YXRlIGhhbmRsaW5nIG9uIFdpZGdldCAnICsgdGhpcy5wYXJlbnQubmFtZSArICcgaXMgbm90IHN1cHBvcnRlZCBmb3IgY3VycmVudCBwYWdpbmF0aW9uIHR5cGUuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wYXJlbnQuY3VycmVudHBhZ2UgPSB0aGlzLmRuLmN1cnJlbnRQYWdlO1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQubmF0aXZlRWxlbWVudD8uc2V0QXR0cmlidXRlKCdjdXJyZW50cGFnZScsIHRoaXMuZG4uY3VycmVudFBhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNhbGwgZ2V0UGFnZURhdGEgYWZ0ZXIgY2hlY2tpbmcgc3RhdGUgY29uZmlnIHNvIHRoYXQgU3RhdGljIFZhcmlhYmxlcyBjYW4gdXNlIGl0XG4gICAgICAgIHRoaXMuZ2V0UGFnZURhdGEoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICAvKkZ1bmN0aW9uIHRvIGJlIGludm9rZWQgYWZ0ZXIgdGhlIGRhdGEgb2YgdGhlIHBhZ2UgaGFzIGJlZW4gZmV0Y2hlZC4qL1xuICAgIG9uUGFnZURhdGFSZWFkeShldmVudCwgZGF0YSwgY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlTmF2aWdhdGlvbigpO1xuICAgICAgICB0aGlzLmludm9rZVNldFJlY29yZChldmVudCwgZGF0YSk7XG4gICAgICAgIHRyaWdnZXJGbihjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgLypGdW5jdGlvbiB0byBnZXQgZGF0YSBmb3IgdGhlIGN1cnJlbnQgcGFnZSovXG4gICAgZ2V0UGFnZURhdGEoZXZlbnQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBkYXRhLFxuICAgICAgICAgICAgc3RhcnRJbmRleDtcblxuICAgICAgICBpZiAodGhpcy5pc0RhdGFTb3VyY2VIYXNQYWdpbmcoKSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJbiB0YWJsZSBjb21wb25lbnQsIGluIGNhc2Ugb2Ygb24gZGVtYW5kIGFuZCBzY3JvbGwgcGFnaW5hdGlvblxuICAgICAgICAgICAgICogV2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiBkYXRhIGl0ZW0gd2hpY2ggaXMgbm90IGluIGN1cnJlbnQgcGFnZVxuICAgICAgICAgICAgICogRmV0Y2ggdGhlIGl0ZW1zIG9mIHRoZSBwYWdlIHdoZXJlIHRoZSBjaGFuZ2UgaXMgbWFkZVxuICAgICAgICAgICAgICogKi9cbiAgICAgICAgICAgIGxldCBwYWdlSW5kZXggPSB0aGlzLmRuLmN1cnJlbnRQYWdlO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNFZGl0Tm90SW5DdXJyZW50UGFnZSgpICYmIHRoaXMucGFyZW50LmdyaWRPcHRpb25zLmxhc3RBY3Rpb25QZXJmb3JtZWQgIT09ICdkZWxldGUnKSB7XG4gICAgICAgICAgICAgICAgcGFnZUluZGV4ID0gdGhpcy5wYXJlbnQuYWN0aW9uUm93UGFnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGF0YXNvdXJjZS5leGVjdXRlKERhdGFTb3VyY2UuT3BlcmF0aW9uLkxJU1RfUkVDT1JEUywge1xuICAgICAgICAgICAgICAgICdwYWdlJzogcGFnZUluZGV4LFxuICAgICAgICAgICAgICAgICdmaWx0ZXJGaWVsZHMnOiB0aGlzLmZpbHRlckZpZWxkcyxcbiAgICAgICAgICAgICAgICAnb3JkZXJCeSc6IHRoaXMuc29ydE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgJ2xvZ2ljYWxPcCc6IHRoaXMubG9naWNhbE9wLFxuICAgICAgICAgICAgICAgICdtYXRjaE1vZGUnOiAnYW55d2hlcmVpZ25vcmVjYXNlJ1xuICAgICAgICAgICAgfSkudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblBhZ2VEYXRhUmVhZHkoZXZlbnQsIHJlc3BvbnNlICYmIHJlc3BvbnNlLmRhdGEsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSWYgZXJyb3IgaXMgdW5kZWZpbmVkLCBkbyBub3Qgc2hvdyBhbnkgbWVzc2FnZSBhcyB0aGlzIG1heSBiZSBkaXNjYXJkZWQgcmVxdWVzdFxuICAgICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgRXJyb3JcbiAgICAgICAgICAgICAgICAgICAgLy8gd21Ub2FzdGVyLnNob3coJ2Vycm9yJywgJ0VSUk9SJywgJ1VuYWJsZSB0byBnZXQgZGF0YSBvZiBwYWdlIC0nICsgdGhpcy5kbi5jdXJyZW50UGFnZSArICc6JyArIGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRWRpdE5vdEluQ3VycmVudFBhZ2UoKSkge1xuICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggPSAodGhpcy5wYXJlbnQuYWN0aW9uUm93UGFnZSAtIDEpICogdGhpcy5tYXhSZXN1bHRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gKHRoaXMuZG4uY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMubWF4UmVzdWx0cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEgPSBpc0FycmF5KHRoaXMuX19mdWxsRGF0YSkgPyB0aGlzLl9fZnVsbERhdGEuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRleCArIHRoaXMubWF4UmVzdWx0cykgOiB0aGlzLl9fZnVsbERhdGE7XG4gICAgICAgICAgICB0aGlzLnNldFJlc3VsdChkYXRhKTtcbiAgICAgICAgICAgIHRoaXMub25QYWdlRGF0YVJlYWR5KGV2ZW50LCBkYXRhLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKlxuICAgIEZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSBlZGl0IGFjdGlvbiBpcyBwZXJmb3JtZWQgb24gdGhlIHByZXZpb3VzIHBhZ2UgZGF0YSBvZiB0aGUgdGFibGVcbiAgICAqL1xuICAgIGlzRWRpdE5vdEluQ3VycmVudFBhZ2UoKSB7XG4gICAgICAgIGNvbnN0IHBhZ2VJbmRleCA9IHRoaXMuZG4uY3VycmVudFBhZ2U7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudC53aWRnZXRUeXBlID09PSAnd20tdGFibGUnICYmIHBhZ2VJbmRleCA9PT0gdGhpcy5wYXJlbnQuY3VycmVudFBhZ2UgJiZcbiAgICAgICAgICAgIHRoaXMucGFyZW50LmFjdGlvblJvd1BhZ2UgJiYgdGhpcy5wYXJlbnQuYWN0aW9uUm93UGFnZSA8IHBhZ2VJbmRleDtcbiAgICB9XG5cbiAgICBpbnZva2VTZXRSZWNvcmQoZXZlbnQsIGRhdGEpIHtcbiAgICAgICAgLy8gVHJpZ2dlciB0aGUgZXZlbnQgaGFuZGxlciBpZiBleGlzdHMuXG4gICAgICAgIGNvbnN0IHBhZ2VJbmZvID0ge1xuICAgICAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuZG4uY3VycmVudFBhZ2UsXG4gICAgICAgICAgICBzaXplOiB0aGlzLm1heFJlc3VsdHMsXG4gICAgICAgICAgICB0b3RhbEVsZW1lbnRzOiB0aGlzLmRhdGFTaXplLFxuICAgICAgICAgICAgdG90YWxQYWdlczogdGhpcy5wYWdlQ291bnRcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5pbnZva2VFdmVudENhbGxiYWNrKCdzZXRyZWNvcmQnLCB7JGV2ZW50OiBldmVudCwgJGRhdGE6IGRhdGEsICRpbmRleDogdGhpcy5kbi5jdXJyZW50UGFnZSwgcGFnZUluZm8sIGRhdGF9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2V0cmVjb3JkJywgeyRldmVudDogZXZlbnQsICRkYXRhOiBkYXRhLCAkaW5kZXg6IHRoaXMuZG4uY3VycmVudFBhZ2UsIHBhZ2VJbmZvLCBkYXRhfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKkZ1bmN0aW9uIHRvIHZhbGlkYXRlIHRoZSBwYWdlIGlucHV0LlxuICAgICBJbiBjYXNlIG9mIGludmFsaWQgaW5wdXQsIG5hdmlnYXRlIHRvIHRoZSBhcHByb3ByaWF0ZSBwYWdlOyBhbHNvIHJldHVybiBmYWxzZS5cbiAgICAgSW4gY2FzZSBvZiB2YWxpZCBpbnB1dCwgcmV0dXJuIHRydWUuKi9cbiAgICB2YWxpZGF0ZUN1cnJlbnRQYWdlKGV2ZW50LCBjYWxsYmFjaz8pIHtcbiAgICAgICAgLypJZiB0aGUgdmFsdWUgZW50ZXJlZCBpcyBncmVhdGVyIHRoYW4gdGhlIGxhc3QgcGFnZSBudW1iZXIgb3IgaW52YWxpZCB2YWx1ZSwgdGhlbiBoaWdobGlnaHRpbmcgdGhlIGZpZWxkIHNob3dpbmcgZXJyb3IuKi9cbiAgICAgICAgaWYgKGV2ZW50ICYmIChpc05hTih0aGlzLmRuLmN1cnJlbnRQYWdlKSB8fCB0aGlzLmRuLmN1cnJlbnRQYWdlIDw9IDAgfHwgKHRoaXMucGFnZUNvdW50ICYmICh0aGlzLmRuLmN1cnJlbnRQYWdlID4gdGhpcy5wYWdlQ291bnQgfHwgaXNOdWxsKHRoaXMuZG4uY3VycmVudFBhZ2UpKSkpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kbi5jdXJyZW50UGFnZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kbi5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZG4uY3VycmVudFBhZ2UgPiB0aGlzLnBhZ2VDb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2VDb3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKGV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0ZUN1cnJlbnRQYWdlKGV2ZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ29Ub1BhZ2UoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXRFbGUgPSAkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnYScpO1xuICAgICAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0tleUUnKSB7XG4gICAgICAgICAgICB0YXJnZXRFbGUuYWRkQ2xhc3MoJ25nLWludmFsaWQnKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXRFbGUucmVtb3ZlQ2xhc3MoJ25nLWludmFsaWQnKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcGFnZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgICAgIHRoaXMuX2RlYm91bmNlZFBhZ2VDaGFuZ2VkKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKkZ1bmN0aW9uIHRvIG5hdmlnYXRlIHRvIHRoZSByZXNwZWN0aXZlIHBhZ2VzLiovXG4gICAgbmF2aWdhdGVQYWdlKGluZGV4LCBldmVudCwgaXNSZWZyZXNoLCBjYWxsYmFjaykge1xuICAgICAgICAvLyB3aGVuIG5hdmlnYXRlZCB0byBuZXh0IHBhZ2UgdHVybiBvbiB0aGUgaXNEYXRhTG9hZGluZyBmbGFnIHRvIHNob3cgdGhlIGxvYWRpbmcgaW5kaWNhdG9yXG4gICAgICAgIGlmIChpc0RlZmluZWQodGhpcy5wYXJlbnQuaXNEYXRhTG9hZGluZykgJiYgIXRoaXMuaXNEaXNhYmxlTmV4dCkge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQuaXNEYXRhTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAvLyBJbiBjYXNlIG9mIGluZmluaXRlIHNjcm9sbCBjYWxsaW5nIHRoZSBzaG93TG9hZGluZ0luZGljYXRvciBtZXRob2QgdG8gdXBkYXRlIHRoZSBsb2FkaW5nIG1lc3NhZ2UgaW1tZWRpYXRlbHkgd2hlbiBuYXZpZ2F0ZWQgdG8gbmV4dCBwYWdlXG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQuaW5mU2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQudmFyaWFibGVJbmZsaWdodCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnQuY2FsbERhdGFHcmlkTWV0aG9kKCdzaG93TG9hZGluZ0luZGljYXRvcicsIHRoaXMucGFyZW50LmxvYWRpbmdkYXRhbXNnLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyByZXNldCB0aGUgbGFzdCBhY3Rpb24gcGVyZm9ybWVkIHRvIFwic2Nyb2xsXCIgYW5kIGlzRGF0YXNldFVwZGF0ZWQgdG8gZmFsc2VcbiAgICAgICAgaWYgKHRoaXMucGFyZW50LndpZGdldFR5cGUgPT09ICd3bS10YWJsZScgJiYgdGhpcy5wYXJlbnQuZ3JpZE9wdGlvbnMuaXNOYXZUeXBlU2Nyb2xsT3JPbmRlbWFuZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5ncmlkT3B0aW9ucy5zZXRMYXN0QWN0aW9uUGVyZm9ybWVkKHRoaXMucGFyZW50LmdyaWRPcHRpb25zLkFDVElPTlMuREVGQVVMVCk7XG4gICAgICAgICAgICB0aGlzLnBhcmVudC5ncmlkT3B0aW9ucy5zZXRJc0RhdGFzZXRVcGRhdGVkKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3BhZ2luYXRpb25jaGFuZ2UnLCB7JGV2ZW50OiB1bmRlZmluZWQsICRpbmRleDogdGhpcy5kbi5jdXJyZW50UGFnZX0pO1xuXG4gICAgICAgIC8vIENvbnZlcnQgdGhlIGN1cnJlbnQgcGFnZSB0byBhIHZhbGlkIHBhZ2UgbnVtYmVyLlxuICAgICAgICB0aGlzLmRuLmN1cnJlbnRQYWdlID0gK3RoaXMuZG4uY3VycmVudFBhZ2U7XG5cbiAgICAgICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICAgICAgY2FzZSAnZmlyc3QnOlxuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub0ZpcnN0UGFnZShpc1JlZnJlc2gsIGV2ZW50LCBjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY2FzZSAncHJldic6XG4gICAgICAgICAgICAgICAgLypSZXR1cm4gaWYgYWxyZWFkeSBvbiB0aGUgZmlyc3QgcGFnZS4qL1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5wYWdpbmF0aW9uPy5uZXh0ICYmICh0aGlzLmlzRmlyc3RQYWdlKCkgfHwgIXRoaXMudmFsaWRhdGVDdXJyZW50UGFnZShldmVudCwgY2FsbGJhY2spKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBhZ2luYXRpb24/Lm5leHQpIHsgLy8gV01TLTE4ODY3OiBGb3Igc2VydmVyIHNpZGUgcGFnaW5hdGlvbiwgc2tpcHBpbmcgdGhlIHJlZ3VsYXIgZmxvdyBhbmQgZW5hYmxpbmcgaXNOZXh0IGZsYWcgaW4gcGFnaW5hdGlvbiBtZXRhZGF0YVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFzb3VyY2UucGFnaW5hdGlvbi5pc05leHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlLnBhZ2luYXRpb24uaXNQcmV2ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLypEZWNyZW1lbnQgdGhlIGN1cnJlbnQgcGFnZSBieSAxLiovXG4gICAgICAgICAgICAgICAgdGhpcy5kbi5jdXJyZW50UGFnZSAtPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbmV4dCc6XG4gICAgICAgICAgICAgICAgLypSZXR1cm4gaWYgYWxyZWFkeSBvbiB0aGUgbGFzdCBwYWdlLiovXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnBhZ2luYXRpb24/Lm5leHQgJiYgKHRoaXMuaXNMYXN0UGFnZSgpIHx8ICF0aGlzLnZhbGlkYXRlQ3VycmVudFBhZ2UoZXZlbnQsIGNhbGxiYWNrKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYWdpbmF0aW9uPy5uZXh0KSB7IC8vIFdNUy0xODg2NzogRm9yIHNlcnZlciBzaWRlIHBhZ2luYXRpb24sIHNraXBwaW5nIHRoZSByZWd1bGFyIGZsb3cgYW5kIGVuYWJsaW5nIGlzUHJldiBmbGFnIGluIHBhZ2luYXRpb24gbWV0YWRhdGFcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlLnBhZ2luYXRpb24uaXNOZXh0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlLnBhZ2luYXRpb24uaXNQcmV2ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8qSW5jcmVtZW50IHRoZSBjdXJyZW50IHBhZ2UgYnkgMS4qL1xuICAgICAgICAgICAgICAgIHRoaXMuZG4uY3VycmVudFBhZ2UgKz0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub0xhc3RQYWdlKGlzUmVmcmVzaCwgZXZlbnQsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgLypOYXZpZ2F0ZSB0byB0aGUgY3VycmVudCBwYWdlLiovXG4gICAgICAgIHRoaXMuZ29Ub1BhZ2UoZXZlbnQsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBzZXRCaW5kRGF0YVNldChiaW5kZGF0YXNldCwgcGFyZW50LCBkYXRhU291cmNlLCBkYXRhc2V0PywgYmluZGRhdGFzb3VyY2U/LCBkYXRhc2V0Qm91bmRFeHByPywgc3RhdGVoYW5kbGVyPykge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IGJpbmRkYXRhc2V0LnNwbGl0KCcuJyk7XG4gICAgICAgIGxldCBiaW5kUGFnaW5nT3B0aW9ucztcbiAgICAgICAgdGhpcy5zdGF0ZWhhbmRsZXIgPSBzdGF0ZWhhbmRsZXI7XG4gICAgICAgIGlmIChwYXJ0c1swXSA9PT0gJ1ZhcmlhYmxlcycgfHwgcGFydHNbMF0gPT09ICdXaWRnZXRzJykge1xuICAgICAgICAgICAgYmluZFBhZ2luZ09wdGlvbnMgPSBgJHtwYXJ0c1swXX0uJHtwYXJ0c1sxXX0ucGFnaW5hdGlvbmA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFiaW5kZGF0YXNvdXJjZSAmJiBkYXRhc2V0ICYmICFkYXRhc2V0Qm91bmRFeHByKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXQgPSBkYXRhc2V0O1xuICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VkQXBwbHlEYXRhc2V0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iaW5kZGF0YXNldCA9IGJpbmRkYXRhc2V0O1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIHdhdGNoaW5nIGZvciBkYXRhc2V0IGNoYW5nZXMgZXZlbiB3aGVuIGRhdGFzZXQgaXMgYm91bmQgdG8gXCJpdGVtLlwiIChpLmUuIGJ5IGNoZWNraW5nIGZvciBkYXRhc2V0Qm91bmRFeHByKVxuICAgICAgICAgICAgLy8gaXRlbSBjb250ZXh0IGlzIHBhc3NlZCBhcyBkYXRhU291cmNlIGhlcmVcbiAgICAgICAgICAgIC8vIFtUb2RvLUNTUF06IGNoZWNrIGlmIHNhbWUgZXhwciBmbiBpcyBnZW5lcmF0ZWQgYnkgcGFyZW50IHdpZGdldCAobGlzdCwgdGFibGUpXG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgICAgICR3YXRjaChcbiAgICAgICAgICAgICAgICAgICAgYmluZGRhdGFzZXQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgZGF0YXNldEJvdW5kRXhwciA/IGRhdGFTb3VyY2UgOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgbnYgPT4gIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YXNldCA9IG52O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYm91bmNlZEFwcGx5RGF0YXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdNUy0xOTI4NTogU2V0dGluZyBkYXRhc2V0IG9uIHByb3h5IG9ubHkgdG8gaGFuZGxlIHByb3BlcnR5Y2hhbmdlIGhhbmRsZXIgY2FsbCBmb3IgdW5kZWZpbmVkIGNhc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXQuZGF0YXNldCA9IG52O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gUmVnaXN0ZXIgYSB3YXRjaCBvbiBwYWdpbmcgb3B0aW9ucy4gQ2FsbCBkYXRhc2V0IHByb3BlcnR5IGNoYW5nZSBoYW5kbGVyIGV2ZW4gaWYgcGFnaW5nIG9wdGlvbnMgY2hhbmdlcyB0byByZWZsZWN0IHBhZ2luYXRpb24gc3RhdGVcbiAgICAgICAgICAgIGlmICghYmluZFBhZ2luZ09wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL1tUb2RvLUNTUF06IGVpdGhlciBnZW5lcmF0ZSB3YXRjaCBleHByIGZuIG9yIHJlZ2lzdGVyIGFuIGV2ZW50IGZyb20gdGhlIGRhdGFzb3VyY2UgaXRzZWxmXG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgICAgICR3YXRjaChcbiAgICAgICAgICAgICAgICAgICAgYmluZFBhZ2luZ09wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHRoaXMuX2RlYm91bmNlZEFwcGx5RGF0YXNldCgpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGFwcGx5IGRhdGFzb3VyY2Ugb25seSB3aGVuIGRhdGFzZXQgaXMgbm90IGJvdW5kIHRvIFwiaXRlbS5GSUVMRFwiXG4gICAgICAgIGlmICghZGF0YXNldEJvdW5kRXhwcikge1xuICAgICAgICAgICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldCB0aGUgZGF0YXNvdXJjZSBvZiBwYWdpbmF0aW9uIGZyb20gdGhlIHBhcmVudCB3aWRnZXRcbiAgICBzZXREYXRhU291cmNlKGRhdGFTb3VyY2UpIHtcbiAgICAgICAgdGhpcy5kYXRhc291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudiwgb3YpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2RhdGFzZXQnKSB7XG4gICAgICAgICAgICBsZXQgZGF0YTtcbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5vbkRhdGFOYXZpZ2F0b3JEYXRhU2V0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IHRoaXMucGFyZW50Lm9uRGF0YU5hdmlnYXRvckRhdGFTZXRDaGFuZ2UobnYpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gbnY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTZXQgbGFzdCBhY3Rpb24gcGVyZm9ybWVkIHRvIFwiZGF0YXNldF91cGRhdGVcIiB3aGVuZXZlciBkYXRhc2V0IGlzIGNoYW5nZWQgaW4gdGFibGUgY29tcG9uZW50XG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQud2lkZ2V0VHlwZSA9PT0gJ3dtLXRhYmxlJykge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Ll90cmlnZ2VyZWRCeVVzZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdoZW4gdGhlIGRhdGFzZXQgaXMgbm90IGluIGN1cnJlbnQgcGFnZSwgYnV0IGluIHByZXZpb3VzIG9uZXMgZGlyZWN0bHkgc2V0IHRoZSByZXN1bHQgd2l0aG91dCBzZXR0aW5nIHBhZ2UgdmFsdWVzXG4gICAgICAgICAgICBpZiAodGhpcy5pc0VkaXROb3RJbkN1cnJlbnRQYWdlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFJlc3VsdChkYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdpbmdWYWx1ZXMoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbmF2aWdhdGlvbicpIHtcbiAgICAgICAgICAgIGlmIChudiA9PT0gJ0FkdmFuY2VkJykgeyAvLyBTdXBwb3J0IGZvciBvbGRlciBwcm9qZWN0cyB3aGVyZSBuYXZpZ2F0aW9uIHR5cGUgd2FzIGFkdmFuY2VkIGluc3RlYWQgb2YgY2xhc2ljXG4gICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uID0gJ0NsYXNzaWMnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVOYXZTaXplKCk7XG4gICAgICAgICAgICB0aGlzLm5hdmNvbnRyb2xzID0gbnY7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnbmF2aWdhdGlvbnNpemUnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5hdlNpemUoKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICduYXZpZ2F0aW9uYWxpZ24nKSB7XG4gICAgICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGB0ZXh0LSR7bnZ9YCwgYHRleHQtJHtvdn1gKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdtYXhSZXN1bHRzJykge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdpbmdWYWx1ZXModGhpcy5kYXRhc2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBwYWdpbmF0aW9uRWxlbSA9ICB0aGlzLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHBhZ2luYXRpb25FbGVtLm9uY2xpY2sgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIlxuPHVsIGNsYXNzPVwicGFnaW5hdGlvbiBhZHZhbmNlZCB7e25hdmlnYXRpb25DbGFzc319XCIgKm5nSWY9XCJuYXZjb250cm9scyA9PT0gJ0NsYXNzaWMnXCI+XG4gICAgPGxpIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmlzRGlzYWJsZUZpcnN0fVwiPlxuICAgICAgICA8YSBbdGl0bGVdPVwiYXBwTG9jYWxlLkxBQkVMX0ZJUlNUXCIgbmFtZT1cImZpcnN0XCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImlzRGlzYWJsZUZpcnN0XCJcbiAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUGFnZSgnZmlyc3QnLCAkZXZlbnQpXCI+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj48aSBjbGFzcz1cIndpIHdpLWZpcnN0LXBhZ2VcIj48L2k+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+R28gdG8gZmlyc3QgcGFnZSB7eyBpc0Rpc2FibGVGaXJzdCA/ICcgLCBEaXNhYmxlZCcgOiAnJ319PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6aXNEaXNhYmxlUHJldmlvdXN9XCI+XG4gICAgICAgIDxhIFt0aXRsZV09XCJhcHBMb2NhbGUuTEFCRUxfUFJFVklPVVNcIiBuYW1lPVwicHJldlwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNEaXNhYmxlUHJldmlvdXNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUGFnZSgncHJldicsICRldmVudClcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxpIGNsYXNzPVwid2kgd2ktY2hldnJvbi1sZWZ0XCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkdvIHRvIHByZXZpb3VzIHBhZ2Uge3sgaXNEaXNhYmxlUHJldmlvdXMgPyAnLCBEaXNhYmxlZCcgOiAnJ319PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJwYWdlY291bnQgZGlzYWJsZWRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBhcmlhLWxhYmVsPVwiQ2hhbmdlIFBhZ2UgTnVtYmVyXCI+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJkbi5jdXJyZW50UGFnZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1Nob3dpbmcgUGFnZSAnICsgZG4uY3VycmVudFBhZ2UgKyAnIG9mICcgKyBwYWdlQ291bnRcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiIChjaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIi8+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImRpc2FibGVkXCI+XG4gICAgICAgIDxhIFtoaWRkZW5dPVwiaXNEaXNhYmxlQ291bnRcIj4gLyB7e3BhZ2VDb3VudH19PC9hPlxuICAgIDwvbGk+XG4gICAgPGxpIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmlzRGlzYWJsZU5leHR9XCI+XG4gICAgICAgIDxhIFt0aXRsZV09XCJhcHBMb2NhbGUuTEFCRUxfTkVYVFwiIG5hbWU9XCJuZXh0XCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImlzRGlzYWJsZU5leHRcIlxuICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVQYWdlKCduZXh0JywgJGV2ZW50KVwiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PGkgY2xhc3M9XCJ3aSB3aS1jaGV2cm9uLXJpZ2h0XCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkdvIHRvIG5leHQgcGFnZSB7eyBpc0Rpc2FibGVOZXh0ID8gJyAsIERpc2FibGVkJyA6ICcnfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzppc0Rpc2FibGVMYXN0fVwiPlxuICAgICAgICA8YSBbdGl0bGVdPVwiYXBwTG9jYWxlLkxBQkVMX0xBU1RcIiBuYW1lPVwibGFzdFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0Rpc2FibGVMYXN0XCJcbiAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUGFnZSgnbGFzdCcsICRldmVudClcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxpIGNsYXNzPVwid2kgd2ktbGFzdC1wYWdlXCI+PC9pPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkdvIHRvIGxhc3QgcGFnZSB7eyBpc0Rpc2FibGVMYXN0ID8gJyAsIERpc2FibGVkJyA6ICcnfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICA8L2xpPlxuICAgIDxsaSAqbmdJZj1cInNob3dyZWNvcmRjb3VudFwiIGNsYXNzPVwidG90YWxjb3VudCBkaXNhYmxlZFwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIHRhYmluZGV4PVwiLTFcIiBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiPnt7YXBwTG9jYWxlLkxBQkVMX1RPVEFMX1JFQ09SRFN9fToge3tkYXRhU2l6ZX19PC9hPlxuICAgIDwvbGk+XG48L3VsPlxuPHVsIGNsYXNzPVwicGFnZXIge3tuYXZpZ2F0aW9uQ2xhc3N9fVwiICpuZ0lmPVwibmF2Y29udHJvbHMgPT09ICdQYWdlcidcIj5cbiAgICA8bGkgY2xhc3M9XCJwcmV2aW91c1wiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmlzRGlzYWJsZVByZXZpb3VzfVwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIChjbGljayk9XCJuYXZpZ2F0ZVBhZ2UoJ3ByZXYnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0Rpc2FibGVQcmV2aW91c1wiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PGkgY2xhc3M9XCJ3aSB3aS1jaGV2cm9uLWxlZnRcIj48L2k+PC9zcGFuPlxuICAgICAgICAgICAge3thcHBMb2NhbGUuTEFCRUxfUFJFVklPVVN9fVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgaXNEaXNhYmxlUHJldmlvdXMgPyAnICwgRGlzYWJsZWQnIDogJyd9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwibmV4dFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmlzRGlzYWJsZU5leHR9XCI+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgKGNsaWNrKT1cIm5hdmlnYXRlUGFnZSgnbmV4dCcsICRldmVudClcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImlzRGlzYWJsZU5leHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjxpIGNsYXNzPVwid2kgd2ktY2hldnJvbi1yaWdodFwiPjwvaT48L3NwYW4+XG4gICAgICAgICAgICB7e2FwcExvY2FsZS5MQUJFTF9ORVhUfX1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnt7IGlzRGlzYWJsZU5leHQgPyAnICwgRGlzYWJsZWQnIDogJyd9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L3VsPlxuXG48cGFnaW5hdGlvbiBjbGFzcz1cInBhZ2luYXRpb24gYmFzaWNcIiBbbmdDbGFzc109XCJuYXZpZ2F0aW9uQ2xhc3NcIiAqbmdJZj1cIm5hdmNvbnRyb2xzID09PSAnQmFzaWMnXCIgcm9sZT1cIm5hdmlnYXRpb25cIlxuICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJtYXhSZXN1bHRzXCIgW3RvdGFsSXRlbXNdPVwiZGF0YVNpemVcIlxuICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cInBhZ2VDaGFuZ2VkKCRldmVudClcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6dHJ1ZX1cIiBbbmdNb2RlbF09XCJkbi5jdXJyZW50UGFnZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTaG93aW5nIFBhZ2UgJyArIGRuLmN1cnJlbnRQYWdlICsgJyBvZiAnICsgcGFnZUNvdW50ICsgJyBwYWdlcydcIlxuICAgICAgICAgICAgW2JvdW5kYXJ5TGlua3NdPVwiYm91bmRhcnlsaW5rc1wiIFttYXhTaXplXT1cIm1heHNpemVcIlxuICAgICAgICAgICAgW2RpcmVjdGlvbkxpbmtzXT1cImRpcmVjdGlvbmxpbmtzXCJcbiAgICAgICAgICAgIGZpcnN0VGV4dD1cIkZpcnRzdFwiIGxhc3RUZXh0PVwiTGFzdFwiXG4gICAgICAgICAgICBbY3VzdG9tUHJldmlvdXNUZW1wbGF0ZV09XCJwcmV2VGVtcGxhdGVcIlxuICAgICAgICAgICAgW2N1c3RvbU5leHRUZW1wbGF0ZV09XCJuZXh0VGVtcGxhdGVcIlxuICAgICAgICAgICAgW2N1c3RvbVBhZ2VUZW1wbGF0ZV09XCJwYWdlVGVtcGxhdGVcIj48L3BhZ2luYXRpb24+XG5cbjx1bCAqbmdJZj1cIm5hdmNvbnRyb2xzID09PSAnQmFzaWMnICYmIHNob3dyZWNvcmRjb3VudFwiIGNsYXNzPVwicGFnaW5hdGlvblwiPlxuICAgIDxsaSBjbGFzcz1cInRvdGFsY291bnQgZGlzYWJsZWQgYmFzaWNjb3VudFwiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIHRhYmluZGV4PVwiLTFcIiBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiPnt7YXBwTG9jYWxlLkxBQkVMX1RPVEFMX1JFQ09SRFN9fToge3tkYXRhU2l6ZX19PC9hPlxuICAgIDwvbGk+XG48L3VsPlxuXG48bmctdGVtcGxhdGUgI3BhZ2VUZW1wbGF0ZSBsZXQtcGFnZT5cbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIiBbYXR0ci5kYXRhLWlzYWNpdHZlcGFnZV09XCJwYWdlLmFjdGl2ZVwiPnt7J1BhZ2UgJ319PC9zcGFuPlxuICAgIHt7cGFnZS5udW1iZXJ9fVxuICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiICpuZ0lmPVwicGFnZS5hY3RpdmVcIj4ge3snLCBTaG93aW5nIHBhZ2UgJyArIHBhZ2UubnVtYmVyICsgJyBvZiAnICsgcGFnZUNvdW50fX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNwcmV2VGVtcGxhdGUgbGV0LWRpc2FibGVkPVwiZGlzYWJsZWRcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIiBbYXR0ci5kYXRhLWlzZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5HbyB0byBQcmV2aW91cyBwYWdlIHt7ZGlzYWJsZWQgPyAnLCBEaXNhYmxlZCcgOiAnJ319PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjbmV4dFRlbXBsYXRlIGxldC1kaXNhYmxlZD1cImRpc2FibGVkXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCIgW2F0dHIuZGF0YS1pc2Rpc2FibGVkXT1cImRpc2FibGVkXCI+R28gdG8gTmV4dCBwYWdlIHt7ZGlzYWJsZWQgPyAnLCBEaXNhYmxlZCcgOiAnJ319PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -9,7 +9,7 @@ const components = [
9
9
  PaginationComponent
10
10
  ];
11
11
  export class PaginationModule {
12
- static { this.ɵfac = function PaginationModule_Factory(t) { return new (t || PaginationModule)(); }; }
12
+ static { this.ɵfac = function PaginationModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationModule)(); }; }
13
13
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PaginationModule }); }
14
14
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
15
15
  FormsModule,
@@ -33,4 +33,4 @@ export class PaginationModule {
33
33
  FormsModule,
34
34
  ngxPaginationModule,
35
35
  WmComponentsModule], exports: [PaginationComponent] }); })();
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9wYWdpbmF0aW9uL3NyYy9wYWdpbmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGdCQUFnQixJQUFJLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTdELE1BQU0sVUFBVSxHQUFHO0lBQ2YsbUJBQW1CO0NBQ3RCLENBQUM7QUFZRixNQUFNLE9BQU8sZ0JBQWdCO2lGQUFoQixnQkFBZ0I7bUVBQWhCLGdCQUFnQjt1RUFSckIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsa0JBQWtCOztpRkFLYixnQkFBZ0I7Y0FWNUIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixrQkFBa0I7aUJBQ3JCO2dCQUNELFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2dCQUM3QixPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQzthQUMzQjs7d0ZBQ1ksZ0JBQWdCLG1CQWJ6QixtQkFBbUIsYUFLZixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixrQkFBa0IsYUFSdEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSBhcyBuZ3hQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wYWdpbmF0aW9uJztcblxuaW1wb3J0IHsgV21Db21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgbmd4UGFnaW5hdGlvbk1vZHVsZSxcbiAgICAgICAgV21Db21wb25lbnRzTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5jb21wb25lbnRzXSxcbiAgICBleHBvcnRzOiBbLi4uY29tcG9uZW50c11cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk1vZHVsZSB7XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9wYWdpbmF0aW9uL3NyYy9wYWdpbmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGdCQUFnQixJQUFJLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTdELE1BQU0sVUFBVSxHQUFHO0lBQ2YsbUJBQW1CO0NBQ3RCLENBQUM7QUFZRixNQUFNLE9BQU8sZ0JBQWdCO2lIQUFoQixnQkFBZ0I7bUVBQWhCLGdCQUFnQjt1RUFSckIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsa0JBQWtCOztpRkFLYixnQkFBZ0I7Y0FWNUIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixrQkFBa0I7aUJBQ3JCO2dCQUNELFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2dCQUM3QixPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQzthQUMzQjs7d0ZBQ1ksZ0JBQWdCLG1CQWJ6QixtQkFBbUIsYUFLZixZQUFZO1FBQ1osV0FBVztRQUNYLG1CQUFtQjtRQUNuQixrQkFBa0IsYUFSdEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSBhcyBuZ3hQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wYWdpbmF0aW9uJztcblxuaW1wb3J0IHsgV21Db21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24uY29tcG9uZW50JztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICBQYWdpbmF0aW9uQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgbmd4UGFnaW5hdGlvbk1vZHVsZSxcbiAgICAgICAgV21Db21wb25lbnRzTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5jb21wb25lbnRzXSxcbiAgICBleHBvcnRzOiBbLi4uY29tcG9uZW50c11cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk1vZHVsZSB7XG59XG4iXX0=
@@ -6,7 +6,7 @@ import * as i2 from '@angular/forms';
6
6
  import { FormsModule } from '@angular/forms';
7
7
  import * as i3 from 'ngx-bootstrap/pagination';
8
8
  import { PaginationModule as PaginationModule$1 } from 'ngx-bootstrap/pagination';
9
- import { PROP_BOOLEAN, PROP_STRING, PROP_ANY, PROP_NUMBER, register, StylableComponent, DEBOUNCE_TIMES, styler, getOrderByExpr, unsupportedStatePersistenceTypes, WidgetRef, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
9
+ import { register, PROP_BOOLEAN, PROP_STRING, PROP_ANY, PROP_NUMBER, StylableComponent, DEBOUNCE_TIMES, styler, getOrderByExpr, unsupportedStatePersistenceTypes, WidgetRef, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
10
10
  import { debounce, isDefined, AppConstants, DataSource, triggerFn, $appDigest, $watch, switchClass } from '@wm/core';
11
11
  import { forEach, isArray, isEmpty, get, isString, isNull } from 'lodash-es';
12
12
 
@@ -756,7 +756,7 @@ class PaginationComponent extends StylableComponent {
756
756
  event.stopPropagation();
757
757
  };
758
758
  }
759
- static { this.ɵfac = function PaginationComponent_Factory(t) { return new (t || PaginationComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(WidgetRef, 4), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
759
+ static { this.ɵfac = function PaginationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(WidgetRef, 4), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
760
760
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaginationComponent, selectors: [["", "wmPagination", ""]], outputs: { resultEmitter: "resultEmitter", maxResultsEmitter: "maxResultsEmitter" }, features: [i0.ɵɵProvidersFeature([
761
761
  provideAsWidgetRef(PaginationComponent)
762
762
  ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 10, vars: 4, consts: [["pageTemplate", ""], ["prevTemplate", ""], ["nextTemplate", ""], [3, "class", 4, "ngIf"], ["class", "pagination basic", "role", "navigation", "firstText", "Firtst", "lastText", "Last", 3, "ngClass", "itemsPerPage", "totalItems", "ngModelOptions", "ngModel", "boundaryLinks", "maxSize", "directionLinks", "customPreviousTemplate", "customNextTemplate", "customPageTemplate", "pageChanged", 4, "ngIf"], ["class", "pagination", 4, "ngIf"], [3, "ngClass"], ["name", "first", "href", "javascript:void(0);", 3, "click", "title"], ["aria-hidden", "true"], [1, "wi", "wi-first-page"], [1, "sr-only"], ["name", "prev", "href", "javascript:void(0);", 3, "click", "title"], [1, "wi", "wi-chevron-left"], [1, "pagecount", "disabled"], ["href", "javascript:void(0);", "aria-label", "Change Page Number"], ["type", "number", 1, "form-control", 3, "ngModelChange", "keydown", "change", "ngModel", "disabled", "ngModelOptions"], [1, "disabled"], [3, "hidden"], ["name", "next", "href", "javascript:void(0);", 3, "click", "title"], [1, "wi", "wi-chevron-right"], ["name", "last", "href", "javascript:void(0);", 3, "click", "title"], [1, "wi", "wi-last-page"], ["class", "totalcount disabled", 4, "ngIf"], [1, "totalcount", "disabled"], ["href", "javascript:void(0);", "tabindex", "-1", "aria-disabled", "true"], [1, "previous", 3, "ngClass"], ["href", "javascript:void(0);", 3, "click"], [1, "next", 3, "ngClass"], ["role", "navigation", "firstText", "Firtst", "lastText", "Last", 1, "pagination", "basic", 3, "pageChanged", "ngClass", "itemsPerPage", "totalItems", "ngModelOptions", "ngModel", "boundaryLinks", "maxSize", "directionLinks", "customPreviousTemplate", "customNextTemplate", "customPageTemplate"], [1, "pagination"], [1, "totalcount", "disabled", "basiccount"], ["class", "sr-only", 4, "ngIf"]], template: function PaginationComponent_Template(rf, ctx) { if (rf & 1) {
@@ -797,7 +797,7 @@ const components = [
797
797
  PaginationComponent
798
798
  ];
799
799
  class PaginationModule {
800
- static { this.ɵfac = function PaginationModule_Factory(t) { return new (t || PaginationModule)(); }; }
800
+ static { this.ɵfac = function PaginationModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationModule)(); }; }
801
801
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PaginationModule }); }
802
802
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
803
803
  FormsModule,