@ng-nest/ui 15.0.5 → 15.0.7

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 (409) hide show
  1. package/anchor/anchor.component.d.ts +5 -5
  2. package/api/api.component.d.ts +1 -1
  3. package/auto-complete/auto-complete.component.d.ts +1 -1
  4. package/avatar/avatar.component.d.ts +3 -3
  5. package/back-top/back-top.component.d.ts +2 -2
  6. package/badge/badge.component.d.ts +2 -2
  7. package/border/border.component.d.ts +1 -1
  8. package/button/button.component.d.ts +2 -2
  9. package/button/buttons.component.d.ts +1 -1
  10. package/calendar/calendar.component.d.ts +2 -2
  11. package/card/card.component.d.ts +2 -2
  12. package/carousel/carousel-panel.component.d.ts +2 -2
  13. package/carousel/carousel.component.d.ts +4 -4
  14. package/cascade/cascade.component.d.ts +1 -1
  15. package/checkbox/checkbox.component.d.ts +3 -3
  16. package/collapse/collapse-panel.component.d.ts +2 -2
  17. package/collapse/collapse.component.d.ts +2 -2
  18. package/color/color.component.d.ts +1 -1
  19. package/color-picker/color-picker-portal.component.d.ts +4 -4
  20. package/color-picker/color-picker.component.d.ts +1 -1
  21. package/comment/comment-reply.component.d.ts +2 -2
  22. package/comment/comment.component.d.ts +2 -2
  23. package/container/aside.component.d.ts +1 -1
  24. package/container/container.component.d.ts +1 -1
  25. package/container/footer.component.d.ts +1 -1
  26. package/container/header.component.d.ts +1 -1
  27. package/container/main.component.d.ts +1 -1
  28. package/core/config/config.d.ts +1 -0
  29. package/core/functions/chunk.d.ts +1 -0
  30. package/core/functions/date.d.ts +1 -0
  31. package/core/functions/flex.d.ts +1 -1
  32. package/core/functions/group-by.d.ts +1 -0
  33. package/core/functions/guid.d.ts +4 -0
  34. package/core/functions/public-api.d.ts +4 -0
  35. package/core/{util → functions}/resize.d.ts +0 -0
  36. package/core/util/public-api.d.ts +0 -4
  37. package/date-picker/date-picker.component.d.ts +1 -1
  38. package/date-picker/date-picker.property.d.ts +129 -3
  39. package/date-picker/date-range-portal.component.d.ts +9 -8
  40. package/date-picker/date-range.component.d.ts +13 -11
  41. package/date-picker/picker-date.component.d.ts +15 -6
  42. package/dialog/dialog.component.d.ts +2 -2
  43. package/drawer/drawer.component.d.ts +2 -2
  44. package/dropdown/dropdown-portal.component.d.ts +2 -2
  45. package/dropdown/dropdown.component.d.ts +3 -3
  46. package/esm2020/anchor/anchor.component.mjs +1 -2
  47. package/esm2020/api/api.component.mjs +1 -1
  48. package/esm2020/auto-complete/auto-complete.component.mjs +1 -1
  49. package/esm2020/avatar/avatar.component.mjs +1 -1
  50. package/esm2020/back-top/back-top.component.mjs +1 -1
  51. package/esm2020/badge/badge.component.mjs +1 -1
  52. package/esm2020/base-form/base-form.component.mjs +3 -3
  53. package/esm2020/border/border.component.mjs +1 -1
  54. package/esm2020/button/button.component.mjs +1 -1
  55. package/esm2020/button/buttons.component.mjs +1 -1
  56. package/esm2020/calendar/calendar.component.mjs +1 -1
  57. package/esm2020/card/card.component.mjs +1 -1
  58. package/esm2020/carousel/carousel-panel.component.mjs +1 -1
  59. package/esm2020/carousel/carousel.component.mjs +1 -1
  60. package/esm2020/cascade/cascade.component.mjs +1 -1
  61. package/esm2020/checkbox/checkbox.component.mjs +1 -1
  62. package/esm2020/collapse/collapse-panel.component.mjs +1 -1
  63. package/esm2020/collapse/collapse.component.mjs +1 -1
  64. package/esm2020/color/color.component.mjs +1 -1
  65. package/esm2020/color-picker/color-picker-portal.component.mjs +1 -1
  66. package/esm2020/color-picker/color-picker.component.mjs +1 -1
  67. package/esm2020/comment/comment-reply.component.mjs +1 -1
  68. package/esm2020/comment/comment.component.mjs +1 -1
  69. package/esm2020/container/aside.component.mjs +1 -1
  70. package/esm2020/container/container.component.mjs +1 -1
  71. package/esm2020/container/footer.component.mjs +1 -1
  72. package/esm2020/container/header.component.mjs +1 -1
  73. package/esm2020/container/main.component.mjs +1 -1
  74. package/esm2020/core/config/config.mjs +1 -1
  75. package/esm2020/core/functions/chunk.mjs +14 -0
  76. package/esm2020/core/functions/date.mjs +20 -29
  77. package/esm2020/core/functions/flex.mjs +2 -2
  78. package/esm2020/core/functions/group-by.mjs +10 -0
  79. package/esm2020/core/functions/guid.mjs +10 -0
  80. package/esm2020/core/functions/order-by.mjs +24 -3
  81. package/esm2020/core/functions/public-api.mjs +5 -1
  82. package/esm2020/core/functions/resize.mjs +17 -0
  83. package/esm2020/core/util/public-api.mjs +1 -5
  84. package/esm2020/date-picker/date-picker-portal.component.mjs +2 -2
  85. package/esm2020/date-picker/date-picker.component.mjs +1 -1
  86. package/esm2020/date-picker/date-picker.property.mjs +23 -2
  87. package/esm2020/date-picker/date-range-portal.component.mjs +36 -33
  88. package/esm2020/date-picker/date-range.component.mjs +75 -53
  89. package/esm2020/date-picker/picker-date.component.mjs +133 -17
  90. package/esm2020/date-picker/picker-month.component.mjs +3 -3
  91. package/esm2020/date-picker/picker-year.component.mjs +3 -3
  92. package/esm2020/dialog/dialog.component.mjs +2 -2
  93. package/esm2020/drawer/drawer.component.mjs +1 -1
  94. package/esm2020/dropdown/dropdown-portal.component.mjs +1 -1
  95. package/esm2020/dropdown/dropdown.component.mjs +1 -1
  96. package/esm2020/find/find.component.mjs +1 -1
  97. package/esm2020/form/control.component.mjs +2 -2
  98. package/esm2020/form/form.component.mjs +8 -1
  99. package/esm2020/highlight/highlight.component.mjs +2 -2
  100. package/esm2020/i18n/i18n.property.mjs +1 -1
  101. package/esm2020/i18n/languages/en_GB.mjs +44 -18
  102. package/esm2020/i18n/languages/en_US.mjs +8 -2
  103. package/esm2020/i18n/languages/zh_CN.mjs +8 -2
  104. package/esm2020/i18n/languages/zh_TW.mjs +9 -3
  105. package/esm2020/icon/icon.component.mjs +1 -1
  106. package/esm2020/image/image-preview.component.mjs +1 -1
  107. package/esm2020/image/image.component.mjs +1 -1
  108. package/esm2020/inner/inner.component.mjs +1 -1
  109. package/esm2020/input/input-group.component.mjs +1 -1
  110. package/esm2020/input/input.component.mjs +2 -2
  111. package/esm2020/input-number/input-number.component.mjs +1 -1
  112. package/esm2020/link/link.component.mjs +1 -1
  113. package/esm2020/list/list-option.component.mjs +1 -1
  114. package/esm2020/list/list.component.mjs +2 -2
  115. package/esm2020/loading/loading.component.mjs +14 -7
  116. package/esm2020/loading/loading.property.mjs +1 -1
  117. package/esm2020/menu/menu-node.component.mjs +1 -1
  118. package/esm2020/menu/menu.component.mjs +3 -3
  119. package/esm2020/message/message.component.mjs +1 -1
  120. package/esm2020/message-box/message-box.component.mjs +1 -1
  121. package/esm2020/notification/notification.component.mjs +1 -1
  122. package/esm2020/pagination/pagination.component.mjs +1 -1
  123. package/esm2020/popconfirm/popconfirm.component.mjs +1 -1
  124. package/esm2020/popover/popover-portal.component.mjs +1 -1
  125. package/esm2020/progress/progress.component.mjs +1 -1
  126. package/esm2020/radio/radio.component.mjs +1 -1
  127. package/esm2020/rate/rate.component.mjs +1 -1
  128. package/esm2020/result/result.component.mjs +1 -1
  129. package/esm2020/select/select.component.mjs +3 -3
  130. package/esm2020/skeleton/skeleton.component.mjs +1 -1
  131. package/esm2020/slider/slider.component.mjs +1 -1
  132. package/esm2020/slider-select/slider-select.component.mjs +1 -1
  133. package/esm2020/steps/steps.component.mjs +1 -1
  134. package/esm2020/switch/switch.component.mjs +13 -6
  135. package/esm2020/switch/switch.module.mjs +6 -4
  136. package/esm2020/switch/switch.property.mjs +33 -4
  137. package/esm2020/table/drag.directive.mjs +13 -5
  138. package/esm2020/table/table-body.component.mjs +1 -1
  139. package/esm2020/table/table-foot.component.mjs +1 -1
  140. package/esm2020/table/table-head.component.mjs +20 -6
  141. package/esm2020/table/table.component.mjs +1 -1
  142. package/esm2020/table/table.property.mjs +23 -2
  143. package/esm2020/tabs/tab-content.component.mjs +1 -1
  144. package/esm2020/tabs/tab.component.mjs +3 -3
  145. package/esm2020/tabs/tabs.component.mjs +3 -3
  146. package/esm2020/tag/tag.component.mjs +1 -1
  147. package/esm2020/text-retract/text-retract.component.mjs +1 -1
  148. package/esm2020/textarea/textarea.component.mjs +1 -1
  149. package/esm2020/time-picker/time-picker-frame.component.mjs +188 -55
  150. package/esm2020/time-picker/time-picker-portal.component.mjs +30 -8
  151. package/esm2020/time-picker/time-picker.component.mjs +36 -9
  152. package/esm2020/time-picker/time-picker.module.mjs +8 -4
  153. package/esm2020/time-picker/time-picker.property.mjs +37 -3
  154. package/esm2020/timeline/timeline.component.mjs +1 -1
  155. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  156. package/esm2020/transfer/transfer.component.mjs +3 -3
  157. package/esm2020/transfer/transfer.module.mjs +8 -4
  158. package/esm2020/tree/tree-node.component.mjs +1 -1
  159. package/esm2020/tree/tree.component.mjs +1 -1
  160. package/esm2020/tree-file/tree-file.component.mjs +1 -1
  161. package/esm2020/tree-select/tree-select.component.mjs +1 -1
  162. package/esm2020/upload/upload-portal.component.mjs +5 -1
  163. package/esm2020/upload/upload.component.mjs +1 -1
  164. package/fesm2015/ng-nest-ui-anchor.mjs +0 -1
  165. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  166. package/fesm2015/ng-nest-ui-api.mjs.map +1 -1
  167. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  168. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  169. package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
  170. package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
  171. package/fesm2015/ng-nest-ui-base-form.mjs +2 -2
  172. package/fesm2015/ng-nest-ui-base-form.mjs.map +1 -1
  173. package/fesm2015/ng-nest-ui-border.mjs.map +1 -1
  174. package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
  175. package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
  176. package/fesm2015/ng-nest-ui-card.mjs.map +1 -1
  177. package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
  178. package/fesm2015/ng-nest-ui-cascade.mjs.map +1 -1
  179. package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
  180. package/fesm2015/ng-nest-ui-collapse.mjs.map +1 -1
  181. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  182. package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
  183. package/fesm2015/ng-nest-ui-comment.mjs.map +1 -1
  184. package/fesm2015/ng-nest-ui-container.mjs.map +1 -1
  185. package/fesm2015/ng-nest-ui-core.mjs +95 -84
  186. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  187. package/fesm2015/ng-nest-ui-date-picker.mjs +265 -103
  188. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  189. package/fesm2015/ng-nest-ui-dialog.mjs +1 -1
  190. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  191. package/fesm2015/ng-nest-ui-drawer.mjs.map +1 -1
  192. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  193. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  194. package/fesm2015/ng-nest-ui-form.mjs +8 -2
  195. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  196. package/fesm2015/ng-nest-ui-highlight.mjs +1 -1
  197. package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
  198. package/fesm2015/ng-nest-ui-i18n.mjs +65 -22
  199. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  200. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  201. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  202. package/fesm2015/ng-nest-ui-inner.mjs.map +1 -1
  203. package/fesm2015/ng-nest-ui-input-number.mjs.map +1 -1
  204. package/fesm2015/ng-nest-ui-input.mjs +1 -2
  205. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  206. package/fesm2015/ng-nest-ui-link.mjs.map +1 -1
  207. package/fesm2015/ng-nest-ui-list.mjs +1 -1
  208. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  209. package/fesm2015/ng-nest-ui-loading.mjs +13 -7
  210. package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
  211. package/fesm2015/ng-nest-ui-menu.mjs +2 -2
  212. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  213. package/fesm2015/ng-nest-ui-message-box.mjs.map +1 -1
  214. package/fesm2015/ng-nest-ui-message.mjs.map +1 -1
  215. package/fesm2015/ng-nest-ui-notification.mjs.map +1 -1
  216. package/fesm2015/ng-nest-ui-pagination.mjs.map +1 -1
  217. package/fesm2015/ng-nest-ui-popconfirm.mjs.map +1 -1
  218. package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
  219. package/fesm2015/ng-nest-ui-progress.mjs.map +1 -1
  220. package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
  221. package/fesm2015/ng-nest-ui-rate.mjs.map +1 -1
  222. package/fesm2015/ng-nest-ui-result.mjs.map +1 -1
  223. package/fesm2015/ng-nest-ui-select.mjs +2 -2
  224. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  225. package/fesm2015/ng-nest-ui-skeleton.mjs.map +1 -1
  226. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  227. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  228. package/fesm2015/ng-nest-ui-steps.mjs.map +1 -1
  229. package/fesm2015/ng-nest-ui-switch.mjs +48 -12
  230. package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
  231. package/fesm2015/ng-nest-ui-table.mjs +53 -10
  232. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  233. package/fesm2015/ng-nest-ui-tabs.mjs +4 -4
  234. package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
  235. package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
  236. package/fesm2015/ng-nest-ui-text-retract.mjs.map +1 -1
  237. package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
  238. package/fesm2015/ng-nest-ui-time-picker.mjs +292 -81
  239. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  240. package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
  241. package/fesm2015/ng-nest-ui-tooltip.mjs +2 -2
  242. package/fesm2015/ng-nest-ui-tooltip.mjs.map +1 -1
  243. package/fesm2015/ng-nest-ui-transfer.mjs +9 -5
  244. package/fesm2015/ng-nest-ui-transfer.mjs.map +1 -1
  245. package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
  246. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
  247. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  248. package/fesm2015/ng-nest-ui-upload.mjs +4 -0
  249. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  250. package/fesm2020/ng-nest-ui-anchor.mjs +0 -1
  251. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  252. package/fesm2020/ng-nest-ui-api.mjs.map +1 -1
  253. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  254. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  255. package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
  256. package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
  257. package/fesm2020/ng-nest-ui-base-form.mjs +2 -2
  258. package/fesm2020/ng-nest-ui-base-form.mjs.map +1 -1
  259. package/fesm2020/ng-nest-ui-border.mjs.map +1 -1
  260. package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
  261. package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
  262. package/fesm2020/ng-nest-ui-card.mjs.map +1 -1
  263. package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
  264. package/fesm2020/ng-nest-ui-cascade.mjs.map +1 -1
  265. package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
  266. package/fesm2020/ng-nest-ui-collapse.mjs.map +1 -1
  267. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  268. package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
  269. package/fesm2020/ng-nest-ui-comment.mjs.map +1 -1
  270. package/fesm2020/ng-nest-ui-container.mjs.map +1 -1
  271. package/fesm2020/ng-nest-ui-core.mjs +95 -84
  272. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  273. package/fesm2020/ng-nest-ui-date-picker.mjs +264 -103
  274. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  275. package/fesm2020/ng-nest-ui-dialog.mjs +1 -1
  276. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  277. package/fesm2020/ng-nest-ui-drawer.mjs.map +1 -1
  278. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  279. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  280. package/fesm2020/ng-nest-ui-form.mjs +8 -2
  281. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  282. package/fesm2020/ng-nest-ui-highlight.mjs +1 -1
  283. package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
  284. package/fesm2020/ng-nest-ui-i18n.mjs +65 -22
  285. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  286. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  287. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  288. package/fesm2020/ng-nest-ui-inner.mjs.map +1 -1
  289. package/fesm2020/ng-nest-ui-input-number.mjs.map +1 -1
  290. package/fesm2020/ng-nest-ui-input.mjs +1 -2
  291. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  292. package/fesm2020/ng-nest-ui-link.mjs.map +1 -1
  293. package/fesm2020/ng-nest-ui-list.mjs +1 -1
  294. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  295. package/fesm2020/ng-nest-ui-loading.mjs +13 -7
  296. package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
  297. package/fesm2020/ng-nest-ui-menu.mjs +2 -2
  298. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  299. package/fesm2020/ng-nest-ui-message-box.mjs.map +1 -1
  300. package/fesm2020/ng-nest-ui-message.mjs.map +1 -1
  301. package/fesm2020/ng-nest-ui-notification.mjs.map +1 -1
  302. package/fesm2020/ng-nest-ui-pagination.mjs.map +1 -1
  303. package/fesm2020/ng-nest-ui-popconfirm.mjs.map +1 -1
  304. package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
  305. package/fesm2020/ng-nest-ui-progress.mjs.map +1 -1
  306. package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
  307. package/fesm2020/ng-nest-ui-rate.mjs.map +1 -1
  308. package/fesm2020/ng-nest-ui-result.mjs.map +1 -1
  309. package/fesm2020/ng-nest-ui-select.mjs +2 -2
  310. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  311. package/fesm2020/ng-nest-ui-skeleton.mjs.map +1 -1
  312. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  313. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  314. package/fesm2020/ng-nest-ui-steps.mjs.map +1 -1
  315. package/fesm2020/ng-nest-ui-switch.mjs +48 -12
  316. package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
  317. package/fesm2020/ng-nest-ui-table.mjs +53 -10
  318. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  319. package/fesm2020/ng-nest-ui-tabs.mjs +4 -4
  320. package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
  321. package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
  322. package/fesm2020/ng-nest-ui-text-retract.mjs.map +1 -1
  323. package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
  324. package/fesm2020/ng-nest-ui-time-picker.mjs +291 -78
  325. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  326. package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
  327. package/fesm2020/ng-nest-ui-tooltip.mjs +2 -2
  328. package/fesm2020/ng-nest-ui-tooltip.mjs.map +1 -1
  329. package/fesm2020/ng-nest-ui-transfer.mjs +9 -5
  330. package/fesm2020/ng-nest-ui-transfer.mjs.map +1 -1
  331. package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
  332. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
  333. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  334. package/fesm2020/ng-nest-ui-upload.mjs +4 -0
  335. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  336. package/find/find.component.d.ts +1 -1
  337. package/form/form.component.d.ts +1 -0
  338. package/highlight/highlight.component.d.ts +3 -3
  339. package/i18n/i18n.property.d.ts +6 -0
  340. package/i18n/languages/en_GB.d.ts +26 -0
  341. package/i18n/languages/en_US.d.ts +6 -0
  342. package/i18n/languages/zh_CN.d.ts +6 -0
  343. package/i18n/languages/zh_TW.d.ts +6 -0
  344. package/icon/icon.component.d.ts +2 -2
  345. package/image/image-preview.component.d.ts +2 -2
  346. package/image/image.component.d.ts +2 -2
  347. package/inner/inner.component.d.ts +1 -1
  348. package/input/input-group.component.d.ts +2 -2
  349. package/input/input.component.d.ts +5 -5
  350. package/input-number/input-number.component.d.ts +1 -1
  351. package/link/link.component.d.ts +2 -2
  352. package/list/list-option.component.d.ts +2 -2
  353. package/list/list.component.d.ts +7 -7
  354. package/loading/loading.component.d.ts +3 -2
  355. package/loading/loading.property.d.ts +1 -1
  356. package/menu/menu-node.component.d.ts +2 -2
  357. package/menu/menu.component.d.ts +3 -3
  358. package/message/message.component.d.ts +2 -2
  359. package/message-box/message-box.component.d.ts +2 -2
  360. package/notification/notification.component.d.ts +2 -2
  361. package/package.json +1 -1
  362. package/pagination/pagination.component.d.ts +2 -2
  363. package/popconfirm/popconfirm.component.d.ts +2 -2
  364. package/popover/popover-portal.component.d.ts +2 -2
  365. package/progress/progress.component.d.ts +2 -2
  366. package/radio/radio.component.d.ts +3 -3
  367. package/rate/rate.component.d.ts +3 -3
  368. package/result/result.component.d.ts +2 -2
  369. package/select/select.component.d.ts +1 -1
  370. package/skeleton/skeleton.component.d.ts +2 -2
  371. package/slider/slider.component.d.ts +4 -4
  372. package/slider-select/slider-select.component.d.ts +6 -6
  373. package/steps/steps.component.d.ts +2 -2
  374. package/switch/switch.component.d.ts +3 -2
  375. package/switch/switch.module.d.ts +3 -1
  376. package/switch/switch.property.d.ts +42 -1
  377. package/table/drag.directive.d.ts +12 -2
  378. package/table/table-body.component.d.ts +3 -3
  379. package/table/table-foot.component.d.ts +3 -3
  380. package/table/table-head.component.d.ts +14 -4
  381. package/table/table.component.d.ts +12 -12
  382. package/table/table.property.d.ts +50 -1
  383. package/tabs/tab-content.component.d.ts +1 -1
  384. package/tabs/tabs.component.d.ts +1 -1
  385. package/tag/tag.component.d.ts +2 -2
  386. package/text-retract/text-retract.component.d.ts +2 -2
  387. package/textarea/textarea.component.d.ts +4 -4
  388. package/time-picker/time-picker-frame.component.d.ts +30 -23
  389. package/time-picker/time-picker-portal.component.d.ts +13 -3
  390. package/time-picker/time-picker.component.d.ts +6 -3
  391. package/time-picker/time-picker.module.d.ts +2 -1
  392. package/time-picker/time-picker.property.d.ts +38 -2
  393. package/timeline/timeline.component.d.ts +2 -2
  394. package/tooltip/tooltip-portal.component.d.ts +3 -3
  395. package/transfer/transfer.component.d.ts +2 -2
  396. package/transfer/transfer.module.d.ts +2 -1
  397. package/tree/tree-node.component.d.ts +2 -2
  398. package/tree/tree.component.d.ts +3 -3
  399. package/tree-file/tree-file.component.d.ts +2 -2
  400. package/tree-select/tree-select.component.d.ts +1 -1
  401. package/upload/upload-portal.component.d.ts +6 -6
  402. package/upload/upload.component.d.ts +3 -3
  403. package/core/util/chunk.d.ts +0 -1
  404. package/core/util/group-by.d.ts +0 -1
  405. package/core/util/guid.d.ts +0 -4
  406. package/esm2020/core/util/chunk.mjs +0 -14
  407. package/esm2020/core/util/group-by.mjs +0 -10
  408. package/esm2020/core/util/guid.mjs +0 -10
  409. package/esm2020/core/util/resize.mjs +0 -17
