ngx-tethys 17.0.1 → 17.0.2

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 (381) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/action/action.component.d.ts +3 -0
  3. package/affix/affix.component.d.ts +2 -0
  4. package/alert/alert.component.d.ts +1 -0
  5. package/anchor/anchor.component.d.ts +3 -0
  6. package/arrow-switcher/arrow-switcher.component.d.ts +1 -0
  7. package/autocomplete/autocomplete.component.d.ts +2 -3
  8. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -0
  9. package/avatar/avatar.component.d.ts +4 -0
  10. package/back-top/back-top.component.d.ts +1 -0
  11. package/badge/badge.component.d.ts +5 -0
  12. package/button/button-icon.component.d.ts +2 -0
  13. package/button/button.component.d.ts +2 -0
  14. package/card/card.component.d.ts +3 -0
  15. package/card/content.component.d.ts +2 -1
  16. package/carousel/carousel.component.d.ts +5 -0
  17. package/cascader/cascader-li.component.d.ts +9 -2
  18. package/cascader/cascader-search-option.component.d.ts +7 -2
  19. package/cascader/cascader.component.d.ts +23 -2
  20. package/cascader/styles/cascader.scss +1 -0
  21. package/cascader/types.d.ts +1 -0
  22. package/checkbox/checkbox.component.d.ts +1 -0
  23. package/collapse/collapse-item.component.d.ts +2 -0
  24. package/collapse/collapse.component.d.ts +1 -0
  25. package/color-picker/color-picker-panel.component.d.ts +1 -0
  26. package/color-picker/color-picker.component.d.ts +7 -1
  27. package/copy/copy.directive.d.ts +1 -0
  28. package/core/behaviors/decorators.d.ts +6 -0
  29. package/date-picker/abstract-picker.component.d.ts +8 -1
  30. package/date-picker/abstract-picker.directive.d.ts +4 -0
  31. package/date-picker/base-picker.component.d.ts +2 -0
  32. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -0
  33. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -0
  34. package/date-picker/picker.component.d.ts +1 -0
  35. package/date-range/date-range.component.d.ts +2 -0
  36. package/dialog/body/dialog-body.component.d.ts +2 -1
  37. package/dialog/footer/dialog-footer.component.d.ts +1 -0
  38. package/dialog/header/dialog-header.component.d.ts +1 -0
  39. package/divider/divider.component.d.ts +2 -0
  40. package/drag-drop/drag-handle.directive.d.ts +1 -0
  41. package/drag-drop/drag.directive.d.ts +1 -0
  42. package/drag-drop/drop-container.directive.d.ts +1 -0
  43. package/dropdown/dropdown-menu-item.directive.d.ts +3 -1
  44. package/dropdown/dropdown-menu.component.d.ts +1 -0
  45. package/dropdown/dropdown.directive.d.ts +3 -0
  46. package/empty/empty.component.d.ts +1 -0
  47. package/esm2022/action/action.component.mjs +9 -22
  48. package/esm2022/affix/affix.component.mjs +8 -15
  49. package/esm2022/alert/alert.component.mjs +5 -10
  50. package/esm2022/anchor/anchor.component.mjs +10 -20
  51. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +5 -11
  52. package/esm2022/autocomplete/autocomplete.component.mjs +5 -23
  53. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +9 -20
  54. package/esm2022/avatar/avatar.component.mjs +14 -30
  55. package/esm2022/back-top/back-top.component.mjs +6 -10
  56. package/esm2022/badge/badge.component.mjs +15 -37
  57. package/esm2022/button/button-icon.component.mjs +9 -20
  58. package/esm2022/button/button.component.mjs +7 -16
  59. package/esm2022/card/card.component.mjs +6 -20
  60. package/esm2022/card/content.component.mjs +5 -6
  61. package/esm2022/carousel/carousel.component.mjs +13 -30
  62. package/esm2022/cascader/cascader-li.component.mjs +16 -31
  63. package/esm2022/cascader/cascader-search-option.component.mjs +12 -21
  64. package/esm2022/cascader/cascader.component.mjs +32 -52
  65. package/esm2022/cascader/types.mjs +1 -1
  66. package/esm2022/checkbox/checkbox.component.mjs +7 -13
  67. package/esm2022/collapse/collapse-item.component.mjs +8 -15
  68. package/esm2022/collapse/collapse.component.mjs +5 -10
  69. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -10
  70. package/esm2022/color-picker/color-picker.component.mjs +17 -37
  71. package/esm2022/copy/copy.directive.mjs +5 -10
  72. package/esm2022/core/behaviors/decorators.mjs +7 -44
  73. package/esm2022/date-picker/abstract-picker.component.mjs +21 -45
  74. package/esm2022/date-picker/abstract-picker.directive.mjs +11 -27
  75. package/esm2022/date-picker/base-picker.component.mjs +8 -15
  76. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -10
  77. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +7 -6
  78. package/esm2022/date-picker/picker.component.mjs +6 -10
  79. package/esm2022/date-range/date-range.component.mjs +7 -15
  80. package/esm2022/dialog/body/dialog-body.component.mjs +6 -6
  81. package/esm2022/dialog/footer/dialog-footer.component.mjs +6 -13
  82. package/esm2022/dialog/header/dialog-header.component.mjs +6 -10
  83. package/esm2022/divider/divider.component.mjs +7 -15
  84. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -13
  85. package/esm2022/drag-drop/drag.directive.mjs +5 -11
  86. package/esm2022/drag-drop/drop-container.directive.mjs +5 -10
  87. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +9 -19
  88. package/esm2022/dropdown/dropdown-menu.component.mjs +6 -9
  89. package/esm2022/dropdown/dropdown.directive.mjs +8 -22
  90. package/esm2022/empty/empty.component.mjs +7 -13
  91. package/esm2022/flexible-text/flexible-text.component.mjs +4 -11
  92. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -10
  93. package/esm2022/form/form-group-label.directive.mjs +6 -6
  94. package/esm2022/form/form-group.component.mjs +13 -17
  95. package/esm2022/icon/icon.component.mjs +6 -20
  96. package/esm2022/image/image.directive.mjs +7 -15
  97. package/esm2022/input/input-search.component.mjs +6 -11
  98. package/esm2022/input/input.component.mjs +7 -15
  99. package/esm2022/input-number/input-number.component.mjs +12 -25
  100. package/esm2022/layout/header.component.mjs +9 -19
  101. package/esm2022/layout/sidebar-header.component.mjs +5 -10
  102. package/esm2022/layout/sidebar.component.mjs +22 -45
  103. package/esm2022/list/list.component.mjs +5 -11
  104. package/esm2022/list/selection/selection-list.mjs +13 -10
  105. package/esm2022/loading/loading.component.mjs +9 -20
  106. package/esm2022/menu/group/menu-group.component.mjs +12 -38
  107. package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -10
  108. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -10
  109. package/esm2022/menu/menu.component.mjs +5 -10
  110. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +6 -6
  111. package/esm2022/nav/nav-ink-bar.directive.mjs +7 -15
  112. package/esm2022/nav/nav-item.directive.mjs +10 -20
  113. package/esm2022/nav/nav.component.mjs +12 -25
  114. package/esm2022/pagination/pagination.component.mjs +18 -68
  115. package/esm2022/popover/popover.directive.mjs +12 -33
  116. package/esm2022/progress/progress-circle.component.mjs +9 -20
  117. package/esm2022/progress/progress-strip.component.mjs +5 -11
  118. package/esm2022/progress/progress.component.mjs +11 -23
  119. package/esm2022/property/properties.component.mjs +5 -10
  120. package/esm2022/property/property-item.component.mjs +8 -15
  121. package/esm2022/property-operation/property-operation.component.mjs +16 -37
  122. package/esm2022/radio/group/radio-group.component.mjs +6 -21
  123. package/esm2022/rate/rate-item.component.mjs +5 -10
  124. package/esm2022/rate/rate.component.mjs +16 -25
  125. package/esm2022/resizable/resizable.directive.mjs +24 -55
  126. package/esm2022/resizable/resize-handle.component.mjs +6 -10
  127. package/esm2022/resizable/resize-handles.component.mjs +5 -10
  128. package/esm2022/segment/segment-item.component.mjs +5 -10
  129. package/esm2022/segment/segment.component.mjs +7 -16
  130. package/esm2022/select/custom-select/custom-select.component.mjs +30 -65
  131. package/esm2022/select/native-select/native-select.component.mjs +6 -10
  132. package/esm2022/shared/base-form-check.component.mjs +10 -20
  133. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -15
  134. package/esm2022/shared/directives/thy-scroll.directive.mjs +6 -13
  135. package/esm2022/shared/directives/thy-show.mjs +5 -11
  136. package/esm2022/shared/option/group/option-group.component.mjs +5 -10
  137. package/esm2022/shared/option/list-option/list-option.component.mjs +6 -13
  138. package/esm2022/shared/option/option.component.mjs +5 -11
  139. package/esm2022/shared/select/select-control/select-control.component.mjs +17 -44
  140. package/esm2022/skeleton/skeleton-circle.component.mjs +6 -9
  141. package/esm2022/skeleton/skeleton-rectangle.component.mjs +6 -9
  142. package/esm2022/skeleton/skeleton.component.mjs +5 -10
  143. package/esm2022/skeleton/stylized/bullet-list.component.mjs +6 -9
  144. package/esm2022/skeleton/stylized/list.component.mjs +6 -9
  145. package/esm2022/skeleton/stylized/paragraph.component.mjs +6 -9
  146. package/esm2022/slide/slide-body/slide-body-section.component.mjs +6 -6
  147. package/esm2022/slider/slider.component.mjs +18 -35
  148. package/esm2022/space/space.component.mjs +6 -10
  149. package/esm2022/stepper/step-header.component.mjs +9 -20
  150. package/esm2022/stepper/stepper.component.mjs +7 -16
  151. package/esm2022/switch/switch.component.mjs +12 -17
  152. package/esm2022/table/table-column.component.mjs +9 -31
  153. package/esm2022/table/table-skeleton.component.mjs +8 -14
  154. package/esm2022/table/table.component.mjs +32 -83
  155. package/esm2022/tabs/tab.component.mjs +5 -10
  156. package/esm2022/tabs/tabs.component.mjs +8 -15
  157. package/esm2022/tag/tag.component.mjs +6 -10
  158. package/esm2022/time-picker/time-picker-panel.component.mjs +8 -15
  159. package/esm2022/time-picker/time-picker.component.mjs +20 -46
  160. package/esm2022/timeline/timeline.component.mjs +5 -10
  161. package/esm2022/tooltip/tooltip.directive.mjs +11 -34
  162. package/esm2022/tree/tree-node.component.mjs +17 -40
  163. package/esm2022/tree/tree.component.mjs +19 -47
  164. package/esm2022/tree-select/tree-select.component.mjs +18 -40
  165. package/esm2022/upload/file-select-base.mjs +7 -6
  166. package/esm2022/upload/file-select.component.mjs +11 -26
  167. package/esm2022/version.mjs +2 -2
  168. package/esm2022/vote/vote.component.mjs +11 -33
  169. package/esm2022/watermark/watermark.directive.mjs +6 -10
  170. package/fesm2022/ngx-tethys-action.mjs +9 -21
  171. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-affix.mjs +6 -14
  173. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-alert.mjs +4 -9
  175. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-anchor.mjs +8 -19
  177. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-arrow-switcher.mjs +4 -10
  179. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-autocomplete.mjs +14 -39
  181. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-avatar.mjs +14 -29
  183. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-back-top.mjs +5 -9
  185. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-badge.mjs +14 -36
  187. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-button.mjs +13 -30
  189. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  190. package/fesm2022/ngx-tethys-card.mjs +8 -23
  191. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-carousel.mjs +12 -29
  193. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-cascader.mjs +55 -95
  195. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-checkbox.mjs +5 -12
  197. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-collapse.mjs +10 -20
  199. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-color-picker.mjs +19 -42
  201. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-copy.mjs +4 -9
  203. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-core.mjs +6 -43
  205. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-date-picker.mjs +45 -93
  207. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-date-range.mjs +6 -14
  209. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-dialog.mjs +13 -21
  211. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-divider.mjs +6 -14
  213. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-drag-drop.mjs +10 -25
  215. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-dropdown.mjs +19 -42
  217. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-empty.mjs +5 -12
  219. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-flexible-text.mjs +3 -10
  221. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-form.mjs +19 -25
  223. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-icon.mjs +5 -19
  225. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-image.mjs +7 -14
  227. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-input-number.mjs +11 -24
  229. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-input.mjs +10 -21
  231. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-layout.mjs +31 -64
  233. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-list.mjs +16 -18
  235. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-loading.mjs +8 -19
  237. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-menu.mjs +20 -55
  239. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-nav.mjs +28 -55
  241. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-pagination.mjs +17 -67
  243. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-popover.mjs +11 -32
  245. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-progress.mjs +20 -45
  247. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-property-operation.mjs +14 -36
  249. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-property.mjs +10 -21
  251. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-radio.mjs +5 -19
  253. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-rate.mjs +18 -30
  255. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-resizable.mjs +29 -66
  257. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-segment.mjs +10 -21
  259. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-select.mjs +32 -70
  261. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-shared.mjs +49 -105
  263. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-skeleton.mjs +20 -38
  265. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-slide.mjs +6 -5
  267. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-slider.mjs +17 -34
  269. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-space.mjs +5 -9
  271. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-stepper.mjs +13 -31
  273. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-switch.mjs +11 -16
  275. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys-table.mjs +43 -120
  277. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  278. package/fesm2022/ngx-tethys-tabs.mjs +10 -20
  279. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  280. package/fesm2022/ngx-tethys-tag.mjs +5 -9
  281. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  282. package/fesm2022/ngx-tethys-time-picker.mjs +24 -55
  283. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  284. package/fesm2022/ngx-tethys-timeline.mjs +4 -9
  285. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  286. package/fesm2022/ngx-tethys-tooltip.mjs +10 -33
  287. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  288. package/fesm2022/ngx-tethys-tree-select.mjs +17 -39
  289. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  290. package/fesm2022/ngx-tethys-tree.mjs +33 -82
  291. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  292. package/fesm2022/ngx-tethys-upload.mjs +15 -28
  293. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  294. package/fesm2022/ngx-tethys-vote.mjs +10 -32
  295. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  296. package/fesm2022/ngx-tethys-watermark.mjs +5 -9
  297. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  298. package/fesm2022/ngx-tethys.mjs +1 -1
  299. package/fesm2022/ngx-tethys.mjs.map +1 -1
  300. package/flexible-text/flexible-text.component.d.ts +1 -0
  301. package/form/form-group-error/form-group-error.component.d.ts +1 -0
  302. package/form/form-group-label.directive.d.ts +2 -1
  303. package/form/form-group.component.d.ts +5 -2
  304. package/icon/icon.component.d.ts +3 -0
  305. package/image/image.directive.d.ts +2 -0
  306. package/input/input-search.component.d.ts +1 -0
  307. package/input/input.component.d.ts +2 -0
  308. package/input-number/input-number.component.d.ts +4 -0
  309. package/layout/header.component.d.ts +5 -2
  310. package/layout/sidebar-header.component.d.ts +1 -0
  311. package/layout/sidebar.component.d.ts +14 -4
  312. package/list/list.component.d.ts +1 -0
  313. package/list/selection/selection-list.d.ts +4 -1
  314. package/loading/loading.component.d.ts +4 -2
  315. package/menu/group/menu-group.component.d.ts +6 -0
  316. package/menu/item/action/menu-item-action.component.d.ts +1 -0
  317. package/menu/item/name/menu-item-name.component.d.ts +1 -0
  318. package/menu/menu.component.d.ts +1 -0
  319. package/nav/icon-nav/icon-nav-link.directive.d.ts +2 -1
  320. package/nav/nav-ink-bar.directive.d.ts +2 -0
  321. package/nav/nav-item.directive.d.ts +3 -0
  322. package/nav/nav.component.d.ts +4 -0
  323. package/package.json +1 -1
  324. package/pagination/pagination.component.d.ts +11 -0
  325. package/popover/popover.directive.d.ts +5 -0
  326. package/progress/progress-circle.component.d.ts +3 -0
  327. package/progress/progress-strip.component.d.ts +1 -0
  328. package/progress/progress.component.d.ts +3 -0
  329. package/property/properties.component.d.ts +1 -0
  330. package/property/property-item.component.d.ts +2 -0
  331. package/property-operation/property-operation.component.d.ts +5 -0
  332. package/radio/group/radio-group.component.d.ts +2 -2
  333. package/rate/rate-item.component.d.ts +1 -0
  334. package/rate/rate.component.d.ts +5 -1
  335. package/resizable/resizable.directive.d.ts +10 -0
  336. package/resizable/resize-handle.component.d.ts +1 -0
  337. package/resizable/resize-handles.component.d.ts +1 -0
  338. package/schematics/version.d.ts +1 -1
  339. package/schematics/version.js +1 -1
  340. package/segment/segment-item.component.d.ts +1 -0
  341. package/segment/segment.component.d.ts +2 -0
  342. package/select/custom-select/custom-select.component.d.ts +12 -1
  343. package/select/native-select/native-select.component.d.ts +1 -0
  344. package/shared/base-form-check.component.d.ts +2 -0
  345. package/shared/directives/thy-autofocus.directive.d.ts +3 -1
  346. package/shared/directives/thy-scroll.directive.d.ts +1 -0
  347. package/shared/directives/thy-show.d.ts +1 -0
  348. package/shared/option/group/option-group.component.d.ts +1 -0
  349. package/shared/option/list-option/list-option.component.d.ts +1 -0
  350. package/shared/option/option.component.d.ts +1 -0
  351. package/shared/option/styles/select-dropdown.scss +1 -0
  352. package/shared/select/select-control/select-control.component.d.ts +7 -0
  353. package/skeleton/skeleton-circle.component.d.ts +1 -0
  354. package/skeleton/skeleton-rectangle.component.d.ts +1 -0
  355. package/skeleton/skeleton.component.d.ts +1 -0
  356. package/skeleton/stylized/bullet-list.component.d.ts +1 -0
  357. package/skeleton/stylized/list.component.d.ts +1 -0
  358. package/skeleton/stylized/paragraph.component.d.ts +1 -0
  359. package/slide/slide-body/slide-body-section.component.d.ts +2 -1
  360. package/slider/slider.component.d.ts +6 -1
  361. package/space/space.component.d.ts +1 -0
  362. package/stepper/step-header.component.d.ts +3 -0
  363. package/stepper/stepper.component.d.ts +2 -0
  364. package/switch/switch.component.d.ts +3 -1
  365. package/table/table-column.component.d.ts +7 -2
  366. package/table/table-skeleton.component.d.ts +2 -0
  367. package/table/table.component.d.ts +14 -0
  368. package/tabs/tab.component.d.ts +1 -0
  369. package/tabs/tabs.component.d.ts +2 -0
  370. package/tag/tag.component.d.ts +1 -0
  371. package/time-picker/time-picker-panel.component.d.ts +2 -0
  372. package/time-picker/time-picker.component.d.ts +6 -2
  373. package/timeline/timeline.component.d.ts +1 -0
  374. package/tooltip/tooltip.directive.d.ts +5 -0
  375. package/tree/tree-node.component.d.ts +7 -0
  376. package/tree/tree.component.d.ts +8 -0
  377. package/tree-select/tree-select.component.d.ts +7 -0
  378. package/upload/file-select-base.d.ts +1 -0
  379. package/upload/file-select.component.d.ts +3 -0
  380. package/vote/vote.component.d.ts +4 -2
  381. package/watermark/watermark.directive.d.ts +1 -0
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
3
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';
4
- import { InputBoolean, InputCssPixel } from 'ngx-tethys/core';
3
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild, ViewEncapsulation, booleanAttribute } from '@angular/core';
4
+ import { InputCssPixel } from 'ngx-tethys/core';
5
5
  import { ThySkeletonCircle, ThySkeletonRectangle } from 'ngx-tethys/skeleton';
