ngx-tethys 18.0.8 → 18.1.0-next.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 (607) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/action/action.component.d.ts +1 -2
  3. package/affix/affix.component.d.ts +2 -4
  4. package/alert/alert.component.d.ts +11 -19
  5. package/anchor/anchor-link.component.d.ts +2 -4
  6. package/anchor/anchor.component.d.ts +2 -7
  7. package/arrow-switcher/arrow-switcher.component.d.ts +1 -2
  8. package/autocomplete/autocomplete.component.d.ts +1 -2
  9. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -5
  10. package/autocomplete/overlay/autocomplete-container.component.d.ts +4 -4
  11. package/autocomplete/overlay/autocomplete.service.d.ts +3 -5
  12. package/avatar/avatar.component.d.ts +1 -3
  13. package/avatar/avatar.pipe.d.ts +0 -2
  14. package/back-top/back-top.component.d.ts +2 -4
  15. package/badge/badge.component.d.ts +2 -2
  16. package/breadcrumb/breadcrumb-item.component.d.ts +1 -2
  17. package/breadcrumb/breadcrumb.component.d.ts +1 -2
  18. package/button/button.component.d.ts +1 -2
  19. package/calendar/calendar-header.component.d.ts +1 -2
  20. package/calendar/calendar.component.d.ts +1 -2
  21. package/carousel/carousel-item.directive.d.ts +1 -2
  22. package/carousel/carousel.component.d.ts +1 -4
  23. package/carousel/carousel.service.d.ts +1 -2
  24. package/cascader/cascader.component.d.ts +4 -4
  25. package/checkbox/checkbox.component.d.ts +0 -2
  26. package/collapse/collapse-item.component.d.ts +2 -4
  27. package/color-picker/color-picker-panel.component.d.ts +2 -3
  28. package/color-picker/color-picker.component.d.ts +2 -4
  29. package/color-picker/coordinates.directive.d.ts +1 -2
  30. package/color-picker/parts/alpha/alpha.component.d.ts +1 -2
  31. package/color-picker/parts/hue/hue.component.d.ts +1 -2
  32. package/color-picker/parts/saturation/saturation.component.d.ts +1 -2
  33. package/copy/copy.directive.d.ts +0 -2
  34. package/core/click-positioner.d.ts +0 -2
  35. package/core/scroll.d.ts +1 -2
  36. package/core/update-host-class.service.d.ts +1 -2
  37. package/date-picker/abstract-picker.component.d.ts +1 -1
  38. package/date-picker/abstract-picker.directive.d.ts +2 -3
  39. package/date-picker/base-picker.component.d.ts +2 -3
  40. package/date-picker/date-picker.component.d.ts +2 -2
  41. package/date-picker/date-picker.directive.d.ts +1 -3
  42. package/date-picker/date-picker.service.d.ts +2 -2
  43. package/date-picker/index.d.ts +26 -27
  44. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -2
  45. package/date-picker/lib/calendar/calendar-header.component.d.ts +0 -1
  46. package/date-picker/lib/date/date-header.component.d.ts +0 -3
  47. package/date-picker/lib/date/date-table-cell.component.d.ts +1 -1
  48. package/date-picker/lib/date/date-table.component.d.ts +1 -3
  49. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +1 -2
  50. package/date-picker/lib/decade/decade-header.component.d.ts +1 -1
  51. package/date-picker/lib/month/month-header.component.d.ts +0 -3
  52. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  53. package/date-picker/lib/popups/date-popup.component.d.ts +1 -4
  54. package/date-picker/lib/popups/inner-popup.component.d.ts +0 -2
  55. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -2
  56. package/date-picker/lib/year/year-header.component.d.ts +0 -1
  57. package/date-picker/month-picker.component.d.ts +2 -2
  58. package/date-picker/picker.component.d.ts +1 -3
  59. package/date-picker/picker.pipes.d.ts +0 -3
  60. package/date-picker/quarter-picker.component.d.ts +2 -2
  61. package/date-picker/range-picker.component.d.ts +2 -2
  62. package/date-picker/range-picker.directive.d.ts +2 -3
  63. package/date-picker/week-picker.component.d.ts +2 -2
  64. package/date-picker/year-picker.component.d.ts +2 -2
  65. package/date-range/date-range.component.d.ts +3 -11
  66. package/date-range/optional-dates/optional-dates.component.d.ts +0 -2
  67. package/dialog/body/dialog-body.component.d.ts +0 -2
  68. package/dialog/confirm/confirm.component.d.ts +2 -3
  69. package/dialog/dialog-container.component.d.ts +4 -5
  70. package/dialog/dialog.service.d.ts +4 -4
  71. package/dialog/footer/dialog-footer.component.d.ts +2 -2
  72. package/dialog/header/dialog-header.component.d.ts +2 -6
  73. package/divider/divider.component.d.ts +8 -2
  74. package/dot/dot.component.d.ts +1 -2
  75. package/drag-drop/drag-content.directive.d.ts +2 -3
  76. package/drag-drop/drag-handle.directive.d.ts +2 -3
  77. package/drag-drop/drag.directive.d.ts +4 -5
  78. package/drag-drop/drop-container.directive.d.ts +6 -3
  79. package/dropdown/dropdown-active.directive.d.ts +3 -4
  80. package/dropdown/dropdown-menu-item.directive.d.ts +1 -2
  81. package/dropdown/dropdown-submenu.component.d.ts +1 -3
  82. package/dropdown/dropdown.directive.d.ts +3 -5
  83. package/empty/empty.component.d.ts +6 -6
  84. package/esm2022/action/action.component.mjs +20 -21
  85. package/esm2022/affix/affix.component.mjs +11 -14
  86. package/esm2022/alert/alert.component.mjs +55 -81
  87. package/esm2022/anchor/anchor-link.component.mjs +23 -16
  88. package/esm2022/anchor/anchor.component.mjs +27 -24
  89. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +25 -26
  90. package/esm2022/autocomplete/autocomplete.component.mjs +11 -11
  91. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +30 -37
  92. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +11 -15
  93. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +14 -21
  94. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +4 -4
  95. package/esm2022/avatar/avatar.component.mjs +27 -28
  96. package/esm2022/avatar/avatar.pipe.mjs +6 -7
  97. package/esm2022/back-top/back-top.component.mjs +14 -18
  98. package/esm2022/badge/badge.component.mjs +8 -9
  99. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +7 -7
  100. package/esm2022/breadcrumb/breadcrumb.component.mjs +15 -17
  101. package/esm2022/button/button-icon.component.mjs +4 -4
  102. package/esm2022/button/button.component.mjs +15 -15
  103. package/esm2022/calendar/calendar-header.component.mjs +15 -15
  104. package/esm2022/calendar/calendar.component.mjs +14 -15
  105. package/esm2022/card/header.component.mjs +4 -4
  106. package/esm2022/carousel/carousel-item.directive.mjs +7 -6
  107. package/esm2022/carousel/carousel.component.mjs +13 -15
  108. package/esm2022/carousel/carousel.service.mjs +7 -9
  109. package/esm2022/cascader/cascader-li.component.mjs +4 -4
  110. package/esm2022/cascader/cascader-search-option.component.mjs +4 -4
  111. package/esm2022/cascader/cascader.component.mjs +15 -22
  112. package/esm2022/checkbox/checkbox.component.mjs +11 -13
  113. package/esm2022/collapse/collapse-item.component.mjs +21 -24
  114. package/esm2022/color-picker/color-picker-panel.component.mjs +14 -15
  115. package/esm2022/color-picker/color-picker.component.mjs +10 -11
  116. package/esm2022/color-picker/coordinates.directive.mjs +10 -10
  117. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +6 -6
  118. package/esm2022/color-picker/parts/hue/hue.component.mjs +6 -6
  119. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +9 -9
  120. package/esm2022/comment/comment.component.mjs +4 -4
  121. package/esm2022/copy/copy.directive.mjs +8 -12
  122. package/esm2022/core/click-positioner.mjs +6 -7
  123. package/esm2022/core/scroll.mjs +7 -9
  124. package/esm2022/core/store/store.mjs +1 -1
  125. package/esm2022/core/update-host-class.service.mjs +6 -6
  126. package/esm2022/date-picker/abstract-picker.component.mjs +5 -5
  127. package/esm2022/date-picker/abstract-picker.directive.mjs +42 -44
  128. package/esm2022/date-picker/base-picker.component.mjs +26 -26
  129. package/esm2022/date-picker/date-picker.component.mjs +10 -11
  130. package/esm2022/date-picker/date-picker.directive.mjs +6 -8
  131. package/esm2022/date-picker/date-picker.service.mjs +6 -10
  132. package/esm2022/date-picker/index.mjs +27 -28
  133. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +7 -8
  134. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +6 -7
  135. package/esm2022/date-picker/lib/date/date-header.component.mjs +6 -12
  136. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +4 -4
  137. package/esm2022/date-picker/lib/date/date-table.component.mjs +10 -12
  138. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +16 -16
  139. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +8 -11
  140. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +4 -4
  141. package/esm2022/date-picker/lib/month/month-header.component.mjs +6 -12
  142. package/esm2022/date-picker/lib/month/month-table.component.mjs +9 -10
  143. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +14 -29
  144. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +14 -20
  145. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +9 -10
  146. package/esm2022/date-picker/lib/year/year-header.component.mjs +6 -12
  147. package/esm2022/date-picker/lib/year/year-table.component.mjs +4 -4
  148. package/esm2022/date-picker/month-picker.component.mjs +9 -11
  149. package/esm2022/date-picker/picker.component.mjs +24 -35
  150. package/esm2022/date-picker/picker.pipes.mjs +10 -11
  151. package/esm2022/date-picker/quarter-picker.component.mjs +9 -11
  152. package/esm2022/date-picker/range-picker.component.mjs +9 -11
  153. package/esm2022/date-picker/range-picker.directive.mjs +6 -8
  154. package/esm2022/date-picker/week-picker.component.mjs +9 -11
  155. package/esm2022/date-picker/year-picker.component.mjs +9 -11
  156. package/esm2022/date-range/date-range.component.mjs +17 -18
  157. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +9 -13
  158. package/esm2022/dialog/body/dialog-body.component.mjs +11 -12
  159. package/esm2022/dialog/confirm/confirm.component.mjs +10 -14
  160. package/esm2022/dialog/dialog-container.component.mjs +13 -18
  161. package/esm2022/dialog/dialog.service.mjs +10 -17
  162. package/esm2022/dialog/footer/dialog-footer.component.mjs +10 -14
  163. package/esm2022/dialog/header/dialog-header.component.mjs +17 -22
  164. package/esm2022/divider/divider.component.mjs +21 -13
  165. package/esm2022/dot/dot.component.mjs +7 -7
  166. package/esm2022/drag-drop/drag-content.directive.mjs +7 -9
  167. package/esm2022/drag-drop/drag-handle.directive.mjs +7 -9
  168. package/esm2022/drag-drop/drag.directive.mjs +13 -16
  169. package/esm2022/drag-drop/drop-container.directive.mjs +13 -13
  170. package/esm2022/dropdown/dropdown-active.directive.mjs +9 -12
  171. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +12 -12
  172. package/esm2022/dropdown/dropdown-menu.component.mjs +11 -7
  173. package/esm2022/dropdown/dropdown-submenu.component.mjs +9 -10
  174. package/esm2022/dropdown/dropdown.directive.mjs +12 -10
  175. package/esm2022/empty/empty.component.mjs +17 -20
  176. package/esm2022/flexible-text/flexible-text.component.mjs +16 -17
  177. package/esm2022/form/form-group-error/form-group-error.component.mjs +12 -15
  178. package/esm2022/form/form-group-label.directive.mjs +9 -10
  179. package/esm2022/form/form-group.component.mjs +18 -22
  180. package/esm2022/form/form-submit.directive.mjs +6 -7
  181. package/esm2022/form/form-validator-loader.mjs +1 -1
  182. package/esm2022/form/form-validator.service.mjs +12 -13
  183. package/esm2022/form/form.directive.mjs +11 -16
  184. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +13 -19
  185. package/esm2022/form/validator/unique-validator.directive.mjs +7 -10
  186. package/esm2022/fullscreen/fullscreen.component.mjs +10 -11
  187. package/esm2022/fullscreen/fullscreen.service.mjs +7 -10
  188. package/esm2022/grid/thy-col.directive.mjs +9 -14
  189. package/esm2022/grid/thy-grid-item.component.mjs +8 -14
  190. package/esm2022/grid/thy-grid.component.mjs +7 -8
  191. package/esm2022/guider/guider-hint/guider-hint.component.mjs +4 -4
  192. package/esm2022/guider/guider.directive.mjs +8 -9
  193. package/esm2022/guider/guider.service.mjs +12 -19
  194. package/esm2022/icon/icon-registry.mjs +11 -16
  195. package/esm2022/icon/icon.component.mjs +8 -9
  196. package/esm2022/image/image-group.component.mjs +7 -7
  197. package/esm2022/image/image.directive.mjs +11 -12
  198. package/esm2022/image/image.service.mjs +8 -14
  199. package/esm2022/image/preview/image-preview.component.mjs +36 -41
  200. package/esm2022/input/input-count.component.mjs +7 -10
  201. package/esm2022/input/input-group.component.mjs +15 -16
  202. package/esm2022/input/input-search.component.mjs +9 -10
  203. package/esm2022/input/input.component.mjs +17 -17
  204. package/esm2022/input/input.directive.mjs +12 -17
  205. package/esm2022/input-number/input-number.component.mjs +6 -6
  206. package/esm2022/layout/header.component.mjs +4 -4
  207. package/esm2022/layout/sidebar-header.component.mjs +4 -4
  208. package/esm2022/layout/sidebar.component.mjs +125 -121
  209. package/esm2022/list/list-item-meta.component.mjs +4 -4
  210. package/esm2022/list/selection/selection-list.mjs +25 -25
  211. package/esm2022/loading/loading.component.mjs +10 -11
  212. package/esm2022/mention/mention.directive.mjs +9 -14
  213. package/esm2022/mention/suggestions/suggestions.component.mjs +11 -12
  214. package/esm2022/menu/group/menu-group.component.mjs +37 -38
  215. package/esm2022/menu/item/action/menu-item-action.component.mjs +15 -16
  216. package/esm2022/menu/item/menu-item.component.mjs +8 -9
  217. package/esm2022/message/abstract/abstract-message-container.component.mjs +5 -5
  218. package/esm2022/message/abstract/abstract-message.component.mjs +6 -6
  219. package/esm2022/message/message-container.component.mjs +21 -15
  220. package/esm2022/message/message-queue.service.mjs +6 -8
  221. package/esm2022/message/message.component.mjs +9 -10
  222. package/esm2022/message/message.service.mjs +10 -11
  223. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +4 -5
  224. package/esm2022/nav/icon-nav/icon-nav.component.mjs +6 -6
  225. package/esm2022/nav/nav-ink-bar.directive.mjs +9 -14
  226. package/esm2022/nav/nav-item.directive.mjs +8 -11
  227. package/esm2022/nav/nav.component.mjs +35 -38
  228. package/esm2022/nav/nav.pipe.mjs +6 -7
  229. package/esm2022/notify/notify-container.component.mjs +11 -14
  230. package/esm2022/notify/notify-queue.service.mjs +6 -8
  231. package/esm2022/notify/notify.component.mjs +10 -10
  232. package/esm2022/notify/notify.service.mjs +11 -12
  233. package/esm2022/pagination/pagination.component.mjs +41 -46
  234. package/esm2022/pagination/pagination.pipe.mjs +6 -7
  235. package/esm2022/popover/header/popover-header.component.mjs +15 -17
  236. package/esm2022/popover/popover-container.component.mjs +11 -13
  237. package/esm2022/popover/popover.directive.mjs +13 -12
  238. package/esm2022/popover/popover.service.mjs +14 -26
  239. package/esm2022/progress/progress-circle.component.mjs +4 -7
  240. package/esm2022/progress/progress-strip.component.mjs +10 -13
  241. package/esm2022/progress/progress.component.mjs +5 -8
  242. package/esm2022/property/property-item.component.mjs +13 -16
  243. package/esm2022/property-operation/property-operation.component.mjs +27 -28
  244. package/esm2022/radio/button/radio-button.component.mjs +9 -15
  245. package/esm2022/radio/group/radio-group.component.mjs +17 -17
  246. package/esm2022/radio/radio.component.mjs +12 -18
  247. package/esm2022/rate/rate.component.mjs +10 -10
  248. package/esm2022/resizable/resizable.directive.mjs +10 -12
  249. package/esm2022/resizable/resizable.service.mjs +7 -9
  250. package/esm2022/resizable/resize-handle.component.mjs +16 -14
  251. package/esm2022/resizable/resize-handles.component.mjs +12 -5
  252. package/esm2022/result/result.component.mjs +4 -4
  253. package/esm2022/segment/segment-item.component.mjs +15 -18
  254. package/esm2022/segment/segment.component.mjs +29 -30
  255. package/esm2022/select/custom-select/custom-select.component.mjs +19 -35
  256. package/esm2022/select/native-select/native-select.component.mjs +10 -11
  257. package/esm2022/shared/base-form-check.component.mjs +7 -8
  258. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +7 -7
  259. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -10
  260. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +8 -8
  261. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +8 -8
  262. package/esm2022/shared/directives/thy-enter.directive.mjs +8 -8
  263. package/esm2022/shared/directives/thy-scroll.directive.mjs +21 -21
  264. package/esm2022/shared/directives/thy-show.mjs +11 -11
  265. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +7 -5
  266. package/esm2022/shared/directives/view-outlet.directive.mjs +7 -7
  267. package/esm2022/shared/ng-transclude.directive.mjs +6 -5
  268. package/esm2022/shared/option/group/option-group.component.mjs +10 -10
  269. package/esm2022/shared/option/list-option/list-option.component.mjs +14 -22
  270. package/esm2022/shared/option/option.component.mjs +11 -22
  271. package/esm2022/shared/select/select-control/select-control.component.mjs +27 -27
  272. package/esm2022/skeleton/skeleton-circle.component.mjs +7 -15
  273. package/esm2022/skeleton/skeleton-rectangle.component.mjs +7 -15
  274. package/esm2022/skeleton/stylized/bullet-list.component.mjs +8 -9
  275. package/esm2022/skeleton/stylized/list.component.mjs +8 -9
  276. package/esm2022/skeleton/stylized/paragraph.component.mjs +8 -9
  277. package/esm2022/slide/drawer/drawer-container.directive.mjs +6 -6
  278. package/esm2022/slide/slide-container.component.mjs +12 -16
  279. package/esm2022/slide/slide-header/slide-header.component.mjs +13 -14
  280. package/esm2022/slide/slide-ref.service.mjs +1 -1
  281. package/esm2022/slide/slide.service.mjs +8 -12
  282. package/esm2022/slider/slider.component.mjs +8 -8
  283. package/esm2022/space/space.component.mjs +16 -16
  284. package/esm2022/statistic/statistic.component.mjs +23 -23
  285. package/esm2022/stepper/step.component.mjs +6 -11
  286. package/esm2022/stepper/stepper-button.directive.mjs +10 -11
  287. package/esm2022/stepper/stepper.component.mjs +5 -5
  288. package/esm2022/strength/strength.component.mjs +11 -12
  289. package/esm2022/switch/switch.component.mjs +11 -11
  290. package/esm2022/table/table-column.component.mjs +58 -63
  291. package/esm2022/table/table-skeleton.component.mjs +35 -38
  292. package/esm2022/table/table.component.mjs +19 -29
  293. package/esm2022/tabs/tab-content.component.mjs +9 -9
  294. package/esm2022/tabs/tabs.component.mjs +22 -25
  295. package/esm2022/tag/tag.component.mjs +22 -22
  296. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +12 -12
  297. package/esm2022/time-picker/time-picker-panel.component.mjs +31 -34
  298. package/esm2022/time-picker/time-picker.component.mjs +33 -43
  299. package/esm2022/timeline/timeline-item.component.mjs +15 -16
  300. package/esm2022/timeline/timeline.component.mjs +15 -16
  301. package/esm2022/tooltip/tooltip.component.mjs +17 -17
  302. package/esm2022/tooltip/tooltip.directive.mjs +11 -10
  303. package/esm2022/tooltip/tooltip.service.mjs +9 -13
  304. package/esm2022/transfer/transfer-list.component.mjs +9 -9
  305. package/esm2022/transfer/transfer.component.mjs +4 -4
  306. package/esm2022/tree/tree-node.component.mjs +16 -20
  307. package/esm2022/tree/tree.component.mjs +90 -96
  308. package/esm2022/tree-select/tree-select.component.mjs +28 -36
  309. package/esm2022/typography/bg-color.directive.mjs +9 -9
  310. package/esm2022/typography/text/text.component.mjs +3 -4
  311. package/esm2022/typography/text-color.directive.mjs +9 -9
  312. package/esm2022/upload/file-drop.directive.mjs +1 -1
  313. package/esm2022/upload/file-select-base.mjs +5 -6
  314. package/esm2022/upload/file-select.component.mjs +4 -3
  315. package/esm2022/upload/upload.service.mjs +6 -7
  316. package/esm2022/version.mjs +2 -2
  317. package/esm2022/vote/vote.component.mjs +4 -4
  318. package/esm2022/watermark/watermark.directive.mjs +12 -12
  319. package/fesm2022/ngx-tethys-action.mjs +20 -20
  320. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  321. package/fesm2022/ngx-tethys-affix.mjs +12 -14
  322. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  323. package/fesm2022/ngx-tethys-alert.mjs +54 -80
  324. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  325. package/fesm2022/ngx-tethys-anchor.mjs +48 -35
  326. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  327. package/fesm2022/ngx-tethys-arrow-switcher.mjs +25 -25
  328. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  329. package/fesm2022/ngx-tethys-autocomplete.mjs +63 -75
  330. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  331. package/fesm2022/ngx-tethys-avatar.mjs +32 -32
  332. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  333. package/fesm2022/ngx-tethys-back-top.mjs +15 -18
  334. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  335. package/fesm2022/ngx-tethys-badge.mjs +8 -8
  336. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  337. package/fesm2022/ngx-tethys-breadcrumb.mjs +19 -21
  338. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  339. package/fesm2022/ngx-tethys-button.mjs +16 -16
  340. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  341. package/fesm2022/ngx-tethys-calendar.mjs +26 -26
  342. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  343. package/fesm2022/ngx-tethys-card.mjs +3 -3
  344. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  345. package/fesm2022/ngx-tethys-carousel.mjs +23 -24
  346. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  347. package/fesm2022/ngx-tethys-cascader.mjs +19 -25
  348. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  349. package/fesm2022/ngx-tethys-checkbox.mjs +10 -11
  350. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  351. package/fesm2022/ngx-tethys-collapse.mjs +20 -22
  352. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  353. package/fesm2022/ngx-tethys-color-picker.mjs +47 -45
  354. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  355. package/fesm2022/ngx-tethys-comment.mjs +3 -3
  356. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  357. package/fesm2022/ngx-tethys-copy.mjs +8 -12
  358. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  359. package/fesm2022/ngx-tethys-core.mjs +14 -16
  360. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  361. package/fesm2022/ngx-tethys-date-picker.mjs +2872 -2924
  362. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  363. package/fesm2022/ngx-tethys-date-range.mjs +24 -26
  364. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  365. package/fesm2022/ngx-tethys-dialog.mjs +61 -77
  366. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  367. package/fesm2022/ngx-tethys-divider.mjs +20 -12
  368. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  369. package/fesm2022/ngx-tethys-dot.mjs +6 -6
  370. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  371. package/fesm2022/ngx-tethys-drag-drop.mjs +33 -37
  372. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  373. package/fesm2022/ngx-tethys-dropdown.mjs +49 -43
  374. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  375. package/fesm2022/ngx-tethys-empty.mjs +18 -18
  376. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  377. package/fesm2022/ngx-tethys-flexible-text.mjs +16 -17
  378. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  379. package/fesm2022/ngx-tethys-form.mjs +74 -89
  380. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  381. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -17
  382. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  383. package/fesm2022/ngx-tethys-grid.mjs +20 -29
  384. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  385. package/fesm2022/ngx-tethys-guider.mjs +20 -26
  386. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  387. package/fesm2022/ngx-tethys-icon.mjs +18 -22
  388. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  389. package/fesm2022/ngx-tethys-image.mjs +60 -65
  390. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  391. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  392. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  393. package/fesm2022/ngx-tethys-input.mjs +53 -60
  394. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  395. package/fesm2022/ngx-tethys-layout.mjs +129 -124
  396. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  397. package/fesm2022/ngx-tethys-list.mjs +27 -27
  398. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  399. package/fesm2022/ngx-tethys-loading.mjs +10 -10
  400. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  401. package/fesm2022/ngx-tethys-mention.mjs +19 -24
  402. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  403. package/fesm2022/ngx-tethys-menu.mjs +56 -57
  404. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  405. package/fesm2022/ngx-tethys-message.mjs +47 -41
  406. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  407. package/fesm2022/ngx-tethys-nav.mjs +61 -72
  408. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  409. package/fesm2022/ngx-tethys-notify.mjs +31 -34
  410. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  411. package/fesm2022/ngx-tethys-pagination.mjs +46 -51
  412. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  413. package/fesm2022/ngx-tethys-popover.mjs +51 -57
  414. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  415. package/fesm2022/ngx-tethys-progress.mjs +15 -24
  416. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  417. package/fesm2022/ngx-tethys-property-operation.mjs +27 -27
  418. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-property.mjs +14 -14
  420. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-radio.mjs +33 -39
  422. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  423. package/fesm2022/ngx-tethys-rate.mjs +9 -9
  424. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  425. package/fesm2022/ngx-tethys-resizable.mjs +43 -34
  426. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-result.mjs +3 -3
  428. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-segment.mjs +41 -44
  430. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  431. package/fesm2022/ngx-tethys-select.mjs +28 -44
  432. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  433. package/fesm2022/ngx-tethys-shared.mjs +135 -150
  434. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  435. package/fesm2022/ngx-tethys-skeleton.mjs +33 -47
  436. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  437. package/fesm2022/ngx-tethys-slide.mjs +33 -37
  438. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  439. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  440. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  441. package/fesm2022/ngx-tethys-space.mjs +16 -16
  442. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  443. package/fesm2022/ngx-tethys-statistic.mjs +22 -22
  444. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  445. package/fesm2022/ngx-tethys-stepper.mjs +17 -22
  446. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  447. package/fesm2022/ngx-tethys-strength.mjs +11 -11
  448. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  449. package/fesm2022/ngx-tethys-switch.mjs +10 -10
  450. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  451. package/fesm2022/ngx-tethys-table.mjs +107 -124
  452. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  453. package/fesm2022/ngx-tethys-tabs.mjs +29 -32
  454. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  455. package/fesm2022/ngx-tethys-tag.mjs +21 -21
  456. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  457. package/fesm2022/ngx-tethys-time-picker.mjs +70 -80
  458. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  459. package/fesm2022/ngx-tethys-timeline.mjs +26 -26
  460. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  461. package/fesm2022/ngx-tethys-tooltip.mjs +35 -36
  462. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  463. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  464. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  465. package/fesm2022/ngx-tethys-tree-select.mjs +29 -37
  466. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  467. package/fesm2022/ngx-tethys-tree.mjs +102 -110
  468. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  469. package/fesm2022/ngx-tethys-typography.mjs +18 -18
  470. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  471. package/fesm2022/ngx-tethys-upload.mjs +11 -12
  472. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  473. package/fesm2022/ngx-tethys-vote.mjs +3 -3
  474. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  475. package/fesm2022/ngx-tethys-watermark.mjs +12 -12
  476. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  477. package/fesm2022/ngx-tethys.mjs +1 -1
  478. package/fesm2022/ngx-tethys.mjs.map +1 -1
  479. package/flexible-text/flexible-text.component.d.ts +1 -3
  480. package/form/form-group-error/form-group-error.component.d.ts +1 -3
  481. package/form/form-group-label.directive.d.ts +0 -2
  482. package/form/form-group.component.d.ts +1 -4
  483. package/form/form-submit.directive.d.ts +0 -2
  484. package/form/form-validator.service.d.ts +0 -2
  485. package/form/form.directive.d.ts +4 -4
  486. package/form/from-group-footer/form-group-footer.component.d.ts +2 -4
  487. package/form/validator/unique-validator.directive.d.ts +1 -4
  488. package/fullscreen/fullscreen.component.d.ts +0 -2
  489. package/fullscreen/fullscreen.service.d.ts +0 -2
  490. package/grid/thy-col.directive.d.ts +1 -2
  491. package/grid/thy-grid-item.component.d.ts +2 -4
  492. package/grid/thy-grid.component.d.ts +1 -3
  493. package/guider/guider.directive.d.ts +1 -3
  494. package/guider/guider.service.d.ts +0 -7
  495. package/icon/icon-registry.d.ts +1 -3
  496. package/icon/icon.component.d.ts +1 -3
  497. package/image/image-group.component.d.ts +1 -2
  498. package/image/image.directive.d.ts +1 -3
  499. package/image/image.service.d.ts +2 -2
  500. package/image/preview/image-preview.component.d.ts +1 -4
  501. package/input/input-count.component.d.ts +3 -4
  502. package/input/input-group.component.d.ts +1 -3
  503. package/input/input-search.component.d.ts +2 -2
  504. package/input/input.component.d.ts +1 -2
  505. package/input/input.directive.d.ts +2 -3
  506. package/input-number/input-number.component.d.ts +2 -2
  507. package/layout/sidebar.component.d.ts +44 -13
  508. package/list/selection/selection-list.d.ts +1 -2
  509. package/loading/loading.component.d.ts +0 -2
  510. package/loading/styles/loading.scss +3 -1
  511. package/mention/mention.directive.d.ts +4 -5
  512. package/mention/suggestions/suggestions.component.d.ts +2 -3
  513. package/menu/group/menu-group.component.d.ts +30 -8
  514. package/menu/item/action/menu-item-action.component.d.ts +2 -3
  515. package/menu/item/menu-item.component.d.ts +1 -2
  516. package/message/abstract/abstract-message-container.component.d.ts +1 -2
  517. package/message/abstract/abstract-message.component.d.ts +2 -2
  518. package/message/message-container.component.d.ts +1 -3
  519. package/message/message-queue.service.d.ts +1 -2
  520. package/message/message.component.d.ts +1 -3
  521. package/message/message.service.d.ts +3 -5
  522. package/nav/icon-nav/icon-nav.component.d.ts +2 -2
  523. package/nav/nav-ink-bar.directive.d.ts +2 -4
  524. package/nav/nav-item.directive.d.ts +3 -4
  525. package/nav/nav.component.d.ts +1 -3
  526. package/nav/nav.pipe.d.ts +0 -2
  527. package/notify/notify-container.component.d.ts +1 -3
  528. package/notify/notify-queue.service.d.ts +1 -2
  529. package/notify/notify.component.d.ts +2 -3
  530. package/notify/notify.service.d.ts +1 -4
  531. package/package.json +1 -1
  532. package/pagination/pagination.component.d.ts +2 -4
  533. package/pagination/pagination.pipe.d.ts +0 -2
  534. package/popover/header/popover-header.component.d.ts +0 -3
  535. package/popover/popover-container.component.d.ts +3 -4
  536. package/popover/popover.directive.d.ts +2 -5
  537. package/popover/popover.service.d.ts +4 -6
  538. package/progress/progress-circle.component.d.ts +0 -1
  539. package/progress/progress-strip.component.d.ts +0 -1
  540. package/progress/progress.component.d.ts +0 -1
  541. package/property/property-item.component.d.ts +6 -9
  542. package/property-operation/property-operation.component.d.ts +1 -3
  543. package/radio/button/radio-button.component.d.ts +2 -5
  544. package/radio/group/radio-group.component.d.ts +1 -2
  545. package/radio/radio.component.d.ts +2 -3
  546. package/rate/rate.component.d.ts +2 -2
  547. package/resizable/resizable.directive.d.ts +2 -4
  548. package/resizable/resizable.service.d.ts +2 -2
  549. package/resizable/resize-handle.component.d.ts +2 -7
  550. package/schematics/version.d.ts +1 -1
  551. package/schematics/version.js +1 -1
  552. package/segment/segment-item.component.d.ts +4 -5
  553. package/segment/segment.component.d.ts +2 -7
  554. package/select/custom-select/custom-select.component.d.ts +5 -5
  555. package/select/native-select/native-select.component.d.ts +1 -1
  556. package/shared/base-form-check.component.d.ts +1 -1
  557. package/shared/directives/string-or-template-outlet.directive.d.ts +1 -2
  558. package/shared/directives/thy-autofocus.directive.d.ts +0 -2
  559. package/shared/directives/thy-contextmenu.directive.d.ts +1 -2
  560. package/shared/directives/thy-ctrl-enter.directive.d.ts +1 -2
  561. package/shared/directives/thy-enter.directive.d.ts +1 -2
  562. package/shared/directives/thy-scroll.directive.d.ts +1 -2
  563. package/shared/directives/thy-show.d.ts +1 -2
  564. package/shared/directives/thy-stop-propagation.directive.d.ts +2 -2
  565. package/shared/directives/view-outlet.directive.d.ts +1 -2
  566. package/shared/ng-transclude.directive.d.ts +1 -1
  567. package/shared/option/group/option-group.component.d.ts +1 -2
  568. package/shared/option/list-option/list-option.component.d.ts +6 -7
  569. package/shared/option/option.component.d.ts +5 -5
  570. package/shared/select/select-control/select-control.component.d.ts +1 -2
  571. package/skeleton/skeleton-circle.component.d.ts +1 -4
  572. package/skeleton/skeleton-rectangle.component.d.ts +5 -5
  573. package/skeleton/stylized/bullet-list.component.d.ts +9 -1
  574. package/slide/drawer/drawer-container.directive.d.ts +1 -2
  575. package/slide/slide-container.component.d.ts +3 -4
  576. package/slide/slide-header/slide-header.component.d.ts +0 -2
  577. package/slide/slide.service.d.ts +3 -3
  578. package/slider/slider.component.d.ts +2 -2
  579. package/space/space.component.d.ts +1 -2
  580. package/statistic/statistic.component.d.ts +1 -2
  581. package/stepper/step.component.d.ts +1 -2
  582. package/stepper/stepper-button.directive.d.ts +0 -3
  583. package/strength/strength.component.d.ts +0 -1
  584. package/switch/switch.component.d.ts +1 -1
  585. package/table/table-column.component.d.ts +32 -8
  586. package/table/table-skeleton.component.d.ts +1 -3
  587. package/table/table.component.d.ts +3 -5
  588. package/tabs/tabs.component.d.ts +1 -3
  589. package/tag/tag.component.d.ts +7 -3
  590. package/time-picker/inner/inner-time-picker.component.d.ts +2 -4
  591. package/time-picker/time-picker-panel.component.d.ts +1 -3
  592. package/time-picker/time-picker.component.d.ts +1 -2
  593. package/timeline/timeline-item.component.d.ts +1 -3
  594. package/timeline/timeline.component.d.ts +1 -3
  595. package/tooltip/tooltip.component.d.ts +1 -2
  596. package/tooltip/tooltip.directive.d.ts +6 -9
  597. package/tooltip/tooltip.service.d.ts +2 -4
  598. package/transfer/transfer-list.component.d.ts +1 -2
  599. package/tree/tree-node.component.d.ts +5 -21
  600. package/tree/tree.component.d.ts +1 -2
  601. package/tree-select/tree-select.component.d.ts +5 -6
  602. package/typography/bg-color.directive.d.ts +0 -2
  603. package/typography/text-color.directive.d.ts +1 -2
  604. package/upload/file-select-base.d.ts +2 -3
  605. package/upload/file-select.component.d.ts +1 -0
  606. package/upload/upload.service.d.ts +0 -2
  607. package/watermark/watermark.directive.d.ts +1 -2