@@ -277,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
277
277
  type: ViewChild,
278
278
  args: ['inputCom', { static: true }]
279
279
  }] } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBTXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQXdCLE1BQU0sd0JBQXdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBVyxXQUFXLEVBQUUsU0FBUyxFQUFrQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVySSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFVdkQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQTRDM0QsWUFDUyxRQUFtQixFQUNuQixhQUE2QixFQUNwQixHQUFzQixFQUM5QixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsUUFBa0IsRUFDbEIsT0FBZ0I7UUFFeEIsS0FBSyxFQUFFLENBQUM7UUFSRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUNwQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUEvQzFCLGNBQVMsR0FBeUIsTUFBTSxDQUFDO1FBRXpDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFzQmhCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixTQUFJLEdBQVcsY0FBYyxDQUFDO1FBRzlCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsZ0JBQVcsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQWlCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDekMsbUJBQWMsR0FBaUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QyxpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBWXpDLENBQUM7SUE5Q1EsVUFBVSxDQUFDLEtBQVU7UUFDNUIsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDcEM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUMxQjthQUFNLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQzFCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3ZEO2FBQU0sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQThCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWTtZQUFFLE9BQU87UUFDekMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztTQUM1QjthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7U0FDdEI7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLHFCQUFxQixDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUNwQyxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQztTQUMvQjthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNyRyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sTUFBTSxHQUFrQjtZQUM1QixhQUFhLEVBQUUsRUFBRTtZQUNqQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRTtTQUMzRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3RDLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxhQUFhLEVBQUUsTUFBTTtTQUN0QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFDcEIsRUFBRSxvQkFBb0IsRUFBRTthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQXFCO1FBQy9CLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBcUQsQ0FBQztRQUM1RSxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBbUMsRUFBRSxFQUFFO1lBQzFHLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFZLENBQUM7WUFDMUUsS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO1FBQzdDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDbkMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO1lBQzNDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3pDLFFBQVEsRUFBRSxDQUFDLElBQVUsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7WUFDbkUsU0FBUyxFQUFFLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1NBQ3BELENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVUsRUFBRSxJQUFJLEdBQUcsSUFBSTtRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN0QzthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQTJCO1FBQ3pDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUU7WUFDckYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0RTtJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztZQUNyQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRO1lBQ2xDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFvQixFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQztZQUM1RixpQkFBaUIsRUFBRSxzQkFBc0I7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVELFdBQVc7UUFDVCxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7b0lBMVFVLG9CQUFvQjt3SEFBcEIsb0JBQW9CLHdDQUZwQixDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxtU0M5QjdELDBvQ0FxQ0E7MkZETGEsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLEdBQUcsaUJBQWlCLEVBQUUsaUJBR2pCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLHNCQUFzQixFQUFFLFFBQVEsQ0FBQztzUUFHaEIsVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNBLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UsIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGF0ZVBpY2tlclByZWZpeCwgWERhdGVQaWNrZXJQcm9wZXJ0eSwgWERhdGVQaWNrZXJNb2RlbFR5cGUgfSBmcm9tICcuL2RhdGUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhJc0RhdGUsIFhJc051bWJlciwgWElzQ2hhbmdlLCBYQ29ybmVyLCBYQ2xlYXJDbGFzcywgWElzU3RyaW5nLCBYQ29uZmlnU2VydmljZSwgWElzTnVsbCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWERhdGVQaWNrZXJDb21wb25lbnQpLCBEYXRlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgWERhdGVQaWNrZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJywgeyBzdGF0aWM6IHRydWUgfSkgZGF0ZVBpY2tlciE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRDb20nLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuXHJcbiAgbW9kZWxUeXBlOiBYRGF0ZVBpY2tlck1vZGVsVHlwZSA9ICdkYXRlJztcclxuICBudW1iZXJWYWx1ZSE6IG51bWJlciB8IHN0cmluZztcclxuICBpc0lucHV0ID0gZmFsc2U7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKFhJc0RhdGUodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubW9kZWxUeXBlID0gJ2RhdGUnO1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gdmFsdWUuZ2V0VGltZSgpO1xyXG4gICAgfSBlbHNlIGlmIChYSXNOdW1iZXIodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubW9kZWxUeXBlID0gJ251bWJlcic7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSB2YWx1ZTtcclxuICAgIH0gZWxzZSBpZiAoWElzU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm1vZGVsVHlwZSA9ICdzdHJpbmcnO1xyXG4gICAgICBjb25zdCB2YWx1ZVRpbWUgPSBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpO1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gIWlzTmFOKHZhbHVlVGltZSkgPyB2YWx1ZVRpbWUgOiAnJztcclxuICAgIH0gZWxzZSBpZiAoWElzRW1wdHkodmFsdWUpIHx8IFhJc051bGwodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbnB1dENsZWFyYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFuaW1hdGluZyA9IGZhbHNlO1xyXG4gIGRpc3BsYXlWYWx1ZTogYW55ID0gJyc7XHJcbiAgcG9ydGFsITogWFBvcnRhbE92ZXJsYXlSZWY8WERhdGVQaWNrZXJQb3J0YWxDb21wb25lbnQ+O1xyXG4gIGljb246IHN0cmluZyA9ICdmdG8tY2FsZW5kYXInO1xyXG4gIGJveCE6IERPTVJlY3Q7XHJcbiAgcHJvdGFsSGVpZ2h0ITogbnVtYmVyO1xyXG4gIG1heE5vZGVzOiBudW1iZXIgPSA2O1xyXG4gIHByb3RhbFRvYm90dG9tOiBib29sZWFuID0gdHJ1ZTtcclxuICB2YWx1ZUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBkYXRhQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHBvc2l0aW9uQ2hhbmdlOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNsb3NlU3ViamVjdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBwb3J0YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5XHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZsZXgodGhpcy5kYXRlUGlja2VyLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRGb3JtYXQoKTtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIHRoaXMuc2V0U3ViamVjdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRQb3J0YWwoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgdHlwZSB9ID0gY2hhbmdlcztcclxuICAgIGlmIChYSXNDaGFuZ2UodHlwZSkpIHtcclxuICAgICAgdGhpcy5zZXRGb3JtYXQoKTtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHNldFN1YmplY3QoKSB7XHJcbiAgICB0aGlzLmNsb3NlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlUG9ydGFsKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEZvcm1hdCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm1hdCAhPT0gJ3l5eXktTU0tZGQnKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXknO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtdGltZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbTpzcyc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtaG91cicpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtbWludXRlJykge1xyXG4gICAgICB0aGlzLmZvcm1hdCA9ICd5eXl5LU1NLWRkIEhIOm1tJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1lbnRlcigpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyID0gdHJ1ZTtcclxuICAgIGlmICghdGhpcy5jbGVhcmFibGUpIHJldHVybjtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy5udW1iZXJWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5pY29uID0gJyc7XHJcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmFibGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtbGVhdmUoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmNsZWFyYWJsZSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuaW5wdXRDbGVhcmFibGUpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2Z0by1jYWxlbmRhcic7XHJcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmFibGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJFbWl0KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLm51bWJlclZhbHVlID0gJyc7XHJcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5tbGVhdmUoKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIG1vZGVsQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmdldFZhbHVlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5udW1iZXJWYWx1ZSA9PT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIFsnZGF0ZScsICdzdHJpbmcnXS5pbmNsdWRlcyh0aGlzLm1vZGVsVHlwZSkgPyBuZXcgRGF0ZSh0aGlzLm51bWJlclZhbHVlKSA6IHRoaXMubnVtYmVyVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmFuaW1hdGluZykgcmV0dXJuO1xyXG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWENvcm5lcjtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucGxhY2VtZW50ICYmIHRoaXMucG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgdHlwZTogdGhpcy50eXBlLFxyXG4gICAgICB2YWx1ZTogdGhpcy5udW1iZXJWYWx1ZSxcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgcHJlc2V0OiB0aGlzLnByZXNldCxcclxuICAgICAgdmFsdWVDaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UsXHJcbiAgICAgIHBvc2l0aW9uQ2hhbmdlOiB0aGlzLnBvc2l0aW9uQ2hhbmdlLFxyXG4gICAgICBpbnB1dENvbTogdGhpcy5pbnB1dENvbSxcclxuICAgICAgY2xvc2VQb3J0YWw6ICgpID0+IHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKSxcclxuICAgICAgZGVzdHJveVBvcnRhbDogKCkgPT4gdGhpcy5kZXN0cm95UG9ydGFsKCksXHJcbiAgICAgIG5vZGVFbWl0OiAobm9kZTogRGF0ZSwgc3VyZSA9IHRydWUpID0+IHRoaXMub25Ob2RlQ2xpY2sobm9kZSwgc3VyZSksXHJcbiAgICAgIGFuaW1hdGluZzogKGluZzogYm9vbGVhbikgPT4gKHRoaXMuYW5pbWF0aW5nID0gaW5nKVxyXG4gICAgfSk7XHJcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25Ob2RlQ2xpY2soZGF0ZTogRGF0ZSwgc3VyZSA9IHRydWUpIHtcclxuICAgIHRoaXMuaXNJbnB1dCA9IGZhbHNlO1xyXG4gICAgaWYgKHN1cmUpIHtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IGRhdGUuZ2V0VGltZSgpO1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xyXG4gICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlKCk7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQuZW1pdCh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKGRhdGUuZ2V0VGltZSgpKTtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0KCkge1xyXG4gICAgdGhpcy5pc0lucHV0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXlWYWx1ZShkYXRlTnVtYmVyOiBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmlzSW5wdXQgJiYgaXNOYU4odGhpcy5kaXNwbGF5VmFsdWUpICYmICFpc05hTihEYXRlLnBhcnNlKHRoaXMuZGlzcGxheVZhbHVlKSkpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRpc3BsYXlWYWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5VmFsdWUpLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gICAgICB0aGlzLmlzSW5wdXQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZU51bWJlciwgdGhpcy5mb3JtYXQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGxhY2VtZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsU2VydmljZS5zZXRQbGFjZW1lbnQoe1xyXG4gICAgICBlbGVtZW50UmVmOiB0aGlzLmlucHV0Q29tLmlucHV0UmVmLFxyXG4gICAgICBwbGFjZW1lbnQ6IFt0aGlzLnBsYWNlbWVudCBhcyBYQ29ybmVyLCAnYm90dG9tLXN0YXJ0JywgJ2JvdHRvbS1lbmQnLCAndG9wLXN0YXJ0JywgJ3RvcC1lbmQnXSxcclxuICAgICAgdHJhbnNmb3JtT3JpZ2luT246ICd4LWRhdGUtcGlja2VyLXBvcnRhbCdcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWxBdHRhY2hlZCgpICYmIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuc2V0UGxhY2VtZW50KCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICBYQ2xlYXJDbGFzcyh0aGlzLmxhYmVsTWFwKTtcclxuICAgIHRoaXMubGFiZWxNYXBbYHgtdGV4dC1hbGlnbi0ke3RoaXMubGFiZWxBbGlnbn1gXSA9IHRoaXMubGFiZWxBbGlnbiA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAjZGF0ZVBpY2tlciBjbGFzcz1cIngtZGF0ZS1waWNrZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1yb3dcIj5cclxuICAgIDx4LWlucHV0XHJcbiAgICAgICNpbnB1dENvbVxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgIFtsYWJlbFdpZHRoXT1cImxhYmVsV2lkdGhcIlxyXG4gICAgICBbbGFiZWxBbGlnbl09XCJsYWJlbEFsaWduXCJcclxuICAgICAgW2p1c3RpZnldPVwianVzdGlmeVwiXHJcbiAgICAgIFthbGlnbl09XCJhbGlnblwiXHJcbiAgICAgIFtkaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgW3ZhbGlkYXRvcl09XCJ2YWxpZGF0b3JcIlxyXG4gICAgICBbaWNvbl09XCJpY29uXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGUgJiYgaW5wdXRDbGVhcmFibGVcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cImRpc3BsYXlWYWx1ZVwiXHJcbiAgICAgIFt2YWx1ZVRwbF09XCJ2YWx1ZVRwbFwiXHJcbiAgICAgIFt2YWx1ZVRwbENvbnRleHRdPVwidmFsdWVUcGxDb250ZXh0XCJcclxuICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgIFtib3JkZXJlZF09XCJib3JkZXJlZFwiXHJcbiAgICAgIFtiZWZvcmVdPVwiYmVmb3JlXCJcclxuICAgICAgW2FmdGVyXT1cImFmdGVyXCJcclxuICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiXHJcbiAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gICAgICBbcG9pbnRlcl09XCJwb2ludGVyXCJcclxuICAgICAgWyhhY3RpdmUpXT1cImFjdGl2ZVwiXHJcbiAgICAgIChjbGVhckVtaXQpPVwiY2xlYXJFbWl0KClcIlxyXG4gICAgICAoeElucHV0KT1cIm9uSW5wdXQoKVwiXHJcbiAgICAgICh4Q2xpY2spPVwic2hvd1BvcnRhbCgpXCJcclxuICAgICAgKHhNb3VzZWVudGVyKT1cIm1lbnRlcigpXCJcclxuICAgICAgKHhNb3VzZWxlYXZlKT1cIm1sZWF2ZSgpXCJcclxuICAgID48L3gtaW5wdXQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBTXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQXdCLE1BQU0sd0JBQXdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBVyxXQUFXLEVBQUUsU0FBUyxFQUFrQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVySSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFVdkQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQTRDM0QsWUFDUyxRQUFtQixFQUNuQixhQUE2QixFQUNwQixHQUFzQixFQUM5QixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsUUFBa0IsRUFDbEIsT0FBZ0I7UUFFeEIsS0FBSyxFQUFFLENBQUM7UUFSRCxhQUFR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QUFFLFFBQVEsQ0FBQztzUUFHaEIsVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNBLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFBvcnRhbFNlcnZpY2UsIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAbmctbmVzdC91aS9wb3J0YWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGF0ZVBpY2tlclByZWZpeCwgWERhdGVQaWNrZXJQcm9wZXJ0eSwgWERhdGVQaWNrZXJNb2RlbFR5cGUgfSBmcm9tICcuL2RhdGUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhJc0RhdGUsIFhJc051bWJlciwgWElzQ2hhbmdlLCBYQ29ybmVyLCBYQ2xlYXJDbGFzcywgWElzU3RyaW5nLCBYQ29uZmlnU2VydmljZSwgWElzTnVsbCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWERhdGVQaWNrZXJDb21wb25lbnQpLCBEYXRlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgWERhdGVQaWNrZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJywgeyBzdGF0aWM6IHRydWUgfSkgZGF0ZVBpY2tlciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q29tJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcblxyXG4gIG1vZGVsVHlwZTogWERhdGVQaWNrZXJNb2RlbFR5cGUgPSAnZGF0ZSc7XHJcbiAgbnVtYmVyVmFsdWUhOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgaXNJbnB1dCA9IGZhbHNlO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmIChYSXNEYXRlKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm1vZGVsVHlwZSA9ICdkYXRlJztcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IHZhbHVlLmdldFRpbWUoKTtcclxuICAgIH0gZWxzZSBpZiAoWElzTnVtYmVyKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm1vZGVsVHlwZSA9ICdudW1iZXInO1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gdmFsdWU7XHJcbiAgICB9IGVsc2UgaWYgKFhJc1N0cmluZyh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5tb2RlbFR5cGUgPSAnc3RyaW5nJztcclxuICAgICAgY29uc3QgdmFsdWVUaW1lID0gbmV3IERhdGUodmFsdWUpLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9ICFpc05hTih2YWx1ZVRpbWUpID8gdmFsdWVUaW1lIDogJyc7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KHZhbHVlKSB8fCBYSXNOdWxsKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGVudGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW5wdXRDbGVhcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBkaXNwbGF5VmFsdWU6IGFueSA9ICcnO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50PjtcclxuICBpY29uOiBzdHJpbmcgPSAnZnRvLWNhbGVuZGFyJztcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gNjtcclxuICBwcm90YWxUb2JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsdWVDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcG9ydGFsU2VydmljZTogWFBvcnRhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRGbGV4KHRoaXMuZGF0ZVBpY2tlci5uYXRpdmVFbGVtZW50LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmp1c3RpZnksIHRoaXMuYWxpZ24sIHRoaXMuZGlyZWN0aW9uKTtcclxuICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUgfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtYXQoKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtYXQgIT09ICd5eXl5LU1NLWRkJykgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLmZvcm1hdCA9ICd5eXl5JztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0nO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLWhvdXInKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEgnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLW1pbnV0ZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IHRydWU7XHJcbiAgICBpZiAoIXRoaXMuY2xlYXJhYmxlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMubnVtYmVyVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLmlucHV0Q2xlYXJhYmxlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWxlYXZlKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIgPSBmYWxzZTtcclxuICAgIGlmICghdGhpcy5jbGVhcmFibGUpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmlucHV0Q2xlYXJhYmxlKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICdmdG8tY2FsZW5kYXInO1xyXG4gICAgICB0aGlzLmlucHV0Q2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5udW1iZXJWYWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSAnJztcclxuICAgIHRoaXMubWxlYXZlKCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBtb2RlbENoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5nZXRWYWx1ZSgpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgaWYgKHRoaXMubnVtYmVyVmFsdWUgPT09ICcnKSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiBbJ2RhdGUnLCAnc3RyaW5nJ10uaW5jbHVkZXModGhpcy5tb2RlbFR5cGUpID8gbmV3IERhdGUodGhpcy5udW1iZXJWYWx1ZSkgOiB0aGlzLm51bWJlclZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcG9ydGFsQXR0YWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVBvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRldGFjaCgpO1xyXG4gICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5hbmltYXRpbmcpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcclxuICAgIH07XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKGNvbmZpZyk7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiBjb25maWdcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnNldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihjb25maWc6IE92ZXJsYXlDb25maWcpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IGNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcclxuICAgIHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhDb3JuZXI7XHJcbiAgICAgIHBsYWNlICE9PSB0aGlzLnBsYWNlbWVudCAmJiB0aGlzLnBvc2l0aW9uQ2hhbmdlLm5leHQocGxhY2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbnN0YW5jZSgpIHtcclxuICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbD8uY29tcG9uZW50UmVmO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHJldHVybjtcclxuICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcclxuICAgICAgdmFsdWU6IHRoaXMubnVtYmVyVmFsdWUsXHJcbiAgICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXHJcbiAgICAgIHByZXNldDogdGhpcy5wcmVzZXQsXHJcbiAgICAgIHZhbHVlQ2hhbmdlOiB0aGlzLnZhbHVlQ2hhbmdlLFxyXG4gICAgICBwb3NpdGlvbkNoYW5nZTogdGhpcy5wb3NpdGlvbkNoYW5nZSxcclxuICAgICAgaW5wdXRDb206IHRoaXMuaW5wdXRDb20sXHJcbiAgICAgIGNsb3NlUG9ydGFsOiAoKSA9PiB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCksXHJcbiAgICAgIGRlc3Ryb3lQb3J0YWw6ICgpID0+IHRoaXMuZGVzdHJveVBvcnRhbCgpLFxyXG4gICAgICBub2RlRW1pdDogKG5vZGU6IERhdGUsIHN1cmUgPSB0cnVlKSA9PiB0aGlzLm9uTm9kZUNsaWNrKG5vZGUsIHN1cmUpLFxyXG4gICAgICBhbmltYXRpbmc6IChpbmc6IGJvb2xlYW4pID0+ICh0aGlzLmFuaW1hdGluZyA9IGluZylcclxuICAgIH0pO1xyXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKGRhdGU6IERhdGUsIHN1cmUgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmlzSW5wdXQgPSBmYWxzZTtcclxuICAgIGlmIChzdXJlKSB7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSBkYXRlLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0LmVtaXQodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZShkYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dCgpIHtcclxuICAgIHRoaXMuaXNJbnB1dCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoZGF0ZU51bWJlcjogbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5pc0lucHV0ICYmIGlzTmFOKHRoaXMuZGlzcGxheVZhbHVlKSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh0aGlzLmRpc3BsYXlWYWx1ZSkpKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kaXNwbGF5VmFsdWUsIHRoaXMuZm9ybWF0KTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheVZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICAgICAgdGhpcy5pc0lucHV0ID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGVOdW1iZXIsIHRoaXMuZm9ybWF0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbS5pbnB1dFJlZixcclxuICAgICAgcGxhY2VtZW50OiBbdGhpcy5wbGFjZW1lbnQgYXMgWENvcm5lciwgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1zdGFydCcsICd0b3AtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1kYXRlLXBpY2tlci1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnNldFBsYWNlbWVudCgpKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2RhdGVQaWNrZXIgY2xhc3M9XCJ4LWRhdGUtcGlja2VyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcm93XCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICAjaW5wdXRDb21cclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICBbbGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcclxuICAgICAgW2xhYmVsQWxpZ25dPVwibGFiZWxBbGlnblwiXHJcbiAgICAgIFtqdXN0aWZ5XT1cImp1c3RpZnlcIlxyXG4gICAgICBbYWxpZ25dPVwiYWxpZ25cIlxyXG4gICAgICBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgIFt2YWxpZGF0b3JdPVwidmFsaWRhdG9yXCJcclxuICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlICYmIGlucHV0Q2xlYXJhYmxlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJkaXNwbGF5VmFsdWVcIlxyXG4gICAgICBbdmFsdWVUcGxdPVwidmFsdWVUcGxcIlxyXG4gICAgICBbdmFsdWVUcGxDb250ZXh0XT1cInZhbHVlVHBsQ29udGV4dFwiXHJcbiAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gICAgICBbYmVmb3JlXT1cImJlZm9yZVwiXHJcbiAgICAgIFthZnRlcl09XCJhZnRlclwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxyXG4gICAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICAgICAgW3BvaW50ZXJdPVwicG9pbnRlclwiXHJcbiAgICAgIFsoYWN0aXZlKV09XCJhY3RpdmVcIlxyXG4gICAgICAoY2xlYXJFbWl0KT1cImNsZWFyRW1pdCgpXCJcclxuICAgICAgKHhJbnB1dCk9XCJvbklucHV0KClcIlxyXG4gICAgICAoeENsaWNrKT1cInNob3dQb3J0YWwoKVwiXHJcbiAgICAgICh4TW91c2VlbnRlcik9XCJtZW50ZXIoKVwiXHJcbiAgICAgICh4TW91c2VsZWF2ZSk9XCJtbGVhdmUoKVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -241,10 +241,25 @@ export class XPickerDateProperty extends XProperty {
241
241
  * @en_US display date event
242
242
  */
243
243
  this.displayChange = new EventEmitter();
244
+ /**
245
+ * @zh_CN 范围日期 mouseenter 事件
246
+ * @en_US Date mouseenter event
247
+ */
248
+ this.rangeTdMouseenter = new EventEmitter();
249
+ /**
250
+ * @zh_CN 范围日期 mouseleave 事件
251
+ * @en_US Date mouseleave event
252
+ */
253
+ this.rangeTdMouseleave = new EventEmitter();
254
+ /**
255
+ * @zh_CN 范围中的日期点击事件
256
+ * @en_US Range date click event
257
+ */
258
+ this.rangeDateClick = new EventEmitter();
244
259
  }
