@acorex/components 16.0.2 → 17.0.1

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 (1254) hide show
  1. package/action-sheet/README.md +3 -0
  2. package/action-sheet/index.d.ts +4 -0
  3. package/action-sheet/lib/action-sheet.class.d.ts +31 -0
  4. package/action-sheet/lib/action-sheet.component.d.ts +23 -0
  5. package/action-sheet/lib/action-sheet.module.d.ts +16 -0
  6. package/action-sheet/lib/action-sheet.service.d.ts +13 -0
  7. package/alert/README.md +3 -0
  8. package/alert/index.d.ts +2 -0
  9. package/alert/lib/alert.component.d.ts +55 -0
  10. package/alert/lib/alert.module.d.ts +9 -0
  11. package/avatar/README.md +3 -0
  12. package/avatar/index.d.ts +3 -0
  13. package/avatar/lib/avatar-group.component.d.ts +5 -0
  14. package/avatar/lib/avatar.component.d.ts +17 -0
  15. package/avatar/lib/avatar.module.d.ts +9 -0
  16. package/badge/README.md +3 -0
  17. package/badge/index.d.ts +2 -0
  18. package/badge/lib/badge.component.d.ts +8 -0
  19. package/badge/lib/badge.module.d.ts +8 -0
  20. package/bottom-navigation/README.md +3 -0
  21. package/bottom-navigation/index.d.ts +3 -0
  22. package/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.d.ts +15 -0
  23. package/bottom-navigation/lib/bottom-navigation.component.d.ts +17 -0
  24. package/bottom-navigation/lib/bottom-navigation.module.d.ts +9 -0
  25. package/breadcrumbs/README.md +3 -0
  26. package/breadcrumbs/index.d.ts +4 -0
  27. package/breadcrumbs/lib/breadcrumbs-item.class.d.ts +9 -0
  28. package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +14 -0
  29. package/breadcrumbs/lib/breadcrumbs.component.d.ts +9 -0
  30. package/breadcrumbs/lib/breadcrumbs.module.d.ts +10 -0
  31. package/button/README.md +3 -0
  32. package/button/index.d.ts +5 -0
  33. package/button/lib/button-item-list.component.d.ts +19 -0
  34. package/button/lib/button-item.class.d.ts +24 -0
  35. package/button/lib/button-item.component.d.ts +30 -0
  36. package/button/lib/button.component.d.ts +26 -0
  37. package/button/lib/button.module.d.ts +13 -0
  38. package/button-group/README.md +3 -0
  39. package/button-group/index.d.ts +2 -0
  40. package/button-group/lib/button-group.component.d.ts +24 -0
  41. package/button-group/lib/button-group.module.d.ts +8 -0
  42. package/calendar/README.md +3 -0
  43. package/calendar/index.d.ts +4 -0
  44. package/calendar/lib/calendar-range.component.d.ts +31 -0
  45. package/calendar/lib/calendar.class.d.ts +80 -0
  46. package/calendar/lib/calendar.component.d.ts +51 -0
  47. package/calendar/lib/calendar.module.d.ts +11 -0
  48. package/chat/README.md +3 -0
  49. package/chat/index.d.ts +13 -0
  50. package/chat/lib/chat-input/chat-input.component.d.ts +35 -0
  51. package/chat/lib/chat-input/chat-input.interface.d.ts +10 -0
  52. package/chat/lib/chat-message/chat-message.component.d.ts +12 -0
  53. package/chat/lib/chat-messages/chat-message-audio.component.d.ts +7 -0
  54. package/chat/lib/chat-messages/chat-message-text.component.d.ts +8 -0
  55. package/chat/lib/chat-view/chat-view.component.d.ts +10 -0
  56. package/chat/lib/chat-voice/chat-voice.component.d.ts +6 -0
  57. package/chat/lib/chat.module.d.ts +29 -0
  58. package/chat/lib/chat.types.d.ts +21 -0
  59. package/chat/lib/classes/events.interface.d.ts +4 -0
  60. package/chat/lib/services/chat-message-type-registry.service.d.ts +9 -0
  61. package/chat/lib/services/chat.service.d.ts +5 -0
  62. package/chat/lib/services/recording.service.d.ts +20 -0
  63. package/check-box/README.md +3 -0
  64. package/check-box/index.d.ts +2 -0
  65. package/check-box/lib/check-box.component.d.ts +16 -0
  66. package/check-box/lib/check-box.module.d.ts +10 -0
  67. package/chips/README.md +3 -0
  68. package/chips/index.d.ts +2 -0
  69. package/chips/lib/chips.component.d.ts +11 -0
  70. package/chips/lib/chips.module.d.ts +8 -0
  71. package/circular-progress/README.md +3 -0
  72. package/circular-progress/index.d.ts +2 -0
  73. package/circular-progress/lib/circular-progress.component.d.ts +33 -0
  74. package/circular-progress/lib/circular-progress.module.d.ts +7 -0
  75. package/collapse/README.md +3 -0
  76. package/collapse/index.d.ts +3 -0
  77. package/collapse/lib/collapse-group.component.d.ts +30 -0
  78. package/collapse/lib/collapse.component.d.ts +46 -0
  79. package/collapse/lib/collapse.module.d.ts +10 -0
  80. package/color-box/README.md +3 -0
  81. package/color-box/index.d.ts +2 -0
  82. package/color-box/lib/color-box.component.d.ts +27 -0
  83. package/color-box/lib/color-box.module.d.ts +11 -0
  84. package/color-palette/README.md +3 -0
  85. package/color-palette/index.d.ts +7 -0
  86. package/color-palette/lib/color-palette-input.component.d.ts +25 -0
  87. package/color-palette/lib/color-palette-picker.component.d.ts +35 -0
  88. package/color-palette/lib/color-palette-preview.component.d.ts +16 -0
  89. package/color-palette/lib/color-palette-swatches.component.d.ts +21 -0
  90. package/color-palette/lib/color-palette.class.d.ts +28 -0
  91. package/color-palette/lib/color-palette.component.d.ts +10 -0
  92. package/color-palette/lib/color-palette.module.d.ts +20 -0
  93. package/common/README.md +3 -0
  94. package/common/index.d.ts +28 -0
  95. package/common/lib/classes/components.class.d.ts +83 -0
  96. package/common/lib/classes/datalist.class.d.ts +37 -0
  97. package/common/lib/classes/datasource.class.d.ts +78 -0
  98. package/common/lib/classes/events.class.d.ts +96 -0
  99. package/common/lib/classes/styles.class.d.ts +8 -0
  100. package/common/lib/common.module.d.ts +10 -0
  101. package/common/lib/components/base-component.class.d.ts +38 -0
  102. package/common/lib/components/button-base-component.class.d.ts +35 -0
  103. package/common/lib/components/color-component.class.d.ts +12 -0
  104. package/common/lib/components/colorlook-component.class.d.ts +6 -0
  105. package/common/lib/components/input-base-value-component.class.d.ts +27 -0
  106. package/common/lib/components/interactive-component.class.d.ts +42 -0
  107. package/common/lib/components/look-component.class.d.ts +18 -0
  108. package/common/lib/components/selection-base.component.class.d.ts +48 -0
  109. package/common/lib/components/value-component.class.d.ts +67 -0
  110. package/common/lib/directives/auto-focus.directive.d.ts +15 -0
  111. package/common/lib/directives/delayed-value-changed.directive.d.ts +17 -0
  112. package/common/lib/directives/hotkey.directive.d.ts +22 -0
  113. package/common/lib/directives/infinite-scroll.directive.d.ts +25 -0
  114. package/common/lib/directives/responsive.directive.d.ts +10 -0
  115. package/common/lib/directives/ripple.directive.d.ts +16 -0
  116. package/common/lib/services/dom.service.d.ts +6 -0
  117. package/common/lib/services/hotkey.service.d.ts +31 -0
  118. package/common/lib/types/direction.d.ts +4 -0
  119. package/common/lib/types/orientation.d.ts +4 -0
  120. package/common/lib/types/placement.d.ts +30 -0
  121. package/common/lib/types/range.d.ts +4 -0
  122. package/common/lib/types/selection-mode.d.ts +4 -0
  123. package/data-pager/README.md +3 -0
  124. package/data-pager/index.d.ts +9 -0
  125. package/data-pager/lib/data-pager-base.component.d.ts +54 -0
  126. package/data-pager/lib/data-pager-info.component.d.ts +11 -0
  127. package/data-pager/lib/data-pager-input-selector.component.d.ts +11 -0
  128. package/data-pager/lib/data-pager-next-buttons.components.d.ts +10 -0
  129. package/data-pager/lib/data-pager-numeric-selector.component.d.ts +13 -0
  130. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +14 -0
  131. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +10 -0
  132. package/data-pager/lib/data-pager.component.d.ts +34 -0
  133. package/data-pager/lib/data-pager.module.d.ts +21 -0
  134. package/data-table/README.md +3 -0
  135. package/data-table/index.d.ts +10 -0
  136. package/data-table/lib/base-data-table.class.d.ts +25 -0
  137. package/data-table/lib/columns/data-table-column-resizable.directive.d.ts +22 -0
  138. package/data-table/lib/columns/data-table-column.d.ts +20 -0
  139. package/data-table/lib/columns/data-text-column.component.d.ts +18 -0
  140. package/data-table/lib/columns/row-command-column.component.d.ts +40 -0
  141. package/data-table/lib/columns/row-index-column.component.d.ts +18 -0
  142. package/data-table/lib/columns/row-select-column.component.d.ts +14 -0
  143. package/data-table/lib/data-table/data-table.component.d.ts +52 -0
  144. package/data-table/lib/data-table.module.d.ts +26 -0
  145. package/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.d.ts +66 -0
  146. package/datetime-box/README.md +3 -0
  147. package/datetime-box/index.d.ts +2 -0
  148. package/datetime-box/lib/datetime-box.component.d.ts +36 -0
  149. package/datetime-box/lib/datetime-box.module.d.ts +13 -0
  150. package/datetime-input/README.md +3 -0
  151. package/datetime-input/index.d.ts +2 -0
  152. package/datetime-input/lib/datetime-input.component.d.ts +45 -0
  153. package/datetime-input/lib/datetime-input.module.d.ts +10 -0
  154. package/datetime-picker/README.md +3 -0
  155. package/datetime-picker/index.d.ts +3 -0
  156. package/datetime-picker/lib/datetime-picker.component.d.ts +49 -0
  157. package/datetime-picker/lib/datetime-picker.config.d.ts +8 -0
  158. package/datetime-picker/lib/datetime-picker.module.d.ts +15 -0
  159. package/decorators/README.md +3 -0
  160. package/decorators/index.d.ts +5 -0
  161. package/decorators/lib/components/clear-button.component.d.ts +13 -0
  162. package/decorators/lib/components/close-button.component.d.ts +12 -0
  163. package/decorators/lib/components/generic-content.component.d.ts +6 -0
  164. package/decorators/lib/components/icon.component.d.ts +8 -0
  165. package/decorators/lib/decorators.module.d.ts +11 -0
  166. package/dialog/README.md +3 -0
  167. package/dialog/index.d.ts +4 -0
  168. package/dialog/lib/dialog.class.d.ts +36 -0
  169. package/dialog/lib/dialog.component.d.ts +19 -0
  170. package/dialog/lib/dialog.module.d.ts +16 -0
  171. package/dialog/lib/dialog.service.d.ts +31 -0
  172. package/drawer/README.md +3 -0
  173. package/drawer/index.d.ts +3 -0
  174. package/drawer/lib/drawer-container.component.d.ts +7 -0
  175. package/drawer/lib/drawer.component.d.ts +39 -0
  176. package/drawer/lib/drawer.module.d.ts +9 -0
  177. package/dropdown/README.md +3 -0
  178. package/dropdown/index.d.ts +4 -0
  179. package/dropdown/lib/dropdown-box.class.d.ts +15 -0
  180. package/dropdown/lib/dropdown-box.component.d.ts +30 -0
  181. package/dropdown/lib/dropdown-panel.component.d.ts +33 -0
  182. package/dropdown/lib/dropdown.module.d.ts +14 -0
  183. package/dropdown-button/README.md +3 -0
  184. package/dropdown-button/index.d.ts +2 -0
  185. package/dropdown-button/lib/dropdown-button.component.d.ts +28 -0
  186. package/dropdown-button/lib/dropdown-button.module.d.ts +13 -0
  187. package/esm2022/action-sheet/acorex-components-action-sheet.mjs +5 -0
  188. package/esm2022/action-sheet/index.mjs +5 -0
  189. package/esm2022/action-sheet/lib/action-sheet.class.mjs +2 -0
  190. package/esm2022/action-sheet/lib/action-sheet.component.mjs +98 -0
  191. package/esm2022/action-sheet/lib/action-sheet.module.mjs +54 -0
  192. package/esm2022/action-sheet/lib/action-sheet.service.mjs +57 -0
  193. package/esm2022/alert/acorex-components-alert.mjs +5 -0
  194. package/esm2022/alert/index.mjs +3 -0
  195. package/esm2022/alert/lib/alert.component.mjs +195 -0
  196. package/esm2022/alert/lib/alert.module.mjs +22 -0
  197. package/esm2022/avatar/acorex-components-avatar.mjs +5 -0
  198. package/esm2022/avatar/index.mjs +4 -0
  199. package/esm2022/avatar/lib/avatar-group.component.mjs +14 -0
  200. package/esm2022/avatar/lib/avatar.component.mjs +41 -0
  201. package/esm2022/avatar/lib/avatar.module.mjs +22 -0
  202. package/esm2022/badge/acorex-components-badge.mjs +5 -0
  203. package/esm2022/badge/index.mjs +3 -0
  204. package/esm2022/badge/lib/badge.component.mjs +24 -0
  205. package/esm2022/badge/lib/badge.module.mjs +19 -0
  206. package/esm2022/bottom-navigation/acorex-components-bottom-navigation.mjs +5 -0
  207. package/esm2022/bottom-navigation/index.mjs +4 -0
  208. package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +46 -0
  209. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +49 -0
  210. package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +27 -0
  211. package/esm2022/breadcrumbs/acorex-components-breadcrumbs.mjs +5 -0
  212. package/esm2022/breadcrumbs/index.mjs +5 -0
  213. package/esm2022/breadcrumbs/lib/breadcrumbs-item.class.mjs +2 -0
  214. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +36 -0
  215. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +19 -0
  216. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +21 -0
  217. package/esm2022/button/acorex-components-button.mjs +5 -0
  218. package/esm2022/button/index.mjs +6 -0
  219. package/esm2022/button/lib/button-item-list.component.mjs +114 -0
  220. package/esm2022/button/lib/button-item.class.mjs +2 -0
  221. package/esm2022/button/lib/button-item.component.mjs +106 -0
  222. package/esm2022/button/lib/button.component.mjs +98 -0
  223. package/esm2022/button/lib/button.module.mjs +47 -0
  224. package/esm2022/button-group/acorex-components-button-group.mjs +5 -0
  225. package/esm2022/button-group/index.mjs +3 -0
  226. package/esm2022/button-group/lib/button-group.component.mjs +118 -0
  227. package/esm2022/button-group/lib/button-group.module.mjs +21 -0
  228. package/esm2022/calendar/acorex-components-calendar.mjs +5 -0
  229. package/esm2022/calendar/index.mjs +5 -0
  230. package/esm2022/calendar/lib/calendar-range.component.mjs +175 -0
  231. package/esm2022/calendar/lib/calendar.class.mjs +176 -0
  232. package/esm2022/calendar/lib/calendar.component.mjs +477 -0
  233. package/esm2022/calendar/lib/calendar.module.mjs +24 -0
  234. package/esm2022/chat/acorex-components-chat.mjs +5 -0
  235. package/esm2022/chat/index.mjs +15 -0
  236. package/esm2022/chat/lib/chat-input/chat-input.component.mjs +125 -0
  237. package/esm2022/chat/lib/chat-input/chat-input.interface.mjs +2 -0
  238. package/esm2022/chat/lib/chat-message/chat-message.component.mjs +30 -0
  239. package/esm2022/chat/lib/chat-messages/chat-message-audio.component.mjs +17 -0
  240. package/esm2022/chat/lib/chat-messages/chat-message-text.component.mjs +23 -0
  241. package/esm2022/chat/lib/chat-view/chat-view.component.mjs +22 -0
  242. package/esm2022/chat/lib/chat-voice/chat-voice.component.mjs +12 -0
  243. package/esm2022/chat/lib/chat.module.mjs +125 -0
  244. package/esm2022/chat/lib/chat.types.mjs +10 -0
  245. package/esm2022/chat/lib/classes/events.interface.mjs +2 -0
  246. package/esm2022/chat/lib/services/chat-message-type-registry.service.mjs +20 -0
  247. package/esm2022/chat/lib/services/chat.service.mjs +10 -0
  248. package/esm2022/chat/lib/services/recording.service.mjs +78 -0
  249. package/esm2022/check-box/acorex-components-check-box.mjs +5 -0
  250. package/esm2022/check-box/index.mjs +3 -0
  251. package/esm2022/check-box/lib/check-box.component.mjs +100 -0
  252. package/esm2022/check-box/lib/check-box.module.mjs +21 -0
  253. package/esm2022/chips/acorex-components-chips.mjs +5 -0
  254. package/esm2022/chips/index.mjs +3 -0
  255. package/esm2022/chips/lib/chips.component.mjs +28 -0
  256. package/esm2022/chips/lib/chips.module.mjs +19 -0
  257. package/esm2022/circular-progress/acorex-components-circular-progress.mjs +5 -0
  258. package/esm2022/circular-progress/index.mjs +3 -0
  259. package/esm2022/circular-progress/lib/circular-progress.component.mjs +96 -0
  260. package/esm2022/circular-progress/lib/circular-progress.module.mjs +17 -0
  261. package/esm2022/collapse/acorex-components-collapse.mjs +5 -0
  262. package/esm2022/collapse/index.mjs +4 -0
  263. package/esm2022/collapse/lib/collapse-group.component.mjs +131 -0
  264. package/esm2022/collapse/lib/collapse.component.mjs +146 -0
  265. package/esm2022/collapse/lib/collapse.module.mjs +21 -0
  266. package/esm2022/color-box/acorex-components-color-box.mjs +5 -0
  267. package/esm2022/color-box/index.mjs +3 -0
  268. package/esm2022/color-box/lib/color-box.component.mjs +71 -0
  269. package/esm2022/color-box/lib/color-box.module.mjs +32 -0
  270. package/esm2022/color-palette/acorex-components-color-palette.mjs +5 -0
  271. package/esm2022/color-palette/index.mjs +8 -0
  272. package/esm2022/color-palette/lib/color-palette-input.component.mjs +127 -0
  273. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +175 -0
  274. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +71 -0
  275. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +95 -0
  276. package/esm2022/color-palette/lib/color-palette.class.mjs +238 -0
  277. package/esm2022/color-palette/lib/color-palette.component.mjs +66 -0
  278. package/esm2022/color-palette/lib/color-palette.module.mjs +63 -0
  279. package/esm2022/common/acorex-components-common.mjs +5 -0
  280. package/esm2022/common/index.mjs +29 -0
  281. package/esm2022/common/lib/classes/components.class.mjs +76 -0
  282. package/esm2022/common/lib/classes/datalist.class.mjs +50 -0
  283. package/esm2022/common/lib/classes/datasource.class.mjs +133 -0
  284. package/esm2022/common/lib/classes/events.class.mjs +79 -0
  285. package/esm2022/common/lib/classes/styles.class.mjs +20 -0
  286. package/esm2022/common/lib/common.module.mjs +38 -0
  287. package/esm2022/common/lib/components/base-component.class.mjs +81 -0
  288. package/esm2022/common/lib/components/button-base-component.class.mjs +67 -0
  289. package/esm2022/common/lib/components/color-component.class.mjs +25 -0
  290. package/esm2022/common/lib/components/colorlook-component.class.mjs +6 -0
  291. package/esm2022/common/lib/components/input-base-value-component.class.mjs +47 -0
  292. package/esm2022/common/lib/components/interactive-component.class.mjs +107 -0
  293. package/esm2022/common/lib/components/look-component.class.mjs +33 -0
  294. package/esm2022/common/lib/components/selection-base.component.class.mjs +196 -0
  295. package/esm2022/common/lib/components/value-component.class.mjs +223 -0
  296. package/esm2022/common/lib/directives/auto-focus.directive.mjs +66 -0
  297. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +51 -0
  298. package/esm2022/common/lib/directives/hotkey.directive.mjs +81 -0
  299. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +61 -0
  300. package/esm2022/common/lib/directives/responsive.directive.mjs +42 -0
  301. package/esm2022/common/lib/directives/ripple.directive.mjs +62 -0
  302. package/esm2022/common/lib/services/dom.service.mjs +16 -0
  303. package/esm2022/common/lib/services/hotkey.service.mjs +53 -0
  304. package/esm2022/common/lib/types/direction.mjs +2 -0
  305. package/esm2022/common/lib/types/orientation.mjs +2 -0
  306. package/esm2022/common/lib/types/placement.mjs +180 -0
  307. package/esm2022/common/lib/types/range.mjs +2 -0
  308. package/esm2022/common/lib/types/selection-mode.mjs +5 -0
  309. package/esm2022/data-pager/acorex-components-data-pager.mjs +5 -0
  310. package/esm2022/data-pager/index.mjs +10 -0
  311. package/esm2022/data-pager/lib/data-pager-base.component.mjs +50 -0
  312. package/esm2022/data-pager/lib/data-pager-info.component.mjs +47 -0
  313. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +73 -0
  314. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +61 -0
  315. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +129 -0
  316. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +109 -0
  317. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +97 -0
  318. package/esm2022/data-pager/lib/data-pager.component.mjs +170 -0
  319. package/esm2022/data-pager/lib/data-pager.module.mjs +70 -0
  320. package/esm2022/data-table/acorex-components-data-table.mjs +5 -0
  321. package/esm2022/data-table/index.mjs +11 -0
  322. package/esm2022/data-table/lib/base-data-table.class.mjs +36 -0
  323. package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +59 -0
  324. package/esm2022/data-table/lib/columns/data-table-column.mjs +38 -0
  325. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +81 -0
  326. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +231 -0
  327. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +71 -0
  328. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +61 -0
  329. package/esm2022/data-table/lib/data-table/data-table.component.mjs +233 -0
  330. package/esm2022/data-table/lib/data-table.module.mjs +107 -0
  331. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +272 -0
  332. package/esm2022/datetime-box/acorex-components-datetime-box.mjs +5 -0
  333. package/esm2022/datetime-box/index.mjs +3 -0
  334. package/esm2022/datetime-box/lib/datetime-box.component.mjs +110 -0
  335. package/esm2022/datetime-box/lib/datetime-box.module.mjs +38 -0
  336. package/esm2022/datetime-input/acorex-components-datetime-input.mjs +5 -0
  337. package/esm2022/datetime-input/index.mjs +3 -0
  338. package/esm2022/datetime-input/lib/datetime-input.component.mjs +553 -0
  339. package/esm2022/datetime-input/lib/datetime-input.module.mjs +23 -0
  340. package/esm2022/datetime-picker/acorex-components-datetime-picker.mjs +5 -0
  341. package/esm2022/datetime-picker/index.mjs +4 -0
  342. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +266 -0
  343. package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +22 -0
  344. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +44 -0
  345. package/esm2022/decorators/acorex-components-decorators.mjs +5 -0
  346. package/esm2022/decorators/index.mjs +6 -0
  347. package/esm2022/decorators/lib/components/clear-button.component.mjs +70 -0
  348. package/esm2022/decorators/lib/components/close-button.component.mjs +52 -0
  349. package/esm2022/decorators/lib/components/generic-content.component.mjs +38 -0
  350. package/esm2022/decorators/lib/components/icon.component.mjs +25 -0
  351. package/esm2022/decorators/lib/decorators.module.mjs +35 -0
  352. package/esm2022/dialog/acorex-components-dialog.mjs +5 -0
  353. package/esm2022/dialog/index.mjs +5 -0
  354. package/esm2022/dialog/lib/dialog.class.mjs +2 -0
  355. package/esm2022/dialog/lib/dialog.component.mjs +62 -0
  356. package/esm2022/dialog/lib/dialog.module.mjs +48 -0
  357. package/esm2022/dialog/lib/dialog.service.mjs +164 -0
  358. package/esm2022/drawer/acorex-components-drawer.mjs +5 -0
  359. package/esm2022/drawer/index.mjs +4 -0
  360. package/esm2022/drawer/lib/drawer-container.component.mjs +33 -0
  361. package/esm2022/drawer/lib/drawer.component.mjs +151 -0
  362. package/esm2022/drawer/lib/drawer.module.mjs +22 -0
  363. package/esm2022/dropdown/acorex-components-dropdown.mjs +5 -0
  364. package/esm2022/dropdown/index.mjs +5 -0
  365. package/esm2022/dropdown/lib/dropdown-box.class.mjs +38 -0
  366. package/esm2022/dropdown/lib/dropdown-box.component.mjs +103 -0
  367. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +145 -0
  368. package/esm2022/dropdown/lib/dropdown.module.mjs +42 -0
  369. package/esm2022/dropdown-button/acorex-components-dropdown-button.mjs +5 -0
  370. package/esm2022/dropdown-button/index.mjs +3 -0
  371. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +97 -0
  372. package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +45 -0
  373. package/esm2022/form/acorex-components-form.mjs +5 -0
  374. package/esm2022/form/index.mjs +7 -0
  375. package/esm2022/form/lib/form-field.component.mjs +40 -0
  376. package/esm2022/form/lib/form.component.mjs +122 -0
  377. package/esm2022/form/lib/form.config.mjs +16 -0
  378. package/esm2022/form/lib/form.module.mjs +60 -0
  379. package/esm2022/form/lib/validation-rule.directive.mjs +36 -0
  380. package/esm2022/form/lib/validation-summary.component.mjs +133 -0
  381. package/esm2022/image/acorex-components-image.mjs +5 -0
  382. package/esm2022/image/index.mjs +3 -0
  383. package/esm2022/image/lib/image.component.mjs +72 -0
  384. package/esm2022/image/lib/image.module.mjs +19 -0
  385. package/esm2022/index.mjs +2 -158
  386. package/esm2022/label/acorex-components-label.mjs +5 -0
  387. package/esm2022/label/index.mjs +3 -0
  388. package/esm2022/label/lib/label.component.mjs +47 -0
  389. package/esm2022/label/lib/label.module.mjs +21 -0
  390. package/esm2022/list/acorex-components-list.mjs +5 -0
  391. package/esm2022/list/index.mjs +3 -0
  392. package/esm2022/list/lib/list.component.mjs +184 -0
  393. package/esm2022/list/lib/list.module.mjs +23 -0
  394. package/esm2022/loading/acorex-components-loading.mjs +5 -0
  395. package/esm2022/loading/index.mjs +7 -0
  396. package/esm2022/loading/lib/loading-spinner.component.mjs +44 -0
  397. package/esm2022/loading/lib/loading.component.mjs +62 -0
  398. package/esm2022/loading/lib/loading.config.mjs +17 -0
  399. package/esm2022/loading/lib/loading.directive.mjs +39 -0
  400. package/esm2022/loading/lib/loading.module.mjs +35 -0
  401. package/esm2022/loading/lib/loading.service.mjs +129 -0
  402. package/esm2022/loading-dialog/acorex-components-loading-dialog.mjs +5 -0
  403. package/esm2022/loading-dialog/index.mjs +5 -0
  404. package/esm2022/loading-dialog/lib/loading-dialog.class.mjs +2 -0
  405. package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +63 -0
  406. package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +46 -0
  407. package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +37 -0
  408. package/esm2022/menu/acorex-components-menu.mjs +5 -0
  409. package/esm2022/menu/index.mjs +5 -0
  410. package/esm2022/menu/lib/class/root-menu.class.mjs +3 -0
  411. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +140 -0
  412. package/esm2022/menu/lib/menu.component.mjs +48 -0
  413. package/esm2022/menu/lib/menu.module.mjs +37 -0
  414. package/esm2022/nav/acorex-components-nav.mjs +5 -0
  415. package/esm2022/nav/index.mjs +4 -0
  416. package/esm2022/nav/lib/nav-item/nav-item.component.mjs +41 -0
  417. package/esm2022/nav/lib/nav.component.mjs +12 -0
  418. package/esm2022/nav/lib/nav.module.mjs +23 -0
  419. package/esm2022/navbar/acorex-components-navbar.mjs +5 -0
  420. package/esm2022/navbar/index.mjs +3 -0
  421. package/esm2022/navbar/lib/navbar.component.mjs +18 -0
  422. package/esm2022/navbar/lib/navbar.module.mjs +18 -0
  423. package/esm2022/notification/acorex-components-notification.mjs +5 -0
  424. package/esm2022/notification/index.mjs +6 -0
  425. package/esm2022/notification/lib/notification.class.mjs +2 -0
  426. package/esm2022/notification/lib/notification.component.mjs +105 -0
  427. package/esm2022/notification/lib/notification.config.mjs +20 -0
  428. package/esm2022/notification/lib/notification.module.mjs +42 -0
  429. package/esm2022/notification/lib/notification.service.mjs +102 -0
  430. package/esm2022/number-box/acorex-components-number-box.mjs +5 -0
  431. package/esm2022/number-box/index.mjs +3 -0
  432. package/esm2022/number-box/lib/number-box.component.mjs +294 -0
  433. package/esm2022/number-box/lib/number-box.module.mjs +35 -0
  434. package/esm2022/otp/acorex-components-otp.mjs +5 -0
  435. package/esm2022/otp/index.mjs +4 -0
  436. package/esm2022/otp/lib/otp.class.mjs +4 -0
  437. package/esm2022/otp/lib/otp.component.mjs +158 -0
  438. package/esm2022/otp/lib/otp.module.mjs +22 -0
  439. package/esm2022/page/acorex-components-page.mjs +5 -0
  440. package/esm2022/page/index.mjs +4 -0
  441. package/esm2022/page/lib/base-page.class.mjs +62 -0
  442. package/esm2022/page/lib/page.component.mjs +44 -0
  443. package/esm2022/page/lib/page.module.mjs +18 -0
  444. package/esm2022/password-box/acorex-components-password-box.mjs +5 -0
  445. package/esm2022/password-box/index.mjs +3 -0
  446. package/esm2022/password-box/lib/password-box.component.mjs +94 -0
  447. package/esm2022/password-box/lib/password-box.module.mjs +24 -0
  448. package/esm2022/phone-box/acorex-components-phone-box.mjs +5 -0
  449. package/esm2022/phone-box/index.mjs +3 -0
  450. package/esm2022/phone-box/lib/phone-box.component.mjs +135 -0
  451. package/esm2022/phone-box/lib/phone-box.module.mjs +44 -0
  452. package/esm2022/picker/acorex-components-picker.mjs +5 -0
  453. package/esm2022/picker/index.mjs +4 -0
  454. package/esm2022/picker/lib/picker-column.directive.mjs +66 -0
  455. package/esm2022/picker/lib/picker.component.mjs +164 -0
  456. package/esm2022/picker/lib/picker.module.mjs +22 -0
  457. package/esm2022/popover/acorex-components-popover.mjs +5 -0
  458. package/esm2022/popover/index.mjs +3 -0
  459. package/esm2022/popover/lib/popover.component.mjs +379 -0
  460. package/esm2022/popover/lib/popover.module.mjs +19 -0
  461. package/esm2022/popup/acorex-components-popup.mjs +5 -0
  462. package/esm2022/popup/index.mjs +5 -0
  463. package/esm2022/popup/lib/popup.component.mjs +153 -0
  464. package/esm2022/popup/lib/popup.interface.mjs +2 -0
  465. package/esm2022/popup/lib/popup.module.mjs +45 -0
  466. package/esm2022/popup/lib/popup.service.mjs +65 -0
  467. package/esm2022/progress-bar/acorex-components-progress-bar.mjs +5 -0
  468. package/esm2022/progress-bar/index.mjs +3 -0
  469. package/esm2022/progress-bar/lib/progress-bar.component.mjs +57 -0
  470. package/esm2022/progress-bar/lib/progress-bar.module.mjs +19 -0
  471. package/esm2022/radio/acorex-components-radio.mjs +5 -0
  472. package/esm2022/radio/index.mjs +3 -0
  473. package/esm2022/radio/lib/radio.component.mjs +62 -0
  474. package/esm2022/radio/lib/radio.module.mjs +22 -0
  475. package/esm2022/range-slider/acorex-components-range-slider.mjs +5 -0
  476. package/esm2022/range-slider/index.mjs +3 -0
  477. package/esm2022/range-slider/lib/range-slider.component.mjs +117 -0
  478. package/esm2022/range-slider/lib/range-slider.module.mjs +23 -0
  479. package/esm2022/result/acorex-components-result.mjs +5 -0
  480. package/esm2022/result/index.mjs +3 -0
  481. package/esm2022/result/lib/result.component.mjs +27 -0
  482. package/esm2022/result/lib/result.module.mjs +19 -0
  483. package/esm2022/routing-progress/acorex-components-routing-progress.mjs +5 -0
  484. package/esm2022/routing-progress/index.mjs +3 -0
  485. package/esm2022/routing-progress/lib/routing-progress.component.mjs +57 -0
  486. package/esm2022/routing-progress/lib/routing-progress.module.mjs +21 -0
  487. package/esm2022/scheduler/acorex-components-scheduler.mjs +5 -0
  488. package/esm2022/scheduler/index.mjs +5 -0
  489. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +53 -0
  490. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +12 -0
  491. package/esm2022/scheduler/lib/scheduler.component.mjs +43 -0
  492. package/esm2022/scheduler/lib/scheduler.module.mjs +45 -0
  493. package/esm2022/scss/acorex-components-scss.mjs +5 -0
  494. package/esm2022/scss/index.mjs +2 -0
  495. package/esm2022/scss/lib/scss.module.mjs +15 -0
  496. package/esm2022/search-box/acorex-components-search-box.mjs +5 -0
  497. package/esm2022/search-box/index.mjs +3 -0
  498. package/esm2022/search-box/lib/search-box.component.mjs +87 -0
  499. package/esm2022/search-box/lib/search-box.module.mjs +46 -0
  500. package/esm2022/select-box/acorex-components-select-box.mjs +5 -0
  501. package/esm2022/select-box/index.mjs +3 -0
  502. package/esm2022/select-box/lib/select-box.component.mjs +299 -0
  503. package/esm2022/select-box/lib/select-box.module.mjs +69 -0
  504. package/esm2022/selection-list/acorex-components-selection-list.mjs +5 -0
  505. package/esm2022/selection-list/index.mjs +3 -0
  506. package/esm2022/selection-list/lib/selection-list.component.mjs +135 -0
  507. package/esm2022/selection-list/lib/selection-list.module.mjs +41 -0
  508. package/esm2022/side-menu/acorex-components-side-menu.mjs +5 -0
  509. package/esm2022/side-menu/index.mjs +4 -0
  510. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +147 -0
  511. package/esm2022/side-menu/lib/side-menu.component.mjs +12 -0
  512. package/esm2022/side-menu/lib/side-menu.module.mjs +25 -0
  513. package/esm2022/skeleton/acorex-components-skeleton.mjs +5 -0
  514. package/esm2022/skeleton/index.mjs +3 -0
  515. package/esm2022/skeleton/lib/skeleton.component.mjs +24 -0
  516. package/esm2022/skeleton/lib/skeleton.module.mjs +18 -0
  517. package/esm2022/step-wizard/acorex-components-step-wizard.mjs +5 -0
  518. package/esm2022/step-wizard/index.mjs +6 -0
  519. package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +66 -0
  520. package/esm2022/step-wizard/lib/step-wizard.class.mjs +2 -0
  521. package/esm2022/step-wizard/lib/step-wizard.component.mjs +102 -0
  522. package/esm2022/step-wizard/lib/step-wizard.directive.mjs +28 -0
  523. package/esm2022/step-wizard/lib/step-wizard.module.mjs +33 -0
  524. package/esm2022/switch/acorex-components-switch.mjs +5 -0
  525. package/esm2022/switch/index.mjs +4 -0
  526. package/esm2022/switch/lib/switch-content.component.mjs +15 -0
  527. package/esm2022/switch/lib/switch.component.mjs +51 -0
  528. package/esm2022/switch/lib/switch.module.mjs +21 -0
  529. package/esm2022/tabs/acorex-components-tabs.mjs +5 -0
  530. package/esm2022/tabs/index.mjs +6 -0
  531. package/esm2022/tabs/lib/tab-content.directive.mjs +28 -0
  532. package/esm2022/tabs/lib/tab-item.component.mjs +121 -0
  533. package/esm2022/tabs/lib/tabs.class.mjs +4 -0
  534. package/esm2022/tabs/lib/tabs.component.mjs +99 -0
  535. package/esm2022/tabs/lib/tabs.module.mjs +25 -0
  536. package/esm2022/tag/acorex-components-tag.mjs +5 -0
  537. package/esm2022/tag/index.mjs +3 -0
  538. package/esm2022/tag/lib/tag.component.mjs +20 -0
  539. package/esm2022/tag/lib/tag.module.mjs +19 -0
  540. package/esm2022/text-area/acorex-components-text-area.mjs +5 -0
  541. package/esm2022/text-area/index.mjs +3 -0
  542. package/esm2022/text-area/lib/text-area.component.mjs +65 -0
  543. package/esm2022/text-area/lib/text-area.module.mjs +19 -0
  544. package/esm2022/text-box/acorex-components-text-box.mjs +5 -0
  545. package/esm2022/text-box/index.mjs +4 -0
  546. package/esm2022/text-box/lib/mask-options.directive.mjs +17 -0
  547. package/esm2022/text-box/lib/text-box.component.mjs +131 -0
  548. package/esm2022/text-box/lib/text-box.module.mjs +38 -0
  549. package/esm2022/toast/acorex-components-toast.mjs +5 -0
  550. package/esm2022/toast/index.mjs +6 -0
  551. package/esm2022/toast/lib/toast.class.mjs +2 -0
  552. package/esm2022/toast/lib/toast.component.mjs +81 -0
  553. package/esm2022/toast/lib/toast.config.mjs +25 -0
  554. package/esm2022/toast/lib/toast.module.mjs +39 -0
  555. package/esm2022/toast/lib/toast.service.mjs +139 -0
  556. package/esm2022/tooltip/acorex-components-tooltip.mjs +5 -0
  557. package/esm2022/tooltip/index.mjs +4 -0
  558. package/esm2022/tooltip/lib/tooltip.component.mjs +16 -0
  559. package/esm2022/tooltip/lib/tooltip.directive.mjs +80 -0
  560. package/esm2022/tooltip/lib/tooltip.module.mjs +22 -0
  561. package/esm2022/uploader/acorex-components-uploader.mjs +5 -0
  562. package/esm2022/uploader/index.mjs +8 -0
  563. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +27 -0
  564. package/esm2022/uploader/lib/uploader-dialog-container.component.mjs +40 -0
  565. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +14 -0
  566. package/esm2022/uploader/lib/uploader-list.component.mjs +21 -0
  567. package/esm2022/uploader/lib/uploader-zone.directive.mjs +79 -0
  568. package/esm2022/uploader/lib/uploader.models.mjs +68 -0
  569. package/esm2022/uploader/lib/uploader.module.mjs +84 -0
  570. package/esm2022/uploader/lib/uploader.service.mjs +86 -0
  571. package/fesm2022/acorex-components-action-sheet.mjs +205 -0
  572. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -0
  573. package/fesm2022/acorex-components-alert.mjs +220 -0
  574. package/fesm2022/acorex-components-alert.mjs.map +1 -0
  575. package/fesm2022/acorex-components-avatar.mjs +78 -0
  576. package/fesm2022/acorex-components-avatar.mjs.map +1 -0
  577. package/fesm2022/acorex-components-badge.mjs +47 -0
  578. package/fesm2022/acorex-components-badge.mjs.map +1 -0
  579. package/fesm2022/acorex-components-bottom-navigation.mjs +120 -0
  580. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -0
  581. package/fesm2022/acorex-components-breadcrumbs.mjs +73 -0
  582. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -0
  583. package/fesm2022/acorex-components-button-group.mjs +143 -0
  584. package/fesm2022/acorex-components-button-group.mjs.map +1 -0
  585. package/fesm2022/acorex-components-button.mjs +356 -0
  586. package/fesm2022/acorex-components-button.mjs.map +1 -0
  587. package/fesm2022/acorex-components-calendar.mjs +840 -0
  588. package/fesm2022/acorex-components-calendar.mjs.map +1 -0
  589. package/fesm2022/acorex-components-chat.mjs +441 -0
  590. package/fesm2022/acorex-components-chat.mjs.map +1 -0
  591. package/fesm2022/acorex-components-check-box.mjs +124 -0
  592. package/fesm2022/acorex-components-check-box.mjs.map +1 -0
  593. package/fesm2022/acorex-components-chips.mjs +51 -0
  594. package/fesm2022/acorex-components-chips.mjs.map +1 -0
  595. package/fesm2022/acorex-components-circular-progress.mjs +117 -0
  596. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -0
  597. package/fesm2022/acorex-components-collapse.mjs +296 -0
  598. package/fesm2022/acorex-components-collapse.mjs.map +1 -0
  599. package/fesm2022/acorex-components-color-box.mjs +104 -0
  600. package/fesm2022/acorex-components-color-box.mjs.map +1 -0
  601. package/fesm2022/acorex-components-color-palette.mjs +800 -0
  602. package/fesm2022/acorex-components-color-palette.mjs.map +1 -0
  603. package/fesm2022/acorex-components-common.mjs +1737 -0
  604. package/fesm2022/acorex-components-common.mjs.map +1 -0
  605. package/fesm2022/acorex-components-data-pager.mjs +758 -0
  606. package/fesm2022/acorex-components-data-pager.mjs.map +1 -0
  607. package/fesm2022/acorex-components-data-table.mjs +1143 -0
  608. package/fesm2022/acorex-components-data-table.mjs.map +1 -0
  609. package/fesm2022/acorex-components-datetime-box.mjs +147 -0
  610. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -0
  611. package/fesm2022/acorex-components-datetime-input.mjs +578 -0
  612. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -0
  613. package/fesm2022/acorex-components-datetime-picker.mjs +328 -0
  614. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -0
  615. package/fesm2022/acorex-components-decorators.mjs +210 -0
  616. package/fesm2022/acorex-components-decorators.mjs.map +1 -0
  617. package/fesm2022/acorex-components-dialog.mjs +271 -0
  618. package/fesm2022/acorex-components-dialog.mjs.map +1 -0
  619. package/fesm2022/acorex-components-drawer.mjs +206 -0
  620. package/fesm2022/acorex-components-drawer.mjs.map +1 -0
  621. package/fesm2022/acorex-components-dropdown-button.mjs +145 -0
  622. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -0
  623. package/fesm2022/acorex-components-dropdown.mjs +319 -0
  624. package/fesm2022/acorex-components-dropdown.mjs.map +1 -0
  625. package/fesm2022/acorex-components-form.mjs +394 -0
  626. package/fesm2022/acorex-components-form.mjs.map +1 -0
  627. package/fesm2022/acorex-components-image.mjs +95 -0
  628. package/fesm2022/acorex-components-image.mjs.map +1 -0
  629. package/fesm2022/acorex-components-label.mjs +72 -0
  630. package/fesm2022/acorex-components-label.mjs.map +1 -0
  631. package/fesm2022/acorex-components-list.mjs +210 -0
  632. package/fesm2022/acorex-components-list.mjs.map +1 -0
  633. package/fesm2022/acorex-components-loading-dialog.mjs +144 -0
  634. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -0
  635. package/fesm2022/acorex-components-loading.mjs +313 -0
  636. package/fesm2022/acorex-components-loading.mjs.map +1 -0
  637. package/fesm2022/acorex-components-menu.mjs +224 -0
  638. package/fesm2022/acorex-components-menu.mjs.map +1 -0
  639. package/fesm2022/acorex-components-nav.mjs +75 -0
  640. package/fesm2022/acorex-components-nav.mjs.map +1 -0
  641. package/fesm2022/acorex-components-navbar.mjs +40 -0
  642. package/fesm2022/acorex-components-navbar.mjs.map +1 -0
  643. package/fesm2022/acorex-components-notification.mjs +264 -0
  644. package/fesm2022/acorex-components-notification.mjs.map +1 -0
  645. package/fesm2022/acorex-components-number-box.mjs +331 -0
  646. package/fesm2022/acorex-components-number-box.mjs.map +1 -0
  647. package/fesm2022/acorex-components-otp.mjs +186 -0
  648. package/fesm2022/acorex-components-otp.mjs.map +1 -0
  649. package/fesm2022/acorex-components-page.mjs +125 -0
  650. package/fesm2022/acorex-components-page.mjs.map +1 -0
  651. package/fesm2022/acorex-components-password-box.mjs +121 -0
  652. package/fesm2022/acorex-components-password-box.mjs.map +1 -0
  653. package/fesm2022/acorex-components-phone-box.mjs +182 -0
  654. package/fesm2022/acorex-components-phone-box.mjs.map +1 -0
  655. package/fesm2022/acorex-components-picker.mjs +251 -0
  656. package/fesm2022/acorex-components-picker.mjs.map +1 -0
  657. package/fesm2022/acorex-components-popover.mjs +402 -0
  658. package/fesm2022/acorex-components-popover.mjs.map +1 -0
  659. package/fesm2022/acorex-components-popup.mjs +256 -0
  660. package/fesm2022/acorex-components-popup.mjs.map +1 -0
  661. package/fesm2022/acorex-components-progress-bar.mjs +80 -0
  662. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -0
  663. package/fesm2022/acorex-components-radio.mjs +87 -0
  664. package/fesm2022/acorex-components-radio.mjs.map +1 -0
  665. package/fesm2022/acorex-components-range-slider.mjs +142 -0
  666. package/fesm2022/acorex-components-range-slider.mjs.map +1 -0
  667. package/fesm2022/acorex-components-result.mjs +50 -0
  668. package/fesm2022/acorex-components-result.mjs.map +1 -0
  669. package/fesm2022/acorex-components-routing-progress.mjs +82 -0
  670. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -0
  671. package/fesm2022/acorex-components-scheduler.mjs +142 -0
  672. package/fesm2022/acorex-components-scheduler.mjs.map +1 -0
  673. package/fesm2022/acorex-components-scss.mjs +22 -0
  674. package/fesm2022/acorex-components-scss.mjs.map +1 -0
  675. package/fesm2022/acorex-components-search-box.mjs +135 -0
  676. package/fesm2022/acorex-components-search-box.mjs.map +1 -0
  677. package/fesm2022/acorex-components-select-box.mjs +368 -0
  678. package/fesm2022/acorex-components-select-box.mjs.map +1 -0
  679. package/fesm2022/acorex-components-selection-list.mjs +179 -0
  680. package/fesm2022/acorex-components-selection-list.mjs.map +1 -0
  681. package/fesm2022/acorex-components-side-menu.mjs +183 -0
  682. package/fesm2022/acorex-components-side-menu.mjs.map +1 -0
  683. package/fesm2022/acorex-components-skeleton.mjs +46 -0
  684. package/fesm2022/acorex-components-skeleton.mjs.map +1 -0
  685. package/fesm2022/acorex-components-step-wizard.mjs +224 -0
  686. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -0
  687. package/fesm2022/acorex-components-switch.mjs +86 -0
  688. package/fesm2022/acorex-components-switch.mjs.map +1 -0
  689. package/fesm2022/acorex-components-tabs.mjs +271 -0
  690. package/fesm2022/acorex-components-tabs.mjs.map +1 -0
  691. package/fesm2022/acorex-components-tag.mjs +43 -0
  692. package/fesm2022/acorex-components-tag.mjs.map +1 -0
  693. package/fesm2022/acorex-components-text-area.mjs +87 -0
  694. package/fesm2022/acorex-components-text-area.mjs.map +1 -0
  695. package/fesm2022/acorex-components-text-box.mjs +184 -0
  696. package/fesm2022/acorex-components-text-box.mjs.map +1 -0
  697. package/fesm2022/acorex-components-toast.mjs +280 -0
  698. package/fesm2022/acorex-components-toast.mjs.map +1 -0
  699. package/fesm2022/acorex-components-tooltip.mjs +117 -0
  700. package/fesm2022/acorex-components-tooltip.mjs.map +1 -0
  701. package/fesm2022/acorex-components-uploader.mjs +399 -0
  702. package/fesm2022/acorex-components-uploader.mjs.map +1 -0
  703. package/fesm2022/acorex-components.mjs +2 -17392
  704. package/fesm2022/acorex-components.mjs.map +1 -1
  705. package/form/README.md +3 -0
  706. package/form/index.d.ts +6 -0
  707. package/form/lib/form-field.component.d.ts +12 -0
  708. package/form/lib/form.component.d.ts +42 -0
  709. package/form/lib/form.config.d.ts +7 -0
  710. package/form/lib/form.module.d.ts +16 -0
  711. package/form/lib/validation-rule.directive.d.ts +16 -0
  712. package/form/lib/validation-summary.component.d.ts +25 -0
  713. package/image/README.md +3 -0
  714. package/image/index.d.ts +2 -0
  715. package/image/lib/image.component.d.ts +21 -0
  716. package/image/lib/image.module.d.ts +8 -0
  717. package/index.d.ts +1 -155
  718. package/label/README.md +3 -0
  719. package/label/index.d.ts +2 -0
  720. package/label/lib/label.component.d.ts +14 -0
  721. package/list/README.md +3 -0
  722. package/list/index.d.ts +2 -0
  723. package/list/lib/list.component.d.ts +39 -0
  724. package/list/lib/list.module.d.ts +10 -0
  725. package/loading/README.md +3 -0
  726. package/loading/index.d.ts +6 -0
  727. package/loading/lib/loading-spinner.component.d.ts +10 -0
  728. package/loading/lib/loading.component.d.ts +18 -0
  729. package/loading/lib/loading.config.d.ts +8 -0
  730. package/loading/lib/loading.directive.d.ts +15 -0
  731. package/loading/lib/loading.module.d.ts +13 -0
  732. package/loading/lib/loading.service.d.ts +29 -0
  733. package/loading-dialog/README.md +3 -0
  734. package/loading-dialog/index.d.ts +4 -0
  735. package/loading-dialog/lib/loading-dialog.class.d.ts +35 -0
  736. package/loading-dialog/lib/loading-dialog.component.d.ts +25 -0
  737. package/loading-dialog/lib/loading-dialog.module.d.ts +14 -0
  738. package/loading-dialog/lib/loading-dialog.service.d.ts +8 -0
  739. package/menu/README.md +3 -0
  740. package/menu/index.d.ts +4 -0
  741. package/menu/lib/class/root-menu.class.d.ts +6 -0
  742. package/menu/lib/menu-item/menu-item.component.d.ts +37 -0
  743. package/menu/lib/menu.component.d.ts +14 -0
  744. package/menu/lib/menu.module.d.ts +14 -0
  745. package/nav/README.md +3 -0
  746. package/nav/index.d.ts +3 -0
  747. package/nav/lib/nav-item/nav-item.component.d.ts +15 -0
  748. package/nav/lib/nav.component.d.ts +6 -0
  749. package/nav/lib/nav.module.d.ts +10 -0
  750. package/navbar/README.md +3 -0
  751. package/navbar/index.d.ts +2 -0
  752. package/navbar/lib/navbar.component.d.ts +7 -0
  753. package/navbar/lib/navbar.module.d.ts +8 -0
  754. package/notification/README.md +3 -0
  755. package/notification/index.d.ts +5 -0
  756. package/notification/lib/notification.class.d.ts +40 -0
  757. package/notification/lib/notification.component.d.ts +29 -0
  758. package/notification/lib/notification.config.d.ts +13 -0
  759. package/notification/lib/notification.module.d.ts +14 -0
  760. package/notification/lib/notification.service.d.ts +12 -0
  761. package/number-box/README.md +3 -0
  762. package/number-box/index.d.ts +2 -0
  763. package/number-box/lib/number-box.component.d.ts +80 -0
  764. package/number-box/lib/number-box.module.d.ts +12 -0
  765. package/otp/README.md +3 -0
  766. package/otp/index.d.ts +3 -0
  767. package/otp/lib/otp.class.d.ts +5 -0
  768. package/otp/lib/otp.component.d.ts +31 -0
  769. package/otp/lib/otp.module.d.ts +9 -0
  770. package/package.json +403 -6
  771. package/page/README.md +3 -0
  772. package/page/index.d.ts +3 -0
  773. package/page/lib/base-page.class.d.ts +22 -0
  774. package/page/lib/page.component.d.ts +14 -0
  775. package/page/lib/page.module.d.ts +6 -0
  776. package/password-box/README.md +3 -0
  777. package/password-box/index.d.ts +2 -0
  778. package/password-box/lib/password-box.component.d.ts +29 -0
  779. package/password-box/lib/password-box.module.d.ts +11 -0
  780. package/phone-box/README.md +3 -0
  781. package/phone-box/index.d.ts +2 -0
  782. package/phone-box/lib/phone-box.component.d.ts +30 -0
  783. package/phone-box/lib/phone-box.module.d.ts +15 -0
  784. package/picker/README.md +3 -0
  785. package/picker/index.d.ts +3 -0
  786. package/picker/lib/picker-column.directive.d.ts +16 -0
  787. package/picker/lib/picker.component.d.ts +31 -0
  788. package/picker/lib/picker.module.d.ts +9 -0
  789. package/popover/README.md +3 -0
  790. package/popover/index.d.ts +2 -0
  791. package/popover/lib/popover.component.d.ts +72 -0
  792. package/popup/README.md +3 -0
  793. package/popup/index.d.ts +4 -0
  794. package/popup/lib/popup.component.d.ts +40 -0
  795. package/popup/lib/popup.interface.d.ts +28 -0
  796. package/popup/lib/popup.module.d.ts +15 -0
  797. package/popup/lib/popup.service.d.ts +21 -0
  798. package/progress-bar/README.md +3 -0
  799. package/progress-bar/index.d.ts +2 -0
  800. package/progress-bar/lib/progress-bar.component.d.ts +25 -0
  801. package/radio/README.md +3 -0
  802. package/radio/index.d.ts +2 -0
  803. package/radio/lib/radio.component.d.ts +16 -0
  804. package/radio/lib/radio.module.d.ts +9 -0
  805. package/range-slider/README.md +3 -0
  806. package/range-slider/index.d.ts +2 -0
  807. package/range-slider/lib/range-slider.component.d.ts +40 -0
  808. package/range-slider/lib/range-slider.module.d.ts +10 -0
  809. package/result/README.md +3 -0
  810. package/result/index.d.ts +2 -0
  811. package/result/lib/result.component.d.ts +10 -0
  812. package/result/lib/result.module.d.ts +8 -0
  813. package/routing-progress/README.md +3 -0
  814. package/routing-progress/index.d.ts +2 -0
  815. package/routing-progress/lib/routing-progress.component.d.ts +14 -0
  816. package/routing-progress/lib/routing-progress.module.d.ts +8 -0
  817. package/scheduler/README.md +3 -0
  818. package/scheduler/index.d.ts +4 -0
  819. package/scheduler/lib/scheduler-month-view.component.d.ts +21 -0
  820. package/scheduler/lib/scheduler-week-view.component.d.ts +6 -0
  821. package/scheduler/lib/scheduler.component.d.ts +17 -0
  822. package/scheduler/lib/scheduler.module.d.ts +14 -0
  823. package/scss/README.md +3 -0
  824. package/scss/index.d.ts +1 -0
  825. package/scss/lib/scss.module.d.ts +7 -0
  826. package/search-box/README.md +3 -0
  827. package/search-box/index.d.ts +2 -0
  828. package/search-box/lib/search-box.component.d.ts +17 -0
  829. package/search-box/lib/search-box.module.d.ts +14 -0
  830. package/select-box/README.md +3 -0
  831. package/select-box/index.d.ts +2 -0
  832. package/select-box/lib/select-box.component.d.ts +60 -0
  833. package/select-box/lib/select-box.module.d.ts +20 -0
  834. package/selection-list/README.md +3 -0
  835. package/selection-list/index.d.ts +2 -0
  836. package/selection-list/lib/selection-list.component.d.ts +30 -0
  837. package/selection-list/lib/selection-list.module.d.ts +13 -0
  838. package/side-menu/README.md +3 -0
  839. package/side-menu/index.d.ts +3 -0
  840. package/side-menu/lib/side-menu-item/side-menu-item.compoent.d.ts +48 -0
  841. package/side-menu/lib/side-menu.component.d.ts +6 -0
  842. package/side-menu/lib/side-menu.module.d.ts +12 -0
  843. package/skeleton/README.md +3 -0
  844. package/skeleton/index.d.ts +2 -0
  845. package/skeleton/lib/skeleton.component.d.ts +8 -0
  846. package/skeleton/lib/skeleton.module.d.ts +8 -0
  847. package/step-wizard/README.md +3 -0
  848. package/step-wizard/index.d.ts +5 -0
  849. package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +23 -0
  850. package/step-wizard/lib/step-wizard.class.d.ts +5 -0
  851. package/step-wizard/lib/step-wizard.component.d.ts +28 -0
  852. package/step-wizard/lib/step-wizard.directive.d.ts +11 -0
  853. package/step-wizard/lib/step-wizard.module.d.ts +12 -0
  854. package/switch/README.md +3 -0
  855. package/switch/index.d.ts +3 -0
  856. package/switch/lib/switch-content.component.d.ts +6 -0
  857. package/switch/lib/switch.component.d.ts +15 -0
  858. package/switch/lib/switch.module.d.ts +10 -0
  859. package/tabs/README.md +3 -0
  860. package/tabs/index.d.ts +5 -0
  861. package/tabs/lib/tab-content.directive.d.ts +11 -0
  862. package/tabs/lib/tab-item.component.d.ts +18 -0
  863. package/tabs/lib/tabs.class.d.ts +8 -0
  864. package/tabs/lib/tabs.component.d.ts +27 -0
  865. package/tabs/lib/tabs.module.d.ts +12 -0
  866. package/tag/README.md +3 -0
  867. package/tag/index.d.ts +2 -0
  868. package/tag/lib/tag.component.d.ts +8 -0
  869. package/tag/lib/tag.module.d.ts +8 -0
  870. package/text-area/README.md +3 -0
  871. package/text-area/index.d.ts +2 -0
  872. package/text-area/lib/text-area.component.d.ts +19 -0
  873. package/text-area/lib/text-area.module.d.ts +9 -0
  874. package/text-box/README.md +3 -0
  875. package/text-box/index.d.ts +3 -0
  876. package/text-box/lib/mask-options.directive.d.ts +13 -0
  877. package/text-box/lib/text-box.component.d.ts +33 -0
  878. package/text-box/lib/text-box.module.d.ts +13 -0
  879. package/toast/README.md +3 -0
  880. package/toast/index.d.ts +5 -0
  881. package/toast/lib/toast.class.d.ts +24 -0
  882. package/toast/lib/toast.component.d.ts +27 -0
  883. package/toast/lib/toast.config.d.ts +12 -0
  884. package/toast/lib/toast.module.d.ts +13 -0
  885. package/toast/lib/toast.service.d.ts +21 -0
  886. package/tooltip/README.md +3 -0
  887. package/tooltip/index.d.ts +3 -0
  888. package/tooltip/lib/tooltip.component.d.ts +8 -0
  889. package/tooltip/lib/tooltip.directive.d.ts +22 -0
  890. package/tooltip/lib/tooltip.module.d.ts +10 -0
  891. package/uploader/README.md +3 -0
  892. package/uploader/index.d.ts +7 -0
  893. package/uploader/lib/uploader-browse-handle.directive.d.ts +11 -0
  894. package/uploader/lib/uploader-dialog-container.component.d.ts +9 -0
  895. package/uploader/lib/uploader-drop-zone.component.d.ts +6 -0
  896. package/uploader/lib/uploader-list.component.d.ts +8 -0
  897. package/uploader/lib/uploader-zone.directive.d.ts +24 -0
  898. package/uploader/lib/uploader.models.d.ts +19 -0
  899. package/uploader/lib/uploader.module.d.ts +22 -0
  900. package/uploader/lib/uploader.service.d.ts +21 -0
  901. package/esm2022/lib/accordion/accordion.component.mjs +0 -45
  902. package/esm2022/lib/accordion/accordion.module.mjs +0 -20
  903. package/esm2022/lib/base/base-page.class.mjs +0 -97
  904. package/esm2022/lib/base/components.class.mjs +0 -17
  905. package/esm2022/lib/base/element.class.mjs +0 -301
  906. package/esm2022/lib/base/events.class.mjs +0 -17
  907. package/esm2022/lib/button/button.component.mjs +0 -74
  908. package/esm2022/lib/button/button.module.mjs +0 -21
  909. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +0 -426
  910. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  911. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +0 -59
  912. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +0 -16
  913. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +0 -226
  914. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  915. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -136
  916. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  917. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -49
  918. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -102
  919. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -214
  920. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  921. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -85
  922. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -109
  923. package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
  924. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +0 -423
  925. package/esm2022/lib/color-picker/color-picker.component.mjs +0 -89
  926. package/esm2022/lib/color-picker/color-picker.module.mjs +0 -24
  927. package/esm2022/lib/context-menu/context-menu.component.mjs +0 -68
  928. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -146
  929. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -20
  930. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +0 -140
  931. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +0 -119
  932. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +0 -75
  933. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +0 -119
  934. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -267
  935. package/esm2022/lib/data-filter/filter.class.mjs +0 -46
  936. package/esm2022/lib/data-filter/filter.module.mjs +0 -88
  937. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -168
  938. package/esm2022/lib/data-list/core/data-list.component.mjs +0 -37
  939. package/esm2022/lib/data-list/list/list.component.mjs +0 -134
  940. package/esm2022/lib/data-list/list/list.module.mjs +0 -22
  941. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +0 -84
  942. package/esm2022/lib/data-source/datasource.component.mjs +0 -47
  943. package/esm2022/lib/data-source/datasource.module.mjs +0 -18
  944. package/esm2022/lib/data-source/read-param.mjs +0 -7
  945. package/esm2022/lib/date-picker/date-picker.component.mjs +0 -1102
  946. package/esm2022/lib/date-picker/date-picker.module.mjs +0 -49
  947. package/esm2022/lib/dialog/dialog.component.mjs +0 -26
  948. package/esm2022/lib/dialog/dialog.module.mjs +0 -21
  949. package/esm2022/lib/dialog/dialog.service.mjs +0 -160
  950. package/esm2022/lib/drawer/content.component.mjs +0 -18
  951. package/esm2022/lib/drawer/drawer-container.component.mjs +0 -38
  952. package/esm2022/lib/drawer/drawer.component.mjs +0 -146
  953. package/esm2022/lib/drawer/drawer.module.mjs +0 -23
  954. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -186
  955. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -26
  956. package/esm2022/lib/fieldset/fieldset.component.mjs +0 -57
  957. package/esm2022/lib/fieldset/fieldset.module.mjs +0 -19
  958. package/esm2022/lib/form-group/form-group.component.mjs +0 -37
  959. package/esm2022/lib/form-group/form-group.module.mjs +0 -21
  960. package/esm2022/lib/label/label.component.mjs +0 -19
  961. package/esm2022/lib/label/label.module.mjs +0 -21
  962. package/esm2022/lib/loading/loading-indicator.component.mjs +0 -18
  963. package/esm2022/lib/loading/loading-panel.component.mjs +0 -45
  964. package/esm2022/lib/loading/loading.module.mjs +0 -21
  965. package/esm2022/lib/loading/loading.service.mjs +0 -47
  966. package/esm2022/lib/menu/menu-item.component.mjs +0 -50
  967. package/esm2022/lib/menu/menu.component.mjs +0 -98
  968. package/esm2022/lib/menu/menu.module.mjs +0 -22
  969. package/esm2022/lib/menu/menu2.component.mjs +0 -100
  970. package/esm2022/lib/number-box/number-box.component.mjs +0 -628
  971. package/esm2022/lib/number-box/number-box.module.mjs +0 -21
  972. package/esm2022/lib/page/content.component.mjs +0 -27
  973. package/esm2022/lib/page/footer.component.mjs +0 -19
  974. package/esm2022/lib/page/page.component.mjs +0 -57
  975. package/esm2022/lib/page/page.module.mjs +0 -22
  976. package/esm2022/lib/panel-box/panel-box.component.mjs +0 -87
  977. package/esm2022/lib/panel-box/panel-box.module.mjs +0 -19
  978. package/esm2022/lib/password-box/password-box.component.mjs +0 -32
  979. package/esm2022/lib/password-box/password-box.module.mjs +0 -23
  980. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +0 -50
  981. package/esm2022/lib/popover/overlay.service.mjs +0 -94
  982. package/esm2022/lib/popover/popover.component.mjs +0 -145
  983. package/esm2022/lib/popover/popover.module.mjs +0 -19
  984. package/esm2022/lib/popup/popup.component.mjs +0 -160
  985. package/esm2022/lib/popup/popup.module.mjs +0 -25
  986. package/esm2022/lib/popup/popup.service.mjs +0 -94
  987. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -16
  988. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
  989. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +0 -65
  990. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  991. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +0 -41
  992. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  993. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +0 -118
  994. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  995. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -216
  996. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -76
  997. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +0 -87
  998. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  999. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +0 -72
  1000. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  1001. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +0 -145
  1002. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +0 -59
  1003. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -76
  1004. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -75
  1005. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  1006. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -73
  1007. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  1008. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -30
  1009. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  1010. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +0 -36
  1011. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  1012. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -35
  1013. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  1014. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +0 -55
  1015. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  1016. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +0 -167
  1017. package/esm2022/lib/property-editor/property-editor.class.mjs +0 -108
  1018. package/esm2022/lib/property-editor/property-editor.module.mjs +0 -194
  1019. package/esm2022/lib/query-builder/query-builder-group.component.mjs +0 -129
  1020. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -177
  1021. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +0 -428
  1022. package/esm2022/lib/query-builder/query-builder.class.mjs +0 -42
  1023. package/esm2022/lib/query-builder/query-builder.component.mjs +0 -92
  1024. package/esm2022/lib/query-builder/query-builder.module.mjs +0 -62
  1025. package/esm2022/lib/query-builder/query-builder.service.mjs +0 -199
  1026. package/esm2022/lib/search-bar/search-bar.component.mjs +0 -293
  1027. package/esm2022/lib/search-bar/search-bar.module.mjs +0 -61
  1028. package/esm2022/lib/searchbox/searchbox.component.mjs +0 -106
  1029. package/esm2022/lib/searchbox/searchbox.module.mjs +0 -24
  1030. package/esm2022/lib/selectbox/selectbox.component.mjs +0 -1135
  1031. package/esm2022/lib/selectbox/selectbox.module.mjs +0 -44
  1032. package/esm2022/lib/selectbox/selectbox2.component.mjs +0 -617
  1033. package/esm2022/lib/selection-list/selection-list.component.mjs +0 -113
  1034. package/esm2022/lib/selection-list/selection-list.module.mjs +0 -21
  1035. package/esm2022/lib/switch/switch.component.mjs +0 -55
  1036. package/esm2022/lib/switch/switch.module.mjs +0 -20
  1037. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +0 -75
  1038. package/esm2022/lib/tab-page/tab-page-host.component.mjs +0 -124
  1039. package/esm2022/lib/tab-page/tab-page.module.mjs +0 -21
  1040. package/esm2022/lib/tab-page/tab-page.service.mjs +0 -159
  1041. package/esm2022/lib/tab-strip/tab-strip.component.mjs +0 -38
  1042. package/esm2022/lib/tab-strip/tab-strip.module.mjs +0 -19
  1043. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +0 -25
  1044. package/esm2022/lib/tab-view/tab-view.component.mjs +0 -110
  1045. package/esm2022/lib/tab-view/tab-view.module.mjs +0 -21
  1046. package/esm2022/lib/tab-view/tab.component.mjs +0 -33
  1047. package/esm2022/lib/textarea/textarea.component.mjs +0 -27
  1048. package/esm2022/lib/textarea/textarea.module.mjs +0 -21
  1049. package/esm2022/lib/textbox/textbox.component.mjs +0 -42
  1050. package/esm2022/lib/textbox/textbox.module.mjs +0 -36
  1051. package/esm2022/lib/time-picker/time-picker.component.mjs +0 -1107
  1052. package/esm2022/lib/time-picker/time-picker.module.mjs +0 -34
  1053. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +0 -76
  1054. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  1055. package/esm2022/lib/toast/toast.module.mjs +0 -21
  1056. package/esm2022/lib/toast/toast.service.mjs +0 -45
  1057. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -77
  1058. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +0 -62
  1059. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +0 -56
  1060. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +0 -37
  1061. package/esm2022/lib/toolbar/toolbar-item.mjs +0 -4
  1062. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -13
  1063. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -40
  1064. package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -104
  1065. package/esm2022/lib/tooltip/tooltip.module.mjs +0 -19
  1066. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +0 -697
  1067. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +0 -33
  1068. package/esm2022/lib/tree-view/tree-view.component.mjs +0 -854
  1069. package/esm2022/lib/tree-view/tree-view.module.mjs +0 -22
  1070. package/esm2022/lib/upload-file/upload-file.component.mjs +0 -226
  1071. package/esm2022/lib/upload-file/upload-file.events.mjs +0 -2
  1072. package/esm2022/lib/upload-file/upload-file.module.mjs +0 -24
  1073. package/esm2022/lib/validation/validation-form.component.mjs +0 -68
  1074. package/esm2022/lib/validation/validation-rule.widget.mjs +0 -114
  1075. package/esm2022/lib/validation/validation.class.mjs +0 -2
  1076. package/esm2022/lib/validation/validation.component.mjs +0 -89
  1077. package/esm2022/lib/validation/validation.module.mjs +0 -34
  1078. package/lib/accordion/accordion.component.d.ts +0 -13
  1079. package/lib/accordion/accordion.module.d.ts +0 -9
  1080. package/lib/base/base-page.class.d.ts +0 -46
  1081. package/lib/base/components.class.d.ts +0 -10
  1082. package/lib/base/element.class.d.ts +0 -106
  1083. package/lib/base/events.class.d.ts +0 -18
  1084. package/lib/button/button.component.d.ts +0 -21
  1085. package/lib/button/button.module.d.ts +0 -8
  1086. package/lib/calendar/calendar-box/calendar-box.component.d.ts +0 -81
  1087. package/lib/calendar/calendar-box/calendar-box.module.d.ts +0 -11
  1088. package/lib/calendar/scheduler/scheduler-views.property.d.ts +0 -19
  1089. package/lib/calendar/scheduler/scheduler.class.d.ts +0 -36
  1090. package/lib/calendar/scheduler/scheduler.component.d.ts +0 -39
  1091. package/lib/calendar/scheduler/scheduler.module.d.ts +0 -21
  1092. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +0 -25
  1093. package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +0 -14
  1094. package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +0 -16
  1095. package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +0 -26
  1096. package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +0 -37
  1097. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +0 -28
  1098. package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +0 -24
  1099. package/lib/checkbox/checkbox.component.d.ts +0 -30
  1100. package/lib/checkbox/checkbox.module.d.ts +0 -9
  1101. package/lib/color-picker/color-box/color-box.component.d.ts +0 -25
  1102. package/lib/color-picker/color-picker.component.d.ts +0 -30
  1103. package/lib/color-picker/color-picker.module.d.ts +0 -13
  1104. package/lib/context-menu/context-menu.component.d.ts +0 -22
  1105. package/lib/context-menu/context-menu.directive.d.ts +0 -38
  1106. package/lib/context-menu/context-menu.module.d.ts +0 -9
  1107. package/lib/data-filter/columns/filter-column-date.component.d.ts +0 -22
  1108. package/lib/data-filter/columns/filter-column-number.component.d.ts +0 -15
  1109. package/lib/data-filter/columns/filter-column-selection.component.d.ts +0 -18
  1110. package/lib/data-filter/columns/filter-column-string.component.d.ts +0 -15
  1111. package/lib/data-filter/filter-panel/filter-panel.component.d.ts +0 -45
  1112. package/lib/data-filter/filter.class.d.ts +0 -40
  1113. package/lib/data-filter/filter.module.d.ts +0 -24
  1114. package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +0 -25
  1115. package/lib/data-list/core/data-list.component.d.ts +0 -15
  1116. package/lib/data-list/list/list.component.d.ts +0 -40
  1117. package/lib/data-list/list/list.module.d.ts +0 -11
  1118. package/lib/data-list/list/toolbar-list-view.component.d.ts +0 -17
  1119. package/lib/data-source/datasource.component.d.ts +0 -16
  1120. package/lib/data-source/datasource.module.d.ts +0 -7
  1121. package/lib/data-source/read-param.d.ts +0 -40
  1122. package/lib/date-picker/date-picker.component.d.ts +0 -84
  1123. package/lib/date-picker/date-picker.module.d.ts +0 -14
  1124. package/lib/dialog/dialog.component.d.ts +0 -14
  1125. package/lib/dialog/dialog.module.d.ts +0 -10
  1126. package/lib/dialog/dialog.service.d.ts +0 -36
  1127. package/lib/drawer/content.component.d.ts +0 -7
  1128. package/lib/drawer/drawer-container.component.d.ts +0 -10
  1129. package/lib/drawer/drawer.component.d.ts +0 -34
  1130. package/lib/drawer/drawer.module.d.ts +0 -10
  1131. package/lib/dropdown/dropdown.component.d.ts +0 -38
  1132. package/lib/dropdown/dropdown.module.d.ts +0 -13
  1133. package/lib/fieldset/fieldset.component.d.ts +0 -11
  1134. package/lib/fieldset/fieldset.module.d.ts +0 -8
  1135. package/lib/form-group/form-group.component.d.ts +0 -14
  1136. package/lib/form-group/form-group.module.d.ts +0 -8
  1137. package/lib/label/label.component.d.ts +0 -9
  1138. package/lib/loading/loading-indicator.component.d.ts +0 -9
  1139. package/lib/loading/loading-panel.component.d.ts +0 -13
  1140. package/lib/loading/loading.module.d.ts +0 -10
  1141. package/lib/loading/loading.service.d.ts +0 -13
  1142. package/lib/menu/menu-item.component.d.ts +0 -18
  1143. package/lib/menu/menu.component.d.ts +0 -35
  1144. package/lib/menu/menu.module.d.ts +0 -11
  1145. package/lib/menu/menu2.component.d.ts +0 -21
  1146. package/lib/number-box/number-box.component.d.ts +0 -52
  1147. package/lib/number-box/number-box.module.d.ts +0 -10
  1148. package/lib/page/content.component.d.ts +0 -8
  1149. package/lib/page/footer.component.d.ts +0 -5
  1150. package/lib/page/page.component.d.ts +0 -16
  1151. package/lib/page/page.module.d.ts +0 -11
  1152. package/lib/panel-box/panel-box.component.d.ts +0 -19
  1153. package/lib/panel-box/panel-box.module.d.ts +0 -8
  1154. package/lib/password-box/password-box.component.d.ts +0 -12
  1155. package/lib/password-box/password-box.module.d.ts +0 -10
  1156. package/lib/popover/custom-cdk-overlay.service.d.ts +0 -19
  1157. package/lib/popover/overlay.service.d.ts +0 -32
  1158. package/lib/popover/popover.component.d.ts +0 -35
  1159. package/lib/popup/popup.component.d.ts +0 -40
  1160. package/lib/popup/popup.module.d.ts +0 -13
  1161. package/lib/popup/popup.service.d.ts +0 -22
  1162. package/lib/progress-bar/progress-bar.component.d.ts +0 -7
  1163. package/lib/property-editor/editors/check-editor/check-editor.d.ts +0 -19
  1164. package/lib/property-editor/editors/check-editor/check.module.d.ts +0 -11
  1165. package/lib/property-editor/editors/color-editor/color.editor.d.ts +0 -13
  1166. package/lib/property-editor/editors/color-editor/color.module.d.ts +0 -12
  1167. package/lib/property-editor/editors/column-editor/column.editor.d.ts +0 -34
  1168. package/lib/property-editor/editors/column-editor/column.module.d.ts +0 -20
  1169. package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +0 -44
  1170. package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +0 -19
  1171. package/lib/property-editor/editors/date-editor/date.editor.d.ts +0 -28
  1172. package/lib/property-editor/editors/date-editor/date.module.d.ts +0 -12
  1173. package/lib/property-editor/editors/number-editor/number.editor.d.ts +0 -22
  1174. package/lib/property-editor/editors/number-editor/number.module.d.ts +0 -12
  1175. package/lib/property-editor/editors/range-editor/range.editor.d.ts +0 -29
  1176. package/lib/property-editor/editors/range-editor/range.module.d.ts +0 -18
  1177. package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +0 -29
  1178. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +0 -28
  1179. package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +0 -14
  1180. package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +0 -25
  1181. package/lib/property-editor/editors/selection-editor/selection.module.d.ts +0 -11
  1182. package/lib/property-editor/editors/switch-editor/number.editor.d.ts +0 -11
  1183. package/lib/property-editor/editors/switch-editor/number.module.d.ts +0 -13
  1184. package/lib/property-editor/editors/text-editor/text.editor.d.ts +0 -18
  1185. package/lib/property-editor/editors/text-editor/text.module.d.ts +0 -12
  1186. package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +0 -17
  1187. package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +0 -12
  1188. package/lib/property-editor/editors/time-editor/time.editor.d.ts +0 -17
  1189. package/lib/property-editor/editors/time-editor/time.module.d.ts +0 -12
  1190. package/lib/property-editor/property-editor-renderer.directive.d.ts +0 -31
  1191. package/lib/property-editor/property-editor.class.d.ts +0 -93
  1192. package/lib/property-editor/property-editor.module.d.ts +0 -21
  1193. package/lib/query-builder/query-builder-group.component.d.ts +0 -33
  1194. package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +0 -35
  1195. package/lib/query-builder/query-builder-rule.component.d.ts +0 -45
  1196. package/lib/query-builder/query-builder.class.d.ts +0 -45
  1197. package/lib/query-builder/query-builder.component.d.ts +0 -29
  1198. package/lib/query-builder/query-builder.module.d.ts +0 -23
  1199. package/lib/query-builder/query-builder.service.d.ts +0 -18
  1200. package/lib/search-bar/search-bar.component.d.ts +0 -62
  1201. package/lib/search-bar/search-bar.module.d.ts +0 -18
  1202. package/lib/searchbox/searchbox.component.d.ts +0 -23
  1203. package/lib/searchbox/searchbox.module.d.ts +0 -13
  1204. package/lib/selectbox/selectbox.component.d.ts +0 -149
  1205. package/lib/selectbox/selectbox.module.d.ts +0 -15
  1206. package/lib/selectbox/selectbox2.component.d.ts +0 -103
  1207. package/lib/selection-list/selection-list.component.d.ts +0 -32
  1208. package/lib/selection-list/selection-list.module.d.ts +0 -10
  1209. package/lib/switch/switch.component.d.ts +0 -20
  1210. package/lib/switch/switch.module.d.ts +0 -9
  1211. package/lib/tab-page/tab-page-Renderer.component.d.ts +0 -16
  1212. package/lib/tab-page/tab-page-host.component.d.ts +0 -24
  1213. package/lib/tab-page/tab-page.module.d.ts +0 -10
  1214. package/lib/tab-page/tab-page.service.d.ts +0 -30
  1215. package/lib/tab-strip/tab-strip.component.d.ts +0 -28
  1216. package/lib/tab-strip/tab-strip.module.d.ts +0 -8
  1217. package/lib/tab-view/dynamic-tabs.directive.d.ts +0 -16
  1218. package/lib/tab-view/tab-view.component.d.ts +0 -26
  1219. package/lib/tab-view/tab-view.module.d.ts +0 -10
  1220. package/lib/tab-view/tab.component.d.ts +0 -12
  1221. package/lib/textarea/textarea.component.d.ts +0 -12
  1222. package/lib/textarea/textarea.module.d.ts +0 -8
  1223. package/lib/textbox/textbox.component.d.ts +0 -16
  1224. package/lib/textbox/textbox.module.d.ts +0 -11
  1225. package/lib/time-picker/time-picker.component.d.ts +0 -53
  1226. package/lib/time-picker/time-picker.module.d.ts +0 -11
  1227. package/lib/toast/toast-message/toast-message.component.d.ts +0 -18
  1228. package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +0 -8
  1229. package/lib/toast/toast.module.d.ts +0 -9
  1230. package/lib/toast/toast.service.d.ts +0 -18
  1231. package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +0 -12
  1232. package/lib/toolbar/menu/toolbar-menu.component.d.ts +0 -24
  1233. package/lib/toolbar/search/toolbar-search.component.d.ts +0 -16
  1234. package/lib/toolbar/title/toolbar-title.component.d.ts +0 -9
  1235. package/lib/toolbar/toolbar-item.d.ts +0 -3
  1236. package/lib/toolbar/toolbar.component.d.ts +0 -8
  1237. package/lib/toolbar/toolbar.module.d.ts +0 -14
  1238. package/lib/tooltip/tooltip.directive.d.ts +0 -21
  1239. package/lib/tooltip/tooltip.module.d.ts +0 -8
  1240. package/lib/tree-side-menu/tree-side-menu.component.d.ts +0 -111
  1241. package/lib/tree-side-menu/tree-side-menu.module.d.ts +0 -11
  1242. package/lib/tree-view/tree-view.component.d.ts +0 -121
  1243. package/lib/tree-view/tree-view.module.d.ts +0 -11
  1244. package/lib/upload-file/upload-file.component.d.ts +0 -42
  1245. package/lib/upload-file/upload-file.events.d.ts +0 -10
  1246. package/lib/upload-file/upload-file.module.d.ts +0 -13
  1247. package/lib/validation/validation-form.component.d.ts +0 -19
  1248. package/lib/validation/validation-rule.widget.d.ts +0 -23
  1249. package/lib/validation/validation.class.d.ts +0 -16
  1250. package/lib/validation/validation.component.d.ts +0 -25
  1251. package/lib/validation/validation.module.d.ts +0 -11
  1252. /package/{lib/label → label/lib}/label.module.d.ts +0 -0
  1253. /package/{lib/popover → popover/lib}/popover.module.d.ts +0 -0
  1254. /package/{lib/progress-bar → progress-bar/lib}/progress-bar.module.d.ts +0 -0