@@ -1,4 +1,4 @@
1
- import { Component, forwardRef, Input, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef, HostBinding, Output, NgZone, numberAttribute } from '@angular/core';
1
+ import { Component, forwardRef, Input, EventEmitter, ChangeDetectorRef, ViewChild, ElementRef, HostBinding, Output, NgZone, numberAttribute, inject } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { fromEvent } from 'rxjs';
4
4
  import { clamp, coerceBooleanProperty } from 'ngx-tethys/util';
@@ -51,11 +51,11 @@ export class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
51
51
  this.sizeClassName = `thy-slider-${size}`;
52
52
  }
53
53
  }
54
- constructor(cdr, ngZone, ref) {
54
+ constructor() {
55
55
  super();
56
- this.cdr = cdr;
57
- this.ngZone = ngZone;
58
- this.ref = ref;
56
+ this.cdr = inject(ChangeDetectorRef);
57
+ this.ngZone = inject(NgZone);
58
+ this.ref = inject(ElementRef);
59
59
  /**
60
60
  * 是否切换为纵轴模式
61
61
  */
@@ -263,7 +263,7 @@ export class ThySlider extends TabIndexDisabledControlValueAccessorMixin {
263
263
  const integerLength = valueString.indexOf('.') + 1;
264
264
  return integerLength >= 0 ? valueString.length - integerLength : 0;
265
265
  }
266
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
266
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
267
267
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThySlider, isStandalone: true, selector: "thy-slider", inputs: { thyVertical: ["thyVertical", "thyVertical", coerceBooleanProperty], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyMax: ["thyMax", "thyMax", numberAttribute], thyMin: ["thyMin", "thyMin", numberAttribute], thyStep: ["thyStep", "thyStep", numberAttribute], thyType: "thyType", thyColor: "thyColor", thySize: "thySize" }, outputs: { thyAfterChange: "thyAfterChange" }, host: { properties: { "attr.tabindex": "tabIndex", "class.slider-vertical": "this.thyVertical", "class.slider-disabled": "this.thyDisabled", "class.thy-slider": "this._thySlider", "class.cursor-pointer": "this._pointer" } }, providers: [
268
268
  {
269
269
  provide: NG_VALUE_ACCESSOR,
@@ -283,7 +283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
283
283
  ], host: {
284
284
  '[attr.tabindex]': `tabIndex`
285
285
  }, standalone: true, imports: [NgStyle], template: "<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor }\"></div>\n</div>\n" }]
286
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i0.ElementRef }], propDecorators: { thyVertical: [{
286
+ }], ctorParameters: () => [], propDecorators: { thyVertical: [{
287
287
  type: HostBinding,
288
288
  args: ['class.slider-vertical']
289
289
  }, {
@@ -343,4 +343,4 @@ function verifyStepValues(ctx) {
343
343
  throw new Error('(max - min) must be divisible by step.');
344
344
  }
345
345
  }
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBTVQsVUFBVSxFQUNWLEtBQUssRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixNQUFNLEVBQ04sZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU0xQzs7OztHQUlHO0FBaUJILE1BQU0sT0FBTyxTQUNULFNBQVEseUNBQXlDO0lBVWpEOztPQUVHO0lBQ0gsSUFFYSxXQUFXLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQWEsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFD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LElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFjO0lBQ3BDLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQzFELENBQUM7U0FBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xGLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgTmdab25lLFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjbGFtcCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHRhcCwgcGx1Y2ssIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5U2xpZGVyVHlwZSA9ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xuXG5leHBvcnQgdHlwZSBUaHlTbGlkZXJTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnO1xuXG4vKipcbiAqIOa7keWKqOi+k+WFpeadoee7hOS7tlxuICogQG5hbWUgdGh5LXNsaWRlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNsaWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5U2xpZGVyKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6IGB0YWJJbmRleGBcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNsaWRlclxuICAgIGV4dGVuZHMgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gICAgLyoqXG4gICAgICog5piv5ZCm5YiH5o2i5Li657q16L205qih5byPXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbGlkZXItdmVydGljYWwnKVxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgdGh5VmVydGljYWwgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuemgeeUqFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2xpZGVyLWRpc2FibGVkJylcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIG92ZXJyaWRlIHNldCB0aHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsdWU7XG4gICAgICAgIHRoaXMudG9nZ2xlRGlzYWJsZWQoKTtcbiAgICB9XG4gICAgb3ZlcnJpZGUgZ2V0IHRoeURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktc2xpZGVyJykgX3RoeVNsaWRlciA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmN1cnNvci1wb2ludGVyJykgX3BvaW50ZXIgPSB0cnVlO1xuXG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyUmFpbCcsIHsgc3RhdGljOiB0cnVlIH0pIHNsaWRlclJhaWw6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdzbGlkZXJUcmFjaycsIHsgc3RhdGljOiB0cnVlIH0pIHNsaWRlclRyYWNrOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnc2xpZGVyUG9pbnRlcicsIHsgc3RhdGljOiB0cnVlIH0pIHNsaWRlclBvaW50ZXI6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlpKflgLxcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNYXggPSAxMDA7XG5cbiAgICAvKipcbiAgICAgKiDmnIDlsI/lgLxcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlNaW4gPSAwO1xuXG4gICAgLyoqXG4gICAgICog5q2l6ZW/77yM6ZyA6KaB6KKrIHRoeU1heCAtIHRoeU1pbiDnmoTlt67lgLzmlbTpmaTjgIJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0aHlTdGVwID0gMTtcblxuICAgIC8qKlxuICAgICAqIOWIh+aNouS4u+mimOexu+Wei1xuICAgICAqIEB0eXBlIHByaW1hcnkgfCBzdWNjZXNzIHwgaW5mbyB8IHdhcm5pbmcgfCBkYW5nZXJcbiAgICAgKiBAZGVmYXVsdCBzdWNjZXNzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVR5cGUodHlwZTogVGh5U2xpZGVyVHlwZSkge1xuICAgICAgICBpZiAodHlwZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudHlwZUNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudHlwZUNsYXNzTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5hZGRDbGFzcyh0eXBlID8gYHRoeS1zbGlkZXItJHt0eXBlfWAgOiAnJyk7XG4gICAgICAgICAgICB0aGlzLnR5cGVDbGFzc05hbWUgPSBgdGh5LXNsaWRlci0ke3R5cGV9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmAmui/h+WPmOmHj+iuvue9ruminOiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvbG9yOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmu5HliqjovpPlhaXmnaHlpKflsI9cbiAgICAgKiBAdHlwZSBzbSB8IG1kIHwgbGdcbiAgICAgKiBAZGVmYXVsdCBzbVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlTaXplKHNpemU6IFRoeVNsaWRlclNpemUpIHtcbiAgICAgICAgaWYgKHNpemUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNpemVDbGFzc05hbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnNpemVDbGFzc05hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuYWRkQ2xhc3Moc2l6ZSA/IGB0aHktc2xpZGVyLSR7c2l6ZX1gIDogJycpO1xuICAgICAgICAgICAgdGhpcy5zaXplQ2xhc3NOYW1lID0gYHRoeS1zbGlkZXItJHtzaXplfWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDnp7vliqjnu5PmnZ/lkI7nmoTlm57osIPvvIzlj4LmlbDkuLrlvZPliY3lgLxcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5QWZ0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdmFsdWU6IG51bWJlciB9PigpO1xuXG4gICAgcHVibGljIHZhbHVlOiBudW1iZXI7XG5cbiAgICBwcml2YXRlIHR5cGVDbGFzc05hbWUgPSAnJztcblxuICAgIHByaXZhdGUgc2l6ZUNsYXNzTmFtZSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBkcmFnU3RhcnRMaXN0ZW5lcjogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gICAgcHJpdmF0ZSBkcmFnTW92ZUxpc3RlbmVyOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICBwcml2YXRlIGRyYWdFbmRMaXN0ZW5lcjogT2JzZXJ2YWJsZTxFdmVudD47XG5cbiAgICBwcml2YXRlIGRyYWdTdGFydEhhbmRsZXI6IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgICBwcml2YXRlIGRyYWdNb3ZlSGFuZGxlcjogU3Vic2NyaXB0aW9uIHwgbnVsbDtcblxuICAgIHByaXZhdGUgZHJhZ0VuZEhhbmRsZXI6IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrID0gKHY6IGFueSkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrID0gKHY6IGFueSkgPT4ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICB2ZXJpZnlNaW5BbmRNYXgodGhpcyk7XG4gICAgICAgICAgICB2ZXJpZnlTdGVwVmFsdWVzKHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5lbnN1cmVWYWx1ZUluUmFuZ2UobnVsbCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTW91c2VFdmVudHNMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUobmV3VmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuZW5zdXJlVmFsdWVJblJhbmdlKG5ld1ZhbHVlKSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeU1pbicpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeU1heCcpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeVN0ZXAnKSkge1xuICAgICAgICAgICAgICAgIHZlcmlmeU1pbkFuZE1heCh0aGlzKTtcbiAgICAgICAgICAgICAgICB2ZXJpZnlTdGVwVmFsdWVzKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVNb3VzZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRGlzYWJsZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoWydzdGFydCddKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhY2tBbmRQb2ludGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5zdXJlVmFsdWVJblJhbmdlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVNdXN0QmVWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeU1pbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhbXAodmFsdWUsIHRoaXMudGh5TWluLCB0aGlzLnRoeU1heCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZU11c3RCZVZhbGlkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFpc05hTih0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUcmFja0FuZFBvaW50ZXIoKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMudmFsdWVUb09mZnNldCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTdHlsZShvZmZzZXQgLyAxMDApO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbHVlVG9PZmZzZXQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoKHZhbHVlIC0gdGhpcy50aHlNaW4pICogMTAwKSAvICh0aGlzLnRoeU1heCAtIHRoaXMudGh5TWluKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0eWxlKG9mZnNldFBlcmNlbnRhZ2U6IG51bWJlcikge1xuICAgICAgICBjb25zdCBwZXJjZW50YWdlID0gTWF0aC5taW4oMSwgTWF0aC5tYXgoMCwgb2Zmc2V0UGVyY2VudGFnZSkpO1xuICAgICAgICBjb25zdCBvcmllbnRGaWVsZHM6IHN0cmluZ1tdID0gdGhpcy50aHlWZXJ0aWNhbCA/IFsnaGVpZ2h0JywgJ2JvdHRvbSddIDogWyd3aWR0aCcsICdsZWZ0J107XG4gICAgICAgIHRoaXMuc2xpZGVyVHJhY2submF0aXZlRWxlbWVudC5zdHlsZVtvcmllbnRGaWVsZHNbMF1dID0gYCR7cGVyY2VudGFnZSAqIDEwMH0lYDtcbiAgICAgICAgdGhpcy5zbGlkZXJQb2ludGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGVbb3JpZW50RmllbGRzWzFdXSA9IGAke3BlcmNlbnRhZ2UgKiAxMDB9JWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZU1vdXNlTGlzdGVuZXJzKGFjdGlvbnM6IHN0cmluZ1tdID0gWydzdGFydCcsICdtb3ZlJywgJ2VuZCddKSB7XG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdzdGFydCcpICYmIHRoaXMuZHJhZ1N0YXJ0SGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kcmFnU3RhcnRIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdTdGFydEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdtb3ZlJykgJiYgdGhpcy5kcmFnTW92ZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ01vdmVIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdNb3ZlSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbnMuaW5jbHVkZXMoJ2VuZCcpICYmIHRoaXMuZHJhZ0VuZEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVNb3VzZUxpc3RlbmVycyhhY3Rpb25zOiBzdHJpbmdbXSA9IFsnc3RhcnQnLCAnbW92ZScsICdlbmQnXSkge1xuICAgICAgICBpZiAoYWN0aW9ucy5pbmNsdWRlcygnc3RhcnQnKSAmJiB0aGlzLmRyYWdTdGFydExpc3RlbmVyICYmICF0aGlzLmRyYWdTdGFydEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0SGFuZGxlciA9IHRoaXMuZHJhZ1N0YXJ0TGlzdGVuZXIuc3Vic2NyaWJlKHRoaXMubW91c2VTdGFydE1vdmluZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdtb3ZlJykgJiYgdGhpcy5kcmFnTW92ZUxpc3RlbmVyICYmICF0aGlzLmRyYWdNb3ZlSGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kcmFnTW92ZUhhbmRsZXIgPSB0aGlzLmRyYWdNb3ZlTGlzdGVuZXIuc3Vic2NyaWJlKHRoaXMubW91c2VNb3ZpbmcuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWN0aW9ucy5pbmNsdWRlcygnZW5kJykgJiYgdGhpcy5kcmFnRW5kTGlzdGVuZXIgJiYgIXRoaXMuZHJhZ0VuZEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIgPSB0aGlzLmRyYWdFbmRMaXN0ZW5lci5zdWJzY3JpYmUodGhpcy5tb3VzZVN0b3BNb3ZpbmcuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlU3RhcnRNb3ZpbmcodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnBvaW50ZXJDb250cm9sbGVyKHRydWUpO1xuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlTW92aW5nKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLmVuc3VyZVZhbHVlSW5SYW5nZSh2YWx1ZSkpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlU3RvcE1vdmluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wb2ludGVyQ29udHJvbGxlcihmYWxzZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLnRoeUFmdGVyQ2hhbmdlLmVtaXQoeyB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvaW50ZXJDb250cm9sbGVyKG1vdmFibGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKG1vdmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoWydtb3ZlJywgJ2VuZCddKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmVNb3VzZUxpc3RlbmVycyhbJ21vdmUnLCAnZW5kJ10pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgcmVnaXN0ZXJNb3VzZUV2ZW50c0xpc3RlbmVycygpIHtcbiAgICAgICAgY29uc3Qgb3JpZW50RmllbGQgPSB0aGlzLnRoeVZlcnRpY2FsID8gJ3BhZ2VZJyA6ICdwYWdlWCc7XG5cbiAgICAgICAgdGhpcy5kcmFnU3RhcnRMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpLnBpcGUoXG4gICAgICAgICAgICAgICAgcGx1Y2sob3JpZW50RmllbGQpLFxuICAgICAgICAgICAgICAgIG1hcCgocG9zaXRpb246IG51bWJlciwgaW5kZXgpID0+IHRoaXMubW91c2VQb3NpdGlvblRvQWRhcHRpdmVWYWx1ZShwb3NpdGlvbikpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRyYWdFbmRMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZHJhZ01vdmVMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHBsdWNrKG9yaWVudEZpZWxkKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIG1hcCgocG9zaXRpb246IG51bWJlcikgPT4gdGhpcy5tb3VzZVBvc2l0aW9uVG9BZGFwdGl2ZVZhbHVlKHBvc2l0aW9uKSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kcmFnRW5kTGlzdGVuZXIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlUG9zaXRpb25Ub0FkYXB0aXZlVmFsdWUocG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHNsaWRlclN0YXJ0UG9zaXRpb24gPSB0aGlzLmdldFNsaWRlclBhZ2VQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBzbGlkZXJMZW5ndGggPSB0aGlzLmdldFJhaWxMZW5ndGgoKTtcbiAgICAgICAgaWYgKCFzbGlkZXJMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhdGlvID0gdGhpcy5jb252ZXJ0UG9pbnRlclBvc2l0aW9uVG9SYXRpbyhwb3NpdGlvbiwgc2xpZGVyU3RhcnRQb3NpdGlvbiwgc2xpZGVyTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJhdGlvVG9WYWx1ZShyYXRpbyk7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlLnRvRml4ZWQodGhpcy5nZXREZWNpbWFscyh0aGlzLnRoeVN0ZXApKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTbGlkZXJQYWdlUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICAgICAgY29uc3Qgb3JpZW50RmllbGRzOiBzdHJpbmdbXSA9IHRoaXMudGh5VmVydGljYWwgPyBbJ2JvdHRvbScsICdwYWdlWU9mZnNldCddIDogWydsZWZ0JywgJ3BhZ2VYT2Zmc2V0J107XG4gICAgICAgIHJldHVybiByZWN0W29yaWVudEZpZWxkc1swXV0gKyB3aW5kb3dbb3JpZW50RmllbGRzWzFdXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJhaWxMZW5ndGgoKSB7XG4gICAgICAgIGNvbnN0IG9yaWVudEZpbGVkID0gdGhpcy50aHlWZXJ0aWNhbCA/ICdjbGllbnRIZWlnaHQnIDogJ2NsaWVudFdpZHRoJztcblxuICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXJSYWlsLm5hdGl2ZUVsZW1lbnRbb3JpZW50RmlsZWRdO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFBvaW50ZXJQb3NpdGlvblRvUmF0aW8ocG9pbnRlclBvc2l0aW9uOiBudW1iZXIsIHN0YXJ0UG9zaXRpb246IG51bWJlciwgdG90YWxMZW5ndGg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy50aHlWZXJ0aWNhbCkge1xuICAgICAgICAgICAgcmV0dXJuIGNsYW1wKChzdGFydFBvc2l0aW9uIC0gcG9pbnRlclBvc2l0aW9uKSAvIHRvdGFsTGVuZ3RoLCAwLCAxKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhbXAoKHBvaW50ZXJQb3NpdGlvbiAtIHN0YXJ0UG9zaXRpb24pIC8gdG90YWxMZW5ndGgsIDAsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmF0aW9Ub1ZhbHVlKHJhdGlvOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gKHRoaXMudGh5TWF4IC0gdGhpcy50aHlNaW4pICogcmF0aW8gKyB0aGlzLnRoeU1pbjtcbiAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMudGh5U3RlcDtcbiAgICAgICAgaWYgKHJhdGlvID09PSAwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGh5TWluO1xuICAgICAgICB9IGVsc2UgaWYgKHJhdGlvID09PSAxKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGh5TWF4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFtcCh2YWx1ZSwgdGhpcy50aHlNaW4sIHRoaXMudGh5TWF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlY2ltYWxzKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGludGVnZXJMZW5ndGggPSB2YWx1ZVN0cmluZy5pbmRleE9mKCcuJykgKyAxO1xuICAgICAgICByZXR1cm4gaW50ZWdlckxlbmd0aCA+PSAwID8gdmFsdWVTdHJpbmcubGVuZ3RoIC0gaW50ZWdlckxlbmd0aCA6IDA7XG4gICAgfVxufVxuXG4vLyBOb3RlOiBrZWVwIGB2ZXJpZnlNaW5BbmRNYXhgIGFuZCBgdmVyaWZ5U3RlcFZhbHVlc2AgYXMgc2VwYXJhdGUgZnVuY3Rpb25zIChub3QgYXMgY2xhc3MgcHJvcGVydGllcylcbi8vIHNvIHRoZXkncmUgdHJlZS1zaGFrYWJsZSBpbiBwcm9kdWN0aW9uIG1vZGUuXG5cbmZ1bmN0aW9uIHZlcmlmeU1pbkFuZE1heChjdHg6IFRoeVNsaWRlcik6IHZvaWQgfCBuZXZlciB7XG4gICAgaWYgKGN0eC50aHlNaW4gPj0gY3R4LnRoeU1heCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbiB2YWx1ZSBtdXN0IGxlc3MgdGhhbiBtYXggdmFsdWUuJyk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGVwVmFsdWVzKGN0eDogVGh5U2xpZGVyKTogdm9pZCB8IG5ldmVyIHtcbiAgICBpZiAoY3R4LnRoeVN0ZXAgPD0gMCB8fCAhY3R4LnRoeVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGVwIHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuJyk7XG4gICAgfSBlbHNlIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGN0eC50aHlTdGVwKSAmJiAoY3R4LnRoeU1heCAtIGN0eC50aHlNaW4pICUgY3R4LnRoeVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCcobWF4IC0gbWluKSBtdXN0IGJlIGRpdmlzaWJsZSBieSBzdGVwLicpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktc2xpZGVyLXJhaWxcIiAjc2xpZGVyUmFpbD5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZXItdHJhY2tcIiAjc2xpZGVyVHJhY2sgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHRoeUNvbG9yIH1cIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZXItcG9pbnRlclwiICNzbGlkZXJQb2ludGVyIFtuZ1N0eWxlXT1cInsgJ2JvcmRlci1jb2xvcic6IHRoeUNvbG9yIH1cIj48L2Rpdj5cbjwvZGl2PlxuIl19
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zbGlkZXIvc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBTVQsVUFBVSxFQUNWLEtBQUssRUFDTCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixNQUFNLEVBQ04sZUFBZSxFQUNmLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU0xQzs7OztHQUlHO0FBaUJILE1BQU0sT0FBTyxTQUNULFNBQVEseUNBQXlDO0lBY2pEOztPQUVHO0lBQ0gsSUFFYSxXQUFXLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQWEsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQTZCRDs7OztPQUlHO0lBQ0gsSUFBYSxPQUFPLENBQUMsSUFBbUI7UUFDcEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxjQUFjLElBQUksRUFBRSxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDO0lBT0Q7Ozs7T0FJRztJQUNILElBQWEsT0FBTyxDQUFDLElBQW1CO1FBQ3BDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3RELENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxhQUFhLEdBQUcsY0FBYyxJQUFJLEVBQUUsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQStCRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBcEhKLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFFBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakM7O1dBRUc7UUFHSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQWVwQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWdCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFZCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBUXJEOztXQUVHO1FBQ29DLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFFcEQ7O1dBRUc7UUFDb0MsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVsRDs7V0FFRztRQUNvQyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBcUNuRDs7V0FFRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFJekQsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFFbkIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFjbkIsaUJBQVksR0FBRyxlQUFlLEVBQUUsQ0FBQztRQUVqQyxxQkFBZ0IsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRWxDLHNCQUFpQixHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFJM0MsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNoRCxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFnQjtRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2hELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDNUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLGNBQWM7UUFDbEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFhO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBYTtRQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFhO1FBQy9CLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU8sV0FBVyxDQUFDLGdCQUF3QjtRQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQWEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFVBQVUsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUMvRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDckYsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFVBQW9CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFDMUUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQztJQUVPLHVCQUF1QixDQUFDLFVBQW9CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7UUFDeEUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM3RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFGLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxPQUFnQjtRQUN0QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUNPLDRCQUE0QjtRQUNoQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUV6RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDeEQsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN0RCxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQ2xCLEdBQUcsQ0FBQyxDQUFDLFFBQWdCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDaEYsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUN0RCxPQUFPLFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDdkQsT0FBTyxTQUFTLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLENBQUMsQ0FBUSxFQUFFLEVBQUU7Z0JBQ2IsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUNsQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDdEUsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDbEMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLDRCQUE0QixDQUFDLFFBQWdCO1FBQ2pELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDNUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUNoRSxNQUFNLFlBQVksR0FBYSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDdEcsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxhQUFhO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRXRFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLDZCQUE2QixDQUFDLGVBQXVCLEVBQUUsYUFBcUIsRUFBRSxXQUFtQjtRQUNyRyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixPQUFPLEtBQUssQ0FBQyxDQUFDLGFBQWEsR0FBRyxlQUFlLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYTtRQUM5QixJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzlELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDMUIsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDZCxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4QixDQUFDO2FBQU0sSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckIsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDSixLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFhO1FBQzdCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxPQUFPLGFBQWEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs4R0FsVlEsU0FBUztrR0FBVCxTQUFTLG9HQVlFLHFCQUFxQiwrQ0FPckIscUJBQXFCLGdDQXdCckIsZUFBZSxnQ0FLZixlQUFlLG1DQUtmLGVBQWUsOFZBbEV4QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO2dCQUN4QyxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osd1pDN0NMLG1RQUlBLDRDRDhDYyxPQUFPOzsyRkFFUixTQUFTO2tCQWhCckIsU0FBUzsrQkFDSSxZQUFZLGFBRVg7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDOzRCQUN4QyxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixRQUNLO3dCQUNGLGlCQUFpQixFQUFFLFVBQVU7cUJBQ2hDLGNBQ1csSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDO3dEQWVsQixXQUFXO3NCQUZWLFdBQVc7dUJBQUMsdUJBQXVCOztzQkFDbkMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFROUIsV0FBVztzQkFGdkIsV0FBVzt1QkFBQyx1QkFBdUI7O3NCQUNuQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVdWLFVBQVU7c0JBQTFDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUVNLFFBQVE7c0JBQTVDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUVRLFVBQVU7c0JBQXBELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFRyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRUksYUFBYTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUtMLE1BQU07c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUtFLE1BQU07c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUtFLE9BQU87c0JBQTdDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU94QixPQUFPO3NCQUFuQixLQUFLO2dCQWFHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT08sT0FBTztzQkFBbkIsS0FBSztnQkFhSSxjQUFjO3NCQUF2QixNQUFNOztBQXdQWCxzR0FBc0c7QUFDdEcsK0NBQStDO0FBRS9DLFNBQVMsZUFBZSxDQUFDLEdBQWM7SUFDbkMsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEdBQWM7SUFDcEMsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztTQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEYsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0lBQzlELENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE91dHB1dCxcbiAgICBOZ1pvbmUsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjbGFtcCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHRhcCwgcGx1Y2ssIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYkluZGV4RGlzYWJsZWRDb250cm9sVmFsdWVBY2Nlc3Nvck1peGluIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5U2xpZGVyVHlwZSA9ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xuXG5leHBvcnQgdHlwZSBUaHlTbGlkZXJTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnO1xuXG4vKipcbiAqIOa7keWKqOi+k+WFpeadoee7hOS7tlxuICogQG5hbWUgdGh5LXNsaWRlclxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNsaWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5U2xpZGVyKSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6IGB0YWJJbmRleGBcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNsaWRlclxuICAgIGV4dGVuZHMgVGFiSW5kZXhEaXNhYmxlZENvbnRyb2xWYWx1ZUFjY2Vzc29yTWl4aW5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbliIfmjaLkuLrnurXovbTmqKHlvI9cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNsaWRlci12ZXJ0aWNhbCcpXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICB0aHlWZXJ0aWNhbCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm56aB55SoXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zbGlkZXItZGlzYWJsZWQnKVxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgb3ZlcnJpZGUgc2V0IHRoeURpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgIH1cbiAgICBvdmVycmlkZSBnZXQgdGh5RGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1zbGlkZXInKSBfdGh5U2xpZGVyID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY3Vyc29yLXBvaW50ZXInKSBfcG9pbnRlciA9IHRydWU7XG5cbiAgICBAVmlld0NoaWxkKCdzbGlkZXJSYWlsJywgeyBzdGF0aWM6IHRydWUgfSkgc2xpZGVyUmFpbDogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ3NsaWRlclRyYWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc2xpZGVyVHJhY2s6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdzbGlkZXJQb2ludGVyJywgeyBzdGF0aWM6IHRydWUgfSkgc2xpZGVyUG9pbnRlcjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIOacgOWkp+WAvFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU1heCA9IDEwMDtcblxuICAgIC8qKlxuICAgICAqIOacgOWwj+WAvFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeU1pbiA9IDA7XG5cbiAgICAvKipcbiAgICAgKiDmraXplb/vvIzpnIDopoHooqsgdGh5TWF4IC0gdGh5TWluIOeahOW3ruWAvOaVtOmZpOOAglxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeVN0ZXAgPSAxO1xuXG4gICAgLyoqXG4gICAgICog5YiH5o2i5Li76aKY57G75Z6LXG4gICAgICogQHR5cGUgcHJpbWFyeSB8IHN1Y2Nlc3MgfCBpbmZvIHwgd2FybmluZyB8IGRhbmdlclxuICAgICAqIEBkZWZhdWx0IHN1Y2Nlc3NcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5VHlwZSh0eXBlOiBUaHlTbGlkZXJUeXBlKSB7XG4gICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50eXBlQ2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50eXBlQ2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLmFkZENsYXNzKHR5cGUgPyBgdGh5LXNsaWRlci0ke3R5cGV9YCA6ICcnKTtcbiAgICAgICAgICAgIHRoaXMudHlwZUNsYXNzTmFtZSA9IGB0aHktc2xpZGVyLSR7dHlwZX1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6YCa6L+H5Y+Y6YeP6K6+572u6aKc6ImyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOa7keWKqOi+k+WFpeadoeWkp+Wwj1xuICAgICAqIEB0eXBlIHNtIHwgbWQgfCBsZ1xuICAgICAqIEBkZWZhdWx0IHNtXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVNpemUoc2l6ZTogVGh5U2xpZGVyU2l6ZSkge1xuICAgICAgICBpZiAoc2l6ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2l6ZUNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuc2l6ZUNsYXNzTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5hZGRDbGFzcyhzaXplID8gYHRoeS1zbGlkZXItJHtzaXplfWAgOiAnJyk7XG4gICAgICAgICAgICB0aGlzLnNpemVDbGFzc05hbWUgPSBgdGh5LXNsaWRlci0ke3NpemV9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOenu+WKqOe7k+adn+WQjueahOWbnuiwg++8jOWPguaVsOS4uuW9k+WJjeWAvFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlBZnRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogbnVtYmVyIH0+KCk7XG5cbiAgICBwdWJsaWMgdmFsdWU6IG51bWJlcjtcblxuICAgIHByaXZhdGUgdHlwZUNsYXNzTmFtZSA9ICcnO1xuXG4gICAgcHJpdmF0ZSBzaXplQ2xhc3NOYW1lID0gJyc7XG5cbiAgICBwcml2YXRlIGRyYWdTdGFydExpc3RlbmVyOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgICBwcml2YXRlIGRyYWdNb3ZlTGlzdGVuZXI6IE9ic2VydmFibGU8bnVtYmVyPjtcblxuICAgIHByaXZhdGUgZHJhZ0VuZExpc3RlbmVyOiBPYnNlcnZhYmxlPEV2ZW50PjtcblxuICAgIHByaXZhdGUgZHJhZ1N0YXJ0SGFuZGxlcjogU3Vic2NyaXB0aW9uIHwgbnVsbDtcblxuICAgIHByaXZhdGUgZHJhZ01vdmVIYW5kbGVyOiBTdWJzY3JpcHRpb24gfCBudWxsO1xuXG4gICAgcHJpdmF0ZSBkcmFnRW5kSGFuZGxlcjogU3Vic2NyaXB0aW9uIHwgbnVsbDtcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2sgPSAodjogYW55KSA9PiB7fTtcblxuICAgIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2sgPSAodjogYW55KSA9PiB7fTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgICAgICB2ZXJpZnlNaW5BbmRNYXgodGhpcyk7XG4gICAgICAgICAgICB2ZXJpZnlTdGVwVmFsdWVzKHRoaXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5lbnN1cmVWYWx1ZUluUmFuZ2UobnVsbCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTW91c2VFdmVudHNMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy50b2dnbGVEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUobmV3VmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuZW5zdXJlVmFsdWVJblJhbmdlKG5ld1ZhbHVlKSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeU1pbicpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeU1heCcpIHx8IGNoYW5nZXMuaGFzT3duUHJvcGVydHkoJ3RoeVN0ZXAnKSkge1xuICAgICAgICAgICAgICAgIHZlcmlmeU1pbkFuZE1heCh0aGlzKTtcbiAgICAgICAgICAgICAgICB2ZXJpZnlTdGVwVmFsdWVzKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVNb3VzZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdG9nZ2xlRGlzYWJsZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoWydzdGFydCddKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVHJhY2tBbmRQb2ludGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5zdXJlVmFsdWVJblJhbmdlKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVNdXN0QmVWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRoeU1pbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhbXAodmFsdWUsIHRoaXMudGh5TWluLCB0aGlzLnRoeU1heCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZU11c3RCZVZhbGlkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFpc05hTih0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUcmFja0FuZFBvaW50ZXIoKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMudmFsdWVUb09mZnNldCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTdHlsZShvZmZzZXQgLyAxMDApO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbHVlVG9PZmZzZXQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoKHZhbHVlIC0gdGhpcy50aHlNaW4pICogMTAwKSAvICh0aGlzLnRoeU1heCAtIHRoaXMudGh5TWluKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVN0eWxlKG9mZnNldFBlcmNlbnRhZ2U6IG51bWJlcikge1xuICAgICAgICBjb25zdCBwZXJjZW50YWdlID0gTWF0aC5taW4oMSwgTWF0aC5tYXgoMCwgb2Zmc2V0UGVyY2VudGFnZSkpO1xuICAgICAgICBjb25zdCBvcmllbnRGaWVsZHM6IHN0cmluZ1tdID0gdGhpcy50aHlWZXJ0aWNhbCA/IFsnaGVpZ2h0JywgJ2JvdHRvbSddIDogWyd3aWR0aCcsICdsZWZ0J107XG4gICAgICAgIHRoaXMuc2xpZGVyVHJhY2submF0aXZlRWxlbWVudC5zdHlsZVtvcmllbnRGaWVsZHNbMF1dID0gYCR7cGVyY2VudGFnZSAqIDEwMH0lYDtcbiAgICAgICAgdGhpcy5zbGlkZXJQb2ludGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGVbb3JpZW50RmllbGRzWzFdXSA9IGAke3BlcmNlbnRhZ2UgKiAxMDB9JWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZU1vdXNlTGlzdGVuZXJzKGFjdGlvbnM6IHN0cmluZ1tdID0gWydzdGFydCcsICdtb3ZlJywgJ2VuZCddKSB7XG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdzdGFydCcpICYmIHRoaXMuZHJhZ1N0YXJ0SGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kcmFnU3RhcnRIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdTdGFydEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdtb3ZlJykgJiYgdGhpcy5kcmFnTW92ZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ01vdmVIYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdNb3ZlSGFuZGxlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbnMuaW5jbHVkZXMoJ2VuZCcpICYmIHRoaXMuZHJhZ0VuZEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVNb3VzZUxpc3RlbmVycyhhY3Rpb25zOiBzdHJpbmdbXSA9IFsnc3RhcnQnLCAnbW92ZScsICdlbmQnXSkge1xuICAgICAgICBpZiAoYWN0aW9ucy5pbmNsdWRlcygnc3RhcnQnKSAmJiB0aGlzLmRyYWdTdGFydExpc3RlbmVyICYmICF0aGlzLmRyYWdTdGFydEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0SGFuZGxlciA9IHRoaXMuZHJhZ1N0YXJ0TGlzdGVuZXIuc3Vic2NyaWJlKHRoaXMubW91c2VTdGFydE1vdmluZy5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhY3Rpb25zLmluY2x1ZGVzKCdtb3ZlJykgJiYgdGhpcy5kcmFnTW92ZUxpc3RlbmVyICYmICF0aGlzLmRyYWdNb3ZlSGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5kcmFnTW92ZUhhbmRsZXIgPSB0aGlzLmRyYWdNb3ZlTGlzdGVuZXIuc3Vic2NyaWJlKHRoaXMubW91c2VNb3ZpbmcuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWN0aW9ucy5pbmNsdWRlcygnZW5kJykgJiYgdGhpcy5kcmFnRW5kTGlzdGVuZXIgJiYgIXRoaXMuZHJhZ0VuZEhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VuZEhhbmRsZXIgPSB0aGlzLmRyYWdFbmRMaXN0ZW5lci5zdWJzY3JpYmUodGhpcy5tb3VzZVN0b3BNb3ZpbmcuYmluZCh0aGlzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlU3RhcnRNb3ZpbmcodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnBvaW50ZXJDb250cm9sbGVyKHRydWUpO1xuICAgICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlTW92aW5nKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLmVuc3VyZVZhbHVlSW5SYW5nZSh2YWx1ZSkpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlU3RvcE1vdmluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wb2ludGVyQ29udHJvbGxlcihmYWxzZSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLnRoeUFmdGVyQ2hhbmdlLmVtaXQoeyB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvaW50ZXJDb250cm9sbGVyKG1vdmFibGU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKG1vdmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlTW91c2VMaXN0ZW5lcnMoWydtb3ZlJywgJ2VuZCddKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmVNb3VzZUxpc3RlbmVycyhbJ21vdmUnLCAnZW5kJ10pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgcmVnaXN0ZXJNb3VzZUV2ZW50c0xpc3RlbmVycygpIHtcbiAgICAgICAgY29uc3Qgb3JpZW50RmllbGQgPSB0aGlzLnRoeVZlcnRpY2FsID8gJ3BhZ2VZJyA6ICdwYWdlWCc7XG5cbiAgICAgICAgdGhpcy5kcmFnU3RhcnRMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5yZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpLnBpcGUoXG4gICAgICAgICAgICAgICAgcGx1Y2sob3JpZW50RmllbGQpLFxuICAgICAgICAgICAgICAgIG1hcCgocG9zaXRpb246IG51bWJlciwgaW5kZXgpID0+IHRoaXMubW91c2VQb3NpdGlvblRvQWRhcHRpdmVWYWx1ZShwb3NpdGlvbikpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRyYWdFbmRMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZXVwJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZHJhZ01vdmVMaXN0ZW5lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHBsdWNrKG9yaWVudEZpZWxkKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIG1hcCgocG9zaXRpb246IG51bWJlcikgPT4gdGhpcy5tb3VzZVBvc2l0aW9uVG9BZGFwdGl2ZVZhbHVlKHBvc2l0aW9uKSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kcmFnRW5kTGlzdGVuZXIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1vdXNlUG9zaXRpb25Ub0FkYXB0aXZlVmFsdWUocG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHNsaWRlclN0YXJ0UG9zaXRpb24gPSB0aGlzLmdldFNsaWRlclBhZ2VQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBzbGlkZXJMZW5ndGggPSB0aGlzLmdldFJhaWxMZW5ndGgoKTtcbiAgICAgICAgaWYgKCFzbGlkZXJMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJhdGlvID0gdGhpcy5jb252ZXJ0UG9pbnRlclBvc2l0aW9uVG9SYXRpbyhwb3NpdGlvbiwgc2xpZGVyU3RhcnRQb3NpdGlvbiwgc2xpZGVyTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnJhdGlvVG9WYWx1ZShyYXRpbyk7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlLnRvRml4ZWQodGhpcy5nZXREZWNpbWFscyh0aGlzLnRoeVN0ZXApKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTbGlkZXJQYWdlUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgcmVjdCA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICAgICAgY29uc3Qgb3JpZW50RmllbGRzOiBzdHJpbmdbXSA9IHRoaXMudGh5VmVydGljYWwgPyBbJ2JvdHRvbScsICdwYWdlWU9mZnNldCddIDogWydsZWZ0JywgJ3BhZ2VYT2Zmc2V0J107XG4gICAgICAgIHJldHVybiByZWN0W29yaWVudEZpZWxkc1swXV0gKyB3aW5kb3dbb3JpZW50RmllbGRzWzFdXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJhaWxMZW5ndGgoKSB7XG4gICAgICAgIGNvbnN0IG9yaWVudEZpbGVkID0gdGhpcy50aHlWZXJ0aWNhbCA/ICdjbGllbnRIZWlnaHQnIDogJ2NsaWVudFdpZHRoJztcblxuICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXJSYWlsLm5hdGl2ZUVsZW1lbnRbb3JpZW50RmlsZWRdO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFBvaW50ZXJQb3NpdGlvblRvUmF0aW8ocG9pbnRlclBvc2l0aW9uOiBudW1iZXIsIHN0YXJ0UG9zaXRpb246IG51bWJlciwgdG90YWxMZW5ndGg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy50aHlWZXJ0aWNhbCkge1xuICAgICAgICAgICAgcmV0dXJuIGNsYW1wKChzdGFydFBvc2l0aW9uIC0gcG9pbnRlclBvc2l0aW9uKSAvIHRvdGFsTGVuZ3RoLCAwLCAxKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhbXAoKHBvaW50ZXJQb3NpdGlvbiAtIHN0YXJ0UG9zaXRpb24pIC8gdG90YWxMZW5ndGgsIDAsIDEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmF0aW9Ub1ZhbHVlKHJhdGlvOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gKHRoaXMudGh5TWF4IC0gdGhpcy50aHlNaW4pICogcmF0aW8gKyB0aGlzLnRoeU1pbjtcbiAgICAgICAgY29uc3Qgc3RlcCA9IHRoaXMudGh5U3RlcDtcbiAgICAgICAgaWYgKHJhdGlvID09PSAwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGh5TWluO1xuICAgICAgICB9IGVsc2UgaWYgKHJhdGlvID09PSAxKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGh5TWF4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlIC8gc3RlcCkgKiBzdGVwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFtcCh2YWx1ZSwgdGhpcy50aHlNaW4sIHRoaXMudGh5TWF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlY2ltYWxzKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGludGVnZXJMZW5ndGggPSB2YWx1ZVN0cmluZy5pbmRleE9mKCcuJykgKyAxO1xuICAgICAgICByZXR1cm4gaW50ZWdlckxlbmd0aCA+PSAwID8gdmFsdWVTdHJpbmcubGVuZ3RoIC0gaW50ZWdlckxlbmd0aCA6IDA7XG4gICAgfVxufVxuXG4vLyBOb3RlOiBrZWVwIGB2ZXJpZnlNaW5BbmRNYXhgIGFuZCBgdmVyaWZ5U3RlcFZhbHVlc2AgYXMgc2VwYXJhdGUgZnVuY3Rpb25zIChub3QgYXMgY2xhc3MgcHJvcGVydGllcylcbi8vIHNvIHRoZXkncmUgdHJlZS1zaGFrYWJsZSBpbiBwcm9kdWN0aW9uIG1vZGUuXG5cbmZ1bmN0aW9uIHZlcmlmeU1pbkFuZE1heChjdHg6IFRoeVNsaWRlcik6IHZvaWQgfCBuZXZlciB7XG4gICAgaWYgKGN0eC50aHlNaW4gPj0gY3R4LnRoeU1heCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbiB2YWx1ZSBtdXN0IGxlc3MgdGhhbiBtYXggdmFsdWUuJyk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGVwVmFsdWVzKGN0eDogVGh5U2xpZGVyKTogdm9pZCB8IG5ldmVyIHtcbiAgICBpZiAoY3R4LnRoeVN0ZXAgPD0gMCB8fCAhY3R4LnRoeVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzdGVwIHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAuJyk7XG4gICAgfSBlbHNlIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGN0eC50aHlTdGVwKSAmJiAoY3R4LnRoeU1heCAtIGN0eC50aHlNaW4pICUgY3R4LnRoeVN0ZXApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCcobWF4IC0gbWluKSBtdXN0IGJlIGRpdmlzaWJsZSBieSBzdGVwLicpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktc2xpZGVyLXJhaWxcIiAjc2xpZGVyUmFpbD5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZXItdHJhY2tcIiAjc2xpZGVyVHJhY2sgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHRoeUNvbG9yIH1cIj48L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRoeS1zbGlkZXItcG9pbnRlclwiICNzbGlkZXJQb2ludGVyIFtuZ1N0eWxlXT1cInsgJ2JvcmRlci1jb2xvcic6IHRoeUNvbG9yIH1cIj48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -2,7 +2,7 @@ import { useHostRenderer } from '@tethys/cdk/dom';
2
2
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, Directive, HostBinding, inject, Input, QueryList, TemplateRef } from '@angular/core';
4
4
  import { getNumericSize } from 'ngx-tethys/core';
5
- import { NgFor, NgTemplateOutlet } from '@angular/common';
5
+ import { NgTemplateOutlet } from '@angular/common';
6
6
  import { coerceBooleanProperty } from 'ngx-tethys/util';
7
7
  import * as i0 from "@angular/core";
8
8
  /**
@@ -33,6 +33,16 @@ const DEFAULT_SIZE = 'md';
33
33
  * @order 10
34
34
  */
35
35
  export class ThySpace {
36
+ constructor() {
37
+ this.cdr = inject(ChangeDetectorRef);
38
+ this.destroyRef = inject(DestroyRef);
39
+ this.space = getNumericSize(DEFAULT_SIZE);
40
+ this.hostRenderer = useHostRenderer();
41
+ /**
42
+ * 间距垂直方向,默认是水平方向
43
+ */
44
+ this.thyVertical = false;
45
+ }
36
46
  /**
37
47
  * 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小
38
48
  * @type string | number
@@ -47,31 +57,21 @@ export class ThySpace {
47
57
  set thyAlign(align) {
48
58
  this.hostRenderer.updateClass(align ? [`align-items-${align}`] : []);
49
59
  }
50
- constructor(cdr) {
51
- this.cdr = cdr;
52
- this.destroyRef = inject(DestroyRef);
53
- this.space = getNumericSize(DEFAULT_SIZE);
54
- this.hostRenderer = useHostRenderer();
55
- /**
56
- * 间距垂直方向,默认是水平方向
57
- */
58
- this.thyVertical = false;
59
- }
60
60
  ngOnInit() { }
61
61
  ngAfterContentInit() {
62
62
  this.items.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
63
63
  this.cdr.markForCheck();
64
64
  });
65
65
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySpace, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThySpace, isStandalone: true, selector: "thy-space", inputs: { thySize: "thySize", thyVertical: ["thyVertical", "thyVertical", coerceBooleanProperty], thyAlign: "thyAlign" }, host: { properties: { "class.thy-space-vertical": "this.thyVertical" }, classAttribute: "thy-space" }, queries: [{ propertyName: "items", predicate: ThySpaceItemDirective, read: TemplateRef }], ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template ngFor let-item let-last=\"last\" let-index=\"index\" [ngForOf]=\"items\">\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySpace, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThySpace, isStandalone: true, selector: "thy-space", inputs: { thySize: "thySize", thyVertical: ["thyVertical", "thyVertical", coerceBooleanProperty], thyAlign: "thyAlign" }, host: { properties: { "class.thy-space-vertical": "this.thyVertical" }, classAttribute: "thy-space" }, queries: [{ propertyName: "items", predicate: ThySpaceItemDirective, read: TemplateRef }], ngImport: i0, template: "<ng-content></ng-content>\n\n@for (item of items; track $index; let last = $last; let index = $index) {\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
68
68
  }
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThySpace, decorators: [{
70
70
  type: Component,
71
71
  args: [{ selector: 'thy-space', changeDetection: ChangeDetectionStrategy.OnPush, host: {
72
72
  class: 'thy-space'
73
- }, standalone: true, imports: [NgFor, NgTemplateOutlet], template: "<ng-content></ng-content>\n\n<ng-template ngFor let-item let-last=\"last\" let-index=\"index\" [ngForOf]=\"items\">\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n</ng-template>\n" }]
74
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { thySize: [{
73
+ }, standalone: true, imports: [NgTemplateOutlet], template: "<ng-content></ng-content>\n\n@for (item of items; track $index; let last = $last; let index = $index) {\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n}\n" }]
74
+ }], propDecorators: { thySize: [{
75
75
  type: Input
76
76
  }], thyVertical: [{
77
77
  type: HostBinding,
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
85
85
  type: ContentChildren,
86
86
  args: [ThySpaceItemDirective, { read: TemplateRef }]
87
87
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NwYWNlL3NwYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zcGFjZS9zcGFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxXQUFXLEVBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXhEOzs7O0dBSUc7QUFRSCxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7OEdBSFYscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBUGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxnQkFBZ0I7cUJBQzFCO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7QUFPRCxNQUFNLFlBQVksR0FBbUIsSUFBSSxDQUFDO0FBRTFDOzs7O0dBSUc7QUFXSCxNQUFNLE9BQU8sUUFBUTtJQU9qQjs7O09BR0c7SUFDSCxJQUFhLE9BQU8sQ0FBQyxJQUFvQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQVNELHlDQUF5QztJQUN6Qzs7T0FFRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUlELFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBaEN6QixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFDLFVBQUssR0FBVyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFNUMsaUJBQVksR0FBRyxlQUFlLEVBQUUsQ0FBQztRQVV6Qzs7V0FFRztRQUdILGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBYWdCLENBQUM7SUFFOUMsUUFBUSxLQUFVLENBQUM7SUFFbkIsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBekNRLFFBQVE7a0dBQVIsUUFBUSx1SEFtQkcscUJBQXFCLGdMQVl4QixxQkFBcUIsUUFBVSxXQUFXLDZCQ3hGL0Qsa1NBT0EsNENEZ0RjLEtBQUssbUhBQUUsZ0JBQWdCOzsyRkFFeEIsUUFBUTtrQkFWcEIsU0FBUzsrQkFDSSxXQUFXLG1CQUVKLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLFdBQVc7cUJBQ3JCLGNBQ1csSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDO3NGQWFyQixPQUFPO3NCQUFuQixLQUFLO2dCQVNOLFdBQVc7c0JBRlYsV0FBVzt1QkFBQywwQkFBMEI7O3NCQUN0QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQVF2QyxRQUFRO3NCQURYLEtBQUs7Z0JBS3lELEtBQUs7c0JBQW5FLGVBQWU7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlTcGFjaW5nU2l6ZSwgZ2V0TnVtZXJpY1NpemUgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqXG4gKiDpl7Tot53nu4Tku7bpobnvvIzkvb/nlKjnu5PmnoTmgKfmjIfku6QgKnRoeVNwYWNlSXRlbSDkvKDlhaXmqKHmnb9cbiAqIEBuYW1lIHRoeVNwYWNlSXRlbVxuICogQG9yZGVyIDIwXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3RoeVNwYWNlSXRlbV0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktc3BhY2UtaXRlbSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5U3BhY2VJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG5cbmNvbnN0IERFRkFVTFRfU0laRTogVGh5U3BhY2luZ1NpemUgPSAnbWQnO1xuXG4vKipcbiAqIOmXtOi3nee7hOS7tlxuICogQG5hbWUgdGh5LXNwYWNlXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktc3BhY2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGFjZS5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1zcGFjZSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTcGFjZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgcHVibGljIHNwYWNlOiBudW1iZXIgPSBnZXROdW1lcmljU2l6ZShERUZBVUxUX1NJWkUpO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOWkp+Wwj++8jOaUr+aMgSBgemVyb2AgfCBgeHhzYCB8IGB4c2AgfCBgc21gIHwgYG1kYCB8IGBsZ2AgfCBgeGxnYCDlkozoh6rlrprkuYnmlbDlrZflpKflsI9cbiAgICAgKiBAdHlwZSBzdHJpbmcgfCBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5U2l6ZShzaXplOiBUaHlTcGFjaW5nU2l6ZSkge1xuICAgICAgICB0aGlzLnNwYWNlID0gZ2V0TnVtZXJpY1NpemUoc2l6ZSwgREVGQVVMVF9TSVpFKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpl7Tot53lnoLnm7TmlrnlkJHvvIzpu5jorqTmmK/msLTlubPmlrnlkJFcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLnRoeS1zcGFjZS12ZXJ0aWNhbGApXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICB0aHlWZXJ0aWNhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gQENsYXNzQmluZGluZyhgYWxpZ24taXRlbXMte3t2YWx1ZX19YClcbiAgICAvKipcbiAgICAgKiDlr7npvZDmlrnlvI/vvIzlj6/pgInmi6kgYHN0YXJ0YCB8IGBlbmRgIHwgYGJhc2VsaW5lYCB8IGBjZW50ZXJgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QWxpZ24oYWxpZ246IHN0cmluZykge1xuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhhbGlnbiA/IFtgYWxpZ24taXRlbXMtJHthbGlnbn1gXSA6IFtdKTtcbiAgICB9XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRoeVNwYWNlSXRlbURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBpdGVtcyE6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zLmNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbjxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtaXRlbSBsZXQtbGFzdD1cImxhc3RcIiBsZXQtaW5kZXg9XCJpbmRleFwiIFtuZ0Zvck9mXT1cIml0ZW1zXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aHktc3BhY2UtaXRlbVwiIFtzdHlsZS5tYXJnaW4tcmlnaHQucHhdPVwibGFzdCA/IG51bGwgOiBzcGFjZVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NwYWNlL3NwYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zcGFjZS9zcGFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsRUFDVCxXQUFXLEVBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFeEQ7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzs4R0FIVixxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFQakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGdCQUFnQjtxQkFDMUI7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQU9ELE1BQU0sWUFBWSxHQUFtQixJQUFJLENBQUM7QUFFMUM7Ozs7R0FJRztBQVdILE1BQU0sT0FBTyxRQUFRO0lBVnJCO1FBV1ksUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXZCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFMUMsVUFBSyxHQUFXLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU1QyxpQkFBWSxHQUFHLGVBQWUsRUFBRSxDQUFDO1FBVXpDOztXQUVHO1FBR0gsZ0JBQVcsR0FBWSxLQUFLLENBQUM7S0FvQmhDO0lBakNHOzs7T0FHRztJQUNILElBQWEsT0FBTyxDQUFDLElBQW9CO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBU0QseUNBQXlDO0lBQ3pDOztPQUVHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBSUQsUUFBUSxLQUFVLENBQUM7SUFFbkIsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBekNRLFFBQVE7a0dBQVIsUUFBUSx1SEFxQkcscUJBQXFCLGdMQVl4QixxQkFBcUIsUUFBVSxXQUFXLDZCQzFGL0QseVFBT0EsNENEZ0RjLGdCQUFnQjs7MkZBRWpCLFFBQVE7a0JBVnBCLFNBQVM7K0JBQ0ksV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxXQUFXO3FCQUNyQixjQUNXLElBQUksV0FDUCxDQUFDLGdCQUFnQixDQUFDOzhCQWVkLE9BQU87c0JBQW5CLEtBQUs7Z0JBU04sV0FBVztzQkFGVixXQUFXO3VCQUFDLDBCQUEwQjs7c0JBQ3RDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBUXZDLFFBQVE7c0JBRFgsS0FBSztnQkFLeUQsS0FBSztzQkFBbkUsZUFBZTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVNwYWNpbmdTaXplLCBnZXROdW1lcmljU2l6ZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbi8qKlxuICog6Ze06Led57uE5Lu26aG577yM5L2/55So57uT5p6E5oCn5oyH5LukICp0aHlTcGFjZUl0ZW0g5Lyg5YWl5qih5p2/XG4gKiBAbmFtZSB0aHlTcGFjZUl0ZW1cbiAqIEBvcmRlciAyMFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0aHlTcGFjZUl0ZW1dJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LXNwYWNlLWl0ZW0nXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeVNwYWNlSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxufVxuXG5jb25zdCBERUZBVUxUX1NJWkU6IFRoeVNwYWNpbmdTaXplID0gJ21kJztcblxuLyoqXG4gKiDpl7Tot53nu4Tku7ZcbiAqIEBuYW1lIHRoeS1zcGFjZVxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXNwYWNlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3BhY2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktc3BhY2UnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTcGFjZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgcHVibGljIHNwYWNlOiBudW1iZXIgPSBnZXROdW1lcmljU2l6ZShERUZBVUxUX1NJWkUpO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIC8qKlxuICAgICAqIOWkp+Wwj++8jOaUr+aMgSBgemVyb2AgfCBgeHhzYCB8IGB4c2AgfCBgc21gIHwgYG1kYCB8IGBsZ2AgfCBgeGxnYCDlkozoh6rlrprkuYnmlbDlrZflpKflsI9cbiAgICAgKiBAdHlwZSBzdHJpbmcgfCBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5U2l6ZShzaXplOiBUaHlTcGFjaW5nU2l6ZSkge1xuICAgICAgICB0aGlzLnNwYWNlID0gZ2V0TnVtZXJpY1NpemUoc2l6ZSwgREVGQVVMVF9TSVpFKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpl7Tot53lnoLnm7TmlrnlkJHvvIzpu5jorqTmmK/msLTlubPmlrnlkJFcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLnRoeS1zcGFjZS12ZXJ0aWNhbGApXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICB0aHlWZXJ0aWNhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gQENsYXNzQmluZGluZyhgYWxpZ24taXRlbXMte3t2YWx1ZX19YClcbiAgICAvKipcbiAgICAgKiDlr7npvZDmlrnlvI/vvIzlj6/pgInmi6kgYHN0YXJ0YCB8IGBlbmRgIHwgYGJhc2VsaW5lYCB8IGBjZW50ZXJgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QWxpZ24oYWxpZ246IHN0cmluZykge1xuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhhbGlnbiA/IFtgYWxpZ24taXRlbXMtJHthbGlnbn1gXSA6IFtdKTtcbiAgICB9XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRoeVNwYWNlSXRlbURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBpdGVtcyE6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zLmNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbkBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleDsgbGV0IGxhc3QgPSAkbGFzdDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gIDxkaXYgY2xhc3M9XCJ0aHktc3BhY2UtaXRlbVwiIFtzdHlsZS5tYXJnaW4tcmlnaHQucHhdPVwibGFzdCA/IG51bGwgOiBzcGFjZVwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -1,13 +1,29 @@
1
- import { Component, Input, HostBinding, ElementRef, TemplateRef, ContentChild } from '@angular/core';
1
+ import { Component, Input, HostBinding, ElementRef, TemplateRef, ContentChild, inject } from '@angular/core';
2
2
  import { hexToRgb } from 'ngx-tethys/util';
3
3
  import { useHostRenderer } from '@tethys/cdk/dom';
4
- import { NgIf, NgTemplateOutlet, NgStyle } from '@angular/common';
4
+ import { NgTemplateOutlet, NgStyle } from '@angular/common';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
7
7
  * 用于展示数据统计
8
8
  * @name thy-statistic
9
9
  */
10
10
  export class ThyStatistic {
11
+ constructor() {
12
+ this.elementRef = inject(ElementRef);
13
+ this._initialized = false;
14
+ this.hostRenderer = useHostRenderer();
15
+ this.class = true;
16
+ /**
17
+ * @description 展示数据的 css 样式
18
+ * @type { [key: string]: string; }
19
+ */
20
+ this.thyValueStyle = {};
21
+ /**
22
+ * @description 展示数据标题的位置,可设置 `top`|`bottom`
23
+ * @type ThyStatisticTitlePosition
24
+ */
25
+ this.thyTitlePosition = 'bottom';
26
+ }
11
27
  /**
12
28
  * @description 展示形状
13
29
  * @type ThyStatisticShape
@@ -86,22 +102,6 @@ export class ThyStatistic {
86
102
  set suffix(value) {
87
103
  this.suffixTemplate = value;
88
104
  }
89
- constructor(elementRef) {
90
- this.elementRef = elementRef;
91
- this._initialized = false;
92
- this.hostRenderer = useHostRenderer();
93
- this.class = true;
94
- /**
95
- * @description 展示数据的 css 样式
96
- * @type { [key: string]: string; }
97
- */
98
- this.thyValueStyle = {};
99
- /**
100
- * @description 展示数据标题的位置,可设置 `top`|`bottom`
101
- * @type ThyStatisticTitlePosition
102
- */
103
- this.thyTitlePosition = 'bottom';
104
- }
105
105
  ngOnInit() {
106
106
  this._setClassesByType();
107
107
  this._initialized = true;
@@ -133,13 +133,13 @@ export class ThyStatistic {
133
133
  this.hostRenderer.setStyle('font-size', this.thySize);
134
134
  this.hostRenderer.updateClass(classNames);
135
135
  }
136
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStatistic, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
137
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyStatistic, isStandalone: true, selector: "thy-statistic", inputs: { thyValue: "thyValue", thyValueStyle: "thyValueStyle", thyPrefix: "thyPrefix", thySuffix: "thySuffix", thyTitle: "thyTitle", thyTitlePosition: "thyTitlePosition", thyShape: "thyShape", thyColor: "thyColor", thySize: "thySize", thyValueTemplate: "thyValueTemplate", thyTitleTemplate: "thyTitleTemplate", thyPrefixTemplate: "thyPrefixTemplate", thySuffixTemplate: "thySuffixTemplate" }, host: { properties: { "class.thy-statistic": "this.class" } }, queries: [{ propertyName: "value", first: true, predicate: ["value"], descendants: true, static: true }, { propertyName: "title", first: true, predicate: ["title"], descendants: true, static: true }, { propertyName: "prefix", first: true, predicate: ["prefix"], descendants: true, static: true }, { propertyName: "suffix", first: true, predicate: ["suffix"], descendants: true, static: true }], ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"title\" *ngIf=\"(thyTitle || titleTemplate) && thyTitlePosition === 'top'\"></ng-container>\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle\">\n <span *ngIf=\"thyPrefix || prefixTemplate\" class=\"thy-statistic-content-prefix\">\n <span *ngIf=\"thyPrefix\">{{ thyPrefix }}</span>\n <ng-container *ngIf=\"prefixTemplate\" [ngTemplateOutlet]=\"prefixTemplate\"></ng-container>\n </span>\n\n <span class=\"thy-statistic-content-value\">\n <span *ngIf=\"!valueTemplate\">{{ thyValue }}</span>\n <ng-container *ngIf=\"valueTemplate\" [ngTemplateOutlet]=\"valueTemplate\"></ng-container>\n </span>\n\n <span *ngIf=\"thySuffix || suffixTemplate\" class=\"thy-statistic-content-suffix\">\n <span *ngIf=\"thySuffix\">{{ thySuffix }}</span>\n <ng-container *ngIf=\"suffixTemplate\" [ngTemplateOutlet]=\"suffixTemplate\"></ng-container>\n </span>\n</div>\n<ng-container [ngTemplateOutlet]=\"title\" *ngIf=\"(thyTitle || titleTemplate) && thyTitlePosition === 'bottom'\"></ng-container>\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n <span *ngIf=\"thyTitle\">{{ thyTitle }}</span>\n <ng-container [ngTemplateOutlet]=\"titleTemplate\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStatistic, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: ThyStatistic, isStandalone: true, selector: "thy-statistic", inputs: { thyValue: "thyValue", thyValueStyle: "thyValueStyle", thyPrefix: "thyPrefix", thySuffix: "thySuffix", thyTitle: "thyTitle", thyTitlePosition: "thyTitlePosition", thyShape: "thyShape", thyColor: "thyColor", thySize: "thySize", thyValueTemplate: "thyValueTemplate", thyTitleTemplate: "thyTitleTemplate", thyPrefixTemplate: "thyPrefixTemplate", thySuffixTemplate: "thySuffixTemplate" }, host: { properties: { "class.thy-statistic": "this.class" } }, queries: [{ propertyName: "value", first: true, predicate: ["value"], descendants: true, static: true }, { propertyName: "title", first: true, predicate: ["title"], descendants: true, static: true }, { propertyName: "prefix", first: true, predicate: ["prefix"], descendants: true, static: true }, { propertyName: "suffix", first: true, predicate: ["suffix"], descendants: true, static: true }], ngImport: i0, template: "@if ((thyTitle || titleTemplate) && thyTitlePosition === 'top') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle\">\n @if (thyPrefix || prefixTemplate) {\n <span class=\"thy-statistic-content-prefix\">\n @if (thyPrefix) {\n <span>{{ thyPrefix }}</span>\n }\n @if (prefixTemplate) {\n <ng-container [ngTemplateOutlet]=\"prefixTemplate\"></ng-container>\n }\n </span>\n }\n\n <span class=\"thy-statistic-content-value\">\n @if (!valueTemplate) {\n <span>{{ thyValue }}</span>\n }\n @if (valueTemplate) {\n <ng-container [ngTemplateOutlet]=\"valueTemplate\"></ng-container>\n }\n </span>\n\n @if (thySuffix || suffixTemplate) {\n <span class=\"thy-statistic-content-suffix\">\n @if (thySuffix) {\n <span>{{ thySuffix }}</span>\n }\n @if (suffixTemplate) {\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\"></ng-container>\n }\n </span>\n }\n</div>\n@if ((thyTitle || titleTemplate) && thyTitlePosition === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n @if (thyTitle) {\n <span>{{ thyTitle }}</span>\n }\n <ng-container [ngTemplateOutlet]=\"titleTemplate\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
138
138
  }
139
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStatistic, decorators: [{
140
140
  type: Component,
141
- args: [{ selector: 'thy-statistic', standalone: true, imports: [NgIf, NgTemplateOutlet, NgStyle], template: "<ng-container [ngTemplateOutlet]=\"title\" *ngIf=\"(thyTitle || titleTemplate) && thyTitlePosition === 'top'\"></ng-container>\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle\">\n <span *ngIf=\"thyPrefix || prefixTemplate\" class=\"thy-statistic-content-prefix\">\n <span *ngIf=\"thyPrefix\">{{ thyPrefix }}</span>\n <ng-container *ngIf=\"prefixTemplate\" [ngTemplateOutlet]=\"prefixTemplate\"></ng-container>\n </span>\n\n <span class=\"thy-statistic-content-value\">\n <span *ngIf=\"!valueTemplate\">{{ thyValue }}</span>\n <ng-container *ngIf=\"valueTemplate\" [ngTemplateOutlet]=\"valueTemplate\"></ng-container>\n </span>\n\n <span *ngIf=\"thySuffix || suffixTemplate\" class=\"thy-statistic-content-suffix\">\n <span *ngIf=\"thySuffix\">{{ thySuffix }}</span>\n <ng-container *ngIf=\"suffixTemplate\" [ngTemplateOutlet]=\"suffixTemplate\"></ng-container>\n </span>\n</div>\n<ng-container [ngTemplateOutlet]=\"title\" *ngIf=\"(thyTitle || titleTemplate) && thyTitlePosition === 'bottom'\"></ng-container>\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n <span *ngIf=\"thyTitle\">{{ thyTitle }}</span>\n <ng-container [ngTemplateOutlet]=\"titleTemplate\"></ng-container>\n </div>\n</ng-template>\n" }]
142
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { class: [{
141
+ args: [{ selector: 'thy-statistic', standalone: true, imports: [NgTemplateOutlet, NgStyle], template: "@if ((thyTitle || titleTemplate) && thyTitlePosition === 'top') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle\">\n @if (thyPrefix || prefixTemplate) {\n <span class=\"thy-statistic-content-prefix\">\n @if (thyPrefix) {\n <span>{{ thyPrefix }}</span>\n }\n @if (prefixTemplate) {\n <ng-container [ngTemplateOutlet]=\"prefixTemplate\"></ng-container>\n }\n </span>\n }\n\n <span class=\"thy-statistic-content-value\">\n @if (!valueTemplate) {\n <span>{{ thyValue }}</span>\n }\n @if (valueTemplate) {\n <ng-container [ngTemplateOutlet]=\"valueTemplate\"></ng-container>\n }\n </span>\n\n @if (thySuffix || suffixTemplate) {\n <span class=\"thy-statistic-content-suffix\">\n @if (thySuffix) {\n <span>{{ thySuffix }}</span>\n }\n @if (suffixTemplate) {\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\"></ng-container>\n }\n </span>\n }\n</div>\n@if ((thyTitle || titleTemplate) && thyTitlePosition === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n @if (thyTitle) {\n <span>{{ thyTitle }}</span>\n }\n <ng-container [ngTemplateOutlet]=\"titleTemplate\"></ng-container>\n </div>\n</ng-template>\n" }]
142
+ }], propDecorators: { class: [{
143
143
  type: HostBinding,
144
144
  args: [`class.thy-statistic`]
145
145
  }], thyValue: [{
@@ -181,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
181
181
  type: ContentChild,
182
182
  args: ['suffix', { static: true }]
183
183
  }] } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGlzdGljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdGF0aXN0aWMvc3RhdGlzdGljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zdGF0aXN0aWMvc3RhdGlzdGljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVWxFOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxZQUFZO0lBdURyQjs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRLENBQUMsS0FBd0I7UUFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFRRDs7OztPQUlHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBd0I7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLGdCQUFnQixDQUFDLEtBQXdCO1FBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7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ImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGhleFRvUmdiIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5U3RhdGlzdGljQ29sb3JUeXBlID0gJ3ByaW1hcnknIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2RhbmdlcicgfCAnaW5mbyc7XG5cbmV4cG9ydCB0eXBlIFRoeVN0YXRpc3RpY1NoYXBlID0gJ2NhcmQnO1xuXG5leHBvcnQgdHlwZSBUaHlTdGF0aXN0aWNTaXplcyA9ICdkZWZhdWx0JztcblxuZXhwb3J0IHR5cGUgVGh5U3RhdGlzdGljVGl0bGVQb3NpdGlvbiA9ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbi8qKlxuICog55So5LqO5bGV56S65pWw5o2u57uf6K6hXG4gKiBAbmFtZSB0aHktc3RhdGlzdGljXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXN0YXRpc3RpYycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0YXRpc3RpYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5U3RhdGlzdGljIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBfc2hhcGU6IFRoeVN0YXRpc3RpY1NoYXBlO1xuXG4gICAgX2luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBfc2l6ZTogVGh5U3RhdGlzdGljU2l6ZXM7XG5cbiAgICBwcmVmaXhUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICBzdWZmaXhUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICB2YWx1ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAgIHRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MudGh5LXN0YXRpc3RpY2ApIGNsYXNzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDlsZXnpLrmlbDmja5cbiAgICAgKiBAdHlwZSBudW1iZXIgfCBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlWYWx1ZTogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOWxleekuuaVsOaNrueahCBjc3Mg5qC35byPXG4gICAgICogQHR5cGUgeyBba2V5OiBzdHJpbmddOiBzdHJpbmc7IH1cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlWYWx1ZVN0eWxlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g5bGV56S65pWw5o2u55qE5YmN57yAXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UHJlZml4OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g5bGV56S65pWw5o2u55qE5ZCO57yAXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U3VmZml4OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g5bGV56S65pWw5o2u55qE5qCH6aKYXG4gICAgICogQHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGl0bGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDlsZXnpLrmlbDmja7moIfpopjnmoTkvY3nva7vvIzlj6/orr7nva4gYHRvcGDvvZxgYm90dG9tYFxuICAgICAqIEB0eXBlIFRoeVN0YXRpc3RpY1RpdGxlUG9zaXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaXRsZVBvc2l0aW9uOiBUaHlTdGF0aXN0aWNUaXRsZVBvc2l0aW9uID0gJ2JvdHRvbSc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g5bGV56S65b2i54q2XG4gICAgICogQHR5cGUgVGh5U3RhdGlzdGljU2hhcGVcbiAgICAgKiBAZGVmYXVsdCBjYXJkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2hhcGUodmFsdWU6IFRoeVN0YXRpc3RpY1NoYXBlKSB7XG4gICAgICAgIHRoaXMuX3NoYXBlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q2xhc3Nlc0J5VHlwZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOS4u+mimOminOiJsu+8jOWPr+S7peS9v+eUqOaPkOS+m+eahOS4u+mimOiJsu+8jOS5n+WPr+S7peiHquWumuS5ieminOiJsuOAgiBgVGh5U3RhdGlzdGljQ29sb3JUeXBlYCDkuK3ljIXlkKsgYHByaW1hcnlgIHwgYHN1Y2Nlc3NgIHwgYHdhcm5pbmdgIHwgYGRhbmdlcmAgfCBgaW5mb2BcbiAgICAgKiBAdHlwZSBUaHlTdGF0aXN0aWNDb2xvclR5cGUg772cIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvbG9yOiBzdHJpbmcgfCBUaHlTdGF0aXN0aWNDb2xvclR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g5YmN57yA5ZKM5bGV56S65pWw5o2u5a2X5L2T5aSn5bCPXG4gICAgICogQHR5cGUgVGh5U3RhdGlzdGljU2l6ZXNcbiAgICAgKiBAZGVmYXVsdCBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5U2l6ZSh2YWx1ZTogVGh5U3RhdGlzdGljU2l6ZXMpIHtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldENsYXNzZXNCeVR5cGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDoh6rlrprkuYnlsZXnpLrmlbDmja7mqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZjx2b2lkPlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlWYWx1ZVRlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjx2b2lkPikge1xuICAgICAgICB0aGlzLnZhbHVlVGVtcGxhdGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g6Ieq5a6a5LmJ5bGV56S65pWw5o2u5qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWY8dm9pZD5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCd2YWx1ZScsIHsgc3RhdGljOiB0cnVlIH0pIHNldCB2YWx1ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dm9pZD4pIHtcbiAgICAgICAgdGhpcy52YWx1ZVRlbXBsYXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOiHquWumuS5ieagh+mimOaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmPHZvaWQ+XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVRpdGxlVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPHZvaWQ+KSB7XG4gICAgICAgIHRoaXMudGl0bGVUZW1wbGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDoh6rlrprkuYnmoIfpopjmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZjx2b2lkPlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RpdGxlJywgeyBzdGF0aWM6IHRydWUgfSkgc2V0IHRpdGxlKHZhbHVlOiBUZW1wbGF0ZVJlZjx2b2lkPikge1xuICAgICAgICB0aGlzLnRpdGxlVGVtcGxhdGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g6Ieq5a6a5LmJ5YmN57yA5qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWY8dm9pZD5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5UHJlZml4VGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPHZvaWQ+KSB7XG4gICAgICAgIHRoaXMucHJlZml4VGVtcGxhdGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g6Ieq5a6a5LmJ5YmN57yA5qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWY8dm9pZD5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdwcmVmaXgnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZXQgcHJlZml4KHZhbHVlOiBUZW1wbGF0ZVJlZjx2b2lkPikge1xuICAgICAgICB0aGlzLnByZWZpeFRlbXBsYXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOiHquWumuS5ieWQjue8gOaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmPHZvaWQ+XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVN1ZmZpeFRlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjx2b2lkPikge1xuICAgICAgICB0aGlzLnN1ZmZpeFRlbXBsYXRlID0gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDoh6rlrprkuYnlkI7nvIDmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZjx2b2lkPlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3N1ZmZpeCcsIHsgc3RhdGljOiB0cnVlIH0pIHNldCBzdWZmaXgodmFsdWU6IFRlbXBsYXRlUmVmPHZvaWQ+KSB7XG4gICAgICAgIHRoaXMuc3VmZml4VGVtcGxhdGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fc2V0Q2xhc3Nlc0J5VHlwZSgpO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgc2V0Q29sb3IoY29sb3I6IHN0cmluZykge1xuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5zZXRTdHlsZSgnY29sb3InLCBjb2xvcik7XG4gICAgICAgIGlmICh0aGlzLl9zaGFwZSA9PT0gJ2NhcmQnKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5zZXRTdHlsZSgnYm9yZGVyLWNvbG9yJywgY29sb3IpO1xuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuc2V0U3R5bGUoJ2JhY2tncm91bmQtY29sb3InLCBoZXhUb1JnYihjb2xvciwgMC4wNSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3NldENsYXNzZXNCeVR5cGUoKSB7XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbXTtcbiAgICAgICAgaWYgKHRoaXMudGh5Q29sb3IpIHtcbiAgICAgICAgICAgIGlmIChSZWdFeHAoL14jKFswLTlhLWZBLUZdezZ9fFswLTlhLWZBLUZdezN9KSQvKS50ZXN0KHRoaXMudGh5Q29sb3IpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRDb2xvcih0aGlzLnRoeUNvbG9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGB0aHktc3RhdGlzdGljLSR7dGhpcy50aHlDb2xvcn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fc2hhcGUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaChgdGh5LXN0YXRpc3RpYy0ke3RoaXMuX3NoYXBlfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fc2l6ZSA9ICdkZWZhdWx0JztcbiAgICAgICAgfVxuICAgICAgICBjbGFzc05hbWVzLnB1c2goYHRoeS1zdGF0aXN0aWMtJHt0aGlzLl9zaXplfWApO1xuXG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnNldFN0eWxlKCdmb250LXNpemUnLCB0aGlzLnRoeVNpemUpO1xuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc05hbWVzKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlXCIgKm5nSWY9XCIodGh5VGl0bGUgfHwgdGl0bGVUZW1wbGF0ZSkgJiYgdGh5VGl0bGVQb3NpdGlvbiA9PT0gJ3RvcCdcIj48L25nLWNvbnRhaW5lcj5cbjxkaXYgY2xhc3M9XCJ0aHktc3RhdGlzdGljLWNvbnRlbnRcIiBbbmdTdHlsZV09XCJ0aHlWYWx1ZVN0eWxlXCI+XG4gIDxzcGFuICpuZ0lmPVwidGh5UHJlZml4IHx8IHByZWZpeFRlbXBsYXRlXCIgY2xhc3M9XCJ0aHktc3RhdGlzdGljLWNvbnRlbnQtcHJlZml4XCI+XG4gICAgPHNwYW4gKm5nSWY9XCJ0aHlQcmVmaXhcIj57eyB0aHlQcmVmaXggfX08L3NwYW4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByZWZpeFRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJlZml4VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuXG4gIDxzcGFuIGNsYXNzPVwidGh5LXN0YXRpc3RpYy1jb250ZW50LXZhbHVlXCI+XG4gICAgPHNwYW4gKm5nSWY9XCIhdmFsdWVUZW1wbGF0ZVwiPnt7IHRoeVZhbHVlIH19PC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidmFsdWVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG5cbiAgPHNwYW4gKm5nSWY9XCJ0aHlTdWZmaXggfHwgc3VmZml4VGVtcGxhdGVcIiBjbGFzcz1cInRoeS1zdGF0aXN0aWMtY29udGVudC1zdWZmaXhcIj5cbiAgICA8c3BhbiAqbmdJZj1cInRoeVN1ZmZpeFwiPnt7IHRoeVN1ZmZpeCB9fTwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3VmZml4VGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJzdWZmaXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVcIiAqbmdJZj1cIih0aHlUaXRsZSB8fCB0aXRsZVRlbXBsYXRlKSAmJiB0aHlUaXRsZVBvc2l0aW9uID09PSAnYm90dG9tJ1wiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RpdGxlPlxuICA8ZGl2IGNsYXNzPVwidGh5LXN0YXRpc3RpYy10aXRsZVwiPlxuICAgIDxzcGFuICpuZ0lmPVwidGh5VGl0bGVcIj57eyB0aHlUaXRsZSB9fTwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGlzdGljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdGF0aXN0aWMvc3RhdGlzdGljLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zdGF0aXN0aWMvc3RhdGlzdGljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVTVEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxZQUFZO0lBTnpCO1FBT1ksZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUl4QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQVliLGlCQUFZLEdBQUcsZUFBZSxFQUFFLENBQUM7UUFFTCxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBUWpEOzs7V0FHRztRQUNNLGtCQUFhLEdBQThCLEVBQUUsQ0FBQztRQW9CdkQ7OztXQUdHO1FBQ00scUJBQWdCLEdBQThCLFFBQVEsQ0FBQztLQWtJbkU7SUFoSUc7Ozs7T0FJRztJQUNILElBQ0ksUUFBUSxDQUFDLEtBQXdCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBUUQ7Ozs7T0FJRztJQUNILElBQ0ksT0FBTyxDQUFDLEtBQXdCO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBYSxnQkFBZ0IsQ0FBQyxLQUF3QjtRQUNsRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBNkMsS0FBSyxDQUFDLEtBQXdCO1FBQ3ZFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFhLGdCQUFnQixDQUFDLEtBQXdCO1FBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUE2QyxLQUFLLENBQUMsS0FBd0I7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQWEsaUJBQWlCLENBQUMsS0FBd0I7UUFDbkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQThDLE1BQU0sQ0FBQyxLQUF3QjtRQUN6RSxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBYSxpQkFBaUIsQ0FBQyxLQUF3QjtRQUNuRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsSUFBOEMsTUFBTSxDQUFDLEtBQXdCO1FBQ3pFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQzNCLENBQUM7UUFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OEdBeExRLFlBQVk7a0dBQVosWUFBWSw2NUJDdkJ6QiwwM0NBK0NBLDRDRDFCYyxnQkFBZ0Isb0pBQUUsT0FBTzs7MkZBRTFCLFlBQVk7a0JBTnhCLFNBQVM7K0JBQ0ksZUFBZSxjQUViLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQzs4QkFxQkEsS0FBSztzQkFBeEMsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBTXpCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBUUYsUUFBUTtzQkFEWCxLQUFLO2dCQVlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUYsT0FBTztzQkFEVixLQUFLO2dCQVlPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFRdUMsS0FBSztzQkFBakQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVExQixnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBUXVDLEtBQUs7c0JBQWpELFlBQVk7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFRMUIsaUJBQWlCO3NCQUE3QixLQUFLO2dCQVF3QyxNQUFNO3NCQUFuRCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBUTNCLGlCQUFpQjtzQkFBN0IsS0FBSztnQkFPd0MsTUFBTTtzQkFBbkQsWUFBWTt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT25Jbml0LCBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgRWxlbWVudFJlZiwgVGVtcGxhdGVSZWYsIENvbnRlbnRDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBoZXhUb1JnYiB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCwgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCB0eXBlIFRoeVN0YXRpc3RpY0NvbG9yVHlwZSA9ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInIHwgJ2luZm8nO1xuXG5leHBvcnQgdHlwZSBUaHlTdGF0aXN0aWNTaGFwZSA9ICdjYXJkJztcblxuZXhwb3J0IHR5cGUgVGh5U3RhdGlzdGljU2l6ZXMgPSAnZGVmYXVsdCc7XG5cbmV4cG9ydCB0eXBlIFRoeVN0YXRpc3RpY1RpdGxlUG9zaXRpb24gPSAndG9wJyB8ICdib3R0b20nO1xuXG4vKipcbiAqIOeUqOS6juWxleekuuaVsOaNrue7n+iuoVxuICogQG5hbWUgdGh5LXN0YXRpc3RpY1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zdGF0aXN0aWMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGF0aXN0aWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIE5nU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVN0YXRpc3RpYyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgX3NoYXBlOiBUaHlTdGF0aXN0aWNTaGFwZTtcblxuICAgIF9pbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgX3NpemU6IFRoeVN0YXRpc3RpY1NpemVzO1xuXG4gICAgcHJlZml4VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgc3VmZml4VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gICAgdmFsdWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICB0aXRsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoYGNsYXNzLnRoeS1zdGF0aXN0aWNgKSBjbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g5bGV56S65pWw5o2uXG4gICAgICogQHR5cGUgbnVtYmVyIHwgc3RyaW5nXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VmFsdWU6IG51bWJlciB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDlsZXnpLrmlbDmja7nmoQgY3NzIOagt+W8j1xuICAgICAqIEB0eXBlIHsgW2tleTogc3RyaW5nXTogc3RyaW5nOyB9XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VmFsdWVTdHlsZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOWxleekuuaVsOaNrueahOWJjee8gFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVByZWZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOWxleekuuaVsOaNrueahOWQjue8gFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVN1ZmZpeDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOWxleekuuaVsOaNrueahOagh+mimFxuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g5bGV56S65pWw5o2u5qCH6aKY55qE5L2N572u77yM5Y+v6K6+572uIGB0b3Bg772cYGJvdHRvbWBcbiAgICAgKiBAdHlwZSBUaHlTdGF0aXN0aWNUaXRsZVBvc2l0aW9uXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGl0bGVQb3NpdGlvbjogVGh5U3RhdGlzdGljVGl0bGVQb3NpdGlvbiA9ICdib3R0b20nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOWxleekuuW9oueKtlxuICAgICAqIEB0eXBlIFRoeVN0YXRpc3RpY1NoYXBlXG4gICAgICogQGRlZmF1bHQgY2FyZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVNoYXBlKHZhbHVlOiBUaHlTdGF0aXN0aWNTaGFwZSkge1xuICAgICAgICB0aGlzLl9zaGFwZSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldENsYXNzZXNCeVR5cGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDkuLvpopjpopzoibLvvIzlj6/ku6Xkvb/nlKjmj5DkvpvnmoTkuLvpopjoibLvvIzkuZ/lj6/ku6Xoh6rlrprkuYnpopzoibLjgIIgYFRoeVN0YXRpc3RpY0NvbG9yVHlwZWAg5Lit5YyF5ZCrIGBwcmltYXJ5YCB8IGBzdWNjZXNzYCB8IGB3YXJuaW5nYCB8IGBkYW5nZXJgIHwgYGluZm9gXG4gICAgICogQHR5cGUgVGh5U3RhdGlzdGljQ29sb3JUeXBlIO+9nCBzdHJpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlDb2xvcjogc3RyaW5nIHwgVGh5U3RhdGlzdGljQ29sb3JUeXBlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOWJjee8gOWSjOWxleekuuaVsOaNruWtl+S9k+Wkp+Wwj1xuICAgICAqIEB0eXBlIFRoeVN0YXRpc3RpY1NpemVzXG4gICAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVNpemUodmFsdWU6IFRoeVN0YXRpc3RpY1NpemVzKSB7XG4gICAgICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDbGFzc2VzQnlUeXBlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g6Ieq5a6a5LmJ5bGV56S65pWw5o2u5qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWY8dm9pZD5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5VmFsdWVUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dm9pZD4pIHtcbiAgICAgICAgdGhpcy52YWx1ZVRlbXBsYXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOiHquWumuS5ieWxleekuuaVsOaNruaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmPHZvaWQ+XG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndmFsdWUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZXQgdmFsdWUodmFsdWU6IFRlbXBsYXRlUmVmPHZvaWQ+KSB7XG4gICAgICAgIHRoaXMudmFsdWVUZW1wbGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDoh6rlrprkuYnmoIfpopjmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZjx2b2lkPlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlUaXRsZVRlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjx2b2lkPikge1xuICAgICAgICB0aGlzLnRpdGxlVGVtcGxhdGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g6Ieq5a6a5LmJ5qCH6aKY5qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWY8dm9pZD5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCd0aXRsZScsIHsgc3RhdGljOiB0cnVlIH0pIHNldCB0aXRsZSh2YWx1ZTogVGVtcGxhdGVSZWY8dm9pZD4pIHtcbiAgICAgICAgdGhpcy50aXRsZVRlbXBsYXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOiHquWumuS5ieWJjee8gOaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmPHZvaWQ+XG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVByZWZpeFRlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjx2b2lkPikge1xuICAgICAgICB0aGlzLnByZWZpeFRlbXBsYXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIOiHquWumuS5ieWJjee8gOaooeadv1xuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmPHZvaWQ+XG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncHJlZml4JywgeyBzdGF0aWM6IHRydWUgfSkgc2V0IHByZWZpeCh2YWx1ZTogVGVtcGxhdGVSZWY8dm9pZD4pIHtcbiAgICAgICAgdGhpcy5wcmVmaXhUZW1wbGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiDoh6rlrprkuYnlkI7nvIDmqKHmnb9cbiAgICAgKiBAdHlwZSBUZW1wbGF0ZVJlZjx2b2lkPlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlTdWZmaXhUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8dm9pZD4pIHtcbiAgICAgICAgdGhpcy5zdWZmaXhUZW1wbGF0ZSA9IHZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24g6Ieq5a6a5LmJ5ZCO57yA5qih5p2/XG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWY8dm9pZD5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdzdWZmaXgnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZXQgc3VmZml4KHZhbHVlOiBUZW1wbGF0ZVJlZjx2b2lkPikge1xuICAgICAgICB0aGlzLnN1ZmZpeFRlbXBsYXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuX3NldENsYXNzZXNCeVR5cGUoKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHNldENvbG9yKGNvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuc2V0U3R5bGUoJ2NvbG9yJywgY29sb3IpO1xuICAgICAgICBpZiAodGhpcy5fc2hhcGUgPT09ICdjYXJkJykge1xuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIuc2V0U3R5bGUoJ2JvcmRlci1jb2xvcicsIGNvbG9yKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnNldFN0eWxlKCdiYWNrZ3JvdW5kLWNvbG9yJywgaGV4VG9SZ2IoY29sb3IsIDAuMDUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9zZXRDbGFzc2VzQnlUeXBlKCkge1xuICAgICAgICBjb25zdCBjbGFzc05hbWVzID0gW107XG4gICAgICAgIGlmICh0aGlzLnRoeUNvbG9yKSB7XG4gICAgICAgICAgICBpZiAoUmVnRXhwKC9eIyhbMC05YS1mQS1GXXs2fXxbMC05YS1mQS1GXXszfSkkLykudGVzdCh0aGlzLnRoeUNvbG9yKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29sb3IodGhpcy50aHlDb2xvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaChgdGh5LXN0YXRpc3RpYy0ke3RoaXMudGh5Q29sb3J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3NoYXBlKSB7XG4gICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goYHRoeS1zdGF0aXN0aWMtJHt0aGlzLl9zaGFwZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX3NpemUpIHtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSAnZGVmYXVsdCc7XG4gICAgICAgIH1cbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGB0aHktc3RhdGlzdGljLSR7dGhpcy5fc2l6ZX1gKTtcblxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5zZXRTdHlsZSgnZm9udC1zaXplJywgdGhpcy50aHlTaXplKTtcbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoY2xhc3NOYW1lcyk7XG4gICAgfVxufVxuIiwiQGlmICgodGh5VGl0bGUgfHwgdGl0bGVUZW1wbGF0ZSkgJiYgdGh5VGl0bGVQb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxufVxuPGRpdiBjbGFzcz1cInRoeS1zdGF0aXN0aWMtY29udGVudFwiIFtuZ1N0eWxlXT1cInRoeVZhbHVlU3R5bGVcIj5cbiAgQGlmICh0aHlQcmVmaXggfHwgcHJlZml4VGVtcGxhdGUpIHtcbiAgICA8c3BhbiBjbGFzcz1cInRoeS1zdGF0aXN0aWMtY29udGVudC1wcmVmaXhcIj5cbiAgICAgIEBpZiAodGh5UHJlZml4KSB7XG4gICAgICAgIDxzcGFuPnt7IHRoeVByZWZpeCB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIEBpZiAocHJlZml4VGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJwcmVmaXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuXG4gIDxzcGFuIGNsYXNzPVwidGh5LXN0YXRpc3RpYy1jb250ZW50LXZhbHVlXCI+XG4gICAgQGlmICghdmFsdWVUZW1wbGF0ZSkge1xuICAgICAgPHNwYW4+e3sgdGh5VmFsdWUgfX08L3NwYW4+XG4gICAgfVxuICAgIEBpZiAodmFsdWVUZW1wbGF0ZSkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ2YWx1ZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L3NwYW4+XG5cbiAgQGlmICh0aHlTdWZmaXggfHwgc3VmZml4VGVtcGxhdGUpIHtcbiAgICA8c3BhbiBjbGFzcz1cInRoeS1zdGF0aXN0aWMtY29udGVudC1zdWZmaXhcIj5cbiAgICAgIEBpZiAodGh5U3VmZml4KSB7XG4gICAgICAgIDxzcGFuPnt7IHRoeVN1ZmZpeCB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoc3VmZml4VGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzdWZmaXhUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgfVxuPC9kaXY+XG5AaWYgKCh0aHlUaXRsZSB8fCB0aXRsZVRlbXBsYXRlKSAmJiB0aHlUaXRsZVBvc2l0aW9uID09PSAnYm90dG9tJykge1xuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlXCI+PC9uZy1jb250YWluZXI+XG59XG5cbjxuZy10ZW1wbGF0ZSAjdGl0bGU+XG4gIDxkaXYgY2xhc3M9XCJ0aHktc3RhdGlzdGljLXRpdGxlXCI+XG4gICAgQGlmICh0aHlUaXRsZSkge1xuICAgICAgPHNwYW4+e3sgdGh5VGl0bGUgfX08L3NwYW4+XG4gICAgfVxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGl0bGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, Inject, InjectionToken, Input, Optional, TemplateRef, ViewChild } from '@angular/core';
1
+ import { Component, InjectionToken, Input, TemplateRef, ViewChild, inject } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export const THY_STEPPER_COMPONENT = new InjectionToken('THY_STEPPER_COMPONENT');
4
4
  /**
@@ -7,24 +7,19 @@ export const THY_STEPPER_COMPONENT = new InjectionToken('THY_STEPPER_COMPONENT')
7
7
  * @order 20
8
8
  */
9
9
  export class ThyStep {
10
- constructor(stepper) {
11
- this.stepper = stepper;
10
+ constructor() {
11
+ this.stepper = inject(THY_STEPPER_COMPONENT, { optional: true });
12
12
  }
13
13
  select() {
14
14
  this.stepper.selected = this;
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStep, deps: [{ token: THY_STEPPER_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStep, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
17
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyStep, isStandalone: true, selector: "thy-step", inputs: { label: "label", thyLabel: "thyLabel", thyIcon: "thyIcon" }, viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<ng-template><ng-content></ng-content></ng-template>\n" }); }
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStep, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'thy-step', standalone: true, template: "<ng-template><ng-content></ng-content></ng-template>\n" }]
22
- }], ctorParameters: () => [{ type: undefined, decorators: [{
23
- type: Optional
24
- }, {
25
- type: Inject,
26
- args: [THY_STEPPER_COMPONENT]
27
- }] }], propDecorators: { content: [{
22
+ }], propDecorators: { content: [{
28
23
  type: ViewChild,
29
24
  args: [TemplateRef, { static: true }]
30
25
  }], label: [{
@@ -34,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
34
29
  }], thyIcon: [{
35
30
  type: Input
36
31
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RlcHBlci9zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zdGVwcGVyL3N0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0csTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXVCLHVCQUF1QixDQUFDLENBQUM7QUFFdkc7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyxPQUFPO0lBZ0JoQixZQUE4RCxPQUE2QjtRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtJQUFHLENBQUM7SUFFL0YsTUFBTTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDOzhHQXBCUSxPQUFPLGtCQWdCZ0IscUJBQXFCO2tHQWhCNUMsT0FBTyxtTEFDTCxXQUFXLDhEQ25CMUIsd0RBQ0E7OzJGRGlCYSxPQUFPO2tCQUxuQixTQUFTOytCQUNJLFVBQVUsY0FFUixJQUFJOzswQkFrQkgsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxxQkFBcUI7eUNBZlgsT0FBTztzQkFBaEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUvQixLQUFLO3NCQUFiLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUaHlTdGVwcGVyQ29tcG9uZW50IHtcbiAgICBzZWxlY3RlZDogVGh5U3RlcDtcbn1cblxuZXhwb3J0IGNvbnN0IFRIWV9TVEVQUEVSX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJVGh5U3RlcHBlckNvbXBvbmVudD4oJ1RIWV9TVEVQUEVSX0NPTVBPTkVOVCcpO1xuXG4vKipcbiAqIOatpemqpOmhuee7hOS7tlxuICogQG5hbWUgdGh5LXN0ZXBcbiAqIEBvcmRlciAyMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1zdGVwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTdGVwIHtcbiAgICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOatpemqpOadoeS4reavj+S4quatpemqpOeahGxhYmVs5paH5pysXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOatpemqpOadoeS4reavj+S4quatpemqpOWujOaIkOeahOWbvuagh1xuICAgICAqIEBkZWZhdWx0IGNoZWNrLWNpcmNsZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUljb246IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoVEhZX1NURVBQRVJfQ09NUE9ORU5UKSBwdWJsaWMgc3RlcHBlcjogSVRoeVN0ZXBwZXJDb21wb25lbnQpIHt9XG5cbiAgICBzZWxlY3QoKSB7XG4gICAgICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZCA9IHRoaXM7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RlcHBlci9zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9zdGVwcGVyL3N0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1qRyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsdUJBQXVCLENBQUMsQ0FBQztBQUV2Rzs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLE9BQU87SUFMcEI7UUFNSSxZQUFPLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFFLENBQUM7S0FvQmhFO0lBSEcsTUFBTTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDOzhHQXBCUSxPQUFPO2tHQUFQLE9BQU8sbUxBR0wsV0FBVyw4RENyQjFCLHdEQUNBOzsyRkRpQmEsT0FBTztrQkFMbkIsU0FBUzsrQkFDSSxVQUFVLGNBRVIsSUFBSTs4QkFLMEIsT0FBTztzQkFBaEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUvQixLQUFLO3NCQUFiLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGlvblRva2VuLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRoeVN0ZXBwZXJDb21wb25lbnQge1xuICAgIHNlbGVjdGVkOiBUaHlTdGVwO1xufVxuXG5leHBvcnQgY29uc3QgVEhZX1NURVBQRVJfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPElUaHlTdGVwcGVyQ29tcG9uZW50PignVEhZX1NURVBQRVJfQ09NUE9ORU5UJyk7XG5cbi8qKlxuICog5q2l6aqk6aG557uE5Lu2XG4gKiBAbmFtZSB0aHktc3RlcFxuICogQG9yZGVyIDIwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXN0ZXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeVN0ZXAge1xuICAgIHN0ZXBwZXIgPSBpbmplY3QoVEhZX1NURVBQRVJfQ09NUE9ORU5ULCB7IG9wdGlvbmFsOiB0cnVlIH0pITtcblxuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5q2l6aqk5p2h5Lit5q+P5Liq5q2l6aqk55qEbGFiZWzmlofmnKxcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5q2l6aqk5p2h5Lit5q+P5Liq5q2l6aqk5a6M5oiQ55qE5Zu+5qCHXG4gICAgICogQGRlZmF1bHQgY2hlY2stY2lyY2xlXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SWNvbjogc3RyaW5nO1xuXG4gICAgc2VsZWN0KCkge1xuICAgICAgICB0aGlzLnN0ZXBwZXIuc2VsZWN0ZWQgPSB0aGlzO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,7 +1,6 @@
1
- import { Directive, HostListener } from '@angular/core';
1
+ import { Directive, HostListener, inject } from '@angular/core';
2
2
  import { ThyStepper } from './stepper.component';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "./stepper.component";
5
4
  /**
6
5
  * 在步进工作流中移动到下一个步骤的按钮
7
6
  * @description.en-us Button that moves to the next step in a stepper workflow.
@@ -9,13 +8,13 @@ import * as i1 from "./stepper.component";
9
8
  * @order 40
10
9
  */
11
10
  export class ThyStepperNextDirective {
12
- constructor(stepper) {
13
- this.stepper = stepper;
11
+ constructor() {
12
+ this.stepper = inject(ThyStepper);
14
13
  }
15
14
  click($event) {
16
15
  this.stepper.next();
17
16
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStepperNextDirective, deps: [{ token: i1.ThyStepper }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStepperNextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
18
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyStepperNextDirective, isStandalone: true, selector: "[thyStepperNext]", host: { listeners: { "click": "click($event)" } }, ngImport: i0 }); }
20
19
  }
21
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStepperNextDirective, decorators: [{
@@ -24,7 +23,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
24
23
  selector: '[thyStepperNext]',
25
24
  standalone: true
26
25
  }]
27
- }], ctorParameters: () => [{ type: i1.ThyStepper }], propDecorators: { click: [{
26
+ }], propDecorators: { click: [{
28
27
  type: HostListener,
29
28
  args: ['click', ['$event']]
30
29
  }] } });
@@ -35,13 +34,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
35
34
  * @order 30
36
35
  */
37
36
  export class ThyStepperPreviousDirective {
38
- constructor(stepper) {
39
- this.stepper = stepper;
37
+ constructor() {
38
+ this.stepper = inject(ThyStepper);
40
39
  }
41
40
  click($event) {
42
41
  this.stepper.previous();
43
42
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStepperPreviousDirective, deps: [{ token: i1.ThyStepper }], target: i0.ɵɵFactoryTarget.Directive }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStepperPreviousDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
44
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyStepperPreviousDirective, isStandalone: true, selector: "[thyStepperPrevious]", host: { listeners: { "click": "click($event)" } }, ngImport: i0 }); }
46
45
  }
47
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyStepperPreviousDirective, decorators: [{
@@ -50,8 +49,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
50
49
  selector: '[thyStepperPrevious]',
51
50
  standalone: true
52
51
  }]
53
- }], ctorParameters: () => [{ type: i1.ThyStepper }], propDecorators: { click: [{
52
+ }], propDecorators: { click: [{
54
53
  type: HostListener,
55
54
  args: ['click', ['$event']]
56
55
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0ZXBwZXIvc3RlcHBlci1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRWpEOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO0lBQUcsQ0FBQztJQUczQyxLQUFLLENBQUMsTUFBVztRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0FOUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7K0VBS0csS0FBSztzQkFESixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFNckM7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFBRyxDQUFDO0lBRzNDLEtBQUssQ0FBQyxNQUFXO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQU5RLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsrRUFLRyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVN0ZXBwZXIgfSBmcm9tICcuL3N0ZXBwZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiDlnKjmraXov5vlt6XkvZzmtYHkuK3np7vliqjliLDkuIvkuIDkuKrmraXpqqTnmoTmjInpkq5cbiAqIEBkZXNjcmlwdGlvbi5lbi11cyBCdXR0b24gdGhhdCBtb3ZlcyB0byB0aGUgbmV4dCBzdGVwIGluIGEgc3RlcHBlciB3b3JrZmxvdy5cbiAqIEBuYW1lIHRoeVN0ZXBwZXJOZXh0XG4gKiBAb3JkZXIgNDBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U3RlcHBlck5leHRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeVN0ZXBwZXJOZXh0RGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0ZXBwZXI6IFRoeVN0ZXBwZXIpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgY2xpY2soJGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICB9XG59XG5cbi8qKlxuICog5Zyo5q2l6L+b5bel5L2c5rWB5Lit56e75Yqo5Yiw5LiK5LiA5Liq5q2l6aqk55qE5oyJ6ZKuXG4gKiBAZGVzY3JpcHRpb24uZW4tdXMgQnV0dG9uIHRoYXQgbW92ZXMgdG8gdGhlIHByZXZpb3VzIHN0ZXAgaW4gYSBzdGVwcGVyIHdvcmtmbG93LlxuICogQG5hbWUgdGh5U3RlcHBlclByZXZpb3VzXG4gKiBAb3JkZXIgMzBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5U3RlcHBlclByZXZpb3VzXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUaHlTdGVwcGVyUHJldmlvdXNEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RlcHBlcjogVGh5U3RlcHBlcikge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBjbGljaygkZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLnN0ZXBwZXIucHJldmlvdXMoKTtcbiAgICB9XG59XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0ZXBwZXIvc3RlcHBlci1idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRWpEOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQUpwQztRQUtZLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FNeEM7SUFIRyxLQUFLLENBQUMsTUFBVztRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0FOUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBS0csS0FBSztzQkFESixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFNckM7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBSnhDO1FBS1ksWUFBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQU14QztJQUhHLEtBQUssQ0FBQyxNQUFXO1FBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQU5RLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFLRyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5U3RlcHBlciB9IGZyb20gJy4vc3RlcHBlci5jb21wb25lbnQnO1xuXG4vKipcbiAqIOWcqOatpei/m+W3peS9nOa1geS4reenu+WKqOWIsOS4i+S4gOS4quatpemqpOeahOaMiemSrlxuICogQGRlc2NyaXB0aW9uLmVuLXVzIEJ1dHRvbiB0aGF0IG1vdmVzIHRvIHRoZSBuZXh0IHN0ZXAgaW4gYSBzdGVwcGVyIHdvcmtmbG93LlxuICogQG5hbWUgdGh5U3RlcHBlck5leHRcbiAqIEBvcmRlciA0MFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0aHlTdGVwcGVyTmV4dF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5U3RlcHBlck5leHREaXJlY3RpdmUge1xuICAgIHByaXZhdGUgc3RlcHBlciA9IGluamVjdChUaHlTdGVwcGVyKTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBjbGljaygkZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgIH1cbn1cblxuLyoqXG4gKiDlnKjmraXov5vlt6XkvZzmtYHkuK3np7vliqjliLDkuIrkuIDkuKrmraXpqqTnmoTmjInpkq5cbiAqIEBkZXNjcmlwdGlvbi5lbi11cyBCdXR0b24gdGhhdCBtb3ZlcyB0byB0aGUgcHJldmlvdXMgc3RlcCBpbiBhIHN0ZXBwZXIgd29ya2Zsb3cuXG4gKiBAbmFtZSB0aHlTdGVwcGVyUHJldmlvdXNcbiAqIEBvcmRlciAzMFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0aHlTdGVwcGVyUHJldmlvdXNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeVN0ZXBwZXJQcmV2aW91c0RpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBzdGVwcGVyID0gaW5qZWN0KFRoeVN0ZXBwZXIpO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIGNsaWNrKCRldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuc3RlcHBlci5wcmV2aW91cygpO1xuICAgIH1cbn1cbiJdfQ==