6
6
  import { ThyViewOutletDirective } from 'ngx-tethys/shared';
7
7
  import { ThyTableColumnSkeletonType } from './enums';
@@ -106,7 +106,7 @@ export class ThyTableSkeleton {
106
106
  this.cdr.detectChanges();
107
107
  }
108
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyTableSkeleton, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyTableSkeleton, isStandalone: true, selector: "thy-table-skeleton", inputs: { thyBorderRadius: "thyBorderRadius", thyRowHeight: "thyRowHeight", thyAnimated: "thyAnimated", thyAnimatedInterval: "thyAnimatedInterval", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor", thyRowCount: "thyRowCount", thyHeadless: "thyHeadless", thyTheme: "thyTheme", thySize: "thySize", thyMinWidth: "thyMinWidth", thyColumns: "thyColumns" }, host: { classAttribute: "thy-table-skeleton" }, viewQueries: [{ propertyName: "titleTemplate", first: true, predicate: ["titleTemplate"], descendants: true }, { propertyName: "memberTemplate", first: true, predicate: ["memberTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "checkboxTemplate", first: true, predicate: ["checkboxTemplate"], descendants: true }], ngImport: i0, template: "<table [ngClass]=\"tableClassMap\" [style.min-width]=\"thyMinWidth\">\n <colgroup>\n <col *ngFor=\"let column of columns; trackBy: trackByFn\" [width]=\"column.width\" />\n </colgroup>\n <ng-container *ngIf=\"!thyHeadless\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n </tr>\n </thead>\n </ng-container>\n <tbody>\n <ng-container *ngFor=\"let item of rowCount; let i = index\">\n <tr>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate\n context:{\n trIndex: i,\n }\n \">\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"defaultTemplate;\n context:{\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : '',\n }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ThyViewOutletDirective, selector: "[thyViewOutlet]", inputs: ["thyViewOutlet", "thyViewOutletContext"] }, { kind: "component", type: ThySkeletonRectangle, selector: "thy-skeleton-rectangle", inputs: ["thyAnimated", "thyAnimatedInterval", "thyBorderRadius", "thyRowWidth", "thyRowHeight", "thyPrimaryColor", "thySecondaryColor"] }, { kind: "component", type: ThySkeletonCircle, selector: "thy-skeleton-circle", inputs: ["thyAnimatedInterval", "thySize", "thyPrimaryColor", "thySecondaryColor", "thyAnimated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyTableSkeleton, isStandalone: true, selector: "thy-table-skeleton", inputs: { thyBorderRadius: "thyBorderRadius", thyRowHeight: "thyRowHeight", thyAnimated: ["thyAnimated", "thyAnimated", booleanAttribute], thyAnimatedInterval: "thyAnimatedInterval", thyPrimaryColor: "thyPrimaryColor", thySecondaryColor: "thySecondaryColor", thyRowCount: "thyRowCount", thyHeadless: ["thyHeadless", "thyHeadless", booleanAttribute], thyTheme: "thyTheme", thySize: "thySize", thyMinWidth: "thyMinWidth", thyColumns: "thyColumns" }, host: { classAttribute: "thy-table-skeleton" }, viewQueries: [{ propertyName: "titleTemplate", first: true, predicate: ["titleTemplate"], descendants: true }, { propertyName: "memberTemplate", first: true, predicate: ["memberTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "checkboxTemplate", first: true, predicate: ["checkboxTemplate"], descendants: true }], ngImport: i0, template: "<table [ngClass]=\"tableClassMap\" [style.min-width]=\"thyMinWidth\">\n <colgroup>\n <col *ngFor=\"let column of columns; trackBy: trackByFn\" [width]=\"column.width\" />\n </colgroup>\n <ng-container *ngIf=\"!thyHeadless\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns; trackBy: trackByFn\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"column?.type === columnType.checkbox ? checkboxWidth : titleWidth\"\n [thyRowHeight]=\"titleHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyTheme === 'bordered' || thyTheme === 'boxed' ? '#eee' : thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n </th>\n </tr>\n </thead>\n </ng-container>\n <tbody>\n <ng-container *ngFor=\"let item of rowCount; let i = index\">\n <tr>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByFn\">\n <td>\n <ng-container\n *thyViewOutlet=\"\n skeletonColumnsMap[column.type] || defaultTemplate\n context:{\n trIndex: i,\n }\n \">\n </ng-container>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n<ng-template #titleTemplate let-trIndex=\"trIndex\">\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-rectangle\n class=\"mr-2 flex-shrink-0\"\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n\n <ng-container\n *thyViewOutlet=\"defaultTemplate;\n context:{\n rowWidth: trIndex % 3 === 0 ? '75%' : trIndex % 3 === 1 ? '100%' : trIndex % 3 === 2 ? '65%' : '',\n }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #checkboxTemplate>\n <thy-skeleton-rectangle\n [thyRowWidth]=\"checkboxWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n\n<ng-template #memberTemplate>\n <div class=\"d-flex align-items-center\">\n <thy-skeleton-circle\n class=\"mr-2 flex-shrink-0\"\n [thySize]=\"avatarSize\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-circle>\n\n <ng-container *thyViewOutlet=\"defaultTemplate\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultTemplate let-rowWidth=\"rowWidth\">\n <thy-skeleton-rectangle\n [thyRowWidth]=\"rowWidth\"\n [thyRowHeight]=\"thyRowHeight\"\n [thyBorderRadius]=\"thyBorderRadius\"\n [thyAnimated]=\"thyAnimated\"\n [thyAnimatedInterval]=\"thyAnimatedInterval\"\n [thyPrimaryColor]=\"thyPrimaryColor\"\n [thySecondaryColor]=\"thySecondaryColor\"></thy-skeleton-rectangle>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ThyViewOutletDirective, selector: "[thyViewOutlet]", inputs: ["thyViewOutlet", "thyViewOutletContext"] }, { kind: "component", type: ThySkeletonRectangle, selector: "thy-skeleton-rectangle", inputs: ["thyAnimated", "thyAnimatedInterval", "thyBorderRadius", "thyRowWidth", "thyRowHeight", "thyPrimaryColor", "thySecondaryColor"] }, { kind: "component", type: ThySkeletonCircle, selector: "thy-skeleton-circle", inputs: ["thyAnimatedInterval", "thySize", "thyPrimaryColor", "thySecondaryColor", "thyAnimated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
110
110
  }
