@wavemaker-ai/app-ng-runtime 1.0.0-rc.647469

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 (2549) hide show
  1. package/build-task/.npmignore +2 -0
  2. package/build-task/advanced/carousel/carousel-template/carousel-template.build.d.ts +2 -0
  3. package/build-task/advanced/carousel/carousel.build.d.ts +2 -0
  4. package/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +2 -0
  5. package/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +2 -0
  6. package/build-task/advanced/login/login.build.d.ts +2 -0
  7. package/build-task/advanced/marquee/marquee.build.d.ts +2 -0
  8. package/build-task/basic/anchor/anchor.build.d.ts +2 -0
  9. package/build-task/basic/audio/audio.build.d.ts +2 -0
  10. package/build-task/basic/html/html.build.d.ts +2 -0
  11. package/build-task/basic/icon/icon.build.d.ts +2 -0
  12. package/build-task/basic/iframe/iframe.build.d.ts +2 -0
  13. package/build-task/basic/label/label.build.d.ts +2 -0
  14. package/build-task/basic/picture/picture.build.d.ts +2 -0
  15. package/build-task/basic/progress/progress-bar/progress-bar.build.d.ts +2 -0
  16. package/build-task/basic/progress/progress-circle/progress-circle.build.d.ts +2 -0
  17. package/build-task/basic/rich-text-editor/rich-text-editor.build.d.ts +2 -0
  18. package/build-task/basic/search/search.build.d.ts +2 -0
  19. package/build-task/basic/spinner/spinner.build.d.ts +2 -0
  20. package/build-task/basic/tree/tree.build.d.ts +1 -0
  21. package/build-task/basic/video/video.build.d.ts +2 -0
  22. package/build-task/bundles/index.umd.js +3106 -0
  23. package/build-task/chart/chart.build.d.ts +2 -0
  24. package/build-task/containers/accordion/accordion-pane/accordion-pane.build.d.ts +2 -0
  25. package/build-task/containers/accordion/accordion.build.d.ts +2 -0
  26. package/build-task/containers/container.build.d.ts +2 -0
  27. package/build-task/containers/layout-grid/layout-grid-column/layout-grid-column.build.d.ts +2 -0
  28. package/build-task/containers/layout-grid/layout-grid-row/layout-grid-row.build.d.ts +2 -0
  29. package/build-task/containers/layout-grid/layout-grid.build.d.ts +2 -0
  30. package/build-task/containers/linear-layout/linear-layout-item/linear-layout-item.build.d.ts +2 -0
  31. package/build-task/containers/linear-layout/linear-layout.build.d.ts +2 -0
  32. package/build-task/containers/panel/panel.build.d.ts +2 -0
  33. package/build-task/containers/repeat-template.build.d.ts +2 -0
  34. package/build-task/containers/segmented-control/segment-content/segment-content.build.d.ts +2 -0
  35. package/build-task/containers/segmented-control/segmented-control.build.d.ts +2 -0
  36. package/build-task/containers/tabs/tab-pane/tab-pane.build.d.ts +2 -0
  37. package/build-task/containers/tabs/tabs.build.d.ts +2 -0
  38. package/build-task/containers/tile/tile.build.d.ts +2 -0
  39. package/build-task/containers/wizard/wizard-action/wizard-action.build.d.ts +2 -0
  40. package/build-task/containers/wizard/wizard-step/wizard-step.build.d.ts +2 -0
  41. package/build-task/containers/wizard/wizard.build.d.ts +2 -0
  42. package/build-task/data/card/card-actions/card-actions.build.d.ts +2 -0
  43. package/build-task/data/card/card-content/card-content.build.d.ts +2 -0
  44. package/build-task/data/card/card-footer/card-footer.build.d.ts +2 -0
  45. package/build-task/data/card/card.build.d.ts +2 -0
  46. package/build-task/data/form/form-action/form-action.build.d.ts +2 -0
  47. package/build-task/data/form/form-field/form-field.build.d.ts +2 -0
  48. package/build-task/data/form/form.build.d.ts +2 -0
  49. package/build-task/data/list/list.build.d.ts +2 -0
  50. package/build-task/data/live-table/live-table.build.d.ts +2 -0
  51. package/build-task/data/media-list/media-list-item/media-list-item.build.d.ts +2 -0
  52. package/build-task/data/media-list/media-list.build.d.ts +2 -0
  53. package/build-task/data/pagination/pagination.build.d.ts +2 -0
  54. package/build-task/data/table/table-action/table-action.build.d.ts +2 -0
  55. package/build-task/data/table/table-column/table-column.build.d.ts +2 -0
  56. package/build-task/data/table/table-column-group/table-column-group.build.d.ts +2 -0
  57. package/build-task/data/table/table-row/table-row.build.d.ts +2 -0
  58. package/build-task/data/table/table-row-action/table-row-action.build.d.ts +2 -0
  59. package/build-task/data/table/table.build.d.ts +2 -0
  60. package/build-task/device/barcode-scanner/barcode-scanner.build.d.ts +2 -0
  61. package/build-task/device/camera/camera.build.d.ts +2 -0
  62. package/build-task/dialogs/alert-dialog/alert-dialog.build.d.ts +2 -0
  63. package/build-task/dialogs/base/dialog-footer/dialog-footer.build.d.ts +2 -0
  64. package/build-task/dialogs/confirm-dialog/confirm-dialog.build.d.ts +2 -0
  65. package/build-task/dialogs/design-dialog/dialog.build.d.ts +2 -0
  66. package/build-task/dialogs/iframe-dialog/iframe-dialog.build.d.ts +2 -0
  67. package/build-task/dialogs/login-dialog/login-dialog.build.d.ts +2 -0
  68. package/build-task/dialogs/partial-dialog/partial-dialog.build.d.ts +2 -0
  69. package/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +31 -0
  70. package/build-task/esm2022/advanced/carousel/carousel.build.mjs +45 -0
  71. package/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +15 -0
  72. package/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +26 -0
  73. package/build-task/esm2022/advanced/login/login.build.mjs +15 -0
  74. package/build-task/esm2022/advanced/marquee/marquee.build.mjs +10 -0
  75. package/build-task/esm2022/basic/anchor/anchor.build.mjs +15 -0
  76. package/build-task/esm2022/basic/audio/audio.build.mjs +10 -0
  77. package/build-task/esm2022/basic/html/html.build.mjs +15 -0
  78. package/build-task/esm2022/basic/icon/icon.build.mjs +10 -0
  79. package/build-task/esm2022/basic/iframe/iframe.build.mjs +10 -0
  80. package/build-task/esm2022/basic/label/label.build.mjs +25 -0
  81. package/build-task/esm2022/basic/picture/picture.build.mjs +14 -0
  82. package/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +35 -0
  83. package/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +15 -0
  84. package/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +15 -0
  85. package/build-task/esm2022/basic/search/search.build.mjs +11 -0
  86. package/build-task/esm2022/basic/spinner/spinner.build.mjs +15 -0
  87. package/build-task/esm2022/basic/tree/tree.build.mjs +9 -0
  88. package/build-task/esm2022/basic/video/video.build.mjs +10 -0
  89. package/build-task/esm2022/chart/chart.build.mjs +10 -0
  90. package/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +15 -0
  91. package/build-task/esm2022/containers/accordion/accordion.build.mjs +40 -0
  92. package/build-task/esm2022/containers/container.build.mjs +10 -0
  93. package/build-task/esm2022/containers/layout-grid/layout-grid-column/layout-grid-column.build.mjs +10 -0
  94. package/build-task/esm2022/containers/layout-grid/layout-grid-row/layout-grid-row.build.mjs +10 -0
  95. package/build-task/esm2022/containers/layout-grid/layout-grid.build.mjs +10 -0
  96. package/build-task/esm2022/containers/linear-layout/linear-layout-item/linear-layout-item.build.mjs +10 -0
  97. package/build-task/esm2022/containers/linear-layout/linear-layout.build.mjs +21 -0
  98. package/build-task/esm2022/containers/panel/panel.build.mjs +21 -0
  99. package/build-task/esm2022/containers/repeat-template.build.mjs +26 -0
  100. package/build-task/esm2022/containers/segmented-control/segment-content/segment-content.build.mjs +10 -0
  101. package/build-task/esm2022/containers/segmented-control/segmented-control.build.mjs +10 -0
  102. package/build-task/esm2022/containers/tabs/tab-pane/tab-pane.build.mjs +10 -0
  103. package/build-task/esm2022/containers/tabs/tabs.build.mjs +40 -0
  104. package/build-task/esm2022/containers/tile/tile.build.mjs +10 -0
  105. package/build-task/esm2022/containers/wizard/wizard-action/wizard-action.build.mjs +10 -0
  106. package/build-task/esm2022/containers/wizard/wizard-step/wizard-step.build.mjs +16 -0
  107. package/build-task/esm2022/containers/wizard/wizard.build.mjs +39 -0
  108. package/build-task/esm2022/data/card/card-actions/card-actions.build.mjs +10 -0
  109. package/build-task/esm2022/data/card/card-content/card-content.build.mjs +10 -0
  110. package/build-task/esm2022/data/card/card-footer/card-footer.build.mjs +10 -0
  111. package/build-task/esm2022/data/card/card.build.mjs +10 -0
  112. package/build-task/esm2022/data/form/form-action/form-action.build.mjs +12 -0
  113. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +173 -0
  114. package/build-task/esm2022/data/form/form.build.mjs +161 -0
  115. package/build-task/esm2022/data/list/list.build.mjs +89 -0
  116. package/build-task/esm2022/data/live-table/live-table.build.mjs +21 -0
  117. package/build-task/esm2022/data/media-list/media-list-item/media-list-item.build.mjs +10 -0
  118. package/build-task/esm2022/data/media-list/media-list.build.mjs +57 -0
  119. package/build-task/esm2022/data/pagination/pagination.build.mjs +10 -0
  120. package/build-task/esm2022/data/table/table-action/table-action.build.mjs +10 -0
  121. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +294 -0
  122. package/build-task/esm2022/data/table/table-column-group/table-column-group.build.mjs +10 -0
  123. package/build-task/esm2022/data/table/table-row/table-row.build.mjs +34 -0
  124. package/build-task/esm2022/data/table/table-row-action/table-row-action.build.mjs +41 -0
  125. package/build-task/esm2022/data/table/table.build.mjs +86 -0
  126. package/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +15 -0
  127. package/build-task/esm2022/device/camera/camera.build.mjs +15 -0
  128. package/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +10 -0
  129. package/build-task/esm2022/dialogs/base/dialog-footer/dialog-footer.build.mjs +10 -0
  130. package/build-task/esm2022/dialogs/confirm-dialog/confirm-dialog.build.mjs +10 -0
  131. package/build-task/esm2022/dialogs/design-dialog/dialog.build.mjs +17 -0
  132. package/build-task/esm2022/dialogs/iframe-dialog/iframe-dialog.build.mjs +10 -0
  133. package/build-task/esm2022/dialogs/login-dialog/login-dialog.build.mjs +10 -0
  134. package/build-task/esm2022/dialogs/partial-dialog/partial-dialog.build.mjs +40 -0
  135. package/build-task/esm2022/index.mjs +5 -0
  136. package/build-task/esm2022/input/calendar/calendar.build.mjs +13 -0
  137. package/build-task/esm2022/input/chips/chips.build.mjs +11 -0
  138. package/build-task/esm2022/input/color-picker/color-picker.build.mjs +11 -0
  139. package/build-task/esm2022/input/currency/currency.build.mjs +11 -0
  140. package/build-task/esm2022/input/default/button/button.build.mjs +15 -0
  141. package/build-task/esm2022/input/default/button-group/button-group.build.mjs +10 -0
  142. package/build-task/esm2022/input/default/checkbox/checkbox.build.mjs +18 -0
  143. package/build-task/esm2022/input/default/checkboxset/checkboxset.build.mjs +11 -0
  144. package/build-task/esm2022/input/default/composite/composite.build.mjs +10 -0
  145. package/build-task/esm2022/input/default/number/number.build.mjs +11 -0
  146. package/build-task/esm2022/input/default/radioset/radioset.build.mjs +15 -0
  147. package/build-task/esm2022/input/default/select/select.build.mjs +11 -0
  148. package/build-task/esm2022/input/default/switch/switch.build.mjs +15 -0
  149. package/build-task/esm2022/input/default/text/text.build.mjs +11 -0
  150. package/build-task/esm2022/input/default/textarea/textarea.build.mjs +11 -0
  151. package/build-task/esm2022/input/epoch/date/date.build.mjs +11 -0
  152. package/build-task/esm2022/input/epoch/date-time/date-time.build.mjs +11 -0
  153. package/build-task/esm2022/input/epoch/time/time.build.mjs +11 -0
  154. package/build-task/esm2022/input/file-upload/file-upload.build.mjs +20 -0
  155. package/build-task/esm2022/input/rating/rating.build.mjs +11 -0
  156. package/build-task/esm2022/input/slider/slider.build.mjs +11 -0
  157. package/build-task/esm2022/message/message.build.mjs +15 -0
  158. package/build-task/esm2022/navigation/breadcrumb/breadcrumb.build.mjs +10 -0
  159. package/build-task/esm2022/navigation/menu/menu.build.mjs +27 -0
  160. package/build-task/esm2022/navigation/nav/nav-item/nav-item.build.mjs +10 -0
  161. package/build-task/esm2022/navigation/nav/nav.build.mjs +10 -0
  162. package/build-task/esm2022/navigation/navbar/navbar.build.mjs +10 -0
  163. package/build-task/esm2022/navigation/popover/popover.build.mjs +41 -0
  164. package/build-task/esm2022/page/content/content.build.mjs +10 -0
  165. package/build-task/esm2022/page/footer/footer.build.mjs +15 -0
  166. package/build-task/esm2022/page/header/header.build.mjs +15 -0
  167. package/build-task/esm2022/page/layout.build.mjs +15 -0
  168. package/build-task/esm2022/page/left-panel/left-panel.build.mjs +15 -0
  169. package/build-task/esm2022/page/mobile-navbar/mobile-navbar.build.mjs +10 -0
  170. package/build-task/esm2022/page/page-content/page-content.build.mjs +36 -0
  171. package/build-task/esm2022/page/page.build.mjs +59 -0
  172. package/build-task/esm2022/page/right-panel/right-panel.build.mjs +15 -0
  173. package/build-task/esm2022/page/router-outlet/router-outlet.build.mjs +10 -0
  174. package/build-task/esm2022/page/tab-bar/tab-bar.build.mjs +10 -0
  175. package/build-task/esm2022/page/top-nav/top-nav.build.mjs +15 -0
  176. package/build-task/esm2022/partial/partial.build.mjs +25 -0
  177. package/build-task/esm2022/partial-param/partial-param.build.mjs +10 -0
  178. package/build-task/esm2022/prefab/prefab-container/prefab-container.build.mjs +25 -0
  179. package/build-task/esm2022/prefab/prefab.build.mjs +10 -0
  180. package/build-task/esm2022/public_api.mjs +113 -0
  181. package/build-task/esm2022/utils/utils.mjs +69 -0
  182. package/build-task/fesm2022/index.mjs +2998 -0
  183. package/build-task/fesm2022/index.mjs.map +1 -0
  184. package/build-task/index.d.ts +5 -0
  185. package/build-task/input/calendar/calendar.build.d.ts +2 -0
  186. package/build-task/input/chips/chips.build.d.ts +2 -0
  187. package/build-task/input/color-picker/color-picker.build.d.ts +2 -0
  188. package/build-task/input/currency/currency.build.d.ts +2 -0
  189. package/build-task/input/default/button/button.build.d.ts +2 -0
  190. package/build-task/input/default/button-group/button-group.build.d.ts +2 -0
  191. package/build-task/input/default/checkbox/checkbox.build.d.ts +2 -0
  192. package/build-task/input/default/checkboxset/checkboxset.build.d.ts +2 -0
  193. package/build-task/input/default/composite/composite.build.d.ts +2 -0
  194. package/build-task/input/default/number/number.build.d.ts +2 -0
  195. package/build-task/input/default/radioset/radioset.build.d.ts +2 -0
  196. package/build-task/input/default/select/select.build.d.ts +2 -0
  197. package/build-task/input/default/switch/switch.build.d.ts +2 -0
  198. package/build-task/input/default/text/text.build.d.ts +2 -0
  199. package/build-task/input/default/textarea/textarea.build.d.ts +2 -0
  200. package/build-task/input/epoch/date/date.build.d.ts +2 -0
  201. package/build-task/input/epoch/date-time/date-time.build.d.ts +2 -0
  202. package/build-task/input/epoch/time/time.build.d.ts +2 -0
  203. package/build-task/input/file-upload/file-upload.build.d.ts +2 -0
  204. package/build-task/input/rating/rating.build.d.ts +2 -0
  205. package/build-task/input/slider/slider.build.d.ts +2 -0
  206. package/build-task/message/message.build.d.ts +2 -0
  207. package/build-task/navigation/breadcrumb/breadcrumb.build.d.ts +2 -0
  208. package/build-task/navigation/menu/menu.build.d.ts +2 -0
  209. package/build-task/navigation/nav/nav-item/nav-item.build.d.ts +2 -0
  210. package/build-task/navigation/nav/nav.build.d.ts +2 -0
  211. package/build-task/navigation/navbar/navbar.build.d.ts +2 -0
  212. package/build-task/navigation/popover/popover.build.d.ts +2 -0
  213. package/build-task/package.json +25 -0
  214. package/build-task/page/content/content.build.d.ts +2 -0
  215. package/build-task/page/footer/footer.build.d.ts +2 -0
  216. package/build-task/page/header/header.build.d.ts +2 -0
  217. package/build-task/page/layout.build.d.ts +2 -0
  218. package/build-task/page/left-panel/left-panel.build.d.ts +2 -0
  219. package/build-task/page/mobile-navbar/mobile-navbar.build.d.ts +2 -0
  220. package/build-task/page/page-content/page-content.build.d.ts +2 -0
  221. package/build-task/page/page.build.d.ts +2 -0
  222. package/build-task/page/right-panel/right-panel.build.d.ts +2 -0
  223. package/build-task/page/router-outlet/router-outlet.build.d.ts +2 -0
  224. package/build-task/page/tab-bar/tab-bar.build.d.ts +2 -0
  225. package/build-task/page/top-nav/top-nav.build.d.ts +2 -0
  226. package/build-task/partial/partial.build.d.ts +2 -0
  227. package/build-task/partial-param/partial-param.build.d.ts +2 -0
  228. package/build-task/prefab/prefab-container/prefab-container.build.d.ts +2 -0
  229. package/build-task/prefab/prefab.build.d.ts +2 -0
  230. package/build-task/public_api.d.ts +112 -0
  231. package/build-task/utils/utils.d.ts +21 -0
  232. package/components/advanced/carousel/.npmignore +2 -0
  233. package/components/advanced/carousel/bundles/index.umd.js +352 -0
  234. package/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +9 -0
  235. package/components/advanced/carousel/carousel-template/carousel-template.props.d.ts +1 -0
  236. package/components/advanced/carousel/carousel.animator.d.ts +45 -0
  237. package/components/advanced/carousel/carousel.directive.d.ts +35 -0
  238. package/components/advanced/carousel/carousel.props.d.ts +1 -0
  239. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +32 -0
  240. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.props.mjs +7 -0
  241. package/components/advanced/carousel/esm2022/carousel.animator.mjs +149 -0
  242. package/components/advanced/carousel/esm2022/carousel.directive.mjs +135 -0
  243. package/components/advanced/carousel/esm2022/carousel.props.mjs +13 -0
  244. package/components/advanced/carousel/esm2022/index.mjs +5 -0
  245. package/components/advanced/carousel/esm2022/public_api.mjs +4 -0
  246. package/components/advanced/carousel/fesm2022/index.mjs +335 -0
  247. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -0
  248. package/components/advanced/carousel/index.d.ts +5 -0
  249. package/components/advanced/carousel/package.json +20 -0
  250. package/components/advanced/carousel/public_api.d.ts +3 -0
  251. package/components/advanced/custom/.npmignore +2 -0
  252. package/components/advanced/custom/bundles/index.umd.js +258 -0
  253. package/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +29 -0
  254. package/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +2 -0
  255. package/components/advanced/custom/custom-widget-prop.d.ts +1 -0
  256. package/components/advanced/custom/custom-widget.directive.d.ts +19 -0
  257. package/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +156 -0
  258. package/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +12 -0
  259. package/components/advanced/custom/esm2022/custom-widget-prop.mjs +8 -0
  260. package/components/advanced/custom/esm2022/custom-widget.directive.mjs +70 -0
  261. package/components/advanced/custom/esm2022/index.mjs +5 -0
  262. package/components/advanced/custom/esm2022/public_api.mjs +3 -0
  263. package/components/advanced/custom/fesm2022/index.mjs +244 -0
  264. package/components/advanced/custom/fesm2022/index.mjs.map +1 -0
  265. package/components/advanced/custom/index.d.ts +5 -0
  266. package/components/advanced/custom/package.json +20 -0
  267. package/components/advanced/custom/public_api.d.ts +2 -0
  268. package/components/advanced/login/.npmignore +2 -0
  269. package/components/advanced/login/bundles/index.umd.js +135 -0
  270. package/components/advanced/login/esm2022/index.mjs +5 -0
  271. package/components/advanced/login/esm2022/login.component.mjs +107 -0
  272. package/components/advanced/login/esm2022/login.props.mjs +8 -0
  273. package/components/advanced/login/esm2022/public_api.mjs +2 -0
  274. package/components/advanced/login/fesm2022/index.mjs +120 -0
  275. package/components/advanced/login/fesm2022/index.mjs.map +1 -0
  276. package/components/advanced/login/index.d.ts +5 -0
  277. package/components/advanced/login/login.component.d.ts +31 -0
  278. package/components/advanced/login/login.props.d.ts +1 -0
  279. package/components/advanced/login/package.json +20 -0
  280. package/components/advanced/login/public_api.d.ts +1 -0
  281. package/components/advanced/marquee/.npmignore +2 -0
  282. package/components/advanced/marquee/bundles/index.umd.js +71 -0
  283. package/components/advanced/marquee/esm2022/index.mjs +5 -0
  284. package/components/advanced/marquee/esm2022/marquee.directive.mjs +36 -0
  285. package/components/advanced/marquee/esm2022/marquee.props.mjs +12 -0
  286. package/components/advanced/marquee/esm2022/public_api.mjs +2 -0
  287. package/components/advanced/marquee/fesm2022/index.mjs +53 -0
  288. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -0
  289. package/components/advanced/marquee/index.d.ts +5 -0
  290. package/components/advanced/marquee/marquee.directive.d.ts +9 -0
  291. package/components/advanced/marquee/marquee.props.d.ts +1 -0
  292. package/components/advanced/marquee/package.json +20 -0
  293. package/components/advanced/marquee/public_api.d.ts +1 -0
  294. package/components/base/.npmignore +2 -0
  295. package/components/base/bundles/index.umd.js +5982 -0
  296. package/components/base/decorators/autolayout.decorator.d.ts +4 -0
  297. package/components/base/decorators/autolayout.props.d.ts +1 -0
  298. package/components/base/directives/show-in-device.directive.d.ts +16 -0
  299. package/components/base/esm2022/decorators/autolayout.decorator.mjs +476 -0
  300. package/components/base/esm2022/decorators/autolayout.props.mjs +20 -0
  301. package/components/base/esm2022/directives/show-in-device.directive.mjs +90 -0
  302. package/components/base/esm2022/index.mjs +5 -0
  303. package/components/base/esm2022/pipes/custom-pipes.mjs +473 -0
  304. package/components/base/esm2022/pipes/image.pipe.mjs +19 -0
  305. package/components/base/esm2022/pipes/sanitize.pipe.mjs +44 -0
  306. package/components/base/esm2022/pipes/trust-as.pipe.mjs +41 -0
  307. package/components/base/esm2022/pipes/wm-pipe.mjs +18 -0
  308. package/components/base/esm2022/public_api.mjs +36 -0
  309. package/components/base/esm2022/utils/autolayout-utils.mjs +261 -0
  310. package/components/base/esm2022/utils/data-utils.mjs +581 -0
  311. package/components/base/esm2022/utils/form-utils.mjs +451 -0
  312. package/components/base/esm2022/utils/live-utils.mjs +216 -0
  313. package/components/base/esm2022/utils/widget-utils.mjs +495 -0
  314. package/components/base/esm2022/widgets/common/base/base-container.component.mjs +80 -0
  315. package/components/base/esm2022/widgets/common/base/base-field-validations.mjs +295 -0
  316. package/components/base/esm2022/widgets/common/base/base.component.mjs +713 -0
  317. package/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +48 -0
  318. package/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +222 -0
  319. package/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +115 -0
  320. package/components/base/esm2022/widgets/common/base/stylable.component.mjs +11 -0
  321. package/components/base/esm2022/widgets/common/base/text-content.directive.mjs +26 -0
  322. package/components/base/esm2022/widgets/common/container/container.directive.mjs +51 -0
  323. package/components/base/esm2022/widgets/common/container/container.props.mjs +15 -0
  324. package/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +170 -0
  325. package/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +89 -0
  326. package/components/base/esm2022/widgets/common/item-template/item-template.props.mjs +7 -0
  327. package/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +84 -0
  328. package/components/base/esm2022/widgets/common/message/message.component.mjs +104 -0
  329. package/components/base/esm2022/widgets/common/message/message.props.mjs +13 -0
  330. package/components/base/esm2022/widgets/common/partial/partial.directive.mjs +53 -0
  331. package/components/base/esm2022/widgets/common/partial/partial.props.mjs +7 -0
  332. package/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +88 -0
  333. package/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +261 -0
  334. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +40 -0
  335. package/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +33 -0
  336. package/components/base/esm2022/widgets/common/repeat-template/repeat-template.props.mjs +7 -0
  337. package/components/base/esm2022/widgets/framework/constants.mjs +36 -0
  338. package/components/base/esm2022/widgets/framework/deviceview.mjs +126 -0
  339. package/components/base/esm2022/widgets/framework/property-change-handler.mjs +96 -0
  340. package/components/base/esm2022/widgets/framework/styler.mjs +123 -0
  341. package/components/base/esm2022/widgets/framework/types.mjs +8 -0
  342. package/components/base/esm2022/widgets/framework/widget-id-generator.mjs +3 -0
  343. package/components/base/esm2022/widgets/framework/widget-props.mjs +35 -0
  344. package/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +75 -0
  345. package/components/base/esm2022/widgets/framework/widget-registry.mjs +49 -0
  346. package/components/base/fesm2022/index.mjs +5858 -0
  347. package/components/base/fesm2022/index.mjs.map +1 -0
  348. package/components/base/index.d.ts +5 -0
  349. package/components/base/package.json +28 -0
  350. package/components/base/pipes/custom-pipes.d.ts +104 -0
  351. package/components/base/pipes/image.pipe.d.ts +7 -0
  352. package/components/base/pipes/sanitize.pipe.d.ts +10 -0
  353. package/components/base/pipes/trust-as.pipe.d.ts +10 -0
  354. package/components/base/pipes/wm-pipe.d.ts +9 -0
  355. package/components/base/public_api.d.ts +35 -0
  356. package/components/base/utils/autolayout-utils.d.ts +29 -0
  357. package/components/base/utils/data-utils.d.ts +181 -0
  358. package/components/base/utils/form-utils.d.ts +85 -0
  359. package/components/base/utils/live-utils.d.ts +65 -0
  360. package/components/base/utils/widget-utils.d.ts +120 -0
  361. package/components/base/widgets/common/base/base-container.component.d.ts +16 -0
  362. package/components/base/widgets/common/base/base-field-validations.d.ts +27 -0
  363. package/components/base/widgets/common/base/base.component.d.ts +276 -0
  364. package/components/base/widgets/common/base/custom-widget-container.directive.d.ts +15 -0
  365. package/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +77 -0
  366. package/components/base/widgets/common/base/partial-container.directive.d.ts +22 -0
  367. package/components/base/widgets/common/base/stylable.component.d.ts +54 -0
  368. package/components/base/widgets/common/base/text-content.directive.d.ts +9 -0
  369. package/components/base/widgets/common/container/container.directive.d.ts +12 -0
  370. package/components/base/widgets/common/container/container.props.d.ts +1 -0
  371. package/components/base/widgets/common/dialog/dialog.service.d.ts +54 -0
  372. package/components/base/widgets/common/item-template/item-template.directive.d.ts +32 -0
  373. package/components/base/widgets/common/item-template/item-template.props.d.ts +1 -0
  374. package/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +15 -0
  375. package/components/base/widgets/common/message/message.component.d.ts +19 -0
  376. package/components/base/widgets/common/message/message.props.d.ts +1 -0
  377. package/components/base/widgets/common/partial/partial.directive.d.ts +15 -0
  378. package/components/base/widgets/common/partial/partial.props.d.ts +1 -0
  379. package/components/base/widgets/common/partial-param/partial-param.directive.d.ts +21 -0
  380. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +48 -0
  381. package/components/base/widgets/common/redraw/redrawable.directive.d.ts +8 -0
  382. package/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +9 -0
  383. package/components/base/widgets/common/repeat-template/repeat-template.props.d.ts +1 -0
  384. package/components/base/widgets/framework/constants.d.ts +16 -0
  385. package/components/base/widgets/framework/deviceview.d.ts +1 -0
  386. package/components/base/widgets/framework/property-change-handler.d.ts +8 -0
  387. package/components/base/widgets/framework/styler.d.ts +59 -0
  388. package/components/base/widgets/framework/types.d.ts +23 -0
  389. package/components/base/widgets/framework/widget-id-generator.d.ts +2 -0
  390. package/components/base/widgets/framework/widget-props.d.ts +12 -0
  391. package/components/base/widgets/framework/widget-proxy-provider.d.ts +11 -0
  392. package/components/base/widgets/framework/widget-registry.d.ts +14 -0
  393. package/components/basic/anchor/.npmignore +2 -0
  394. package/components/basic/anchor/anchor.component.d.ts +37 -0
  395. package/components/basic/anchor/anchor.props.d.ts +1 -0
  396. package/components/basic/anchor/bundles/index.umd.js +204 -0
  397. package/components/basic/anchor/esm2022/anchor.component.mjs +155 -0
  398. package/components/basic/anchor/esm2022/anchor.props.mjs +27 -0
  399. package/components/basic/anchor/esm2022/index.mjs +5 -0
  400. package/components/basic/anchor/esm2022/public_api.mjs +2 -0
  401. package/components/basic/anchor/fesm2022/index.mjs +187 -0
  402. package/components/basic/anchor/fesm2022/index.mjs.map +1 -0
  403. package/components/basic/anchor/index.d.ts +5 -0
  404. package/components/basic/anchor/package.json +20 -0
  405. package/components/basic/anchor/public_api.d.ts +1 -0
  406. package/components/basic/audio/.npmignore +2 -0
  407. package/components/basic/audio/audio.component.d.ts +20 -0
  408. package/components/basic/audio/audio.props.d.ts +1 -0
  409. package/components/basic/audio/bundles/index.umd.js +83 -0
  410. package/components/basic/audio/esm2022/audio.component.mjs +41 -0
  411. package/components/basic/audio/esm2022/audio.props.mjs +19 -0
  412. package/components/basic/audio/esm2022/index.mjs +5 -0
  413. package/components/basic/audio/esm2022/public_api.mjs +2 -0
  414. package/components/basic/audio/fesm2022/index.mjs +65 -0
  415. package/components/basic/audio/fesm2022/index.mjs.map +1 -0
  416. package/components/basic/audio/index.d.ts +5 -0
  417. package/components/basic/audio/package.json +20 -0
  418. package/components/basic/audio/public_api.d.ts +1 -0
  419. package/components/basic/html/.npmignore +2 -0
  420. package/components/basic/html/bundles/index.umd.js +122 -0
  421. package/components/basic/html/esm2022/html.directive.mjs +88 -0
  422. package/components/basic/html/esm2022/html.props.mjs +12 -0
  423. package/components/basic/html/esm2022/index.mjs +5 -0
  424. package/components/basic/html/esm2022/public_api.mjs +2 -0
  425. package/components/basic/html/fesm2022/index.mjs +105 -0
  426. package/components/basic/html/fesm2022/index.mjs.map +1 -0
  427. package/components/basic/html/html.directive.d.ts +14 -0
  428. package/components/basic/html/html.props.d.ts +1 -0
  429. package/components/basic/html/index.d.ts +5 -0
  430. package/components/basic/html/package.json +20 -0
  431. package/components/basic/html/public_api.d.ts +1 -0
  432. package/components/basic/icon/.npmignore +2 -0
  433. package/components/basic/icon/bundles/index.umd.js +80 -0
  434. package/components/basic/icon/esm2022/icon.component.mjs +38 -0
  435. package/components/basic/icon/esm2022/icon.props.mjs +19 -0
  436. package/components/basic/icon/esm2022/index.mjs +5 -0
  437. package/components/basic/icon/esm2022/public_api.mjs +2 -0
  438. package/components/basic/icon/fesm2022/index.mjs +62 -0
  439. package/components/basic/icon/fesm2022/index.mjs.map +1 -0
  440. package/components/basic/icon/icon.component.d.ts +15 -0
  441. package/components/basic/icon/icon.props.d.ts +1 -0
  442. package/components/basic/icon/index.d.ts +5 -0
  443. package/components/basic/icon/package.json +20 -0
  444. package/components/basic/icon/public_api.d.ts +1 -0
  445. package/components/basic/iframe/.npmignore +2 -0
  446. package/components/basic/iframe/bundles/index.umd.js +101 -0
  447. package/components/basic/iframe/esm2022/iframe.component.mjs +65 -0
  448. package/components/basic/iframe/esm2022/iframe.props.mjs +15 -0
  449. package/components/basic/iframe/esm2022/index.mjs +5 -0
  450. package/components/basic/iframe/esm2022/public_api.mjs +2 -0
  451. package/components/basic/iframe/fesm2022/index.mjs +84 -0
  452. package/components/basic/iframe/fesm2022/index.mjs.map +1 -0
  453. package/components/basic/iframe/iframe.component.d.ts +26 -0
  454. package/components/basic/iframe/iframe.props.d.ts +1 -0
  455. package/components/basic/iframe/index.d.ts +5 -0
  456. package/components/basic/iframe/package.json +20 -0
  457. package/components/basic/iframe/public_api.d.ts +1 -0
  458. package/components/basic/label/.npmignore +2 -0
  459. package/components/basic/label/bundles/index.umd.js +129 -0
  460. package/components/basic/label/esm2022/index.mjs +5 -0
  461. package/components/basic/label/esm2022/label.directive.mjs +91 -0
  462. package/components/basic/label/esm2022/label.props.mjs +17 -0
  463. package/components/basic/label/esm2022/public_api.mjs +2 -0
  464. package/components/basic/label/fesm2022/index.mjs +113 -0
  465. package/components/basic/label/fesm2022/index.mjs.map +1 -0
  466. package/components/basic/label/index.d.ts +5 -0
  467. package/components/basic/label/label.directive.d.ts +12 -0
  468. package/components/basic/label/label.props.d.ts +1 -0
  469. package/components/basic/label/package.json +20 -0
  470. package/components/basic/label/public_api.d.ts +1 -0
  471. package/components/basic/picture/.npmignore +2 -0
  472. package/components/basic/picture/bundles/index.umd.js +138 -0
  473. package/components/basic/picture/esm2022/index.mjs +5 -0
  474. package/components/basic/picture/esm2022/picture.directive.mjs +93 -0
  475. package/components/basic/picture/esm2022/picture.props.mjs +23 -0
  476. package/components/basic/picture/esm2022/public_api.mjs +2 -0
  477. package/components/basic/picture/fesm2022/index.mjs +121 -0
  478. package/components/basic/picture/fesm2022/index.mjs.map +1 -0
  479. package/components/basic/picture/index.d.ts +5 -0
  480. package/components/basic/picture/package.json +20 -0
  481. package/components/basic/picture/picture.directive.d.ts +19 -0
  482. package/components/basic/picture/picture.props.d.ts +1 -0
  483. package/components/basic/picture/public_api.d.ts +1 -0
  484. package/components/basic/progress/progress-bar/.npmignore +2 -0
  485. package/components/basic/progress/progress-bar/bundles/index.umd.js +170 -0
  486. package/components/basic/progress/progress-bar/esm2022/index.mjs +5 -0
  487. package/components/basic/progress/progress-bar/esm2022/progress-bar.component.mjs +130 -0
  488. package/components/basic/progress/progress-bar/esm2022/progress-bar.props.mjs +19 -0
  489. package/components/basic/progress/progress-bar/esm2022/public_api.mjs +2 -0
  490. package/components/basic/progress/progress-bar/fesm2022/index.mjs +154 -0
  491. package/components/basic/progress/progress-bar/fesm2022/index.mjs.map +1 -0
  492. package/components/basic/progress/progress-bar/index.d.ts +5 -0
  493. package/components/basic/progress/progress-bar/package.json +20 -0
  494. package/components/basic/progress/progress-bar/progress-bar.component.d.ts +43 -0
  495. package/components/basic/progress/progress-bar/progress-bar.props.d.ts +1 -0
  496. package/components/basic/progress/progress-bar/public_api.d.ts +1 -0
  497. package/components/basic/progress/progress-circle/.npmignore +2 -0
  498. package/components/basic/progress/progress-circle/bundles/index.umd.js +171 -0
  499. package/components/basic/progress/progress-circle/esm2022/index.mjs +5 -0
  500. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +130 -0
  501. package/components/basic/progress/progress-circle/esm2022/progress-circle.props.mjs +21 -0
  502. package/components/basic/progress/progress-circle/esm2022/public_api.mjs +2 -0
  503. package/components/basic/progress/progress-circle/fesm2022/index.mjs +155 -0
  504. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -0
  505. package/components/basic/progress/progress-circle/index.d.ts +5 -0
  506. package/components/basic/progress/progress-circle/package.json +20 -0
  507. package/components/basic/progress/progress-circle/progress-circle.component.d.ts +40 -0
  508. package/components/basic/progress/progress-circle/progress-circle.props.d.ts +1 -0
  509. package/components/basic/progress/progress-circle/public_api.d.ts +1 -0
  510. package/components/basic/progress/progress-utils/.npmignore +2 -0
  511. package/components/basic/progress/progress-utils/bundles/index.umd.js +35 -0
  512. package/components/basic/progress/progress-utils/esm2022/index.mjs +5 -0
  513. package/components/basic/progress/progress-utils/esm2022/progress-utils.mjs +25 -0
  514. package/components/basic/progress/progress-utils/esm2022/public_api.mjs +2 -0
  515. package/components/basic/progress/progress-utils/fesm2022/index.mjs +32 -0
  516. package/components/basic/progress/progress-utils/fesm2022/index.mjs.map +1 -0
  517. package/components/basic/progress/progress-utils/index.d.ts +5 -0
  518. package/components/basic/progress/progress-utils/package.json +20 -0
  519. package/components/basic/progress/progress-utils/progress-utils.d.ts +3 -0
  520. package/components/basic/progress/progress-utils/public_api.d.ts +1 -0
  521. package/components/basic/rich-text-editor/.npmignore +2 -0
  522. package/components/basic/rich-text-editor/bundles/index.umd.js +236 -0
  523. package/components/basic/rich-text-editor/esm2022/index.mjs +5 -0
  524. package/components/basic/rich-text-editor/esm2022/public_api.mjs +2 -0
  525. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +197 -0
  526. package/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +21 -0
  527. package/components/basic/rich-text-editor/fesm2022/index.mjs +222 -0
  528. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -0
  529. package/components/basic/rich-text-editor/index.d.ts +5 -0
  530. package/components/basic/rich-text-editor/package.json +20 -0
  531. package/components/basic/rich-text-editor/public_api.d.ts +1 -0
  532. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +55 -0
  533. package/components/basic/rich-text-editor/rich-text-editor.props.d.ts +2 -0
  534. package/components/basic/search/.npmignore +2 -0
  535. package/components/basic/search/bundles/index.umd.js +1091 -0
  536. package/components/basic/search/data-provider/data-provider.d.ts +42 -0
  537. package/components/basic/search/data-provider/local-data-provider.d.ts +5 -0
  538. package/components/basic/search/data-provider/remote-data-provider.d.ts +10 -0
  539. package/components/basic/search/esm2022/data-provider/data-provider.mjs +34 -0
  540. package/components/basic/search/esm2022/data-provider/local-data-provider.mjs +77 -0
  541. package/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +124 -0
  542. package/components/basic/search/esm2022/index.mjs +5 -0
  543. package/components/basic/search/esm2022/public_api.mjs +3 -0
  544. package/components/basic/search/esm2022/scrollable.directive.mjs +44 -0
  545. package/components/basic/search/esm2022/search.component.mjs +754 -0
  546. package/components/basic/search/esm2022/search.props.mjs +55 -0
  547. package/components/basic/search/fesm2022/index.mjs +1080 -0
  548. package/components/basic/search/fesm2022/index.mjs.map +1 -0
  549. package/components/basic/search/index.d.ts +5 -0
  550. package/components/basic/search/package.json +20 -0
  551. package/components/basic/search/public_api.d.ts +2 -0
  552. package/components/basic/search/scrollable.directive.d.ts +14 -0
  553. package/components/basic/search/search.component.d.ts +109 -0
  554. package/components/basic/search/search.props.d.ts +2 -0
  555. package/components/basic/spinner/.npmignore +2 -0
  556. package/components/basic/spinner/bundles/index.umd.js +126 -0
  557. package/components/basic/spinner/esm2022/index.mjs +5 -0
  558. package/components/basic/spinner/esm2022/public_api.mjs +2 -0
  559. package/components/basic/spinner/esm2022/spinner.component.mjs +87 -0
  560. package/components/basic/spinner/esm2022/spinner.props.mjs +20 -0
  561. package/components/basic/spinner/fesm2022/index.mjs +111 -0
  562. package/components/basic/spinner/fesm2022/index.mjs.map +1 -0
  563. package/components/basic/spinner/index.d.ts +5 -0
  564. package/components/basic/spinner/package.json +20 -0
  565. package/components/basic/spinner/public_api.d.ts +1 -0
  566. package/components/basic/spinner/spinner.component.d.ts +27 -0
  567. package/components/basic/spinner/spinner.props.d.ts +1 -0
  568. package/components/basic/tree/.npmignore +2 -0
  569. package/components/basic/tree/bundles/index.umd.js +566 -0
  570. package/components/basic/tree/esm2022/index.mjs +5 -0
  571. package/components/basic/tree/esm2022/public_api.mjs +2 -0
  572. package/components/basic/tree/esm2022/tree-node-template-host.component.mjs +33 -0
  573. package/components/basic/tree/esm2022/tree.component.mjs +494 -0
  574. package/components/basic/tree/esm2022/tree.props.mjs +22 -0
  575. package/components/basic/tree/fesm2022/index.mjs +550 -0
  576. package/components/basic/tree/fesm2022/index.mjs.map +1 -0
  577. package/components/basic/tree/index.d.ts +5 -0
  578. package/components/basic/tree/package.json +20 -0
  579. package/components/basic/tree/public_api.d.ts +1 -0
  580. package/components/basic/tree/tree-node-template-host.component.d.ts +7 -0
  581. package/components/basic/tree/tree.component.d.ts +66 -0
  582. package/components/basic/tree/tree.props.d.ts +1 -0
  583. package/components/basic/video/.npmignore +2 -0
  584. package/components/basic/video/bundles/index.umd.js +116 -0
  585. package/components/basic/video/esm2022/index.mjs +5 -0
  586. package/components/basic/video/esm2022/public_api.mjs +2 -0
  587. package/components/basic/video/esm2022/video.component.mjs +70 -0
  588. package/components/basic/video/esm2022/video.props.mjs +24 -0
  589. package/components/basic/video/fesm2022/index.mjs +99 -0
  590. package/components/basic/video/fesm2022/index.mjs.map +1 -0
  591. package/components/basic/video/index.d.ts +5 -0
  592. package/components/basic/video/package.json +20 -0
  593. package/components/basic/video/public_api.d.ts +1 -0
  594. package/components/basic/video/video.component.d.ts +27 -0
  595. package/components/basic/video/video.props.d.ts +1 -0
  596. package/components/chart/.npmignore +2 -0
  597. package/components/chart/bundles/index.umd.js +1747 -0
  598. package/components/chart/chart.component.d.ts +99 -0
  599. package/components/chart/chart.props.d.ts +1 -0
  600. package/components/chart/chart.utils.d.ts +40 -0
  601. package/components/chart/esm2022/chart.component.mjs +982 -0
  602. package/components/chart/esm2022/chart.props.mjs +67 -0
  603. package/components/chart/esm2022/chart.utils.mjs +723 -0
  604. package/components/chart/esm2022/index.mjs +5 -0
  605. package/components/chart/esm2022/public_api.mjs +2 -0
  606. package/components/chart/fesm2022/index.mjs +1774 -0
  607. package/components/chart/fesm2022/index.mjs.map +1 -0
  608. package/components/chart/index.d.ts +5 -0
  609. package/components/chart/package.json +20 -0
  610. package/components/chart/public_api.d.ts +1 -0
  611. package/components/containers/accordion/.npmignore +2 -0
  612. package/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +50 -0
  613. package/components/containers/accordion/accordion-pane/accordion-pane.props.d.ts +1 -0
  614. package/components/containers/accordion/accordion.directive.d.ts +66 -0
  615. package/components/containers/accordion/accordion.props.d.ts +1 -0
  616. package/components/containers/accordion/bundles/index.umd.js +500 -0
  617. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +145 -0
  618. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.props.mjs +22 -0
  619. package/components/containers/accordion/esm2022/accordion.directive.mjs +309 -0
  620. package/components/containers/accordion/esm2022/accordion.props.mjs +16 -0
  621. package/components/containers/accordion/esm2022/index.mjs +5 -0
  622. package/components/containers/accordion/esm2022/public_api.mjs +3 -0
  623. package/components/containers/accordion/fesm2022/index.mjs +486 -0
  624. package/components/containers/accordion/fesm2022/index.mjs.map +1 -0
  625. package/components/containers/accordion/index.d.ts +5 -0
  626. package/components/containers/accordion/package.json +20 -0
  627. package/components/containers/accordion/public_api.d.ts +2 -0
  628. package/components/containers/layout-grid/.npmignore +2 -0
  629. package/components/containers/layout-grid/bundles/index.umd.js +172 -0
  630. package/components/containers/layout-grid/esm2022/index.mjs +5 -0
  631. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +57 -0
  632. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.props.mjs +11 -0
  633. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +36 -0
  634. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.props.mjs +9 -0
  635. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +36 -0
  636. package/components/containers/layout-grid/esm2022/layout-grid.props.mjs +9 -0
  637. package/components/containers/layout-grid/esm2022/public_api.mjs +4 -0
  638. package/components/containers/layout-grid/fesm2022/index.mjs +153 -0
  639. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -0
  640. package/components/containers/layout-grid/index.d.ts +5 -0
  641. package/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +12 -0
  642. package/components/containers/layout-grid/layout-grid-column/layout-grid-column.props.d.ts +1 -0
  643. package/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +9 -0
  644. package/components/containers/layout-grid/layout-grid-row/layout-grid-row.props.d.ts +1 -0
  645. package/components/containers/layout-grid/layout-grid.directive.d.ts +9 -0
  646. package/components/containers/layout-grid/layout-grid.props.d.ts +1 -0
  647. package/components/containers/layout-grid/package.json +20 -0
  648. package/components/containers/layout-grid/public_api.d.ts +3 -0
  649. package/components/containers/linear-layout/.npmignore +2 -0
  650. package/components/containers/linear-layout/bundles/index.umd.js +186 -0
  651. package/components/containers/linear-layout/esm2022/index.mjs +5 -0
  652. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +44 -0
  653. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.props.mjs +10 -0
  654. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +100 -0
  655. package/components/containers/linear-layout/esm2022/linear-layout.props.mjs +13 -0
  656. package/components/containers/linear-layout/esm2022/public_api.mjs +3 -0
  657. package/components/containers/linear-layout/fesm2022/index.mjs +167 -0
  658. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -0
  659. package/components/containers/linear-layout/index.d.ts +5 -0
  660. package/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +10 -0
  661. package/components/containers/linear-layout/linear-layout-item/linear-layout-item.props.d.ts +1 -0
  662. package/components/containers/linear-layout/linear-layout.directive.d.ts +16 -0
  663. package/components/containers/linear-layout/linear-layout.props.d.ts +1 -0
  664. package/components/containers/linear-layout/package.json +20 -0
  665. package/components/containers/linear-layout/public_api.d.ts +2 -0
  666. package/components/containers/panel/.npmignore +2 -0
  667. package/components/containers/panel/bundles/index.umd.js +223 -0
  668. package/components/containers/panel/esm2022/index.mjs +5 -0
  669. package/components/containers/panel/esm2022/panel.component.mjs +168 -0
  670. package/components/containers/panel/esm2022/panel.props.mjs +38 -0
  671. package/components/containers/panel/esm2022/public_api.mjs +2 -0
  672. package/components/containers/panel/fesm2022/index.mjs +210 -0
  673. package/components/containers/panel/fesm2022/index.mjs.map +1 -0
  674. package/components/containers/panel/index.d.ts +5 -0
  675. package/components/containers/panel/package.json +20 -0
  676. package/components/containers/panel/panel.component.d.ts +43 -0
  677. package/components/containers/panel/panel.props.d.ts +1 -0
  678. package/components/containers/panel/public_api.d.ts +1 -0
  679. package/components/containers/tabs/.npmignore +2 -0
  680. package/components/containers/tabs/bundles/index.umd.js +788 -0
  681. package/components/containers/tabs/esm2022/index.mjs +5 -0
  682. package/components/containers/tabs/esm2022/public_api.mjs +3 -0
  683. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +179 -0
  684. package/components/containers/tabs/esm2022/tab-pane/tab-pane.props.mjs +22 -0
  685. package/components/containers/tabs/esm2022/tabs.animator.mjs +83 -0
  686. package/components/containers/tabs/esm2022/tabs.component.mjs +478 -0
  687. package/components/containers/tabs/esm2022/tabs.props.mjs +20 -0
  688. package/components/containers/tabs/fesm2022/index.mjs +775 -0
  689. package/components/containers/tabs/fesm2022/index.mjs.map +1 -0
  690. package/components/containers/tabs/index.d.ts +5 -0
  691. package/components/containers/tabs/package.json +20 -0
  692. package/components/containers/tabs/public_api.d.ts +2 -0
  693. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +41 -0
  694. package/components/containers/tabs/tab-pane/tab-pane.props.d.ts +1 -0
  695. package/components/containers/tabs/tabs.animator.d.ts +30 -0
  696. package/components/containers/tabs/tabs.component.d.ts +87 -0
  697. package/components/containers/tabs/tabs.props.d.ts +1 -0
  698. package/components/containers/tile/.npmignore +2 -0
  699. package/components/containers/tile/bundles/index.umd.js +68 -0
  700. package/components/containers/tile/esm2022/index.mjs +5 -0
  701. package/components/containers/tile/esm2022/public_api.mjs +2 -0
  702. package/components/containers/tile/esm2022/tile.directive.mjs +33 -0
  703. package/components/containers/tile/esm2022/tile.props.mjs +12 -0
  704. package/components/containers/tile/fesm2022/index.mjs +50 -0
  705. package/components/containers/tile/fesm2022/index.mjs.map +1 -0
  706. package/components/containers/tile/index.d.ts +5 -0
  707. package/components/containers/tile/package.json +20 -0
  708. package/components/containers/tile/public_api.d.ts +1 -0
  709. package/components/containers/tile/tile.directive.d.ts +9 -0
  710. package/components/containers/tile/tile.props.d.ts +1 -0
  711. package/components/containers/wizard/.npmignore +2 -0
  712. package/components/containers/wizard/bundles/index.umd.js +1074 -0
  713. package/components/containers/wizard/esm2022/index.mjs +5 -0
  714. package/components/containers/wizard/esm2022/public_api.mjs +4 -0
  715. package/components/containers/wizard/esm2022/wizard-action/wizard-action.directive.mjs +35 -0
  716. package/components/containers/wizard/esm2022/wizard-action/wizard-action.props.mjs +9 -0
  717. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +182 -0
  718. package/components/containers/wizard/esm2022/wizard-step/wizard-step.props.mjs +17 -0
  719. package/components/containers/wizard/esm2022/wizard.component.mjs +801 -0
  720. package/components/containers/wizard/esm2022/wizard.props.mjs +22 -0
  721. package/components/containers/wizard/fesm2022/index.mjs +1058 -0
  722. package/components/containers/wizard/fesm2022/index.mjs.map +1 -0
  723. package/components/containers/wizard/index.d.ts +5 -0
  724. package/components/containers/wizard/package.json +20 -0
  725. package/components/containers/wizard/public_api.d.ts +3 -0
  726. package/components/containers/wizard/wizard-action/wizard-action.directive.d.ts +9 -0
  727. package/components/containers/wizard/wizard-action/wizard-action.props.d.ts +1 -0
  728. package/components/containers/wizard/wizard-step/wizard-step.component.d.ts +59 -0
  729. package/components/containers/wizard/wizard-step/wizard-step.props.d.ts +1 -0
  730. package/components/containers/wizard/wizard.component.d.ts +192 -0
  731. package/components/containers/wizard/wizard.props.d.ts +1 -0
  732. package/components/data/card/.npmignore +2 -0
  733. package/components/data/card/bundles/index.umd.js +237 -0
  734. package/components/data/card/card-actions/card-actions.directive.d.ts +9 -0
  735. package/components/data/card/card-actions/card-actions.props.d.ts +1 -0
  736. package/components/data/card/card-content/card-content.component.d.ts +12 -0
  737. package/components/data/card/card-content/card-content.props.d.ts +1 -0
  738. package/components/data/card/card-footer/card-footer.directive.d.ts +9 -0
  739. package/components/data/card/card-footer/card-footer.props.d.ts +1 -0
  740. package/components/data/card/card.component.d.ts +23 -0
  741. package/components/data/card/card.props.d.ts +1 -0
  742. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +31 -0
  743. package/components/data/card/esm2022/card-actions/card-actions.props.mjs +9 -0
  744. package/components/data/card/esm2022/card-content/card-content.component.mjs +43 -0
  745. package/components/data/card/esm2022/card-content/card-content.props.mjs +10 -0
  746. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +31 -0
  747. package/components/data/card/esm2022/card-footer/card-footer.props.mjs +9 -0
  748. package/components/data/card/esm2022/card.component.mjs +75 -0
  749. package/components/data/card/esm2022/card.props.mjs +24 -0
  750. package/components/data/card/esm2022/index.mjs +5 -0
  751. package/components/data/card/esm2022/public_api.mjs +5 -0
  752. package/components/data/card/fesm2022/index.mjs +220 -0
  753. package/components/data/card/fesm2022/index.mjs.map +1 -0
  754. package/components/data/card/index.d.ts +5 -0
  755. package/components/data/card/package.json +20 -0
  756. package/components/data/card/public_api.d.ts +4 -0
  757. package/components/data/form/.npmignore +2 -0
  758. package/components/data/form/bundles/index.umd.js +3308 -0
  759. package/components/data/form/esm2022/form-action/form-action.directive.mjs +86 -0
  760. package/components/data/form/esm2022/form-action/form-action.props.mjs +25 -0
  761. package/components/data/form/esm2022/form-field/form-field.directive.mjs +611 -0
  762. package/components/data/form/esm2022/form-field/form-field.props.mjs +52 -0
  763. package/components/data/form/esm2022/form-widget.directive.mjs +83 -0
  764. package/components/data/form/esm2022/form.component.mjs +1247 -0
  765. package/components/data/form/esm2022/form.props.mjs +64 -0
  766. package/components/data/form/esm2022/index.mjs +5 -0
  767. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +151 -0
  768. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +173 -0
  769. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +356 -0
  770. package/components/data/form/esm2022/live-form/live-form.directive.mjs +502 -0
  771. package/components/data/form/esm2022/public_api.mjs +9 -0
  772. package/components/data/form/fesm2022/index.mjs +3296 -0
  773. package/components/data/form/fesm2022/index.mjs.map +1 -0
  774. package/components/data/form/form-action/form-action.directive.d.ts +35 -0
  775. package/components/data/form/form-action/form-action.props.d.ts +1 -0
  776. package/components/data/form/form-field/form-field.directive.d.ts +116 -0
  777. package/components/data/form/form-field/form-field.props.d.ts +1 -0
  778. package/components/data/form/form-widget.directive.d.ts +19 -0
  779. package/components/data/form/form.component.d.ts +211 -0
  780. package/components/data/form/form.props.d.ts +3 -0
  781. package/components/data/form/index.d.ts +5 -0
  782. package/components/data/form/live-actions/dependson.directive.d.ts +27 -0
  783. package/components/data/form/live-actions/live-actions.directive.d.ts +24 -0
  784. package/components/data/form/live-filter/live-filter.directive.d.ts +24 -0
  785. package/components/data/form/live-form/live-form.directive.d.ts +44 -0
  786. package/components/data/form/package.json +20 -0
  787. package/components/data/form/public_api.d.ts +8 -0
  788. package/components/data/list/.npmignore +2 -0
  789. package/components/data/list/bundles/index.umd.js +1610 -0
  790. package/components/data/list/esm2022/index.mjs +5 -0
  791. package/components/data/list/esm2022/list-item.directive.mjs +260 -0
  792. package/components/data/list/esm2022/list-item.props.mjs +7 -0
  793. package/components/data/list/esm2022/list.animator.mjs +233 -0
  794. package/components/data/list/esm2022/list.component.mjs +1294 -0
  795. package/components/data/list/esm2022/list.props.mjs +48 -0
  796. package/components/data/list/esm2022/public_api.mjs +3 -0
  797. package/components/data/list/fesm2022/index.mjs +1602 -0
  798. package/components/data/list/fesm2022/index.mjs.map +1 -0
  799. package/components/data/list/index.d.ts +5 -0
  800. package/components/data/list/list-item.directive.d.ts +53 -0
  801. package/components/data/list/list-item.props.d.ts +1 -0
  802. package/components/data/list/list.animator.d.ts +32 -0
  803. package/components/data/list/list.component.d.ts +226 -0
  804. package/components/data/list/list.props.d.ts +1 -0
  805. package/components/data/list/package.json +20 -0
  806. package/components/data/list/public_api.d.ts +2 -0
  807. package/components/data/live-table/.npmignore +2 -0
  808. package/components/data/live-table/bundles/index.umd.js +273 -0
  809. package/components/data/live-table/esm2022/index.mjs +5 -0
  810. package/components/data/live-table/esm2022/live-table.component.mjs +243 -0
  811. package/components/data/live-table/esm2022/live-table.props.mjs +10 -0
  812. package/components/data/live-table/esm2022/public_api.mjs +2 -0
  813. package/components/data/live-table/fesm2022/index.mjs +258 -0
  814. package/components/data/live-table/fesm2022/index.mjs.map +1 -0
  815. package/components/data/live-table/index.d.ts +5 -0
  816. package/components/data/live-table/live-table.component.d.ts +36 -0
  817. package/components/data/live-table/live-table.props.d.ts +1 -0
  818. package/components/data/live-table/package.json +20 -0
  819. package/components/data/live-table/public_api.d.ts +1 -0
  820. package/components/data/pagination/.npmignore +2 -0
  821. package/components/data/pagination/bundles/index.umd.js +850 -0
  822. package/components/data/pagination/esm2022/index.mjs +5 -0
  823. package/components/data/pagination/esm2022/pagination.component.mjs +817 -0
  824. package/components/data/pagination/esm2022/pagination.props.mjs +23 -0
  825. package/components/data/pagination/esm2022/public_api.mjs +2 -0
  826. package/components/data/pagination/fesm2022/index.mjs +845 -0
  827. package/components/data/pagination/fesm2022/index.mjs.map +1 -0
  828. package/components/data/pagination/index.d.ts +5 -0
  829. package/components/data/pagination/package.json +20 -0
  830. package/components/data/pagination/pagination.component.d.ts +101 -0
  831. package/components/data/pagination/pagination.props.d.ts +1 -0
  832. package/components/data/pagination/public_api.d.ts +1 -0
  833. package/components/data/table/.npmignore +2 -0
  834. package/components/data/table/bundles/index.umd.js +4848 -0
  835. package/components/data/table/esm2022/index.mjs +5 -0
  836. package/components/data/table/esm2022/public_api.mjs +9 -0
  837. package/components/data/table/esm2022/table-action/table-action.directive.mjs +83 -0
  838. package/components/data/table/esm2022/table-action/table-action.props.mjs +25 -0
  839. package/components/data/table/esm2022/table-column/table-column.directive.mjs +744 -0
  840. package/components/data/table/esm2022/table-column/table-column.props.mjs +93 -0
  841. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +80 -0
  842. package/components/data/table/esm2022/table-column-group/table-column-group.props.mjs +11 -0
  843. package/components/data/table/esm2022/table-cud.directive.mjs +484 -0
  844. package/components/data/table/esm2022/table-filter.directive.mjs +706 -0
  845. package/components/data/table/esm2022/table-row/table-row.directive.mjs +68 -0
  846. package/components/data/table/esm2022/table-row/table-row.props.mjs +16 -0
  847. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +81 -0
  848. package/components/data/table/esm2022/table-row-action/table-row-action.props.mjs +20 -0
  849. package/components/data/table/esm2022/table.component.mjs +2406 -0
  850. package/components/data/table/esm2022/table.props.mjs +70 -0
  851. package/components/data/table/fesm2022/index.mjs +4835 -0
  852. package/components/data/table/fesm2022/index.mjs.map +1 -0
  853. package/components/data/table/index.d.ts +5 -0
  854. package/components/data/table/package.json +20 -0
  855. package/components/data/table/public_api.d.ts +8 -0
  856. package/components/data/table/table-action/table-action.directive.d.ts +35 -0
  857. package/components/data/table/table-action/table-action.props.d.ts +1 -0
  858. package/components/data/table/table-column/table-column.directive.d.ts +152 -0
  859. package/components/data/table/table-column/table-column.props.d.ts +1 -0
  860. package/components/data/table/table-column-group/table-column-group.directive.d.ts +23 -0
  861. package/components/data/table/table-column-group/table-column-group.props.d.ts +1 -0
  862. package/components/data/table/table-cud.directive.d.ts +34 -0
  863. package/components/data/table/table-filter.directive.d.ts +35 -0
  864. package/components/data/table/table-row/table-row.directive.d.ts +25 -0
  865. package/components/data/table/table-row/table-row.props.d.ts +1 -0
  866. package/components/data/table/table-row-action/table-row-action.directive.d.ts +31 -0
  867. package/components/data/table/table-row-action/table-row-action.props.d.ts +1 -0
  868. package/components/data/table/table.component.d.ts +419 -0
  869. package/components/data/table/table.props.d.ts +1 -0
  870. package/components/dialogs/alert-dialog/.npmignore +2 -0
  871. package/components/dialogs/alert-dialog/alert-dialog.component.d.ts +23 -0
  872. package/components/dialogs/alert-dialog/alert-dialog.props.d.ts +1 -0
  873. package/components/dialogs/alert-dialog/bundles/index.umd.js +126 -0
  874. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +87 -0
  875. package/components/dialogs/alert-dialog/esm2022/alert-dialog.props.mjs +22 -0
  876. package/components/dialogs/alert-dialog/esm2022/index.mjs +5 -0
  877. package/components/dialogs/alert-dialog/esm2022/public_api.mjs +2 -0
  878. package/components/dialogs/alert-dialog/fesm2022/index.mjs +114 -0
  879. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -0
  880. package/components/dialogs/alert-dialog/index.d.ts +5 -0
  881. package/components/dialogs/alert-dialog/package.json +20 -0
  882. package/components/dialogs/alert-dialog/public_api.d.ts +1 -0
  883. package/components/dialogs/confirm-dialog/.npmignore +2 -0
  884. package/components/dialogs/confirm-dialog/bundles/index.umd.js +129 -0
  885. package/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +26 -0
  886. package/components/dialogs/confirm-dialog/confirm-dialog.props.d.ts +1 -0
  887. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +90 -0
  888. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.props.mjs +22 -0
  889. package/components/dialogs/confirm-dialog/esm2022/index.mjs +5 -0
  890. package/components/dialogs/confirm-dialog/esm2022/public_api.mjs +2 -0
  891. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +117 -0
  892. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -0
  893. package/components/dialogs/confirm-dialog/index.d.ts +5 -0
  894. package/components/dialogs/confirm-dialog/package.json +20 -0
  895. package/components/dialogs/confirm-dialog/public_api.d.ts +1 -0
  896. package/components/dialogs/default/.npmignore +2 -0
  897. package/components/dialogs/default/base-dialog.d.ts +45 -0
  898. package/components/dialogs/default/bundles/index.umd.js +379 -0
  899. package/components/dialogs/default/dialog-body/dialog-body.directive.d.ts +13 -0
  900. package/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +9 -0
  901. package/components/dialogs/default/dialog-footer/dialog-footer.props.d.ts +1 -0
  902. package/components/dialogs/default/dialog-header/dialog-header.component.d.ts +25 -0
  903. package/components/dialogs/default/esm2022/base-dialog.mjs +184 -0
  904. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +86 -0
  905. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +34 -0
  906. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.props.mjs +9 -0
  907. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +62 -0
  908. package/components/dialogs/default/esm2022/index.mjs +5 -0
  909. package/components/dialogs/default/esm2022/public_api.mjs +5 -0
  910. package/components/dialogs/default/fesm2022/index.mjs +364 -0
  911. package/components/dialogs/default/fesm2022/index.mjs.map +1 -0
  912. package/components/dialogs/default/index.d.ts +5 -0
  913. package/components/dialogs/default/package.json +20 -0
  914. package/components/dialogs/default/public_api.d.ts +4 -0
  915. package/components/dialogs/design-dialog/.npmignore +2 -0
  916. package/components/dialogs/design-dialog/bundles/index.umd.js +149 -0
  917. package/components/dialogs/design-dialog/dialog.component.d.ts +17 -0
  918. package/components/dialogs/design-dialog/dialog.props.d.ts +1 -0
  919. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +108 -0
  920. package/components/dialogs/design-dialog/esm2022/dialog.props.mjs +21 -0
  921. package/components/dialogs/design-dialog/esm2022/index.mjs +5 -0
  922. package/components/dialogs/design-dialog/esm2022/public_api.mjs +2 -0
  923. package/components/dialogs/design-dialog/fesm2022/index.mjs +134 -0
  924. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -0
  925. package/components/dialogs/design-dialog/index.d.ts +5 -0
  926. package/components/dialogs/design-dialog/package.json +20 -0
  927. package/components/dialogs/design-dialog/public_api.d.ts +1 -0
  928. package/components/dialogs/iframe-dialog/.npmignore +2 -0
  929. package/components/dialogs/iframe-dialog/bundles/index.umd.js +119 -0
  930. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +78 -0
  931. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.props.mjs +25 -0
  932. package/components/dialogs/iframe-dialog/esm2022/index.mjs +5 -0
  933. package/components/dialogs/iframe-dialog/esm2022/public_api.mjs +2 -0
  934. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +108 -0
  935. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -0
  936. package/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +19 -0
  937. package/components/dialogs/iframe-dialog/iframe-dialog.props.d.ts +1 -0
  938. package/components/dialogs/iframe-dialog/index.d.ts +5 -0
  939. package/components/dialogs/iframe-dialog/package.json +20 -0
  940. package/components/dialogs/iframe-dialog/public_api.d.ts +1 -0
  941. package/components/dialogs/login-dialog/.npmignore +2 -0
  942. package/components/dialogs/login-dialog/bundles/index.umd.js +114 -0
  943. package/components/dialogs/login-dialog/esm2022/index.mjs +5 -0
  944. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +91 -0
  945. package/components/dialogs/login-dialog/esm2022/public_api.mjs +2 -0
  946. package/components/dialogs/login-dialog/fesm2022/index.mjs +98 -0
  947. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -0
  948. package/components/dialogs/login-dialog/index.d.ts +5 -0
  949. package/components/dialogs/login-dialog/login-dialog.directive.d.ts +23 -0
  950. package/components/dialogs/login-dialog/package.json +20 -0
  951. package/components/dialogs/login-dialog/public_api.d.ts +1 -0
  952. package/components/dialogs/partial-dialog/.npmignore +2 -0
  953. package/components/dialogs/partial-dialog/bundles/index.umd.js +157 -0
  954. package/components/dialogs/partial-dialog/esm2022/index.mjs +5 -0
  955. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +119 -0
  956. package/components/dialogs/partial-dialog/esm2022/partial-dialog.props.mjs +22 -0
  957. package/components/dialogs/partial-dialog/esm2022/public_api.mjs +2 -0
  958. package/components/dialogs/partial-dialog/fesm2022/index.mjs +146 -0
  959. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -0
  960. package/components/dialogs/partial-dialog/index.d.ts +5 -0
  961. package/components/dialogs/partial-dialog/package.json +20 -0
  962. package/components/dialogs/partial-dialog/partial-dialog.component.d.ts +29 -0
  963. package/components/dialogs/partial-dialog/partial-dialog.props.d.ts +1 -0
  964. package/components/dialogs/partial-dialog/public_api.d.ts +1 -0
  965. package/components/input/base-form/.npmignore +2 -0
  966. package/components/input/base-form/base-form.component.d.ts +26 -0
  967. package/components/input/base-form/bundles/index.umd.js +147 -0
  968. package/components/input/base-form/esm2022/base-form.component.mjs +124 -0
  969. package/components/input/base-form/esm2022/index.mjs +5 -0
  970. package/components/input/base-form/esm2022/public_api.mjs +2 -0
  971. package/components/input/base-form/fesm2022/index.mjs +131 -0
  972. package/components/input/base-form/fesm2022/index.mjs.map +1 -0
  973. package/components/input/base-form/index.d.ts +5 -0
  974. package/components/input/base-form/package.json +20 -0
  975. package/components/input/base-form/public_api.d.ts +1 -0
  976. package/components/input/base-form-custom/.npmignore +2 -0
  977. package/components/input/base-form-custom/base-form-custom.component.d.ts +23 -0
  978. package/components/input/base-form-custom/bundles/index.umd.js +129 -0
  979. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +105 -0
  980. package/components/input/base-form-custom/esm2022/index.mjs +5 -0
  981. package/components/input/base-form-custom/esm2022/public_api.mjs +2 -0
  982. package/components/input/base-form-custom/fesm2022/index.mjs +112 -0
  983. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -0
  984. package/components/input/base-form-custom/index.d.ts +5 -0
  985. package/components/input/base-form-custom/package.json +20 -0
  986. package/components/input/base-form-custom/public_api.d.ts +1 -0
  987. package/components/input/button/.npmignore +2 -0
  988. package/components/input/button/bundles/index.umd.js +98 -0
  989. package/components/input/button/button.component.d.ts +19 -0
  990. package/components/input/button/button.props.d.ts +1 -0
  991. package/components/input/button/esm2022/button.component.mjs +50 -0
  992. package/components/input/button/esm2022/button.props.mjs +26 -0
  993. package/components/input/button/esm2022/index.mjs +5 -0
  994. package/components/input/button/esm2022/public_api.mjs +2 -0
  995. package/components/input/button/fesm2022/index.mjs +81 -0
  996. package/components/input/button/fesm2022/index.mjs.map +1 -0
  997. package/components/input/button/index.d.ts +5 -0
  998. package/components/input/button/package.json +20 -0
  999. package/components/input/button/public_api.d.ts +1 -0
  1000. package/components/input/button-group/.npmignore +2 -0
  1001. package/components/input/button-group/bundles/index.umd.js +80 -0
  1002. package/components/input/button-group/button-group.directive.d.ts +11 -0
  1003. package/components/input/button-group/button-group.props.d.ts +1 -0
  1004. package/components/input/button-group/esm2022/button-group.directive.mjs +47 -0
  1005. package/components/input/button-group/esm2022/button-group.props.mjs +10 -0
  1006. package/components/input/button-group/esm2022/index.mjs +5 -0
  1007. package/components/input/button-group/esm2022/public_api.mjs +2 -0
  1008. package/components/input/button-group/fesm2022/index.mjs +62 -0
  1009. package/components/input/button-group/fesm2022/index.mjs.map +1 -0
  1010. package/components/input/button-group/index.d.ts +5 -0
  1011. package/components/input/button-group/package.json +20 -0
  1012. package/components/input/button-group/public_api.d.ts +1 -0
  1013. package/components/input/calendar/.npmignore +2 -0
  1014. package/components/input/calendar/bundles/index.umd.js +655 -0
  1015. package/components/input/calendar/calendar.component.d.ts +128 -0
  1016. package/components/input/calendar/calendar.props.d.ts +1 -0
  1017. package/components/input/calendar/esm2022/calendar.component.mjs +637 -0
  1018. package/components/input/calendar/esm2022/calendar.props.mjs +23 -0
  1019. package/components/input/calendar/esm2022/index.mjs +5 -0
  1020. package/components/input/calendar/esm2022/public_api.mjs +2 -0
  1021. package/components/input/calendar/fesm2022/index.mjs +665 -0
  1022. package/components/input/calendar/fesm2022/index.mjs.map +1 -0
  1023. package/components/input/calendar/index.d.ts +5 -0
  1024. package/components/input/calendar/package.json +20 -0
  1025. package/components/input/calendar/public_api.d.ts +1 -0
  1026. package/components/input/caption-position/.npmignore +2 -0
  1027. package/components/input/caption-position/bundles/index.umd.js +196 -0
  1028. package/components/input/caption-position/caption-position.directive.d.ts +31 -0
  1029. package/components/input/caption-position/esm2022/caption-position.directive.mjs +172 -0
  1030. package/components/input/caption-position/esm2022/index.mjs +5 -0
  1031. package/components/input/caption-position/esm2022/public_api.mjs +2 -0
  1032. package/components/input/caption-position/fesm2022/index.mjs +178 -0
  1033. package/components/input/caption-position/fesm2022/index.mjs.map +1 -0
  1034. package/components/input/caption-position/index.d.ts +5 -0
  1035. package/components/input/caption-position/package.json +20 -0
  1036. package/components/input/caption-position/public_api.d.ts +1 -0
  1037. package/components/input/checkbox/.npmignore +2 -0
  1038. package/components/input/checkbox/bundles/index.umd.js +206 -0
  1039. package/components/input/checkbox/checkbox.component.d.ts +36 -0
  1040. package/components/input/checkbox/checkbox.props.d.ts +2 -0
  1041. package/components/input/checkbox/esm2022/checkbox.component.mjs +158 -0
  1042. package/components/input/checkbox/esm2022/checkbox.props.mjs +30 -0
  1043. package/components/input/checkbox/esm2022/index.mjs +5 -0
  1044. package/components/input/checkbox/esm2022/public_api.mjs +2 -0
  1045. package/components/input/checkbox/fesm2022/index.mjs +191 -0
  1046. package/components/input/checkbox/fesm2022/index.mjs.map +1 -0
  1047. package/components/input/checkbox/index.d.ts +5 -0
  1048. package/components/input/checkbox/package.json +20 -0
  1049. package/components/input/checkbox/public_api.d.ts +1 -0
  1050. package/components/input/checkboxset/.npmignore +2 -0
  1051. package/components/input/checkboxset/bundles/index.umd.js +178 -0
  1052. package/components/input/checkboxset/checkboxset.component.d.ts +24 -0
  1053. package/components/input/checkboxset/checkboxset.props.d.ts +2 -0
  1054. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +125 -0
  1055. package/components/input/checkboxset/esm2022/checkboxset.props.mjs +36 -0
  1056. package/components/input/checkboxset/esm2022/index.mjs +5 -0
  1057. package/components/input/checkboxset/esm2022/public_api.mjs +2 -0
  1058. package/components/input/checkboxset/fesm2022/index.mjs +165 -0
  1059. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -0
  1060. package/components/input/checkboxset/index.d.ts +5 -0
  1061. package/components/input/checkboxset/package.json +20 -0
  1062. package/components/input/checkboxset/public_api.d.ts +1 -0
  1063. package/components/input/chips/.npmignore +2 -0
  1064. package/components/input/chips/bundles/index.umd.js +741 -0
  1065. package/components/input/chips/chips.component.d.ts +87 -0
  1066. package/components/input/chips/chips.props.d.ts +2 -0
  1067. package/components/input/chips/esm2022/chips.component.mjs +676 -0
  1068. package/components/input/chips/esm2022/chips.props.mjs +49 -0
  1069. package/components/input/chips/esm2022/index.mjs +5 -0
  1070. package/components/input/chips/esm2022/public_api.mjs +2 -0
  1071. package/components/input/chips/fesm2022/index.mjs +729 -0
  1072. package/components/input/chips/fesm2022/index.mjs.map +1 -0
  1073. package/components/input/chips/index.d.ts +5 -0
  1074. package/components/input/chips/package.json +20 -0
  1075. package/components/input/chips/public_api.d.ts +1 -0
  1076. package/components/input/color-picker/.npmignore +2 -0
  1077. package/components/input/color-picker/bundles/index.umd.js +145 -0
  1078. package/components/input/color-picker/color-picker.component.d.ts +33 -0
  1079. package/components/input/color-picker/color-picker.props.d.ts +2 -0
  1080. package/components/input/color-picker/esm2022/color-picker.component.mjs +107 -0
  1081. package/components/input/color-picker/esm2022/color-picker.props.mjs +22 -0
  1082. package/components/input/color-picker/esm2022/index.mjs +5 -0
  1083. package/components/input/color-picker/esm2022/public_api.mjs +2 -0
  1084. package/components/input/color-picker/fesm2022/index.mjs +132 -0
  1085. package/components/input/color-picker/fesm2022/index.mjs.map +1 -0
  1086. package/components/input/color-picker/index.d.ts +5 -0
  1087. package/components/input/color-picker/package.json +20 -0
  1088. package/components/input/color-picker/public_api.d.ts +1 -0
  1089. package/components/input/composite/.npmignore +2 -0
  1090. package/components/input/composite/bundles/index.umd.js +120 -0
  1091. package/components/input/composite/composite.directive.d.ts +24 -0
  1092. package/components/input/composite/composite.props.d.ts +1 -0
  1093. package/components/input/composite/esm2022/composite.directive.mjs +88 -0
  1094. package/components/input/composite/esm2022/composite.props.mjs +10 -0
  1095. package/components/input/composite/esm2022/index.mjs +5 -0
  1096. package/components/input/composite/esm2022/public_api.mjs +2 -0
  1097. package/components/input/composite/fesm2022/index.mjs +103 -0
  1098. package/components/input/composite/fesm2022/index.mjs.map +1 -0
  1099. package/components/input/composite/index.d.ts +5 -0
  1100. package/components/input/composite/package.json +20 -0
  1101. package/components/input/composite/public_api.d.ts +1 -0
  1102. package/components/input/currency/.npmignore +2 -0
  1103. package/components/input/currency/bundles/index.umd.js +112 -0
  1104. package/components/input/currency/currency.component.d.ts +28 -0
  1105. package/components/input/currency/currency.props.d.ts +2 -0
  1106. package/components/input/currency/esm2022/currency.component.mjs +67 -0
  1107. package/components/input/currency/esm2022/currency.props.mjs +27 -0
  1108. package/components/input/currency/esm2022/index.mjs +5 -0
  1109. package/components/input/currency/esm2022/public_api.mjs +2 -0
  1110. package/components/input/currency/fesm2022/index.mjs +97 -0
  1111. package/components/input/currency/fesm2022/index.mjs.map +1 -0
  1112. package/components/input/currency/index.d.ts +5 -0
  1113. package/components/input/currency/package.json +20 -0
  1114. package/components/input/currency/public_api.d.ts +1 -0
  1115. package/components/input/dataset-aware-form/.npmignore +2 -0
  1116. package/components/input/dataset-aware-form/bundles/index.umd.js +352 -0
  1117. package/components/input/dataset-aware-form/dataset-aware-form.component.d.ts +76 -0
  1118. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +331 -0
  1119. package/components/input/dataset-aware-form/esm2022/index.mjs +5 -0
  1120. package/components/input/dataset-aware-form/esm2022/public_api.mjs +2 -0
  1121. package/components/input/dataset-aware-form/fesm2022/index.mjs +338 -0
  1122. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -0
  1123. package/components/input/dataset-aware-form/index.d.ts +5 -0
  1124. package/components/input/dataset-aware-form/package.json +20 -0
  1125. package/components/input/dataset-aware-form/public_api.d.ts +1 -0
  1126. package/components/input/epoch/base-date-time/.npmignore +2 -0
  1127. package/components/input/epoch/base-date-time/base-date-time.component.d.ts +246 -0
  1128. package/components/input/epoch/base-date-time/bundles/index.umd.js +1093 -0
  1129. package/components/input/epoch/base-date-time/esm2022/base-date-time.component.mjs +1077 -0
  1130. package/components/input/epoch/base-date-time/esm2022/index.mjs +5 -0
  1131. package/components/input/epoch/base-date-time/esm2022/public_api.mjs +2 -0
  1132. package/components/input/epoch/base-date-time/fesm2022/index.mjs +1084 -0
  1133. package/components/input/epoch/base-date-time/fesm2022/index.mjs.map +1 -0
  1134. package/components/input/epoch/base-date-time/index.d.ts +5 -0
  1135. package/components/input/epoch/base-date-time/package.json +20 -0
  1136. package/components/input/epoch/base-date-time/public_api.d.ts +1 -0
  1137. package/components/input/epoch/date/.npmignore +2 -0
  1138. package/components/input/epoch/date/bundles/index.umd.js +515 -0
  1139. package/components/input/epoch/date/date.component.d.ts +61 -0
  1140. package/components/input/epoch/date/date.props.d.ts +2 -0
  1141. package/components/input/epoch/date/esm2022/date.component.mjs +345 -0
  1142. package/components/input/epoch/date/esm2022/date.props.mjs +43 -0
  1143. package/components/input/epoch/date/esm2022/imaskUtil.mjs +114 -0
  1144. package/components/input/epoch/date/esm2022/index.mjs +5 -0
  1145. package/components/input/epoch/date/esm2022/public_api.mjs +2 -0
  1146. package/components/input/epoch/date/fesm2022/index.mjs +505 -0
  1147. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -0
  1148. package/components/input/epoch/date/imaskUtil.d.ts +92 -0
  1149. package/components/input/epoch/date/index.d.ts +5 -0
  1150. package/components/input/epoch/date/package.json +20 -0
  1151. package/components/input/epoch/date/public_api.d.ts +1 -0
  1152. package/components/input/epoch/date-time/.npmignore +2 -0
  1153. package/components/input/epoch/date-time/bundles/index.umd.js +519 -0
  1154. package/components/input/epoch/date-time/date-time.component.d.ts +109 -0
  1155. package/components/input/epoch/date-time/date-time.props.d.ts +2 -0
  1156. package/components/input/epoch/date-time/esm2022/date-time.component.mjs +459 -0
  1157. package/components/input/epoch/date-time/esm2022/date-time.props.mjs +47 -0
  1158. package/components/input/epoch/date-time/esm2022/index.mjs +5 -0
  1159. package/components/input/epoch/date-time/esm2022/public_api.mjs +2 -0
  1160. package/components/input/epoch/date-time/fesm2022/index.mjs +510 -0
  1161. package/components/input/epoch/date-time/fesm2022/index.mjs.map +1 -0
  1162. package/components/input/epoch/date-time/index.d.ts +5 -0
  1163. package/components/input/epoch/date-time/package.json +20 -0
  1164. package/components/input/epoch/date-time/public_api.d.ts +1 -0
  1165. package/components/input/epoch/date-time-picker/.npmignore +2 -0
  1166. package/components/input/epoch/date-time-picker/bundles/index.umd.js +453 -0
  1167. package/components/input/epoch/date-time-picker/date-time-picker.component.d.ts +80 -0
  1168. package/components/input/epoch/date-time-picker/esm2022/date-time-picker.component.mjs +433 -0
  1169. package/components/input/epoch/date-time-picker/esm2022/index.mjs +5 -0
  1170. package/components/input/epoch/date-time-picker/esm2022/public_api.mjs +2 -0
  1171. package/components/input/epoch/date-time-picker/fesm2022/index.mjs +439 -0
  1172. package/components/input/epoch/date-time-picker/fesm2022/index.mjs.map +1 -0
  1173. package/components/input/epoch/date-time-picker/index.d.ts +5 -0
  1174. package/components/input/epoch/date-time-picker/package.json +20 -0
  1175. package/components/input/epoch/date-time-picker/public_api.d.ts +1 -0
  1176. package/components/input/epoch/picker/.npmignore +2 -0
  1177. package/components/input/epoch/picker/bundles/index.umd.js +192 -0
  1178. package/components/input/epoch/picker/esm2022/index.mjs +5 -0
  1179. package/components/input/epoch/picker/esm2022/picker.component.mjs +165 -0
  1180. package/components/input/epoch/picker/esm2022/public_api.mjs +3 -0
  1181. package/components/input/epoch/picker/fesm2022/index.mjs +172 -0
  1182. package/components/input/epoch/picker/fesm2022/index.mjs.map +1 -0
  1183. package/components/input/epoch/picker/index.d.ts +5 -0
  1184. package/components/input/epoch/picker/package.json +20 -0
  1185. package/components/input/epoch/picker/picker.component.d.ts +36 -0
  1186. package/components/input/epoch/picker/public_api.d.ts +2 -0
  1187. package/components/input/epoch/time/.npmignore +2 -0
  1188. package/components/input/epoch/time/bundles/index.umd.js +401 -0
  1189. package/components/input/epoch/time/esm2022/index.mjs +5 -0
  1190. package/components/input/epoch/time/esm2022/public_api.mjs +2 -0
  1191. package/components/input/epoch/time/esm2022/time.component.mjs +352 -0
  1192. package/components/input/epoch/time/esm2022/time.props.mjs +35 -0
  1193. package/components/input/epoch/time/fesm2022/index.mjs +391 -0
  1194. package/components/input/epoch/time/fesm2022/index.mjs.map +1 -0
  1195. package/components/input/epoch/time/index.d.ts +5 -0
  1196. package/components/input/epoch/time/package.json +20 -0
  1197. package/components/input/epoch/time/public_api.d.ts +1 -0
  1198. package/components/input/epoch/time/time.component.d.ts +105 -0
  1199. package/components/input/epoch/time/time.props.d.ts +2 -0
  1200. package/components/input/file-upload/.npmignore +2 -0
  1201. package/components/input/file-upload/bundles/index.umd.js +483 -0
  1202. package/components/input/file-upload/esm2022/file-upload.component.mjs +426 -0
  1203. package/components/input/file-upload/esm2022/file-upload.props.mjs +39 -0
  1204. package/components/input/file-upload/esm2022/index.mjs +5 -0
  1205. package/components/input/file-upload/esm2022/public_api.mjs +2 -0
  1206. package/components/input/file-upload/fesm2022/index.mjs +469 -0
  1207. package/components/input/file-upload/fesm2022/index.mjs.map +1 -0
  1208. package/components/input/file-upload/file-upload.component.d.ts +103 -0
  1209. package/components/input/file-upload/file-upload.props.d.ts +1 -0
  1210. package/components/input/file-upload/index.d.ts +5 -0
  1211. package/components/input/file-upload/package.json +20 -0
  1212. package/components/input/file-upload/public_api.d.ts +1 -0
  1213. package/components/input/number/.npmignore +2 -0
  1214. package/components/input/number/bundles/index.umd.js +109 -0
  1215. package/components/input/number/esm2022/index.mjs +5 -0
  1216. package/components/input/number/esm2022/number.component.mjs +57 -0
  1217. package/components/input/number/esm2022/number.props.mjs +35 -0
  1218. package/components/input/number/esm2022/public_api.mjs +2 -0
  1219. package/components/input/number/fesm2022/index.mjs +95 -0
  1220. package/components/input/number/fesm2022/index.mjs.map +1 -0
  1221. package/components/input/number/index.d.ts +5 -0
  1222. package/components/input/number/number.component.d.ts +26 -0
  1223. package/components/input/number/number.props.d.ts +2 -0
  1224. package/components/input/number/package.json +20 -0
  1225. package/components/input/number/public_api.d.ts +1 -0
  1226. package/components/input/radioset/.npmignore +2 -0
  1227. package/components/input/radioset/bundles/index.umd.js +164 -0
  1228. package/components/input/radioset/esm2022/index.mjs +5 -0
  1229. package/components/input/radioset/esm2022/public_api.mjs +2 -0
  1230. package/components/input/radioset/esm2022/radioset.component.mjs +110 -0
  1231. package/components/input/radioset/esm2022/radioset.props.mjs +37 -0
  1232. package/components/input/radioset/fesm2022/index.mjs +151 -0
  1233. package/components/input/radioset/fesm2022/index.mjs.map +1 -0
  1234. package/components/input/radioset/index.d.ts +5 -0
  1235. package/components/input/radioset/package.json +20 -0
  1236. package/components/input/radioset/public_api.d.ts +1 -0
  1237. package/components/input/radioset/radioset.component.d.ts +23 -0
  1238. package/components/input/radioset/radioset.props.d.ts +2 -0
  1239. package/components/input/rating/.npmignore +2 -0
  1240. package/components/input/rating/bundles/index.umd.js +270 -0
  1241. package/components/input/rating/esm2022/index.mjs +5 -0
  1242. package/components/input/rating/esm2022/public_api.mjs +2 -0
  1243. package/components/input/rating/esm2022/rating.component.mjs +225 -0
  1244. package/components/input/rating/esm2022/rating.props.mjs +29 -0
  1245. package/components/input/rating/fesm2022/index.mjs +257 -0
  1246. package/components/input/rating/fesm2022/index.mjs.map +1 -0
  1247. package/components/input/rating/index.d.ts +5 -0
  1248. package/components/input/rating/package.json +20 -0
  1249. package/components/input/rating/public_api.d.ts +1 -0
  1250. package/components/input/rating/rating.component.d.ts +44 -0
  1251. package/components/input/rating/rating.props.d.ts +2 -0
  1252. package/components/input/select/.npmignore +2 -0
  1253. package/components/input/select/bundles/index.umd.js +225 -0
  1254. package/components/input/select/esm2022/index.mjs +5 -0
  1255. package/components/input/select/esm2022/public_api.mjs +2 -0
  1256. package/components/input/select/esm2022/select.component.mjs +172 -0
  1257. package/components/input/select/esm2022/select.props.mjs +36 -0
  1258. package/components/input/select/fesm2022/index.mjs +211 -0
  1259. package/components/input/select/fesm2022/index.mjs.map +1 -0
  1260. package/components/input/select/index.d.ts +5 -0
  1261. package/components/input/select/package.json +20 -0
  1262. package/components/input/select/public_api.d.ts +1 -0
  1263. package/components/input/select/select.component.d.ts +36 -0
  1264. package/components/input/select/select.props.d.ts +2 -0
  1265. package/components/input/slider/.npmignore +2 -0
  1266. package/components/input/slider/bundles/index.umd.js +203 -0
  1267. package/components/input/slider/esm2022/index.mjs +5 -0
  1268. package/components/input/slider/esm2022/public_api.mjs +2 -0
  1269. package/components/input/slider/esm2022/slider.component.mjs +157 -0
  1270. package/components/input/slider/esm2022/slider.props.mjs +28 -0
  1271. package/components/input/slider/fesm2022/index.mjs +189 -0
  1272. package/components/input/slider/fesm2022/index.mjs.map +1 -0
  1273. package/components/input/slider/index.d.ts +5 -0
  1274. package/components/input/slider/package.json +20 -0
  1275. package/components/input/slider/public_api.d.ts +1 -0
  1276. package/components/input/slider/slider.component.d.ts +39 -0
  1277. package/components/input/slider/slider.props.d.ts +2 -0
  1278. package/components/input/switch/.npmignore +2 -0
  1279. package/components/input/switch/bundles/index.umd.js +224 -0
  1280. package/components/input/switch/esm2022/index.mjs +5 -0
  1281. package/components/input/switch/esm2022/public_api.mjs +2 -0
  1282. package/components/input/switch/esm2022/switch.component.mjs +179 -0
  1283. package/components/input/switch/esm2022/switch.props.mjs +28 -0
  1284. package/components/input/switch/fesm2022/index.mjs +211 -0
  1285. package/components/input/switch/fesm2022/index.mjs.map +1 -0
  1286. package/components/input/switch/index.d.ts +5 -0
  1287. package/components/input/switch/package.json +20 -0
  1288. package/components/input/switch/public_api.d.ts +1 -0
  1289. package/components/input/switch/switch.component.d.ts +30 -0
  1290. package/components/input/switch/switch.props.d.ts +2 -0
  1291. package/components/input/text/.npmignore +2 -0
  1292. package/components/input/text/base-input/base-input.d.ts +33 -0
  1293. package/components/input/text/bundles/index.umd.js +1130 -0
  1294. package/components/input/text/esm2022/base-input/base-input.mjs +93 -0
  1295. package/components/input/text/esm2022/index.mjs +5 -0
  1296. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +53 -0
  1297. package/components/input/text/esm2022/input-calendar/input-calendar.props.mjs +30 -0
  1298. package/components/input/text/esm2022/input-color/input-color.component.mjs +53 -0
  1299. package/components/input/text/esm2022/input-color/input-color.props.mjs +27 -0
  1300. package/components/input/text/esm2022/input-email/input-email.component.mjs +53 -0
  1301. package/components/input/text/esm2022/input-email/input-email.props.mjs +29 -0
  1302. package/components/input/text/esm2022/input-number/input-number.component.mjs +63 -0
  1303. package/components/input/text/esm2022/input-number/input-number.props.mjs +32 -0
  1304. package/components/input/text/esm2022/input-text/input-text.component.mjs +136 -0
  1305. package/components/input/text/esm2022/input-text/input-text.props.mjs +48 -0
  1306. package/components/input/text/esm2022/number-locale/number-locale.mjs +554 -0
  1307. package/components/input/text/esm2022/public_api.mjs +8 -0
  1308. package/components/input/text/fesm2022/index.mjs +1114 -0
  1309. package/components/input/text/fesm2022/index.mjs.map +1 -0
  1310. package/components/input/text/index.d.ts +5 -0
  1311. package/components/input/text/input-calendar/input-calendar.component.d.ts +30 -0
  1312. package/components/input/text/input-calendar/input-calendar.props.d.ts +2 -0
  1313. package/components/input/text/input-color/input-color.component.d.ts +27 -0
  1314. package/components/input/text/input-color/input-color.props.d.ts +2 -0
  1315. package/components/input/text/input-email/input-email.component.d.ts +29 -0
  1316. package/components/input/text/input-email/input-email.props.d.ts +2 -0
  1317. package/components/input/text/input-number/input-number.component.d.ts +33 -0
  1318. package/components/input/text/input-number/input-number.props.d.ts +2 -0
  1319. package/components/input/text/input-text/input-text.component.d.ts +52 -0
  1320. package/components/input/text/input-text/input-text.props.d.ts +2 -0
  1321. package/components/input/text/number-locale/number-locale.d.ts +127 -0
  1322. package/components/input/text/package.json +20 -0
  1323. package/components/input/text/public_api.d.ts +7 -0
  1324. package/components/input/textarea/.npmignore +2 -0
  1325. package/components/input/textarea/bundles/index.umd.js +108 -0
  1326. package/components/input/textarea/esm2022/index.mjs +5 -0
  1327. package/components/input/textarea/esm2022/public_api.mjs +2 -0
  1328. package/components/input/textarea/esm2022/textarea.component.mjs +60 -0
  1329. package/components/input/textarea/esm2022/textarea.props.mjs +30 -0
  1330. package/components/input/textarea/fesm2022/index.mjs +94 -0
  1331. package/components/input/textarea/fesm2022/index.mjs.map +1 -0
  1332. package/components/input/textarea/index.d.ts +5 -0
  1333. package/components/input/textarea/package.json +20 -0
  1334. package/components/input/textarea/public_api.d.ts +1 -0
  1335. package/components/input/textarea/textarea.component.d.ts +30 -0
  1336. package/components/input/textarea/textarea.props.d.ts +2 -0
  1337. package/components/navigation/breadcrumb/.npmignore +2 -0
  1338. package/components/navigation/breadcrumb/breadcrumb.component.d.ts +25 -0
  1339. package/components/navigation/breadcrumb/breadcrumb.props.d.ts +1 -0
  1340. package/components/navigation/breadcrumb/bundles/index.umd.js +138 -0
  1341. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +101 -0
  1342. package/components/navigation/breadcrumb/esm2022/breadcrumb.props.mjs +17 -0
  1343. package/components/navigation/breadcrumb/esm2022/index.mjs +5 -0
  1344. package/components/navigation/breadcrumb/esm2022/public_api.mjs +2 -0
  1345. package/components/navigation/breadcrumb/fesm2022/index.mjs +121 -0
  1346. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -0
  1347. package/components/navigation/breadcrumb/index.d.ts +5 -0
  1348. package/components/navigation/breadcrumb/package.json +20 -0
  1349. package/components/navigation/breadcrumb/public_api.d.ts +1 -0
  1350. package/components/navigation/menu/.npmignore +2 -0
  1351. package/components/navigation/menu/bundles/index.umd.js +947 -0
  1352. package/components/navigation/menu/esm2022/index.mjs +5 -0
  1353. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +80 -0
  1354. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +105 -0
  1355. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +191 -0
  1356. package/components/navigation/menu/esm2022/menu.component.mjs +282 -0
  1357. package/components/navigation/menu/esm2022/menu.props.mjs +37 -0
  1358. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +66 -0
  1359. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.props.mjs +9 -0
  1360. package/components/navigation/menu/esm2022/nav/nav.component.mjs +131 -0
  1361. package/components/navigation/menu/esm2022/nav/nav.props.mjs +28 -0
  1362. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +49 -0
  1363. package/components/navigation/menu/esm2022/public_api.mjs +8 -0
  1364. package/components/navigation/menu/fesm2022/index.mjs +929 -0
  1365. package/components/navigation/menu/fesm2022/index.mjs.map +1 -0
  1366. package/components/navigation/menu/index.d.ts +5 -0
  1367. package/components/navigation/menu/menu-adapator.component.d.ts +23 -0
  1368. package/components/navigation/menu/menu-dropdown/menu-dropdown.component.d.ts +15 -0
  1369. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +35 -0
  1370. package/components/navigation/menu/menu.component.d.ts +65 -0
  1371. package/components/navigation/menu/menu.props.d.ts +1 -0
  1372. package/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +14 -0
  1373. package/components/navigation/menu/nav/nav-item/nav-item.props.d.ts +1 -0
  1374. package/components/navigation/menu/nav/nav.component.d.ts +35 -0
  1375. package/components/navigation/menu/nav/nav.props.d.ts +1 -0
  1376. package/components/navigation/menu/nav/navigation-control.directive.d.ts +14 -0
  1377. package/components/navigation/menu/package.json +20 -0
  1378. package/components/navigation/menu/public_api.d.ts +7 -0
  1379. package/components/navigation/navbar/.npmignore +2 -0
  1380. package/components/navigation/navbar/bundles/index.umd.js +87 -0
  1381. package/components/navigation/navbar/esm2022/index.mjs +5 -0
  1382. package/components/navigation/navbar/esm2022/navbar.component.mjs +52 -0
  1383. package/components/navigation/navbar/esm2022/navbar.props.mjs +13 -0
  1384. package/components/navigation/navbar/esm2022/public_api.mjs +2 -0
  1385. package/components/navigation/navbar/fesm2022/index.mjs +70 -0
  1386. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -0
  1387. package/components/navigation/navbar/index.d.ts +5 -0
  1388. package/components/navigation/navbar/navbar.component.d.ts +16 -0
  1389. package/components/navigation/navbar/navbar.props.d.ts +1 -0
  1390. package/components/navigation/navbar/package.json +20 -0
  1391. package/components/navigation/navbar/public_api.d.ts +1 -0
  1392. package/components/navigation/popover/.npmignore +2 -0
  1393. package/components/navigation/popover/bundles/index.umd.js +514 -0
  1394. package/components/navigation/popover/esm2022/index.mjs +5 -0
  1395. package/components/navigation/popover/esm2022/popover.component.mjs +460 -0
  1396. package/components/navigation/popover/esm2022/popover.props.mjs +35 -0
  1397. package/components/navigation/popover/esm2022/public_api.mjs +2 -0
  1398. package/components/navigation/popover/fesm2022/index.mjs +500 -0
  1399. package/components/navigation/popover/fesm2022/index.mjs.map +1 -0
  1400. package/components/navigation/popover/index.d.ts +5 -0
  1401. package/components/navigation/popover/package.json +20 -0
  1402. package/components/navigation/popover/popover.component.d.ts +83 -0
  1403. package/components/navigation/popover/popover.props.d.ts +1 -0
  1404. package/components/navigation/popover/public_api.d.ts +1 -0
  1405. package/components/page/default/.npmignore +2 -0
  1406. package/components/page/default/bundles/index.umd.js +458 -0
  1407. package/components/page/default/content/content.component.d.ts +9 -0
  1408. package/components/page/default/content/content.props.d.ts +1 -0
  1409. package/components/page/default/esm2022/content/content.component.mjs +29 -0
  1410. package/components/page/default/esm2022/content/content.props.mjs +8 -0
  1411. package/components/page/default/esm2022/index.mjs +5 -0
  1412. package/components/page/default/esm2022/layout.directive.mjs +58 -0
  1413. package/components/page/default/esm2022/layout.props.mjs +5 -0
  1414. package/components/page/default/esm2022/page-content/page-content.component.mjs +85 -0
  1415. package/components/page/default/esm2022/page-content/page-content.props.mjs +14 -0
  1416. package/components/page/default/esm2022/page.directive.mjs +97 -0
  1417. package/components/page/default/esm2022/page.props.mjs +11 -0
  1418. package/components/page/default/esm2022/public_api.mjs +7 -0
  1419. package/components/page/default/esm2022/router-outlet.directive.mjs +47 -0
  1420. package/components/page/default/esm2022/router-outlet.props.mjs +8 -0
  1421. package/components/page/default/esm2022/spa-page.directive.mjs +97 -0
  1422. package/components/page/default/esm2022/spa-page.props.mjs +10 -0
  1423. package/components/page/default/fesm2022/index.mjs +438 -0
  1424. package/components/page/default/fesm2022/index.mjs.map +1 -0
  1425. package/components/page/default/index.d.ts +5 -0
  1426. package/components/page/default/layout.directive.d.ts +20 -0
  1427. package/components/page/default/layout.props.d.ts +1 -0
  1428. package/components/page/default/package.json +20 -0
  1429. package/components/page/default/page-content/page-content.component.d.ts +17 -0
  1430. package/components/page/default/page-content/page-content.props.d.ts +1 -0
  1431. package/components/page/default/page.directive.d.ts +38 -0
  1432. package/components/page/default/page.props.d.ts +1 -0
  1433. package/components/page/default/public_api.d.ts +6 -0
  1434. package/components/page/default/router-outlet.directive.d.ts +13 -0
  1435. package/components/page/default/router-outlet.props.d.ts +1 -0
  1436. package/components/page/default/spa-page.directive.d.ts +38 -0
  1437. package/components/page/default/spa-page.props.d.ts +1 -0
  1438. package/components/page/footer/.npmignore +2 -0
  1439. package/components/page/footer/bundles/index.umd.js +71 -0
  1440. package/components/page/footer/esm2022/footer.directive.mjs +37 -0
  1441. package/components/page/footer/esm2022/footer.props.mjs +11 -0
  1442. package/components/page/footer/esm2022/index.mjs +5 -0
  1443. package/components/page/footer/esm2022/public_api.mjs +2 -0
  1444. package/components/page/footer/fesm2022/index.mjs +53 -0
  1445. package/components/page/footer/fesm2022/index.mjs.map +1 -0
  1446. package/components/page/footer/footer.directive.d.ts +9 -0
  1447. package/components/page/footer/footer.props.d.ts +1 -0
  1448. package/components/page/footer/index.d.ts +5 -0
  1449. package/components/page/footer/package.json +20 -0
  1450. package/components/page/footer/public_api.d.ts +1 -0
  1451. package/components/page/header/.npmignore +2 -0
  1452. package/components/page/header/bundles/index.umd.js +67 -0
  1453. package/components/page/header/esm2022/header.component.mjs +33 -0
  1454. package/components/page/header/esm2022/header.props.mjs +11 -0
  1455. package/components/page/header/esm2022/index.mjs +5 -0
  1456. package/components/page/header/esm2022/public_api.mjs +2 -0
  1457. package/components/page/header/fesm2022/index.mjs +49 -0
  1458. package/components/page/header/fesm2022/index.mjs.map +1 -0
  1459. package/components/page/header/header.component.d.ts +10 -0
  1460. package/components/page/header/header.props.d.ts +1 -0
  1461. package/components/page/header/index.d.ts +5 -0
  1462. package/components/page/header/package.json +20 -0
  1463. package/components/page/header/public_api.d.ts +1 -0
  1464. package/components/page/left-panel/.npmignore +2 -0
  1465. package/components/page/left-panel/bundles/index.umd.js +415 -0
  1466. package/components/page/left-panel/esm2022/index.mjs +5 -0
  1467. package/components/page/left-panel/esm2022/left-panel.animator.mjs +133 -0
  1468. package/components/page/left-panel/esm2022/left-panel.directive.mjs +251 -0
  1469. package/components/page/left-panel/esm2022/left-panel.props.mjs +15 -0
  1470. package/components/page/left-panel/esm2022/public_api.mjs +2 -0
  1471. package/components/page/left-panel/fesm2022/index.mjs +400 -0
  1472. package/components/page/left-panel/fesm2022/index.mjs.map +1 -0
  1473. package/components/page/left-panel/index.d.ts +5 -0
  1474. package/components/page/left-panel/left-panel.animator.d.ts +49 -0
  1475. package/components/page/left-panel/left-panel.directive.d.ts +38 -0
  1476. package/components/page/left-panel/left-panel.props.d.ts +1 -0
  1477. package/components/page/left-panel/package.json +20 -0
  1478. package/components/page/left-panel/public_api.d.ts +1 -0
  1479. package/components/page/right-panel/.npmignore +2 -0
  1480. package/components/page/right-panel/bundles/index.umd.js +86 -0
  1481. package/components/page/right-panel/esm2022/index.mjs +5 -0
  1482. package/components/page/right-panel/esm2022/public_api.mjs +2 -0
  1483. package/components/page/right-panel/esm2022/right-panel.directive.mjs +52 -0
  1484. package/components/page/right-panel/esm2022/right-panel.props.mjs +12 -0
  1485. package/components/page/right-panel/fesm2022/index.mjs +69 -0
  1486. package/components/page/right-panel/fesm2022/index.mjs.map +1 -0
  1487. package/components/page/right-panel/index.d.ts +5 -0
  1488. package/components/page/right-panel/package.json +20 -0
  1489. package/components/page/right-panel/public_api.d.ts +1 -0
  1490. package/components/page/right-panel/right-panel.directive.d.ts +10 -0
  1491. package/components/page/right-panel/right-panel.props.d.ts +1 -0
  1492. package/components/page/top-nav/.npmignore +2 -0
  1493. package/components/page/top-nav/bundles/index.umd.js +68 -0
  1494. package/components/page/top-nav/esm2022/index.mjs +5 -0
  1495. package/components/page/top-nav/esm2022/public_api.mjs +2 -0
  1496. package/components/page/top-nav/esm2022/top-nav.directive.mjs +34 -0
  1497. package/components/page/top-nav/esm2022/top-nav.props.mjs +11 -0
  1498. package/components/page/top-nav/fesm2022/index.mjs +50 -0
  1499. package/components/page/top-nav/fesm2022/index.mjs.map +1 -0
  1500. package/components/page/top-nav/index.d.ts +5 -0
  1501. package/components/page/top-nav/package.json +20 -0
  1502. package/components/page/top-nav/public_api.d.ts +1 -0
  1503. package/components/page/top-nav/top-nav.directive.d.ts +9 -0
  1504. package/components/page/top-nav/top-nav.props.d.ts +1 -0
  1505. package/components/prefab/.npmignore +2 -0
  1506. package/components/prefab/bundles/index.umd.js +176 -0
  1507. package/components/prefab/esm2022/index.mjs +5 -0
  1508. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +56 -0
  1509. package/components/prefab/esm2022/prefab-container/prefab-container.props.mjs +9 -0
  1510. package/components/prefab/esm2022/prefab.directive.mjs +88 -0
  1511. package/components/prefab/esm2022/prefab.props.mjs +8 -0
  1512. package/components/prefab/esm2022/public_api.mjs +3 -0
  1513. package/components/prefab/fesm2022/index.mjs +159 -0
  1514. package/components/prefab/fesm2022/index.mjs.map +1 -0
  1515. package/components/prefab/index.d.ts +5 -0
  1516. package/components/prefab/package.json +20 -0
  1517. package/components/prefab/prefab-container/prefab-container.directive.d.ts +15 -0
  1518. package/components/prefab/prefab-container/prefab-container.props.d.ts +1 -0
  1519. package/components/prefab/prefab.directive.d.ts +17 -0
  1520. package/components/prefab/prefab.props.d.ts +1 -0
  1521. package/components/prefab/public_api.d.ts +2 -0
  1522. package/core/.npmignore +2 -0
  1523. package/core/bundles/index.umd.js +5608 -0
  1524. package/core/constants/currency-constants.d.ts +1064 -0
  1525. package/core/enums/enums.d.ts +67 -0
  1526. package/core/esm2022/constants/currency-constants.mjs +1065 -0
  1527. package/core/esm2022/enums/enums.mjs +72 -0
  1528. package/core/esm2022/index.mjs +5 -0
  1529. package/core/esm2022/public_api.mjs +26 -0
  1530. package/core/esm2022/services/constant.service.mjs +25 -0
  1531. package/core/esm2022/services/custom-icons-loader.service.mjs +20 -0
  1532. package/core/esm2022/services/field-type.service.mjs +35 -0
  1533. package/core/esm2022/services/field-widget.service.mjs +37 -0
  1534. package/core/esm2022/services/pagination.service.mjs +336 -0
  1535. package/core/esm2022/services/script-loader.service.mjs +75 -0
  1536. package/core/esm2022/services/state-persistence.service.mjs +500 -0
  1537. package/core/esm2022/services/user-custom-pipe-manager.service.mjs +23 -0
  1538. package/core/esm2022/services/utils.service.mjs +16 -0
  1539. package/core/esm2022/services/viewport.service.mjs +121 -0
  1540. package/core/esm2022/types/types.mjs +81 -0
  1541. package/core/esm2022/utils/build-utils.mjs +296 -0
  1542. package/core/esm2022/utils/dom.mjs +123 -0
  1543. package/core/esm2022/utils/event-notifier.mjs +70 -0
  1544. package/core/esm2022/utils/expression-parser.mjs +593 -0
  1545. package/core/esm2022/utils/id-generator.mjs +15 -0
  1546. package/core/esm2022/utils/lru-cache.mjs +95 -0
  1547. package/core/esm2022/utils/utils.mjs +1476 -0
  1548. package/core/esm2022/utils/watcher.mjs +276 -0
  1549. package/core/esm2022/utils/wm-project-properties.mjs +30 -0
  1550. package/core/fesm2022/index.mjs +5455 -0
  1551. package/core/fesm2022/index.mjs.map +1 -0
  1552. package/core/index.d.ts +5 -0
  1553. package/core/package.json +26 -0
  1554. package/core/public_api.d.ts +22 -0
  1555. package/core/services/constant.service.d.ts +28 -0
  1556. package/core/services/custom-icons-loader.service.d.ts +6 -0
  1557. package/core/services/field-type.service.d.ts +6 -0
  1558. package/core/services/field-widget.service.d.ts +6 -0
  1559. package/core/services/pagination.service.d.ts +59 -0
  1560. package/core/services/script-loader.service.d.ts +17 -0
  1561. package/core/services/state-persistence.service.d.ts +231 -0
  1562. package/core/services/user-custom-pipe-manager.service.d.ts +9 -0
  1563. package/core/services/utils.service.d.ts +6 -0
  1564. package/core/services/viewport.service.d.ts +37 -0
  1565. package/core/types/types.d.ts +208 -0
  1566. package/core/utils/build-utils.d.ts +14 -0
  1567. package/core/utils/dom.d.ts +16 -0
  1568. package/core/utils/event-notifier.d.ts +26 -0
  1569. package/core/utils/expression-parser.d.ts +8 -0
  1570. package/core/utils/id-generator.d.ts +5 -0
  1571. package/core/utils/lru-cache.d.ts +23 -0
  1572. package/core/utils/utils.d.ts +279 -0
  1573. package/core/utils/watcher.d.ts +13 -0
  1574. package/core/utils/wm-project-properties.d.ts +4 -0
  1575. package/http/.npmignore +2 -0
  1576. package/http/bundles/index.umd.js +421 -0
  1577. package/http/esm2022/http.service.mjs +301 -0
  1578. package/http/esm2022/index.mjs +5 -0
  1579. package/http/esm2022/public_api.mjs +4 -0
  1580. package/http/esm2022/wm-http-request.mjs +48 -0
  1581. package/http/esm2022/wm-http-response.mjs +52 -0
  1582. package/http/fesm2022/index.mjs +405 -0
  1583. package/http/fesm2022/index.mjs.map +1 -0
  1584. package/http/http.service.d.ts +70 -0
  1585. package/http/index.d.ts +5 -0
  1586. package/http/package.json +25 -0
  1587. package/http/public_api.d.ts +3 -0
  1588. package/http/wm-http-request.d.ts +24 -0
  1589. package/http/wm-http-response.d.ts +22 -0
  1590. package/locales/angular/global/af-na.js +24 -0
  1591. package/locales/angular/global/af.js +24 -0
  1592. package/locales/angular/global/agq.js +22 -0
  1593. package/locales/angular/global/ak.js +24 -0
  1594. package/locales/angular/global/am.js +24 -0
  1595. package/locales/angular/global/ar-ae.js +32 -0
  1596. package/locales/angular/global/ar-bh.js +32 -0
  1597. package/locales/angular/global/ar-dj.js +32 -0
  1598. package/locales/angular/global/ar-dz.js +32 -0
  1599. package/locales/angular/global/ar-eg.js +32 -0
  1600. package/locales/angular/global/ar-eh.js +32 -0
  1601. package/locales/angular/global/ar-er.js +32 -0
  1602. package/locales/angular/global/ar-il.js +32 -0
  1603. package/locales/angular/global/ar-iq.js +32 -0
  1604. package/locales/angular/global/ar-jo.js +32 -0
  1605. package/locales/angular/global/ar-km.js +32 -0
  1606. package/locales/angular/global/ar-kw.js +32 -0
  1607. package/locales/angular/global/ar-lb.js +32 -0
  1608. package/locales/angular/global/ar-ly.js +32 -0
  1609. package/locales/angular/global/ar-ma.js +32 -0
  1610. package/locales/angular/global/ar-mr.js +32 -0
  1611. package/locales/angular/global/ar-om.js +32 -0
  1612. package/locales/angular/global/ar-ps.js +32 -0
  1613. package/locales/angular/global/ar-qa.js +32 -0
  1614. package/locales/angular/global/ar-sa.js +32 -0
  1615. package/locales/angular/global/ar-sd.js +32 -0
  1616. package/locales/angular/global/ar-so.js +32 -0
  1617. package/locales/angular/global/ar-ss.js +32 -0
  1618. package/locales/angular/global/ar-sy.js +32 -0
  1619. package/locales/angular/global/ar-td.js +32 -0
  1620. package/locales/angular/global/ar-tn.js +32 -0
  1621. package/locales/angular/global/ar-ye.js +32 -0
  1622. package/locales/angular/global/ar.js +32 -0
  1623. package/locales/angular/global/as.js +24 -0
  1624. package/locales/angular/global/asa.js +24 -0
  1625. package/locales/angular/global/ast.js +24 -0
  1626. package/locales/angular/global/az-cyrl.js +22 -0
  1627. package/locales/angular/global/az-latn.js +24 -0
  1628. package/locales/angular/global/az.js +24 -0
  1629. package/locales/angular/global/bas.js +22 -0
  1630. package/locales/angular/global/be-tarask.js +28 -0
  1631. package/locales/angular/global/be.js +28 -0
  1632. package/locales/angular/global/bem.js +24 -0
  1633. package/locales/angular/global/bez.js +24 -0
  1634. package/locales/angular/global/bg.js +24 -0
  1635. package/locales/angular/global/bm.js +22 -0
  1636. package/locales/angular/global/bn-in.js +24 -0
  1637. package/locales/angular/global/bn.js +24 -0
  1638. package/locales/angular/global/bo-in.js +22 -0
  1639. package/locales/angular/global/bo.js +22 -0
  1640. package/locales/angular/global/br.js +30 -0
  1641. package/locales/angular/global/brx.js +24 -0
  1642. package/locales/angular/global/bs-cyrl.js +22 -0
  1643. package/locales/angular/global/bs-latn.js +26 -0
  1644. package/locales/angular/global/bs.js +26 -0
  1645. package/locales/angular/global/ca-ad.js +24 -0
  1646. package/locales/angular/global/ca-es-valencia.js +24 -0
  1647. package/locales/angular/global/ca-fr.js +24 -0
  1648. package/locales/angular/global/ca-it.js +24 -0
  1649. package/locales/angular/global/ca.js +24 -0
  1650. package/locales/angular/global/ccp-in.js +22 -0
  1651. package/locales/angular/global/ccp.js +22 -0
  1652. package/locales/angular/global/ce.js +24 -0
  1653. package/locales/angular/global/ceb.js +24 -0
  1654. package/locales/angular/global/cgg.js +24 -0
  1655. package/locales/angular/global/chr.js +24 -0
  1656. package/locales/angular/global/ckb-ir.js +24 -0
  1657. package/locales/angular/global/ckb.js +24 -0
  1658. package/locales/angular/global/cs.js +28 -0
  1659. package/locales/angular/global/cy.js +32 -0
  1660. package/locales/angular/global/da-gl.js +24 -0
  1661. package/locales/angular/global/da.js +24 -0
  1662. package/locales/angular/global/dav.js +22 -0
  1663. package/locales/angular/global/de-at.js +24 -0
  1664. package/locales/angular/global/de-be.js +24 -0
  1665. package/locales/angular/global/de-ch.js +24 -0
  1666. package/locales/angular/global/de-it.js +24 -0
  1667. package/locales/angular/global/de-li.js +24 -0
  1668. package/locales/angular/global/de-lu.js +24 -0
  1669. package/locales/angular/global/de.js +24 -0
  1670. package/locales/angular/global/dje.js +22 -0
  1671. package/locales/angular/global/doi.js +24 -0
  1672. package/locales/angular/global/dsb.js +28 -0
  1673. package/locales/angular/global/dua.js +22 -0
  1674. package/locales/angular/global/dyo.js +22 -0
  1675. package/locales/angular/global/dz.js +22 -0
  1676. package/locales/angular/global/ebu.js +22 -0
  1677. package/locales/angular/global/ee-tg.js +24 -0
  1678. package/locales/angular/global/ee.js +24 -0
  1679. package/locales/angular/global/el-cy.js +24 -0
  1680. package/locales/angular/global/el.js +24 -0
  1681. package/locales/angular/global/en-001.js +24 -0
  1682. package/locales/angular/global/en-150.js +24 -0
  1683. package/locales/angular/global/en-ae.js +24 -0
  1684. package/locales/angular/global/en-ag.js +24 -0
  1685. package/locales/angular/global/en-ai.js +24 -0
  1686. package/locales/angular/global/en-as.js +24 -0
  1687. package/locales/angular/global/en-at.js +24 -0
  1688. package/locales/angular/global/en-au.js +24 -0
  1689. package/locales/angular/global/en-bb.js +24 -0
  1690. package/locales/angular/global/en-be.js +24 -0
  1691. package/locales/angular/global/en-bi.js +24 -0
  1692. package/locales/angular/global/en-bm.js +24 -0
  1693. package/locales/angular/global/en-bs.js +24 -0
  1694. package/locales/angular/global/en-bw.js +24 -0
  1695. package/locales/angular/global/en-bz.js +24 -0
  1696. package/locales/angular/global/en-ca.js +24 -0
  1697. package/locales/angular/global/en-cc.js +24 -0
  1698. package/locales/angular/global/en-ch.js +24 -0
  1699. package/locales/angular/global/en-ck.js +24 -0
  1700. package/locales/angular/global/en-cm.js +24 -0
  1701. package/locales/angular/global/en-cx.js +24 -0
  1702. package/locales/angular/global/en-cy.js +24 -0
  1703. package/locales/angular/global/en-de.js +24 -0
  1704. package/locales/angular/global/en-dg.js +24 -0
  1705. package/locales/angular/global/en-dk.js +24 -0
  1706. package/locales/angular/global/en-dm.js +24 -0
  1707. package/locales/angular/global/en-er.js +24 -0
  1708. package/locales/angular/global/en-fi.js +24 -0
  1709. package/locales/angular/global/en-fj.js +24 -0
  1710. package/locales/angular/global/en-fk.js +24 -0
  1711. package/locales/angular/global/en-fm.js +24 -0
  1712. package/locales/angular/global/en-gb.js +24 -0
  1713. package/locales/angular/global/en-gd.js +24 -0
  1714. package/locales/angular/global/en-gg.js +24 -0
  1715. package/locales/angular/global/en-gh.js +24 -0
  1716. package/locales/angular/global/en-gi.js +24 -0
  1717. package/locales/angular/global/en-gm.js +24 -0
  1718. package/locales/angular/global/en-gu.js +24 -0
  1719. package/locales/angular/global/en-gy.js +24 -0
  1720. package/locales/angular/global/en-hk.js +24 -0
  1721. package/locales/angular/global/en-ie.js +24 -0
  1722. package/locales/angular/global/en-il.js +24 -0
  1723. package/locales/angular/global/en-im.js +24 -0
  1724. package/locales/angular/global/en-in.js +24 -0
  1725. package/locales/angular/global/en-io.js +24 -0
  1726. package/locales/angular/global/en-je.js +24 -0
  1727. package/locales/angular/global/en-jm.js +24 -0
  1728. package/locales/angular/global/en-ke.js +24 -0
  1729. package/locales/angular/global/en-ki.js +24 -0
  1730. package/locales/angular/global/en-kn.js +24 -0
  1731. package/locales/angular/global/en-ky.js +24 -0
  1732. package/locales/angular/global/en-lc.js +24 -0
  1733. package/locales/angular/global/en-lr.js +24 -0
  1734. package/locales/angular/global/en-ls.js +24 -0
  1735. package/locales/angular/global/en-mg.js +24 -0
  1736. package/locales/angular/global/en-mh.js +24 -0
  1737. package/locales/angular/global/en-mo.js +24 -0
  1738. package/locales/angular/global/en-mp.js +24 -0
  1739. package/locales/angular/global/en-ms.js +24 -0
  1740. package/locales/angular/global/en-mt.js +24 -0
  1741. package/locales/angular/global/en-mu.js +24 -0
  1742. package/locales/angular/global/en-mv.js +24 -0
  1743. package/locales/angular/global/en-mw.js +24 -0
  1744. package/locales/angular/global/en-my.js +24 -0
  1745. package/locales/angular/global/en-na.js +24 -0
  1746. package/locales/angular/global/en-nf.js +24 -0
  1747. package/locales/angular/global/en-ng.js +24 -0
  1748. package/locales/angular/global/en-nl.js +24 -0
  1749. package/locales/angular/global/en-nr.js +24 -0
  1750. package/locales/angular/global/en-nu.js +24 -0
  1751. package/locales/angular/global/en-nz.js +24 -0
  1752. package/locales/angular/global/en-pg.js +24 -0
  1753. package/locales/angular/global/en-ph.js +24 -0
  1754. package/locales/angular/global/en-pk.js +24 -0
  1755. package/locales/angular/global/en-pn.js +24 -0
  1756. package/locales/angular/global/en-pr.js +24 -0
  1757. package/locales/angular/global/en-pw.js +24 -0
  1758. package/locales/angular/global/en-rw.js +24 -0
  1759. package/locales/angular/global/en-sb.js +24 -0
  1760. package/locales/angular/global/en-sc.js +24 -0
  1761. package/locales/angular/global/en-sd.js +24 -0
  1762. package/locales/angular/global/en-se.js +24 -0
  1763. package/locales/angular/global/en-sg.js +24 -0
  1764. package/locales/angular/global/en-sh.js +24 -0
  1765. package/locales/angular/global/en-si.js +24 -0
  1766. package/locales/angular/global/en-sl.js +24 -0
  1767. package/locales/angular/global/en-ss.js +24 -0
  1768. package/locales/angular/global/en-sx.js +24 -0
  1769. package/locales/angular/global/en-sz.js +24 -0
  1770. package/locales/angular/global/en-tc.js +24 -0
  1771. package/locales/angular/global/en-tk.js +24 -0
  1772. package/locales/angular/global/en-to.js +24 -0
  1773. package/locales/angular/global/en-tt.js +24 -0
  1774. package/locales/angular/global/en-tv.js +24 -0
  1775. package/locales/angular/global/en-tz.js +24 -0
  1776. package/locales/angular/global/en-ug.js +24 -0
  1777. package/locales/angular/global/en-um.js +24 -0
  1778. package/locales/angular/global/en-vc.js +24 -0
  1779. package/locales/angular/global/en-vg.js +24 -0
  1780. package/locales/angular/global/en-vi.js +24 -0
  1781. package/locales/angular/global/en-vu.js +24 -0
  1782. package/locales/angular/global/en-ws.js +24 -0
  1783. package/locales/angular/global/en-za.js +24 -0
  1784. package/locales/angular/global/en-zm.js +24 -0
  1785. package/locales/angular/global/en-zw.js +24 -0
  1786. package/locales/angular/global/en.js +24 -0
  1787. package/locales/angular/global/eo.js +24 -0
  1788. package/locales/angular/global/es-419.js +26 -0
  1789. package/locales/angular/global/es-ar.js +26 -0
  1790. package/locales/angular/global/es-bo.js +26 -0
  1791. package/locales/angular/global/es-br.js +26 -0
  1792. package/locales/angular/global/es-bz.js +26 -0
  1793. package/locales/angular/global/es-cl.js +26 -0
  1794. package/locales/angular/global/es-co.js +26 -0
  1795. package/locales/angular/global/es-cr.js +26 -0
  1796. package/locales/angular/global/es-cu.js +26 -0
  1797. package/locales/angular/global/es-do.js +26 -0
  1798. package/locales/angular/global/es-ea.js +26 -0
  1799. package/locales/angular/global/es-ec.js +26 -0
  1800. package/locales/angular/global/es-gq.js +26 -0
  1801. package/locales/angular/global/es-gt.js +26 -0
  1802. package/locales/angular/global/es-hn.js +26 -0
  1803. package/locales/angular/global/es-ic.js +26 -0
  1804. package/locales/angular/global/es-mx.js +26 -0
  1805. package/locales/angular/global/es-ni.js +26 -0
  1806. package/locales/angular/global/es-pa.js +26 -0
  1807. package/locales/angular/global/es-pe.js +26 -0
  1808. package/locales/angular/global/es-ph.js +26 -0
  1809. package/locales/angular/global/es-pr.js +26 -0
  1810. package/locales/angular/global/es-py.js +26 -0
  1811. package/locales/angular/global/es-sv.js +26 -0
  1812. package/locales/angular/global/es-us.js +26 -0
  1813. package/locales/angular/global/es-uy.js +26 -0
  1814. package/locales/angular/global/es-ve.js +26 -0
  1815. package/locales/angular/global/es.js +26 -0
  1816. package/locales/angular/global/et.js +24 -0
  1817. package/locales/angular/global/eu.js +24 -0
  1818. package/locales/angular/global/ewo.js +22 -0
  1819. package/locales/angular/global/fa-af.js +24 -0
  1820. package/locales/angular/global/fa.js +24 -0
  1821. package/locales/angular/global/ff-adlm-bf.js +22 -0
  1822. package/locales/angular/global/ff-adlm-cm.js +22 -0
  1823. package/locales/angular/global/ff-adlm-gh.js +22 -0
  1824. package/locales/angular/global/ff-adlm-gm.js +22 -0
  1825. package/locales/angular/global/ff-adlm-gw.js +22 -0
  1826. package/locales/angular/global/ff-adlm-lr.js +22 -0
  1827. package/locales/angular/global/ff-adlm-mr.js +22 -0
  1828. package/locales/angular/global/ff-adlm-ne.js +22 -0
  1829. package/locales/angular/global/ff-adlm-ng.js +22 -0
  1830. package/locales/angular/global/ff-adlm-sl.js +22 -0
  1831. package/locales/angular/global/ff-adlm-sn.js +22 -0
  1832. package/locales/angular/global/ff-adlm.js +22 -0
  1833. package/locales/angular/global/ff-cm.js +74 -0
  1834. package/locales/angular/global/ff-gn.js +74 -0
  1835. package/locales/angular/global/ff-latn-bf.js +24 -0
  1836. package/locales/angular/global/ff-latn-cm.js +24 -0
  1837. package/locales/angular/global/ff-latn-gh.js +24 -0
  1838. package/locales/angular/global/ff-latn-gm.js +24 -0
  1839. package/locales/angular/global/ff-latn-gn.js +24 -0
  1840. package/locales/angular/global/ff-latn-gw.js +24 -0
  1841. package/locales/angular/global/ff-latn-lr.js +24 -0
  1842. package/locales/angular/global/ff-latn-mr.js +24 -0
  1843. package/locales/angular/global/ff-latn-ne.js +24 -0
  1844. package/locales/angular/global/ff-latn-ng.js +24 -0
  1845. package/locales/angular/global/ff-latn-sl.js +24 -0
  1846. package/locales/angular/global/ff-latn.js +24 -0
  1847. package/locales/angular/global/ff-mr.js +74 -0
  1848. package/locales/angular/global/ff.js +24 -0
  1849. package/locales/angular/global/fi.js +24 -0
  1850. package/locales/angular/global/fil.js +24 -0
  1851. package/locales/angular/global/fo-dk.js +24 -0
  1852. package/locales/angular/global/fo.js +24 -0
  1853. package/locales/angular/global/fr-be.js +26 -0
  1854. package/locales/angular/global/fr-bf.js +26 -0
  1855. package/locales/angular/global/fr-bi.js +26 -0
  1856. package/locales/angular/global/fr-bj.js +26 -0
  1857. package/locales/angular/global/fr-bl.js +26 -0
  1858. package/locales/angular/global/fr-ca.js +26 -0
  1859. package/locales/angular/global/fr-cd.js +26 -0
  1860. package/locales/angular/global/fr-cf.js +26 -0
  1861. package/locales/angular/global/fr-cg.js +26 -0
  1862. package/locales/angular/global/fr-ch.js +26 -0
  1863. package/locales/angular/global/fr-ci.js +26 -0
  1864. package/locales/angular/global/fr-cm.js +26 -0
  1865. package/locales/angular/global/fr-dj.js +26 -0
  1866. package/locales/angular/global/fr-dz.js +26 -0
  1867. package/locales/angular/global/fr-ga.js +26 -0
  1868. package/locales/angular/global/fr-gf.js +26 -0
  1869. package/locales/angular/global/fr-gn.js +26 -0
  1870. package/locales/angular/global/fr-gp.js +26 -0
  1871. package/locales/angular/global/fr-gq.js +26 -0
  1872. package/locales/angular/global/fr-ht.js +26 -0
  1873. package/locales/angular/global/fr-km.js +26 -0
  1874. package/locales/angular/global/fr-lu.js +26 -0
  1875. package/locales/angular/global/fr-ma.js +26 -0
  1876. package/locales/angular/global/fr-mc.js +26 -0
  1877. package/locales/angular/global/fr-mf.js +26 -0
  1878. package/locales/angular/global/fr-mg.js +26 -0
  1879. package/locales/angular/global/fr-ml.js +26 -0
  1880. package/locales/angular/global/fr-mq.js +26 -0
  1881. package/locales/angular/global/fr-mr.js +26 -0
  1882. package/locales/angular/global/fr-mu.js +26 -0
  1883. package/locales/angular/global/fr-nc.js +26 -0
  1884. package/locales/angular/global/fr-ne.js +26 -0
  1885. package/locales/angular/global/fr-pf.js +26 -0
  1886. package/locales/angular/global/fr-pm.js +26 -0
  1887. package/locales/angular/global/fr-re.js +26 -0
  1888. package/locales/angular/global/fr-rw.js +26 -0
  1889. package/locales/angular/global/fr-sc.js +26 -0
  1890. package/locales/angular/global/fr-sn.js +26 -0
  1891. package/locales/angular/global/fr-sy.js +26 -0
  1892. package/locales/angular/global/fr-td.js +26 -0
  1893. package/locales/angular/global/fr-tg.js +26 -0
  1894. package/locales/angular/global/fr-tn.js +26 -0
  1895. package/locales/angular/global/fr-vu.js +26 -0
  1896. package/locales/angular/global/fr-wf.js +26 -0
  1897. package/locales/angular/global/fr-yt.js +26 -0
  1898. package/locales/angular/global/fr.js +26 -0
  1899. package/locales/angular/global/fur.js +24 -0
  1900. package/locales/angular/global/fy.js +24 -0
  1901. package/locales/angular/global/ga-gb.js +30 -0
  1902. package/locales/angular/global/ga.js +30 -0
  1903. package/locales/angular/global/gd.js +28 -0
  1904. package/locales/angular/global/gl.js +24 -0
  1905. package/locales/angular/global/gsw-fr.js +24 -0
  1906. package/locales/angular/global/gsw-li.js +24 -0
  1907. package/locales/angular/global/gsw.js +24 -0
  1908. package/locales/angular/global/gu.js +24 -0
  1909. package/locales/angular/global/guz.js +22 -0
  1910. package/locales/angular/global/gv.js +30 -0
  1911. package/locales/angular/global/ha-gh.js +24 -0
  1912. package/locales/angular/global/ha-ne.js +24 -0
  1913. package/locales/angular/global/ha.js +24 -0
  1914. package/locales/angular/global/haw.js +24 -0
  1915. package/locales/angular/global/he.js +28 -0
  1916. package/locales/angular/global/hi-latn.js +24 -0
  1917. package/locales/angular/global/hi.js +24 -0
  1918. package/locales/angular/global/hr-ba.js +26 -0
  1919. package/locales/angular/global/hr.js +26 -0
  1920. package/locales/angular/global/hsb.js +28 -0
  1921. package/locales/angular/global/hu.js +24 -0
  1922. package/locales/angular/global/hy.js +24 -0
  1923. package/locales/angular/global/ia.js +24 -0
  1924. package/locales/angular/global/id.js +22 -0
  1925. package/locales/angular/global/ig.js +22 -0
  1926. package/locales/angular/global/ii.js +22 -0
  1927. package/locales/angular/global/is.js +24 -0
  1928. package/locales/angular/global/it-ch.js +26 -0
  1929. package/locales/angular/global/it-sm.js +26 -0
  1930. package/locales/angular/global/it-va.js +26 -0
  1931. package/locales/angular/global/it.js +26 -0
  1932. package/locales/angular/global/ja.js +22 -0
  1933. package/locales/angular/global/jgo.js +24 -0
  1934. package/locales/angular/global/jmc.js +24 -0
  1935. package/locales/angular/global/jv.js +22 -0
  1936. package/locales/angular/global/ka.js +24 -0
  1937. package/locales/angular/global/kab.js +24 -0
  1938. package/locales/angular/global/kam.js +22 -0
  1939. package/locales/angular/global/kde.js +22 -0
  1940. package/locales/angular/global/kea.js +22 -0
  1941. package/locales/angular/global/kgp.js +22 -0
  1942. package/locales/angular/global/khq.js +22 -0
  1943. package/locales/angular/global/ki.js +22 -0
  1944. package/locales/angular/global/kk.js +24 -0
  1945. package/locales/angular/global/kkj.js +24 -0
  1946. package/locales/angular/global/kl.js +24 -0
  1947. package/locales/angular/global/kln.js +22 -0
  1948. package/locales/angular/global/km.js +22 -0
  1949. package/locales/angular/global/kn.js +24 -0
  1950. package/locales/angular/global/ko-kp.js +22 -0
  1951. package/locales/angular/global/ko.js +22 -0
  1952. package/locales/angular/global/kok.js +22 -0
  1953. package/locales/angular/global/ks-arab.js +24 -0
  1954. package/locales/angular/global/ks-deva.js +22 -0
  1955. package/locales/angular/global/ks.js +24 -0
  1956. package/locales/angular/global/ksb.js +24 -0
  1957. package/locales/angular/global/ksf.js +22 -0
  1958. package/locales/angular/global/ksh.js +26 -0
  1959. package/locales/angular/global/ku.js +24 -0
  1960. package/locales/angular/global/kw.js +32 -0
  1961. package/locales/angular/global/ky.js +24 -0
  1962. package/locales/angular/global/lag.js +26 -0
  1963. package/locales/angular/global/lb.js +24 -0
  1964. package/locales/angular/global/lg.js +24 -0
  1965. package/locales/angular/global/lkt.js +22 -0
  1966. package/locales/angular/global/ln-ao.js +24 -0
  1967. package/locales/angular/global/ln-cf.js +24 -0
  1968. package/locales/angular/global/ln-cg.js +24 -0
  1969. package/locales/angular/global/ln.js +24 -0
  1970. package/locales/angular/global/lo.js +22 -0
  1971. package/locales/angular/global/lrc-iq.js +22 -0
  1972. package/locales/angular/global/lrc.js +22 -0
  1973. package/locales/angular/global/lt.js +28 -0
  1974. package/locales/angular/global/lu.js +22 -0
  1975. package/locales/angular/global/luo.js +22 -0
  1976. package/locales/angular/global/luy.js +22 -0
  1977. package/locales/angular/global/lv.js +26 -0
  1978. package/locales/angular/global/mai.js +22 -0
  1979. package/locales/angular/global/mas-tz.js +24 -0
  1980. package/locales/angular/global/mas.js +24 -0
  1981. package/locales/angular/global/mer.js +22 -0
  1982. package/locales/angular/global/mfe.js +22 -0
  1983. package/locales/angular/global/mg.js +24 -0
  1984. package/locales/angular/global/mgh.js +22 -0
  1985. package/locales/angular/global/mgo.js +24 -0
  1986. package/locales/angular/global/mi.js +22 -0
  1987. package/locales/angular/global/mk.js +24 -0
  1988. package/locales/angular/global/ml.js +24 -0
  1989. package/locales/angular/global/mn.js +24 -0
  1990. package/locales/angular/global/mni-beng.js +22 -0
  1991. package/locales/angular/global/mni.js +22 -0
  1992. package/locales/angular/global/mr.js +24 -0
  1993. package/locales/angular/global/ms-bn.js +22 -0
  1994. package/locales/angular/global/ms-id.js +22 -0
  1995. package/locales/angular/global/ms-sg.js +22 -0
  1996. package/locales/angular/global/ms.js +22 -0
  1997. package/locales/angular/global/mt.js +28 -0
  1998. package/locales/angular/global/mua.js +22 -0
  1999. package/locales/angular/global/my.js +22 -0
  2000. package/locales/angular/global/mzn.js +22 -0
  2001. package/locales/angular/global/naq.js +26 -0
  2002. package/locales/angular/global/nb-sj.js +24 -0
  2003. package/locales/angular/global/nb.js +24 -0
  2004. package/locales/angular/global/nd.js +24 -0
  2005. package/locales/angular/global/nds-nl.js +22 -0
  2006. package/locales/angular/global/nds.js +22 -0
  2007. package/locales/angular/global/ne-in.js +24 -0
  2008. package/locales/angular/global/ne.js +24 -0
  2009. package/locales/angular/global/nl-aw.js +24 -0
  2010. package/locales/angular/global/nl-be.js +24 -0
  2011. package/locales/angular/global/nl-bq.js +24 -0
  2012. package/locales/angular/global/nl-cw.js +24 -0
  2013. package/locales/angular/global/nl-sr.js +24 -0
  2014. package/locales/angular/global/nl-sx.js +24 -0
  2015. package/locales/angular/global/nl.js +24 -0
  2016. package/locales/angular/global/nmg.js +22 -0
  2017. package/locales/angular/global/nn.js +24 -0
  2018. package/locales/angular/global/nnh.js +24 -0
  2019. package/locales/angular/global/no.js +24 -0
  2020. package/locales/angular/global/nus.js +22 -0
  2021. package/locales/angular/global/nyn.js +24 -0
  2022. package/locales/angular/global/om-ke.js +24 -0
  2023. package/locales/angular/global/om.js +24 -0
  2024. package/locales/angular/global/or.js +24 -0
  2025. package/locales/angular/global/os-ru.js +24 -0
  2026. package/locales/angular/global/os.js +24 -0
  2027. package/locales/angular/global/pa-arab.js +22 -0
  2028. package/locales/angular/global/pa-guru.js +24 -0
  2029. package/locales/angular/global/pa.js +24 -0
  2030. package/locales/angular/global/pcm.js +24 -0
  2031. package/locales/angular/global/pl.js +28 -0
  2032. package/locales/angular/global/ps-pk.js +24 -0
  2033. package/locales/angular/global/ps.js +24 -0
  2034. package/locales/angular/global/pt-ao.js +26 -0
  2035. package/locales/angular/global/pt-ch.js +26 -0
  2036. package/locales/angular/global/pt-cv.js +26 -0
  2037. package/locales/angular/global/pt-gq.js +26 -0
  2038. package/locales/angular/global/pt-gw.js +26 -0
  2039. package/locales/angular/global/pt-lu.js +26 -0
  2040. package/locales/angular/global/pt-mo.js +26 -0
  2041. package/locales/angular/global/pt-mz.js +26 -0
  2042. package/locales/angular/global/pt-pt.js +26 -0
  2043. package/locales/angular/global/pt-st.js +26 -0
  2044. package/locales/angular/global/pt-tl.js +26 -0
  2045. package/locales/angular/global/pt.js +26 -0
  2046. package/locales/angular/global/qu-bo.js +22 -0
  2047. package/locales/angular/global/qu-ec.js +22 -0
  2048. package/locales/angular/global/qu.js +22 -0
  2049. package/locales/angular/global/rm.js +24 -0
  2050. package/locales/angular/global/rn.js +22 -0
  2051. package/locales/angular/global/ro-md.js +26 -0
  2052. package/locales/angular/global/ro.js +26 -0
  2053. package/locales/angular/global/rof.js +24 -0
  2054. package/locales/angular/global/ru-by.js +28 -0
  2055. package/locales/angular/global/ru-kg.js +28 -0
  2056. package/locales/angular/global/ru-kz.js +28 -0
  2057. package/locales/angular/global/ru-md.js +28 -0
  2058. package/locales/angular/global/ru-ua.js +28 -0
  2059. package/locales/angular/global/ru.js +28 -0
  2060. package/locales/angular/global/rw.js +22 -0
  2061. package/locales/angular/global/rwk.js +24 -0
  2062. package/locales/angular/global/sa.js +22 -0
  2063. package/locales/angular/global/sah.js +22 -0
  2064. package/locales/angular/global/saq.js +24 -0
  2065. package/locales/angular/global/sat-olck.js +26 -0
  2066. package/locales/angular/global/sat.js +26 -0
  2067. package/locales/angular/global/sbp.js +22 -0
  2068. package/locales/angular/global/sc.js +24 -0
  2069. package/locales/angular/global/sd-arab.js +24 -0
  2070. package/locales/angular/global/sd-deva.js +22 -0
  2071. package/locales/angular/global/sd.js +24 -0
  2072. package/locales/angular/global/se-fi.js +26 -0
  2073. package/locales/angular/global/se-se.js +26 -0
  2074. package/locales/angular/global/se.js +26 -0
  2075. package/locales/angular/global/seh.js +24 -0
  2076. package/locales/angular/global/ses.js +22 -0
  2077. package/locales/angular/global/sg.js +22 -0
  2078. package/locales/angular/global/shi-latn.js +22 -0
  2079. package/locales/angular/global/shi-tfng.js +26 -0
  2080. package/locales/angular/global/shi.js +26 -0
  2081. package/locales/angular/global/si.js +24 -0
  2082. package/locales/angular/global/sk.js +28 -0
  2083. package/locales/angular/global/sl.js +28 -0
  2084. package/locales/angular/global/smn.js +26 -0
  2085. package/locales/angular/global/sn.js +24 -0
  2086. package/locales/angular/global/so-dj.js +24 -0
  2087. package/locales/angular/global/so-et.js +24 -0
  2088. package/locales/angular/global/so-ke.js +24 -0
  2089. package/locales/angular/global/so.js +24 -0
  2090. package/locales/angular/global/sq-mk.js +24 -0
  2091. package/locales/angular/global/sq-xk.js +24 -0
  2092. package/locales/angular/global/sq.js +24 -0
  2093. package/locales/angular/global/sr-cyrl-ba.js +26 -0
  2094. package/locales/angular/global/sr-cyrl-me.js +26 -0
  2095. package/locales/angular/global/sr-cyrl-xk.js +26 -0
  2096. package/locales/angular/global/sr-cyrl.js +26 -0
  2097. package/locales/angular/global/sr-latn-ba.js +22 -0
  2098. package/locales/angular/global/sr-latn-me.js +22 -0
  2099. package/locales/angular/global/sr-latn-xk.js +22 -0
  2100. package/locales/angular/global/sr-latn.js +22 -0
  2101. package/locales/angular/global/sr.js +26 -0
  2102. package/locales/angular/global/su-latn.js +22 -0
  2103. package/locales/angular/global/su.js +22 -0
  2104. package/locales/angular/global/sv-ax.js +24 -0
  2105. package/locales/angular/global/sv-fi.js +24 -0
  2106. package/locales/angular/global/sv.js +24 -0
  2107. package/locales/angular/global/sw-cd.js +24 -0
  2108. package/locales/angular/global/sw-ke.js +24 -0
  2109. package/locales/angular/global/sw-ug.js +24 -0
  2110. package/locales/angular/global/sw.js +24 -0
  2111. package/locales/angular/global/ta-lk.js +24 -0
  2112. package/locales/angular/global/ta-my.js +24 -0
  2113. package/locales/angular/global/ta-sg.js +24 -0
  2114. package/locales/angular/global/ta.js +24 -0
  2115. package/locales/angular/global/te.js +24 -0
  2116. package/locales/angular/global/teo-ke.js +24 -0
  2117. package/locales/angular/global/teo.js +24 -0
  2118. package/locales/angular/global/tg.js +22 -0
  2119. package/locales/angular/global/th.js +22 -0
  2120. package/locales/angular/global/ti-er.js +24 -0
  2121. package/locales/angular/global/ti.js +24 -0
  2122. package/locales/angular/global/tk.js +24 -0
  2123. package/locales/angular/global/to.js +22 -0
  2124. package/locales/angular/global/tr-cy.js +24 -0
  2125. package/locales/angular/global/tr.js +24 -0
  2126. package/locales/angular/global/tt.js +22 -0
  2127. package/locales/angular/global/twq.js +22 -0
  2128. package/locales/angular/global/tzm.js +24 -0
  2129. package/locales/angular/global/ug.js +24 -0
  2130. package/locales/angular/global/uk.js +28 -0
  2131. package/locales/angular/global/und.js +24 -0
  2132. package/locales/angular/global/ur-in.js +24 -0
  2133. package/locales/angular/global/ur.js +24 -0
  2134. package/locales/angular/global/uz-arab.js +22 -0
  2135. package/locales/angular/global/uz-cyrl.js +22 -0
  2136. package/locales/angular/global/uz-latn.js +24 -0
  2137. package/locales/angular/global/uz.js +24 -0
  2138. package/locales/angular/global/vai-latn.js +22 -0
  2139. package/locales/angular/global/vai-vaii.js +22 -0
  2140. package/locales/angular/global/vai.js +22 -0
  2141. package/locales/angular/global/vi.js +22 -0
  2142. package/locales/angular/global/vun.js +24 -0
  2143. package/locales/angular/global/wae.js +24 -0
  2144. package/locales/angular/global/wo.js +22 -0
  2145. package/locales/angular/global/xh.js +24 -0
  2146. package/locales/angular/global/xog.js +24 -0
  2147. package/locales/angular/global/yav.js +22 -0
  2148. package/locales/angular/global/yi.js +24 -0
  2149. package/locales/angular/global/yo-bj.js +22 -0
  2150. package/locales/angular/global/yo.js +22 -0
  2151. package/locales/angular/global/yrl-co.js +22 -0
  2152. package/locales/angular/global/yrl-ve.js +22 -0
  2153. package/locales/angular/global/yrl.js +22 -0
  2154. package/locales/angular/global/yue-hans.js +22 -0
  2155. package/locales/angular/global/yue-hant.js +22 -0
  2156. package/locales/angular/global/yue.js +22 -0
  2157. package/locales/angular/global/zgh.js +22 -0
  2158. package/locales/angular/global/zh-hans-hk.js +22 -0
  2159. package/locales/angular/global/zh-hans-mo.js +22 -0
  2160. package/locales/angular/global/zh-hans-sg.js +22 -0
  2161. package/locales/angular/global/zh-hans.js +22 -0
  2162. package/locales/angular/global/zh-hant-hk.js +22 -0
  2163. package/locales/angular/global/zh-hant-mo.js +22 -0
  2164. package/locales/angular/global/zh-hant.js +22 -0
  2165. package/locales/angular/global/zh.js +22 -0
  2166. package/locales/angular/global/zu.js +24 -0
  2167. package/locales/moment/af.js +82 -0
  2168. package/locales/moment/ar-dz.js +167 -0
  2169. package/locales/moment/ar-kw.js +66 -0
  2170. package/locales/moment/ar-ly.js +182 -0
  2171. package/locales/moment/ar-ma.js +67 -0
  2172. package/locales/moment/ar-ps.js +123 -0
  2173. package/locales/moment/ar-sa.js +116 -0
  2174. package/locales/moment/ar-tn.js +66 -0
  2175. package/locales/moment/ar.js +200 -0
  2176. package/locales/moment/az.js +113 -0
  2177. package/locales/moment/be.js +153 -0
  2178. package/locales/moment/bg.js +98 -0
  2179. package/locales/moment/bm.js +62 -0
  2180. package/locales/moment/bn-bd.js +140 -0
  2181. package/locales/moment/bn.js +130 -0
  2182. package/locales/moment/bo.js +135 -0
  2183. package/locales/moment/br.js +179 -0
  2184. package/locales/moment/bs.js +171 -0
  2185. package/locales/moment/ca.js +111 -0
  2186. package/locales/moment/cs.js +192 -0
  2187. package/locales/moment/cv.js +74 -0
  2188. package/locales/moment/cy.js +109 -0
  2189. package/locales/moment/da.js +64 -0
  2190. package/locales/moment/de-at.js +90 -0
  2191. package/locales/moment/de-ch.js +87 -0
  2192. package/locales/moment/de.js +89 -0
  2193. package/locales/moment/dv.js +101 -0
  2194. package/locales/moment/el.js +117 -0
  2195. package/locales/moment/en-au.js +79 -0
  2196. package/locales/moment/en-ca.js +75 -0
  2197. package/locales/moment/en-gb.js +79 -0
  2198. package/locales/moment/en-ie.js +79 -0
  2199. package/locales/moment/en-il.js +75 -0
  2200. package/locales/moment/en-in.js +79 -0
  2201. package/locales/moment/en-nz.js +79 -0
  2202. package/locales/moment/en-sg.js +79 -0
  2203. package/locales/moment/eo.js +79 -0
  2204. package/locales/moment/es-do.js +119 -0
  2205. package/locales/moment/es-mx.js +121 -0
  2206. package/locales/moment/es-us.js +121 -0
  2207. package/locales/moment/es.js +121 -0
  2208. package/locales/moment/et.js +89 -0
  2209. package/locales/moment/eu.js +76 -0
  2210. package/locales/moment/fa.js +124 -0
  2211. package/locales/moment/fi.js +135 -0
  2212. package/locales/moment/fil.js +69 -0
  2213. package/locales/moment/fo.js +68 -0
  2214. package/locales/moment/fr-ca.js +81 -0
  2215. package/locales/moment/fr-ch.js +85 -0
  2216. package/locales/moment/fr.js +119 -0
  2217. package/locales/moment/fy.js +86 -0
  2218. package/locales/moment/ga.js +106 -0
  2219. package/locales/moment/gd.js +106 -0
  2220. package/locales/moment/gl.js +86 -0
  2221. package/locales/moment/gom-deva.js +137 -0
  2222. package/locales/moment/gom-latn.js +135 -0
  2223. package/locales/moment/gu.js +133 -0
  2224. package/locales/moment/he.js +105 -0
  2225. package/locales/moment/hi.js +179 -0
  2226. package/locales/moment/hr.js +167 -0
  2227. package/locales/moment/hu.js +129 -0
  2228. package/locales/moment/hy-am.js +105 -0
  2229. package/locales/moment/id.js +87 -0
  2230. package/locales/moment/is.js +151 -0
  2231. package/locales/moment/it-ch.js +75 -0
  2232. package/locales/moment/it.js +117 -0
  2233. package/locales/moment/ja.js +159 -0
  2234. package/locales/moment/jv.js +87 -0
  2235. package/locales/moment/ka.js +103 -0
  2236. package/locales/moment/kk.js +93 -0
  2237. package/locales/moment/km.js +114 -0
  2238. package/locales/moment/kn.js +135 -0
  2239. package/locales/moment/ko.js +86 -0
  2240. package/locales/moment/ku-kmr.js +125 -0
  2241. package/locales/moment/ku.js +129 -0
  2242. package/locales/moment/ky.js +95 -0
  2243. package/locales/moment/lb.js +148 -0
  2244. package/locales/moment/lo.js +77 -0
  2245. package/locales/moment/lt.js +136 -0
  2246. package/locales/moment/lv.js +105 -0
  2247. package/locales/moment/me.js +128 -0
  2248. package/locales/moment/mi.js +71 -0
  2249. package/locales/moment/mk.js +97 -0
  2250. package/locales/moment/ml.js +93 -0
  2251. package/locales/moment/mn.js +111 -0
  2252. package/locales/moment/mr.js +214 -0
  2253. package/locales/moment/ms-my.js +87 -0
  2254. package/locales/moment/ms.js +86 -0
  2255. package/locales/moment/mt.js +67 -0
  2256. package/locales/moment/my.js +102 -0
  2257. package/locales/moment/nb.js +71 -0
  2258. package/locales/moment/ne.js +132 -0
  2259. package/locales/moment/nl-be.js +113 -0
  2260. package/locales/moment/nl.js +115 -0
  2261. package/locales/moment/nn.js +70 -0
  2262. package/locales/moment/oc-lnc.js +96 -0
  2263. package/locales/moment/pa-in.js +133 -0
  2264. package/locales/moment/pl.js +151 -0
  2265. package/locales/moment/pt-br.js +69 -0
  2266. package/locales/moment/pt.js +74 -0
  2267. package/locales/moment/ro.js +87 -0
  2268. package/locales/moment/ru.js +224 -0
  2269. package/locales/moment/sd.js +92 -0
  2270. package/locales/moment/se.js +68 -0
  2271. package/locales/moment/si.js +80 -0
  2272. package/locales/moment/sk.js +156 -0
  2273. package/locales/moment/sl.js +182 -0
  2274. package/locales/moment/sq.js +76 -0
  2275. package/locales/moment/sr-cyrl.js +138 -0
  2276. package/locales/moment/sr.js +140 -0
  2277. package/locales/moment/ss.js +95 -0
  2278. package/locales/moment/sv.js +79 -0
  2279. package/locales/moment/sw.js +66 -0
  2280. package/locales/moment/ta.js +142 -0
  2281. package/locales/moment/te.js +99 -0
  2282. package/locales/moment/tet.js +79 -0
  2283. package/locales/moment/tg.js +128 -0
  2284. package/locales/moment/th.js +76 -0
  2285. package/locales/moment/tk.js +102 -0
  2286. package/locales/moment/tl-ph.js +68 -0
  2287. package/locales/moment/tlh.js +135 -0
  2288. package/locales/moment/tr.js +117 -0
  2289. package/locales/moment/tzl.js +100 -0
  2290. package/locales/moment/tzm-latn.js +65 -0
  2291. package/locales/moment/tzm.js +65 -0
  2292. package/locales/moment/ug-cn.js +122 -0
  2293. package/locales/moment/uk.js +178 -0
  2294. package/locales/moment/ur.js +93 -0
  2295. package/locales/moment/uz-latn.js +65 -0
  2296. package/locales/moment/uz.js +62 -0
  2297. package/locales/moment/vi.js +91 -0
  2298. package/locales/moment/x-pseudo.js +84 -0
  2299. package/locales/moment/yo.js +64 -0
  2300. package/locales/moment/zh-cn.js +131 -0
  2301. package/locales/moment/zh-hk.js +112 -0
  2302. package/locales/moment/zh-mo.js +111 -0
  2303. package/locales/moment/zh-tw.js +110 -0
  2304. package/locales/moment-timezone/moment-timezone-with-data.js +1582 -0
  2305. package/npm-shrinkwrap.json +17 -0
  2306. package/oAuth/.npmignore +2 -0
  2307. package/oAuth/bundles/index.umd.js +495 -0
  2308. package/oAuth/esm2022/index.mjs +5 -0
  2309. package/oAuth/esm2022/oAuth.service.mjs +51 -0
  2310. package/oAuth/esm2022/oAuth.utils.mjs +423 -0
  2311. package/oAuth/esm2022/public_api.mjs +3 -0
  2312. package/oAuth/fesm2022/index.mjs +478 -0
  2313. package/oAuth/fesm2022/index.mjs.map +1 -0
  2314. package/oAuth/index.d.ts +5 -0
  2315. package/oAuth/oAuth.service.d.ts +19 -0
  2316. package/oAuth/oAuth.utils.d.ts +20 -0
  2317. package/oAuth/package.json +25 -0
  2318. package/oAuth/public_api.d.ts +2 -0
  2319. package/package-lock.json +17 -0
  2320. package/package.json +16 -0
  2321. package/runtime/base/.npmignore +2 -0
  2322. package/runtime/base/bundles/index.umd.js +6031 -0
  2323. package/runtime/base/components/app-component/app.component.d.ts +46 -0
  2324. package/runtime/base/components/app-spinner.component.d.ts +10 -0
  2325. package/runtime/base/components/base-custom-widget.component.d.ts +75 -0
  2326. package/runtime/base/components/base-layout.component.d.ts +30 -0
  2327. package/runtime/base/components/base-page.component.d.ts +83 -0
  2328. package/runtime/base/components/base-partial.component.d.ts +65 -0
  2329. package/runtime/base/components/base-prefab.component.d.ts +61 -0
  2330. package/runtime/base/components/base-spa-page.component.d.ts +85 -0
  2331. package/runtime/base/components/custom-toaster.component.d.ts +19 -0
  2332. package/runtime/base/components/empty-component/empty-page.component.d.ts +18 -0
  2333. package/runtime/base/components/prefab-preview.component.d.ts +23 -0
  2334. package/runtime/base/directives/accessroles.directive.d.ts +40 -0
  2335. package/runtime/base/directives/prefab.directive.d.ts +17 -0
  2336. package/runtime/base/esm2022/components/app-component/app.component.mjs +201 -0
  2337. package/runtime/base/esm2022/components/app-spinner.component.mjs +54 -0
  2338. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +339 -0
  2339. package/runtime/base/esm2022/components/base-layout.component.mjs +76 -0
  2340. package/runtime/base/esm2022/components/base-page.component.mjs +378 -0
  2341. package/runtime/base/esm2022/components/base-partial.component.mjs +221 -0
  2342. package/runtime/base/esm2022/components/base-prefab.component.mjs +253 -0
  2343. package/runtime/base/esm2022/components/base-spa-page.component.mjs +353 -0
  2344. package/runtime/base/esm2022/components/custom-toaster.component.mjs +87 -0
  2345. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +66 -0
  2346. package/runtime/base/esm2022/components/prefab-preview.component.mjs +123 -0
  2347. package/runtime/base/esm2022/directives/accessroles.directive.mjs +118 -0
  2348. package/runtime/base/esm2022/directives/prefab.directive.mjs +50 -0
  2349. package/runtime/base/esm2022/guards/auth.guard.mjs +43 -0
  2350. package/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +44 -0
  2351. package/runtime/base/esm2022/guards/page-not-found.guard.mjs +22 -0
  2352. package/runtime/base/esm2022/guards/role.guard.mjs +47 -0
  2353. package/runtime/base/esm2022/index.mjs +5 -0
  2354. package/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +363 -0
  2355. package/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +85 -0
  2356. package/runtime/base/esm2022/public_api.mjs +49 -0
  2357. package/runtime/base/esm2022/resolves/app-before-load.resolve.mjs +22 -0
  2358. package/runtime/base/esm2022/resolves/app-extension.resolve.mjs +48 -0
  2359. package/runtime/base/esm2022/resolves/app-js.resolve.mjs +39 -0
  2360. package/runtime/base/esm2022/resolves/app-variables.resolve.mjs +31 -0
  2361. package/runtime/base/esm2022/resolves/i18n.resolve.mjs +18 -0
  2362. package/runtime/base/esm2022/resolves/metadata.resolve.mjs +22 -0
  2363. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +26 -0
  2364. package/runtime/base/esm2022/runtime-base.module.mjs +942 -0
  2365. package/runtime/base/esm2022/services/app-defaults.service.mjs +22 -0
  2366. package/runtime/base/esm2022/services/app.manager.service.mjs +522 -0
  2367. package/runtime/base/esm2022/services/app.service.mjs +232 -0
  2368. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +86 -0
  2369. package/runtime/base/esm2022/services/http-interceptor.services.mjs +83 -0
  2370. package/runtime/base/esm2022/services/i18n.service.mjs +305 -0
  2371. package/runtime/base/esm2022/services/navigation.service.mjs +307 -0
  2372. package/runtime/base/esm2022/services/pipe-provider.service.mjs +127 -0
  2373. package/runtime/base/esm2022/services/pipe.service.mjs +33 -0
  2374. package/runtime/base/esm2022/services/prefab-manager.service.mjs +95 -0
  2375. package/runtime/base/esm2022/services/spinner.service.mjs +144 -0
  2376. package/runtime/base/esm2022/services/toaster.service.mjs +90 -0
  2377. package/runtime/base/esm2022/types/types.mjs +22 -0
  2378. package/runtime/base/esm2022/util/fragment-monitor.mjs +59 -0
  2379. package/runtime/base/esm2022/util/utils.mjs +24 -0
  2380. package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +176 -0
  2381. package/runtime/base/fesm2022/index.mjs +6068 -0
  2382. package/runtime/base/fesm2022/index.mjs.map +1 -0
  2383. package/runtime/base/guards/auth.guard.d.ts +14 -0
  2384. package/runtime/base/guards/can-deactivate-page.guard.d.ts +16 -0
  2385. package/runtime/base/guards/page-not-found.guard.d.ts +12 -0
  2386. package/runtime/base/guards/role.guard.d.ts +17 -0
  2387. package/runtime/base/index.d.ts +5 -0
  2388. package/runtime/base/overrides/wm_dom_renderer.d.ts +33 -0
  2389. package/runtime/base/overrides/wm_shared_styles_host.d.ts +23 -0
  2390. package/runtime/base/package.json +25 -0
  2391. package/runtime/base/public_api.d.ts +48 -0
  2392. package/runtime/base/resolves/app-before-load.resolve.d.ts +11 -0
  2393. package/runtime/base/resolves/app-extension.resolve.d.ts +14 -0
  2394. package/runtime/base/resolves/app-js.resolve.d.ts +15 -0
  2395. package/runtime/base/resolves/app-variables.resolve.d.ts +11 -0
  2396. package/runtime/base/resolves/i18n.resolve.d.ts +9 -0
  2397. package/runtime/base/resolves/metadata.resolve.d.ts +9 -0
  2398. package/runtime/base/resolves/security-config.resolve.d.ts +10 -0
  2399. package/runtime/base/runtime-base.module.d.ts +171 -0
  2400. package/runtime/base/services/app-defaults.service.d.ts +12 -0
  2401. package/runtime/base/services/app.manager.service.d.ts +142 -0
  2402. package/runtime/base/services/app.service.d.ts +70 -0
  2403. package/runtime/base/services/dynamic-component-ref-provider.service.d.ts +26 -0
  2404. package/runtime/base/services/http-interceptor.services.d.ts +17 -0
  2405. package/runtime/base/services/i18n.service.d.ts +58 -0
  2406. package/runtime/base/services/navigation.service.d.ts +45 -0
  2407. package/runtime/base/services/pipe-provider.service.d.ts +31 -0
  2408. package/runtime/base/services/pipe.service.d.ts +12 -0
  2409. package/runtime/base/services/prefab-manager.service.d.ts +25 -0
  2410. package/runtime/base/services/spinner.service.d.ts +49 -0
  2411. package/runtime/base/services/toaster.service.d.ts +23 -0
  2412. package/runtime/base/types/types.d.ts +25 -0
  2413. package/runtime/base/util/fragment-monitor.d.ts +22 -0
  2414. package/runtime/base/util/utils.d.ts +6 -0
  2415. package/runtime/base/util/wm-route-reuse-strategy.d.ts +29 -0
  2416. package/runtime/dynamic/.npmignore +2 -0
  2417. package/runtime/dynamic/app/app.config.d.ts +5 -0
  2418. package/runtime/dynamic/app/app.module.d.ts +37 -0
  2419. package/runtime/dynamic/app/app.routes.d.ts +2 -0
  2420. package/runtime/dynamic/app/components/page-wrapper.component.d.ts +37 -0
  2421. package/runtime/dynamic/app/services/app-extension.service.d.ts +7 -0
  2422. package/runtime/dynamic/app/services/app-js-provider.service.d.ts +10 -0
  2423. package/runtime/dynamic/app/services/app-resource-manager.service.d.ts +10 -0
  2424. package/runtime/dynamic/app/services/app-variables-provider.service.d.ts +12 -0
  2425. package/runtime/dynamic/app/services/component-ref-provider.service.d.ts +17 -0
  2426. package/runtime/dynamic/app/services/customwidget-config-provider.service.d.ts +8 -0
  2427. package/runtime/dynamic/app/services/prefab-config-provider.service.d.ts +10 -0
  2428. package/runtime/dynamic/bundles/index.umd.js +887 -0
  2429. package/runtime/dynamic/esm2022/app/app.config.mjs +141 -0
  2430. package/runtime/dynamic/esm2022/app/app.module.mjs +314 -0
  2431. package/runtime/dynamic/esm2022/app/app.routes.mjs +21 -0
  2432. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +106 -0
  2433. package/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +24 -0
  2434. package/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +25 -0
  2435. package/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +31 -0
  2436. package/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +27 -0
  2437. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +266 -0
  2438. package/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +22 -0
  2439. package/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +29 -0
  2440. package/runtime/dynamic/esm2022/index.mjs +5 -0
  2441. package/runtime/dynamic/esm2022/main.mjs +42 -0
  2442. package/runtime/dynamic/esm2022/public_api.mjs +10 -0
  2443. package/runtime/dynamic/fesm2022/index.mjs +950 -0
  2444. package/runtime/dynamic/fesm2022/index.mjs.map +1 -0
  2445. package/runtime/dynamic/index.d.ts +5 -0
  2446. package/runtime/dynamic/main.d.ts +2 -0
  2447. package/runtime/dynamic/package.json +25 -0
  2448. package/runtime/dynamic/public_api.d.ts +9 -0
  2449. package/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -0
  2450. package/scripts/d3/d3.min.js +2 -0
  2451. package/scripts/datatable/datatable.js +3769 -0
  2452. package/scripts/iscroll/build/iscroll.js +2091 -0
  2453. package/scripts/jquery-ui/ui/widgets/droppable.js +503 -0
  2454. package/scripts/jquery-ui/ui/widgets/resizable.js +1275 -0
  2455. package/scripts/jquery-ui/ui/widgets/sortable.js +1608 -0
  2456. package/scripts/jquery.ui.touch-punch/jquery.ui.touch-punch.min.js +11 -0
  2457. package/scripts/summernote/dist/summernote-lite.min.js +2 -0
  2458. package/scripts/swipey/swipey.jquery.plugin.js +769 -0
  2459. package/scripts/tree-keyboard-navigation/keyboard-navigation.js +251 -0
  2460. package/security/.npmignore +2 -0
  2461. package/security/bundles/index.umd.js +446 -0
  2462. package/security/esm2022/index.mjs +5 -0
  2463. package/security/esm2022/public_api.mjs +2 -0
  2464. package/security/esm2022/security.service.mjs +439 -0
  2465. package/security/fesm2022/index.mjs +444 -0
  2466. package/security/fesm2022/index.mjs.map +1 -0
  2467. package/security/index.d.ts +5 -0
  2468. package/security/package.json +25 -0
  2469. package/security/public_api.d.ts +1 -0
  2470. package/security/security.service.d.ts +127 -0
  2471. package/swipey/.npmignore +2 -0
  2472. package/swipey/bundles/index.umd.js +54 -0
  2473. package/swipey/esm2022/index.mjs +5 -0
  2474. package/swipey/esm2022/public_api.mjs +2 -0
  2475. package/swipey/esm2022/swipe.animation.mjs +45 -0
  2476. package/swipey/fesm2022/index.mjs +51 -0
  2477. package/swipey/fesm2022/index.mjs.map +1 -0
  2478. package/swipey/index.d.ts +5 -0
  2479. package/swipey/package.json +25 -0
  2480. package/swipey/public_api.d.ts +1 -0
  2481. package/swipey/swipe.animation.d.ts +19 -0
  2482. package/transpiler/.npmignore +2 -0
  2483. package/transpiler/build.d.ts +35 -0
  2484. package/transpiler/bundles/index.umd.js +804 -0
  2485. package/transpiler/esm2022/build.mjs +475 -0
  2486. package/transpiler/esm2022/imports.mjs +318 -0
  2487. package/transpiler/esm2022/index.mjs +5 -0
  2488. package/transpiler/esm2022/public_api.mjs +3 -0
  2489. package/transpiler/fesm2022/index.mjs +799 -0
  2490. package/transpiler/fesm2022/index.mjs.map +1 -0
  2491. package/transpiler/imports.d.ts +2 -0
  2492. package/transpiler/index.d.ts +5 -0
  2493. package/transpiler/package.json +26 -0
  2494. package/transpiler/public_api.d.ts +2 -0
  2495. package/variables/.npmignore +2 -0
  2496. package/variables/advanced-options.d.ts +4 -0
  2497. package/variables/bundles/index.umd.js +3174 -0
  2498. package/variables/constants/variables.constants.d.ts +315 -0
  2499. package/variables/esm2022/advanced-options.mjs +2 -0
  2500. package/variables/esm2022/constants/variables.constants.mjs +333 -0
  2501. package/variables/esm2022/factory/variable-manager.factory.mjs +24 -0
  2502. package/variables/esm2022/factory/variable.factory.mjs +46 -0
  2503. package/variables/esm2022/index.mjs +5 -0
  2504. package/variables/esm2022/manager/action/base-action.manager.mjs +14 -0
  2505. package/variables/esm2022/manager/action/login-action.manager.mjs +180 -0
  2506. package/variables/esm2022/manager/action/logout-action.manager.mjs +77 -0
  2507. package/variables/esm2022/manager/action/navigation-action.manager.mjs +8 -0
  2508. package/variables/esm2022/manager/action/notification-action.manager.mjs +152 -0
  2509. package/variables/esm2022/manager/variable/base-variable.manager.mjs +81 -0
  2510. package/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +289 -0
  2511. package/variables/esm2022/model/action/login-action.mjs +25 -0
  2512. package/variables/esm2022/model/action/logout-action.mjs +22 -0
  2513. package/variables/esm2022/model/action/navigation-action.mjs +26 -0
  2514. package/variables/esm2022/model/action/notification-action.mjs +91 -0
  2515. package/variables/esm2022/model/variable/web-socket-variable.mjs +34 -0
  2516. package/variables/esm2022/public_api.mjs +6 -0
  2517. package/variables/esm2022/service/metadata-service/metadata.service.mjs +60 -0
  2518. package/variables/esm2022/service/variables.service.mjs +199 -0
  2519. package/variables/esm2022/util/action/navigation-action.utils.mjs +52 -0
  2520. package/variables/esm2022/util/oAuth.utils.mjs +11 -0
  2521. package/variables/esm2022/util/variable/pagination.utils.mjs +402 -0
  2522. package/variables/esm2022/util/variable/service-variable.utils.mjs +376 -0
  2523. package/variables/esm2022/util/variable/variables.utils.mjs +809 -0
  2524. package/variables/factory/variable-manager.factory.d.ts +3 -0
  2525. package/variables/factory/variable.factory.d.ts +3 -0
  2526. package/variables/fesm2022/index.mjs +3236 -0
  2527. package/variables/fesm2022/index.mjs.map +1 -0
  2528. package/variables/index.d.ts +5 -0
  2529. package/variables/manager/action/base-action.manager.d.ts +4 -0
  2530. package/variables/manager/action/login-action.manager.d.ts +7 -0
  2531. package/variables/manager/action/logout-action.manager.d.ts +4 -0
  2532. package/variables/manager/action/navigation-action.manager.d.ts +4 -0
  2533. package/variables/manager/action/notification-action.manager.d.ts +23 -0
  2534. package/variables/manager/variable/base-variable.manager.d.ts +24 -0
  2535. package/variables/manager/variable/web-socket-variable.manager.d.ts +124 -0
  2536. package/variables/model/action/login-action.d.ts +11 -0
  2537. package/variables/model/action/logout-action.d.ts +10 -0
  2538. package/variables/model/action/navigation-action.d.ts +9 -0
  2539. package/variables/model/action/notification-action.d.ts +25 -0
  2540. package/variables/model/variable/web-socket-variable.d.ts +11 -0
  2541. package/variables/package.json +25 -0
  2542. package/variables/public_api.d.ts +5 -0
  2543. package/variables/service/metadata-service/metadata.service.d.ts +16 -0
  2544. package/variables/service/variables.service.d.ts +57 -0
  2545. package/variables/util/action/navigation-action.utils.d.ts +6 -0
  2546. package/variables/util/oAuth.utils.d.ts +3 -0
  2547. package/variables/util/variable/pagination.utils.d.ts +82 -0
  2548. package/variables/util/variable/service-variable.utils.d.ts +16 -0
  2549. package/variables/util/variable/variables.utils.d.ts +80 -0
@@ -0,0 +1,754 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { ScrollableDirective } from './scrollable.directive';
4
+ import { Attribute, Component, ElementRef, Inject, Injector, Optional, QueryList, ViewChild, ViewChildren } from '@angular/core';
5
+ import { from, Observable, of } from 'rxjs';
6
+ import { filter, mergeMap } from 'rxjs/operators';
7
+ import { TypeaheadDirective, TypeaheadModule } from 'ngx-bootstrap/typeahead';
8
+ import { addClass, adjustContainerPosition, App, DataSource, isDefined, isMobile, toBoolean } from '@wm/core';
9
+ import { ALLFIELDS, convertDataToObject, extractDataAsArray, getContainerTargetClass, getUniqObjsByDataField, ItemTemplateDirective, PartialContainerDirective, PartialParamHandlerDirective, provideAs, provideAsWidgetRef, styler, TextContentDirective, transformFormData } from '@wm/components/base';
10
+ import { DatasetAwareFormComponent } from '@wm/components/input/dataset-aware-form';
11
+ import { registerProps } from './search.props';
12
+ import { DataProvider } from './data-provider/data-provider';
13
+ import { debounce, find, get, includes, isArray, isEmpty, isEqual, isObject, isUndefined, map, split, toString, trim } from "lodash-es";
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@wm/core";
16
+ import * as i2 from "@angular/common";
17
+ import * as i3 from "@angular/forms";
18
+ import * as i4 from "ngx-bootstrap/typeahead";
19
+ const WIDGET_CONFIG = { widgetType: 'wm-search', hostClass: 'input-group' };
20
+ export class SearchComponent extends DatasetAwareFormComponent {
21
+ static { this.initializeProps = registerProps(); }
22
+ // getter setter is added to pass the datasource to searchcomponent.
23
+ get datasource() {
24
+ return this._datasource;
25
+ }
26
+ set datasource(nv) {
27
+ this._datasource = nv;
28
+ const data = this.datavalue || this.toBeProcessedDatavalue;
29
+ this.updateByDatavalue(data);
30
+ }
31
+ constructor(inj, app, binddatavalue, binddataset, explicitContext) {
32
+ super(inj, WIDGET_CONFIG, explicitContext);
33
+ this.binddatavalue = binddatavalue;
34
+ this.binddataset = binddataset;
35
+ this.query = '';
36
+ this.page = 1;
37
+ // this flag will not allow the empty datafield values.
38
+ this.allowempty = false;
39
+ this.app = app;
40
+ addClass(this.nativeElement, 'app-search', true);
41
+ /**
42
+ * Listens for the change in the ngModel on every search and retrieves the data as observable.
43
+ * This observable data is passed to the typeahead.
44
+ * @type {Observable<any>}
45
+ */
46
+ this.typeaheadDataSource = Observable
47
+ .create((observer) => {
48
+ // Runs on every search
49
+ if (this.listenQuery) {
50
+ this._defaultQueryInvoked = false;
51
+ this._loadingItems = true;
52
+ observer.next(this.query);
53
+ }
54
+ // on keydown, while scrolling the dropdown items, when last item is reached next call is triggered
55
+ // unless the call is resolved, we are able to scroll next to first item and soon
56
+ // This shows flickering from first item to next new items appended.
57
+ // By setting container to undefined, key events changes will be stopped while loading items
58
+ if (this.lastSelectedIndex) {
59
+ this.typeahead._container = undefined;
60
+ }
61
+ }).pipe(filter(() => {
62
+ this._loadingItems = false;
63
+ return (this.minchars === 0 || (this.query && this.query.length >= this.minchars));
64
+ }), mergeMap((token) => this.getDataSourceAsObservable(token)));
65
+ this.dataProvider = new DataProvider();
66
+ /**
67
+ * When default datavalue is not found within the dataset, a filter call is made to get the record using fetchDefaultModel.
68
+ * after getting the response, set the queryModel and query.
69
+ */
70
+ const datavalueSubscription = this.datavalue$.subscribe((val) => {
71
+ const query = (isArray(val) ? val[0] : val);
72
+ if (query === null || query === '') {
73
+ this._modelByValue = '';
74
+ // reset the query.
75
+ this.query = this.queryModel = '';
76
+ // on clear or reset filter, empty the lastResults to fetch new records.
77
+ this._lastResult = undefined;
78
+ return;
79
+ }
80
+ if (!this._unsubscribeDv) {
81
+ this._defaultQueryInvoked = false;
82
+ // if prev datavalue is not equal to current datavalue then clear the modelByKey and queryModel
83
+ if (!isObject(val) && this.prevDatavalue !== val) {
84
+ this._modelByKey = undefined;
85
+ this.query = this.queryModel = '';
86
+ }
87
+ // if the datafield is ALLFILEDS do not fetch the records
88
+ // update the query model with the values we have
89
+ this.updateByDatavalue(val);
90
+ }
91
+ // turn on showCloseBtn when a default value is given
92
+ this.showClosebtn = (this.query !== '');
93
+ });
94
+ this.registerDestroyListener(() => datavalueSubscription.unsubscribe());
95
+ const datasetSubscription = this.dataset$.subscribe(() => {
96
+ // set the next item index.
97
+ this.startIndex = this.datasetItems.length;
98
+ this._lastResult = undefined;
99
+ const defaultValue = this.datavalue || this.toBeProcessedDatavalue;
100
+ // invoking updateByDataset only when datavalue is present, as entered value i.e. query is setting back to ''
101
+ if (isDefined(defaultValue)) {
102
+ this.updateByDataset(defaultValue);
103
+ }
104
+ });
105
+ this.registerDestroyListener(() => datasetSubscription.unsubscribe());
106
+ }
107
+ // on clear, trigger search with page size 1
108
+ clearSearch($event, loadOnClear) {
109
+ this.query = '';
110
+ this.onInputChange($event);
111
+ if (this.dataProvider) {
112
+ this.dataProvider.isLastPage = false;
113
+ }
114
+ this.listenQuery = false;
115
+ if (loadOnClear) {
116
+ this.listenQuery = true;
117
+ this._unsubscribeDv = false;
118
+ this.loadMoreData();
119
+ }
120
+ this.invokeEventCallback('clearsearch');
121
+ this._loadingItems = false;
122
+ // when search input is cleared, focus on the input field
123
+ if ($event) {
124
+ this.$element.find('.app-search-input').focus();
125
+ }
126
+ }
127
+ // function to clear the input value
128
+ clearText() {
129
+ this.query = '';
130
+ this.showClosebtn = false;
131
+ }
132
+ // Close the full screen mode in mobile view of auto complete
133
+ closeSearch() {
134
+ this._loadingItems = false;
135
+ this.page = 1;
136
+ // after closing the search, insert the element at its previous position (elIndex)
137
+ this.insertAtIndex(this.elIndex);
138
+ this.elIndex = undefined;
139
+ this.parentEl = undefined;
140
+ this.$element.removeClass('full-screen');
141
+ if (this._domUpdated) {
142
+ this._domUpdated = false;
143
+ }
144
+ this.listenQuery = false;
145
+ this._unsubscribeDv = true;
146
+ this.typeahead.hide();
147
+ }
148
+ renderMobileAutoComplete() {
149
+ // Get the parent element of the search element which can be next or prev element, if both are empty then get the parent of element.
150
+ if (!isDefined(this.elIndex)) {
151
+ this.parentEl = this.$element.parent();
152
+ this.elIndex = this.parentEl.children().index(this.$element);
153
+ }
154
+ if (!this.$element.hasClass('full-screen')) {
155
+ // this flag is set to notify that the typeahead-container dom has changed its position
156
+ this._domUpdated = true;
157
+ // Add full screen class on focus of the input element.
158
+ this.$element.addClass('full-screen');
159
+ // Add position to set the height to auto
160
+ if (this.position === 'inline') {
161
+ this.$element.addClass(this.position);
162
+ }
163
+ }
164
+ // focus is lost when element is changed to full-screen, keydown to select next items will not work
165
+ // Hence explicitly focusing the input
166
+ if (this.$element.hasClass('full-screen')) {
167
+ this.$element.find('.app-search-input').focus();
168
+ }
169
+ }
170
+ getDataSourceAsObservable(query) {
171
+ // show dropdown only when there is change in query. This should not apply when dataoptions with filterFields are updated.
172
+ // when lastResult is not available i.e. still the first call is pending and second query is invoked then do not return.
173
+ if (this._lastQuery === query && !get(this.dataoptions, 'filterFields') && isDefined(this._lastResult)) {
174
+ this._loadingItems = false;
175
+ return of(this._lastResult);
176
+ }
177
+ /*
178
+ WMS-19177: On focus of input field for autocomplete type, do not trigger api call when
179
+ a) searchkey and displayexpression are different
180
+ b) binddisplaylabel contains multiple values
181
+ c) binddisplaylabel contains single value which does not match with searchkey
182
+ */
183
+ if (this.type === 'autocomplete' && this.searchkey && this.query && this.datavalue) {
184
+ let bindDisplayLabelArray = [];
185
+ const searchKeyArray = split(this.searchkey, ',');
186
+ let displaylabel;
187
+ if (this.binddisplaylabel) {
188
+ bindDisplayLabelArray = split(this.binddisplaylabel, '+');
189
+ if (bindDisplayLabelArray.length === 1) {
190
+ if (!includes(bindDisplayLabelArray[0], '|')) {
191
+ const regex = /\[(.*?)\]/;
192
+ displaylabel = regex.exec(bindDisplayLabelArray[0])[1];
193
+ }
194
+ else {
195
+ displaylabel = true;
196
+ }
197
+ }
198
+ }
199
+ if ((bindDisplayLabelArray.length > 1 || (displaylabel && !includes(searchKeyArray, displaylabel))
200
+ || (this.displayexpression && !includes(searchKeyArray, this.displayexpression)))) {
201
+ this._loadingItems = false;
202
+ return of([]);
203
+ }
204
+ }
205
+ this._lastQuery = this.query;
206
+ return from(this.getDataSource(query));
207
+ }
208
+ handleEvent(node, eventName, eventCallback, locals) {
209
+ if (!includes(['blur', 'focus', 'select', 'submit', 'change'], eventName)) {
210
+ super.handleEvent(node, eventName, eventCallback, locals);
211
+ }
212
+ }
213
+ // highlight the characters in the dropdown matching the query.
214
+ highlight(match, query) {
215
+ if (this.typeaheadContainer) {
216
+ // highlight of chars will work only when label are strings.
217
+ match.value = match.item.label.toString();
218
+ return this.typeaheadContainer.highlight(match, query);
219
+ }
220
+ }
221
+ // inserts the element at the index position
222
+ insertAtIndex(i) {
223
+ if (i === 0) {
224
+ this.parentEl.prepend(this.$element);
225
+ }
226
+ else {
227
+ const $elAtIndex = this.parentEl.children().eq(i);
228
+ if ($elAtIndex.length) {
229
+ this.$element.insertBefore(this.parentEl.children().eq(i));
230
+ }
231
+ else {
232
+ this.$element.insertAfter(this.parentEl.children().eq(i - 1));
233
+ }
234
+ }
235
+ }
236
+ // Check if the widget is of type autocomplete in mobile view/ app
237
+ isMobileAutoComplete() {
238
+ return this.type === 'autocomplete' && isMobile();
239
+ }
240
+ // Check if the query is entered in the input and the view is not mobile
241
+ isQueryEntered() {
242
+ return this.showclear && this.showClosebtn;
243
+ }
244
+ loadMoreData(incrementPage) {
245
+ if (!this.dataProvider || this.dataProvider.isLastPage) {
246
+ return;
247
+ }
248
+ // Increase the page number and trigger force query update
249
+ this.page = incrementPage ? this.page + 1 : this.page;
250
+ this.isScrolled = true;
251
+ this._loadingItems = true;
252
+ // when invoking new set of results, reset the lastQuery.
253
+ if (incrementPage) {
254
+ this._lastQuery = undefined;
255
+ }
256
+ // trigger the typeahead change manually to fetch the next set of results.
257
+ this.typeahead.onInput({
258
+ target: {
259
+ value: trim(this.query) || '0' // dummy data to notify the observables
260
+ }
261
+ });
262
+ }
263
+ // on focusout, subscribe to the datavalue changes again
264
+ onFocusOut() {
265
+ this._unsubscribeDv = false;
266
+ this._loadingItems = false;
267
+ // reset the page value on focusout.
268
+ this.page = 1;
269
+ // if domUpdated is true then do not hide the dropdown in the fullscreen
270
+ if (!this._domUpdated && this._isOpen) {
271
+ this.listenQuery = false;
272
+ }
273
+ this._isOpen = false;
274
+ // on outside click, typeahead is hidden. To avoid this, when fullscreen is set, overridding isFocused flag on the typeahead container
275
+ if (this._domUpdated && this.typeahead && this.typeahead._container) {
276
+ this.typeahead._container.isFocused = true;
277
+ }
278
+ }
279
+ onInputChange($event) {
280
+ // reset all the previous page details in order to fetch new set of result.
281
+ this.result = [];
282
+ this.page = 1;
283
+ this.listenQuery = this.isUpdateOnKeyPress();
284
+ this._modelByValue = undefined;
285
+ // when input is cleared, reset the datavalue
286
+ if (this.query === '') {
287
+ this.queryModel = '';
288
+ this._modelByValue = '';
289
+ this.updatePrevDatavalue(this._lastQuery);
290
+ this.invokeOnChange(this._modelByValue, {}, true);
291
+ this.invokeEventCallback('clear', { $event });
292
+ // trigger onSubmit only when the search input is cleared off and do not trigger when tab is pressed.
293
+ if ($event && $event.which !== 9) {
294
+ this.invokeEventCallback('submit', { $event });
295
+ }
296
+ }
297
+ else {
298
+ // invoking change event on every input value change.
299
+ this.invokeEventCallback('change', {
300
+ $event: $event,
301
+ newVal: this._modelByValue || this.query,
302
+ oldVal: this.prevDatavalue
303
+ });
304
+ }
305
+ this.showClosebtn = (this.query !== '');
306
+ }
307
+ // Triggered for enter event
308
+ handleEnterEvent($event) {
309
+ // submit event triggered when there is no search results
310
+ if (!get(this.typeahead, 'matches.length')) {
311
+ this.onSearchSelect($event);
312
+ }
313
+ }
314
+ // Triggerred when typeahead option is selected.
315
+ onSearchSelect($event) {
316
+ let item;
317
+ // WMS-22533: Before adding active typeahead el, check if the entered query matches with the active el or not
318
+ const isQueryMatch = this.typeaheadContainer?.active?.value === this.query;
319
+ if (this.typeaheadContainer && this.typeaheadContainer.active && isQueryMatch) {
320
+ item = this.typeaheadContainer.active.item;
321
+ }
322
+ $event = this.eventData($event, item || {});
323
+ // searchOn is set as onBtnClick, then invoke the search api call manually.
324
+ if (!this.isUpdateOnKeyPress()) {
325
+ this.listenQuery = true;
326
+ // trigger the typeahead change manually to fetch the next set of results.
327
+ this.typeahead.onInput({
328
+ target: {
329
+ value: this.query // dummy data to notify the observables
330
+ }
331
+ });
332
+ return;
333
+ }
334
+ // when matches are available.
335
+ if (this.typeaheadContainer && this.liElements.length && isQueryMatch) {
336
+ this.typeaheadContainer.selectActiveMatch();
337
+ }
338
+ else {
339
+ this.queryModel = this.query;
340
+ this.invokeEventCallback('submit', { $event });
341
+ }
342
+ }
343
+ invokeOnBeforeServiceCall(inputData) {
344
+ this.invokeEventCallback('beforeservicecall', { inputData });
345
+ }
346
+ onDropdownOpen() {
347
+ if (this.clearData) {
348
+ this.typeahead.hide();
349
+ }
350
+ // setting the ulElements, liElement on typeaheadContainer.
351
+ // as we are using customOption template, liElements are not available on typeaheadContainer so append them explicitly.
352
+ const fn = debounce(() => {
353
+ this._isOpen = true;
354
+ this.typeaheadContainer = this.typeahead._container || this.typeahead._typeahead.instance;
355
+ this.typeaheadContainer.liElements = this.liElements;
356
+ this.typeaheadContainer.ulElement = this.ulElement;
357
+ adjustContainerPosition($('typeahead-container'), this.nativeElement, this.typeahead._typeahead, $('typeahead-container .dropdown-menu'));
358
+ });
359
+ fn();
360
+ // open full-screen search view
361
+ if (this.isMobileAutoComplete()) {
362
+ if (!this.$element.hasClass('full-screen')) {
363
+ this.renderMobileAutoComplete();
364
+ }
365
+ const dropdownEl = this.dropdownEl.closest('typeahead-container');
366
+ dropdownEl.insertAfter(this.$element.find('input').first());
367
+ const screenHeight = this.$element.closest('.app-content').height();
368
+ dropdownEl.css({ position: 'relative', top: 0, height: screenHeight + 'px' });
369
+ this.showClosebtn = this.query && this.query !== '';
370
+ if (this.dataProvider && !isUndefined(this.dataProvider.isLastPage) && !this.dataProvider.isLastPage) {
371
+ this.triggerSearch();
372
+ }
373
+ }
374
+ }
375
+ selectNext() {
376
+ const matches = this.typeaheadContainer.matches;
377
+ if (!matches) {
378
+ return;
379
+ }
380
+ const index = matches.indexOf(this.typeaheadContainer.active);
381
+ // on keydown, if scroll is at the bottom and next page records are available, fetch next page items.
382
+ if (!this._loadingItems && this.dataProvider && !this.dataProvider.isLastPage && index + 1 > matches.length - 1) {
383
+ // index is saved in order to select the lastSelected item in the dropdown after fetching next page items.
384
+ this.lastSelectedIndex = index;
385
+ this.loadMoreData(true);
386
+ }
387
+ }
388
+ setLastActiveMatchAsSelected() {
389
+ if (this.lastSelectedIndex) {
390
+ this.typeaheadContainer._active = this.typeaheadContainer.matches[this.lastSelectedIndex];
391
+ this.typeaheadContainer.nextActiveMatch();
392
+ this.lastSelectedIndex = undefined;
393
+ }
394
+ }
395
+ triggerSearch() {
396
+ if (!this.dataProvider || this.dataProvider.isLastPage || !this.$element.hasClass('full-screen')) {
397
+ return;
398
+ }
399
+ const typeAheadDropDown = this.dropdownEl;
400
+ const $lastItem = typeAheadDropDown.find('li').last();
401
+ // Check if last item is not below the full screen
402
+ if ($lastItem.length && typeAheadDropDown.length && (typeAheadDropDown.height() + typeAheadDropDown.position().top > $lastItem.height() + $lastItem.position().top)) {
403
+ this.loadMoreData(true);
404
+ }
405
+ }
406
+ isUpdateOnKeyPress() {
407
+ return this.searchon === 'typing';
408
+ }
409
+ debounceDefaultQuery(data) {
410
+ this._defaultQueryInvoked = true;
411
+ this.getDataSource(data, true).then((response) => {
412
+ if (response.length) {
413
+ this.queryModel = response;
414
+ this._lastQuery = this.query = this.queryModel[0].label || '';
415
+ this._modelByValue = this.queryModel[0].value;
416
+ this._modelByKey = this.queryModel[0].key;
417
+ this.showClosebtn = (this.query !== '');
418
+ }
419
+ else {
420
+ this._modelByValue = undefined;
421
+ this.queryModel = undefined;
422
+ this.query = '';
423
+ }
424
+ if (this.clearData) {
425
+ if (get(this.typeahead, '_typeahead.isShown')) {
426
+ this.typeahead.hide();
427
+ }
428
+ }
429
+ });
430
+ }
431
+ updateByDatavalue(data) {
432
+ this.updateByDataset(data);
433
+ this.updateByDataSource(data);
434
+ }
435
+ updateByDataSource(data) {
436
+ // value is present but the corresponding key is not found then fetch next set
437
+ // modelByKey will be set only when datavalue is available inside the localData otherwise make a N/w call.
438
+ if (isDefined(data) && !isObject(data) && this.datasource && !isDefined(this._modelByKey) && this.datafield !== ALLFIELDS) {
439
+ // Avoid making default query if queryModel already exists.
440
+ if (isDefined(this.queryModel) && !isEmpty(this.queryModel)) {
441
+ this.updateDatavalueFromQueryModel();
442
+ return;
443
+ }
444
+ // Make default query call only when datasource supports CRUD (live variable).
445
+ if (!this._defaultQueryInvoked && this.datasource.execute(DataSource.Operation.SUPPORTS_CRUD)) {
446
+ this.debounceDefaultQuery(data);
447
+ }
448
+ }
449
+ }
450
+ // updates the model value using queryModel
451
+ updateDatavalueFromQueryModel() {
452
+ if (isDefined(this.queryModel)) {
453
+ this._modelByValue = isArray(this.queryModel) ? this.queryModel[0].value : this.queryModel;
454
+ this._modelByKey = isArray(this.queryModel) ? this.queryModel[0].key : this.queryModel;
455
+ this.toBeProcessedDatavalue = undefined;
456
+ }
457
+ }
458
+ updateByDataset(data) {
459
+ // default query is already invoked then do not make other default query call.
460
+ // For local search i.e. searchkey is undefined, do not return, verify the datavalue against the datasetItems .
461
+ if (this._defaultQueryInvoked && this.searchkey) {
462
+ return;
463
+ }
464
+ const selectedItem = find(this.datasetItems, (item) => {
465
+ return (isObject(item.value) ? isEqual(item.value, data) : (toString(item.value)).toLowerCase() === (toString(data)).toLowerCase());
466
+ });
467
+ // set the default only when it is available in dataset.
468
+ if (selectedItem) {
469
+ this.queryModel = [selectedItem];
470
+ }
471
+ else if (this.datafield === ALLFIELDS && isObject(data)) {
472
+ this.queryModel = this.getTransformedData(extractDataAsArray(data));
473
+ }
474
+ else {
475
+ // resetting the queryModel only when prevDatavalue is equal to data
476
+ if (this.prevDatavalue !== data) {
477
+ this.queryModel = undefined;
478
+ this.query = '';
479
+ return;
480
+ }
481
+ }
482
+ this.updateDatavalueFromQueryModel();
483
+ // Show the label value on input.
484
+ this._lastQuery = this.query = isDefined(this.queryModel) && this.queryModel.length ? get(this.queryModel[0], 'label') : '';
485
+ this.showClosebtn = (this.query !== '');
486
+ }
487
+ // If we have last search results then open dropdown on focus
488
+ handleFocus($event) {
489
+ if (this.type === 'search' && this.query === this._lastQuery && this._lastResult) {
490
+ this.typeahead.keyUpEventEmitter.emit(this.query);
491
+ }
492
+ }
493
+ notifySubscriber() {
494
+ const parentEl = $(this.nativeElement).closest('.app-composite-widget.caption-floating');
495
+ if (parentEl.length > 0) {
496
+ this.app.notify('captionPositionAnimate', { displayVal: true, nativeEl: parentEl });
497
+ }
498
+ }
499
+ // This method returns a promise that provides the filtered data from the datasource.
500
+ getDataSource(query, searchOnDataField, nextItemIndex) {
501
+ // For default query, searchOnDataField is set to true, then do not make a n/w call when datafield is ALLFIELDS
502
+ if (searchOnDataField && this.datafield === ALLFIELDS) {
503
+ this._loadingItems = false;
504
+ return Promise.resolve([]);
505
+ }
506
+ // For default datavalue, search key as to be on datafield to get the default data from the filter call.
507
+ const dataConfig = {
508
+ dataset: this.dataset ? convertDataToObject(this.dataset) : undefined,
509
+ binddataset: this.binddataset,
510
+ datasource: this.datasource,
511
+ datafield: this.datafield,
512
+ hasData: this.dataset && this.dataset.length,
513
+ query: query,
514
+ isLocalFilter: !this.searchkey,
515
+ searchKey: searchOnDataField ? this.datafield : this.searchkey,
516
+ // default search call match mode should be startignorecase
517
+ matchMode: searchOnDataField ? 'startignorecase' : this.matchmode,
518
+ casesensitive: this.casesensitive,
519
+ isformfield: this.isformfield,
520
+ orderby: this.orderby,
521
+ limit: this.limit,
522
+ pagesize: this.pagesize,
523
+ page: this.page,
524
+ onBeforeservicecall: this.invokeOnBeforeServiceCall.bind(this)
525
+ };
526
+ if (this.dataoptions) {
527
+ dataConfig.dataoptions = this.dataoptions;
528
+ dataConfig.viewParent = this.viewParent;
529
+ }
530
+ this._loadingItems = true;
531
+ return this.dataProvider.filter(dataConfig)
532
+ .then((response) => {
533
+ // response from dataProvider returns always data object.
534
+ response = response.data || response;
535
+ // for service variable, updating the dataset only if it is not defined or empty
536
+ if (this.dataProvider && (!isDefined(this.dataset) || !this.dataset.length) && this.dataProvider.updateDataset) {
537
+ this.dataset = response;
538
+ }
539
+ if (this.dataProvider && this.dataProvider.hasMoreData) {
540
+ this.formattedDataset = this.formattedDataset.concat(response);
541
+ }
542
+ else {
543
+ this.formattedDataset = response;
544
+ }
545
+ // explicitly setting the optionslimit as the matches more than 20 will be ignored if optionslimit is not specified.
546
+ if (this.formattedDataset.length > 20 && !isDefined(this.limit)) {
547
+ this.typeahead.typeaheadOptionsLimit = this.formattedDataset.length;
548
+ }
549
+ // In mobile, trigger the search by default until the results have height upto page height. Other results can be fetched by scrolling
550
+ if (this.dataProvider && this._isOpen && this.isMobileAutoComplete() && !isUndefined(this.dataProvider.isLastPage) && !this.dataProvider.isLastPage) {
551
+ this.triggerSearch();
552
+ }
553
+ const transformedData = this.getTransformedData(this.formattedDataset, nextItemIndex);
554
+ // result contains the datafield values.
555
+ this.result = map(transformedData, 'value');
556
+ return transformedData;
557
+ }, (error) => {
558
+ this._loadingItems = false;
559
+ return [];
560
+ }).then(result => {
561
+ if (this.isScrolled) {
562
+ (debounce(() => {
563
+ this.setLastActiveMatchAsSelected();
564
+ }, 30))();
565
+ this.isScrolled = false;
566
+ }
567
+ // When no result is found, set the datavalue to undefined.
568
+ if (!result.length) {
569
+ this._modelByValue = undefined;
570
+ this.queryModel = query;
571
+ }
572
+ // on focusout i.e. on other widget focus, if n/w is pending loading icon is shown, when data is available then dropdown is shown again.
573
+ // on unsubscribing do not show the results.
574
+ if (this._unsubscribeDv) {
575
+ result = [];
576
+ }
577
+ this._loadingItems = false;
578
+ this._lastResult = result;
579
+ return result;
580
+ });
581
+ }
582
+ // this method returns the parent context i.e. Page context and not parent component's context.
583
+ getContext(context) {
584
+ if (context && get(context, 'widget')) {
585
+ return this.getContext(context.viewParent);
586
+ }
587
+ return context;
588
+ }
589
+ getTransformedData(data, itemIndex, iscustom) {
590
+ if (isDefined(itemIndex)) {
591
+ itemIndex++;
592
+ }
593
+ const transformedData = transformFormData(this.getContext(this.viewParent), data, this.datafield, {
594
+ displayField: this.displaylabel || this.displayfield,
595
+ displayExpr: iscustom ? '' : this.displayexpression,
596
+ bindDisplayExpr: iscustom ? '' : this.binddisplaylabel,
597
+ bindDisplayImgSrc: this.binddisplayimagesrc,
598
+ displayImgSrc: this.displayimagesrc
599
+ }, itemIndex, this);
600
+ return getUniqObjsByDataField(transformedData, this.datafield, this.displayfield || this.displaylabel, toBoolean(this.allowempty));
601
+ }
602
+ // OptionsListTemplate listens to the scroll event and triggers this function.
603
+ onScroll($scrollEl, evt) {
604
+ const totalHeight = $scrollEl.scrollHeight, clientHeight = $scrollEl.clientHeight;
605
+ // If scroll is at the bottom and no request is in progress and next page records are available, fetch next page items.
606
+ if (!this._loadingItems && this.dataProvider && !this.dataProvider.isLastPage && ($scrollEl.scrollTop + clientHeight >= totalHeight)) {
607
+ this.loadMoreData(true);
608
+ }
609
+ }
610
+ ngOnInit() {
611
+ super.ngOnInit();
612
+ if (!isDefined(this.minchars)) {
613
+ // for autocomplete set the minchars to 0
614
+ if (this.type === 'autocomplete') {
615
+ this.minchars = 0;
616
+ }
617
+ else {
618
+ this.minchars = 1;
619
+ }
620
+ }
621
+ this.listenQuery = this.isUpdateOnKeyPress();
622
+ // by default for autocomplete do not show the search icon
623
+ // by default show the searchicon for type = search
624
+ this.showsearchicon = isDefined(this.showsearchicon) ? this.showsearchicon : (this.type === 'search');
625
+ }
626
+ ngAfterViewInit() {
627
+ super.ngAfterViewInit();
628
+ styler(this.nativeElement, this);
629
+ this.containerTarget = getContainerTargetClass(this.nativeElement);
630
+ }
631
+ ngAfterViewChecked() {
632
+ const searchInputEl = $('.app-search-input');
633
+ if (searchInputEl) {
634
+ searchInputEl.removeAttr('aria-expanded');
635
+ }
636
+ }
637
+ eventData($event, item) {
638
+ if ($event) {
639
+ $event['data'] = {
640
+ item: item.dataObject,
641
+ model: item.value,
642
+ label: item.label,
643
+ query: this.query
644
+ };
645
+ }
646
+ return $event;
647
+ }
648
+ // triggered on select on option from the list. Set the queryModel, query and modelByKey from the matched item.
649
+ typeaheadOnSelect(match, $event) {
650
+ const item = match.item;
651
+ this.queryModel = item;
652
+ item.selected = true;
653
+ this.query = item.label;
654
+ this.showClosebtn = (this.query !== '');
655
+ $event = $event || this.$typeaheadEvent;
656
+ // As item.key can vary from key in the datasetItems
657
+ this._modelByKey = item.key;
658
+ this._modelByValue = item.value;
659
+ $event = this.eventData($event, item);
660
+ this.invokeOnTouched();
661
+ this.invokeOnChange(this.datavalue, $event || {});
662
+ // updating the variable bound to default value as invokeOnChange is not updating the variable.
663
+ if (this.datavalue !== this.prevDatavalue) {
664
+ this.updateBoundVariable(this.datavalue);
665
+ }
666
+ if (this.$element.hasClass('full-screen')) {
667
+ this.closeSearch();
668
+ }
669
+ this.invokeEventCallback('select', { $event, selectedValue: this.datavalue });
670
+ this.invokeEventCallback('submit', { $event });
671
+ this.updatePrevDatavalue(this.datavalue);
672
+ }
673
+ onPropertyChange(key, nv, ov) {
674
+ if (key === 'tabindex') {
675
+ return;
676
+ }
677
+ // Backward compatability from 10.3.1 to 10.3.2
678
+ // 10.3.1 we had displaylabel as modal value
679
+ // From 10.3.2 onwords we will be having displayexpresion as modal value
680
+ if (this.type === 'autocomplete' && key === 'displaylabel' && this.displaylabel && (!this.displayexpression || (this.displayexpression && !this.datasource))) {
681
+ this.displayexpression = this.displaylabel;
682
+ this.displaylabel = undefined;
683
+ }
684
+ // when dataoptions are provided and there is no displaylabel given then displaylabel is set as the relatedfield
685
+ if (key === 'displaylabel' && this.dataoptions && this.binddisplaylabel === null) {
686
+ this.query = get(this._modelByValue, nv) || this._modelByValue;
687
+ }
688
+ // when search is disabled, do not load any more data or just clear the data that is already in process or loaded.
689
+ if (key === 'disabled') {
690
+ if (nv === false) {
691
+ this.clearData = false;
692
+ }
693
+ else {
694
+ this.clearData = true;
695
+ if (get(this.typeahead, '_typeahead.isShown')) {
696
+ this.typeahead.hide();
697
+ }
698
+ }
699
+ }
700
+ super.onPropertyChange(key, nv, ov);
701
+ }
702
+ ngOnDestroy() {
703
+ // MEMORY LEAK FIX: Clear QueryList reference
704
+ this.liElements = null;
705
+ // MEMORY LEAK FIX: Clear data provider
706
+ if (this.dataProvider) {
707
+ this.dataProvider = null;
708
+ }
709
+ // MEMORY LEAK FIX: Clear typeahead reference
710
+ if (this.typeahead) {
711
+ this.typeahead = null;
712
+ }
713
+ // MEMORY LEAK FIX: Clear query model
714
+ this.queryModel = null;
715
+ this.query = '';
716
+ // Call parent ngOnDestroy (DatasetAwareFormComponent has cleanup)
717
+ super.ngOnDestroy();
718
+ }
719
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchComponent, deps: [{ token: i0.Injector }, { token: i1.App }, { token: 'datavalue.bind', attribute: true }, { token: 'dataset.bind', attribute: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
720
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SearchComponent, isStandalone: true, selector: "[wmSearch]", providers: [
721
+ provideAs(SearchComponent, NG_VALUE_ACCESSOR, true),
722
+ provideAs(SearchComponent, NG_VALIDATORS, true),
723
+ provideAsWidgetRef(SearchComponent)
724
+ ], viewQueries: [{ propertyName: "typeahead", first: true, predicate: TypeaheadDirective, descendants: true }, { propertyName: "ulElement", first: true, predicate: ["ulElement"], descendants: true }, { propertyName: "liElements", predicate: ["liElements"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #customItemTemplate let-model=\"item\" let-index=\"index\" let-query=\"query\" let-match=\"match\">\n <!-- Default item template -->\n @if (!content) {\n <a>\n @if (model.imgSrc) {\n <img [src]=\"model.imgSrc\" alt=\"Search\" [style.width]=\"imagewidth\">\n }\n <span [title]=\"model.label\" [innerHtml]=\"highlight(match, query) || model.label\"></span>\n </a>\n }\n <!-- Custom partial template -->\n @if (content) {\n <a [ngClass]=\"{customTemplate: content}\" partialContainer [wmItemTemplate]=\"content\" [userComponentParams]=\"match.item\">\n <div partial-container-target></div>\n </a>\n }\n</ng-template>\n\n<ng-template #customListTemplate let-matches=\"matches\" let-itemTemplate=\"itemTemplate\" let-query=\"query\">\n <ul #ulElement class=\"app-search dropdown-menu\" scrollableHandler>\n @for (match of matches; track match; let i = $index) {\n <li #liElements [ngClass]=\"{active: typeaheadContainer && typeaheadContainer.isActive(match), 'list-group-header': match && match.isHeader()}\"\n (mouseenter)=\"typeaheadContainer.selectActive(match);\"\n (click)=\"match && !match.isHeader() && typeaheadContainer.selectMatch(match, $event); $typeaheadEvent = $event; notifySubscriber();\">\n <!-- itemTemplate comes from the <input> -->\n @if (match.isHeader()) {\n <h4 class=\"group-title\">{{match.value}}</h4>\n }\n @if (!match.isHeader()) {\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n </ng-container>\n }\n </li>\n }\n <div class=\"status\" [hidden]=\"_loadingItems || !(datacompletemsg && dataProvider?.isLastPage)\">\n <span [textContent]=\"datacompletemsg\"></span>\n </div>\n <div class=\"status\" [hidden]=\"!_loadingItems\">\n <i class=\"fa fa-circle-o-notch fa-spin\"></i>\n <span [textContent]=\"loadingdatamsg\"></span>\n </div>\n </ul>\n</ng-template>\n\n<!--This template is for search inside mobile navbar.-->\n@if (navsearchbar) {\n <input [title]=\"query || ''\" type=\"text\" class=\"app-textbox form-control list-of-objs app-search-input\" [placeholder]=\"placeholder || ''\"\n focus-target\n container=\"body\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n autocomplete=\"off\"\n [(ngModel)]=\"query\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [typeahead]=\"typeaheadDataSource\"\n [typeaheadWaitMs]=\"debouncetime\"\n [typeaheadItemTemplate]=\"customItemTemplate\"\n [optionsListTemplate]=\"customListTemplate\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"listenQuery = true\"\n (keydown.enter)=\"$typeaheadEvent = $event;handleEnterEvent($event)\"\n (keydown.arrowdown)=\"selectNext($event)\"\n (blur)=\"invokeOnTouched($event)\"\n (click)=\"handleFocus($event);\"\n (focus)=\"_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event);\"\n (focusout)=\"onFocusOut()\"\n [typeaheadMinLength]=\"minchars\"\n [typeaheadOptionsLimit]=\"limit\"\n (typeaheadLoading)=\"_loadingItems\"\n (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n typeaheadOptionField=\"label\"\n [typeaheadGroupField]=\"groupby ? 'groupby' : null\"\n [typeaheadAsync]=\"true\"\n [typeaheadScrollable]=\"true\"\n [adaptivePosition]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionslimitinscrollableview\"\n [dropup]=\"dropup\"\n [tabindex]=\"tabindex\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel || 'Search field'\"/>\n <i class=\"btn-close wi wi-cancel\" [hidden]=\"!showClosebtn\" (click)=\"clearSearch($event);\"></i>\n} @else {\n <button type=\"button\" class=\"btn btn-icon form-control-feedback back-btn\" aria-hidden=\"true\" (click)=\"closeSearch()\"><i class=\"app-icon {{backsearchiconclass}}\"></i></button>\n <span class=\"sr-only\">Back button</span>\n <input [title]=\"query || ''\" type=\"text\" class=\"app-textbox form-control list-of-objs app-search-input\" [placeholder]=\"placeholder || ''\"\n focus-target\n [container]=\"containerTarget || '.wm-app'\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n autocomplete=\"off\"\n [(ngModel)]=\"query\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [typeahead]=\"typeaheadDataSource\"\n [typeaheadWaitMs]=\"debouncetime\"\n [typeaheadItemTemplate]=\"customItemTemplate\"\n [optionsListTemplate]=\"customListTemplate\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"listenQuery = true\"\n (keydown.enter)=\"$typeaheadEvent = $event;handleEnterEvent($event)\"\n (keydown.arrowdown)=\"selectNext($event)\"\n (blur)=\"invokeOnTouched($event); onFocusOut()\"\n (click)=\"handleFocus($event);\"\n (focus)=\"_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event)\"\n [typeaheadMinLength]=\"minchars\"\n [typeaheadOptionsLimit]=\"limit\"\n (typeaheadLoading)=\"_loadingItems\"\n (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n typeaheadOptionField=\"label\"\n [typeaheadGroupField]=\"groupby ? 'groupby' : null\"\n [typeaheadAsync]=\"true\"\n [typeaheadScrollable]=\"true\"\n [adaptivePosition]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionslimitinscrollableview\"\n [tabindex]=\"tabindex\"\n [dropup]=\"dropup\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel || 'Search field'\">\n <input class=\"model-holder\" ng-model=\"proxyModel\" ng-required=\"required\" tabindex=\"-1\" aria-hidden=\"true\">\n @if (_loadingItems) {\n <span aria-hidden=\"true\" class=\"fa fa-circle-o-notch fa-spin form-control-feedback\"></span>\n }\n <button type=\"button\" class=\"btn btn-icon form-control-feedback clear-btn\" [ngClass]=\"{'show-btn': isQueryEntered()}\" (click)=\"clearSearch($event, true)\"><i class=\"app-icon {{clearsearchiconclass}}\"></i></button>\n <span class=\"sr-only\">Clear button</span>\n @if (showsearchicon) {\n <span [ngClass]=\"{'disabled': disabled}\" class=\"input-group-addon\">\n <form>\n <button title=\"Search\" [disabled]=\"disabled\" class=\"app-search-button btn btn-icon\" type=\"submit\"\n (click)=\"onSearchSelect($event)\">\n <i class=\"app-icon {{searchiconclass}}\"></i></button>\n </form>\n </span>\n }\n }\n <!--This template is for both web and fullscreen mode in mobile.-->\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: ScrollableDirective, selector: "[scrollableHandler]" }, { kind: "ngmodule", type: TypeaheadModule }, { kind: "directive", type: i4.TypeaheadDirective, selector: "[typeahead]", inputs: ["typeahead", "typeaheadMinLength", "adaptivePosition", "isAnimated", "typeaheadWaitMs", "typeaheadOptionsLimit", "typeaheadOptionField", "typeaheadGroupField", "typeaheadOrderBy", "typeaheadAsync", "typeaheadLatinize", "typeaheadSingleWords", "typeaheadWordDelimiters", "typeaheadMultipleSearch", "typeaheadMultipleSearchDelimiters", "typeaheadPhraseDelimiters", "typeaheadItemTemplate", "optionsListTemplate", "typeaheadScrollable", "typeaheadOptionsInScrollableView", "typeaheadHideResultsOnBlur", "typeaheadSelectFirstItem", "typeaheadIsFirstItemActive", "container", "dropup"], outputs: ["typeaheadLoading", "typeaheadNoResults", "typeaheadOnSelect", "typeaheadOnPreview", "typeaheadOnBlur"], exportAs: ["bs-typeahead"] }, { kind: "directive", type: TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "directive", type: ItemTemplateDirective, selector: "[wmItemTemplate]", inputs: ["userComponentParams", "wmItemTemplate"], exportAs: ["itemTemplateRef"] }, { kind: "directive", type: PartialParamHandlerDirective, selector: "[partialContainer]" }, { kind: "directive", type: PartialContainerDirective, selector: "[partialContainer]" }] }); }
725
+ }
726
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchComponent, decorators: [{
727
+ type: Component,
728
+ args: [{ standalone: true, imports: [CommonModule, FormsModule, ScrollableDirective, TypeaheadModule, TextContentDirective, ItemTemplateDirective, PartialParamHandlerDirective, PartialContainerDirective], selector: '[wmSearch]', providers: [
729
+ provideAs(SearchComponent, NG_VALUE_ACCESSOR, true),
730
+ provideAs(SearchComponent, NG_VALIDATORS, true),
731
+ provideAsWidgetRef(SearchComponent)
732
+ ], template: "<ng-template #customItemTemplate let-model=\"item\" let-index=\"index\" let-query=\"query\" let-match=\"match\">\n <!-- Default item template -->\n @if (!content) {\n <a>\n @if (model.imgSrc) {\n <img [src]=\"model.imgSrc\" alt=\"Search\" [style.width]=\"imagewidth\">\n }\n <span [title]=\"model.label\" [innerHtml]=\"highlight(match, query) || model.label\"></span>\n </a>\n }\n <!-- Custom partial template -->\n @if (content) {\n <a [ngClass]=\"{customTemplate: content}\" partialContainer [wmItemTemplate]=\"content\" [userComponentParams]=\"match.item\">\n <div partial-container-target></div>\n </a>\n }\n</ng-template>\n\n<ng-template #customListTemplate let-matches=\"matches\" let-itemTemplate=\"itemTemplate\" let-query=\"query\">\n <ul #ulElement class=\"app-search dropdown-menu\" scrollableHandler>\n @for (match of matches; track match; let i = $index) {\n <li #liElements [ngClass]=\"{active: typeaheadContainer && typeaheadContainer.isActive(match), 'list-group-header': match && match.isHeader()}\"\n (mouseenter)=\"typeaheadContainer.selectActive(match);\"\n (click)=\"match && !match.isHeader() && typeaheadContainer.selectMatch(match, $event); $typeaheadEvent = $event; notifySubscriber();\">\n <!-- itemTemplate comes from the <input> -->\n @if (match.isHeader()) {\n <h4 class=\"group-title\">{{match.value}}</h4>\n }\n @if (!match.isHeader()) {\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{item: match.item, index: i, match: match, query: query}\">\n </ng-container>\n }\n </li>\n }\n <div class=\"status\" [hidden]=\"_loadingItems || !(datacompletemsg && dataProvider?.isLastPage)\">\n <span [textContent]=\"datacompletemsg\"></span>\n </div>\n <div class=\"status\" [hidden]=\"!_loadingItems\">\n <i class=\"fa fa-circle-o-notch fa-spin\"></i>\n <span [textContent]=\"loadingdatamsg\"></span>\n </div>\n </ul>\n</ng-template>\n\n<!--This template is for search inside mobile navbar.-->\n@if (navsearchbar) {\n <input [title]=\"query || ''\" type=\"text\" class=\"app-textbox form-control list-of-objs app-search-input\" [placeholder]=\"placeholder || ''\"\n focus-target\n container=\"body\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n autocomplete=\"off\"\n [(ngModel)]=\"query\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [typeahead]=\"typeaheadDataSource\"\n [typeaheadWaitMs]=\"debouncetime\"\n [typeaheadItemTemplate]=\"customItemTemplate\"\n [optionsListTemplate]=\"customListTemplate\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"listenQuery = true\"\n (keydown.enter)=\"$typeaheadEvent = $event;handleEnterEvent($event)\"\n (keydown.arrowdown)=\"selectNext($event)\"\n (blur)=\"invokeOnTouched($event)\"\n (click)=\"handleFocus($event);\"\n (focus)=\"_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event);\"\n (focusout)=\"onFocusOut()\"\n [typeaheadMinLength]=\"minchars\"\n [typeaheadOptionsLimit]=\"limit\"\n (typeaheadLoading)=\"_loadingItems\"\n (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n typeaheadOptionField=\"label\"\n [typeaheadGroupField]=\"groupby ? 'groupby' : null\"\n [typeaheadAsync]=\"true\"\n [typeaheadScrollable]=\"true\"\n [adaptivePosition]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionslimitinscrollableview\"\n [dropup]=\"dropup\"\n [tabindex]=\"tabindex\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel || 'Search field'\"/>\n <i class=\"btn-close wi wi-cancel\" [hidden]=\"!showClosebtn\" (click)=\"clearSearch($event);\"></i>\n} @else {\n <button type=\"button\" class=\"btn btn-icon form-control-feedback back-btn\" aria-hidden=\"true\" (click)=\"closeSearch()\"><i class=\"app-icon {{backsearchiconclass}}\"></i></button>\n <span class=\"sr-only\">Back button</span>\n <input [title]=\"query || ''\" type=\"text\" class=\"app-textbox form-control list-of-objs app-search-input\" [placeholder]=\"placeholder || ''\"\n focus-target\n [container]=\"containerTarget || '.wm-app'\"\n [disabled]=\"disabled\"\n [attr.accesskey]=\"shortcutkey\"\n autocomplete=\"off\"\n [(ngModel)]=\"query\"\n [ngModelOptions]=\"{standalone: true}\"\n [readonly]=\"readonly\"\n [typeahead]=\"typeaheadDataSource\"\n [typeaheadWaitMs]=\"debouncetime\"\n [typeaheadItemTemplate]=\"customItemTemplate\"\n [optionsListTemplate]=\"customListTemplate\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"listenQuery = true\"\n (keydown.enter)=\"$typeaheadEvent = $event;handleEnterEvent($event)\"\n (keydown.arrowdown)=\"selectNext($event)\"\n (blur)=\"invokeOnTouched($event); onFocusOut()\"\n (click)=\"handleFocus($event);\"\n (focus)=\"_unsubscribeDv = false; listenQuery = true; handleFocus($event); invokeOnFocus($event)\"\n [typeaheadMinLength]=\"minchars\"\n [typeaheadOptionsLimit]=\"limit\"\n (typeaheadLoading)=\"_loadingItems\"\n (typeaheadOnSelect)=\"typeaheadOnSelect($event)\"\n typeaheadOptionField=\"label\"\n [typeaheadGroupField]=\"groupby ? 'groupby' : null\"\n [typeaheadAsync]=\"true\"\n [typeaheadScrollable]=\"true\"\n [adaptivePosition]=\"true\"\n [typeaheadOptionsInScrollableView]=\"optionslimitinscrollableview\"\n [tabindex]=\"tabindex\"\n [dropup]=\"dropup\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel || 'Search field'\">\n <input class=\"model-holder\" ng-model=\"proxyModel\" ng-required=\"required\" tabindex=\"-1\" aria-hidden=\"true\">\n @if (_loadingItems) {\n <span aria-hidden=\"true\" class=\"fa fa-circle-o-notch fa-spin form-control-feedback\"></span>\n }\n <button type=\"button\" class=\"btn btn-icon form-control-feedback clear-btn\" [ngClass]=\"{'show-btn': isQueryEntered()}\" (click)=\"clearSearch($event, true)\"><i class=\"app-icon {{clearsearchiconclass}}\"></i></button>\n <span class=\"sr-only\">Clear button</span>\n @if (showsearchicon) {\n <span [ngClass]=\"{'disabled': disabled}\" class=\"input-group-addon\">\n <form>\n <button title=\"Search\" [disabled]=\"disabled\" class=\"app-search-button btn btn-icon\" type=\"submit\"\n (click)=\"onSearchSelect($event)\">\n <i class=\"app-icon {{searchiconclass}}\"></i></button>\n </form>\n </span>\n }\n }\n <!--This template is for both web and fullscreen mode in mobile.-->\n" }]
733
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.App }, { type: undefined, decorators: [{
734
+ type: Attribute,
735
+ args: ['datavalue.bind']
736
+ }] }, { type: undefined, decorators: [{
737
+ type: Attribute,
738
+ args: ['dataset.bind']
739
+ }] }, { type: undefined, decorators: [{
740
+ type: Inject,
741
+ args: ['EXPLICIT_CONTEXT']
742
+ }, {
743
+ type: Optional
744
+ }] }], propDecorators: { typeahead: [{
745
+ type: ViewChild,
746
+ args: [TypeaheadDirective]
747
+ }], ulElement: [{
748
+ type: ViewChild,
749
+ args: ['ulElement']
750
+ }], liElements: [{
751
+ type: ViewChildren,
752
+ args: ['liElements']
753
+ }] } });
754
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9iYXNpYy9zZWFyY2gvc3JjL3NlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvc2VhcmNoL3NyYy9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUdILFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBR1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxELE9BQU8sRUFFSCxrQkFBa0IsRUFFbEIsZUFBZSxFQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RyxPQUFPLEVBQ0gsU0FBUyxFQUNULG1CQUFtQixFQUVuQixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ3BCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQXNDLE1BQU0sK0JBQStCLENBQUM7QUFDakcsT0FBTyxFQUNILFFBQVEsRUFDUixJQUFJLEVBQ0osR0FBRyxFQUNILFFBQVEsRUFDUixPQUFPLEVBQ1AsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsV0FBVyxFQUNYLEdBQUcsRUFDSCxLQUFLLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDUCxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBRW5CLE1BQU0sYUFBYSxHQUFHLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUM7QUFhNUUsTUFBTSxPQUFPLGVBQWdCLFNBQVEseUJBQXlCO2FBQ25ELG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBOER6QyxvRUFBb0U7SUFDcEUsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxFQUFFO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDM0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUNJLEdBQWEsRUFDYixHQUFRLEVBQzRCLGFBQWEsRUFDZixXQUFXLEVBQ0wsZUFBb0I7UUFFNUQsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFKUCxrQkFBYSxHQUFiLGFBQWEsQ0FBQTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBekUxQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBYVYsU0FBSSxHQUFHLENBQUMsQ0FBQztRQWdFYix1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFakQ7Ozs7V0FJRztRQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVO2FBQ2hDLE1BQU0sQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3RCLHVCQUF1QjtZQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFDRCxtR0FBbUc7WUFDbkcsaUZBQWlGO1lBQ2pGLG9FQUFvRTtZQUNwRSw0RkFBNEY7WUFDNUYsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1lBQzFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDckUsQ0FBQztRQUVOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2Qzs7O1dBR0c7UUFDSCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBMkIsRUFBRSxFQUFFO1lBRXBGLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBVyxDQUFDO1lBRXRELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO2dCQUN4QixtQkFBbUI7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQ2xDLHdFQUF3RTtnQkFDeEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7Z0JBQzdCLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztnQkFDbEMsK0ZBQStGO2dCQUMvRixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFLLElBQVksQ0FBQyxhQUFhLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO29CQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO2dCQUN0QyxDQUFDO2dCQUNELHlEQUF5RDtnQkFDekQsaURBQWlEO2dCQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JELDJCQUEyQjtZQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1lBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQ25FLDZHQUE2RztZQUM3RyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCw0Q0FBNEM7SUFDcEMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IseURBQXlEO1FBQ3pELElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBRUQscUNBQXFDO0lBQzlCLFNBQVM7UUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsNkRBQTZEO0lBQ3JELFdBQVc7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLGtGQUFrRjtRQUNsRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sd0JBQXdCO1FBQzVCLG9JQUFvSTtRQUNwSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDekMsdUZBQXVGO1lBQ3ZGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUV0Qyx5Q0FBeUM7WUFDekMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNMLENBQUM7UUFDRCxtR0FBbUc7UUFDbkcsc0NBQXNDO1FBQ3RDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBRU8seUJBQXlCLENBQUMsS0FBYTtRQUMzQywwSEFBMEg7UUFDMUgsd0hBQXdIO1FBQ3hILElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDckcsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRDs7Ozs7VUFLRTtRQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxjQUFjLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqRixJQUFJLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztZQUMvQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRCxJQUFJLFlBQVksQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN4QixxQkFBcUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLHFCQUFxQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUMzQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUM7d0JBQzFCLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNELENBQUM7eUJBQU0sQ0FBQzt3QkFDSixZQUFZLEdBQUcsSUFBSSxDQUFDO29CQUN4QixDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO21CQUMzRixDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVTLFdBQVcsQ0FBQyxJQUFpQixFQUFFLFNBQWlCLEVBQUUsYUFBdUIsRUFBRSxNQUFXO1FBQzVGLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDTCxDQUFDO0lBRUQsK0RBQStEO0lBQ3ZELFNBQVMsQ0FBQyxLQUFxQixFQUFFLEtBQWE7UUFDbEQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQiw0REFBNEQ7WUFDM0QsS0FBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDTCxDQUFDO0lBRUQsNENBQTRDO0lBQ3BDLGFBQWEsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEQsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGtFQUFrRTtJQUMzRCxvQkFBb0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsd0VBQXdFO0lBQ2pFLGNBQWM7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDL0MsQ0FBQztJQUVPLFlBQVksQ0FBQyxhQUF1QjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JELE9BQU87UUFDWCxDQUFDO1FBQ0QsMERBQTBEO1FBQzFELElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV0RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQix5REFBeUQ7UUFDekQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQ25CLE1BQU0sRUFBRTtnQkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsdUNBQXVDO2FBQ3pFO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHdEQUF3RDtJQUNoRCxVQUFVO1FBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0Isb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2Qsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsc0lBQXNJO1FBQ3RJLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFLLElBQUksQ0FBQyxTQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFFLElBQUksQ0FBQyxTQUFpQixDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hELENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQU07UUFDeEIsMkVBQTJFO1FBQzNFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUUvQiw2Q0FBNkM7UUFDN0MsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUU5QyxxR0FBcUc7WUFDckcsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDbkQsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0oscURBQXFEO1lBQ3JELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7Z0JBQy9CLE1BQU0sRUFBRSxNQUFNO2dCQUNkLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLO2dCQUN4QyxNQUFNLEVBQUcsSUFBWSxDQUFDLGFBQWE7YUFDdEMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCw0QkFBNEI7SUFDcEIsZ0JBQWdCLENBQUMsTUFBTTtRQUMzQix5REFBeUQ7UUFDekQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZ0RBQWdEO0lBQ3hDLGNBQWMsQ0FBQyxNQUFhO1FBQ2hDLElBQUksSUFBSSxDQUFDO1FBQ1QsNkdBQTZHO1FBQzdHLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFM0UsSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUM1RSxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDL0MsQ0FBQztRQUNELE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7UUFFNUMsMkVBQTJFO1FBQzNFLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLDBFQUEwRTtZQUMxRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDbkIsTUFBTSxFQUFFO29CQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLHVDQUF1QztpQkFDNUQ7YUFDSixDQUFDLENBQUM7WUFDSCxPQUFPO1FBQ1gsQ0FBQztRQUNELDhCQUE4QjtRQUM5QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0wsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFNBQVM7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFDRCwyREFBMkQ7UUFDM0QsdUhBQXVIO1FBQ3ZILE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxJQUFLLElBQUksQ0FBQyxTQUFpQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbEcsSUFBSSxDQUFDLGtCQUEwQixDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzdELElBQUksQ0FBQyxrQkFBMEIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUM1RCx1QkFBdUIsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFHLElBQUksQ0FBQyxTQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO1FBRXZKLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxFQUFFLENBQUM7UUFFTCwrQkFBK0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUVsRSxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDNUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBRXBELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVPLFVBQVU7UUFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1FBRWhELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUQscUdBQXFHO1FBQ3JHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUcsMEdBQTBHO1lBQzFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVPLDRCQUE0QjtRQUNoQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxrQkFBMEIsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNuRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztRQUN2QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQy9GLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0RCxrREFBa0Q7UUFDbEQsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEssSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxJQUFJO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0MsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO2dCQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM1QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO2dCQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksR0FBRyxDQUFFLElBQUksQ0FBQyxTQUFpQixFQUFFLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztvQkFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFJO1FBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFJO1FBQzNCLDhFQUE4RTtRQUM5RSwwR0FBMEc7UUFDMUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4SCwyREFBMkQ7WUFDM0QsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUMxRCxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztnQkFDckMsT0FBTztZQUNYLENBQUM7WUFFRCw4RUFBOEU7WUFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQzVGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCwyQ0FBMkM7SUFDbkMsNkJBQTZCO1FBQ2pDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzVHLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3hHLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7UUFDNUMsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlLENBQUMsSUFBUztRQUM3Qiw4RUFBOEU7UUFDOUUsK0dBQStHO1FBQy9HLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QyxPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEksQ0FBQyxDQUFDLENBQUM7UUFFSCx3REFBd0Q7UUFDeEQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7YUFBTSxDQUFDO1lBQ0osb0VBQW9FO1lBQ3BFLElBQUssSUFBWSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNoQixPQUFPO1lBQ1gsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUVyQyxpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUgsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELDZEQUE2RDtJQUNyRCxXQUFXLENBQUMsTUFBTTtRQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUUsSUFBSSxDQUFDLFNBQWlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQ3pGLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEYsQ0FBQztJQUNMLENBQUM7SUFFRCxxRkFBcUY7SUFDOUUsYUFBYSxDQUFDLEtBQTZCLEVBQUUsaUJBQTJCLEVBQUUsYUFBc0I7UUFDbkcsK0dBQStHO1FBQy9HLElBQUksaUJBQWlCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELHdHQUF3RztRQUN4RyxNQUFNLFVBQVUsR0FBd0I7WUFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNyRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDNUMsS0FBSyxFQUFFLEtBQUs7WUFDWixhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUM5QixTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQzlELDJEQUEyRDtZQUMzRCxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNqRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLG1CQUFtQixFQUFFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2pFLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDMUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQzthQUN0QyxJQUFJLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQix5REFBeUQ7WUFDekQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDO1lBQ3JDLGdGQUFnRjtZQUNoRixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzdHLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO1lBQzVCLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7WUFDckMsQ0FBQztZQUVELG9IQUFvSDtZQUNwSCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDeEUsQ0FBQztZQUVELHFJQUFxSTtZQUNySSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEosSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLENBQUM7WUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBRXRGLHdDQUF3QztZQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDNUMsT0FBTyxlQUFlLENBQUM7UUFDM0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FDQSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7b0JBQ1gsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7Z0JBQ3hDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDNUIsQ0FBQztZQUNELDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBSSxLQUFnQixDQUFDO1lBQ3hDLENBQUM7WUFDRCx3SUFBd0k7WUFDeEksNENBQTRDO1lBQzVDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztZQUMxQixPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCwrRkFBK0Y7SUFDdkYsVUFBVSxDQUFDLE9BQU87UUFDdEIsSUFBSSxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxJQUFTLEVBQUUsU0FBa0IsRUFBRSxRQUFrQjtRQUN2RSxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQ2hDLElBQUksRUFDSixJQUFJLENBQUMsU0FBUyxFQUNkO1lBQ0ksWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVk7WUFDcEQsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1lBQ25ELGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQjtZQUN0RCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQzNDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN0QyxFQUNELFNBQVMsRUFDVCxJQUFJLENBQ1AsQ0FBQztRQUNGLE9BQU8sc0JBQXNCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBRUQsOEVBQThFO0lBQ3ZFLFFBQVEsQ0FBQyxTQUFrQixFQUFFLEdBQVU7UUFDMUMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFlBQVksRUFDdEMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUM7UUFFMUMsdUhBQXVIO1FBQ3ZILElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsWUFBWSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbkksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDWCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1Qix5Q0FBeUM7WUFDekMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUN0QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDdEIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTdDLDBEQUEwRDtRQUMxRCxtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVNLGVBQWU7UUFDbEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBNEIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsZUFBZSxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsYUFBYSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSTtRQUMxQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHO2dCQUNiLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNwQixDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCwrR0FBK0c7SUFDeEcsaUJBQWlCLENBQUMsS0FBcUIsRUFBRSxNQUFhO1FBQ3pELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUV4QyxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUVoQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEQsK0ZBQStGO1FBQy9GLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBTSxJQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFPO1FBQzFDLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDWCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLDRDQUE0QztRQUM1Qyx3RUFBd0U7UUFDeEUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGNBQWMsSUFBSSxHQUFHLEtBQUssY0FBYyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0osSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDbEMsQ0FBQztRQUVELGdIQUFnSDtRQUNoSCxJQUFJLEdBQUcsS0FBSyxjQUFjLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDL0UsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ25FLENBQUM7UUFFRCxrSEFBa0g7UUFDbEgsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDckIsSUFBSSxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLEdBQUcsQ0FBRSxJQUFJLENBQUMsU0FBaUIsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7b0JBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzFCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLHVDQUF1QztRQUN2QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFaEIsa0VBQWtFO1FBQ2xFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQTMxQlEsZUFBZSw2REE2RVQsZ0JBQWdCLDhCQUNoQixjQUFjLDhCQUNqQixrQkFBa0I7bUdBL0VyQixlQUFlLHlEQU5iO1lBQ1AsU0FBUyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7WUFDbkQsU0FBUyxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO1lBQy9DLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztTQUN0QyxxRUFxQ1Usa0JBQWtCLDhPQ2pIakMseTlNQXlJQSwyQ0RwRWMsWUFBWSxtU0FBRSxXQUFXLHdpQ0FBRSxtQkFBbUIsK0RBQUUsZUFBZSwwMEJBQUUsb0JBQW9CLG1GQUFFLHFCQUFxQiwrSUFBRSw0QkFBNEIsK0RBQUUseUJBQXlCOzs0RkFTdEssZUFBZTtrQkFYM0IsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsQ0FBQyxZQUN0SyxZQUFZLGFBRVg7d0JBQ1AsU0FBUyxrQkFBa0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO3dCQUNuRCxTQUFTLGtCQUFrQixhQUFhLEVBQUUsSUFBSSxDQUFDO3dCQUMvQyxrQkFBa0IsaUJBQWlCO3FCQUN0Qzs7MEJBK0VJLFNBQVM7MkJBQUMsZ0JBQWdCOzswQkFDMUIsU0FBUzsyQkFBQyxjQUFjOzswQkFDeEIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUFHLFFBQVE7eUNBNUNWLFNBQVM7c0JBQXZDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUNMLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDTSxVQUFVO3NCQUFyQyxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2Nyb2xsYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vc2Nyb2xsYWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBUeXBlYWhlYWRDb250YWluZXJDb21wb25lbnQsXG4gICAgVHlwZWFoZWFkRGlyZWN0aXZlLFxuICAgIFR5cGVhaGVhZE1hdGNoLFxuICAgIFR5cGVhaGVhZE1vZHVsZVxufSBmcm9tICduZ3gtYm9vdHN0cmFwL3R5cGVhaGVhZCc7XG5cbmltcG9ydCB7IGFkZENsYXNzLCBhZGp1c3RDb250YWluZXJQb3NpdGlvbiwgQXBwLCBEYXRhU291cmNlLCBpc0RlZmluZWQsIGlzTW9iaWxlLCB0b0Jvb2xlYW4gfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge1xuICAgIEFMTEZJRUxEUyxcbiAgICBjb252ZXJ0RGF0YVRvT2JqZWN0LFxuICAgIERhdGFTZXRJdGVtLFxuICAgIGV4dHJhY3REYXRhQXNBcnJheSxcbiAgICBnZXRDb250YWluZXJUYXJnZXRDbGFzcyxcbiAgICBnZXRVbmlxT2Jqc0J5RGF0YUZpZWxkLFxuICAgIEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBQYXJ0aWFsQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgIFBhcnRpYWxQYXJhbUhhbmRsZXJEaXJlY3RpdmUsXG4gICAgcHJvdmlkZUFzLFxuICAgIHByb3ZpZGVBc1dpZGdldFJlZixcbiAgICBzdHlsZXIsXG4gICAgVGV4dENvbnRlbnREaXJlY3RpdmUsXG4gICAgdHJhbnNmb3JtRm9ybURhdGFcbn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvaW5wdXQvZGF0YXNldC1hd2FyZS1mb3JtJztcbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL3NlYXJjaC5wcm9wcyc7XG5pbXBvcnQgeyBEYXRhUHJvdmlkZXIsIElEYXRhUHJvdmlkZXIsIElEYXRhUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL2RhdGEtcHJvdmlkZXIvZGF0YS1wcm92aWRlcic7XG5pbXBvcnQge1xuICAgIGRlYm91bmNlLFxuICAgIGZpbmQsXG4gICAgZ2V0LFxuICAgIGluY2x1ZGVzLFxuICAgIGlzQXJyYXksXG4gICAgaXNFbXB0eSxcbiAgICBpc0VxdWFsLFxuICAgIGlzT2JqZWN0LFxuICAgIGlzVW5kZWZpbmVkLFxuICAgIG1hcCxcbiAgICBzcGxpdCxcbiAgICB0b1N0cmluZyxcbiAgICB0cmltXG59IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgV0lER0VUX0NPTkZJRyA9IHsgd2lkZ2V0VHlwZTogJ3dtLXNlYXJjaCcsIGhvc3RDbGFzczogJ2lucHV0LWdyb3VwJyB9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTY3JvbGxhYmxlRGlyZWN0aXZlLCBUeXBlYWhlYWRNb2R1bGUsIFRleHRDb250ZW50RGlyZWN0aXZlLCBJdGVtVGVtcGxhdGVEaXJlY3RpdmUsIFBhcnRpYWxQYXJhbUhhbmRsZXJEaXJlY3RpdmUsIFBhcnRpYWxDb250YWluZXJEaXJlY3RpdmVdLFxuICAgIHNlbGVjdG9yOiAnW3dtU2VhcmNoXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhTZWFyY2hDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKFNlYXJjaENvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihTZWFyY2hDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgcHVibGljIGNhc2VzZW5zaXRpdmU6IGJvb2xlYW47XG4gICAgcHVibGljIHNlYXJjaGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBxdWVyeU1vZGVsOiBBcnJheTxEYXRhU2V0SXRlbT4gfCBzdHJpbmc7XG4gICAgcHVibGljIHF1ZXJ5ID0gJyc7XG4gICAgcHVibGljIGxpbWl0OiBhbnk7XG4gICAgcHVibGljIHNob3dzZWFyY2hpY29uOiBib29sZWFuO1xuICAgIHB1YmxpYyBtaW5jaGFyczogbnVtYmVyO1xuICAgIHB1YmxpYyB0eXBlOiBzdHJpbmc7XG4gICAgcHVibGljIG5hdnNlYXJjaGJhcjogYW55O1xuICAgIHB1YmxpYyBkZWJvdW5jZXRpbWU6IG51bWJlcjtcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuICAgIHB1YmxpYyBhcmlhbGFiZWw6IHN0cmluZztcblxuICAgIHByaXZhdGUgYXBwOiBBcHA7XG4gICAgcHJpdmF0ZSB0eXBlYWhlYWREYXRhU291cmNlOiBPYnNlcnZhYmxlPGFueT47XG4gICAgcHJpdmF0ZSBwYWdlc2l6ZTogYW55O1xuICAgIHByaXZhdGUgcGFnZSA9IDE7XG4gICAgcHVibGljIF9sb2FkaW5nSXRlbXM6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXI6IElEYXRhUHJvdmlkZXI7XG4gICAgcHJpdmF0ZSByZXN1bHQ6IEFycmF5PGFueT47IC8vIGNvbnRhaW5zIHRoZSBzZWFyY2ggcmVzdWx0IGkuZS4gbWF0Y2hlc1xuICAgIHByaXZhdGUgZm9ybWF0dGVkRGF0YXNldDogYW55O1xuICAgIHByaXZhdGUgaXNmb3JtZmllbGQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSAkdHlwZWFoZWFkRXZlbnQ6IEV2ZW50O1xuXG4gICAgcHVibGljIHRhYmluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHN0YXJ0SW5kZXg6IG51bWJlcjtcbiAgICBwdWJsaWMgYmluZGRpc3BsYXlsYWJlbDogc3RyaW5nO1xuICAgIHB1YmxpYyB0eXBlYWhlYWRDb250YWluZXI6IFR5cGVhaGVhZENvbnRhaW5lckNvbXBvbmVudDtcbiAgICBwdWJsaWMgY29udGFpbmVyVGFyZ2V0OiBzdHJpbmc7XG4gICAgcHVibGljIGNsZWFyc2VhcmNoaWNvbmNsYXNzOiBzdHJpbmc7XG4gICAgcHVibGljIGJhY2tzZWFyY2hpY29uY2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgc2VhcmNoaWNvbmNsYXNzOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKFR5cGVhaGVhZERpcmVjdGl2ZSkgdHlwZWFoZWFkOiBUeXBlYWhlYWREaXJlY3RpdmU7XG4gICAgQFZpZXdDaGlsZCgndWxFbGVtZW50JykgdWxFbGVtZW50OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2xpRWxlbWVudHMnKSBsaUVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgICBwcml2YXRlIGFsbG93b25seXNlbGVjdDogYm9vbGVhbjtcbiAgICBwcml2YXRlIGNsYXNzOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGxhc3RTZWxlY3RlZEluZGV4OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBkYXRhb3B0aW9uczogYW55O1xuICAgIHB1YmxpYyBkcm9wZG93bkVsOiBhbnk7XG4gICAgcHJpdmF0ZSBfbGFzdFF1ZXJ5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbGFzdFJlc3VsdDogYW55O1xuICAgIHByaXZhdGUgX2lzT3BlbjogYm9vbGVhbjsgLy8gc2V0IHRvIHRydWUgd2hlbiBkcm9wZG93biBpcyBvcGVuXG4gICAgcHJpdmF0ZSBzaG93Q2xvc2VidG46IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVEdjogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9kYXRhc291cmNlOiBhbnk7XG4gICAgcHJpdmF0ZSBpc1Njcm9sbGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgcGFyZW50RWw6IGFueTtcbiAgICBwcml2YXRlIHBvc2l0aW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBlbEluZGV4OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBsaXN0ZW5RdWVyeTogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9kb21VcGRhdGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgc2VhcmNob246IHN0cmluZztcbiAgICBwcml2YXRlIHNob3djbGVhcjogYm9vbGVhbjtcbiAgICBwdWJsaWMgbWF0Y2htb2RlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBjbGVhckRhdGE6IGJvb2xlYW47XG5cblxuICAgIC8vIGdldHRlciBzZXR0ZXIgaXMgYWRkZWQgdG8gcGFzcyB0aGUgZGF0YXNvdXJjZSB0byBzZWFyY2hjb21wb25lbnQuXG4gICAgZ2V0IGRhdGFzb3VyY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhc291cmNlO1xuICAgIH1cblxuICAgIHNldCBkYXRhc291cmNlKG52KSB7XG4gICAgICAgIHRoaXMuX2RhdGFzb3VyY2UgPSBudjtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YXZhbHVlIHx8IHRoaXMudG9CZVByb2Nlc3NlZERhdGF2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVCeURhdGF2YWx1ZShkYXRhKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgYXBwOiBBcHAsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2RhdGF2YWx1ZS5iaW5kJykgcHVibGljIGJpbmRkYXRhdmFsdWUsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2RhdGFzZXQuYmluZCcpIHB1YmxpYyBiaW5kZGF0YXNldCxcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICAgICAgLy8gdGhpcyBmbGFnIHdpbGwgbm90IGFsbG93IHRoZSBlbXB0eSBkYXRhZmllbGQgdmFsdWVzLlxuICAgICAgICB0aGlzLmFsbG93ZW1wdHkgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hcHAgPSBhcHA7XG4gICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FwcC1zZWFyY2gnLCB0cnVlKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogTGlzdGVucyBmb3IgdGhlIGNoYW5nZSBpbiB0aGUgbmdNb2RlbCBvbiBldmVyeSBzZWFyY2ggYW5kIHJldHJpZXZlcyB0aGUgZGF0YSBhcyBvYnNlcnZhYmxlLlxuICAgICAgICAgKiBUaGlzIG9ic2VydmFibGUgZGF0YSBpcyBwYXNzZWQgdG8gdGhlIHR5cGVhaGVhZC5cbiAgICAgICAgICogQHR5cGUge09ic2VydmFibGU8YW55Pn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZWFoZWFkRGF0YVNvdXJjZSA9IE9ic2VydmFibGVcbiAgICAgICAgICAgIC5jcmVhdGUoKG9ic2VydmVyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBSdW5zIG9uIGV2ZXJ5IHNlYXJjaFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpc3RlblF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRRdWVyeUludm9rZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZ0l0ZW1zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0aGlzLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gb24ga2V5ZG93biwgd2hpbGUgc2Nyb2xsaW5nIHRoZSBkcm9wZG93biBpdGVtcywgd2hlbiBsYXN0IGl0ZW0gaXMgcmVhY2hlZCBuZXh0IGNhbGwgaXMgdHJpZ2dlcmVkXG4gICAgICAgICAgICAgICAgLy8gdW5sZXNzIHRoZSBjYWxsIGlzIHJlc29sdmVkLCB3ZSBhcmUgYWJsZSB0byBzY3JvbGwgbmV4dCB0byBmaXJzdCBpdGVtIGFuZCBzb29uXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBzaG93cyBmbGlja2VyaW5nIGZyb20gZmlyc3QgaXRlbSB0byBuZXh0IG5ldyBpdGVtcyBhcHBlbmRlZC5cbiAgICAgICAgICAgICAgICAvLyBCeSBzZXR0aW5nIGNvbnRhaW5lciB0byB1bmRlZmluZWQsIGtleSBldmVudHMgY2hhbmdlcyB3aWxsIGJlIHN0b3BwZWQgd2hpbGUgbG9hZGluZyBpdGVtc1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxhc3RTZWxlY3RlZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHlwZWFoZWFkLl9jb250YWluZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2FkaW5nSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLm1pbmNoYXJzID09PSAwIHx8ICh0aGlzLnF1ZXJ5ICYmIHRoaXMucXVlcnkubGVuZ3RoID49IHRoaXMubWluY2hhcnMpKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgodG9rZW46IHN0cmluZykgPT4gdGhpcy5nZXREYXRhU291cmNlQXNPYnNlcnZhYmxlKHRva2VuKSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIgPSBuZXcgRGF0YVByb3ZpZGVyKCk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdoZW4gZGVmYXVsdCBkYXRhdmFsdWUgaXMgbm90IGZvdW5kIHdpdGhpbiB0aGUgZGF0YXNldCwgYSBmaWx0ZXIgY2FsbCBpcyBtYWRlIHRvIGdldCB0aGUgcmVjb3JkIHVzaW5nIGZldGNoRGVmYXVsdE1vZGVsLlxuICAgICAgICAgKiBhZnRlciBnZXR0aW5nIHRoZSByZXNwb25zZSwgc2V0IHRoZSBxdWVyeU1vZGVsIGFuZCBxdWVyeS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGRhdGF2YWx1ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0YXZhbHVlJC5zdWJzY3JpYmUoKHZhbDogQXJyYXk8c3RyaW5nPiB8IHN0cmluZykgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IChpc0FycmF5KHZhbCkgPyB2YWxbMF0gOiB2YWwpIGFzIHN0cmluZztcblxuICAgICAgICAgICAgaWYgKHF1ZXJ5ID09PSBudWxsIHx8IHF1ZXJ5ID09PSAnJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgIC8vIHJlc2V0IHRoZSBxdWVyeS5cbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5xdWVyeU1vZGVsID0gJyc7XG4gICAgICAgICAgICAgICAgLy8gb24gY2xlYXIgb3IgcmVzZXQgZmlsdGVyLCBlbXB0eSB0aGUgbGFzdFJlc3VsdHMgdG8gZmV0Y2ggbmV3IHJlY29yZHMuXG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdFJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fdW5zdWJzY3JpYmVEdikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRRdWVyeUludm9rZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyBpZiBwcmV2IGRhdGF2YWx1ZSBpcyBub3QgZXF1YWwgdG8gY3VycmVudCBkYXRhdmFsdWUgdGhlbiBjbGVhciB0aGUgbW9kZWxCeUtleSBhbmQgcXVlcnlNb2RlbFxuICAgICAgICAgICAgICAgIGlmICghaXNPYmplY3QodmFsKSAmJiAodGhpcyBhcyBhbnkpLnByZXZEYXRhdmFsdWUgIT09IHZhbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5ID0gdGhpcy5xdWVyeU1vZGVsID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkYXRhZmllbGQgaXMgQUxMRklMRURTIGRvIG5vdCBmZXRjaCB0aGUgcmVjb3Jkc1xuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgcXVlcnkgbW9kZWwgd2l0aCB0aGUgdmFsdWVzIHdlIGhhdmVcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJ5RGF0YXZhbHVlKHZhbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHR1cm4gb24gc2hvd0Nsb3NlQnRuIHdoZW4gYSBkZWZhdWx0IHZhbHVlIGlzIGdpdmVuXG4gICAgICAgICAgICB0aGlzLnNob3dDbG9zZWJ0biA9ICh0aGlzLnF1ZXJ5ICE9PSAnJyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGRhdGF2YWx1ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhc2V0JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgLy8gc2V0IHRoZSBuZXh0IGl0ZW0gaW5kZXguXG4gICAgICAgICAgICB0aGlzLnN0YXJ0SW5kZXggPSB0aGlzLmRhdGFzZXRJdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLl9sYXN0UmVzdWx0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gdGhpcy5kYXRhdmFsdWUgfHwgdGhpcy50b0JlUHJvY2Vzc2VkRGF0YXZhbHVlO1xuICAgICAgICAgICAgLy8gaW52b2tpbmcgdXBkYXRlQnlEYXRhc2V0IG9ubHkgd2hlbiBkYXRhdmFsdWUgaXMgcHJlc2VudCwgYXMgZW50ZXJlZCB2YWx1ZSBpLmUuIHF1ZXJ5IGlzIHNldHRpbmcgYmFjayB0byAnJ1xuICAgICAgICAgICAgaWYgKGlzRGVmaW5lZChkZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVCeURhdGFzZXQoZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICB9XG5cbiAgICAvLyBvbiBjbGVhciwgdHJpZ2dlciBzZWFyY2ggd2l0aCBwYWdlIHNpemUgMVxuICAgIHByaXZhdGUgY2xlYXJTZWFyY2goJGV2ZW50LCBsb2FkT25DbGVhcikge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gJyc7XG4gICAgICAgIHRoaXMub25JbnB1dENoYW5nZSgkZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyLmlzTGFzdFBhZ2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpc3RlblF1ZXJ5ID0gZmFsc2U7XG4gICAgICAgIGlmIChsb2FkT25DbGVhcikge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5RdWVyeSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl91bnN1YnNjcmliZUR2ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxvYWRNb3JlRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2xlYXJzZWFyY2gnKTtcbiAgICAgICAgdGhpcy5fbG9hZGluZ0l0ZW1zID0gZmFsc2U7XG4gICAgICAgIC8vIHdoZW4gc2VhcmNoIGlucHV0IGlzIGNsZWFyZWQsIGZvY3VzIG9uIHRoZSBpbnB1dCBmaWVsZFxuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJy5hcHAtc2VhcmNoLWlucHV0JykuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGZ1bmN0aW9uIHRvICBjbGVhciB0aGUgaW5wdXQgdmFsdWVcbiAgICBwdWJsaWMgY2xlYXJUZXh0KCkge1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gJyc7XG4gICAgICAgIHRoaXMuc2hvd0Nsb3NlYnRuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQ2xvc2UgdGhlIGZ1bGwgc2NyZWVuIG1vZGUgaW4gbW9iaWxlIHZpZXcgb2YgYXV0byBjb21wbGV0ZVxuICAgIHByaXZhdGUgY2xvc2VTZWFyY2goKSB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmdJdGVtcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBhZ2UgPSAxO1xuICAgICAgICAvLyBhZnRlciBjbG9zaW5nIHRoZSBzZWFyY2gsIGluc2VydCB0aGUgZWxlbWVudCBhdCBpdHMgcHJldmlvdXMgcG9zaXRpb24gKGVsSW5kZXgpXG4gICAgICAgIHRoaXMuaW5zZXJ0QXRJbmRleCh0aGlzLmVsSW5kZXgpO1xuICAgICAgICB0aGlzLmVsSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucGFyZW50RWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2Z1bGwtc2NyZWVuJyk7XG4gICAgICAgIGlmICh0aGlzLl9kb21VcGRhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9kb21VcGRhdGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0ZW5RdWVyeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUR2ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50eXBlYWhlYWQuaGlkZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyTW9iaWxlQXV0b0NvbXBsZXRlKCkge1xuICAgICAgICAvLyBHZXQgdGhlIHBhcmVudCBlbGVtZW50IG9mIHRoZSBzZWFyY2ggZWxlbWVudCB3aGljaCBjYW4gYmUgbmV4dCBvciBwcmV2IGVsZW1lbnQsIGlmIGJvdGggYXJlIGVtcHR5IHRoZW4gZ2V0IHRoZSBwYXJlbnQgb2YgZWxlbWVudC5cbiAgICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5lbEluZGV4KSkge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRFbCA9IHRoaXMuJGVsZW1lbnQucGFyZW50KCk7XG4gICAgICAgICAgICB0aGlzLmVsSW5kZXggPSB0aGlzLnBhcmVudEVsLmNoaWxkcmVuKCkuaW5kZXgodGhpcy4kZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmdWxsLXNjcmVlbicpKSB7XG4gICAgICAgICAgICAvLyB0aGlzIGZsYWcgaXMgc2V0IHRvIG5vdGlmeSB0aGF0IHRoZSB0eXBlYWhlYWQtY29udGFpbmVyIGRvbSBoYXMgY2hhbmdlZCBpdHMgcG9zaXRpb25cbiAgICAgICAgICAgIHRoaXMuX2RvbVVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgLy8gQWRkIGZ1bGwgc2NyZWVuIGNsYXNzIG9uIGZvY3VzIG9mIHRoZSBpbnB1dCBlbGVtZW50LlxuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5hZGRDbGFzcygnZnVsbC1zY3JlZW4nKTtcblxuICAgICAgICAgICAgLy8gQWRkIHBvc2l0aW9uIHRvIHNldCB0aGUgaGVpZ2h0IHRvIGF1dG9cbiAgICAgICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnaW5saW5lJykge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3ModGhpcy5wb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gZm9jdXMgaXMgbG9zdCB3aGVuIGVsZW1lbnQgaXMgY2hhbmdlZCB0byBmdWxsLXNjcmVlbiwga2V5ZG93biB0byBzZWxlY3QgbmV4dCBpdGVtcyB3aWxsIG5vdCB3b3JrXG4gICAgICAgIC8vIEhlbmNlIGV4cGxpY2l0bHkgZm9jdXNpbmcgdGhlIGlucHV0XG4gICAgICAgIGlmICh0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmdWxsLXNjcmVlbicpKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJy5hcHAtc2VhcmNoLWlucHV0JykuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0YVNvdXJjZUFzT2JzZXJ2YWJsZShxdWVyeTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgLy8gc2hvdyBkcm9wZG93biBvbmx5IHdoZW4gdGhlcmUgaXMgY2hhbmdlIGluIHF1ZXJ5LiBUaGlzIHNob3VsZCBub3QgYXBwbHkgd2hlbiBkYXRhb3B0aW9ucyB3aXRoIGZpbHRlckZpZWxkcyBhcmUgdXBkYXRlZC5cbiAgICAgICAgLy8gd2hlbiBsYXN0UmVzdWx0IGlzIG5vdCBhdmFpbGFibGUgaS5lLiBzdGlsbCB0aGUgZmlyc3QgY2FsbCBpcyBwZW5kaW5nIGFuZCBzZWNvbmQgcXVlcnkgaXMgaW52b2tlZCB0aGVuIGRvIG5vdCByZXR1cm4uXG4gICAgICAgIGlmICh0aGlzLl9sYXN0UXVlcnkgPT09IHF1ZXJ5ICYmICFnZXQodGhpcy5kYXRhb3B0aW9ucywgJ2ZpbHRlckZpZWxkcycpICYmIGlzRGVmaW5lZCh0aGlzLl9sYXN0UmVzdWx0KSkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZ0l0ZW1zID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fbGFzdFJlc3VsdCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAgICAgIFdNUy0xOTE3NzogT24gZm9jdXMgb2YgaW5wdXQgZmllbGQgZm9yIGF1dG9jb21wbGV0ZSB0eXBlLCBkbyBub3QgdHJpZ2dlciBhcGkgY2FsbCB3aGVuXG4gICAgICAgICAgICAgICAgIGEpIHNlYXJjaGtleSBhbmQgZGlzcGxheWV4cHJlc3Npb24gYXJlIGRpZmZlcmVudFxuICAgICAgICAgICAgICAgICBiKSBiaW5kZGlzcGxheWxhYmVsIGNvbnRhaW5zIG11bHRpcGxlIHZhbHVlc1xuICAgICAgICAgICAgICAgICBjKSBiaW5kZGlzcGxheWxhYmVsIGNvbnRhaW5zIHNpbmdsZSB2YWx1ZSB3aGljaCBkb2VzIG5vdCBtYXRjaCB3aXRoIHNlYXJjaGtleVxuICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnYXV0b2NvbXBsZXRlJyAmJiB0aGlzLnNlYXJjaGtleSAmJiB0aGlzLnF1ZXJ5ICYmIHRoaXMuZGF0YXZhbHVlKSB7XG4gICAgICAgICAgICBsZXQgYmluZERpc3BsYXlMYWJlbEFycmF5ID0gW107XG4gICAgICAgICAgICBjb25zdCBzZWFyY2hLZXlBcnJheSA9IHNwbGl0KHRoaXMuc2VhcmNoa2V5LCAnLCcpO1xuICAgICAgICAgICAgbGV0IGRpc3BsYXlsYWJlbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmJpbmRkaXNwbGF5bGFiZWwpIHtcbiAgICAgICAgICAgICAgICBiaW5kRGlzcGxheUxhYmVsQXJyYXkgPSBzcGxpdCh0aGlzLmJpbmRkaXNwbGF5bGFiZWwsICcrJyk7XG4gICAgICAgICAgICAgICAgaWYgKGJpbmREaXNwbGF5TGFiZWxBcnJheS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmNsdWRlcyhiaW5kRGlzcGxheUxhYmVsQXJyYXlbMF0sICd8JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gL1xcWyguKj8pXFxdLztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlsYWJlbCA9IHJlZ2V4LmV4ZWMoYmluZERpc3BsYXlMYWJlbEFycmF5WzBdKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlsYWJlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKGJpbmREaXNwbGF5TGFiZWxBcnJheS5sZW5ndGggPiAxIHx8IChkaXNwbGF5bGFiZWwgJiYgIWluY2x1ZGVzKHNlYXJjaEtleUFycmF5LCBkaXNwbGF5bGFiZWwpKVxuICAgICAgICAgICAgICAgIHx8ICh0aGlzLmRpc3BsYXlleHByZXNzaW9uICYmICFpbmNsdWRlcyhzZWFyY2hLZXlBcnJheSwgdGhpcy5kaXNwbGF5ZXhwcmVzc2lvbikpKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbGFzdFF1ZXJ5ID0gdGhpcy5xdWVyeTtcbiAgICAgICAgcmV0dXJuIGZyb20odGhpcy5nZXREYXRhU291cmNlKHF1ZXJ5KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50KG5vZGU6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgZXZlbnRDYWxsYmFjazogRnVuY3Rpb24sIGxvY2FsczogYW55KSB7XG4gICAgICAgIGlmICghaW5jbHVkZXMoWydibHVyJywgJ2ZvY3VzJywgJ3NlbGVjdCcsICdzdWJtaXQnLCAnY2hhbmdlJ10sIGV2ZW50TmFtZSkpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgZXZlbnRDYWxsYmFjaywgbG9jYWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGhpZ2hsaWdodCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgZHJvcGRvd24gbWF0Y2hpbmcgdGhlIHF1ZXJ5LlxuICAgIHByaXZhdGUgaGlnaGxpZ2h0KG1hdGNoOiBUeXBlYWhlYWRNYXRjaCwgcXVlcnk6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy50eXBlYWhlYWRDb250YWluZXIpIHtcbiAgICAgICAgICAgIC8vIGhpZ2hsaWdodCBvZiBjaGFycyB3aWxsIHdvcmsgb25seSB3aGVuIGxhYmVsIGFyZSBzdHJpbmdzLlxuICAgICAgICAgICAgKG1hdGNoIGFzIGFueSkudmFsdWUgPSBtYXRjaC5pdGVtLmxhYmVsLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlYWhlYWRDb250YWluZXIuaGlnaGxpZ2h0KG1hdGNoLCBxdWVyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpbnNlcnRzIHRoZSBlbGVtZW50IGF0IHRoZSBpbmRleCBwb3NpdGlvblxuICAgIHByaXZhdGUgaW5zZXJ0QXRJbmRleChpKSB7XG4gICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudEVsLnByZXBlbmQodGhpcy4kZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCAkZWxBdEluZGV4ID0gdGhpcy5wYXJlbnRFbC5jaGlsZHJlbigpLmVxKGkpO1xuICAgICAgICAgICAgaWYgKCRlbEF0SW5kZXgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5wYXJlbnRFbC5jaGlsZHJlbigpLmVxKGkpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5pbnNlcnRBZnRlcih0aGlzLnBhcmVudEVsLmNoaWxkcmVuKCkuZXEoaSAtIDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoZSB3aWRnZXQgaXMgb2YgdHlwZSBhdXRvY29tcGxldGUgaW4gbW9iaWxlIHZpZXcvIGFwcFxuICAgIHB1YmxpYyBpc01vYmlsZUF1dG9Db21wbGV0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ2F1dG9jb21wbGV0ZScgJiYgaXNNb2JpbGUoKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgcXVlcnkgaXMgZW50ZXJlZCBpbiB0aGUgaW5wdXQgYW5kIHRoZSB2aWV3IGlzIG5vdCBtb2JpbGVcbiAgICBwdWJsaWMgaXNRdWVyeUVudGVyZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3djbGVhciAmJiB0aGlzLnNob3dDbG9zZWJ0bjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRNb3JlRGF0YShpbmNyZW1lbnRQYWdlPzogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YVByb3ZpZGVyIHx8IHRoaXMuZGF0YVByb3ZpZGVyLmlzTGFzdFBhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbmNyZWFzZSB0aGUgcGFnZSBudW1iZXIgYW5kIHRyaWdnZXIgZm9yY2UgcXVlcnkgdXBkYXRlXG4gICAgICAgIHRoaXMucGFnZSA9IGluY3JlbWVudFBhZ2UgPyB0aGlzLnBhZ2UgKyAxIDogdGhpcy5wYWdlO1xuXG4gICAgICAgIHRoaXMuaXNTY3JvbGxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2xvYWRpbmdJdGVtcyA9IHRydWU7XG5cbiAgICAgICAgLy8gd2hlbiBpbnZva2luZyBuZXcgc2V0IG9mIHJlc3VsdHMsIHJlc2V0IHRoZSBsYXN0UXVlcnkuXG4gICAgICAgIGlmIChpbmNyZW1lbnRQYWdlKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0UXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0cmlnZ2VyIHRoZSB0eXBlYWhlYWQgY2hhbmdlIG1hbnVhbGx5IHRvIGZldGNoIHRoZSBuZXh0IHNldCBvZiByZXN1bHRzLlxuICAgICAgICB0aGlzLnR5cGVhaGVhZC5vbklucHV0KHtcbiAgICAgICAgICAgIHRhcmdldDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0cmltKHRoaXMucXVlcnkpIHx8ICcwJyAvLyBkdW1teSBkYXRhIHRvIG5vdGlmeSB0aGUgb2JzZXJ2YWJsZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gb24gZm9jdXNvdXQsIHN1YnNjcmliZSB0byB0aGUgZGF0YXZhbHVlIGNoYW5nZXMgYWdhaW5cbiAgICBwcml2YXRlIG9uRm9jdXNPdXQoKSB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlRHYgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fbG9hZGluZ0l0ZW1zID0gZmFsc2U7XG4gICAgICAgIC8vIHJlc2V0IHRoZSBwYWdlIHZhbHVlIG9uIGZvY3Vzb3V0LlxuICAgICAgICB0aGlzLnBhZ2UgPSAxO1xuICAgICAgICAvLyBpZiBkb21VcGRhdGVkIGlzIHRydWUgdGhlbiBkbyBub3QgaGlkZSB0aGUgZHJvcGRvd24gaW4gdGhlIGZ1bGxzY3JlZW5cbiAgICAgICAgaWYgKCF0aGlzLl9kb21VcGRhdGVkICYmIHRoaXMuX2lzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5RdWVyeSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lzT3BlbiA9IGZhbHNlO1xuICAgICAgICAvLyBvbiBvdXRzaWRlIGNsaWNrLCB0eXBlYWhlYWQgaXMgaGlkZGVuLiBUbyBhdm9pZCB0aGlzLCB3aGVuIGZ1bGxzY3JlZW4gaXMgc2V0LCBvdmVycmlkZGluZyBpc0ZvY3VzZWQgZmxhZyBvbiB0aGUgdHlwZWFoZWFkIGNvbnRhaW5lclxuICAgICAgICBpZiAodGhpcy5fZG9tVXBkYXRlZCAmJiB0aGlzLnR5cGVhaGVhZCAmJiAodGhpcy50eXBlYWhlYWQgYXMgYW55KS5fY29udGFpbmVyKSB7XG4gICAgICAgICAgICAodGhpcy50eXBlYWhlYWQgYXMgYW55KS5fY29udGFpbmVyLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uSW5wdXRDaGFuZ2UoJGV2ZW50KSB7XG4gICAgICAgIC8vIHJlc2V0IGFsbCB0aGUgcHJldmlvdXMgcGFnZSBkZXRhaWxzIGluIG9yZGVyIHRvIGZldGNoIG5ldyBzZXQgb2YgcmVzdWx0LlxuICAgICAgICB0aGlzLnJlc3VsdCA9IFtdO1xuICAgICAgICB0aGlzLnBhZ2UgPSAxO1xuICAgICAgICB0aGlzLmxpc3RlblF1ZXJ5ID0gdGhpcy5pc1VwZGF0ZU9uS2V5UHJlc3MoKTtcbiAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIHdoZW4gaW5wdXQgaXMgY2xlYXJlZCwgcmVzZXQgdGhlIGRhdGF2YWx1ZVxuICAgICAgICBpZiAodGhpcy5xdWVyeSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlNb2RlbCA9ICcnO1xuICAgICAgICAgICAgdGhpcy5fbW9kZWxCeVZhbHVlID0gJyc7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByZXZEYXRhdmFsdWUodGhpcy5fbGFzdFF1ZXJ5KTtcbiAgICAgICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5fbW9kZWxCeVZhbHVlLCB7fSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2xlYXInLCB7ICRldmVudCB9KTtcblxuICAgICAgICAgICAgLy8gdHJpZ2dlciBvblN1Ym1pdCBvbmx5IHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBpcyBjbGVhcmVkIG9mZiBhbmQgZG8gbm90IHRyaWdnZXIgd2hlbiB0YWIgaXMgcHJlc3NlZC5cbiAgICAgICAgICAgIGlmICgkZXZlbnQgJiYgJGV2ZW50LndoaWNoICE9PSA5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzdWJtaXQnLCB7ICRldmVudCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGludm9raW5nIGNoYW5nZSBldmVudCBvbiBldmVyeSBpbnB1dCB2YWx1ZSBjaGFuZ2UuXG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NoYW5nZScsIHtcbiAgICAgICAgICAgICAgICAkZXZlbnQ6ICRldmVudCxcbiAgICAgICAgICAgICAgICBuZXdWYWw6IHRoaXMuX21vZGVsQnlWYWx1ZSB8fCB0aGlzLnF1ZXJ5LFxuICAgICAgICAgICAgICAgIG9sZFZhbDogKHRoaXMgYXMgYW55KS5wcmV2RGF0YXZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dDbG9zZWJ0biA9ICh0aGlzLnF1ZXJ5ICE9PSAnJyk7XG4gICAgfVxuXG4gICAgLy8gVHJpZ2dlcmVkIGZvciBlbnRlciBldmVudFxuICAgIHByaXZhdGUgaGFuZGxlRW50ZXJFdmVudCgkZXZlbnQpIHtcbiAgICAgICAgLy8gc3VibWl0IGV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZXJlIGlzIG5vIHNlYXJjaCByZXN1bHRzXG4gICAgICAgIGlmICghZ2V0KHRoaXMudHlwZWFoZWFkLCAnbWF0Y2hlcy5sZW5ndGgnKSkge1xuICAgICAgICAgICAgdGhpcy5vblNlYXJjaFNlbGVjdCgkZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFRyaWdnZXJyZWQgd2hlbiB0eXBlYWhlYWQgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgIHByaXZhdGUgb25TZWFyY2hTZWxlY3QoJGV2ZW50OiBFdmVudCkge1xuICAgICAgICBsZXQgaXRlbTtcbiAgICAgICAgLy8gV01TLTIyNTMzOiBCZWZvcmUgYWRkaW5nIGFjdGl2ZSB0eXBlYWhlYWQgZWwsIGNoZWNrIGlmIHRoZSBlbnRlcmVkIHF1ZXJ5IG1hdGNoZXMgd2l0aCB0aGUgYWN0aXZlIGVsIG9yIG5vdFxuICAgICAgICBjb25zdCBpc1F1ZXJ5TWF0Y2ggPSB0aGlzLnR5cGVhaGVhZENvbnRhaW5lcj8uYWN0aXZlPy52YWx1ZSA9PT0gdGhpcy5xdWVyeTtcblxuICAgICAgICBpZiAodGhpcy50eXBlYWhlYWRDb250YWluZXIgJiYgdGhpcy50eXBlYWhlYWRDb250YWluZXIuYWN0aXZlICYmIGlzUXVlcnlNYXRjaCkge1xuICAgICAgICAgICAgaXRlbSA9IHRoaXMudHlwZWFoZWFkQ29udGFpbmVyLmFjdGl2ZS5pdGVtO1xuICAgICAgICB9XG4gICAgICAgICRldmVudCA9IHRoaXMuZXZlbnREYXRhKCRldmVudCwgaXRlbSB8fCB7fSk7XG5cbiAgICAgICAgLy8gc2VhcmNoT24gaXMgc2V0IGFzIG9uQnRuQ2xpY2ssIHRoZW4gaW52b2tlIHRoZSBzZWFyY2ggYXBpIGNhbGwgbWFudWFsbHkuXG4gICAgICAgIGlmICghdGhpcy5pc1VwZGF0ZU9uS2V5UHJlc3MoKSkge1xuICAgICAgICAgICAgdGhpcy5saXN0ZW5RdWVyeSA9IHRydWU7XG4gICAgICAgICAgICAvLyB0cmlnZ2VyIHRoZSB0eXBlYWhlYWQgY2hhbmdlIG1hbnVhbGx5IHRvIGZldGNoIHRoZSBuZXh0IHNldCBvZiByZXN1bHRzLlxuICAgICAgICAgICAgdGhpcy50eXBlYWhlYWQub25JbnB1dCh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnF1ZXJ5IC8vIGR1bW15IGRhdGEgdG8gbm90aWZ5IHRoZSBvYnNlcnZhYmxlc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdoZW4gbWF0Y2hlcyBhcmUgYXZhaWxhYmxlLlxuICAgICAgICBpZiAodGhpcy50eXBlYWhlYWRDb250YWluZXIgJiYgdGhpcy5saUVsZW1lbnRzLmxlbmd0aCAmJiBpc1F1ZXJ5TWF0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZWFoZWFkQ29udGFpbmVyLnNlbGVjdEFjdGl2ZU1hdGNoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5TW9kZWwgPSB0aGlzLnF1ZXJ5O1xuICAgICAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzdWJtaXQnLCB7ICRldmVudCB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW52b2tlT25CZWZvcmVTZXJ2aWNlQ2FsbChpbnB1dERhdGEpIHtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVzZXJ2aWNlY2FsbCcsIHsgaW5wdXREYXRhIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Ecm9wZG93bk9wZW4oKSB7XG4gICAgICAgIGlmICh0aGlzLmNsZWFyRGF0YSkge1xuICAgICAgICAgICAgdGhpcy50eXBlYWhlYWQuaGlkZSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNldHRpbmcgdGhlIHVsRWxlbWVudHMsIGxpRWxlbWVudCBvbiB0eXBlYWhlYWRDb250YWluZXIuXG4gICAgICAgIC8vIGFzIHdlIGFyZSB1c2luZyBjdXN0b21PcHRpb24gdGVtcGxhdGUsIGxpRWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUgb24gdHlwZWFoZWFkQ29udGFpbmVyIHNvIGFwcGVuZCB0aGVtIGV4cGxpY2l0bHkuXG4gICAgICAgIGNvbnN0IGZuID0gZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5faXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudHlwZWFoZWFkQ29udGFpbmVyID0gdGhpcy50eXBlYWhlYWQuX2NvbnRhaW5lciB8fCAodGhpcy50eXBlYWhlYWQgYXMgYW55KS5fdHlwZWFoZWFkLmluc3RhbmNlO1xuICAgICAgICAgICAgKHRoaXMudHlwZWFoZWFkQ29udGFpbmVyIGFzIGFueSkubGlFbGVtZW50cyA9IHRoaXMubGlFbGVtZW50cztcbiAgICAgICAgICAgICh0aGlzLnR5cGVhaGVhZENvbnRhaW5lciBhcyBhbnkpLnVsRWxlbWVudCA9IHRoaXMudWxFbGVtZW50O1xuICAgICAgICAgICAgYWRqdXN0Q29udGFpbmVyUG9zaXRpb24oJCgndHlwZWFoZWFkLWNvbnRhaW5lcicpLCB0aGlzLm5hdGl2ZUVsZW1lbnQsICh0aGlzLnR5cGVhaGVhZCBhcyBhbnkpLl90eXBlYWhlYWQsICQoJ3R5cGVhaGVhZC1jb250YWluZXIgLmRyb3Bkb3duLW1lbnUnKSk7XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm4oKTtcblxuICAgICAgICAvLyBvcGVuIGZ1bGwtc2NyZWVuIHNlYXJjaCB2aWV3XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQXV0b0NvbXBsZXRlKCkpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZnVsbC1zY3JlZW4nKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyTW9iaWxlQXV0b0NvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkcm9wZG93bkVsID0gdGhpcy5kcm9wZG93bkVsLmNsb3Nlc3QoJ3R5cGVhaGVhZC1jb250YWluZXInKTtcblxuICAgICAgICAgICAgZHJvcGRvd25FbC5pbnNlcnRBZnRlcih0aGlzLiRlbGVtZW50LmZpbmQoJ2lucHV0JykuZmlyc3QoKSk7XG4gICAgICAgICAgICBjb25zdCBzY3JlZW5IZWlnaHQgPSB0aGlzLiRlbGVtZW50LmNsb3Nlc3QoJy5hcHAtY29udGVudCcpLmhlaWdodCgpO1xuICAgICAgICAgICAgZHJvcGRvd25FbC5jc3MoeyBwb3NpdGlvbjogJ3JlbGF0aXZlJywgdG9wOiAwLCBoZWlnaHQ6IHNjcmVlbkhlaWdodCArICdweCcgfSk7XG4gICAgICAgICAgICB0aGlzLnNob3dDbG9zZWJ0biA9IHRoaXMucXVlcnkgJiYgdGhpcy5xdWVyeSAhPT0gJyc7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFQcm92aWRlciAmJiAhaXNVbmRlZmluZWQodGhpcy5kYXRhUHJvdmlkZXIuaXNMYXN0UGFnZSkgJiYgIXRoaXMuZGF0YVByb3ZpZGVyLmlzTGFzdFBhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJTZWFyY2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0TmV4dCgpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMudHlwZWFoZWFkQ29udGFpbmVyLm1hdGNoZXM7XG5cbiAgICAgICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXggPSBtYXRjaGVzLmluZGV4T2YodGhpcy50eXBlYWhlYWRDb250YWluZXIuYWN0aXZlKTtcblxuICAgICAgICAvLyBvbiBrZXlkb3duLCBpZiBzY3JvbGwgaXMgYXQgdGhlIGJvdHRvbSBhbmQgbmV4dCBwYWdlIHJlY29yZHMgYXJlIGF2YWlsYWJsZSwgZmV0Y2ggbmV4dCBwYWdlIGl0ZW1zLlxuICAgICAgICBpZiAoIXRoaXMuX2xvYWRpbmdJdGVtcyAmJiB0aGlzLmRhdGFQcm92aWRlciAmJiAhdGhpcy5kYXRhUHJvdmlkZXIuaXNMYXN0UGFnZSAmJiBpbmRleCArIDEgPiBtYXRjaGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIC8vIGluZGV4IGlzIHNhdmVkIGluIG9yZGVyIHRvIHNlbGVjdCB0aGUgbGFzdFNlbGVjdGVkIGl0ZW0gaW4gdGhlIGRyb3Bkb3duIGFmdGVyIGZldGNoaW5nIG5leHQgcGFnZSBpdGVtcy5cbiAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIHRoaXMubG9hZE1vcmVEYXRhKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMYXN0QWN0aXZlTWF0Y2hBc1NlbGVjdGVkKCkge1xuICAgICAgICBpZiAodGhpcy5sYXN0U2VsZWN0ZWRJbmRleCkge1xuICAgICAgICAgICAgKHRoaXMudHlwZWFoZWFkQ29udGFpbmVyIGFzIGFueSkuX2FjdGl2ZSA9IHRoaXMudHlwZWFoZWFkQ29udGFpbmVyLm1hdGNoZXNbdGhpcy5sYXN0U2VsZWN0ZWRJbmRleF07XG4gICAgICAgICAgICB0aGlzLnR5cGVhaGVhZENvbnRhaW5lci5uZXh0QWN0aXZlTWF0Y2goKTtcbiAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRyaWdnZXJTZWFyY2goKSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhUHJvdmlkZXIgfHwgdGhpcy5kYXRhUHJvdmlkZXIuaXNMYXN0UGFnZSB8fCAhdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZnVsbC1zY3JlZW4nKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHR5cGVBaGVhZERyb3BEb3duID0gdGhpcy5kcm9wZG93bkVsO1xuICAgICAgICBjb25zdCAkbGFzdEl0ZW0gPSB0eXBlQWhlYWREcm9wRG93bi5maW5kKCdsaScpLmxhc3QoKTtcblxuICAgICAgICAvLyBDaGVjayBpZiBsYXN0IGl0ZW0gaXMgbm90IGJlbG93IHRoZSBmdWxsIHNjcmVlblxuICAgICAgICBpZiAoJGxhc3RJdGVtLmxlbmd0aCAmJiB0eXBlQWhlYWREcm9wRG93bi5sZW5ndGggJiYgKHR5cGVBaGVhZERyb3BEb3duLmhlaWdodCgpICsgdHlwZUFoZWFkRHJvcERvd24ucG9zaXRpb24oKS50b3AgPiAkbGFzdEl0ZW0uaGVpZ2h0KCkgKyAkbGFzdEl0ZW0ucG9zaXRpb24oKS50b3ApKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRNb3JlRGF0YSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNVcGRhdGVPbktleVByZXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWFyY2hvbiA9PT0gJ3R5cGluZyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWJvdW5jZURlZmF1bHRRdWVyeShkYXRhKSB7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRRdWVyeUludm9rZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmdldERhdGFTb3VyY2UoZGF0YSwgdHJ1ZSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5TW9kZWwgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sYXN0UXVlcnkgPSB0aGlzLnF1ZXJ5ID0gdGhpcy5xdWVyeU1vZGVsWzBdLmxhYmVsIHx8ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IHRoaXMucXVlcnlNb2RlbFswXS52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0gdGhpcy5xdWVyeU1vZGVsWzBdLmtleTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dDbG9zZWJ0biA9ICh0aGlzLnF1ZXJ5ICE9PSAnJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5TW9kZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuY2xlYXJEYXRhKSB7XG4gICAgICAgICAgICAgICAgaWYgKGdldCgodGhpcy50eXBlYWhlYWQgYXMgYW55KSwgJ190eXBlYWhlYWQuaXNTaG93bicpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHlwZWFoZWFkLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQnlEYXRhdmFsdWUoZGF0YSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUJ5RGF0YXNldChkYXRhKTtcbiAgICAgICAgdGhpcy51cGRhdGVCeURhdGFTb3VyY2UoZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVCeURhdGFTb3VyY2UoZGF0YSkge1xuICAgICAgICAvLyB2YWx1ZSBpcyBwcmVzZW50IGJ1dCB0aGUgY29ycmVzcG9uZGluZyBrZXkgaXMgbm90IGZvdW5kIHRoZW4gZmV0Y2ggbmV4dCBzZXRcbiAgICAgICAgLy8gbW9kZWxCeUtleSB3aWxsIGJlIHNldCBvbmx5IHdoZW4gZGF0YXZhbHVlIGlzIGF2YWlsYWJsZSBpbnNpZGUgdGhlIGxvY2FsRGF0YSBvdGhlcndpc2UgbWFrZSBhIE4vdyBjYWxsLlxuICAgICAgICBpZiAoaXNEZWZpbmVkKGRhdGEpICYmICFpc09iamVjdChkYXRhKSAmJiB0aGlzLmRhdGFzb3VyY2UgJiYgIWlzRGVmaW5lZCh0aGlzLl9tb2RlbEJ5S2V5KSAmJiB0aGlzLmRhdGFmaWVsZCAhPT0gQUxMRklFTERTKSB7XG4gICAgICAgICAgICAvLyBBdm9pZCBtYWtpbmcgZGVmYXVsdCBxdWVyeSBpZiBxdWVyeU1vZGVsIGFscmVhZHkgZXhpc3RzLlxuICAgICAgICAgICAgaWYgKGlzRGVmaW5lZCh0aGlzLnF1ZXJ5TW9kZWwpICYmICFpc0VtcHR5KHRoaXMucXVlcnlNb2RlbCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGF2YWx1ZUZyb21RdWVyeU1vZGVsKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBNYWtlIGRlZmF1bHQgcXVlcnkgY2FsbCBvbmx5IHdoZW4gZGF0YXNvdXJjZSBzdXBwb3J0cyBDUlVEIChsaXZlIHZhcmlhYmxlKS5cbiAgICAgICAgICAgIGlmICghdGhpcy5fZGVmYXVsdFF1ZXJ5SW52b2tlZCAmJiB0aGlzLmRhdGFzb3VyY2UuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5TVVBQT1JUU19DUlVEKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVib3VuY2VEZWZhdWx0UXVlcnkoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB1cGRhdGVzIHRoZSBtb2RlbCB2YWx1ZSB1c2luZyBxdWVyeU1vZGVsXG4gICAgcHJpdmF0ZSB1cGRhdGVEYXRhdmFsdWVGcm9tUXVlcnlNb2RlbCgpIHtcbiAgICAgICAgaWYgKGlzRGVmaW5lZCh0aGlzLnF1ZXJ5TW9kZWwpKSB7XG4gICAgICAgICAgICB0aGlzLl9tb2RlbEJ5VmFsdWUgPSBpc0FycmF5KHRoaXMucXVlcnlNb2RlbCkgPyAodGhpcy5xdWVyeU1vZGVsWzBdIGFzIERhdGFTZXRJdGVtKS52YWx1ZSA6IHRoaXMucXVlcnlNb2RlbDtcbiAgICAgICAgICAgIHRoaXMuX21vZGVsQnlLZXkgPSBpc0FycmF5KHRoaXMucXVlcnlNb2RlbCkgPyAodGhpcy5xdWVyeU1vZGVsWzBdIGFzIERhdGFTZXRJdGVtKS5rZXkgOiB0aGlzLnF1ZXJ5TW9kZWw7XG4gICAgICAgICAgICB0aGlzLnRvQmVQcm9jZXNzZWREYXRhdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUJ5RGF0YXNldChkYXRhOiBhbnkpIHtcbiAgICAgICAgLy8gZGVmYXVsdCBxdWVyeSBpcyBhbHJlYWR5IGludm9rZWQgdGhlbiBkbyBub3QgbWFrZSBvdGhlciBkZWZhdWx0IHF1ZXJ5IGNhbGwuXG4gICAgICAgIC8vIEZvciBsb2NhbCBzZWFyY2ggaS5lLiBzZWFyY2hrZXkgaXMgdW5kZWZpbmVkLCBkbyBub3QgcmV0dXJuLCB2ZXJpZnkgdGhlIGRhdGF2YWx1ZSBhZ2FpbnN0IHRoZSBkYXRhc2V0SXRlbXMgLlxuICAgICAgICBpZiAodGhpcy5fZGVmYXVsdFF1ZXJ5SW52b2tlZCAmJiB0aGlzLnNlYXJjaGtleSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IGZpbmQodGhpcy5kYXRhc2V0SXRlbXMsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKGlzT2JqZWN0KGl0ZW0udmFsdWUpID8gaXNFcXVhbChpdGVtLnZhbHVlLCBkYXRhKSA6ICh0b1N0cmluZyhpdGVtLnZhbHVlKSkudG9Mb3dlckNhc2UoKSA9PT0gKHRvU3RyaW5nKGRhdGEpKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gc2V0IHRoZSBkZWZhdWx0IG9ubHkgd2hlbiBpdCBpcyBhdmFpbGFibGUgaW4gZGF0YXNldC5cbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeU1vZGVsID0gW3NlbGVjdGVkSXRlbV07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhZmllbGQgPT09IEFMTEZJRUxEUyAmJiBpc09iamVjdChkYXRhKSkge1xuICAgICAgICAgICAgdGhpcy5xdWVyeU1vZGVsID0gdGhpcy5nZXRUcmFuc2Zvcm1lZERhdGEoZXh0cmFjdERhdGFBc0FycmF5KGRhdGEpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHJlc2V0dGluZyB0aGUgcXVlcnlNb2RlbCBvbmx5IHdoZW4gcHJldkRhdGF2YWx1ZSBpcyBlcXVhbCB0byBkYXRhXG4gICAgICAgICAgICBpZiAoKHRoaXMgYXMgYW55KS5wcmV2RGF0YXZhbHVlICE9PSBkYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeU1vZGVsID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHRoaXMucXVlcnkgPSAnJztcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhdmFsdWVGcm9tUXVlcnlNb2RlbCgpO1xuXG4gICAgICAgIC8vIFNob3cgdGhlIGxhYmVsIHZhbHVlIG9uIGlucHV0LlxuICAgICAgICB0aGlzLl9sYXN0UXVlcnkgPSB0aGlzLnF1ZXJ5ID0gaXNEZWZpbmVkKHRoaXMucXVlcnlNb2RlbCkgJiYgdGhpcy5xdWVyeU1vZGVsLmxlbmd0aCA/IGdldCh0aGlzLnF1ZXJ5TW9kZWxbMF0sICdsYWJlbCcpIDogJyc7XG4gICAgICAgIHRoaXMuc2hvd0Nsb3NlYnRuID0gKHRoaXMucXVlcnkgIT09ICcnKTtcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGxhc3Qgc2VhcmNoIHJlc3VsdHMgdGhlbiBvcGVuIGRyb3Bkb3duIG9uIGZvY3VzXG4gICAgcHJpdmF0ZSBoYW5kbGVGb2N1cygkZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3NlYXJjaCcgJiYgdGhpcy5xdWVyeSA9PT0gdGhpcy5fbGFzdFF1ZXJ5ICYmIHRoaXMuX2xhc3RSZXN1bHQpIHtcbiAgICAgICAgICAgICh0aGlzLnR5cGVhaGVhZCBhcyBhbnkpLmtleVVwRXZlbnRFbWl0dGVyLmVtaXQodGhpcy5xdWVyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbm90aWZ5U3Vic2NyaWJlcigpIHtcbiAgICAgICAgY29uc3QgcGFyZW50RWwgPSAkKHRoaXMubmF0aXZlRWxlbWVudCkuY2xvc2VzdCgnLmFwcC1jb21wb3NpdGUtd2lkZ2V0LmNhcHRpb24tZmxvYXRpbmcnKTtcbiAgICAgICAgaWYgKHBhcmVudEVsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSgnY2FwdGlvblBvc2l0aW9uQW5pbWF0ZScsIHsgZGlzcGxheVZhbDogdHJ1ZSwgbmF0aXZlRWw6IHBhcmVudEVsIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyBtZXRob2QgcmV0dXJucyBhIHByb21pc2UgdGhhdCBwcm92aWRlcyB0aGUgZmlsdGVyZWQgZGF0YSBmcm9tIHRoZSBkYXRhc291cmNlLlxuICAgIHB1YmxpYyBnZXREYXRhU291cmNlKHF1ZXJ5OiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nLCBzZWFyY2hPbkRhdGFGaWVsZD86IGJvb2xlYW4sIG5leHRJdGVtSW5kZXg/OiBudW1iZXIpOiBQcm9taXNlPERhdGFTZXRJdGVtW10+IHtcbiAgICAgICAgLy8gRm9yIGRlZmF1bHQgcXVlcnksIHNlYXJjaE9uRGF0YUZpZWxkIGlzIHNldCB0byB0cnVlLCB0aGVuIGRvIG5vdCBtYWtlIGEgbi93IGNhbGwgd2hlbiBkYXRhZmllbGQgaXMgQUxMRklFTERTXG4gICAgICAgIGlmIChzZWFyY2hPbkRhdGFGaWVsZCAmJiB0aGlzLmRhdGFmaWVsZCA9PT0gQUxMRklFTERTKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9yIGRlZmF1bHQgZGF0YXZhbHVlLCBzZWFyY2gga2V5IGFzIHRvIGJlIG9uIGRhdGFmaWVsZCB0byBnZXQgdGhlIGRlZmF1bHQgZGF0YSBmcm9tIHRoZSBmaWx0ZXIgY2FsbC5cbiAgICAgICAgY29uc3QgZGF0YUNvbmZpZzogSURhdGFQcm92aWRlckNvbmZpZyA9IHtcbiAgICAgICAgICAgIGRhdGFzZXQ6IHRoaXMuZGF0YXNldCA/IGNvbnZlcnREYXRhVG9PYmplY3QodGhpcy5kYXRhc2V0KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGJpbmRkYXRhc2V0OiB0aGlzLmJpbmRkYXRhc2V0LFxuICAgICAgICAgICAgZGF0YXNvdXJjZTogdGhpcy5kYXRhc291cmNlLFxuICAgICAgICAgICAgZGF0YWZpZWxkOiB0aGlzLmRhdGFmaWVsZCxcbiAgICAgICAgICAgIGhhc0RhdGE6IHRoaXMuZGF0YXNldCAmJiB0aGlzLmRhdGFzZXQubGVuZ3RoLFxuICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICAgICAgaXNMb2NhbEZpbHRlcjogIXRoaXMuc2VhcmNoa2V5LFxuICAgICAgICAgICAgc2VhcmNoS2V5OiBzZWFyY2hPbkRhdGFGaWVsZCA/IHRoaXMuZGF0YWZpZWxkIDogdGhpcy5zZWFyY2hrZXksXG4gICAgICAgICAgICAvLyBkZWZhdWx0IHNlYXJjaCBjYWxsIG1hdGNoIG1vZGUgc2hvdWxkIGJlIHN0YXJ0aWdub3JlY2FzZVxuICAgICAgICAgICAgbWF0Y2hNb2RlOiBzZWFyY2hPbkRhdGFGaWVsZCA/ICdzdGFydGlnbm9yZWNhc2UnIDogdGhpcy5tYXRjaG1vZGUsXG4gICAgICAgICAgICBjYXNlc2Vuc2l0aXZlOiB0aGlzLmNhc2VzZW5zaXRpdmUsXG4gICAgICAgICAgICBpc2Zvcm1maWVsZDogdGhpcy5pc2Zvcm1maWVsZCxcbiAgICAgICAgICAgIG9yZGVyYnk6IHRoaXMub3JkZXJieSxcbiAgICAgICAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LFxuICAgICAgICAgICAgcGFnZXNpemU6IHRoaXMucGFnZXNpemUsXG4gICAgICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICAgICAgICBvbkJlZm9yZXNlcnZpY2VjYWxsOiB0aGlzLmludm9rZU9uQmVmb3JlU2VydmljZUNhbGwuYmluZCh0aGlzKVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGFvcHRpb25zKSB7XG4gICAgICAgICAgICBkYXRhQ29uZmlnLmRhdGFvcHRpb25zID0gdGhpcy5kYXRhb3B0aW9ucztcbiAgICAgICAgICAgIGRhdGFDb25maWcudmlld1BhcmVudCA9IHRoaXMudmlld1BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xvYWRpbmdJdGVtcyA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVByb3ZpZGVyLmZpbHRlcihkYXRhQ29uZmlnKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAvLyByZXNwb25zZSBmcm9tIGRhdGFQcm92aWRlciByZXR1cm5zIGFsd2F5cyBkYXRhIG9iamVjdC5cbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IHJlc3BvbnNlLmRhdGEgfHwgcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgLy8gZm9yIHNlcnZpY2UgdmFyaWFibGUsIHVwZGF0aW5nIHRoZSBkYXRhc2V0IG9ubHkgaWYgaXQgaXMgbm90IGRlZmluZWQgb3IgZW1wdHlcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhUHJvdmlkZXIgJiYgKCFpc0RlZmluZWQodGhpcy5kYXRhc2V0KSB8fCAhdGhpcy5kYXRhc2V0Lmxlbmd0aCkgJiYgdGhpcy5kYXRhUHJvdmlkZXIudXBkYXRlRGF0YXNldCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFzZXQgPSByZXNwb25zZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhUHJvdmlkZXIgJiYgdGhpcy5kYXRhUHJvdmlkZXIuaGFzTW9yZURhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhc2V0ID0gdGhpcy5mb3JtYXR0ZWREYXRhc2V0LmNvbmNhdChyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhc2V0ID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZXhwbGljaXRseSBzZXR0aW5nIHRoZSBvcHRpb25zbGltaXQgYXMgdGhlIG1hdGNoZXMgbW9yZSB0aGFuIDIwIHdpbGwgYmUgaWdub3JlZCBpZiBvcHRpb25zbGltaXQgaXMgbm90IHNwZWNpZmllZC5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtYXR0ZWREYXRhc2V0Lmxlbmd0aCA+IDIwICYmICFpc0RlZmluZWQodGhpcy5saW1pdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50eXBlYWhlYWQudHlwZWFoZWFkT3B0aW9uc0xpbWl0ID0gdGhpcy5mb3JtYXR0ZWREYXRhc2V0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBJbiBtb2JpbGUsIHRyaWdnZXIgdGhlIHNlYXJjaCBieSBkZWZhdWx0IHVudGlsIHRoZSByZXN1bHRzIGhhdmUgaGVpZ2h0IHVwdG8gcGFnZSBoZWlnaHQuIE90aGVyIHJlc3VsdHMgY2FuIGJlIGZldGNoZWQgYnkgc2Nyb2xsaW5nXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyICYmIHRoaXMuX2lzT3BlbiAmJiB0aGlzLmlzTW9iaWxlQXV0b0NvbXBsZXRlKCkgJiYgIWlzVW5kZWZpbmVkKHRoaXMuZGF0YVByb3ZpZGVyLmlzTGFzdFBhZ2UpICYmICF0aGlzLmRhdGFQcm92aWRlci5pc0xhc3RQYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlclNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRoaXMuZ2V0VHJhbnNmb3JtZWREYXRhKHRoaXMuZm9ybWF0dGVkRGF0YXNldCwgbmV4dEl0ZW1JbmRleCk7XG5cbiAgICAgICAgICAgICAgICAvLyByZXN1bHQgY29udGFpbnMgdGhlIGRhdGFmaWVsZCB2YWx1ZXMuXG4gICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQgPSBtYXAodHJhbnNmb3JtZWREYXRhLCAndmFsdWUnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWREYXRhO1xuICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9hZGluZ0l0ZW1zID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTY3JvbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICAoZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMYXN0QWN0aXZlTWF0Y2hBc1NlbGVjdGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDMwKSkoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Njcm9sbGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFdoZW4gbm8gcmVzdWx0IGlzIGZvdW5kLCBzZXQgdGhlIGRhdGF2YWx1ZSB0byB1bmRlZmluZWQuXG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWVyeU1vZGVsID0gKHF1ZXJ5IGFzIHN0cmluZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIG9uIGZvY3Vzb3V0IGkuZS4gb24gb3RoZXIgd2lkZ2V0IGZvY3VzLCBpZiBuL3cgaXMgcGVuZGluZyBsb2FkaW5nIGljb24gaXMgc2hvd24sIHdoZW4gZGF0YSBpcyBhdmFpbGFibGUgdGhlbiBkcm9wZG93biBpcyBzaG93biBhZ2Fpbi5cbiAgICAgICAgICAgICAgICAvLyBvbiB1bnN1YnNjcmliaW5nIGRvIG5vdCBzaG93IHRoZSByZXN1bHRzLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl91bnN1YnNjcmliZUR2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9sb2FkaW5nSXRlbXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sYXN0UmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIG1ldGhvZCByZXR1cm5zIHRoZSBwYXJlbnQgY29udGV4dCBpLmUuIFBhZ2UgY29udGV4dCBhbmQgbm90IHBhcmVudCBjb21wb25lbnQncyBjb250ZXh0LlxuICAgIHByaXZhdGUgZ2V0Q29udGV4dChjb250ZXh0KSB7XG4gICAgICAgIGlmIChjb250ZXh0ICYmIGdldChjb250ZXh0LCAnd2lkZ2V0JykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbnRleHQoY29udGV4dC52aWV3UGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VHJhbnNmb3JtZWREYXRhKGRhdGE6IGFueSwgaXRlbUluZGV4PzogbnVtYmVyLCBpc2N1c3RvbT86IGJvb2xlYW4pOiBEYXRhU2V0SXRlbVtdIHtcbiAgICAgICAgaWYgKGlzRGVmaW5lZChpdGVtSW5kZXgpKSB7XG4gICAgICAgICAgICBpdGVtSW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRyYW5zZm9ybUZvcm1EYXRhKFxuICAgICAgICAgICAgdGhpcy5nZXRDb250ZXh0KHRoaXMudmlld1BhcmVudCksXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgdGhpcy5kYXRhZmllbGQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkOiB0aGlzLmRpc3BsYXlsYWJlbCB8fCB0aGlzLmRpc3BsYXlmaWVsZCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5RXhwcjogaXNjdXN0b20gPyAnJyA6IHRoaXMuZGlzcGxheWV4cHJlc3Npb24sXG4gICAgICAgICAgICAgICAgYmluZERpc3BsYXlFeHByOiBpc2N1c3RvbSA/ICcnIDogdGhpcy5iaW5kZGlzcGxheWxhYmVsLFxuICAgICAgICAgICAgICAgIGJpbmREaXNwbGF5SW1nU3JjOiB0aGlzLmJpbmRkaXNwbGF5aW1hZ2VzcmMsXG4gICAgICAgICAgICAgICAgZGlzcGxheUltZ1NyYzogdGhpcy5kaXNwbGF5aW1hZ2VzcmNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpdGVtSW5kZXgsXG4gICAgICAgICAgICB0aGlzXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBnZXRVbmlxT2Jqc0J5RGF0YUZpZWxkKHRyYW5zZm9ybWVkRGF0YSwgdGhpcy5kYXRhZmllbGQsIHRoaXMuZGlzcGxheWZpZWxkIHx8IHRoaXMuZGlzcGxheWxhYmVsLCB0b0Jvb2xlYW4odGhpcy5hbGxvd2VtcHR5KSk7XG4gICAgfVxuXG4gICAgLy8gT3B0aW9uc0xpc3RUZW1wbGF0ZSBsaXN0ZW5zIHRvIHRoZSBzY3JvbGwgZXZlbnQgYW5kIHRyaWdnZXJzIHRoaXMgZnVuY3Rpb24uXG4gICAgcHVibGljIG9uU2Nyb2xsKCRzY3JvbGxFbDogRWxlbWVudCwgZXZ0OiBFdmVudCkge1xuICAgICAgICBjb25zdCB0b3RhbEhlaWdodCA9ICRzY3JvbGxFbC5zY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICBjbGllbnRIZWlnaHQgPSAkc2Nyb2xsRWwuY2xpZW50SGVpZ2h0O1xuXG4gICAgICAgIC8vIElmIHNjcm9sbCBpcyBhdCB0aGUgYm90dG9tIGFuZCBubyByZXF1ZXN0IGlzIGluIHByb2dyZXNzIGFuZCBuZXh0IHBhZ2UgcmVjb3JkcyBhcmUgYXZhaWxhYmxlLCBmZXRjaCBuZXh0IHBhZ2UgaXRlbXMuXG4gICAgICAgIGlmICghdGhpcy5fbG9hZGluZ0l0ZW1zICYmIHRoaXMuZGF0YVByb3ZpZGVyICYmICF0aGlzLmRhdGFQcm92aWRlci5pc0xhc3RQYWdlICYmICgkc2Nyb2xsRWwuc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0ID49IHRvdGFsSGVpZ2h0KSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkTW9yZURhdGEodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5taW5jaGFycykpIHtcbiAgICAgICAgICAgIC8vIGZvciBhdXRvY29tcGxldGUgc2V0IHRoZSBtaW5jaGFycyB0byAwXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSAnYXV0b2NvbXBsZXRlJykge1xuICAgICAgICAgICAgICAgIHRoaXMubWluY2hhcnMgPSAwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1pbmNoYXJzID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubGlzdGVuUXVlcnkgPSB0aGlzLmlzVXBkYXRlT25LZXlQcmVzcygpO1xuXG4gICAgICAgIC8vIGJ5IGRlZmF1bHQgZm9yIGF1dG9jb21wbGV0ZSBkbyBub3Qgc2hvdyB0aGUgc2VhcmNoIGljb25cbiAgICAgICAgLy8gYnkgZGVmYXVsdCBzaG93IHRoZSBzZWFyY2hpY29uIGZvciB0eXBlID0gc2VhcmNoXG4gICAgICAgIHRoaXMuc2hvd3NlYXJjaGljb24gPSBpc0RlZmluZWQodGhpcy5zaG93c2VhcmNoaWNvbikgPyB0aGlzLnNob3dzZWFyY2hpY29uIDogKHRoaXMudHlwZSA9PT0gJ3NlYXJjaCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclRhcmdldCA9IGdldENvbnRhaW5lclRhcmdldENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoSW5wdXRFbCA9ICQoJy5hcHAtc2VhcmNoLWlucHV0Jyk7XG4gICAgICAgIGlmIChzZWFyY2hJbnB1dEVsKSB7XG4gICAgICAgICAgICBzZWFyY2hJbnB1dEVsLnJlbW92ZUF0dHIoJ2FyaWEtZXhwYW5kZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZXZlbnREYXRhKCRldmVudCwgaXRlbSkge1xuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAkZXZlbnRbJ2RhdGEnXSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtOiBpdGVtLmRhdGFPYmplY3QsXG4gICAgICAgICAgICAgICAgbW9kZWw6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0ubGFiZWwsXG4gICAgICAgICAgICAgICAgcXVlcnk6IHRoaXMucXVlcnlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJGV2ZW50O1xuICAgIH1cblxuICAgIC8vIHRyaWdnZXJlZCBvbiBzZWxlY3Qgb24gb3B0aW9uIGZyb20gdGhlIGxpc3QuIFNldCB0aGUgcXVlcnlNb2RlbCwgcXVlcnkgYW5kIG1vZGVsQnlLZXkgZnJvbSB0aGUgbWF0Y2hlZCBpdGVtLlxuICAgIHB1YmxpYyB0eXBlYWhlYWRPblNlbGVjdChtYXRjaDogVHlwZWFoZWFkTWF0Y2gsICRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IG1hdGNoLml0ZW07XG4gICAgICAgIHRoaXMucXVlcnlNb2RlbCA9IGl0ZW07XG4gICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gaXRlbS5sYWJlbDtcbiAgICAgICAgdGhpcy5zaG93Q2xvc2VidG4gPSAodGhpcy5xdWVyeSAhPT0gJycpO1xuICAgICAgICAkZXZlbnQgPSAkZXZlbnQgfHwgdGhpcy4kdHlwZWFoZWFkRXZlbnQ7XG5cbiAgICAgICAgLy8gQXMgaXRlbS5rZXkgY2FuIHZhcnkgZnJvbSBrZXkgaW4gdGhlIGRhdGFzZXRJdGVtc1xuICAgICAgICB0aGlzLl9tb2RlbEJ5S2V5ID0gaXRlbS5rZXk7XG4gICAgICAgIHRoaXMuX21vZGVsQnlWYWx1ZSA9IGl0ZW0udmFsdWU7XG5cbiAgICAgICAgJGV2ZW50ID0gdGhpcy5ldmVudERhdGEoJGV2ZW50LCBpdGVtKTtcblxuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlLCAkZXZlbnQgfHwge30pO1xuICAgICAgICAvLyB1cGRhdGluZyB0aGUgdmFyaWFibGUgYm91bmQgdG8gZGVmYXVsdCB2YWx1ZSBhcyBpbnZva2VPbkNoYW5nZSBpcyBub3QgdXBkYXRpbmcgdGhlIHZhcmlhYmxlLlxuICAgICAgICBpZiAodGhpcy5kYXRhdmFsdWUgIT09ICh0aGlzIGFzIGFueSkucHJldkRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVCb3VuZFZhcmlhYmxlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZnVsbC1zY3JlZW4nKSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVNlYXJjaCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyAkZXZlbnQsIHNlbGVjdGVkVmFsdWU6IHRoaXMuZGF0YXZhbHVlIH0pO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3N1Ym1pdCcsIHsgJGV2ZW50IH0pO1xuXG4gICAgICAgIHRoaXMudXBkYXRlUHJldkRhdGF2YWx1ZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y6IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBCYWNrd2FyZCBjb21wYXRhYmlsaXR5IGZyb20gMTAuMy4xIHRvIDEwLjMuMlxuICAgICAgICAvLyAxMC4zLjEgd2UgaGFkIGRpc3BsYXlsYWJlbCBhcyBtb2RhbCB2YWx1ZVxuICAgICAgICAvLyBGcm9tIDEwLjMuMiBvbndvcmRzIHdlIHdpbGwgYmUgaGF2aW5nIGRpc3BsYXlleHByZXNpb24gYXMgbW9kYWwgdmFsdWVcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2F1dG9jb21wbGV0ZScgJiYga2V5ID09PSAnZGlzcGxheWxhYmVsJyAmJiB0aGlzLmRpc3BsYXlsYWJlbCAmJiAoIXRoaXMuZGlzcGxheWV4cHJlc3Npb24gfHwgKHRoaXMuZGlzcGxheWV4cHJlc3Npb24gJiYgIXRoaXMuZGF0YXNvdXJjZSkpKSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlleHByZXNzaW9uID0gdGhpcy5kaXNwbGF5bGFiZWw7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlsYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHdoZW4gZGF0YW9wdGlvbnMgYXJlIHByb3ZpZGVkIGFuZCB0aGVyZSBpcyBubyBkaXNwbGF5bGFiZWwgZ2l2ZW4gdGhlbiBkaXNwbGF5bGFiZWwgaXMgc2V0IGFzIHRoZSByZWxhdGVkZmllbGRcbiAgICAgICAgaWYgKGtleSA9PT0gJ2Rpc3BsYXlsYWJlbCcgJiYgdGhpcy5kYXRhb3B0aW9ucyAmJiB0aGlzLmJpbmRkaXNwbGF5bGFiZWwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnkgPSBnZXQodGhpcy5fbW9kZWxCeVZhbHVlLCBudikgfHwgdGhpcy5fbW9kZWxCeVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gd2hlbiBzZWFyY2ggaXMgZGlzYWJsZWQsIGRvIG5vdCBsb2FkIGFueSBtb3JlIGRhdGEgb3IganVzdCBjbGVhciB0aGUgZGF0YSB0aGF0IGlzIGFscmVhZHkgaW4gcHJvY2VzcyBvciBsb2FkZWQuXG4gICAgICAgIGlmIChrZXkgPT09ICdkaXNhYmxlZCcpIHtcbiAgICAgICAgICAgIGlmIChudiA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRGF0YSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyRGF0YSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGdldCgodGhpcy50eXBlYWhlYWQgYXMgYW55KSwgJ190eXBlYWhlYWQuaXNTaG93bicpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHlwZWFoZWFkLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBRdWVyeUxpc3QgcmVmZXJlbmNlXG4gICAgICAgIHRoaXMubGlFbGVtZW50cyA9IG51bGw7XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBkYXRhIHByb3ZpZGVyXG4gICAgICAgIGlmICh0aGlzLmRhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciB0eXBlYWhlYWQgcmVmZXJlbmNlXG4gICAgICAgIGlmICh0aGlzLnR5cGVhaGVhZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlYWhlYWQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBxdWVyeSBtb2RlbFxuICAgICAgICB0aGlzLnF1ZXJ5TW9kZWwgPSBudWxsO1xuICAgICAgICB0aGlzLnF1ZXJ5ID0gJyc7XG5cbiAgICAgICAgLy8gQ2FsbCBwYXJlbnQgbmdPbkRlc3Ryb3kgKERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQgaGFzIGNsZWFudXApXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNjdXN0b21JdGVtVGVtcGxhdGUgbGV0LW1vZGVsPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LXF1ZXJ5PVwicXVlcnlcIiBsZXQtbWF0Y2g9XCJtYXRjaFwiPlxuICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgQGlmICghY29udGVudCkge1xuICAgIDxhPlxuICAgICAgQGlmIChtb2RlbC5pbWdTcmMpIHtcbiAgICAgICAgPGltZyBbc3JjXT1cIm1vZGVsLmltZ1NyY1wiIGFsdD1cIlNlYXJjaFwiIFtzdHlsZS53aWR0aF09XCJpbWFnZXdpZHRoXCI+XG4gICAgICB9XG4gICAgICA8c3BhbiBbdGl0bGVdPVwibW9kZWwubGFiZWxcIiBbaW5uZXJIdG1sXT1cImhpZ2hsaWdodChtYXRjaCwgcXVlcnkpIHx8IG1vZGVsLmxhYmVsXCI+PC9zcGFuPlxuICAgIDwvYT5cbiAgfVxuICA8IS0tIEN1c3RvbSBwYXJ0aWFsIHRlbXBsYXRlIC0tPlxuICBAaWYgKGNvbnRlbnQpIHtcbiAgICA8YSBbbmdDbGFzc109XCJ7Y3VzdG9tVGVtcGxhdGU6IGNvbnRlbnR9XCIgcGFydGlhbENvbnRhaW5lciBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIm1hdGNoLml0ZW1cIj5cbiAgICAgIDxkaXYgcGFydGlhbC1jb250YWluZXItdGFyZ2V0PjwvZGl2PlxuICAgIDwvYT5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjdXN0b21MaXN0VGVtcGxhdGUgbGV0LW1hdGNoZXM9XCJtYXRjaGVzXCIgbGV0LWl0ZW1UZW1wbGF0ZT1cIml0ZW1UZW1wbGF0ZVwiIGxldC1xdWVyeT1cInF1ZXJ5XCI+XG4gIDx1bCAjdWxFbGVtZW50IGNsYXNzPVwiYXBwLXNlYXJjaCBkcm9wZG93bi1tZW51XCIgc2Nyb2xsYWJsZUhhbmRsZXI+XG4gICAgQGZvciAobWF0Y2ggb2YgbWF0Y2hlczsgdHJhY2sgbWF0Y2g7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICA8bGkgI2xpRWxlbWVudHMgW25nQ2xhc3NdPVwie2FjdGl2ZTogdHlwZWFoZWFkQ29udGFpbmVyICYmIHR5cGVhaGVhZENvbnRhaW5lci5pc0FjdGl2ZShtYXRjaCksICdsaXN0LWdyb3VwLWhlYWRlcic6IG1hdGNoICYmIG1hdGNoLmlzSGVhZGVyKCl9XCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwidHlwZWFoZWFkQ29udGFpbmVyLnNlbGVjdEFjdGl2ZShtYXRjaCk7XCJcbiAgICAgICAgKGNsaWNrKT1cIm1hdGNoICYmICFtYXRjaC5pc0hlYWRlcigpICYmIHR5cGVhaGVhZENvbnRhaW5lci5zZWxlY3RNYXRjaChtYXRjaCwgJGV2ZW50KTsgJHR5cGVhaGVhZEV2ZW50ID0gJGV2ZW50OyBub3RpZnlTdWJzY3JpYmVyKCk7XCI+XG4gICAgICAgIDwhLS0gaXRlbVRlbXBsYXRlIGNvbWVzIGZyb20gdGhlIDxpbnB1dD4gLS0+XG4gICAgICAgIEBpZiAobWF0Y2guaXNIZWFkZXIoKSkge1xuICAgICAgICAgIDxoNCBjbGFzcz1cImdyb3VwLXRpdGxlXCI+e3ttYXRjaC52YWx1ZX19PC9oND5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCFtYXRjaC5pc0hlYWRlcigpKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBtYXRjaC5pdGVtLCBpbmRleDogaSwgbWF0Y2g6IG1hdGNoLCBxdWVyeTogcXVlcnl9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvbGk+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJzdGF0dXNcIiBbaGlkZGVuXT1cIl9sb2FkaW5nSXRlbXMgfHwgIShkYXRhY29tcGxldGVtc2cgJiYgZGF0YVByb3ZpZGVyPy5pc0xhc3RQYWdlKVwiPlxuICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImRhdGFjb21wbGV0ZW1zZ1wiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic3RhdHVzXCIgW2hpZGRlbl09XCIhX2xvYWRpbmdJdGVtc1wiPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaXJjbGUtby1ub3RjaCBmYS1zcGluXCI+PC9pPlxuICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxvYWRpbmdkYXRhbXNnXCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLVRoaXMgdGVtcGxhdGUgaXMgZm9yIHNlYXJjaCBpbnNpZGUgbW9iaWxlIG5hdmJhci4tLT5cbkBpZiAobmF2c2VhcmNoYmFyKSB7XG4gIDxpbnB1dCBbdGl0bGVdPVwicXVlcnkgfHwgJydcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYXBwLXRleHRib3ggZm9ybS1jb250cm9sIGxpc3Qtb2Ytb2JqcyBhcHAtc2VhcmNoLWlucHV0XCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICBmb2N1cy10YXJnZXRcbiAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmFjY2Vzc2tleV09XCJzaG9ydGN1dGtleVwiXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICBbKG5nTW9kZWwpXT1cInF1ZXJ5XCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFt0eXBlYWhlYWRdPVwidHlwZWFoZWFkRGF0YVNvdXJjZVwiXG4gICAgW3R5cGVhaGVhZFdhaXRNc109XCJkZWJvdW5jZXRpbWVcIlxuICAgIFt0eXBlYWhlYWRJdGVtVGVtcGxhdGVdPVwiY3VzdG9tSXRlbVRlbXBsYXRlXCJcbiAgICBbb3B0aW9uc0xpc3RUZW1wbGF0ZV09XCJjdXN0b21MaXN0VGVtcGxhdGVcIlxuICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cImxpc3RlblF1ZXJ5ID0gdHJ1ZVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiJHR5cGVhaGVhZEV2ZW50ID0gJGV2ZW50O2hhbmRsZUVudGVyRXZlbnQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uYXJyb3dkb3duKT1cInNlbGVjdE5leHQoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwiaW52b2tlT25Ub3VjaGVkKCRldmVudClcIlxuICAgIChjbGljayk9XCJoYW5kbGVGb2N1cygkZXZlbnQpO1wiXG4gICAgKGZvY3VzKT1cIl91bnN1YnNjcmliZUR2ID0gZmFsc2U7IGxpc3RlblF1ZXJ5ID0gdHJ1ZTsgaGFuZGxlRm9jdXMoJGV2ZW50KTsgaW52b2tlT25Gb2N1cygkZXZlbnQpO1wiXG4gICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoKVwiXG4gICAgW3R5cGVhaGVhZE1pbkxlbmd0aF09XCJtaW5jaGFyc1wiXG4gICAgW3R5cGVhaGVhZE9wdGlvbnNMaW1pdF09XCJsaW1pdFwiXG4gICAgKHR5cGVhaGVhZExvYWRpbmcpPVwiX2xvYWRpbmdJdGVtc1wiXG4gICAgKHR5cGVhaGVhZE9uU2VsZWN0KT1cInR5cGVhaGVhZE9uU2VsZWN0KCRldmVudClcIlxuICAgIHR5cGVhaGVhZE9wdGlvbkZpZWxkPVwibGFiZWxcIlxuICAgIFt0eXBlYWhlYWRHcm91cEZpZWxkXT1cImdyb3VwYnkgPyAnZ3JvdXBieScgOiBudWxsXCJcbiAgICBbdHlwZWFoZWFkQXN5bmNdPVwidHJ1ZVwiXG4gICAgW3R5cGVhaGVhZFNjcm9sbGFibGVdPVwidHJ1ZVwiXG4gICAgW2FkYXB0aXZlUG9zaXRpb25dPVwidHJ1ZVwiXG4gICAgW3R5cGVhaGVhZE9wdGlvbnNJblNjcm9sbGFibGVWaWV3XT1cIm9wdGlvbnNsaW1pdGluc2Nyb2xsYWJsZXZpZXdcIlxuICAgIFtkcm9wdXBdPVwiZHJvcHVwXCJcbiAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhbGFiZWwgfHwgJ1NlYXJjaCBmaWVsZCdcIi8+XG4gIDxpIGNsYXNzPVwiYnRuLWNsb3NlIHdpIHdpLWNhbmNlbFwiIFtoaWRkZW5dPVwiIXNob3dDbG9zZWJ0blwiIChjbGljayk9XCJjbGVhclNlYXJjaCgkZXZlbnQpO1wiPjwvaT5cbn0gQGVsc2Uge1xuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4taWNvbiBmb3JtLWNvbnRyb2wtZmVlZGJhY2sgYmFjay1idG5cIiBhcmlhLWhpZGRlbj1cInRydWVcIiAoY2xpY2spPVwiY2xvc2VTZWFyY2goKVwiPjxpIGNsYXNzPVwiYXBwLWljb24ge3tiYWNrc2VhcmNoaWNvbmNsYXNzfX1cIj48L2k+PC9idXR0b24+XG4gIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkJhY2sgYnV0dG9uPC9zcGFuPlxuICA8aW5wdXQgW3RpdGxlXT1cInF1ZXJ5IHx8ICcnXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImFwcC10ZXh0Ym94IGZvcm0tY29udHJvbCBsaXN0LW9mLW9ianMgYXBwLXNlYXJjaC1pbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgZm9jdXMtdGFyZ2V0XG4gICAgW2NvbnRhaW5lcl09XCJjb250YWluZXJUYXJnZXQgfHwgJy53bS1hcHAnXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmFjY2Vzc2tleV09XCJzaG9ydGN1dGtleVwiXG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICBbKG5nTW9kZWwpXT1cInF1ZXJ5XCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFt0eXBlYWhlYWRdPVwidHlwZWFoZWFkRGF0YVNvdXJjZVwiXG4gICAgW3R5cGVhaGVhZFdhaXRNc109XCJkZWJvdW5jZXRpbWVcIlxuICAgIFt0eXBlYWhlYWRJdGVtVGVtcGxhdGVdPVwiY3VzdG9tSXRlbVRlbXBsYXRlXCJcbiAgICBbb3B0aW9uc0xpc3RUZW1wbGF0ZV09XCJjdXN0b21MaXN0VGVtcGxhdGVcIlxuICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cImxpc3RlblF1ZXJ5ID0gdHJ1ZVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwiJHR5cGVhaGVhZEV2ZW50ID0gJGV2ZW50O2hhbmRsZUVudGVyRXZlbnQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uYXJyb3dkb3duKT1cInNlbGVjdE5leHQoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwiaW52b2tlT25Ub3VjaGVkKCRldmVudCk7IG9uRm9jdXNPdXQoKVwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUZvY3VzKCRldmVudCk7XCJcbiAgICAoZm9jdXMpPVwiX3Vuc3Vic2NyaWJlRHYgPSBmYWxzZTsgbGlzdGVuUXVlcnkgPSB0cnVlOyBoYW5kbGVGb2N1cygkZXZlbnQpOyBpbnZva2VPbkZvY3VzKCRldmVudClcIlxuICAgIFt0eXBlYWhlYWRNaW5MZW5ndGhdPVwibWluY2hhcnNcIlxuICAgIFt0eXBlYWhlYWRPcHRpb25zTGltaXRdPVwibGltaXRcIlxuICAgICh0eXBlYWhlYWRMb2FkaW5nKT1cIl9sb2FkaW5nSXRlbXNcIlxuICAgICh0eXBlYWhlYWRPblNlbGVjdCk9XCJ0eXBlYWhlYWRPblNlbGVjdCgkZXZlbnQpXCJcbiAgICB0eXBlYWhlYWRPcHRpb25GaWVsZD1cImxhYmVsXCJcbiAgICBbdHlwZWFoZWFkR3JvdXBGaWVsZF09XCJncm91cGJ5ID8gJ2dyb3VwYnknIDogbnVsbFwiXG4gICAgW3R5cGVhaGVhZEFzeW5jXT1cInRydWVcIlxuICAgIFt0eXBlYWhlYWRTY3JvbGxhYmxlXT1cInRydWVcIlxuICAgIFthZGFwdGl2ZVBvc2l0aW9uXT1cInRydWVcIlxuICAgIFt0eXBlYWhlYWRPcHRpb25zSW5TY3JvbGxhYmxlVmlld109XCJvcHRpb25zbGltaXRpbnNjcm9sbGFibGV2aWV3XCJcbiAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgIFtkcm9wdXBdPVwiZHJvcHVwXCJcbiAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYWxhYmVsIHx8ICdTZWFyY2ggZmllbGQnXCI+XG4gIDxpbnB1dCBjbGFzcz1cIm1vZGVsLWhvbGRlclwiIG5nLW1vZGVsPVwicHJveHlNb2RlbFwiIG5nLXJlcXVpcmVkPVwicmVxdWlyZWRcIiB0YWJpbmRleD1cIi0xXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gIEBpZiAoX2xvYWRpbmdJdGVtcykge1xuICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwiZmEgZmEtY2lyY2xlLW8tbm90Y2ggZmEtc3BpbiBmb3JtLWNvbnRyb2wtZmVlZGJhY2tcIj48L3NwYW4+XG4gIH1cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWljb24gZm9ybS1jb250cm9sLWZlZWRiYWNrIGNsZWFyLWJ0blwiIFtuZ0NsYXNzXT1cInsnc2hvdy1idG4nOiBpc1F1ZXJ5RW50ZXJlZCgpfVwiIChjbGljayk9XCJjbGVhclNlYXJjaCgkZXZlbnQsIHRydWUpXCI+PGkgY2xhc3M9XCJhcHAtaWNvbiB7e2NsZWFyc2VhcmNoaWNvbmNsYXNzfX1cIj48L2k+PC9idXR0b24+XG4gIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkNsZWFyIGJ1dHRvbjwvc3Bhbj5cbiAgQGlmIChzaG93c2VhcmNoaWNvbikge1xuICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOiBkaXNhYmxlZH1cIiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uXCI+XG4gICAgICA8Zm9ybT5cbiAgICAgICAgPGJ1dHRvbiB0aXRsZT1cIlNlYXJjaFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGNsYXNzPVwiYXBwLXNlYXJjaC1idXR0b24gYnRuIGJ0bi1pY29uXCIgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoU2VsZWN0KCRldmVudClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHt7c2VhcmNoaWNvbmNsYXNzfX1cIj48L2k+PC9idXR0b24+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvc3Bhbj5cbiAgICB9XG4gIH1cbiAgPCEtLVRoaXMgdGVtcGxhdGUgaXMgZm9yIGJvdGggd2ViIGFuZCBmdWxsc2NyZWVuIG1vZGUgaW4gbW9iaWxlLi0tPlxuIl19