245
260
  }
246
261
  /** @nocollapse */ XPickerDateProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
247
- /** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", dateTemp: "dateTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", lastMonthBtn: "lastMonthBtn", nextYearBtn: "nextYearBtn", nextMonthBtn: "nextMonthBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { typeChange: "typeChange", modelChange: "modelChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
262
+ /** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", dateTemp: "dateTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", lastMonthBtn: "lastMonthBtn", nextYearBtn: "nextYearBtn", nextMonthBtn: "nextMonthBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { typeChange: "typeChange", modelChange: "modelChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
248
263
  __decorate([
249
264
  XInputBoolean()
250
265
  ], XPickerDateProperty.prototype, "showHeader", void 0);
@@ -302,6 +317,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
302
317
  type: Output
303
318
  }], displayChange: [{
304
319
  type: Output
320
+ }], rangeTdMouseenter: [{
321
+ type: Output
322
+ }], rangeTdMouseleave: [{
323
+ type: Output
324
+ }], rangeDateClick: [{
325
+ type: Output
305
326
  }] } });
306
327
  /**
307
328
  * PickerMonth
@@ -439,4 +460,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
439
460
  }], startChange: [{
440
461
  type: Output
441
462
  }] } });
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBR1QsV0FBVyxFQUdYLFlBQVksRUFHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUEwQjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQTBCeEM7OztXQUdHO1FBQ3NCLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBQy9EOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ2pEOzttSUF6Q1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsZ1FBRFQsRUFBRTtBQVdvQztJQUFqRCxXQUFXLENBQVMsYUFBYSxFQUFFLFlBQVksQ0FBQzttREFBaUI7QUFLTDtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtzREFBc0I7QUFLN0I7SUFBcEQsV0FBVyxDQUFVLGFBQWEsRUFBRSxjQUFjLENBQUM7c0RBQXFCO0FBSzVCO0lBQTVDLFdBQVcsQ0FBUSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lEQUF1QjtBQUtOO0lBQTVELGFBQWEsRUFBRTtJ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QUFJLElBQUksRUFBRSxDQUFDO1FBTXBDOzs7V0FHRztRQUN1QixlQUFVLEdBQWEsSUFBSSxDQUFDO1FBQ3REOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNqRDs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDM0Q7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ3BEOzttSUFwQ1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsa1FBRFQsRUFBRTtBQXFCRztJQUFoQixhQUFhLEVBQUU7dURBQTZCOzJGQXBCM0MsbUJBQW1CO2tCQUQvQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNaEIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS29CLFVBQVU7c0JBQW5DLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhJbnB1dEJvb2xlYW4sXHJcbiAgWFByb3BlcnR5LFxyXG4gIFhCb29sZWFuLFxyXG4gIFhDb3JuZXIsXHJcbiAgWFdpdGhDb25maWcsXHJcbiAgWFNpemUsXHJcbiAgWFRlbXBsYXRlLFxyXG4gIFhEYXRhQ29udmVydCxcclxuICBYRGF0YSxcclxuICBYSWRlbnRpdHlQcm9wZXJ0eVxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBYRm9ybU9wdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlclxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXBpY2tlclxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEYXRlUGlja2VyUHJlZml4ID0gJ3gtZGF0ZS1waWNrZXInO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ2RhdGVQaWNrZXInO1xyXG5cclxuLyoqXHJcbiAqIERhdGVQaWNrZXIgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55PiBpbXBsZW1lbnRzIFhEYXRlUGlja2VyT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoLzlvI/ljJbnsbvlnotcclxuICAgKiBAZW5fVVMgRm9ybWF0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19OQU1FLCAneXl5eS1NTS1kZCcpIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBjbGVhcmFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV56S65pa55L2NXHJcbiAgICogQGVuX1VTIERpc3BsYXkgcG9zaXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WENvcm5lcj4oWF9DT05GSUdfTkFNRSwgJ2JvdHRvbS1zdGFydCcpIHBsYWNlbWVudD86IFhDb3JuZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhTaXplPihYX0NPTkZJR19OQU1FLCAnbWVkaXVtJykgb3ZlcnJpZGUgc2l6ZSE6IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovrnmoYZcclxuICAgKiBAZW5fVVMgRGlzcGxheSBCb3JkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgYm9yZGVyZWQhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b+r5o236YCJ5oup5oyJ6ZKu77yM5pSv5oyB5LuK5aSpLOaYqOWkqSzmmI7lpKlcclxuICAgKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvbiwgc3VwcG9ydCB0b2RheSwgeWVzdGVyZGF5LCB0b21vcnJvd1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBwcmVzZXQ6IFhEYXRhPFhEYXRlUGlja2VyUHJlc2V0PiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnngrnlh7vnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBub2RlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG59XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVBpY2tlck9wdGlvbiBleHRlbmRzIFhGb3JtT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIENob29zZSBhIHR5cGVcclxuICAgKi9cclxuICB0eXBlPzogWERhdGVQaWNrZXJUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoLzlvI/ljJbnsbvlnotcclxuICAgKiBAZW5fVVMgRm9ybWF0IHR5cGVcclxuICAgKi9cclxuICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b25cclxuICAgKi9cclxuICBjbGVhcmFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV56S65pa55L2NXHJcbiAgICogQGVuX1VTIERpc3BsYXkgcG9zaXRpb25cclxuICAgKi9cclxuICBwbGFjZW1lbnQ/OiBYQ29ybmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIHNpemU/OiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L655qGGXHJcbiAgICogQGVuX1VTIERpc3BsYXkgQm9yZGVyXHJcbiAgICovXHJcbiAgYm9yZGVyZWQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YmN572u5qCH562+XHJcbiAgICogQGVuX1VTIEJlZm9yZSBsYWJlbFxyXG4gICAqL1xyXG4gIGJlZm9yZT86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ZCO572u5qCH562+XHJcbiAgICogQGVuX1VTIEFmdGVyIGxhYmVsXHJcbiAgICovXHJcbiAgYWZ0ZXI/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgbm9kZUNsaWNrPzogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUmFuZ2VcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1yYW5nZVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEYXRlUmFuZ2VQcmVmaXggPSAneC1kYXRlLXJhbmdlJztcclxuY29uc3QgWF9DT05GSUdfUkFOR0VfTkFNRSA9ICdkYXRlUmFuZ2UnO1xyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWERhdGVSYW5nZVByb3BlcnR5IGV4dGVuZHMgWENvbnRyb2xWYWx1ZUFjY2Vzc29yPGFueT4gaW1wbGVtZW50cyBYRGF0ZVJhbmdlT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoLzlvI/ljJbnsbvlnotcclxuICAgKiBAZW5fVVMgRm9ybWF0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19SQU5HRV9OQU1FLCAneXl5eS1NTS1kZCcpIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfUkFOR0VfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBjbGVhcmFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV56S65pa55L2NXHJcbiAgICogQGVuX1VTIERpc3BsYXkgcG9zaXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WENvcm5lcj4oWF9DT05GSUdfUkFOR0VfTkFNRSwgJ2JvdHRvbS1zdGFydCcpIHBsYWNlbWVudD86IFhDb3JuZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhTaXplPihYX0NPTkZJR19SQU5HRV9OQU1FLCAnbWVkaXVtJykgb3ZlcnJpZGUgc2l6ZSE6IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovrnmoYZcclxuICAgKiBAZW5fVVMgRGlzcGxheSBCb3JkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfUkFOR0VfTkFNRSwgdHJ1ZSkgYm9yZGVyZWQhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b+r5o236YCJ5oup5oyJ6ZKu77yM5pSv5oyB5LuK5aSpLOaYqOWkqSzmmI7lpKlcclxuICAgKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvbiwgc3VwcG9ydCB0b2RheSwgeWVzdGVyZGF5LCB0b21vcnJvd1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBwcmVzZXQ6IFhEYXRhPFhEYXRlUGlja2VyUHJlc2V0PiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnngrnlh7vnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBub2RlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyW10+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUmFuZ2UgT3B0aW9uXHJcbiAqIEB1bmRvY3VtZW50IHRydWVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVSYW5nZU9wdGlvbiBleHRlbmRzIFhGb3JtT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04gdGFiIOmUruaOp+WItuasoeW6j1xyXG4gICAqIEBlbl9VUyBUYWIga2V5IGNvbnRyb2wgb3JkZXJcclxuICAgKi9cclxuICB0YWJpbmRleD86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq5cclxuICogQGVuX1VTIFF1aWNrIHNlbGVjdGlvbiBidXR0b25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJQcmVzZXQgZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWHveaVsFxyXG4gICAqIEBlbl9VUyBDdXN0b20gZnVuY3Rpb25cclxuICAgKi9cclxuICBmdW5jOiAoKSA9PiBEYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaXpeacn+mAieaLqeexu+Wei1xyXG4gKiBAZW5fVVMgRGF0ZSBzZWxlY3Rpb24gdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnIHwgJ21vbnRoJyB8ICd5ZWFyJyB8ICdkYXRlLXRpbWUnIHwgJ2RhdGUtaG91cicgfCAnZGF0ZS1taW51dGUnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDml6XmnJ/mlbDmja7nsbvlnotcclxuICogQGVuX1VTIERhdGUgZGF0YSB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlck1vZGVsVHlwZSA9ICdkYXRlJyB8ICdudW1iZXInIHwgJ3N0cmluZyc7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1waWNrZXItcG9ydGFsXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQb3J0YWxQcmVmaXggPSAneC1kYXRlLXBpY2tlci1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1yYW5nZS1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVJhbmdlUG9ydGFsUHJlZml4ID0gJ3gtZGF0ZS1yYW5nZS1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlckRhdGVcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLWRhdGVcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyRGF0ZVByZWZpeCA9ICd4LXBpY2tlci1kYXRlJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJEYXRlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyRGF0ZVByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn+aYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRlVGVtcD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu06YCJ5oupXHJcbiAgICogQGVuX1VTIFJhbmdlIHBpY2tlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgcmFuZ2VQaWNrZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5LiA5bm0XHJcbiAgICogQGVuX1VTIExhc3QgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGFzdFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5pyIXHJcbiAgICogQGVuX1VTIExhc3QgbW9udGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhc3RNb250aEJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrmnIhcclxuICAgKiBAZW5fVVMgTmV4dCBtb250aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dE1vbnRoQnRuOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacn1xyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VWYWx1ZTogbnVtYmVyW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVR5cGUhOiBYRGF0ZVBpY2tlclJhbmdUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5bm055qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFllYXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5pyI55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE1vbnRoIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb250aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrml6XmnJ/kuovku7ZcclxuICAgKiBAZW5fVVMgZGlzcGxheSBkYXRlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGRpc3BsYXlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gKiBAZW5fVVMgVGhlIGN1cnJlbnQgY2hvaWNlIGlzIHRoZSBzdGFydCAvIGVuZCBkYXRlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlclJhbmdUeXBlID0gJ3N0YXJ0JyB8ICdlbmQnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlck1vbnRoXHJcbiAqIEBzZWxlY3RvciB4LXBpY2tlci1tb250aFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJNb250aFByZWZpeCA9ICd4LXBpY2tlci1tb250aCc7XHJcblxyXG4vKipcclxuICogUGlja2VyTW9udGggUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJNb250aFByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaciOS7veaYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBNb250aCBkaXNwbGF5IHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbW9udGhUZW1wPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0eXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZVBpY2tlclR5cGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBpY2tlclllYXJcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLXllYXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyWWVhclByZWZpeCA9ICd4LXBpY2tlci15ZWFyJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJZZWFyIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyWWVhclByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlp4vlubTku73lj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU3RhcnQgeWVhciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc3RhcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxufVxyXG4iXX0=
463
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBR1QsV0FBVyxFQUdYLFlBQVksRUFHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUEwQjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQTBCeEM7OztXQUdHO1FBQ3NCLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBQy9EOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ2pEOzttSUF6Q1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsZ1FBRFQsRUFBRTtBQVdvQztJQUFqRCxXQUFXLENBQVMsYUFBYSxFQUFFLFlBQVksQ0FBQzttREFBaUI7QUFLTDtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtzREFBc0I7QUFLN0I7SUFBcEQsV0FBVyxDQUFVLGFBQWEsRUFBRSxjQUFjLENBQUM7c0RBQXFCO0FBSzVCO0lBQTVDLFdBQVcsQ0FBUSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lEQUF1QjtBQUtOO0lBQTVELGFBQWEsRUFBRTtJQUFFLFdBQVcsQ0FBVyxhQUFhLEVBQUUsSUFBSSxDQUFDO3FEQUFxQjtBQUtqRTtJQUFmLFlBQVksRUFBRTttREFBdUM7MkZBbkNwRCxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1oQixJQUFJO3NCQUFaLEtBQUs7Z0JBS3FELE1BQU07c0JBQWhFLEtBQUs7Z0JBS2dFLFNBQVM7c0JBQTlFLEtBQUs7Z0JBS3dELFNBQVM7c0JBQXRFLEtBQUs7Z0JBS3lELElBQUk7c0JBQWxFLEtBQUs7Z0JBS2dFLFFBQVE7c0JBQTdFLEtBQUs7Z0JBS21CLE1BQU07c0JBQTlCLEtBQUs7Z0JBS0ksUUFBUTtzQkFBakIsTUFBTTs7QUF1RFQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQztBQUMvQyxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQztBQUV4Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBMEI7SUFEbEU7O1FBRUU7OztXQUdHO1FBQ00sU0FBSSxHQUFvQixNQUFNLENBQUM7UUEwQnhDOzs7V0FHRztRQUNzQixXQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUMvRDs7O1dBR0c7UUFDTyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztLQUNuRDs7a0lBekNZLGtCQUFrQjtzSEFBbEIsa0JBQWtCLGdRQURSLEVBQUU7QUFXMEM7SUFBdkQsV0FBVyxDQUFTLG1CQUFtQixFQUFFLFlBQVksQ0FBQztrREFBaUI7QUFLTDtJQUFsRSxXQUFXLENBQVcsbUJBQW1CLEVBQUUsSUFBSSxDQUFDO0lBQUUsYUFBYSxFQUFFO3FEQUFzQjtBQUs3QjtJQUExRCxXQUFXLENBQVUsbUJBQW1CLEVBQUUsY0FBYyxDQUFDO3FEQUFxQjtBQUs1QjtJQUFsRCxXQUFXLENBQVEsbUJBQW1CLEVBQUUsUUFBUSxDQUFDO2dEQUF1QjtBQUtOO0lBQWxFLGFBQWEsRUFBRTtJQUFFLFdBQVcsQ0FBVyxtQkFBbUIsRUFBRSxJQUFJLENBQUM7b0RBQXFCO0FBS3ZFO0lBQWYsWUFBWSxFQUFFO2tEQUF1QzsyRkFuQ3BELGtCQUFrQjtrQkFEOUIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLMkQsTUFBTTtzQkFBdEUsS0FBSztnQkFLc0UsU0FBUztzQkFBcEYsS0FBSztnQkFLOEQsU0FBUztzQkFBNUUsS0FBSztnQkFLK0QsSUFBSTtzQkFBeEUsS0FBSztnQkFLc0UsUUFBUTtzQkFBbkYsS0FBSztnQkFLbUIsTUFBTTtzQkFBOUIsS0FBSztnQkFLSSxRQUFRO3NCQUFqQixNQUFNOztBQXVDVDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsc0JBQXNCLENBQUM7QUFFOUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO0FBRTVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFFakQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBUztJQURsRDs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQUN4Qzs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQVc5Qjs7O1dBR0c7UUFDdUIsZUFBVSxHQUFhLElBQUksQ0FBQztRQU10RDs7O1dBR0c7UUFDdUIsZ0JBQVcsR0FBYSxJQUFJLENBQUM7UUFDdkQ7OztXQUdHO1FBQ3VCLGlCQUFZLEdBQWEsSUFBSSxDQUFDO1FBQ3hEOzs7V0FHRztRQUN1QixnQkFBVyxHQUFhLElBQUksQ0FBQztRQUN2RDs7O1dBR0c7UUFDdUIsaUJBQVksR0FBYSxJQUFJLENBQUM7UUFDeEQ7OztXQUdHO1FBQ00sZUFBVSxHQUFzQixFQUFFLENBQUM7UUFNNUM7OztXQUdHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQzNEOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNqRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7OztXQUdHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEQ7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25EOzs7V0FHRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuRDs7O1dBR0c7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQzVEOzs7V0FHRztRQUNPLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDNUQ7OztXQUdHO1FBQ08sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO0tBQzFEOzttSUExR1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsa3FCQURULEVBQUU7QUEwQkc7SUFBaEIsYUFBYSxFQUFFO3VEQUE2QjtBQUs1QjtJQUFoQixhQUFhLEVBQUU7d0RBQXdCO0FBS3ZCO0lBQWhCLGFBQWEsRUFBRTt3REFBOEI7QUFLN0I7SUFBaEIsYUFBYSxFQUFFO3lEQUErQjtBQUs5QjtJQUFoQixhQUFhLEVBQUU7d0RBQThCO0FBSzdCO0lBQWhCLGFBQWEsRUFBRTt5REFBK0I7MkZBbEQ3QyxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1oQixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtvQixVQUFVO3NCQUFuQyxLQUFLO2dCQUtvQixXQUFXO3NCQUFwQyxLQUFLO2dCQUtvQixXQUFXO3NCQUFwQyxLQUFLO2dCQUtvQixZQUFZO3NCQUFyQyxLQUFLO2dCQUtvQixXQUFXO3NCQUFwQyxLQUFLO2dCQUtvQixZQUFZO3NCQUFyQyxLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLSSxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBS0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUtHLGNBQWM7c0JBQXZCLE1BQU07O0FBeUhUOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUVuRDs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxTQUFTO0lBRG5EOztRQUVFOzs7V0FHRztRQUNNLFNBQUksR0FBb0IsTUFBTSxDQUFDO1FBQ3hDOzs7V0FHRztRQUNNLFlBQU8sR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBV3BDOzs7V0FHRztRQUN1QixlQUFVLEdBQWEsSUFBSSxDQUFDO1FBQ3REOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNqRDs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDM0Q7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ3BEOztvSUF6Q1ksb0JBQW9CO3dIQUFwQixvQkFBb0IsMFJBRFYsRUFBRTtBQTBCRztJQUFoQixhQUFhLEVBQUU7d0RBQTZCOzJGQXpCM0Msb0JBQW9CO2tCQURoQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNaEIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTs7QUFHVDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDO0FBRWpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFNBQVM7SUFEbEQ7O1FBRUU7OztXQUdHO1FBQ00sU0FBSSxHQUFvQixNQUFNLENBQUM7UUFDeEM7OztXQUdHO1FBQ00sWUFBTyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFNcEM7OztXQUdHO1FBQ3VCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFDdEQ7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pEOzs7V0FHRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUMzRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FDcEQ7O21JQXBDWSxtQkFBbUI7dUhBQW5CLG1CQUFtQixrUUFEVCxFQUFFO0FBcUJHO0lBQWhCLGFBQWEsRUFBRTt1REFBNkI7MkZBcEIzQyxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1oQixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWElucHV0Qm9vbGVhbixcclxuICBYUHJvcGVydHksXHJcbiAgWEJvb2xlYW4sXHJcbiAgWENvcm5lcixcclxuICBYV2l0aENvbmZpZyxcclxuICBYU2l6ZSxcclxuICBYVGVtcGxhdGUsXHJcbiAgWERhdGFDb252ZXJ0LFxyXG4gIFhEYXRhLFxyXG4gIFhJZGVudGl0eVByb3BlcnR5XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVGVtcGxhdGVSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29udHJvbFZhbHVlQWNjZXNzb3IsIFhGb3JtT3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyXHJcbiAqIEBzZWxlY3RvciB4LWRhdGUtcGlja2VyXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQcmVmaXggPSAneC1kYXRlLXBpY2tlcic7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAnZGF0ZVBpY2tlcic7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWERhdGVQaWNrZXJQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3Nvcjxhbnk+IGltcGxlbWVudHMgWERhdGVQaWNrZXJPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX05BTUUsICd5eXl5LU1NLWRkJykgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQ29ybmVyPihYX0NPTkZJR19OQU1FLCAnYm90dG9tLXN0YXJ0JykgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX05BTUUsICdtZWRpdW0nKSBvdmVycmlkZSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq7vvIzmlK/mjIHku4rlpKks5pio5aSpLOaYjuWkqVxyXG4gICAqIEBlbl9VUyBRdWljayBzZWxlY3Rpb24gYnV0dG9uLCBzdXBwb3J0IHRvZGF5LCB5ZXN0ZXJkYXksIHRvbW9ycm93XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHByZXNldDogWERhdGE8WERhdGVQaWNrZXJQcmVzZXQ+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIE9wdGlvblxyXG4gKiBAdW5kb2N1bWVudCB0cnVlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlUGlja2VyT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgQ2hvb3NlIGEgdHlwZVxyXG4gICAqL1xyXG4gIHR5cGU/OiBYRGF0ZVBpY2tlclR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIHBsYWNlbWVudD86IFhDb3JuZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgc2l6ZT86IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovrnmoYZcclxuICAgKiBAZW5fVVMgRGlzcGxheSBCb3JkZXJcclxuICAgKi9cclxuICBib3JkZXJlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliY3nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQmVmb3JlIGxhYmVsXHJcbiAgICovXHJcbiAgYmVmb3JlPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlkI7nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQWZ0ZXIgbGFiZWxcclxuICAgKi9cclxuICBhZnRlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBub2RlQ2xpY2s/OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZVxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXJhbmdlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVSYW5nZVByZWZpeCA9ICd4LWRhdGUtcmFuZ2UnO1xyXG5jb25zdCBYX0NPTkZJR19SQU5HRV9OQU1FID0gJ2RhdGVSYW5nZSc7XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVJhbmdlUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55PiBpbXBsZW1lbnRzIFhEYXRlUmFuZ2VPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX1JBTkdFX05BTUUsICd5eXl5LU1NLWRkJykgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19SQU5HRV9OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQ29ybmVyPihYX0NPTkZJR19SQU5HRV9OQU1FLCAnYm90dG9tLXN0YXJ0JykgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX1JBTkdFX05BTUUsICdtZWRpdW0nKSBvdmVycmlkZSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19SQU5HRV9OQU1FLCB0cnVlKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq7vvIzmlK/mjIHku4rlpKks5pio5aSpLOaYjuWkqVxyXG4gICAqIEBlbl9VUyBRdWljayBzZWxlY3Rpb24gYnV0dG9uLCBzdXBwb3J0IHRvZGF5LCB5ZXN0ZXJkYXksIHRvbW9ycm93XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHByZXNldDogWERhdGE8WERhdGVQaWNrZXJQcmVzZXQ+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVJhbmdlT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0YWIg6ZSu5o6n5Yi25qyh5bqPXHJcbiAgICogQGVuX1VTIFRhYiBrZXkgY29udHJvbCBvcmRlclxyXG4gICAqL1xyXG4gIHRhYmluZGV4PzogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOW/q+aNt+mAieaLqeaMiemSrlxyXG4gKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVBpY2tlclByZXNldCBleHRlbmRzIFhJZGVudGl0eVByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5Ye95pWwXHJcbiAgICogQGVuX1VTIEN1c3RvbSBmdW5jdGlvblxyXG4gICAqL1xyXG4gIGZ1bmM6ICgpID0+IERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5pel5pyf6YCJ5oup57G75Z6LXHJcbiAqIEBlbl9VUyBEYXRlIHNlbGVjdGlvbiB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZScgfCAnbW9udGgnIHwgJ3llYXInIHwgJ2RhdGUtdGltZScgfCAnZGF0ZS1ob3VyJyB8ICdkYXRlLW1pbnV0ZSc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaXpeacn+aVsOaNruexu+Wei1xyXG4gKiBAZW5fVVMgRGF0ZSBkYXRhIHR5cGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyTW9kZWxUeXBlID0gJ2RhdGUnIHwgJ251bWJlcicgfCAnc3RyaW5nJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIFBvcnRhbFxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXBpY2tlci1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVBpY2tlclBvcnRhbFByZWZpeCA9ICd4LWRhdGUtcGlja2VyLXBvcnRhbCc7XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIFBvcnRhbFxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXJhbmdlLXBvcnRhbFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEYXRlUmFuZ2VQb3J0YWxQcmVmaXggPSAneC1kYXRlLXJhbmdlLXBvcnRhbCc7XHJcblxyXG4vKipcclxuICogUGlja2VyRGF0ZVxyXG4gKiBAc2VsZWN0b3IgeC1waWNrZXItZGF0ZVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJEYXRlUHJlZml4ID0gJ3gtcGlja2VyLWRhdGUnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlckRhdGUgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJEYXRlUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZSB8IG51bGw7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn+aYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRlVGVtcD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu06YCJ5oupXHJcbiAgICogQGVuX1VTIFJhbmdlIHBpY2tlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgcmFuZ2VQaWNrZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5LiA5bm0XHJcbiAgICogQGVuX1VTIExhc3QgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGFzdFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5pyIXHJcbiAgICogQGVuX1VTIExhc3QgbW9udGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhc3RNb250aEJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrmnIhcclxuICAgKiBAZW5fVVMgTmV4dCBtb250aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dE1vbnRoQnRuOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacn1xyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VWYWx1ZTogKG51bWJlciB8IG51bGwpW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVR5cGUhOiBYRGF0ZVBpY2tlclJhbmdUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5bm055qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFllYXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5pyI55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE1vbnRoIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb250aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrml6XmnJ/kuovku7ZcclxuICAgKiBAZW5fVVMgZGlzcGxheSBkYXRlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGRpc3BsYXlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacnyBtb3VzZWVudGVyIOS6i+S7tlxyXG4gICAqIEBlbl9VUyBEYXRlIG1vdXNlZW50ZXIgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VUZE1vdXNlZW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pel5pyfIG1vdXNlbGVhdmUg5LqL5Lu2XHJcbiAgICogQGVuX1VTIERhdGUgbW91c2VsZWF2ZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZVRkTW91c2VsZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TkuK3nmoTml6XmnJ/ngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZURhdGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleS4quaXpeacn+aVsOaNruWvueixoVxyXG4gKiBAZW5fVVMg5Y2V5Liq5pel5pyf5pWw5o2u5a+56LGhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlQ2VsbCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlXHJcbiAgICovXHJcbiAgZGF0ZT86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS4quaciOaIluS4i+S4quaciOeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIG9mIHRoZSBwcmV2aW91cyBvciBuZXh0IG1vbnRoXHJcbiAgICovXHJcbiAgaXNMYXN0T3JOZXh0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5aSpXHJcbiAgICogQGVuX1VTIFNhbWUgZGF5XHJcbiAgICovXHJcbiAgaXNOb3c/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPmnIjnrKzkuIDlpKlcclxuICAgKiBAZW5fVVMgVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGhcclxuICAgKi9cclxuICBpc0ZpcnN0RGF5PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5pyI5pyA5ZCO5LiA5aSpXHJcbiAgICogQGVuX1VTIFRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGhcclxuICAgKi9cclxuICBpc0xhc3REYXk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoXml6XmnJ9cclxuICAgKiBAZW5fVVMg6IyD5Zu05YaF5pel5pyfXHJcbiAgICovXHJcbiAgaXNJblJhbmdlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05YaFIGhvdmVyIOmAieS4rVxyXG4gICAqIEBlbl9VUyDojIPlm7TlhoUgaG92ZXIg6YCJ5LitXHJcbiAgICovXHJcbiAgaXNJblJhbmdlSG92ZXI/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoUgaG92ZXIg5b2T5YmN5pel5pyf5bem6L65XHJcbiAgICogQGVuX1VTIOiMg+WbtOWGhSBob3ZlciDlvZPliY3ml6XmnJ/lt6bovrlcclxuICAgKi9cclxuICBpc0luUmFuZ2VIb3ZlckxlZnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoUgaG92ZXIg5b2T5YmN5pel5pyf5Y+z6L65XHJcbiAgICogQGVuX1VTIOiMg+WbtOWGhSBob3ZlciDlvZPliY3ml6XmnJ/lj7PovrlcclxuICAgKi9cclxuICBpc0luUmFuZ2VIb3ZlclJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit5byA5aeL5bem6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IGxlZnRcclxuICAgKi9cclxuICBpc1JhbmdlU3RhcnRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit5byA5aeL5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IHJpZ2h0XHJcbiAgICovXHJcbiAgaXNSYW5nZVN0YXJ0UmlnaHQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nu5PmnZ/lt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2Ugc3RhcnQgbGVmdFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VFbmRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit57uT5p2f5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IHJpZ2h0XHJcbiAgICovXHJcbiAgaXNSYW5nZUVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu0IGhvdmVyXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyXHJcbiAgICovXHJcbiAgaXNSYW5nZUhvdmVyPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg5b2T5YmN5byA5aeLXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIHN0YXJ0XHJcbiAgICovXHJcbiAgaXNSYW5nZUhvdmVyU3RhcnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDlvZPliY3nu5PmnZ9cclxuICAgKiBAZW5fVVMgRW5kIGRhdGVcclxuICAgKi9cclxuICBpc1JhbmdlSG92ZXJFbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDlvIDlp4vlt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2UgaG92ZXIgc3RhcnQgbGVmdFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlclN0YXJ0TGVmdD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGhvdmVyIOW8gOWni+WPs+i+uVxyXG4gICAqIEBlbl9VUyBSYW5nZSBob3ZlciBzdGFydCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlclN0YXJ0UmlnaHQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDnu5PmnZ/lt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2UgaG92ZXIgZW5kIGxlZnRcclxuICAgKi9cclxuICBpc1JhbmdlSG92ZXJFbmRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg57uT5p2f5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIGVuZCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlckVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit5pel5pyfXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgc2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlvZPliY3pgInmi6nnmoTmmK/lvIDlp4sv57uT5p2f5pel5pyfXHJcbiAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyUmFuZ1R5cGUgPSAnc3RhcnQnIHwgJ2VuZCc7XHJcblxyXG4vKipcclxuICogUGlja2VyTW9udGhcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLW1vbnRoXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFBpY2tlck1vbnRoUHJlZml4ID0gJ3gtcGlja2VyLW1vbnRoJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJNb250aCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFBpY2tlck1vbnRoUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pyI5Lu95pi+56S65qih5p2/XHJcbiAgICogQGVuX1VTIE1vbnRoIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb250aFRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrliIfmjaLmjInpkq5cclxuICAgKiBAZW5fVVMgRGlzcGxheSBzd2l0Y2ggYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBzaG93SGVhZGVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4reeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTZWxlY3RlZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlUGlja2VyVHlwZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNjb3BlIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xyXG59XHJcblxyXG4vKipcclxuICogUGlja2VyWWVhclxyXG4gKiBAc2VsZWN0b3IgeC1waWNrZXIteWVhclxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJZZWFyUHJlZml4ID0gJ3gtcGlja2VyLXllYXInO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlclllYXIgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJZZWFyUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0eXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZVBpY2tlclR5cGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWni+W5tOS7veWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTdGFydCB5ZWFyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzdGFydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG59XHJcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener } from '@angular/core';
2
2
  import { XDateRangePortalPrefix } from './date-picker.property';
3
- import { XIsEmpty, XConnectBaseAnimation, XAddMonths, XAddYears } from '@ng-nest/ui/core';
3
+ import { XIsEmpty, XConnectBaseAnimation, XAddMonths, XAddYears, XIsNull } from '@ng-nest/ui/core';
4
4
  import { Subject } from 'rxjs';
5
5
  import { takeUntil, map } from 'rxjs/operators';
6
6
  import { DatePipe, LowerCasePipe } from '@angular/common';
@@ -22,6 +22,7 @@ export class XDateRangePortalComponent {
22
22
  this.value = [];
23
23
  this.locale = {};
24
24
  this.preset = [];
25
+ this.nodeClickCount = 0;
25
26
  this._unSubject = new Subject();
26
27
  }
27
28
  done(event) {
@@ -40,9 +41,8 @@ export class XDateRangePortalComponent {
40
41
  this.placement = x;
41
42
  this.cdr.detectChanges();
42
43
  });
43
- this.inputActiveChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
44
+ this.activeTypeChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
44
45
  this.activeType = x;
45
- this.setDefault();
46
46
  });
47
47
  this.i18n.localeChange
48
48
  .pipe(map((x) => x.datePicker), takeUntil(this._unSubject))
@@ -63,7 +63,7 @@ export class XDateRangePortalComponent {
63
63
  this.setDefault();
64
64
  }
65
65
  else {
66
- this.value = [];
66
+ this.value = [null, null];
67
67
  this.model = this.display;
68
68
  this.startModel = this.model;
69
69
  this.endModel = XAddMonths(this.model, 1);
@@ -96,35 +96,38 @@ export class XDateRangePortalComponent {
96
96
  this.startDisplay = this.display;
97
97
  this.endDisplay = XAddMonths(this.display, 1);
98
98
  }
99
- dateChange(date, type) {
100
- let time = date.getTime();
101
- if (this.value.length === 0) {
102
- this.value = [time];
103
- this.startNodeEmit(date);
104
- }
105
- else if (this.value.length === 1) {
106
- if (time > this.value[0]) {
107
- this.value = [...this.value, time];
108
- this.endNodeEmit(date);
109
- }
110
- else {
111
- this.value = [time, ...this.value];
112
- this.startNodeEmit(date);
113
- this.endNodeEmit(new Date(this.value[1]));
99
+ dateChange(date) {
100
+ this.nodeClickCount++;
101
+ let close = this.nodeClickCount === 2;
102
+ const time = date.getTime();
103
+ if (this.activeType === 'start') {
104
+ this.value[0] = time;
105
+ if (!XIsNull(this.value[1]) && time > this.value[1]) {
106
+ if (this.nodeClickCount === 2) {
107
+ this.nodeClickCount--;
108
+ }
109
+ close = false;
110
+ this.endModel = null;
111
+ this.value[1] = null;
112
+ this.endNodeEmit(null, close);
114
113
  }
115
- this.nodeEmit(this.value.map((x) => new Date(x)));
114
+ this.startNodeEmit(date, close);
116
115
  }
117
- else {
118
- if (type === 'start') {
119
- this.value = [time, this.value[1]];
120
- this.startNodeEmit(date);
121
- }
122
- else if (type === 'end') {
123
- this.value = [this.value[0], time];
124
- this.cdr.detectChanges();
125
- this.endNodeEmit(date);
116
+ else if (this.activeType === 'end') {
117
+ this.value[1] = time;
118
+ if (!XIsNull(this.value[0]) && time < this.value[0]) {
119
+ if (this.nodeClickCount === 2) {
120
+ this.nodeClickCount--;
121
+ }
122
+ close = false;
123
+ this.startModel = null;
124
+ this.value[0] = null;
125
+ this.startNodeEmit(null, close);
126
126
  }
127
- this.nodeEmit(this.value.map((x) => new Date(x)), type !== 'start');
127
+ this.endNodeEmit(date, close);
128
+ }
129
+ if (!this.value.includes(null)) {
130
+ this.nodeEmit(this.value.map((x) => new Date(x)), close);
128
131
  }
129
132
  }
130
133
  typeChange(type) {
@@ -202,10 +205,10 @@ export class XDateRangePortalComponent {
202
205
  }
203
206
  }
204
207
  /** @nocollapse */ XDateRangePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangePortalComponent, deps: [{ token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
205
- /** @nocollapse */ XDateRangePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangePortalComponent, selector: "x-date-range-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], ngImport: i0, template: "<div class=\"x-date-range-portal {{ type }}\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div class=\"x-date-range-portal-body\">\r\n <x-picker-date\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event, 'start')\"\r\n (yearChange)=\"startYearChange($event)\"\r\n (monthChange)=\"startMonthChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event, 'end')\"\r\n (yearChange)=\"endYearChange($event)\"\r\n (monthChange)=\"endMonthChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #startDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ startDisplay | date: 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(startDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n</ng-template>\r\n\r\n<ng-template #endDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" style=\"visibility: hidden\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ endDisplay | date: 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(endDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\"></x-button>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column;font-size:var(--x-font-size-small)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal-content{display:flex}.x-date-range-portal-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column}.x-date-range-portal-time-label{padding:.4rem;text-align:center;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:var(--x-border-width) 0 0 var(--x-border-width);box-shadow:none}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.XButtonComponent, selector: "x-button" }, { kind: "component", type: i4.XPickerDateComponent, selector: "x-picker-date" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
208
+ /** @nocollapse */ XDateRangePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangePortalComponent, selector: "x-date-range-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], ngImport: i0, template: "<div class=\"x-date-range-portal {{ type }}\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div class=\"x-date-range-portal-body\">\r\n <x-picker-date\r\n #startPickerDate\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"startYearChange($event)\"\r\n (monthChange)=\"startMonthChange($event)\"\r\n (rangeTdMouseenter)=\"endPickerDate.setDatesState($event)\"\r\n (rangeDateClick)=\"endPickerDate.setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPickerDate\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"endYearChange($event)\"\r\n (monthChange)=\"endMonthChange($event)\"\r\n (rangeTdMouseenter)=\"startPickerDate.setDatesState($event)\"\r\n (rangeDateClick)=\"startPickerDate.setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #startDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ startDisplay | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(startDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n</ng-template>\r\n\r\n<ng-template #endDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" style=\"visibility: hidden\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ endDisplay | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(endDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\"></x-button>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column;font-size:var(--x-font-size-small)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal-content{display:flex}.x-date-range-portal-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column}.x-date-range-portal-time-label{padding:.4rem;text-align:center;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:var(--x-border-width) 0 0 var(--x-border-width);box-shadow:none}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.XButtonComponent, selector: "x-button" }, { kind: "component", type: i4.XPickerDateComponent, selector: "x-picker-date" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
206
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangePortalComponent, decorators: [{
207
210
  type: Component,
208
- args: [{ selector: `${XDateRangePortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-range-portal {{ type }}\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div class=\"x-date-range-portal-body\">\r\n <x-picker-date\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event, 'start')\"\r\n (yearChange)=\"startYearChange($event)\"\r\n (monthChange)=\"startMonthChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event, 'end')\"\r\n (yearChange)=\"endYearChange($event)\"\r\n (monthChange)=\"endMonthChange($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #startDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ startDisplay | date: 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(startDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n</ng-template>\r\n\r\n<ng-template #endDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" style=\"visibility: hidden\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ endDisplay | date: 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(endDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\"></x-button>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column;font-size:var(--x-font-size-small)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal-content{display:flex}.x-date-range-portal-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column}.x-date-range-portal-time-label{padding:.4rem;text-align:center;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:var(--x-border-width) 0 0 var(--x-border-width);box-shadow:none}\n"] }]
211
+ args: [{ selector: `${XDateRangePortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-range-portal {{ type }}\" [ngSwitch]=\"type\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div class=\"x-date-range-portal-body\">\r\n <x-picker-date\r\n #startPickerDate\r\n class=\"x-date-range-portal-start\"\r\n [(display)]=\"startDisplay\"\r\n [model]=\"startModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [nextYearBtn]=\"false\"\r\n [nextMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"startYearChange($event)\"\r\n (monthChange)=\"startMonthChange($event)\"\r\n (rangeTdMouseenter)=\"endPickerDate.setDatesState($event)\"\r\n (rangeDateClick)=\"endPickerDate.setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n <x-picker-date\r\n #endPickerDate\r\n class=\"x-date-range-portal-end\"\r\n [(display)]=\"endDisplay\"\r\n [model]=\"endModel\"\r\n [rangeValue]=\"value\"\r\n [rangeType]=\"activeType\"\r\n [lastYearBtn]=\"false\"\r\n [lastMonthBtn]=\"false\"\r\n (modelChange)=\"dateChange($event)\"\r\n (yearChange)=\"endYearChange($event)\"\r\n (monthChange)=\"endMonthChange($event)\"\r\n (rangeTdMouseenter)=\"startPickerDate.setDatesState($event)\"\r\n (rangeDateClick)=\"startPickerDate.setDatesState($event)\"\r\n rangePicker\r\n ></x-picker-date>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #startDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ startDisplay | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(startDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon style=\"visibility: hidden\"></x-button>\r\n</ng-template>\r\n\r\n<ng-template #endDateHeaderTpl>\r\n <x-button icon=\"fto-chevrons-left\" size=\"small\" onlyIcon (click)=\"nextYear(-1)\" style=\"visibility: hidden\"></x-button>\r\n <x-button icon=\"fto-chevron-left\" size=\"small\" onlyIcon (click)=\"nextMonth(-1)\" style=\"visibility: hidden\"></x-button>\r\n <div class=\"x-date-range-portal-year-month\">\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('year')\">{{ endDisplay | date : 'yyyy' }}{{ locale.year }}</x-button>\r\n <x-button type=\"text\" size=\"small\" (click)=\"typeChange('month')\">{{ getLocaleMonth(endDisplay) }}</x-button>\r\n </div>\r\n <x-button icon=\"fto-chevron-right\" size=\"small\" onlyIcon (click)=\"nextMonth(1)\"></x-button>\r\n <x-button icon=\"fto-chevrons-right\" size=\"small\" onlyIcon (click)=\"nextYear(1)\"></x-button>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-range-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:34rem;display:flex;flex-direction:column;font-size:var(--x-font-size-small)}.x-date-range-portal.date-time{width:27rem}.x-date-range-portal.date-hour{width:19.75rem}.x-date-range-portal.date-minute{width:23.375rem}.x-date-range-portal-content{display:flex}.x-date-range-portal-header{display:flex;align-items:center;justify-content:space-between;padding:.4rem;border-bottom:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset{display:flex;align-items:center;justify-content:center;border-top:var(--x-border-width) solid var(--x-border)}.x-date-range-portal-preset>x-button{flex:1}.x-date-range-portal-year-month{flex:1;text-align:center}.x-date-range-portal-body{display:flex}.x-date-range-portal-start,.x-date-range-portal-end{flex:1}.x-date-range-portal-footer{display:flex;justify-content:flex-end;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-range-portal-date{flex:1}.x-date-range-portal-time{display:flex;flex-direction:column}.x-date-range-portal-time-label{padding:.4rem;text-align:center;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-range-portal-time .x-time-picker-frame{border-width:var(--x-border-width) 0 0 var(--x-border-width);box-shadow:none}\n"] }]
209
212
  }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XI18nService }]; }, propDecorators: { placement: [{
210
213
  type: HostBinding,
211
214
  args: ['@x-connect-base-animation']
@@ -216,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
216
219
  type: HostListener,
217
220
  args: ['@x-connect-base-animation.start', ['$event']]
218
221
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFzQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBWTFELE1BQU0sT0FBTyx5QkFBeUI7SUFtQ3BDLFlBQW1CLFFBQWtCLEVBQVMsYUFBNEIsRUFBUyxHQUFzQixFQUFTLElBQWtCO1FBQWpILGFBQVEsR0FBUixRQUFRLENBQVU7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYztRQXpCcEksU0FBSSxHQUFvQixNQUFNLENBQUM7UUFDL0IsWUFBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFLckIsaUJBQVksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hD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Q0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxjQUFjLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7O3lJQWhPVSx5QkFBeUI7NkhBQXpCLHlCQUF5Qiw0T0FGekIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLDBCQ3pCdEMseXlGQXNEQSwrOUREOUJjLENBQUMscUJBQXFCLENBQUM7MkZBR3hCLHlCQUF5QjtrQkFUckMsU0FBUzsrQkFDRSxHQUFHLHNCQUFzQixFQUFFLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMscUJBQXFCLENBQUMsYUFDeEIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDO3NMQUdhLFNBQVM7c0JBQXpELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUNvQixJQUFJO3NCQUEvRCxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlHLEtBQUs7c0JBQWpFLFlBQVk7dUJBQUMsaUNBQWlDLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhEYXRlUmFuZ2VQb3J0YWxQcmVmaXgsIFhEYXRlUGlja2VyUHJlc2V0LCBYRGF0ZVBpY2tlclR5cGUgfSBmcm9tICcuL2RhdGUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhDb25uZWN0QmFzZUFuaW1hdGlvbiwgWFBvc2l0aW9uVG9wQm90dG9tLCBYQWRkTW9udGhzLCBYQWRkWWVhcnMgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuRGF0ZVBpY2tlciB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUmFuZ2VQb3J0YWxQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcmFuZ2UtcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUmFuZ2VQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIHBsYWNlbWVudCE6IFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKGV2ZW50OiB7IHRvU3RhdGU6IGFueSB9KSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyhmYWxzZSk7XHJcbiAgICBldmVudC50b1N0YXRlID09PSAndm9pZCcgJiYgdGhpcy5kZXN0cm95UG9ydGFsKCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIGRpc3BsYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIG1vZGVsITogRGF0ZTtcclxuICBzdGFydE1vZGVsITogRGF0ZTtcclxuICBlbmRNb2RlbCE6IERhdGU7XHJcbiAgc3RhcnRZZWFyITogbnVtYmVyO1xyXG4gIHN0YXJ0RGlzcGxheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgZW5kRGlzcGxheTogRGF0ZSA9IFhBZGRNb250aHModGhpcy5zdGFydERpc3BsYXksIDEpO1xyXG4gIHZhbHVlOiBudW1iZXJbXSA9IFtdO1xyXG4gIHZhbHVlQ2hhbmdlITogU3ViamVjdDxudW1iZXJbXT47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgaW5wdXRBY3RpdmVDaGFuZ2UhOiBTdWJqZWN0PCdzdGFydCcgfCAnZW5kJz47XHJcbiAgYWN0aXZlVHlwZSE6ICdzdGFydCcgfCAnZW5kJztcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBjbG9zZVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IChkYXRlOiBEYXRlW10sIHN1cmU/OiBib29sZWFuKSA9PiB2b2lkO1xyXG4gIHN0YXJ0Tm9kZUVtaXQhOiAoZGF0ZTogRGF0ZSkgPT4gdm9pZDtcclxuICBlbmROb2RlRW1pdCE6IChkYXRlOiBEYXRlKSA9PiB2b2lkO1xyXG4gIGxvY2FsZTogWEkxOG5EYXRlUGlja2VyID0ge307XHJcbiAgdGltZSE6IG51bWJlcjtcclxuICBwcmVzZXQ6IFhEYXRlUGlja2VyUHJlc2V0W10gPSBbXTtcclxuICBwcml2YXRlIF90eXBlITogWERhdGVQaWNrZXJUeXBlO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRlUGlwZTogRGF0ZVBpcGUsIHB1YmxpYyBsb3dlckNhc2VQaXBlOiBMb3dlckNhc2VQaXBlLCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGkxOG46IFhJMThuU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlID0geDtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMucGxhY2VtZW50ID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlucHV0QWN0aXZlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmFjdGl2ZVR5cGUgPSB4O1xyXG4gICAgICB0aGlzLnNldERlZmF1bHQoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gW107XHJcbiAgICAgIHRoaXMubW9kZWwgPSB0aGlzLmRpc3BsYXk7XHJcbiAgICAgIHRoaXMuc3RhcnRNb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICAgIHRoaXMuZW5kTW9kZWwgPSBYQWRkTW9udGhzKHRoaXMubW9kZWwsIDEpO1xyXG4gICAgICB0aGlzLnNldERpc3BsYXkodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90eXBlID0gdGhpcy50eXBlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuYWN0aXZlVHlwZSB8fCAnc3RhcnQnO1xyXG4gICAgaWYgKHR5cGUgPT09ICdzdGFydCcpIHtcclxuICAgICAgdGhpcy5zdGFydE1vZGVsID0gbmV3IERhdGUodGhpcy52YWx1ZVswXSk7XHJcbiAgICAgIHRoaXMuc3RhcnREaXNwbGF5ID0gdGhpcy5zdGFydE1vZGVsO1xyXG4gICAgICB0aGlzLmVuZE1vZGVsID0gWEFkZE1vbnRocyh0aGlzLnN0YXJ0TW9kZWwsIDEpO1xyXG4gICAgICB0aGlzLmVuZERpc3BsYXkgPSB0aGlzLmVuZE1vZGVsO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZW5kJykge1xyXG4gICAgICB0aGlzLmVuZE1vZGVsID0gbmV3IERhdGUodGhpcy52YWx1ZVsxXSk7XHJcbiAgICAgIHRoaXMuZW5kRGlzcGxheSA9IHRoaXMuZW5kTW9kZWw7XHJcbiAgICAgIHRoaXMuc3RhcnRNb2RlbCA9IFhBZGRNb250aHModGhpcy5lbmRNb2RlbCwgLTEpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGlzcGxheSA9IHRoaXMuc3RhcnRNb2RlbDtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gICAgdGhpcy5zdGFydERpc3BsYXkgPSB0aGlzLmRpc3BsYXk7XHJcbiAgICB0aGlzLmVuZERpc3BsYXkgPSBYQWRkTW9udGhzKHRoaXMuZGlzcGxheSwgMSk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGRhdGU6IERhdGUsIHR5cGU6ICdzdGFydCcgfCAnZW5kJykge1xyXG4gICAgbGV0IHRpbWUgPSBkYXRlLmdldFRpbWUoKTtcclxuICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gW3RpbWVdO1xyXG4gICAgICB0aGlzLnN0YXJ0Tm9kZUVtaXQoZGF0ZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWUubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIGlmICh0aW1lID4gdGhpcy52YWx1ZVswXSkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZSwgdGltZV07XHJcbiAgICAgICAgdGhpcy5lbmROb2RlRW1pdChkYXRlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gW3RpbWUsIC4uLnRoaXMudmFsdWVdO1xyXG4gICAgICAgIHRoaXMuc3RhcnROb2RlRW1pdChkYXRlKTtcclxuICAgICAgICB0aGlzLmVuZE5vZGVFbWl0KG5ldyBEYXRlKHRoaXMudmFsdWVbMV0pKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm5vZGVFbWl0KHRoaXMudmFsdWUubWFwKCh4KSA9PiBuZXcgRGF0ZSh4KSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHR5cGUgPT09ICdzdGFydCcpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gW3RpbWUsIHRoaXMudmFsdWVbMV1dO1xyXG4gICAgICAgIHRoaXMuc3RhcnROb2RlRW1pdChkYXRlKTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZW5kJykge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBbdGhpcy52YWx1ZVswXSwgdGltZV07XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMuZW5kTm9kZUVtaXQoZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ub2RlRW1pdChcclxuICAgICAgICB0aGlzLnZhbHVlLm1hcCgoeCkgPT4gbmV3IERhdGUoeCkpLFxyXG4gICAgICAgIHR5cGUgIT09ICdzdGFydCdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHR5cGVDaGFuZ2UodHlwZTogWERhdGVQaWNrZXJUeXBlKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW9udGhDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICAgIC8vIHRoaXMubm9kZUVtaXQoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnR5cGUgPSB0aGlzLl90eXBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgeWVhckNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgICAvLyB0aGlzLm5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gJ21vbnRoJztcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHllYXJTdGFydENoYW5nZShudW1iZXI6IG51bWJlcikge1xyXG4gICAgdGhpcy5zdGFydFllYXIgPSBudW1iZXI7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0TW9udGgobnVtOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5KTtcclxuICAgIGRhdGUuc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpICsgbnVtKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5leHRZZWFyKG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheSk7XHJcbiAgICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIG51bSk7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0WWVhcnMobnVtOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3RhcnRZZWFyICs9IG51bTtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5KTtcclxuICAgIGRhdGUuc2V0RnVsbFllYXIodGhpcy5zdGFydFllYXIpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxlTW9udGgoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuICh0aGlzLmxvY2FsZSBhcyBhbnkpW3RoaXMubG93ZXJDYXNlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ0xMTEwnKSBhcyBzdHJpbmcpXTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFRpbWUodGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy50aW1lID0gdGltZS5nZXRUaW1lKCk7XHJcbiAgICAvLyB0aGlzLm5vZGVFbWl0KHRoaXMuc2V0TW9kZWwodGhpcy5tb2RlbCwgdGltZSksIGZhbHNlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldE1vZGVsKGRhdGU6IERhdGUsIHRpbWU6IERhdGUpIHtcclxuICAgIHRoaXMubW9kZWwgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCksIHRpbWUuZ2V0SG91cnMoKSwgdGltZS5nZXRNaW51dGVzKCksIHRpbWUuZ2V0U2Vjb25kcygpKTtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRZZWFyQ2hhbmdlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmVuZERpc3BsYXkgPSBYQWRkWWVhcnModGhpcy5lbmREaXNwbGF5LCBudW0pO1xyXG4gIH1cclxuXHJcbiAgZW5kWWVhckNoYW5nZShudW06IG51bWJlcikge1xyXG4gICAgdGhpcy5zdGFydERpc3BsYXkgPSBYQWRkWWVhcnModGhpcy5zdGFydERpc3BsYXksIG51bSk7XHJcbiAgfVxyXG5cclxuICBzdGFydE1vbnRoQ2hhbmdlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmVuZERpc3BsYXkgPSBYQWRkTW9udGhzKHRoaXMuZW5kRGlzcGxheSwgbnVtKTtcclxuICB9XHJcblxyXG4gIGVuZE1vbnRoQ2hhbmdlKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN0YXJ0RGlzcGxheSA9IFhBZGRNb250aHModGhpcy5zdGFydERpc3BsYXksIG51bSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsIHt7IHR5cGUgfX1cIiBbbmdTd2l0Y2hdPVwidHlwZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1yYW5nZS1wb3J0YWwtYm9keVwiPlxyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1zdGFydFwiXHJcbiAgICAgICAgWyhkaXNwbGF5KV09XCJzdGFydERpc3BsYXlcIlxyXG4gICAgICAgIFttb2RlbF09XCJzdGFydE1vZGVsXCJcclxuICAgICAgICBbcmFuZ2VWYWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW3JhbmdlVHlwZV09XCJhY3RpdmVUeXBlXCJcclxuICAgICAgICBbbmV4dFllYXJCdG5dPVwiZmFsc2VcIlxyXG4gICAgICAgIFtuZXh0TW9udGhCdG5dPVwiZmFsc2VcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgICh5ZWFyQ2hhbmdlKT1cInN0YXJ0WWVhckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobW9udGhDaGFuZ2UpPVwic3RhcnRNb250aENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICByYW5nZVBpY2tlclxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC1lbmRcIlxyXG4gICAgICAgIFsoZGlzcGxheSldPVwiZW5kRGlzcGxheVwiXHJcbiAgICAgICAgW21vZGVsXT1cImVuZE1vZGVsXCJcclxuICAgICAgICBbcmFuZ2VWYWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW3JhbmdlVHlwZV09XCJhY3RpdmVUeXBlXCJcclxuICAgICAgICBbbGFzdFllYXJCdG5dPVwiZmFsc2VcIlxyXG4gICAgICAgIFtsYXN0TW9udGhCdG5dPVwiZmFsc2VcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudCwgJ2VuZCcpXCJcclxuICAgICAgICAoeWVhckNoYW5nZSk9XCJlbmRZZWFyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChtb250aENoYW5nZSk9XCJlbmRNb250aENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICByYW5nZVBpY2tlclxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzdGFydERhdGVIZWFkZXJUcGw+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbnMtbGVmdFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIChjbGljayk9XCJuZXh0WWVhcigtMSlcIj48L3gtYnV0dG9uPlxyXG4gIDx4LWJ1dHRvbiBpY29uPVwiZnRvLWNoZXZyb24tbGVmdFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIChjbGljayk9XCJuZXh0TW9udGgoLTEpXCI+PC94LWJ1dHRvbj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC15ZWFyLW1vbnRoXCI+XHJcbiAgICA8eC1idXR0b24gdHlwZT1cInRleHRcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwidHlwZUNoYW5nZSgneWVhcicpXCI+e3sgc3RhcnREaXNwbGF5IHwgZGF0ZTogJ3l5eXknIH19e3sgbG9jYWxlLnllYXIgfX08L3gtYnV0dG9uPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cInR5cGVDaGFuZ2UoJ21vbnRoJylcIj57eyBnZXRMb2NhbGVNb250aChzdGFydERpc3BsYXkpIH19PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8eC1idXR0b24gaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW5cIj48L3gtYnV0dG9uPlxyXG4gIDx4LWJ1dHRvbiBpY29uPVwiZnRvLWNoZXZyb25zLXJpZ2h0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW5cIj48L3gtYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbmREYXRlSGVhZGVyVHBsPlxyXG4gIDx4LWJ1dHRvbiBpY29uPVwiZnRvLWNoZXZyb25zLWxlZnRcIiBzaXplPVwic21hbGxcIiBvbmx5SWNvbiAoY2xpY2spPVwibmV4dFllYXIoLTEpXCIgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW5cIj48L3gtYnV0dG9uPlxyXG4gIDx4LWJ1dHRvbiBpY29uPVwiZnRvLWNoZXZyb24tbGVmdFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIChjbGljayk9XCJuZXh0TW9udGgoLTEpXCIgc3R5bGU9XCJ2aXNpYmlsaXR5OiBoaWRkZW5cIj48L3gtYnV0dG9uPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsLXllYXItbW9udGhcIj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwidGV4dFwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJ0eXBlQ2hhbmdlKCd5ZWFyJylcIj57eyBlbmREaXNwbGF5IHwgZGF0ZTogJ3l5eXknIH19e3sgbG9jYWxlLnllYXIgfX08L3gtYnV0dG9uPlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJ0ZXh0XCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cInR5cGVDaGFuZ2UoJ21vbnRoJylcIj57eyBnZXRMb2NhbGVNb250aChlbmREaXNwbGF5KSB9fTwveC1idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIChjbGljayk9XCJuZXh0TW9udGgoMSlcIj48L3gtYnV0dG9uPlxyXG4gIDx4LWJ1dHRvbiBpY29uPVwiZnRvLWNoZXZyb25zLXJpZ2h0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gKGNsaWNrKT1cIm5leHRZZWFyKDEpXCI+PC94LWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFzQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQVkxRCxNQUFNLE9BQU8seUJBQXlCO0lBb0NwQyxZQUFtQixRQUFrQixFQUFTLGFBQTRCLEVBQVMsR0FBc0IsRUFBUyxJQUFrQjtRQUFqSCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQWM7UUExQnBJLFNBQUksR0FBb0IsTUFBTSxDQUFDO1FBQy9CLFlBQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBS3JCLGlCQUFZLEdBQVMsSUFBSSxJQUFJLEVBQUUs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cEIsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFXO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLEdBQVc7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN6RCxDQUFDOzt5SUF0T1UseUJBQXlCOzZIQUF6Qix5QkFBeUIsNE9BRnpCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQywwQkN6QnRDLDJtR0E0REEsKzlERHBDYyxDQUFDLHFCQUFxQixDQUFDOzJGQUd4Qix5QkFBeUI7a0JBVHJDLFNBQVM7K0JBQ0UsR0FBRyxzQkFBc0IsRUFBRSxpQkFHdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLHFCQUFxQixDQUFDLGFBQ3hCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQztzTEFHYSxTQUFTO3NCQUF6RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGF0ZVJhbmdlUG9ydGFsUHJlZml4LCBYRGF0ZVBpY2tlclByZXNldCwgWERhdGVQaWNrZXJUeXBlIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSwgWEFkZE1vbnRocywgWEFkZFllYXJzLCBYSXNOdWxsIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGVQaXBlLCBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4bkRhdGVQaWNrZXIgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYRGF0ZVJhbmdlUG9ydGFsUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl0sXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVJhbmdlUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICBtb2RlbCE6IERhdGU7XHJcbiAgc3RhcnRNb2RlbCE6IERhdGUgfCBudWxsO1xyXG4gIGVuZE1vZGVsITogRGF0ZSB8IG51bGw7XHJcbiAgc3RhcnRZZWFyITogbnVtYmVyO1xyXG4gIHN0YXJ0RGlzcGxheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgZW5kRGlzcGxheTogRGF0ZSA9IFhBZGRNb250aHModGhpcy5zdGFydERpc3BsYXksIDEpO1xyXG4gIHZhbHVlOiAobnVtYmVyIHwgbnVsbClbXSA9IFtdO1xyXG4gIHZhbHVlQ2hhbmdlITogU3ViamVjdDxudW1iZXJbXT47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgYWN0aXZlVHlwZUNoYW5nZSE6IFN1YmplY3Q8J3N0YXJ0JyB8ICdlbmQnPjtcclxuICBhY3RpdmVUeXBlITogJ3N0YXJ0JyB8ICdlbmQnO1xyXG4gIGFuaW1hdGluZyE6IEZ1bmN0aW9uO1xyXG4gIGNsb3NlUG9ydGFsITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIG5vZGVFbWl0ITogKGRhdGU6IERhdGVbXSwgY2xvc2U/OiBib29sZWFuKSA9PiB2b2lkO1xyXG4gIHN0YXJ0Tm9kZUVtaXQhOiAoZGF0ZTogRGF0ZSB8IG51bGwsIGNsb3NlPzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBlbmROb2RlRW1pdCE6IChkYXRlOiBEYXRlIHwgbnVsbCwgY2xvc2U/OiBib29sZWFuKSA9PiB2b2lkO1xyXG4gIGxvY2FsZTogWEkxOG5EYXRlUGlja2VyID0ge307XHJcbiAgdGltZSE6IG51bWJlcjtcclxuICBwcmVzZXQ6IFhEYXRlUGlja2VyUHJlc2V0W10gPSBbXTtcclxuICBub2RlQ2xpY2tDb3VudCA9IDA7XHJcbiAgcHJpdmF0ZSBfdHlwZSE6IFhEYXRlUGlja2VyVHlwZTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlLCBwdWJsaWMgbG93ZXJDYXNlUGlwZTogTG93ZXJDYXNlUGlwZSwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5hY3RpdmVUeXBlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLmFjdGl2ZVR5cGUgPSB4O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC5kYXRlUGlja2VyIGFzIFhJMThuRGF0ZVBpY2tlciksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnNldERlZmF1bHQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBbbnVsbCwgbnVsbF07XHJcbiAgICAgIHRoaXMubW9kZWwgPSB0aGlzLmRpc3BsYXk7XHJcbiAgICAgIHRoaXMuc3RhcnRNb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICAgIHRoaXMuZW5kTW9kZWwgPSBYQWRkTW9udGhzKHRoaXMubW9kZWwsIDEpO1xyXG4gICAgICB0aGlzLnNldERpc3BsYXkodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90eXBlID0gdGhpcy50eXBlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgY29uc3QgdHlwZSA9IHRoaXMuYWN0aXZlVHlwZSB8fCAnc3RhcnQnO1xyXG4gICAgaWYgKHR5cGUgPT09ICdzdGFydCcpIHtcclxuICAgICAgdGhpcy5zdGFydE1vZGVsID0gbmV3IERhdGUodGhpcy52YWx1ZVswXSEpO1xyXG4gICAgICB0aGlzLnN0YXJ0RGlzcGxheSA9IHRoaXMuc3RhcnRNb2RlbDtcclxuICAgICAgdGhpcy5lbmRNb2RlbCA9IFhBZGRNb250aHModGhpcy5zdGFydE1vZGVsLCAxKTtcclxuICAgICAgdGhpcy5lbmREaXNwbGF5ID0gdGhpcy5lbmRNb2RlbDtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgdGhpcy5lbmRNb2RlbCA9IG5ldyBEYXRlKHRoaXMudmFsdWVbMV0hKTtcclxuICAgICAgdGhpcy5lbmREaXNwbGF5ID0gdGhpcy5lbmRNb2RlbDtcclxuICAgICAgdGhpcy5zdGFydE1vZGVsID0gWEFkZE1vbnRocyh0aGlzLmVuZE1vZGVsLCAtMSk7XHJcbiAgICAgIHRoaXMuc3RhcnREaXNwbGF5ID0gdGhpcy5zdGFydE1vZGVsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB0aGlzLnN0YXJ0RGlzcGxheSA9IHRoaXMuZGlzcGxheTtcclxuICAgIHRoaXMuZW5kRGlzcGxheSA9IFhBZGRNb250aHModGhpcy5kaXNwbGF5LCAxKTtcclxuICB9XHJcblxyXG4gIGRhdGVDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5ub2RlQ2xpY2tDb3VudCsrO1xyXG4gICAgbGV0IGNsb3NlID0gdGhpcy5ub2RlQ2xpY2tDb3VudCA9PT0gMjtcclxuICAgIGNvbnN0IHRpbWUgPSBkYXRlLmdldFRpbWUoKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVR5cGUgPT09ICdzdGFydCcpIHtcclxuICAgICAgdGhpcy52YWx1ZVswXSA9IHRpbWU7XHJcbiAgICAgIGlmICghWElzTnVsbCh0aGlzLnZhbHVlWzFdKSAmJiB0aW1lID4gdGhpcy52YWx1ZVsxXSEpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlQ2xpY2tDb3VudCA9PT0gMikge1xyXG4gICAgICAgICAgdGhpcy5ub2RlQ2xpY2tDb3VudC0tO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjbG9zZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZW5kTW9kZWwgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudmFsdWVbMV0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZW5kTm9kZUVtaXQobnVsbCwgY2xvc2UpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhcnROb2RlRW1pdChkYXRlLCBjbG9zZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlVHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgdGhpcy52YWx1ZVsxXSA9IHRpbWU7XHJcbiAgICAgIGlmICghWElzTnVsbCh0aGlzLnZhbHVlWzBdKSAmJiB0aW1lIDwgdGhpcy52YWx1ZVswXSEpIHtcclxuICAgICAgICBpZiAodGhpcy5ub2RlQ2xpY2tDb3VudCA9PT0gMikge1xyXG4gICAgICAgICAgdGhpcy5ub2RlQ2xpY2tDb3VudC0tO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjbG9zZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRNb2RlbCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy52YWx1ZVswXSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zdGFydE5vZGVFbWl0KG51bGwsIGNsb3NlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVuZE5vZGVFbWl0KGRhdGUsIGNsb3NlKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy52YWx1ZS5pbmNsdWRlcyhudWxsKSkge1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KFxyXG4gICAgICAgIHRoaXMudmFsdWUubWFwKCh4KSA9PiBuZXcgRGF0ZSh4ISkpLFxyXG4gICAgICAgIGNsb3NlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0eXBlQ2hhbmdlKHR5cGU6IFhEYXRlUGlja2VyVHlwZSkge1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG1vbnRoQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgICAvLyB0aGlzLm5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gdGhpcy5fdHlwZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHllYXJDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgICAgLy8gdGhpcy5ub2RlRW1pdChkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdtb250aCc7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB5ZWFyU3RhcnRDaGFuZ2UobnVtYmVyOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3RhcnRZZWFyID0gbnVtYmVyO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmV4dE1vbnRoKG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheSk7XHJcbiAgICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIG51bSk7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0WWVhcihudW06IG51bWJlcikge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmRpc3BsYXkpO1xyXG4gICAgZGF0ZS5zZXRGdWxsWWVhcihkYXRlLmdldEZ1bGxZZWFyKCkgKyBudW0pO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmV4dFllYXJzKG51bTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnN0YXJ0WWVhciArPSBudW07XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheSk7XHJcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHRoaXMuc3RhcnRZZWFyKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsZU1vbnRoKGRhdGU6IERhdGUpIHtcclxuICAgIHJldHVybiAodGhpcy5sb2NhbGUgYXMgYW55KVt0aGlzLmxvd2VyQ2FzZVBpcGUudHJhbnNmb3JtKHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsICdMTExMJykgYXMgc3RyaW5nKV07XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUaW1lKHRpbWU6IERhdGUpIHtcclxuICAgIHRoaXMudGltZSA9IHRpbWUuZ2V0VGltZSgpO1xyXG4gICAgLy8gdGhpcy5ub2RlRW1pdCh0aGlzLnNldE1vZGVsKHRoaXMubW9kZWwsIHRpbWUpLCBmYWxzZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNb2RlbChkYXRlOiBEYXRlLCB0aW1lOiBEYXRlKSB7XHJcbiAgICB0aGlzLm1vZGVsID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCB0aW1lLmdldEhvdXJzKCksIHRpbWUuZ2V0TWludXRlcygpLCB0aW1lLmdldFNlY29uZHMoKSk7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcclxuICB9XHJcblxyXG4gIHN0YXJ0WWVhckNoYW5nZShudW06IG51bWJlcikge1xyXG4gICAgdGhpcy5lbmREaXNwbGF5ID0gWEFkZFllYXJzKHRoaXMuZW5kRGlzcGxheSwgbnVtKTtcclxuICB9XHJcblxyXG4gIGVuZFllYXJDaGFuZ2UobnVtOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc3RhcnREaXNwbGF5ID0gWEFkZFllYXJzKHRoaXMuc3RhcnREaXNwbGF5LCBudW0pO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRNb250aENoYW5nZShudW06IG51bWJlcikge1xyXG4gICAgdGhpcy5lbmREaXNwbGF5ID0gWEFkZE1vbnRocyh0aGlzLmVuZERpc3BsYXksIG51bSk7XHJcbiAgfVxyXG5cclxuICBlbmRNb250aENoYW5nZShudW06IG51bWJlcikge1xyXG4gICAgdGhpcy5zdGFydERpc3BsYXkgPSBYQWRkTW9udGhzKHRoaXMuc3RhcnREaXNwbGF5LCBudW0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbCB7eyB0eXBlIH19XCIgW25nU3dpdGNoXT1cInR5cGVcIj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsLWJvZHlcIj5cclxuICAgICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgICAjc3RhcnRQaWNrZXJEYXRlXHJcbiAgICAgICAgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsLXN0YXJ0XCJcclxuICAgICAgICBbKGRpc3BsYXkpXT1cInN0YXJ0RGlzcGxheVwiXHJcbiAgICAgICAgW21vZGVsXT1cInN0YXJ0TW9kZWxcIlxyXG4gICAgICAgIFtyYW5nZVZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICBbcmFuZ2VUeXBlXT1cImFjdGl2ZVR5cGVcIlxyXG4gICAgICAgIFtuZXh0WWVhckJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgW25leHRNb250aEJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKHllYXJDaGFuZ2UpPVwic3RhcnRZZWFyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChtb250aENoYW5nZSk9XCJzdGFydE1vbnRoQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChyYW5nZVRkTW91c2VlbnRlcik9XCJlbmRQaWNrZXJEYXRlLnNldERhdGVzU3RhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgKHJhbmdlRGF0ZUNsaWNrKT1cImVuZFBpY2tlckRhdGUuc2V0RGF0ZXNTdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICByYW5nZVBpY2tlclxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgICNlbmRQaWNrZXJEYXRlXHJcbiAgICAgICAgY2xhc3M9XCJ4LWRhdGUtcmFuZ2UtcG9ydGFsLWVuZFwiXHJcbiAgICAgICAgWyhkaXNwbGF5KV09XCJlbmREaXNwbGF5XCJcclxuICAgICAgICBbbW9kZWxdPVwiZW5kTW9kZWxcIlxyXG4gICAgICAgIFtyYW5nZVZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICBbcmFuZ2VUeXBlXT1cImFjdGl2ZVR5cGVcIlxyXG4gICAgICAgIFtsYXN0WWVhckJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgW2xhc3RNb250aEJ0bl09XCJmYWxzZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKHllYXJDaGFuZ2UpPVwiZW5kWWVhckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobW9udGhDaGFuZ2UpPVwiZW5kTW9udGhDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKHJhbmdlVGRNb3VzZWVudGVyKT1cInN0YXJ0UGlja2VyRGF0ZS5zZXREYXRlc1N0YXRlKCRldmVudClcIlxyXG4gICAgICAgIChyYW5nZURhdGVDbGljayk9XCJzdGFydFBpY2tlckRhdGUuc2V0RGF0ZXNTdGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICByYW5nZVBpY2tlclxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNzdGFydERhdGVIZWFkZXJUcGw+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbnMtbGVmdFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIChjbGljayk9XCJuZXh0WWVhcigtMSlcIj48L3gtYnV0dG9uPlxyXG4gIDx4LWJ1dHRvbiBpY29uPVwiZnRvLWNoZXZyb24tbGVmdFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIChjbGljayk9XCJuZXh0TW9udGgoLTEpXCI+PC94LWJ1dHRvbj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC15ZWFyLW1vbnRoXCI+XHJcbiAgICA8eC1idXR0b24gdHlwZT1cInRleHRcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwidHlwZUNoYW5nZSgneWVhcicpXCI+e3sgc3RhcnREaXNwbGF5IHwgZGF0ZSA6ICd5eXl5JyB9fXt7IGxvY2FsZS55ZWFyIH19PC94LWJ1dHRvbj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwidGV4dFwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJ0eXBlQ2hhbmdlKCdtb250aCcpXCI+e3sgZ2V0TG9jYWxlTW9udGgoc3RhcnREaXNwbGF5KSB9fTwveC1idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuXCI+PC94LWJ1dHRvbj5cclxuICA8eC1idXR0b24gaWNvbj1cImZ0by1jaGV2cm9ucy1yaWdodFwiIHNpemU9XCJzbWFsbFwiIG9ubHlJY29uIHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuXCI+PC94LWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZW5kRGF0ZUhlYWRlclRwbD5cclxuICA8eC1idXR0b24gaWNvbj1cImZ0by1jaGV2cm9ucy1sZWZ0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gKGNsaWNrKT1cIm5leHRZZWFyKC0xKVwiIHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuXCI+PC94LWJ1dHRvbj5cclxuICA8eC1idXR0b24gaWNvbj1cImZ0by1jaGV2cm9uLWxlZnRcIiBzaXplPVwic21hbGxcIiBvbmx5SWNvbiAoY2xpY2spPVwibmV4dE1vbnRoKC0xKVwiIHN0eWxlPVwidmlzaWJpbGl0eTogaGlkZGVuXCI+PC94LWJ1dHRvbj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXJhbmdlLXBvcnRhbC15ZWFyLW1vbnRoXCI+XHJcbiAgICA8eC1idXR0b24gdHlwZT1cInRleHRcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwidHlwZUNoYW5nZSgneWVhcicpXCI+e3sgZW5kRGlzcGxheSB8IGRhdGUgOiAneXl5eScgfX17eyBsb2NhbGUueWVhciB9fTwveC1idXR0b24+XHJcbiAgICA8eC1idXR0b24gdHlwZT1cInRleHRcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwidHlwZUNoYW5nZSgnbW9udGgnKVwiPnt7IGdldExvY2FsZU1vbnRoKGVuZERpc3BsYXkpIH19PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8eC1idXR0b24gaWNvbj1cImZ0by1jaGV2cm9uLXJpZ2h0XCIgc2l6ZT1cInNtYWxsXCIgb25seUljb24gKGNsaWNrKT1cIm5leHRNb250aCgxKVwiPjwveC1idXR0b24+XHJcbiAgPHgtYnV0dG9uIGljb249XCJmdG8tY2hldnJvbnMtcmlnaHRcIiBzaXplPVwic21hbGxcIiBvbmx5SWNvbiAoY2xpY2spPVwibmV4dFllYXIoMSlcIj48L3gtYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=