111
111
  __decorate([
112
112
  InputCssPixel(),
@@ -116,14 +116,6 @@ __decorate([
116
116
  InputCssPixel(),
117
117
  __metadata("design:type", Object)
118
118
  ], ThyTableSkeleton.prototype, "thyRowHeight", void 0);
119
- __decorate([
120
- InputBoolean(),
121
- __metadata("design:type", Boolean)
122
- ], ThyTableSkeleton.prototype, "thyAnimated", void 0);
123
- __decorate([
124
- InputBoolean(),
125
- __metadata("design:type", Object)
126
- ], ThyTableSkeleton.prototype, "thyHeadless", void 0);
127
119
  __decorate([
128
120
  InputCssPixel(),
129
121
  __metadata("design:type", Object)
@@ -150,7 +142,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
150
142
  }], thyRowHeight: [{
151
143
  type: Input
152
144
  }], thyAnimated: [{
153
- type: Input
145
+ type: Input,
146
+ args: [{ transform: booleanAttribute }]
154
147
  }], thyAnimatedInterval: [{
155
148
  type: Input
156
149
  }], thyPrimaryColor: [{
@@ -160,7 +153,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
160
153
  }], thyRowCount: [{
161
154
  type: Input
162
155
  }], thyHeadless: [{
163
- type: Input
156
+ type: Input,
157
+ args: [{ transform: booleanAttribute }]
164
158
  }], thyTheme: [{
165
159
  type: Input
166
160
  }], thySize: [{
@@ -170,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
170
164
  }], thyColumns: [{
171
165
  type: Input
172
166
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLXNrZWxldG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFHckQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXZCOzs7R0FHRztBQVlILE1BQU0sT0FBTyxnQkFBZ0I7SUFnRHpCOztPQUVHO0lBQ0gsSUFDSSxXQUFXLENBQUMsS0FBc0I7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBNEJEOzs7T0FHRztJQUNILElBQWEsVUFBVSxDQUFDLE9BQWlDO1FBQ3JELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxH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O0FBUXZDO0lBREMsWUFBWSxFQUFFOztxREFDYTtBQStCSDtJQUFmLFlBQVksRUFBRTs7cURBQXFCO0FBb0I3QztJQURDLGFBQWEsRUFBRTs7cURBQ2E7MkZBaEZwQixnQkFBZ0I7a0JBWDVCLFNBQVM7K0JBQ0ksb0JBQW9CLFFBRXhCO3dCQUNGLEtBQUssRUFBRSxvQkFBb0I7cUJBQzlCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDO3NGQUd0RixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBRUcsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBRUcsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRUcsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFPN0IsZUFBZTtzQkFGZCxLQUFLO2dCQVNOLFlBQVk7c0JBRlgsS0FBSztnQkFVTixXQUFXO3NCQUZWLEtBQUs7Z0JBT0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkFTbUIsV0FBVztzQkFBbkMsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLE9BQU87c0JBQWYsS0FBSztnQkFPTixXQUFXO3NCQUZWLEtBQUs7Z0JBUU8sVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4sIElucHV0Q3NzUGl4ZWwgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5U2tlbGV0b25DaXJjbGUsIFRoeVNrZWxldG9uUmVjdGFuZ2xlIH0gZnJvbSAnbmd4LXRldGh5cy9za2VsZXRvbic7XG5pbXBvcnQgeyBUaHlUYWJsZVNrZWxldG9uQ29sdW1uIH0gZnJvbSAnLi90YWJsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGh5Vmlld091dGxldERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBUaHlUYWJsZVNpemUsIFRoeVRhYmxlVGhlbWUgfSBmcm9tICcuL3RhYmxlLmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTFVNTl9DT1VOVCA9IDU7XG5cbi8qKlxuICog6KGo5qC855qE6aqo5p625bGP57uE5Lu2XG4gKiBAbmFtZSB0aHktdGFibGUtc2tlbGV0b25cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktdGFibGUtc2tlbGV0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS10YWJsZS1za2VsZXRvbidcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdGb3IsIE5nQ2xhc3MsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIFRoeVZpZXdPdXRsZXREaXJlY3RpdmUsIFRoeVNrZWxldG9uUmVjdGFuZ2xlLCBUaHlTa2VsZXRvbkNpcmNsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5VGFibGVTa2VsZXRvbiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3RpdGxlVGVtcGxhdGUnKSB0aXRsZVRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ21lbWJlclRlbXBsYXRlJykgbWVtYmVyVGVtcGxhdGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdFRlbXBsYXRlJykgZGVmYXVsdFRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NoZWNrYm94VGVtcGxhdGUnKSBjaGVja2JveFRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIOmqqOaetui+ueahhuWchuinklxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeUJvcmRlclJhZGl1czogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6KGo5qC85YaF5a656aqo5p626auY5bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5Um93SGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgPSAnMjBweCc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblvIDlkK/liqjnlLtcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICB0aHlBbmltYXRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDliqjnlLvpgJ/luqZcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlBbmltYXRlZEludGVydmFsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrbkuLvoibJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQcmltYXJ5Q29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuasoeiJslxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVNlY29uZGFyeUNvbG9yOiBzdHJpbmc7XG5cbiAgICByb3dDb3VudDogbnVtYmVyW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIOihjOaVsFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVJvd0NvdW50KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IEFycmF5LmZyb20oeyBsZW5ndGg6ICt2YWx1ZSB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblsZXnpLrpqqjmnrblpLRcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0aHlIZWFkbGVzcyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625bGP55qE6aOO5qC8XG4gICAgICogQHR5cGUgZGVmYXVsdCB8IGJvcmRlcmVkIHwgYm94ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogVGh5VGFibGVUaGVtZSA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuWxj+eahOWkp+Wwj1xuICAgICAqIEB0eXBlIHhzIHwgc20gfCBtZCB8IGxnIHwgeGxnIHwgZGVmYXVsdFxuICAgICAqIEBkZWZhdWx0IG1kXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2l6ZTogVGh5VGFibGVTaXplID0gJ21kJztcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruihqOagvOacgOWwj+WuveW6plxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeU1pbldpZHRoOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDooajmoLzliJfpqqjmnrbnmoTphY3nva7pobnvvIzmlK/mjIHphY3nva7liJflrr3jgIHpqqjmnrbnsbvlnotcbiAgICAgKiBAdHlwZSBUaHlUYWJsZVNrZWxldG9uQ29sdW1uW11cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5Q29sdW1ucyhjb2x1bW5zOiBUaHlUYWJsZVNrZWxldG9uQ29sdW1uW10pIHtcbiAgICAgICAgaWYgKGNvbHVtbnMgJiYgY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMgPSBbLi4udGhpcy5kZWZhdWx0Q29sdW1uc107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdGl0bGVIZWlnaHQgPSAnMjBweCc7XG5cbiAgICBwdWJsaWMgdGl0bGVXaWR0aCA9ICc1MHB4JztcblxuICAgIHB1YmxpYyBjaGVja2JveFdpZHRoID0gJzIwcHgnO1xuXG4gICAgcHVibGljIGF2YXRhclNpemUgPSAnMjRweCc7XG5cbiAgICBwdWJsaWMgY29sdW1uVHlwZSA9IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlO1xuXG4gICAgcHVibGljIHNrZWxldG9uQ29sdW1uc01hcDoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICB9ID0ge307XG5cbiAgICBnZXQgdGFibGVDbGFzc01hcCgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgJ3RhYmxlLWJvcmRlcmVkJzogdGhpcy50aHlUaGVtZSA9PT0gJ2JvcmRlcmVkJyxcbiAgICAgICAgICAgICd0YWJsZS1ib3hlZCc6IHRoaXMudGh5VGhlbWUgPT09ICdib3hlZCcsXG4gICAgICAgICAgICBbYHRhYmxlLSR7dGhpcy50aHlTaXplfWBdOiAhIXRoaXMudGh5U2l6ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVmYXVsdENvbHVtbnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBDT0xVTU5fQ09VTlQgfSkubWFwKChpdGVtLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJzQwJScsXG4gICAgICAgICAgICAgICAgdHlwZTogVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUudGl0bGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxNyUnLFxuICAgICAgICAgICAgICAgIHR5cGU6IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLm1lbWJlclxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS5kZWZhdWx0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgY29sdW1uczogVGh5VGFibGVTa2VsZXRvbkNvbHVtbltdID0gWy4uLnRoaXMuZGVmYXVsdENvbHVtbnNdO1xuXG4gICAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2tlbGV0b25Db2x1bW5zTWFwID0ge1xuICAgICAgICAgICAgW1RoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLnRpdGxlXTogdGhpcy50aXRsZVRlbXBsYXRlLFxuICAgICAgICAgICAgW1RoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLm1lbWJlcl06IHRoaXMubWVtYmVyVGVtcGxhdGUsXG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUuY2hlY2tib3hdOiB0aGlzLmNoZWNrYm94VGVtcGxhdGVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjx0YWJsZSBbbmdDbGFzc109XCJ0YWJsZUNsYXNzTWFwXCIgW3N0eWxlLm1pbi13aWR0aF09XCJ0aHlNaW5XaWR0aFwiPlxuICA8Y29sZ3JvdXA+XG4gICAgPGNvbCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiIFt3aWR0aF09XCJjb2x1bW4ud2lkdGhcIiAvPlxuICA8L2NvbGdyb3VwPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRoeUhlYWRsZXNzXCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICA8dGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICAgICAgICAgICAgW3RoeVJvd1dpZHRoXT1cImNvbHVtbj8udHlwZSA9PT0gY29sdW1uVHlwZS5jaGVja2JveCA/IGNoZWNrYm94V2lkdGggOiB0aXRsZVdpZHRoXCJcbiAgICAgICAgICAgIFt0aHlSb3dIZWlnaHRdPVwidGl0bGVIZWlnaHRcIlxuICAgICAgICAgICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgICAgICAgICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICAgICAgICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgICAgICAgICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlUaGVtZSA9PT0gJ2JvcmRlcmVkJyB8fCB0aHlUaGVtZSA9PT0gJ2JveGVkJyA/ICcjZWVlJyA6IHRoeVByaW1hcnlDb2xvclwiXG4gICAgICAgICAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8dGJvZHk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3dDb3VudDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPHRyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqdGh5Vmlld091dGxldD1cIlxuICAgICAgICAgICAgICBza2VsZXRvbkNvbHVtbnNNYXBbY29sdW1uLnR5cGVdIHx8IGRlZmF1bHRUZW1wbGF0ZVxuICAgICAgICAgICAgICBjb250ZXh0OntcbiAgICAgICAgICAgICAgICAgIHRySW5kZXg6IGksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPG5nLXRlbXBsYXRlICN0aXRsZVRlbXBsYXRlIGxldC10ckluZGV4PVwidHJJbmRleFwiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgICBjbGFzcz1cIm1yLTIgZmxleC1zaHJpbmstMFwiXG4gICAgICBbdGh5Um93V2lkdGhdPVwiY2hlY2tib3hXaWR0aFwiXG4gICAgICBbdGh5Um93SGVpZ2h0XT1cInRoeVJvd0hlaWdodFwiXG4gICAgICBbdGh5Qm9yZGVyUmFkaXVzXT1cInRoeUJvcmRlclJhZGl1c1wiXG4gICAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgICBbdGh5UHJpbWFyeUNvbG9yXT1cInRoeVByaW1hcnlDb2xvclwiXG4gICAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqdGh5Vmlld091dGxldD1cImRlZmF1bHRUZW1wbGF0ZTtcbiAgICAgIGNvbnRleHQ6e1xuICAgICAgICByb3dXaWR0aDogdHJJbmRleCAlIDMgPT09IDAgPyAnNzUlJyA6IHRySW5kZXggJSAzID09PSAxID8gJzEwMCUnIDogdHJJbmRleCAlIDMgPT09IDIgPyAnNjUlJyA6ICcnLFxuICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2hlY2tib3hUZW1wbGF0ZT5cbiAgPHRoeS1za2VsZXRvbi1yZWN0YW5nbGVcbiAgICBbdGh5Um93V2lkdGhdPVwiY2hlY2tib3hXaWR0aFwiXG4gICAgW3RoeVJvd0hlaWdodF09XCJ0aHlSb3dIZWlnaHRcIlxuICAgIFt0aHlCb3JkZXJSYWRpdXNdPVwidGh5Qm9yZGVyUmFkaXVzXCJcbiAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21lbWJlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDx0aHktc2tlbGV0b24tY2lyY2xlXG4gICAgICBjbGFzcz1cIm1yLTIgZmxleC1zaHJpbmstMFwiXG4gICAgICBbdGh5U2l6ZV09XCJhdmF0YXJTaXplXCJcbiAgICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgICBbdGh5QW5pbWF0ZWRJbnRlcnZhbF09XCJ0aHlBbmltYXRlZEludGVydmFsXCJcbiAgICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLWNpcmNsZT5cblxuICAgIDxuZy1jb250YWluZXIgKnRoeVZpZXdPdXRsZXQ9XCJkZWZhdWx0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZSBsZXQtcm93V2lkdGg9XCJyb3dXaWR0aFwiPlxuICA8dGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICAgIFt0aHlSb3dXaWR0aF09XCJyb3dXaWR0aFwiXG4gICAgW3RoeVJvd0hlaWdodF09XCJ0aHlSb3dIZWlnaHRcIlxuICAgIFt0aHlCb3JkZXJSYWRpdXNdPVwidGh5Qm9yZGVyUmFkaXVzXCJcbiAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICBbdGh5U2Vjb25kYXJ5Q29sb3JdPVwidGh5U2Vjb25kYXJ5Q29sb3JcIj48L3RoeS1za2VsZXRvbi1yZWN0YW5nbGU+XG48L25nLXRlbXBsYXRlPlxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RhYmxlL3RhYmxlLXNrZWxldG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90YWJsZS90YWJsZS1za2VsZXRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFHckQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBRXZCOzs7R0FHRztBQVlILE1BQU0sT0FBTyxnQkFBZ0I7SUErQ3pCOztPQUVHO0lBQ0gsSUFDSSxXQUFXLENBQUMsS0FBc0I7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBNEJEOzs7T0FHRztJQUNILElBQWEsVUFBVSxDQUFDLE9BQWlDO1FBQ3JELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztJQWdCRCxJQUFJLGFBQWE7UUFDYixPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUk7WUFDWCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxLQUFLLFVBQVU7WUFDOUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTztZQUN4QyxDQUFDLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO1NBQzVDLENBQUM7SUFDTixDQUFDO0lBdUJNLFNBQVMsQ0FBQyxLQUFhO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTdIMUM7O1dBRUc7UUFHSCxpQkFBWSxHQUFvQixNQUFNLENBQUM7UUFFdkM7OztXQUdHO1FBRUgsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFpQjVCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFVeEI7OztXQUdHO1FBQ3FDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTVEOzs7V0FHRztRQUNNLGFBQVEsR0FBa0IsU0FBUyxDQUFDO1FBRTdDOzs7O1dBSUc7UUFDTSxZQUFPLEdBQWlCLElBQUksQ0FBQztRQXFCL0IsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFFckIsZUFBVSxHQUFHLE1BQU0sQ0FBQztRQUVwQixrQkFBYSxHQUFHLE1BQU0sQ0FBQztRQUV2QixlQUFVLEdBQUcsTUFBTSxDQUFDO1FBRXBCLGVBQVUsR0FBRywwQkFBMEIsQ0FBQztRQUV4Qyx1QkFBa0IsR0FFckIsRUFBRSxDQUFDO1FBV0MsbUJBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3RGLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNkLE9BQU87b0JBQ0gsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLDBCQUEwQixDQUFDLEtBQUs7aUJBQ3pDLENBQUM7WUFDTixDQUFDO2lCQUFNLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyQixPQUFPO29CQUNILEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxNQUFNO2lCQUMxQyxDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU87b0JBQ0gsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLDBCQUEwQixDQUFDLE9BQU87aUJBQzNDLENBQUM7WUFDTixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSSxZQUFPLEdBQTZCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFNdkIsQ0FBQztJQUU5QyxlQUFlO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3RCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDdEQsQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUN4RCxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDL0QsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0F0SlEsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsOEtBMkJMLGdCQUFnQixtTUFnQ2hCLGdCQUFnQiw0a0JDL0Z4Qyx1NEdBK0ZBLDRDRDdEYyxLQUFLLG1IQUFFLE9BQU8sb0ZBQUUsSUFBSSw2RkFBb0Isc0JBQXNCLCtHQUFFLG9CQUFvQiw2TUFBRSxpQkFBaUI7O0FBZ0JqSDtJQURDLGFBQWEsRUFBRTs7eURBQ2lCO0FBT2pDO0lBREMsYUFBYSxFQUFFOztzREFDdUI7QUEwRHZDO0lBREMsYUFBYSxFQUFFOztxREFDYTsyRkEvRXBCLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDSSxvQkFBb0IsUUFFeEI7d0JBQ0YsS0FBSyxFQUFFLG9CQUFvQjtxQkFDOUIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7c0ZBR3RGLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFFRyxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFFRyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFRyxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQU83QixlQUFlO3NCQUZkLEtBQUs7Z0JBU04sWUFBWTtzQkFGWCxLQUFLO2dCQVNOLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNN0IsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkFTa0MsV0FBVztzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNN0IsUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT04sV0FBVztzQkFGVixLQUFLO2dCQVFPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dENzc1BpeGVsIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeVNrZWxldG9uQ2lyY2xlLCBUaHlTa2VsZXRvblJlY3RhbmdsZSB9IGZyb20gJ25neC10ZXRoeXMvc2tlbGV0b24nO1xuaW1wb3J0IHsgVGh5VGFibGVTa2VsZXRvbkNvbHVtbiB9IGZyb20gJy4vdGFibGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRoeVZpZXdPdXRsZXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgVGh5VGFibGVTaXplLCBUaHlUYWJsZVRoZW1lIH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xuXG5jb25zdCBDT0xVTU5fQ09VTlQgPSA1O1xuXG4vKipcbiAqIOihqOagvOeahOmqqOaetuWxj+e7hOS7tlxuICogQG5hbWUgdGh5LXRhYmxlLXNrZWxldG9uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRhYmxlLXNrZWxldG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtc2tlbGV0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktdGFibGUtc2tlbGV0b24nXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nRm9yLCBOZ0NsYXNzLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBUaHlWaWV3T3V0bGV0RGlyZWN0aXZlLCBUaHlTa2VsZXRvblJlY3RhbmdsZSwgVGh5U2tlbGV0b25DaXJjbGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRhYmxlU2tlbGV0b24gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKCd0aXRsZVRlbXBsYXRlJykgdGl0bGVUZW1wbGF0ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdtZW1iZXJUZW1wbGF0ZScpIG1lbWJlclRlbXBsYXRlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRUZW1wbGF0ZScpIGRlZmF1bHRUZW1wbGF0ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdjaGVja2JveFRlbXBsYXRlJykgY2hlY2tib3hUZW1wbGF0ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrbovrnmoYblnIbop5JcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dENzc1BpeGVsKClcbiAgICB0aHlCb3JkZXJSYWRpdXM6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOihqOagvOWGheWuuemqqOaetumrmOW6plxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Q3NzUGl4ZWwoKVxuICAgIHRoeVJvd0hlaWdodDogc3RyaW5nIHwgbnVtYmVyID0gJzIwcHgnO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5byA5ZCv5Yqo55S7XG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHRoeUFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOWKqOeUu+mAn+W6plxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUFuaW1hdGVkSW50ZXJ2YWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOmqqOaetuS4u+iJslxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVByaW1hcnlDb2xvcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625qyh6ImyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2Vjb25kYXJ5Q29sb3I6IHN0cmluZztcblxuICAgIHJvd0NvdW50OiBudW1iZXJbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICog6KGM5pWwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5Um93Q291bnQodmFsdWU6IG51bWJlciB8IHN0cmluZykge1xuICAgICAgICB0aGlzLnJvd0NvdW50ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogK3ZhbHVlIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuWxleekuumqqOaetuWktFxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHRoeUhlYWRsZXNzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDpqqjmnrblsY/nmoTpo47moLxcbiAgICAgKiBAdHlwZSBkZWZhdWx0IHwgYm9yZGVyZWQgfCBib3hlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRoZW1lOiBUaHlUYWJsZVRoZW1lID0gJ2RlZmF1bHQnO1xuXG4gICAgLyoqXG4gICAgICog6aqo5p625bGP55qE5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgbGcgfCB4bGcgfCBkZWZhdWx0XG4gICAgICogQGRlZmF1bHQgbWRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlTaXplOiBUaHlUYWJsZVNpemUgPSAnbWQnO1xuXG4gICAgLyoqXG4gICAgICog6K6+572u6KGo5qC85pyA5bCP5a695bqmXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXRDc3NQaXhlbCgpXG4gICAgdGh5TWluV2lkdGg6IHN0cmluZyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOihqOagvOWIl+mqqOaetueahOmFjee9rumhue+8jOaUr+aMgemFjee9ruWIl+WuveOAgemqqOaetuexu+Wei1xuICAgICAqIEB0eXBlIFRoeVRhYmxlU2tlbGV0b25Db2x1bW5bXVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlDb2x1bW5zKGNvbHVtbnM6IFRoeVRhYmxlU2tlbGV0b25Db2x1bW5bXSkge1xuICAgICAgICBpZiAoY29sdW1ucyAmJiBjb2x1bW5zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IFsuLi50aGlzLmRlZmF1bHRDb2x1bW5zXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0aXRsZUhlaWdodCA9ICcyMHB4JztcblxuICAgIHB1YmxpYyB0aXRsZVdpZHRoID0gJzUwcHgnO1xuXG4gICAgcHVibGljIGNoZWNrYm94V2lkdGggPSAnMjBweCc7XG5cbiAgICBwdWJsaWMgYXZhdGFyU2l6ZSA9ICcyNHB4JztcblxuICAgIHB1YmxpYyBjb2x1bW5UeXBlID0gVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGU7XG5cbiAgICBwdWJsaWMgc2tlbGV0b25Db2x1bW5zTWFwOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIH0gPSB7fTtcblxuICAgIGdldCB0YWJsZUNsYXNzTWFwKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGFibGU6IHRydWUsXG4gICAgICAgICAgICAndGFibGUtYm9yZGVyZWQnOiB0aGlzLnRoeVRoZW1lID09PSAnYm9yZGVyZWQnLFxuICAgICAgICAgICAgJ3RhYmxlLWJveGVkJzogdGhpcy50aHlUaGVtZSA9PT0gJ2JveGVkJyxcbiAgICAgICAgICAgIFtgdGFibGUtJHt0aGlzLnRoeVNpemV9YF06ICEhdGhpcy50aHlTaXplXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWZhdWx0Q29sdW1ucyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IENPTFVNTl9DT1VOVCB9KS5tYXAoKGl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnNDAlJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS50aXRsZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJzE3JScsXG4gICAgICAgICAgICAgICAgdHlwZTogVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUubWVtYmVyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgIHR5cGU6IFRoeVRhYmxlQ29sdW1uU2tlbGV0b25UeXBlLmRlZmF1bHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHB1YmxpYyBjb2x1bW5zOiBUaHlUYWJsZVNrZWxldG9uQ29sdW1uW10gPSBbLi4udGhpcy5kZWZhdWx0Q29sdW1uc107XG5cbiAgICBwdWJsaWMgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5za2VsZXRvbkNvbHVtbnNNYXAgPSB7XG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUudGl0bGVdOiB0aGlzLnRpdGxlVGVtcGxhdGUsXG4gICAgICAgICAgICBbVGh5VGFibGVDb2x1bW5Ta2VsZXRvblR5cGUubWVtYmVyXTogdGhpcy5tZW1iZXJUZW1wbGF0ZSxcbiAgICAgICAgICAgIFtUaHlUYWJsZUNvbHVtblNrZWxldG9uVHlwZS5jaGVja2JveF06IHRoaXMuY2hlY2tib3hUZW1wbGF0ZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHRhYmxlIFtuZ0NsYXNzXT1cInRhYmxlQ2xhc3NNYXBcIiBbc3R5bGUubWluLXdpZHRoXT1cInRoeU1pbldpZHRoXCI+XG4gIDxjb2xncm91cD5cbiAgICA8Y29sICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUZuXCIgW3dpZHRoXT1cImNvbHVtbi53aWR0aFwiIC8+XG4gIDwvY29sZ3JvdXA+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGh5SGVhZGxlc3NcIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgICAgICAgICBbdGh5Um93V2lkdGhdPVwiY29sdW1uPy50eXBlID09PSBjb2x1bW5UeXBlLmNoZWNrYm94ID8gY2hlY2tib3hXaWR0aCA6IHRpdGxlV2lkdGhcIlxuICAgICAgICAgICAgW3RoeVJvd0hlaWdodF09XCJ0aXRsZUhlaWdodFwiXG4gICAgICAgICAgICBbdGh5Qm9yZGVyUmFkaXVzXT1cInRoeUJvcmRlclJhZGl1c1wiXG4gICAgICAgICAgICBbdGh5QW5pbWF0ZWRdPVwidGh5QW5pbWF0ZWRcIlxuICAgICAgICAgICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgICAgICAgICBbdGh5UHJpbWFyeUNvbG9yXT1cInRoeVRoZW1lID09PSAnYm9yZGVyZWQnIHx8IHRoeVRoZW1lID09PSAnYm94ZWQnID8gJyNlZWUnIDogdGh5UHJpbWFyeUNvbG9yXCJcbiAgICAgICAgICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDx0Ym9keT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd0NvdW50OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8dHI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICp0aHlWaWV3T3V0bGV0PVwiXG4gICAgICAgICAgICAgIHNrZWxldG9uQ29sdW1uc01hcFtjb2x1bW4udHlwZV0gfHwgZGVmYXVsdFRlbXBsYXRlXG4gICAgICAgICAgICAgIGNvbnRleHQ6e1xuICAgICAgICAgICAgICAgICAgdHJJbmRleDogaSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48bmctdGVtcGxhdGUgI3RpdGxlVGVtcGxhdGUgbGV0LXRySW5kZXg9XCJ0ckluZGV4XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPHRoeS1za2VsZXRvbi1yZWN0YW5nbGVcbiAgICAgIGNsYXNzPVwibXItMiBmbGV4LXNocmluay0wXCJcbiAgICAgIFt0aHlSb3dXaWR0aF09XCJjaGVja2JveFdpZHRoXCJcbiAgICAgIFt0aHlSb3dIZWlnaHRdPVwidGh5Um93SGVpZ2h0XCJcbiAgICAgIFt0aHlCb3JkZXJSYWRpdXNdPVwidGh5Qm9yZGVyUmFkaXVzXCJcbiAgICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgICBbdGh5QW5pbWF0ZWRJbnRlcnZhbF09XCJ0aHlBbmltYXRlZEludGVydmFsXCJcbiAgICAgIFt0aHlQcmltYXJ5Q29sb3JdPVwidGh5UHJpbWFyeUNvbG9yXCJcbiAgICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cblxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICp0aHlWaWV3T3V0bGV0PVwiZGVmYXVsdFRlbXBsYXRlO1xuICAgICAgY29udGV4dDp7XG4gICAgICAgIHJvd1dpZHRoOiB0ckluZGV4ICUgMyA9PT0gMCA/ICc3NSUnIDogdHJJbmRleCAlIDMgPT09IDEgPyAnMTAwJScgOiB0ckluZGV4ICUgMyA9PT0gMiA/ICc2NSUnIDogJycsXG4gICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjaGVja2JveFRlbXBsYXRlPlxuICA8dGh5LXNrZWxldG9uLXJlY3RhbmdsZVxuICAgIFt0aHlSb3dXaWR0aF09XCJjaGVja2JveFdpZHRoXCJcbiAgICBbdGh5Um93SGVpZ2h0XT1cInRoeVJvd0hlaWdodFwiXG4gICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWVtYmVyVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPHRoeS1za2VsZXRvbi1jaXJjbGVcbiAgICAgIGNsYXNzPVwibXItMiBmbGV4LXNocmluay0wXCJcbiAgICAgIFt0aHlTaXplXT1cImF2YXRhclNpemVcIlxuICAgICAgW3RoeUFuaW1hdGVkXT1cInRoeUFuaW1hdGVkXCJcbiAgICAgIFt0aHlBbmltYXRlZEludGVydmFsXT1cInRoeUFuaW1hdGVkSW50ZXJ2YWxcIlxuICAgICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgICAgW3RoeVNlY29uZGFyeUNvbG9yXT1cInRoeVNlY29uZGFyeUNvbG9yXCI+PC90aHktc2tlbGV0b24tY2lyY2xlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqdGh5Vmlld091dGxldD1cImRlZmF1bHRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlIGxldC1yb3dXaWR0aD1cInJvd1dpZHRoXCI+XG4gIDx0aHktc2tlbGV0b24tcmVjdGFuZ2xlXG4gICAgW3RoeVJvd1dpZHRoXT1cInJvd1dpZHRoXCJcbiAgICBbdGh5Um93SGVpZ2h0XT1cInRoeVJvd0hlaWdodFwiXG4gICAgW3RoeUJvcmRlclJhZGl1c109XCJ0aHlCb3JkZXJSYWRpdXNcIlxuICAgIFt0aHlBbmltYXRlZF09XCJ0aHlBbmltYXRlZFwiXG4gICAgW3RoeUFuaW1hdGVkSW50ZXJ2YWxdPVwidGh5QW5pbWF0ZWRJbnRlcnZhbFwiXG4gICAgW3RoeVByaW1hcnlDb2xvcl09XCJ0aHlQcmltYXJ5Q29sb3JcIlxuICAgIFt0aHlTZWNvbmRhcnlDb2xvcl09XCJ0aHlTZWNvbmRhcnlDb2xvclwiPjwvdGh5LXNrZWxldG9uLXJlY3RhbmdsZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=