@@ -1,1102 +0,0 @@
1
- import { AXConfig, AXDateTime } from '@acorex/core';
2
- import { ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
3
- import { AXValidatableComponent, } from '../base/element.class';
4
- import { AXValueEvent } from '../base/events.class';
5
- import { AXCalendarBoxComponent } from '../calendar/calendar-box/calendar-box.component';
6
- import { AXDropdownComponent } from '../dropdown/dropdown.component';
7
- import { AXTextBoxComponent } from '../textbox/textbox.component';
8
- import { AXValidation } from '../validation/validation.component';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- import * as i2 from "../dropdown/dropdown.component";
12
- import * as i3 from "../calendar/calendar-box/calendar-box.component";
13
- import * as i4 from "../button/button.component";
14
- import * as i5 from "../textbox/textbox.component";
15
- export class AXDataPickerChangeEvent extends AXValueEvent {
16
- isUserChange;
17
- }
18
- export class AXDatePickerComponent extends AXValidatableComponent {
19
- ref;
20
- cdr;
21
- dropdown;
22
- calendarRef;
23
- input;
24
- dayStyle = [];
25
- dayMinMaxResoan = '';
26
- // mmddyyyy: any = [/[0-1]/, /[0-9]/, '-', /[0-1]/, /[0-9]/, '-', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];
27
- yyyyMMdd = '0000/00/00';
28
- ddMMyyyy = '00/00/0000';
29
- yyyyddMM = '0000-00-00';
30
- // yyyyMMdd1: any = [/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '/', /[0-1]/, /[0-9]/, '/', /[0-3]/, /[0-9]/];
31
- // ddMMyyyy2: any = [/[0-3]/, /[0-9]/, '/', /[0-1]/, /[0-9]/, '/', /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/];
32
- // yyyyddMM3: any = [/[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/, '/', /[0-3]/, /[0-9]/, '/', /[0-1]/, /[0-9]/];
33
- _contentValidation;
34
- _validation;
35
- get validation() {
36
- return this._validation ? this._validation : this._contentValidation;
37
- }
38
- set validation(v) {
39
- this._validation = v;
40
- }
41
- placeholder = '';
42
- min;
43
- max;
44
- readonly;
45
- disabled;
46
- allowClear = false;
47
- textAlign = null;
48
- showToday = false;
49
- selectableHoliday = true;
50
- dateType;
51
- showTodayButton = true;
52
- openByClick = false;
53
- cursorPosition = 0;
54
- model = null;
55
- text;
56
- _renderPicker = false;
57
- constructor(ref, cdr) {
58
- super();
59
- this.ref = ref;
60
- this.cdr = cdr;
61
- // set defaults
62
- if (AXConfig.get('dateTime.type')) {
63
- this.type = AXConfig.get('dateTime.type');
64
- }
65
- }
66
- size = 'md';
67
- typeChange = new EventEmitter();
68
- _type = 'gregorian';
69
- get type() {
70
- return this._type;
71
- }
72
- set type(v) {
73
- if (v != this._type) {
74
- this._type = v;
75
- if (this._value) {
76
- this.value = this._value.date;
77
- }
78
- this._setDateType();
79
- this.typeChange.emit(v);
80
- }
81
- }
82
- selectToday() {
83
- this.value = new Date();
84
- }
85
- focus() {
86
- // this.dropdown.focus();
87
- this.input.focus();
88
- }
89
- convertMaskToDate(text) {
90
- if (this.type == 'jalali') {
91
- var d = new AXDateTime().convertStringToGregorian(text, 'YYYY/M/D');
92
- }
93
- else {
94
- var d = new Date(new AXDateTime(text, 'gregorian').toISOString());
95
- }
96
- return d;
97
- }
98
- convertMask(date) {
99
- let y;
100
- let m;
101
- let d;
102
- switch (this.dateType) {
103
- case this.yyyyMMdd:
104
- y = date.slice(0, 4);
105
- m = date.slice(5, 7);
106
- d = date.slice(8, 10);
107
- break;
108
- case this.ddMMyyyy:
109
- y = date.slice(6, 10);
110
- m = date.slice(3, 5);
111
- d = date.slice(0, 2);
112
- break;
113
- case this.yyyyddMM:
114
- y = date.slice(0, 4);
115
- m = date.slice(8, 10);
116
- d = date.slice(5, 7);
117
- break;
118
- }
119
- return { year: y, monnth: m, day: d };
120
- }
121
- textChange(e) {
122
- this.text = e.value;
123
- const date = this.convertMask(this.text);
124
- if (this.text &&
125
- this.text.indexOf('_') === -1 &&
126
- this.text.length == 10 &&
127
- this.type == 'jalali') {
128
- this.userChange = e.isUserChange;
129
- this.value = this.convertMaskToDate(date.year + '-' + date.monnth + '-' + date.day);
130
- }
131
- else if (this.text &&
132
- this.text.indexOf('_') === -1 &&
133
- this.text.length == 10 &&
134
- this.type == 'gregorian') {
135
- this.userChange = e.isUserChange;
136
- this.value = this.convertMaskToDate(date.year + '-' + date.monnth + '-' + date.day);
137
- }
138
- }
139
- ngOnInit() {
140
- this._setDateType();
141
- }
142
- ngAfterViewInit() {
143
- setTimeout(() => {
144
- this.text = this._value?.toString();
145
- if (this.showToday && !this.value) {
146
- this.selectToday();
147
- }
148
- this.cdr.markForCheck();
149
- });
150
- }
151
- ngAfterContentInit() {
152
- this.initValidation(this.ref, 'value', this.validation);
153
- }
154
- clear() {
155
- this.userChange = true;
156
- this.value = null;
157
- }
158
- userChange = false;
159
- onValueChanged = new EventEmitter();
160
- valueChange = new EventEmitter();
161
- _value;
162
- get value() {
163
- return this._value?.date;
164
- }
165
- set value(v) {
166
- this.validate();
167
- const oldValue = this._value;
168
- const old = this.value;
169
- if (v) {
170
- this._value = new AXDateTime(v, this.type);
171
- }
172
- else {
173
- this._value = null;
174
- }
175
- let unValidDate = false;
176
- if (this.max || this.min) {
177
- unValidDate = this.isInMInMaxRange(AXDateTime.convert(v));
178
- }
179
- if (!unValidDate) {
180
- if ((!v && oldValue) ||
181
- (this._value && !this._value.equal(oldValue, 'day'))) {
182
- this.text = this._value?.toString();
183
- setTimeout(() => {
184
- this.valueChange.emit(v);
185
- this.onValueChanged.emit({
186
- component: this,
187
- oldValue: old,
188
- value: v,
189
- isUserChange: this.userChange,
190
- });
191
- }, 100);
192
- }
193
- }
194
- else {
195
- this.text = '';
196
- }
197
- this.userChange = false;
198
- }
199
- _setDateType() {
200
- switch (this.dateType) {
201
- case 'yyyyMMdd':
202
- this.dateType = this.yyyyMMdd;
203
- break;
204
- case 'ddMMyyyy':
205
- this.dateType = this.ddMMyyyy;
206
- break;
207
- case 'yyyyddMM':
208
- this.dateType = this.yyyyddMM;
209
- break;
210
- default:
211
- if (this.type == 'gregorian') {
212
- this.dateType = this.ddMMyyyy;
213
- }
214
- else if (this.type == 'jalali') {
215
- this.dateType = this.yyyyMMdd;
216
- }
217
- break;
218
- }
219
- }
220
- isInMInMaxRange(d) {
221
- let r = false;
222
- if (d !== undefined) {
223
- if (this.min && !this.max) {
224
- r =
225
- d.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1;
226
- }
227
- if (this.max && !this.min) {
228
- r =
229
- d.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1;
230
- }
231
- if (this.min && this.max) {
232
- r =
233
- d.compaireNew(new AXDateTime(this.min, this.type), 'YMD', this.type) === -1 ||
234
- d.compaireNew(new AXDateTime(this.max, this.type), 'YMD', this.type) === 1;
235
- }
236
- }
237
- return r;
238
- }
239
- onDateChange(e) {
240
- this.userChange = true;
241
- this.dropdown.close();
242
- //this.clearValidationStyle(this.ref.nativeElement);
243
- }
244
- onClick(e) {
245
- this.userChange = true;
246
- this.dropdown.close();
247
- }
248
- onStartfocus() {
249
- if (this.text == undefined || this.text == null || this.text == '') {
250
- this.input.input.nativeElement.style.caretColor = 'transparent';
251
- setTimeout(() => {
252
- this.setCaretPosition(this.input.input.nativeElement, 0);
253
- this.cursorPosition = 0;
254
- this.input.input.nativeElement.style.caretColor = 'auto';
255
- }, 0);
256
- }
257
- }
258
- handleInputFocus() {
259
- if (this.openByClick) {
260
- this._renderPicker = true;
261
- this.dropdown.open();
262
- }
263
- else {
264
- this.onStartfocus();
265
- }
266
- // this.input.input.nativeElement.focus();
267
- }
268
- handleInputBlur() {
269
- if (this.text && this.text.indexOf('_') != -1) {
270
- this.text = '';
271
- this.value = null;
272
- }
273
- }
274
- handleButtonClick() {
275
- this._renderPicker = true;
276
- setTimeout(() => {
277
- this.dropdown.toggle();
278
- });
279
- }
280
- handleKeyPress(e) {
281
- if (e.type == 'keydown' || e.type == 'keypress' || e.type == 'keyup') {
282
- if (e.key === 'Delete') {
283
- e.preventDefault();
284
- }
285
- if (e.key === 'Backspace') {
286
- this.clear();
287
- }
288
- if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {
289
- if (this.input.input.nativeElement.selectionStart ||
290
- this.input.input.nativeElement.selectionStart === 0) {
291
- this.cursorPosition = this.input.input.nativeElement.selectionStart;
292
- }
293
- }
294
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
295
- e.preventDefault();
296
- e.stopPropagation();
297
- }
298
- }
299
- const inputChar = String.fromCharCode(e.charCode);
300
- if (this.text != undefined) {
301
- const ind1 = this.text.charAt(0);
302
- const ind2 = this.text.charAt(1);
303
- const ind3 = this.text.charAt(2);
304
- const ind4 = this.text.charAt(3);
305
- const ind5 = this.text.charAt(4);
306
- const ind6 = this.text.charAt(5);
307
- const ind7 = this.text.charAt(6);
308
- const ind8 = this.text.charAt(7);
309
- const ind9 = this.text.charAt(8);
310
- const ind10 = this.text.charAt(9);
311
- switch (this.dateType) {
312
- case this.yyyyMMdd:
313
- if (e.type == 'keypress') {
314
- this.handleClick();
315
- if ((ind6 == '1' && ind7 == '_' && inputChar >= '3') ||
316
- (((ind6 == '0' && ind7 == '_') ||
317
- (ind9 == '0' && ind10 == '_')) &&
318
- inputChar == '0')) {
319
- e.preventDefault();
320
- }
321
- else if (ind9 == '3' && ind10 == '_') {
322
- if (ind6 + ind7 <= '06' && inputChar >= '2') {
323
- e.preventDefault();
324
- }
325
- else if (ind6 + ind7 > '06' && inputChar >= '1') {
326
- e.preventDefault();
327
- }
328
- }
329
- }
330
- if (this.text.indexOf('_') === -1 && this.text !== '') {
331
- if (e.type === 'keydown') {
332
- if (e.key === 'ArrowUp') {
333
- if (this.cursorPosition <= 4) {
334
- this.text =
335
- String(Number(ind1 + ind2 + ind3 + ind4) + 1) +
336
- ind5 +
337
- ind6 +
338
- ind7 +
339
- ind8 +
340
- ind9 +
341
- ind10;
342
- }
343
- if (this.cursorPosition >= 5 && this.cursorPosition <= 7) {
344
- if (Number(ind6 + ind7) < 12) {
345
- if (Number(ind6 + ind7) < 9) {
346
- this.text =
347
- ind1 +
348
- ind2 +
349
- ind3 +
350
- ind4 +
351
- ind5 +
352
- '0' +
353
- String(Number(ind6 + ind7) + 1) +
354
- ind8 +
355
- ind9 +
356
- ind10;
357
- }
358
- else {
359
- this.text =
360
- ind1 +
361
- ind2 +
362
- ind3 +
363
- ind4 +
364
- ind5 +
365
- String(Number(ind6 + ind7) + 1) +
366
- ind8 +
367
- ind9 +
368
- ind10;
369
- }
370
- }
371
- else {
372
- this.text =
373
- ind1 +
374
- ind2 +
375
- ind3 +
376
- ind4 +
377
- ind5 +
378
- '01' +
379
- ind8 +
380
- ind9 +
381
- ind10;
382
- }
383
- }
384
- if (this.cursorPosition >= 8) {
385
- if (Number(ind9 + ind10) < 31) {
386
- if (Number(ind9 + ind10) < 9) {
387
- this.text =
388
- ind1 +
389
- ind2 +
390
- ind3 +
391
- ind4 +
392
- ind5 +
393
- ind6 +
394
- ind7 +
395
- ind8 +
396
- '0' +
397
- String(Number(ind9 + ind10) + 1);
398
- }
399
- else {
400
- this.text =
401
- ind1 +
402
- ind2 +
403
- ind3 +
404
- ind4 +
405
- ind5 +
406
- ind6 +
407
- ind7 +
408
- ind8 +
409
- String(Number(ind9 + ind10) + 1);
410
- }
411
- }
412
- else {
413
- this.text =
414
- ind1 +
415
- ind2 +
416
- ind3 +
417
- ind4 +
418
- ind5 +
419
- ind6 +
420
- ind7 +
421
- ind8 +
422
- '01';
423
- }
424
- }
425
- // this.input.input.nativeElement.style.caretColor = 'transparent';
426
- // setTimeout(() => {
427
- // this.setCaret();
428
- // e.preventDefault();
429
- // this.input.input.nativeElement.style.caretColor = 'auto';
430
- // }, 0);
431
- // e.preventDefault();
432
- }
433
- else if (e.key === 'ArrowDown') {
434
- if (this.cursorPosition <= 4) {
435
- this.text =
436
- String(Number(ind1 + ind2 + ind3 + ind4) - 1) +
437
- ind5 +
438
- ind6 +
439
- ind7 +
440
- ind8 +
441
- ind9 +
442
- ind10;
443
- }
444
- else if (this.cursorPosition > 4 &&
445
- this.cursorPosition <= 7) {
446
- if (Number(ind6 + ind7) > 1) {
447
- if (Number(ind6 + ind7) < 11) {
448
- this.text =
449
- ind1 +
450
- ind2 +
451
- ind3 +
452
- ind4 +
453
- ind5 +
454
- '0' +
455
- String(Number(ind6 + ind7) - 1) +
456
- ind8 +
457
- ind9 +
458
- ind10;
459
- }
460
- else {
461
- this.text =
462
- ind1 +
463
- ind2 +
464
- ind3 +
465
- ind4 +
466
- ind5 +
467
- String(Number(ind6 + ind7) - 1) +
468
- ind8 +
469
- ind9 +
470
- ind10;
471
- }
472
- }
473
- else {
474
- this.text =
475
- ind1 +
476
- ind2 +
477
- ind3 +
478
- ind4 +
479
- ind5 +
480
- '12' +
481
- ind8 +
482
- ind9 +
483
- ind10;
484
- }
485
- }
486
- else if (this.cursorPosition >= 8) {
487
- if (Number(ind9 + ind10) > 1) {
488
- if (Number(ind9 + ind10) < 11) {
489
- this.text =
490
- ind1 +
491
- ind2 +
492
- ind3 +
493
- ind4 +
494
- ind5 +
495
- ind6 +
496
- ind7 +
497
- ind8 +
498
- '0' +
499
- String(Number(ind9 + ind10) - 1);
500
- }
501
- else {
502
- this.text =
503
- ind1 +
504
- ind2 +
505
- ind3 +
506
- ind4 +
507
- ind5 +
508
- ind6 +
509
- ind7 +
510
- ind8 +
511
- String(Number(ind9 + ind10) - 1);
512
- }
513
- }
514
- else {
515
- this.text =
516
- ind1 +
517
- ind2 +
518
- ind3 +
519
- ind4 +
520
- ind5 +
521
- ind6 +
522
- ind7 +
523
- ind8 +
524
- '31';
525
- }
526
- }
527
- // this.input.input.nativeElement.style.caretColor = 'transparent';
528
- // setTimeout(() => {
529
- // this.setCaret();
530
- // this.input.input.nativeElement.style.caretColor = 'auto';
531
- // }, 0);
532
- }
533
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
534
- this.input.input.nativeElement.style.caretColor = 'transparent';
535
- e.preventDefault();
536
- e.stopPropagation();
537
- return false;
538
- }
539
- }
540
- }
541
- if (e.type === 'keyup') {
542
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
543
- this.setCaret();
544
- this.input.input.nativeElement.style.caretColor = 'auto';
545
- e.preventDefault();
546
- e.stopPropagation();
547
- }
548
- }
549
- break;
550
- case this.ddMMyyyy:
551
- if (e.type === 'keypress') {
552
- this.handleClick();
553
- if ((ind4 == '1' && ind5 == '_' && inputChar >= '3') ||
554
- (((ind1 == '0' && ind2 == '_') || (ind4 == '0' && ind5 == '_')) &&
555
- inputChar == '0')) {
556
- e.preventDefault();
557
- }
558
- else {
559
- if (ind1 == '3' && ind2 == '_' && inputChar >= '2') {
560
- e.preventDefault();
561
- }
562
- }
563
- }
564
- if (this.text.indexOf('_') === -1 && this.text !== '') {
565
- if (e.type === 'keydown') {
566
- if (e.key === 'ArrowUp') {
567
- if (this.cursorPosition >= 6) {
568
- this.text =
569
- ind1 +
570
- ind2 +
571
- ind3 +
572
- ind4 +
573
- ind5 +
574
- ind6 +
575
- String(Number(ind7 + ind8 + ind9 + ind10) + 1);
576
- }
577
- if (this.cursorPosition > 2 && this.cursorPosition <= 5) {
578
- if (Number(ind4 + ind5) < 12) {
579
- if (Number(ind4 + ind5) < 9) {
580
- this.text =
581
- ind1 +
582
- ind2 +
583
- ind3 +
584
- '0' +
585
- String(Number(ind4 + ind5) + 1) +
586
- ind6 +
587
- ind7 +
588
- ind8 +
589
- ind9 +
590
- ind10;
591
- }
592
- else {
593
- this.text =
594
- ind1 +
595
- ind2 +
596
- ind3 +
597
- String(Number(ind4 + ind5) + 1) +
598
- ind6 +
599
- ind7 +
600
- ind8 +
601
- ind9 +
602
- ind10;
603
- }
604
- }
605
- else {
606
- this.text =
607
- ind1 +
608
- ind2 +
609
- ind3 +
610
- '01' +
611
- ind6 +
612
- ind7 +
613
- ind8 +
614
- ind9 +
615
- ind10;
616
- }
617
- }
618
- if (this.cursorPosition <= 2) {
619
- if (Number(ind1 + ind2) < 31) {
620
- if (Number(ind1 + ind2) < 9) {
621
- this.text =
622
- '0' +
623
- String(Number(ind1 + ind2) + 1) +
624
- ind3 +
625
- ind4 +
626
- ind5 +
627
- ind6 +
628
- ind7 +
629
- ind8 +
630
- ind9 +
631
- ind10;
632
- }
633
- else {
634
- this.text =
635
- String(Number(ind1 + ind2) + 1) +
636
- ind3 +
637
- ind4 +
638
- ind5 +
639
- ind6 +
640
- ind7 +
641
- ind8 +
642
- ind9 +
643
- ind10;
644
- }
645
- }
646
- else {
647
- this.text =
648
- '01' +
649
- ind3 +
650
- ind4 +
651
- ind5 +
652
- ind6 +
653
- ind7 +
654
- ind8 +
655
- ind9 +
656
- ind10;
657
- }
658
- }
659
- // this.input.input.nativeElement.style.caretColor = 'transparent';
660
- // setTimeout(() => {
661
- // this.setCaret();
662
- // this.input.input.nativeElement.style.caretColor = 'auto';
663
- // }, 0);
664
- }
665
- else if (e.key === 'ArrowDown') {
666
- if (this.cursorPosition >= 6) {
667
- this.text =
668
- ind1 +
669
- ind2 +
670
- ind3 +
671
- ind4 +
672
- ind5 +
673
- ind6 +
674
- String(Number(ind7 + ind8 + ind9 + ind10) - 1);
675
- }
676
- else if (this.cursorPosition > 2 &&
677
- this.cursorPosition <= 5) {
678
- if (Number(ind4 + ind5) > 1) {
679
- if (Number(ind4 + ind5) < 11) {
680
- this.text =
681
- ind1 +
682
- ind2 +
683
- ind3 +
684
- '0' +
685
- String(Number(ind4 + ind5) - 1) +
686
- ind6 +
687
- ind7 +
688
- ind8 +
689
- ind9 +
690
- ind10;
691
- }
692
- else {
693
- this.text =
694
- ind1 +
695
- ind2 +
696
- ind3 +
697
- String(Number(ind4 + ind5) - 1) +
698
- ind6 +
699
- ind7 +
700
- ind8 +
701
- ind9 +
702
- ind10;
703
- }
704
- }
705
- else {
706
- this.text =
707
- ind1 +
708
- ind2 +
709
- ind3 +
710
- '12' +
711
- ind6 +
712
- ind7 +
713
- ind8 +
714
- ind9 +
715
- ind10;
716
- }
717
- }
718
- else if (this.cursorPosition <= 2) {
719
- if (Number(ind1 + ind2) > 1) {
720
- if (Number(ind1 + ind2) < 11) {
721
- this.text =
722
- '0' +
723
- String(Number(ind1 + ind2) - 1) +
724
- ind3 +
725
- ind4 +
726
- ind5 +
727
- ind6 +
728
- ind7 +
729
- ind8 +
730
- ind9 +
731
- ind10;
732
- }
733
- else {
734
- this.text =
735
- String(Number(ind1 + ind2) - 1) +
736
- ind3 +
737
- ind4 +
738
- ind5 +
739
- ind6 +
740
- ind7 +
741
- ind8 +
742
- ind9 +
743
- ind10;
744
- }
745
- }
746
- else {
747
- this.text =
748
- '31' +
749
- ind3 +
750
- ind4 +
751
- ind5 +
752
- ind6 +
753
- ind7 +
754
- ind8 +
755
- ind9 +
756
- ind10;
757
- }
758
- }
759
- // this.input.input.nativeElement.style.caretColor = 'transparent';
760
- // setTimeout(() => {
761
- // this.setCaret();
762
- // this.input.input.nativeElement.style.caretColor = 'auto';
763
- // }, 0);
764
- }
765
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
766
- this.input.input.nativeElement.style.caretColor = 'transparent';
767
- e.preventDefault();
768
- e.stopPropagation();
769
- return false;
770
- }
771
- }
772
- }
773
- if (e.type === 'keyup') {
774
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
775
- this.setCaret();
776
- this.input.input.nativeElement.style.caretColor = 'auto';
777
- e.preventDefault();
778
- e.stopPropagation();
779
- }
780
- }
781
- break;
782
- case this.yyyyddMM:
783
- if (e.type === 'keypress') {
784
- if ((ind9 === '1' && ind10 == '_' && inputChar >= '3') ||
785
- (((ind6 == '0' && ind7 == '_') || (ind9 == '0' && ind10)) &&
786
- inputChar == '0')) {
787
- e.preventDefault();
788
- }
789
- else if (ind6 == '3' && ind7 == '_' && inputChar >= '2') {
790
- e.preventDefault();
791
- }
792
- setTimeout(() => {
793
- this.handleClick();
794
- }, 0);
795
- }
796
- if (this.text.indexOf('_') === -1 && this.text !== '') {
797
- if (e.type === 'keydown') {
798
- if (e.key === 'ArrowUp') {
799
- if (this.cursorPosition <= 4) {
800
- this.text =
801
- String(Number(ind1 + ind2 + ind3 + ind4) + 1) +
802
- ind5 +
803
- ind6 +
804
- ind7 +
805
- ind8 +
806
- ind9 +
807
- ind10;
808
- }
809
- if (this.cursorPosition > 4 && this.cursorPosition <= 7) {
810
- if (Number(ind6 + ind7) < 31) {
811
- if (Number(ind6 + ind7) < 9) {
812
- this.text =
813
- ind1 +
814
- ind2 +
815
- ind3 +
816
- ind4 +
817
- ind5 +
818
- '0' +
819
- String(Number(ind6 + ind7) + 1) +
820
- ind8 +
821
- ind9 +
822
- ind10;
823
- }
824
- else {
825
- this.text =
826
- ind1 +
827
- ind2 +
828
- ind3 +
829
- ind4 +
830
- ind5 +
831
- String(Number(ind6 + ind7) + 1) +
832
- ind8 +
833
- ind9 +
834
- ind10;
835
- }
836
- }
837
- else {
838
- this.text =
839
- ind1 +
840
- ind2 +
841
- ind3 +
842
- ind4 +
843
- ind5 +
844
- '01' +
845
- ind8 +
846
- ind9 +
847
- ind10;
848
- }
849
- }
850
- if (this.cursorPosition >= 8) {
851
- if (Number(ind9 + ind10) < 12) {
852
- if (Number(ind9 + ind10) < 9) {
853
- this.text =
854
- ind1 +
855
- ind2 +
856
- ind3 +
857
- ind4 +
858
- ind5 +
859
- ind6 +
860
- ind7 +
861
- ind8 +
862
- '0' +
863
- String(Number(ind9 + ind10) + 1);
864
- }
865
- else {
866
- this.text =
867
- ind1 +
868
- ind2 +
869
- ind3 +
870
- ind4 +
871
- ind5 +
872
- ind6 +
873
- ind7 +
874
- ind8 +
875
- String(Number(ind9 + ind10) + 1);
876
- }
877
- }
878
- else {
879
- this.text =
880
- ind1 +
881
- ind2 +
882
- ind3 +
883
- ind4 +
884
- ind5 +
885
- ind6 +
886
- ind7 +
887
- ind8 +
888
- '01';
889
- }
890
- }
891
- // this.input.input.nativeElement.style.caretColor = 'transparent';
892
- // setTimeout(() => {
893
- // this.setCaret();
894
- // this.input.input.nativeElement.style.caretColor = 'auto';
895
- // }, 0);
896
- }
897
- else if (e.key === 'ArrowDown') {
898
- if (this.cursorPosition <= 4) {
899
- this.text =
900
- String(Number(ind1 + ind2 + ind3 + ind4) - 1) +
901
- ind5 +
902
- ind6 +
903
- ind7 +
904
- ind8 +
905
- ind9 +
906
- ind10;
907
- }
908
- else if (this.cursorPosition > 4 &&
909
- this.cursorPosition <= 7) {
910
- if (Number(ind6 + ind7) > 1) {
911
- if (Number(ind6 + ind7) < 11) {
912
- this.text =
913
- ind1 +
914
- ind2 +
915
- ind3 +
916
- ind4 +
917
- ind5 +
918
- '0' +
919
- String(Number(ind6 + ind7) - 1) +
920
- ind8 +
921
- ind9 +
922
- ind10;
923
- }
924
- else {
925
- this.text =
926
- ind1 +
927
- ind2 +
928
- ind3 +
929
- ind4 +
930
- ind5 +
931
- String(Number(ind6 + ind7) - 1) +
932
- ind8 +
933
- ind9 +
934
- ind10;
935
- }
936
- }
937
- else {
938
- this.text =
939
- ind1 +
940
- ind2 +
941
- ind3 +
942
- ind4 +
943
- ind5 +
944
- '31' +
945
- ind8 +
946
- ind9 +
947
- ind10;
948
- }
949
- }
950
- else if (this.cursorPosition >= 8) {
951
- if (Number(ind9 + ind10) > 1) {
952
- if (Number(ind9 + ind10) < 11) {
953
- this.text =
954
- ind1 +
955
- ind2 +
956
- ind3 +
957
- ind4 +
958
- ind5 +
959
- ind6 +
960
- ind7 +
961
- ind8 +
962
- '0' +
963
- String(Number(ind9 + ind10) - 1);
964
- }
965
- else {
966
- this.text =
967
- ind1 +
968
- ind2 +
969
- ind3 +
970
- ind4 +
971
- ind5 +
972
- ind6 +
973
- ind7 +
974
- ind8 +
975
- String(Number(ind9 + ind10) - 1);
976
- }
977
- }
978
- else {
979
- this.text =
980
- ind1 +
981
- ind2 +
982
- ind3 +
983
- ind4 +
984
- ind5 +
985
- ind6 +
986
- ind7 +
987
- ind8 +
988
- '12';
989
- }
990
- }
991
- // this.input.input.nativeElement.style.caretColor = 'transparent';
992
- // setTimeout(() => {
993
- // this.setCaret();
994
- // this.input.input.nativeElement.style.caretColor = 'auto';
995
- // }, 0);
996
- }
997
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
998
- this.input.input.nativeElement.style.caretColor = 'transparent';
999
- e.preventDefault();
1000
- e.stopPropagation();
1001
- return false;
1002
- }
1003
- }
1004
- }
1005
- if (e.type === 'keyup') {
1006
- if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
1007
- this.setCaret();
1008
- this.input.input.nativeElement.style.caretColor = 'auto';
1009
- e.preventDefault();
1010
- e.stopPropagation();
1011
- }
1012
- }
1013
- break;
1014
- default:
1015
- break;
1016
- }
1017
- }
1018
- }
1019
- handleClick() {
1020
- if (this.input.input.nativeElement.selectionStart ||
1021
- this.input.input.nativeElement.selectionStart === 0) {
1022
- this.cursorPosition = this.input.input.nativeElement.selectionStart;
1023
- }
1024
- }
1025
- setCaretPosition(ctrl, pos) {
1026
- if (ctrl.setSelectionRange) {
1027
- ctrl.focus();
1028
- ctrl.setSelectionRange(pos, pos);
1029
- }
1030
- }
1031
- setCaret() {
1032
- this.setCaretPosition(this.input.input.nativeElement, this.cursorPosition);
1033
- }
1034
- navigate(value) {
1035
- this.calendarRef.navigate(value);
1036
- }
1037
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXDatePickerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1038
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AXDatePickerComponent, selector: "ax-date-picker", inputs: { dayStyle: "dayStyle", dayMinMaxResoan: "dayMinMaxResoan", validation: "validation", placeholder: "placeholder", min: "min", max: "max", readonly: "readonly", disabled: "disabled", allowClear: "allowClear", textAlign: "textAlign", showToday: "showToday", selectableHoliday: "selectableHoliday", dateType: "dateType", showTodayButton: "showTodayButton", openByClick: "openByClick", size: "size", type: "type", value: "value" }, outputs: { typeChange: "typeChange", onValueChanged: "onValueChanged", valueChange: "valueChange" }, host: { styleAttribute: "width: 100%" }, providers: [
1039
- { provide: AXValidatableComponent, useExisting: AXDatePickerComponent },
1040
- ], queries: [{ propertyName: "_contentValidation", first: true, predicate: AXValidation, descendants: true, static: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "calendarRef", first: true, predicate: ["calendarRef"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-drop-down\n [readonly]=\"readonly\"\n [fitParent]=\"false\"\n [size]=\"size\"\n [showDropDownButton]=\"false\"\n icon=\"far fa-calendar-alt\"\n #dropdown\n maxHeight=\"unset\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container header>\n <ax-text-box\n #input\n [textAlign]=\"textAlign\"\n [(value)]=\"text\"\n [mask]=\"dateType\"\n [readonly]=\"false\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n (onkey)=\"handleKeyPress($event)\"\n (onFocus)=\"handleInputFocus()\"\n (click)=\"handleClick()\"\n (onBlur)=\"handleInputBlur()\"\n (onValueChanged)=\"textChange($event)\"\n ></ax-text-box>\n </ng-container>\n <ng-container panel>\n <ax-calendar-box\n #calendarRef\n *ngIf=\"_renderPicker\"\n [showTodayButton]=\"showTodayButton\"\n [selectableHoliday]=\"selectableHoliday\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"size\"\n (onClick)=\"onClick($event)\"\n (onValueChanged)=\"onDateChange($event)\"\n [type]=\"type\"\n [(value)]=\"value\"\n [dayStyle]=\"dayStyle\"\n [dayMinMaxResoan]=\"dayMinMaxResoan\"\n >\n </ax-calendar-box>\n </ng-container>\n <ng-container end>\n <ax-button\n end\n *ngIf=\"allowClear && value\"\n [disabled]=\"disabled\"\n icon=\"far fa-times icon\"\n type=\"blank danger\"\n (click)=\"clear()\"\n [size]=\"size\"\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ax-button\n end\n icon=\"far fa-calendar-alt icon\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [tabIndex]=\"-1\"\n ></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-drop-down>\n", styles: [".ax-dropdown-container-bordered .ax-calendar-container{border:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXDropdownComponent, selector: "ax-drop-down", inputs: ["rtl", "readonly", "loading", "dropdownWidth"], outputs: ["dropdownToggle", "onButtonClick"] }, { kind: "component", type: i3.AXCalendarBoxComponent, selector: "ax-calendar-box", inputs: ["size", "type", "locale", "dir", "min", "max", "selectableHoliday", "dayStyle", "dayMinMaxResoan", "showTodayButton", "view", "depth", "value"], outputs: ["onValueChanged", "onClick", "valueChange"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["type", "icon", "submitBehavior", "cancelBehavior", "block", "loading", "selected"] }, { kind: "component", type: i5.AXTextBoxComponent, selector: "ax-text-box", inputs: ["mask", "showMask", "type", "maxLength", "maskGuid", "maskPlaceholder", "maskKeepCharPositions"] }], encapsulation: i0.ViewEncapsulation.None });
1041
- }
1042
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AXDatePickerComponent, decorators: [{
1043
- type: Component,
1044
- args: [{ selector: 'ax-date-picker', encapsulation: ViewEncapsulation.None, providers: [
1045
- { provide: AXValidatableComponent, useExisting: AXDatePickerComponent },
1046
- ], host: { style: 'width: 100%' }, template: "<ax-drop-down\n [readonly]=\"readonly\"\n [fitParent]=\"false\"\n [size]=\"size\"\n [showDropDownButton]=\"false\"\n icon=\"far fa-calendar-alt\"\n #dropdown\n maxHeight=\"unset\"\n>\n <ng-container start>\n <ng-content select=\"[start]\"> </ng-content>\n </ng-container>\n <ng-container header>\n <ax-text-box\n #input\n [textAlign]=\"textAlign\"\n [(value)]=\"text\"\n [mask]=\"dateType\"\n [readonly]=\"false\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [size]=\"size\"\n (onkey)=\"handleKeyPress($event)\"\n (onFocus)=\"handleInputFocus()\"\n (click)=\"handleClick()\"\n (onBlur)=\"handleInputBlur()\"\n (onValueChanged)=\"textChange($event)\"\n ></ax-text-box>\n </ng-container>\n <ng-container panel>\n <ax-calendar-box\n #calendarRef\n *ngIf=\"_renderPicker\"\n [showTodayButton]=\"showTodayButton\"\n [selectableHoliday]=\"selectableHoliday\"\n [min]=\"min\"\n [max]=\"max\"\n [size]=\"size\"\n (onClick)=\"onClick($event)\"\n (onValueChanged)=\"onDateChange($event)\"\n [type]=\"type\"\n [(value)]=\"value\"\n [dayStyle]=\"dayStyle\"\n [dayMinMaxResoan]=\"dayMinMaxResoan\"\n >\n </ax-calendar-box>\n </ng-container>\n <ng-container end>\n <ax-button\n end\n *ngIf=\"allowClear && value\"\n [disabled]=\"disabled\"\n icon=\"far fa-times icon\"\n type=\"blank danger\"\n (click)=\"clear()\"\n [size]=\"size\"\n [tabIndex]=\"-1\"\n >\n </ax-button>\n <ax-button\n end\n icon=\"far fa-calendar-alt icon\"\n type=\"light blank\"\n (click)=\"handleButtonClick()\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [tabIndex]=\"-1\"\n ></ax-button>\n <ng-content select=\"[end]\"> </ng-content>\n </ng-container>\n</ax-drop-down>\n", styles: [".ax-dropdown-container-bordered .ax-calendar-container{border:none!important}\n"] }]
1047
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { dropdown: [{
1048
- type: ViewChild,
1049
- args: ['dropdown', { static: true }]
1050
- }], calendarRef: [{
1051
- type: ViewChild,
1052
- args: ['calendarRef']
1053
- }], input: [{
1054
- type: ViewChild,
1055
- args: ['input', { static: true }]
1056
- }], dayStyle: [{
1057
- type: Input
1058
- }], dayMinMaxResoan: [{
1059
- type: Input
1060
- }], _contentValidation: [{
1061
- type: ContentChild,
1062
- args: [AXValidation, { static: true }]
1063
- }], validation: [{
1064
- type: Input
1065
- }], placeholder: [{
1066
- type: Input
1067
- }], min: [{
1068
- type: Input
1069
- }], max: [{
1070
- type: Input
1071
- }], readonly: [{
1072
- type: Input
1073
- }], disabled: [{
1074
- type: Input
1075
- }], allowClear: [{
1076
- type: Input
1077
- }], textAlign: [{
1078
- type: Input
1079
- }], showToday: [{
1080
- type: Input
1081
- }], selectableHoliday: [{
1082
- type: Input
1083
- }], dateType: [{
1084
- type: Input
1085
- }], showTodayButton: [{
1086
- type: Input
1087
- }], openByClick: [{
1088
- type: Input
1089
- }], size: [{
1090
- type: Input
1091
- }], typeChange: [{
1092
- type: Output
1093
- }], type: [{
1094
- type: Input
1095
- }], onValueChanged: [{
1096
- type: Output
1097
- }], valueChange: [{
1098
- type: Output
1099
- }], value: [{
1100
- type: Input
1101
- }] } });
1102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7OztBQUVsRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsWUFBa0I7SUFDN0QsWUFBWSxDQUFVO0NBQ3ZCO0FBWUQsTUFBTSxPQUFPLHFCQUNYLFNBQVEsc0JBQXNCO0lBZ0ZWO0lBQXlCO0lBNUU3QyxRQUFRLENBQXNCO0lBRUosV0FBVyxDQUF5QjtJQUc5RCxLQUFLLENBQXFCO0lBRzFCLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFHZCxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBRXJCLHNHQUFzRztJQUN0RyxRQUFRLEdBQVEsWUFBWSxDQUFDO0lBQzdCLFFBQVEsR0FBUSxZQUFZLENBQUM7SUFDN0IsUUFBUSxHQUFRLFlBQVksQ0FBQztJQUM3Qix1R0FBdUc7SUFDdkcsdUdBQXVHO0lBQ3ZHLHVHQUF1RztJQUcvRixrQkFBa0IsQ0FBZTtJQUNqQyxXQUFXLENBQWU7SUFFbEMsSUFDVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxDQUFlO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFUSxXQUFXLEdBQVcsRUFBRSxDQUFDO0lBR2xDLEdBQUcsQ0FBTztJQUdWLEdBQUcsQ0FBTztJQUdWLFFBQVEsQ0FBVTtJQUdsQixRQUFRLENBQVU7SUFHbEIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUc1QixTQUFTLEdBQTRCLElBQUksQ0FBQztJQUcxQyxTQUFTLEdBQVksS0FBSyxDQUFDO0lBRzNCLGlCQUFpQixHQUFZLElBQUksQ0FBQztJQUdsQyxRQUFRLENBQU07SUFHZCxlQUFlLEdBQVksSUFBSSxDQUFDO0lBR2hDLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFN0IsY0FBYyxHQUFXLENBQUMsQ0FBQztJQUUzQixLQUFLLEdBQVEsSUFBSSxDQUFDO0lBQ2xCLElBQUksQ0FBUztJQUViLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFL0IsWUFBb0IsR0FBZSxFQUFVLEdBQXNCO1FBQ2pFLEtBQUssRUFBRSxDQUFDO1FBRFUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBRWpFLGVBQWU7UUFDZixJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUdELElBQUksR0FBa0IsSUFBSSxDQUFDO0lBRzNCLFVBQVUsR0FBaUMsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFFdEUsS0FBSyxHQUFtQixXQUFXLENBQUM7SUFFNUMsSUFDVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLElBQUksQ0FBQyxDQUFpQjtRQUMvQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDL0I7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsS0FBSztRQUNILHlCQUF5QjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFZO1FBQzVCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLEVBQUU7WUFDekIsSUFBSSxDQUFDLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDckU7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVk7UUFDdEIsSUFBSSxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxDQUFDO1FBQ04sUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssSUFBSSxDQUFDLFFBQVE7Z0JBQ2hCLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckIsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RCLE1BQU07WUFDUixLQUFLLElBQUksQ0FBQyxRQUFRO2dCQUNoQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckIsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixNQUFNO1lBQ1IsS0FBSyxJQUFJLENBQUMsUUFBUTtnQkFDaEIsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckIsTUFBTTtTQUNUO1FBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLElBQ0UsSUFBSSxDQUFDLElBQUk7WUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsRUFDckI7WUFDQSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFFakMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQy9DLENBQUM7U0FDSDthQUFNLElBQ0wsSUFBSSxDQUFDLElBQUk7WUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFDeEI7WUFDQSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQy9DLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlO1FBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUNwQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVLEdBQVksS0FBSyxDQUFDO0lBRzVCLGNBQWMsR0FDWixJQUFJLFlBQVksRUFBMkIsQ0FBQztJQUc5QyxXQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFbkQsTUFBTSxDQUFhO0lBQzNCLElBQ1csS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLENBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV2QixJQUFJLENBQUMsRUFBRTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEI7UUFDRCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDeEIsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixJQUNFLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDO2dCQUNoQixDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFDcEQ7Z0JBQ0EsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUNwQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQzt3QkFDdkIsU0FBUyxFQUFFLElBQUk7d0JBQ2YsUUFBUSxFQUFFLEdBQUc7d0JBQ2IsS0FBSyxFQUFFLENBQUM7d0JBQ1IsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVO3FCQUM5QixDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1Q7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU8sWUFBWTtRQUNsQixRQUFRLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDOUIsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUM5QixNQUFNO1lBRVI7Z0JBQ0UsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2lCQUMvQjtxQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxFQUFFO29CQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQy9CO2dCQUNELE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNkLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN6QixDQUFDO29CQUNDLENBQUMsQ0FBQyxXQUFXLENBQ1gsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ25DLEtBQUssRUFDTCxJQUFJLENBQUMsSUFBSSxDQUNWLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDWjtZQUNELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLENBQUM7b0JBQ0MsQ0FBQyxDQUFDLFdBQVcsQ0FDWCxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDbkMsS0FBSyxFQUNMLElBQUksQ0FBQyxJQUFJLENBQ1YsS0FBSyxDQUFDLENBQUM7YUFDWDtZQUNELElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN4QixDQUFDO29CQUNDLENBQUMsQ0FBQyxXQUFXLENBQ1gsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ25DLEtBQUssRUFDTCxJQUFJLENBQUMsSUFBSSxDQUNWLEtBQUssQ0FBQyxDQUFDO3dCQUNSLENBQUMsQ0FBQyxXQUFXLENBQ1gsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ25DLEtBQUssRUFDTCxJQUFJLENBQUMsSUFBSSxDQUNWLEtBQUssQ0FBQyxDQUFDO2FBQ1g7U0FDRjtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFlBQVksQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV0QixvREFBb0Q7SUFDdEQsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO1lBQ2hFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUMzRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDUDtJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO1FBRUQsMENBQTBDO0lBQzVDLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLENBQWdCO1FBQzdCLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUU7WUFDcEUsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDdEIsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3BCO1lBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtnQkFDekIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2Q7WUFDRCxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssWUFBWSxFQUFFO2dCQUNuRCxJQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjO29CQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxLQUFLLENBQUMsRUFDbkQ7b0JBQ0EsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO2lCQUNyRTthQUNGO1lBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtnQkFDaEQsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDckI7U0FDRjtRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNyQixLQUFLLElBQUksQ0FBQyxRQUFRO29CQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFO3dCQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ25CLElBQ0UsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksU0FBUyxJQUFJLEdBQUcsQ0FBQzs0QkFDaEQsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDO2dDQUM1QixDQUFDLElBQUksSUFBSSxHQUFHLElBQUksS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dDQUM5QixTQUFTLElBQUksR0FBRyxDQUFDLEVBQ25COzRCQUNBLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzt5QkFDcEI7NkJBQU0sSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUU7NEJBQ3RDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLEdBQUcsRUFBRTtnQ0FDM0MsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDOzZCQUNwQjtpQ0FBTSxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxJQUFJLFNBQVMsSUFBSSxHQUFHLEVBQUU7Z0NBQ2pELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzs2QkFDcEI7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTt3QkFDckQsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTs0QkFDeEIsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTtnQ0FDdkIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDNUIsSUFBSSxDQUFDLElBQUk7d0NBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7NENBQzdDLElBQUk7NENBQ0osSUFBSTs0Q0FDSixJQUFJOzRDQUNKLElBQUk7NENBQ0osSUFBSTs0Q0FDSixLQUFLLENBQUM7aUNBQ1Q7Z0NBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDeEQsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTt3Q0FDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTs0Q0FDM0IsSUFBSSxDQUFDLElBQUk7Z0RBQ1AsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLEdBQUc7b0RBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29EQUMvQixJQUFJO29EQUNKLElBQUk7b0RBQ0osS0FBSyxDQUFDO3lDQUNUOzZDQUFNOzRDQUNMLElBQUksQ0FBQyxJQUFJO2dEQUNQLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0RBQy9CLElBQUk7b0RBQ0osSUFBSTtvREFDSixLQUFLLENBQUM7eUNBQ1Q7cUNBQ0Y7eUNBQU07d0NBQ0wsSUFBSSxDQUFDLElBQUk7NENBQ1AsSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLEtBQUssQ0FBQztxQ0FDVDtpQ0FDRjtnQ0FDRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxFQUFFO29DQUM1QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dDQUM3QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRDQUM1QixJQUFJLENBQUMsSUFBSTtnREFDUCxJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osR0FBRztvREFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt5Q0FDcEM7NkNBQU07NENBQ0wsSUFBSSxDQUFDLElBQUk7Z0RBQ1AsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3lDQUNwQztxQ0FDRjt5Q0FBTTt3Q0FDTCxJQUFJLENBQUMsSUFBSTs0Q0FDUCxJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSSxDQUFDO3FDQUNSO2lDQUNGO2dDQUNELG1FQUFtRTtnQ0FDbkUscUJBQXFCO2dDQUNyQixxQkFBcUI7Z0NBQ3JCLHdCQUF3QjtnQ0FDeEIsOERBQThEO2dDQUM5RCxTQUFTO2dDQUNULHNCQUFzQjs2QkFDdkI7aUNBQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtnQ0FDaEMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDNUIsSUFBSSxDQUFDLElBQUk7d0NBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7NENBQzdDLElBQUk7NENBQ0osSUFBSTs0Q0FDSixJQUFJOzRDQUNKLElBQUk7NENBQ0osSUFBSTs0Q0FDSixLQUFLLENBQUM7aUNBQ1Q7cUNBQU0sSUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUM7b0NBQ3ZCLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxFQUN4QjtvQ0FDQSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dDQUMzQixJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFOzRDQUM1QixJQUFJLENBQUMsSUFBSTtnREFDUCxJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osR0FBRztvREFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0RBQy9CLElBQUk7b0RBQ0osSUFBSTtvREFDSixLQUFLLENBQUM7eUNBQ1Q7NkNBQU07NENBQ0wsSUFBSSxDQUFDLElBQUk7Z0RBQ1AsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvREFDL0IsSUFBSTtvREFDSixJQUFJO29EQUNKLEtBQUssQ0FBQzt5Q0FDVDtxQ0FDRjt5Q0FBTTt3Q0FDTCxJQUFJLENBQUMsSUFBSTs0Q0FDUCxJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osS0FBSyxDQUFDO3FDQUNUO2lDQUNGO3FDQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUU7b0NBQ25DLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7d0NBQzVCLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUU7NENBQzdCLElBQUksQ0FBQyxJQUFJO2dEQUNQLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixHQUFHO29EQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3lDQUNwQzs2Q0FBTTs0Q0FDTCxJQUFJLENBQUMsSUFBSTtnREFDUCxJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUNBQ3BDO3FDQUNGO3lDQUFNO3dDQUNMLElBQUksQ0FBQyxJQUFJOzRDQUNQLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJLENBQUM7cUNBQ1I7aUNBQ0Y7Z0NBQ0QsbUVBQW1FO2dDQUVuRSxxQkFBcUI7Z0NBQ3JCLHFCQUFxQjtnQ0FDckIsOERBQThEO2dDQUM5RCxTQUFTOzZCQUNWOzRCQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7Z0NBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztnQ0FDaEUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dDQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7Z0NBQ3BCLE9BQU8sS0FBSyxDQUFDOzZCQUNkO3lCQUNGO3FCQUNGO29CQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7d0JBQ3RCLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7NEJBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzs0QkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDOzRCQUN6RCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7NEJBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQzt5QkFDckI7cUJBQ0Y7b0JBQ0QsTUFBTTtnQkFDUixLQUFLLElBQUksQ0FBQyxRQUFRO29CQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO3dCQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ25CLElBQ0UsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksU0FBUyxJQUFJLEdBQUcsQ0FBQzs0QkFDaEQsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztnQ0FDN0QsU0FBUyxJQUFJLEdBQUcsQ0FBQyxFQUNuQjs0QkFDQSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7eUJBQ3BCOzZCQUFNOzRCQUNMLElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLFNBQVMsSUFBSSxHQUFHLEVBQUU7Z0NBQ2xELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzs2QkFDcEI7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTt3QkFDckQsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTs0QkFDeEIsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTtnQ0FDdkIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDNUIsSUFBSSxDQUFDLElBQUk7d0NBQ1AsSUFBSTs0Q0FDSixJQUFJOzRDQUNKLElBQUk7NENBQ0osSUFBSTs0Q0FDSixJQUFJOzRDQUNKLElBQUk7NENBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQ0FDbEQ7Z0NBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDdkQsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTt3Q0FDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTs0Q0FDM0IsSUFBSSxDQUFDLElBQUk7Z0RBQ1AsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osR0FBRztvREFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0RBQy9CLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osS0FBSyxDQUFDO3lDQUNUOzZDQUFNOzRDQUNMLElBQUksQ0FBQyxJQUFJO2dEQUNQLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvREFDL0IsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixLQUFLLENBQUM7eUNBQ1Q7cUNBQ0Y7eUNBQU07d0NBQ0wsSUFBSSxDQUFDLElBQUk7NENBQ1AsSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLEtBQUssQ0FBQztxQ0FDVDtpQ0FDRjtnQ0FDRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxFQUFFO29DQUM1QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO3dDQUM1QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRDQUMzQixJQUFJLENBQUMsSUFBSTtnREFDUCxHQUFHO29EQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvREFDL0IsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixLQUFLLENBQUM7eUNBQ1Q7NkNBQU07NENBQ0wsSUFBSSxDQUFDLElBQUk7Z0RBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29EQUMvQixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLEtBQUssQ0FBQzt5Q0FDVDtxQ0FDRjt5Q0FBTTt3Q0FDTCxJQUFJLENBQUMsSUFBSTs0Q0FDUCxJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osS0FBSyxDQUFDO3FDQUNUO2lDQUNGO2dDQUNELG1FQUFtRTtnQ0FDbkUscUJBQXFCO2dDQUNyQixxQkFBcUI7Z0NBQ3JCLDhEQUE4RDtnQ0FDOUQsU0FBUzs2QkFDVjtpQ0FBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO2dDQUNoQyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxFQUFFO29DQUM1QixJQUFJLENBQUMsSUFBSTt3Q0FDUCxJQUFJOzRDQUNKLElBQUk7NENBQ0osSUFBSTs0Q0FDSixJQUFJOzRDQUNKLElBQUk7NENBQ0osSUFBSTs0Q0FDSixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lDQUNsRDtxQ0FBTSxJQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQztvQ0FDdkIsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQ3hCO29DQUNBLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7d0NBQzNCLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7NENBQzVCLElBQUksQ0FBQyxJQUFJO2dEQUNQLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLEdBQUc7b0RBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29EQUMvQixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLEtBQUssQ0FBQzt5Q0FDVDs2Q0FBTTs0Q0FDTCxJQUFJLENBQUMsSUFBSTtnREFDUCxJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0RBQy9CLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osS0FBSyxDQUFDO3lDQUNUO3FDQUNGO3lDQUFNO3dDQUNMLElBQUksQ0FBQyxJQUFJOzRDQUNQLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixLQUFLLENBQUM7cUNBQ1Q7aUNBQ0Y7cUNBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDbkMsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTt3Q0FDM0IsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTs0Q0FDNUIsSUFBSSxDQUFDLElBQUk7Z0RBQ1AsR0FBRztvREFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0RBQy9CLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osS0FBSyxDQUFDO3lDQUNUOzZDQUFNOzRDQUNMLElBQUksQ0FBQyxJQUFJO2dEQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvREFDL0IsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixLQUFLLENBQUM7eUNBQ1Q7cUNBQ0Y7eUNBQU07d0NBQ0wsSUFBSSxDQUFDLElBQUk7NENBQ1AsSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLEtBQUssQ0FBQztxQ0FDVDtpQ0FDRjtnQ0FDRCxtRUFBbUU7Z0NBQ25FLHFCQUFxQjtnQ0FDckIscUJBQXFCO2dDQUNyQiw4REFBOEQ7Z0NBQzlELFNBQVM7NkJBQ1Y7NEJBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtnQ0FDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO2dDQUNoRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7Z0NBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxLQUFLLENBQUM7NkJBQ2Q7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTt3QkFDdEIsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTs0QkFDaEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDOzRCQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7NEJBQ3pELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzs0QkFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO3lCQUNyQjtxQkFDRjtvQkFDRCxNQUFNO2dCQUVSLEtBQUssSUFBSSxDQUFDLFFBQVE7b0JBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7d0JBQ3pCLElBQ0UsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssSUFBSSxHQUFHLElBQUksU0FBUyxJQUFJLEdBQUcsQ0FBQzs0QkFDbEQsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDO2dDQUN2RCxTQUFTLElBQUksR0FBRyxDQUFDLEVBQ25COzRCQUNBLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzt5QkFDcEI7NkJBQU0sSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksU0FBUyxJQUFJLEdBQUcsRUFBRTs0QkFDekQsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO3lCQUNwQjt3QkFDRCxVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDckIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUNQO29CQUNELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7d0JBQ3JELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7NEJBQ3hCLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0NBQ3ZCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUU7b0NBQzVCLElBQUksQ0FBQyxJQUFJO3dDQUNQLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRDQUM3QyxJQUFJOzRDQUNKLElBQUk7NENBQ0osSUFBSTs0Q0FDSixJQUFJOzRDQUNKLElBQUk7NENBQ0osS0FBSyxDQUFDO2lDQUNUO2dDQUNELElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUU7b0NBQ3ZELElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7d0NBQzVCLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7NENBQzNCLElBQUksQ0FBQyxJQUFJO2dEQUNQLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixHQUFHO29EQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvREFDL0IsSUFBSTtvREFDSixJQUFJO29EQUNKLEtBQUssQ0FBQzt5Q0FDVDs2Q0FBTTs0Q0FDTCxJQUFJLENBQUMsSUFBSTtnREFDUCxJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29EQUMvQixJQUFJO29EQUNKLElBQUk7b0RBQ0osS0FBSyxDQUFDO3lDQUNUO3FDQUNGO3lDQUFNO3dDQUNMLElBQUksQ0FBQyxJQUFJOzRDQUNQLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixLQUFLLENBQUM7cUNBQ1Q7aUNBQ0Y7Z0NBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDNUIsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRTt3Q0FDN0IsSUFBSSxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTs0Q0FDNUIsSUFBSSxDQUFDLElBQUk7Z0RBQ1AsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLEdBQUc7b0RBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUNBQ3BDOzZDQUFNOzRDQUNMLElBQUksQ0FBQyxJQUFJO2dEQUNQLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt5Q0FDcEM7cUNBQ0Y7eUNBQU07d0NBQ0wsSUFBSSxDQUFDLElBQUk7NENBQ1AsSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUksQ0FBQztxQ0FDUjtpQ0FDRjtnQ0FDRCxtRUFBbUU7Z0NBQ25FLHFCQUFxQjtnQ0FDckIscUJBQXFCO2dDQUNyQiw4REFBOEQ7Z0NBQzlELFNBQVM7NkJBQ1Y7aUNBQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtnQ0FDaEMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQ0FDNUIsSUFBSSxDQUFDLElBQUk7d0NBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7NENBQzdDLElBQUk7NENBQ0osSUFBSTs0Q0FDSixJQUFJOzRDQUNKLElBQUk7NENBQ0osSUFBSTs0Q0FDSixLQUFLLENBQUM7aUNBQ1Q7cUNBQU0sSUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUM7b0NBQ3ZCLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxFQUN4QjtvQ0FDQSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dDQUMzQixJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFOzRDQUM1QixJQUFJLENBQUMsSUFBSTtnREFDUCxJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osR0FBRztvREFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0RBQy9CLElBQUk7b0RBQ0osSUFBSTtvREFDSixLQUFLLENBQUM7eUNBQ1Q7NkNBQU07NENBQ0wsSUFBSSxDQUFDLElBQUk7Z0RBQ1AsSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvREFDL0IsSUFBSTtvREFDSixJQUFJO29EQUNKLEtBQUssQ0FBQzt5Q0FDVDtxQ0FDRjt5Q0FBTTt3Q0FDTCxJQUFJLENBQUMsSUFBSTs0Q0FDUCxJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osS0FBSyxDQUFDO3FDQUNUO2lDQUNGO3FDQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUU7b0NBQ25DLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7d0NBQzVCLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUU7NENBQzdCLElBQUksQ0FBQyxJQUFJO2dEQUNQLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixHQUFHO29EQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3lDQUNwQzs2Q0FBTTs0Q0FDTCxJQUFJLENBQUMsSUFBSTtnREFDUCxJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osSUFBSTtvREFDSixJQUFJO29EQUNKLElBQUk7b0RBQ0osTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUNBQ3BDO3FDQUNGO3lDQUFNO3dDQUNMLElBQUksQ0FBQyxJQUFJOzRDQUNQLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJO2dEQUNKLElBQUk7Z0RBQ0osSUFBSTtnREFDSixJQUFJLENBQUM7cUNBQ1I7aUNBQ0Y7Z0NBQ0QsbUVBQW1FO2dDQUNuRSxxQkFBcUI7Z0NBQ3JCLHFCQUFxQjtnQ0FDckIsOERBQThEO2dDQUM5RCxTQUFTOzZCQUNWOzRCQUNELElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7Z0NBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztnQ0FDaEUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dDQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7Z0NBQ3BCLE9BQU8sS0FBSyxDQUFDOzZCQUNkO3lCQUNGO3FCQUNGO29CQUNELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7d0JBQ3RCLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7NEJBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzs0QkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDOzRCQUN6RCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7NEJBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQzt5QkFDckI7cUJBQ0Y7b0JBQ0QsTUFBTTtnQkFDUjtvQkFDRSxNQUFNO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYztZQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxLQUFLLENBQUMsRUFDbkQ7WUFDQSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUc7UUFDeEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUEwQjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO3dHQWpsQ1UscUJBQXFCOzRGQUFyQixxQkFBcUIsMm1CQUxyQjtZQUNULEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRTtTQUN4RSwwRUE2QmEsWUFBWSxxWUMvRDVCLGkzREF1RUE7OzRGRGxDYSxxQkFBcUI7a0JBVmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUdYLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyx1QkFBdUIsRUFBRTtxQkFDeEUsUUFDSyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7aUlBTzlCLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdiLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFHeEIsS0FBSztzQkFESixTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXBDLFFBQVE7c0JBRFAsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBWUUsa0JBQWtCO3NCQUR6QixZQUFZO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS2pDLFVBQVU7c0JBRHBCLEtBQUs7Z0JBU0csV0FBVztzQkFBbkIsS0FBSztnQkFHTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQW1CTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxNQUFNO2dCQU1JLElBQUk7c0JBRGQsS0FBSztnQkFrSE4sY0FBYztzQkFEYixNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTtnQkFLSSxLQUFLO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENhbGVuZGFyVHlwZSwgQVhDb25maWcsIEFYRGF0ZVRpbWUgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCxcbiAgQVhFbGVtZW50U2l6ZSxcbiAgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCxcbn0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcbmltcG9ydCB7IEFYQ2FsZW5kYXJCb3hDb21wb25lbnQgfSBmcm9tICcuLi9jYWxlbmRhci9jYWxlbmRhci1ib3gvY2FsZW5kYXItYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4uL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBBWERhdGFQaWNrZXJDaGFuZ2VFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxEYXRlPiB7XG4gIGlzVXNlckNoYW5nZTogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZGF0ZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVQaWNrZXJDb21wb25lbnQgfSxcbiAgXSxcbiAgaG9zdDogeyBzdHlsZTogJ3dpZHRoOiAxMDAlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVQaWNrZXJDb21wb25lbnRcbiAgZXh0ZW5kcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQVhCYXNlU2l6YWJsZUNvbXBvbmVudFxue1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGRyb3Bkb3duOiBBWERyb3Bkb3duQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyUmVmJykgY2FsZW5kYXJSZWY6IEFYQ2FsZW5kYXJCb3hDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBpbnB1dDogQVhUZXh0Qm94Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIGRheVN0eWxlID0gW107XG5cbiAgQElucHV0KClcbiAgZGF5TWluTWF4UmVzb2FuID0gJyc7XG5cbiAgLy8gbW1kZHl5eXk6IGFueSA9IFsvWzAtMV0vLCAvWzAtOV0vLCAnLScsIC9bMC0xXS8sIC9bMC05XS8sICctJywgL1swLTldLywgL1swLTldLywgL1swLTldLywgL1swLTldL107XG4gIHl5eXlNTWRkOiBhbnkgPSAnMDAwMC8wMC8wMCc7XG4gIGRkTU15eXl5OiBhbnkgPSAnMDAvMDAvMDAwMCc7XG4gIHl5eXlkZE1NOiBhbnkgPSAnMDAwMC0wMC0wMCc7XG4gIC8vIHl5eXlNTWRkMTogYW55ID0gWy9bMC05XS8sIC9bMC05XS8sIC9bMC05XS8sIC9bMC05XS8sICcvJywgL1swLTFdLywgL1swLTldLywgJy8nLCAvWzAtM10vLCAvWzAtOV0vXTtcbiAgLy8gZGRNTXl5eXkyOiBhbnkgPSBbL1swLTNdLywgL1swLTldLywgJy8nLCAvWzAtMV0vLCAvWzAtOV0vLCAnLycsIC9bMC05XS8sIC9bMC05XS8sIC9bMC05XS8sIC9bMC05XS9dO1xuICAvLyB5eXl5ZGRNTTM6IGFueSA9IFsvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vLCAnLycsIC9bMC0zXS8sIC9bMC05XS8sICcvJywgL1swLTFdLywgL1swLTldL107XG5cbiAgQENvbnRlbnRDaGlsZChBWFZhbGlkYXRpb24sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgX2NvbnRlbnRWYWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XG4gIHByaXZhdGUgX3ZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbGlkYXRpb24oKTogQVhWYWxpZGF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvbiA/IHRoaXMuX3ZhbGlkYXRpb24gOiB0aGlzLl9jb250ZW50VmFsaWRhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvbih2OiBBWFZhbGlkYXRpb24pIHtcbiAgICB0aGlzLl92YWxpZGF0aW9uID0gdjtcbiAgfVxuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBtaW46IERhdGU7XG5cbiAgQElucHV0KClcbiAgbWF4OiBEYXRlO1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGFsbG93Q2xlYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICB0ZXh0QWxpZ246ICdyaWdodCcgfCAnbGVmdCcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBzaG93VG9kYXk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZWxlY3RhYmxlSG9saWRheTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZGF0ZVR5cGU6IGFueTtcblxuICBASW5wdXQoKVxuICBzaG93VG9kYXlCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIG9wZW5CeUNsaWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XG5cbiAgbW9kZWw6IGFueSA9IG51bGw7XG4gIHRleHQ6IHN0cmluZztcblxuICBfcmVuZGVyUGlja2VyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gICAgLy8gc2V0IGRlZmF1bHRzXG4gICAgaWYgKEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUudHlwZScpKSB7XG4gICAgICB0aGlzLnR5cGUgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLnR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcblxuICBAT3V0cHV0KClcbiAgdHlwZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFYQ2FsZW5kYXJUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDYWxlbmRhclR5cGU+KCk7XG5cbiAgcHJpdmF0ZSBfdHlwZTogQVhDYWxlbmRhclR5cGUgPSAnZ3JlZ29yaWFuJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHR5cGUoKTogQVhDYWxlbmRhclR5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgcHVibGljIHNldCB0eXBlKHY6IEFYQ2FsZW5kYXJUeXBlKSB7XG4gICAgaWYgKHYgIT0gdGhpcy5fdHlwZSkge1xuICAgICAgdGhpcy5fdHlwZSA9IHY7XG4gICAgICBpZiAodGhpcy5fdmFsdWUpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX3ZhbHVlLmRhdGU7XG4gICAgICB9XG4gICAgICB0aGlzLl9zZXREYXRlVHlwZSgpO1xuICAgICAgdGhpcy50eXBlQ2hhbmdlLmVtaXQodik7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0VG9kYXkoKSB7XG4gICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKCk7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICAvLyB0aGlzLmRyb3Bkb3duLmZvY3VzKCk7XG4gICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICB9XG5cbiAgY29udmVydE1hc2tUb0RhdGUodGV4dDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PSAnamFsYWxpJykge1xuICAgICAgdmFyIGQgPSBuZXcgQVhEYXRlVGltZSgpLmNvbnZlcnRTdHJpbmdUb0dyZWdvcmlhbih0ZXh0LCAnWVlZWS9NL0QnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGQgPSBuZXcgRGF0ZShuZXcgQVhEYXRlVGltZSh0ZXh0LCAnZ3JlZ29yaWFuJykudG9JU09TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGQ7XG4gIH1cblxuICBjb252ZXJ0TWFzayhkYXRlOiBzdHJpbmcpIHtcbiAgICBsZXQgeTtcbiAgICBsZXQgbTtcbiAgICBsZXQgZDtcbiAgICBzd2l0Y2ggKHRoaXMuZGF0ZVR5cGUpIHtcbiAgICAgIGNhc2UgdGhpcy55eXl5TU1kZDpcbiAgICAgICAgeSA9IGRhdGUuc2xpY2UoMCwgNCk7XG4gICAgICAgIG0gPSBkYXRlLnNsaWNlKDUsIDcpO1xuICAgICAgICBkID0gZGF0ZS5zbGljZSg4LCAxMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLmRkTU15eXl5OlxuICAgICAgICB5ID0gZGF0ZS5zbGljZSg2LCAxMCk7XG4gICAgICAgIG0gPSBkYXRlLnNsaWNlKDMsIDUpO1xuICAgICAgICBkID0gZGF0ZS5zbGljZSgwLCAyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIHRoaXMueXl5eWRkTU06XG4gICAgICAgIHkgPSBkYXRlLnNsaWNlKDAsIDQpO1xuICAgICAgICBtID0gZGF0ZS5zbGljZSg4LCAxMCk7XG4gICAgICAgIGQgPSBkYXRlLnNsaWNlKDUsIDcpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4geyB5ZWFyOiB5LCBtb25udGg6IG0sIGRheTogZCB9O1xuICB9XG5cbiAgdGV4dENoYW5nZShlKSB7XG4gICAgdGhpcy50ZXh0ID0gZS52YWx1ZTtcbiAgICBjb25zdCBkYXRlID0gdGhpcy5jb252ZXJ0TWFzayh0aGlzLnRleHQpO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy50ZXh0ICYmXG4gICAgICB0aGlzLnRleHQuaW5kZXhPZignXycpID09PSAtMSAmJlxuICAgICAgdGhpcy50ZXh0Lmxlbmd0aCA9PSAxMCAmJlxuICAgICAgdGhpcy50eXBlID09ICdqYWxhbGknXG4gICAgKSB7XG4gICAgICB0aGlzLnVzZXJDaGFuZ2UgPSBlLmlzVXNlckNoYW5nZTtcblxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY29udmVydE1hc2tUb0RhdGUoXG4gICAgICAgIGRhdGUueWVhciArICctJyArIGRhdGUubW9ubnRoICsgJy0nICsgZGF0ZS5kYXlcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMudGV4dCAmJlxuICAgICAgdGhpcy50ZXh0LmluZGV4T2YoJ18nKSA9PT0gLTEgJiZcbiAgICAgIHRoaXMudGV4dC5sZW5ndGggPT0gMTAgJiZcbiAgICAgIHRoaXMudHlwZSA9PSAnZ3JlZ29yaWFuJ1xuICAgICkge1xuICAgICAgdGhpcy51c2VyQ2hhbmdlID0gZS5pc1VzZXJDaGFuZ2U7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb252ZXJ0TWFza1RvRGF0ZShcbiAgICAgICAgZGF0ZS55ZWFyICsgJy0nICsgZGF0ZS5tb25udGggKyAnLScgKyBkYXRlLmRheVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXREYXRlVHlwZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50ZXh0ID0gdGhpcy5fdmFsdWU/LnRvU3RyaW5nKCk7XG4gICAgICBpZiAodGhpcy5zaG93VG9kYXkgJiYgIXRoaXMudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RUb2RheSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0VmFsaWRhdGlvbih0aGlzLnJlZiwgJ3ZhbHVlJywgdGhpcy52YWxpZGF0aW9uKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gIH1cblxuICB1c2VyQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhEYXRhUGlja2VyQ2hhbmdlRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YVBpY2tlckNoYW5nZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBBWERhdGVUaW1lO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZT8uZGF0ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IERhdGUpIHtcbiAgICB0aGlzLnZhbGlkYXRlKCk7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgICBjb25zdCBvbGQgPSB0aGlzLnZhbHVlO1xuXG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV3IEFYRGF0ZVRpbWUodiwgdGhpcy50eXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xuICAgIH1cbiAgICBsZXQgdW5WYWxpZERhdGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5tYXggfHwgdGhpcy5taW4pIHtcbiAgICAgIHVuVmFsaWREYXRlID0gdGhpcy5pc0luTUluTWF4UmFuZ2UoQVhEYXRlVGltZS5jb252ZXJ0KHYpKTtcbiAgICB9XG5cbiAgICBpZiAoIXVuVmFsaWREYXRlKSB7XG4gICAgICBpZiAoXG4gICAgICAgICghdiAmJiBvbGRWYWx1ZSkgfHxcbiAgICAgICAgKHRoaXMuX3ZhbHVlICYmICF0aGlzLl92YWx1ZS5lcXVhbChvbGRWYWx1ZSwgJ2RheScpKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMudGV4dCA9IHRoaXMuX3ZhbHVlPy50b1N0cmluZygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XG4gICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICAgIG9sZFZhbHVlOiBvbGQsXG4gICAgICAgICAgICB2YWx1ZTogdixcbiAgICAgICAgICAgIGlzVXNlckNoYW5nZTogdGhpcy51c2VyQ2hhbmdlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LCAxMDApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRleHQgPSAnJztcbiAgICB9XG4gICAgdGhpcy51c2VyQ2hhbmdlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9zZXREYXRlVHlwZSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuZGF0ZVR5cGUpIHtcbiAgICAgIGNhc2UgJ3l5eXlNTWRkJzpcbiAgICAgICAgdGhpcy5kYXRlVHlwZSA9IHRoaXMueXl5eU1NZGQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGRNTXl5eXknOlxuICAgICAgICB0aGlzLmRhdGVUeXBlID0gdGhpcy5kZE1NeXl5eTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd5eXl5ZGRNTSc6XG4gICAgICAgIHRoaXMuZGF0ZVR5cGUgPSB0aGlzLnl5eXlkZE1NO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSAnZ3JlZ29yaWFuJykge1xuICAgICAgICAgIHRoaXMuZGF0ZVR5cGUgPSB0aGlzLmRkTU15eXl5O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PSAnamFsYWxpJykge1xuICAgICAgICAgIHRoaXMuZGF0ZVR5cGUgPSB0aGlzLnl5eXlNTWRkO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlzSW5NSW5NYXhSYW5nZShkKSB7XG4gICAgbGV0IHIgPSBmYWxzZTtcbiAgICBpZiAoZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5taW4gJiYgIXRoaXMubWF4KSB7XG4gICAgICAgIHIgPVxuICAgICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLm1pbiwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgICdZTUQnLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSA9PT0gLTE7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5tYXggJiYgIXRoaXMubWluKSB7XG4gICAgICAgIHIgPVxuICAgICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLm1heCwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgICdZTUQnLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSA9PT0gMTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1pbiAmJiB0aGlzLm1heCkge1xuICAgICAgICByID1cbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5taW4sIHRoaXMudHlwZSksXG4gICAgICAgICAgICAnWU1EJyxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgPT09IC0xIHx8XG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMubWF4LCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgJ1lNRCcsXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApID09PSAxO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfVxuXG4gIG9uRGF0ZUNoYW5nZShlKSB7XG4gICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcbiAgICB0aGlzLmRyb3Bkb3duLmNsb3NlKCk7XG5cbiAgICAvL3RoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5yZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBvbkNsaWNrKGUpIHtcbiAgICB0aGlzLnVzZXJDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMuZHJvcGRvd24uY2xvc2UoKTtcbiAgfVxuXG4gIG9uU3RhcnRmb2N1cygpIHtcbiAgICBpZiAodGhpcy50ZXh0ID09IHVuZGVmaW5lZCB8fCB0aGlzLnRleHQgPT0gbnVsbCB8fCB0aGlzLnRleHQgPT0gJycpIHtcbiAgICAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LCAwKTtcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlSW5wdXRGb2N1cygpIHtcbiAgICBpZiAodGhpcy5vcGVuQnlDbGljaykge1xuICAgICAgdGhpcy5fcmVuZGVyUGlja2VyID0gdHJ1ZTtcbiAgICAgIHRoaXMuZHJvcGRvd24ub3BlbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uU3RhcnRmb2N1cygpO1xuICAgIH1cblxuICAgIC8vIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG4gIGhhbmRsZUlucHV0Qmx1cigpIHtcbiAgICBpZiAodGhpcy50ZXh0ICYmIHRoaXMudGV4dC5pbmRleE9mKCdfJykgIT0gLTEpIHtcbiAgICAgIHRoaXMudGV4dCA9ICcnO1xuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5fcmVuZGVyUGlja2VyID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGUudHlwZSA9PSAna2V5ZG93bicgfHwgZS50eXBlID09ICdrZXlwcmVzcycgfHwgZS50eXBlID09ICdrZXl1cCcpIHtcbiAgICAgIGlmIChlLmtleSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgICAgaWYgKGUua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9XG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0xlZnQnIHx8IGUua2V5ID09PSAnQXJyb3dSaWdodCcpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fFxuICAgICAgICAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGlucHV0Q2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZS5jaGFyQ29kZSk7XG4gICAgaWYgKHRoaXMudGV4dCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGluZDEgPSB0aGlzLnRleHQuY2hhckF0KDApO1xuICAgICAgY29uc3QgaW5kMiA9IHRoaXMudGV4dC5jaGFyQXQoMSk7XG4gICAgICBjb25zdCBpbmQzID0gdGhpcy50ZXh0LmNoYXJBdCgyKTtcbiAgICAgIGNvbnN0IGluZDQgPSB0aGlzLnRleHQuY2hhckF0KDMpO1xuICAgICAgY29uc3QgaW5kNSA9IHRoaXMudGV4dC5jaGFyQXQoNCk7XG4gICAgICBjb25zdCBpbmQ2ID0gdGhpcy50ZXh0LmNoYXJBdCg1KTtcbiAgICAgIGNvbnN0IGluZDcgPSB0aGlzLnRleHQuY2hhckF0KDYpO1xuICAgICAgY29uc3QgaW5kOCA9IHRoaXMudGV4dC5jaGFyQXQoNyk7XG4gICAgICBjb25zdCBpbmQ5ID0gdGhpcy50ZXh0LmNoYXJBdCg4KTtcbiAgICAgIGNvbnN0IGluZDEwID0gdGhpcy50ZXh0LmNoYXJBdCg5KTtcbiAgICAgIHN3aXRjaCAodGhpcy5kYXRlVHlwZSkge1xuICAgICAgICBjYXNlIHRoaXMueXl5eU1NZGQ6XG4gICAgICAgICAgaWYgKGUudHlwZSA9PSAna2V5cHJlc3MnKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNsaWNrKCk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChpbmQ2ID09ICcxJyAmJiBpbmQ3ID09ICdfJyAmJiBpbnB1dENoYXIgPj0gJzMnKSB8fFxuICAgICAgICAgICAgICAoKChpbmQ2ID09ICcwJyAmJiBpbmQ3ID09ICdfJykgfHxcbiAgICAgICAgICAgICAgICAoaW5kOSA9PSAnMCcgJiYgaW5kMTAgPT0gJ18nKSkgJiZcbiAgICAgICAgICAgICAgICBpbnB1dENoYXIgPT0gJzAnKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kOSA9PSAnMycgJiYgaW5kMTAgPT0gJ18nKSB7XG4gICAgICAgICAgICAgIGlmIChpbmQ2ICsgaW5kNyA8PSAnMDYnICYmIGlucHV0Q2hhciA+PSAnMicpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNiArIGluZDcgPiAnMDYnICYmIGlucHV0Q2hhciA+PSAnMScpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMudGV4dC5pbmRleE9mKCdfJykgPT09IC0xICYmIHRoaXMudGV4dCAhPT0gJycpIHtcbiAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXlkb3duJykge1xuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCkgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDUgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA3KSB7XG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDYgKyBpbmQ3KSA8IDEyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kNiArIGluZDcpIDwgOSkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJzAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKE51bWJlcihpbmQ2ICsgaW5kNykgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICAgICAgICAgICAgJzAxJyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDgpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kOSArIGluZDEwKSA8IDMxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kOSArIGluZDEwKSA8IDkpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kOSArIGluZDEwKSArIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICcwMSc7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICAgICAgICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICAgICAgICAgICAgICAvLyAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAvLyAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgIC8vIH0sIDApO1xuICAgICAgICAgICAgICAgIC8vIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA0KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQpIC0gMSkgK1xuICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgIGluZDEwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID4gNCAmJlxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA3XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDYgKyBpbmQ3KSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ2ICsgaW5kNykgPCAxMSkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJzAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpIC0gMSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKE51bWJlcihpbmQ2ICsgaW5kNykgLSAxKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICAgICAgICAgICAgJzEyJyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDgpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kOSArIGluZDEwKSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ5ICsgaW5kMTApIDwgMTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kOSArIGluZDEwKSAtIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICczMSc7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcblxuICAgICAgICAgICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5zZXRDYXJldCgpO1xuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgLy8gfSwgMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZS50eXBlID09PSAna2V5dXAnKSB7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRDYXJldCgpO1xuICAgICAgICAgICAgICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSB0aGlzLmRkTU15eXl5OlxuICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xpY2soKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKGluZDQgPT0gJzEnICYmIGluZDUgPT0gJ18nICYmIGlucHV0Q2hhciA+PSAnMycpIHx8XG4gICAgICAgICAgICAgICgoKGluZDEgPT0gJzAnICYmIGluZDIgPT0gJ18nKSB8fCAoaW5kNCA9PSAnMCcgJiYgaW5kNSA9PSAnXycpKSAmJlxuICAgICAgICAgICAgICAgIGlucHV0Q2hhciA9PSAnMCcpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKGluZDEgPT0gJzMnICYmIGluZDIgPT0gJ18nICYmIGlucHV0Q2hhciA+PSAnMicpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMudGV4dC5pbmRleE9mKCdfJykgPT09IC0xICYmIHRoaXMudGV4dCAhPT0gJycpIHtcbiAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdrZXlkb3duJykge1xuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDYpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kNyArIGluZDggKyBpbmQ5ICsgaW5kMTApICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID4gMiAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDUpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kNCArIGluZDUpIDwgMTIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ0ICsgaW5kNSkgPCA5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDQgKyBpbmQ1KSArIDEpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kNCArIGluZDUpICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICAgICAgICAgICAnMDEnICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQxMDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMikge1xuICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQxICsgaW5kMikgPCAzMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDEgKyBpbmQyKSA8IDkpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgJzAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kMSArIGluZDIpICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxMDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKE51bWJlcihpbmQxICsgaW5kMikgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICcwMScgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDEwO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XG4gICAgICAgICAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gICB0aGlzLnNldENhcmV0KCk7XG4gICAgICAgICAgICAgICAgLy8gICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAvLyB9LCAwKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA2KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwKSAtIDEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID4gMiAmJlxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA1XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDQgKyBpbmQ1KSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ0ICsgaW5kNSkgPCAxMSkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnMCcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKE51bWJlcihpbmQ0ICsgaW5kNSkgLSAxKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDQgKyBpbmQ1KSAtIDEpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgJzEyJyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDIpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kMSArIGluZDIpID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDEgKyBpbmQyKSA8IDExKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDEgKyBpbmQyKSAtIDEpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kMSArIGluZDIpIC0gMSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAnMzEnICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQxMDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgICAgICAgICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5zZXRDYXJldCgpO1xuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgLy8gfSwgMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZS50eXBlID09PSAna2V5dXAnKSB7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRDYXJldCgpO1xuICAgICAgICAgICAgICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIHRoaXMueXl5eWRkTU06XG4gICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2tleXByZXNzJykge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoaW5kOSA9PT0gJzEnICYmIGluZDEwID09ICdfJyAmJiBpbnB1dENoYXIgPj0gJzMnKSB8fFxuICAgICAgICAgICAgICAoKChpbmQ2ID09ICcwJyAmJiBpbmQ3ID09ICdfJykgfHwgKGluZDkgPT0gJzAnICYmIGluZDEwKSkgJiZcbiAgICAgICAgICAgICAgICBpbnB1dENoYXIgPT0gJzAnKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNiA9PSAnMycgJiYgaW5kNyA9PSAnXycgJiYgaW5wdXRDaGFyID49ICcyJykge1xuICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDbGljaygpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnRleHQuaW5kZXhPZignXycpID09PSAtMSAmJiB0aGlzLnRleHQgIT09ICcnKSB7XG4gICAgICAgICAgICBpZiAoZS50eXBlID09PSAna2V5ZG93bicpIHtcbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA0KSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQpICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgIGluZDEwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+IDQgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA3KSB7XG4gICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDYgKyBpbmQ3KSA8IDMxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kNiArIGluZDcpIDwgOSkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJzAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kNiArIGluZDcpICsgMSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKE51bWJlcihpbmQ2ICsgaW5kNykgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICAgICAgICAgICAgJzAxJyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDgpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kOSArIGluZDEwKSA8IDEyKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kOSArIGluZDEwKSA8IDkpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICcwJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDkgKyBpbmQxMCkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kOSArIGluZDEwKSArIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPVxuICAgICAgICAgICAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDMgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDYgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDcgK1xuICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICcwMSc7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcbiAgICAgICAgICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyAgIHRoaXMuc2V0Q2FyZXQoKTtcbiAgICAgICAgICAgICAgICAvLyAgIHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xuICAgICAgICAgICAgICAgIC8vIH0sIDApO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCkgLSAxKSArXG4gICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICBpbmQ2ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPiA0ICYmXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIoaW5kNiArIGluZDcpID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDYgKyBpbmQ3KSA8IDExKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnMCcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKE51bWJlcihpbmQ2ICsgaW5kNykgLSAxKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMTA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDEgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoTnVtYmVyKGluZDYgKyBpbmQ3KSAtIDEpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kOSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQyICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQzICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ1ICtcbiAgICAgICAgICAgICAgICAgICAgICAnMzEnICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ4ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQ5ICtcbiAgICAgICAgICAgICAgICAgICAgICBpbmQxMDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gOCkge1xuICAgICAgICAgICAgICAgICAgaWYgKE51bWJlcihpbmQ5ICsgaW5kMTApID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoTnVtYmVyKGluZDkgKyBpbmQxMCkgPCAxMSkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICAgJzAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyhOdW1iZXIoaW5kOSArIGluZDEwKSAtIDEpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQxICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDIgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmQ3ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZDggK1xuICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKE51bWJlcihpbmQ5ICsgaW5kMTApIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgaW5kMSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMiArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kMyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNCArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNSArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNiArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kNyArXG4gICAgICAgICAgICAgICAgICAgICAgaW5kOCArXG4gICAgICAgICAgICAgICAgICAgICAgJzEyJztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgICAgICAgICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5zZXRDYXJldCgpO1xuICAgICAgICAgICAgICAgIC8vICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgLy8gfSwgMCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcgfHwgZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZS50eXBlID09PSAna2V5dXAnKSB7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRDYXJldCgpO1xuICAgICAgICAgICAgICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcbiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaGFuZGxlQ2xpY2soKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pbnB1dC5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8XG4gICAgICB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0LmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2FyZXRQb3NpdGlvbihjdHJsLCBwb3MpIHtcbiAgICBpZiAoY3RybC5zZXRTZWxlY3Rpb25SYW5nZSkge1xuICAgICAgY3RybC5mb2N1cygpO1xuICAgICAgY3RybC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2FyZXQoKSB7XG4gICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQuaW5wdXQubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJzb3JQb3NpdGlvbik7XG4gIH1cblxuICBuYXZpZ2F0ZSh2YWx1ZTogbnVtYmVyIHwgQVhEYXRlVGltZSkge1xuICAgIHRoaXMuY2FsZW5kYXJSZWYubmF2aWdhdGUodmFsdWUpO1xuICB9XG59XG4iLCI8YXgtZHJvcC1kb3duXG4gIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gIFtmaXRQYXJlbnRdPVwiZmFsc2VcIlxuICBbc2l6ZV09XCJzaXplXCJcbiAgW3Nob3dEcm9wRG93bkJ1dHRvbl09XCJmYWxzZVwiXG4gIGljb249XCJmYXIgZmEtY2FsZW5kYXItYWx0XCJcbiAgI2Ryb3Bkb3duXG4gIG1heEhlaWdodD1cInVuc2V0XCJcbj5cbiAgPG5nLWNvbnRhaW5lciBzdGFydD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhcnRdXCI+IDwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyPlxuICAgIDxheC10ZXh0LWJveFxuICAgICAgI2lucHV0XG4gICAgICBbdGV4dEFsaWduXT1cInRleHRBbGlnblwiXG4gICAgICBbKHZhbHVlKV09XCJ0ZXh0XCJcbiAgICAgIFttYXNrXT1cImRhdGVUeXBlXCJcbiAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgKG9ua2V5KT1cImhhbmRsZUtleVByZXNzKCRldmVudClcIlxuICAgICAgKG9uRm9jdXMpPVwiaGFuZGxlSW5wdXRGb2N1cygpXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDbGljaygpXCJcbiAgICAgIChvbkJsdXIpPVwiaGFuZGxlSW5wdXRCbHVyKClcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInRleHRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYXgtdGV4dC1ib3g+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIHBhbmVsPlxuICAgIDxheC1jYWxlbmRhci1ib3hcbiAgICAgICNjYWxlbmRhclJlZlxuICAgICAgKm5nSWY9XCJfcmVuZGVyUGlja2VyXCJcbiAgICAgIFtzaG93VG9kYXlCdXR0b25dPVwic2hvd1RvZGF5QnV0dG9uXCJcbiAgICAgIFtzZWxlY3RhYmxlSG9saWRheV09XCJzZWxlY3RhYmxlSG9saWRheVwiXG4gICAgICBbbWluXT1cIm1pblwiXG4gICAgICBbbWF4XT1cIm1heFwiXG4gICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgIChvbkNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwib25EYXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICBbKHZhbHVlKV09XCJ2YWx1ZVwiXG4gICAgICBbZGF5U3R5bGVdPVwiZGF5U3R5bGVcIlxuICAgICAgW2RheU1pbk1heFJlc29hbl09XCJkYXlNaW5NYXhSZXNvYW5cIlxuICAgID5cbiAgICA8L2F4LWNhbGVuZGFyLWJveD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgZW5kPlxuICAgIDxheC1idXR0b25cbiAgICAgIGVuZFxuICAgICAgKm5nSWY9XCJhbGxvd0NsZWFyICYmIHZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBpY29uPVwiZmFyIGZhLXRpbWVzIGljb25cIlxuICAgICAgdHlwZT1cImJsYW5rIGRhbmdlclwiXG4gICAgICAoY2xpY2spPVwiY2xlYXIoKVwiXG4gICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDxheC1idXR0b25cbiAgICAgIGVuZFxuICAgICAgaWNvbj1cImZhciBmYS1jYWxlbmRhci1hbHQgaWNvblwiXG4gICAgICB0eXBlPVwibGlnaHQgYmxhbmtcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtzaXplXT1cInNpemVcIlxuICAgICAgW3RhYkluZGV4XT1cIi0xXCJcbiAgICA+PC9heC1idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VuZF1cIj4gPC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYXgtZHJvcC1kb3duPlxuIl19