@ng-nest/ui 15.0.13 → 15.0.15

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 (540) hide show
  1. package/anchor/anchor-inner.component.d.ts +6 -0
  2. package/anchor/anchor.component.d.ts +5 -2
  3. package/anchor/anchor.module.d.ts +5 -4
  4. package/anchor/anchor.property.d.ts +13 -0
  5. package/anchor/public-api.d.ts +1 -0
  6. package/core/config/config.d.ts +2 -0
  7. package/core/functions/date.d.ts +3 -0
  8. package/date-picker/date-picker-portal.component.d.ts +7 -2
  9. package/date-picker/date-picker.property.d.ts +87 -6
  10. package/date-picker/date-range-portal.component.d.ts +6 -2
  11. package/date-picker/picker-date.component.d.ts +8 -0
  12. package/date-picker/picker-month.component.d.ts +1 -0
  13. package/date-picker/picker-year.component.d.ts +1 -0
  14. package/esm2020/affix/affix.component.mjs +3 -3
  15. package/esm2020/affix/affix.module.mjs +4 -4
  16. package/esm2020/affix/affix.property.mjs +3 -3
  17. package/esm2020/alert/alert.component.mjs +3 -3
  18. package/esm2020/alert/alert.module.mjs +4 -4
  19. package/esm2020/alert/alert.property.mjs +3 -3
  20. package/esm2020/anchor/anchor-inner.component.mjs +17 -0
  21. package/esm2020/anchor/anchor.component.mjs +30 -13
  22. package/esm2020/anchor/anchor.module.mjs +9 -8
  23. package/esm2020/anchor/anchor.property.mjs +21 -4
  24. package/esm2020/anchor/public-api.mjs +2 -1
  25. package/esm2020/api/api.component.mjs +3 -3
  26. package/esm2020/api/api.module.mjs +4 -4
  27. package/esm2020/auto-complete/auto-complete-portal.component.mjs +3 -3
  28. package/esm2020/auto-complete/auto-complete.component.mjs +3 -3
  29. package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
  30. package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
  31. package/esm2020/avatar/avatar-group.component.mjs +3 -3
  32. package/esm2020/avatar/avatar.component.mjs +3 -3
  33. package/esm2020/avatar/avatar.module.mjs +4 -4
  34. package/esm2020/avatar/avatar.property.mjs +6 -6
  35. package/esm2020/back-top/back-top.component.mjs +3 -3
  36. package/esm2020/back-top/back-top.module.mjs +4 -4
  37. package/esm2020/back-top/back-top.property.mjs +3 -3
  38. package/esm2020/badge/badge.component.mjs +3 -3
  39. package/esm2020/badge/badge.module.mjs +4 -4
  40. package/esm2020/badge/badge.property.mjs +3 -3
  41. package/esm2020/base-form/base-form.component.mjs +3 -3
  42. package/esm2020/base-form/base-form.module.mjs +4 -4
  43. package/esm2020/base-form/base-form.property.mjs +3 -3
  44. package/esm2020/border/border.component.mjs +3 -3
  45. package/esm2020/border/border.module.mjs +4 -4
  46. package/esm2020/button/button.component.mjs +3 -3
  47. package/esm2020/button/button.module.mjs +4 -4
  48. package/esm2020/button/button.property.mjs +6 -6
  49. package/esm2020/button/buttons.component.mjs +3 -3
  50. package/esm2020/calendar/calendar.component.mjs +3 -3
  51. package/esm2020/calendar/calendar.module.mjs +4 -4
  52. package/esm2020/calendar/calendar.property.mjs +3 -3
  53. package/esm2020/card/card.component.mjs +3 -3
  54. package/esm2020/card/card.module.mjs +4 -4
  55. package/esm2020/card/card.property.mjs +3 -3
  56. package/esm2020/carousel/carousel-panel.component.mjs +3 -3
  57. package/esm2020/carousel/carousel.component.mjs +3 -3
  58. package/esm2020/carousel/carousel.module.mjs +4 -4
  59. package/esm2020/carousel/carousel.property.mjs +6 -6
  60. package/esm2020/cascade/cascade-portal.component.mjs +3 -3
  61. package/esm2020/cascade/cascade.component.mjs +3 -3
  62. package/esm2020/cascade/cascade.module.mjs +4 -4
  63. package/esm2020/cascade/cascade.property.mjs +3 -3
  64. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  65. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  66. package/esm2020/checkbox/checkbox.property.mjs +3 -3
  67. package/esm2020/collapse/collapse-panel.component.mjs +3 -3
  68. package/esm2020/collapse/collapse.component.mjs +3 -3
  69. package/esm2020/collapse/collapse.module.mjs +4 -4
  70. package/esm2020/collapse/collapse.property.mjs +6 -6
  71. package/esm2020/color/color.component.mjs +3 -3
  72. package/esm2020/color/color.module.mjs +4 -4
  73. package/esm2020/color/color.property.mjs +3 -3
  74. package/esm2020/color-picker/color-picker-portal.component.mjs +5 -5
  75. package/esm2020/color-picker/color-picker.component.mjs +3 -3
  76. package/esm2020/color-picker/color-picker.module.mjs +4 -4
  77. package/esm2020/color-picker/color-picker.property.mjs +3 -3
  78. package/esm2020/comment/comment-reply.component.mjs +3 -3
  79. package/esm2020/comment/comment.component.mjs +3 -3
  80. package/esm2020/comment/comment.module.mjs +4 -4
  81. package/esm2020/comment/comment.property.mjs +6 -6
  82. package/esm2020/container/aside.component.mjs +3 -3
  83. package/esm2020/container/container.component.mjs +3 -3
  84. package/esm2020/container/container.module.mjs +4 -4
  85. package/esm2020/container/container.property.mjs +12 -12
  86. package/esm2020/container/footer.component.mjs +3 -3
  87. package/esm2020/container/header.component.mjs +3 -3
  88. package/esm2020/container/main.component.mjs +3 -3
  89. package/esm2020/core/config/config.mjs +1 -1
  90. package/esm2020/core/config/config.service.mjs +3 -3
  91. package/esm2020/core/functions/date.mjs +73 -1
  92. package/esm2020/core/services/http.service.mjs +3 -3
  93. package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
  94. package/esm2020/core/services/storage.service.mjs +3 -3
  95. package/esm2020/core/theme/theme.service.mjs +3 -3
  96. package/esm2020/crumb/crumb.component.mjs +3 -3
  97. package/esm2020/crumb/crumb.module.mjs +4 -4
  98. package/esm2020/crumb/crumb.property.mjs +3 -3
  99. package/esm2020/date-picker/date-picker-portal.component.mjs +36 -8
  100. package/esm2020/date-picker/date-picker.component.mjs +17 -7
  101. package/esm2020/date-picker/date-picker.module.mjs +4 -4
  102. package/esm2020/date-picker/date-picker.property.mjs +30 -16
  103. package/esm2020/date-picker/date-range-portal.component.mjs +32 -20
  104. package/esm2020/date-picker/date-range.component.mjs +28 -10
  105. package/esm2020/date-picker/picker-date.component.mjs +68 -8
  106. package/esm2020/date-picker/picker-month.component.mjs +15 -6
  107. package/esm2020/date-picker/picker-year.component.mjs +17 -6
  108. package/esm2020/description/description-item.component.mjs +3 -3
  109. package/esm2020/description/description.component.mjs +3 -3
  110. package/esm2020/description/description.module.mjs +4 -4
  111. package/esm2020/description/description.property.mjs +6 -6
  112. package/esm2020/dialog/dialog-container.component.mjs +3 -3
  113. package/esm2020/dialog/dialog-portal.component.mjs +3 -3
  114. package/esm2020/dialog/dialog-portal.directives.mjs +18 -18
  115. package/esm2020/dialog/dialog.component.mjs +3 -3
  116. package/esm2020/dialog/dialog.module.mjs +4 -4
  117. package/esm2020/dialog/dialog.property.mjs +6 -6
  118. package/esm2020/dialog/dialog.service.mjs +3 -3
  119. package/esm2020/doc/doc.component.mjs +3 -3
  120. package/esm2020/doc/doc.module.mjs +4 -4
  121. package/esm2020/drawer/drawer-container.component.mjs +3 -3
  122. package/esm2020/drawer/drawer-portal.component.mjs +3 -3
  123. package/esm2020/drawer/drawer-portal.directives.mjs +9 -9
  124. package/esm2020/drawer/drawer.component.mjs +3 -3
  125. package/esm2020/drawer/drawer.module.mjs +4 -4
  126. package/esm2020/drawer/drawer.property.mjs +6 -6
  127. package/esm2020/drawer/drawer.service.mjs +3 -3
  128. package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
  129. package/esm2020/dropdown/dropdown.component.mjs +3 -3
  130. package/esm2020/dropdown/dropdown.module.mjs +4 -4
  131. package/esm2020/dropdown/dropdown.property.mjs +3 -3
  132. package/esm2020/empty/empty.component.mjs +3 -3
  133. package/esm2020/empty/empty.module.mjs +4 -4
  134. package/esm2020/empty/empty.property.mjs +3 -3
  135. package/esm2020/examples/examples.component.mjs +3 -3
  136. package/esm2020/examples/examples.module.mjs +4 -4
  137. package/esm2020/find/find.component.mjs +3 -3
  138. package/esm2020/find/find.module.mjs +4 -4
  139. package/esm2020/find/find.property.mjs +3 -3
  140. package/esm2020/form/control.component.mjs +3 -3
  141. package/esm2020/form/form.component.mjs +3 -3
  142. package/esm2020/form/form.module.mjs +4 -4
  143. package/esm2020/form/form.property.mjs +6 -6
  144. package/esm2020/highlight/highlight.component.mjs +3 -3
  145. package/esm2020/highlight/highlight.module.mjs +4 -4
  146. package/esm2020/highlight/highlight.property.mjs +3 -3
  147. package/esm2020/i18n/i18n.directive.mjs +3 -3
  148. package/esm2020/i18n/i18n.module.mjs +4 -4
  149. package/esm2020/i18n/i18n.pipe.mjs +3 -3
  150. package/esm2020/i18n/i18n.property.mjs +1 -1
  151. package/esm2020/i18n/i18n.service.mjs +3 -3
  152. package/esm2020/i18n/languages/en_GB.mjs +6 -2
  153. package/esm2020/i18n/languages/en_US.mjs +6 -2
  154. package/esm2020/i18n/languages/zh_CN.mjs +6 -2
  155. package/esm2020/i18n/languages/zh_TW.mjs +6 -2
  156. package/esm2020/icon/icon.component.mjs +3 -3
  157. package/esm2020/icon/icon.module.mjs +4 -4
  158. package/esm2020/icon/icon.property.mjs +3 -3
  159. package/esm2020/icon/icon.service.mjs +3 -3
  160. package/esm2020/image/image-group.component.mjs +3 -3
  161. package/esm2020/image/image-preview.component.mjs +3 -3
  162. package/esm2020/image/image.component.mjs +3 -3
  163. package/esm2020/image/image.module.mjs +4 -4
  164. package/esm2020/image/image.property.mjs +6 -6
  165. package/esm2020/inner/inner.component.mjs +3 -3
  166. package/esm2020/inner/inner.module.mjs +4 -4
  167. package/esm2020/inner/inner.property.mjs +3 -3
  168. package/esm2020/input/input-group.component.mjs +3 -3
  169. package/esm2020/input/input.component.mjs +3 -3
  170. package/esm2020/input/input.module.mjs +4 -4
  171. package/esm2020/input/input.property.mjs +6 -6
  172. package/esm2020/input-number/input-number.component.mjs +3 -3
  173. package/esm2020/input-number/input-number.module.mjs +4 -4
  174. package/esm2020/input-number/input-number.property.mjs +3 -3
  175. package/esm2020/keyword/keyword.directive.mjs +3 -3
  176. package/esm2020/keyword/keyword.module.mjs +4 -4
  177. package/esm2020/keyword/keyword.property.mjs +3 -3
  178. package/esm2020/layout/col.component.mjs +3 -3
  179. package/esm2020/layout/layout.module.mjs +4 -4
  180. package/esm2020/layout/layout.property.mjs +6 -6
  181. package/esm2020/layout/row.component.mjs +3 -3
  182. package/esm2020/link/link.component.mjs +3 -3
  183. package/esm2020/link/link.module.mjs +4 -4
  184. package/esm2020/link/link.property.mjs +3 -3
  185. package/esm2020/list/list-drop-group.directive.mjs +3 -3
  186. package/esm2020/list/list-option.component.mjs +4 -4
  187. package/esm2020/list/list.component.mjs +4 -4
  188. package/esm2020/list/list.module.mjs +4 -4
  189. package/esm2020/list/list.property.mjs +6 -6
  190. package/esm2020/loading/loading.component.mjs +3 -3
  191. package/esm2020/loading/loading.module.mjs +4 -4
  192. package/esm2020/loading/loading.property.mjs +3 -3
  193. package/esm2020/menu/menu-node.component.mjs +3 -3
  194. package/esm2020/menu/menu.component.mjs +3 -3
  195. package/esm2020/menu/menu.module.mjs +4 -4
  196. package/esm2020/menu/menu.property.mjs +6 -6
  197. package/esm2020/message/message.component.mjs +3 -3
  198. package/esm2020/message/message.module.mjs +4 -4
  199. package/esm2020/message/message.service.mjs +3 -3
  200. package/esm2020/message-box/message-box.component.mjs +3 -3
  201. package/esm2020/message-box/message-box.module.mjs +4 -4
  202. package/esm2020/message-box/message-box.service.mjs +3 -3
  203. package/esm2020/notification/notification.component.mjs +3 -3
  204. package/esm2020/notification/notification.module.mjs +4 -4
  205. package/esm2020/notification/notification.service.mjs +3 -3
  206. package/esm2020/outlet/outlet.directive.mjs +3 -3
  207. package/esm2020/outlet/outlet.module.mjs +4 -4
  208. package/esm2020/page-header/page-header.component.mjs +3 -3
  209. package/esm2020/page-header/page-header.module.mjs +4 -4
  210. package/esm2020/page-header/page-header.property.mjs +3 -3
  211. package/esm2020/pagination/pagination.component.mjs +3 -3
  212. package/esm2020/pagination/pagination.module.mjs +4 -4
  213. package/esm2020/pagination/pagination.property.mjs +3 -3
  214. package/esm2020/pattern/pattern.component.mjs +3 -3
  215. package/esm2020/pattern/pattern.module.mjs +4 -4
  216. package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
  217. package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
  218. package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
  219. package/esm2020/popover/popover-portal.component.mjs +3 -3
  220. package/esm2020/popover/popover.directive.mjs +3 -3
  221. package/esm2020/popover/popover.module.mjs +4 -4
  222. package/esm2020/popover/popover.property.mjs +3 -3
  223. package/esm2020/portal/portal.module.mjs +4 -4
  224. package/esm2020/portal/portal.service.mjs +3 -3
  225. package/esm2020/progress/progress.component.mjs +3 -3
  226. package/esm2020/progress/progress.module.mjs +4 -4
  227. package/esm2020/progress/progress.property.mjs +3 -3
  228. package/esm2020/radio/radio.component.mjs +3 -3
  229. package/esm2020/radio/radio.module.mjs +4 -4
  230. package/esm2020/radio/radio.property.mjs +3 -3
  231. package/esm2020/rate/rate.component.mjs +3 -3
  232. package/esm2020/rate/rate.module.mjs +4 -4
  233. package/esm2020/rate/rate.property.mjs +3 -3
  234. package/esm2020/resizable/resizable.directive.mjs +3 -3
  235. package/esm2020/resizable/resizable.module.mjs +4 -4
  236. package/esm2020/resizable/resizable.property.mjs +3 -3
  237. package/esm2020/result/result.component.mjs +3 -3
  238. package/esm2020/result/result.module.mjs +4 -4
  239. package/esm2020/result/result.property.mjs +3 -3
  240. package/esm2020/ripple/ripple.directive.mjs +3 -3
  241. package/esm2020/ripple/ripple.module.mjs +4 -4
  242. package/esm2020/ripple/ripple.property.mjs +3 -3
  243. package/esm2020/select/select-portal.component.mjs +3 -3
  244. package/esm2020/select/select.component.mjs +3 -3
  245. package/esm2020/select/select.module.mjs +4 -4
  246. package/esm2020/select/select.property.mjs +3 -3
  247. package/esm2020/skeleton/skeleton.component.mjs +3 -3
  248. package/esm2020/skeleton/skeleton.module.mjs +4 -4
  249. package/esm2020/skeleton/skeleton.property.mjs +3 -3
  250. package/esm2020/slider/slider.component.mjs +8 -5
  251. package/esm2020/slider/slider.module.mjs +4 -4
  252. package/esm2020/slider/slider.property.mjs +10 -4
  253. package/esm2020/slider-select/slider-select.component.mjs +3 -3
  254. package/esm2020/slider-select/slider-select.module.mjs +4 -4
  255. package/esm2020/slider-select/slider-select.property.mjs +3 -3
  256. package/esm2020/statistic/countdown.component.mjs +3 -3
  257. package/esm2020/statistic/statistic.component.mjs +3 -3
  258. package/esm2020/statistic/statistic.module.mjs +4 -4
  259. package/esm2020/statistic/statistic.property.mjs +6 -6
  260. package/esm2020/steps/steps.component.mjs +3 -3
  261. package/esm2020/steps/steps.module.mjs +4 -4
  262. package/esm2020/steps/steps.property.mjs +3 -3
  263. package/esm2020/switch/switch.component.mjs +3 -3
  264. package/esm2020/switch/switch.module.mjs +4 -4
  265. package/esm2020/switch/switch.property.mjs +3 -3
  266. package/esm2020/table/drag.directive.mjs +3 -3
  267. package/esm2020/table/table-body.component.mjs +3 -3
  268. package/esm2020/table/table-foot.component.mjs +3 -3
  269. package/esm2020/table/table-head.component.mjs +3 -3
  270. package/esm2020/table/table.component.mjs +3 -3
  271. package/esm2020/table/table.module.mjs +4 -4
  272. package/esm2020/table/table.property.mjs +12 -12
  273. package/esm2020/tabs/tab-content.component.mjs +3 -3
  274. package/esm2020/tabs/tab-link.directive.mjs +6 -6
  275. package/esm2020/tabs/tab.component.mjs +3 -3
  276. package/esm2020/tabs/tabs.component.mjs +3 -3
  277. package/esm2020/tabs/tabs.module.mjs +4 -4
  278. package/esm2020/tabs/tabs.property.mjs +6 -6
  279. package/esm2020/tag/tag.component.mjs +3 -3
  280. package/esm2020/tag/tag.module.mjs +4 -4
  281. package/esm2020/tag/tag.property.mjs +3 -3
  282. package/esm2020/text-retract/text-retract.component.mjs +3 -3
  283. package/esm2020/text-retract/text-retract.module.mjs +4 -4
  284. package/esm2020/text-retract/text-retract.property.mjs +3 -3
  285. package/esm2020/textarea/textarea.component.mjs +3 -3
  286. package/esm2020/textarea/textarea.module.mjs +4 -4
  287. package/esm2020/textarea/textarea.property.mjs +3 -3
  288. package/esm2020/theme/theme.component.mjs +3 -3
  289. package/esm2020/theme/theme.module.mjs +4 -4
  290. package/esm2020/theme/theme.property.mjs +3 -3
  291. package/esm2020/time-ago/time-ago.module.mjs +4 -4
  292. package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
  293. package/esm2020/time-picker/time-picker-frame.component.mjs +50 -16
  294. package/esm2020/time-picker/time-picker-portal.component.mjs +5 -5
  295. package/esm2020/time-picker/time-picker.component.mjs +5 -4
  296. package/esm2020/time-picker/time-picker.module.mjs +4 -4
  297. package/esm2020/time-picker/time-picker.property.mjs +6 -4
  298. package/esm2020/time-range/time-range.module.mjs +4 -4
  299. package/esm2020/time-range/time-range.pipe.mjs +3 -3
  300. package/esm2020/timeline/timeline.component.mjs +3 -3
  301. package/esm2020/timeline/timeline.module.mjs +4 -4
  302. package/esm2020/timeline/timeline.property.mjs +3 -3
  303. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  304. package/esm2020/tooltip/tooltip.directive.mjs +3 -3
  305. package/esm2020/tooltip/tooltip.module.mjs +4 -4
  306. package/esm2020/tooltip/tooltip.property.mjs +3 -3
  307. package/esm2020/transfer/transfer.component.mjs +3 -3
  308. package/esm2020/transfer/transfer.module.mjs +4 -4
  309. package/esm2020/transfer/transfer.property.mjs +3 -3
  310. package/esm2020/tree/tree-node.component.mjs +99 -16
  311. package/esm2020/tree/tree.component.mjs +127 -30
  312. package/esm2020/tree/tree.module.mjs +33 -6
  313. package/esm2020/tree/tree.property.mjs +42 -8
  314. package/esm2020/tree/tree.service.mjs +77 -0
  315. package/esm2020/tree-file/tree-file.component.mjs +17 -6
  316. package/esm2020/tree-file/tree-file.module.mjs +4 -4
  317. package/esm2020/tree-file/tree-file.property.mjs +3 -3
  318. package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
  319. package/esm2020/tree-select/tree-select.component.mjs +3 -3
  320. package/esm2020/tree-select/tree-select.module.mjs +4 -4
  321. package/esm2020/tree-select/tree-select.property.mjs +3 -3
  322. package/esm2020/typography/typography.component.mjs +3 -3
  323. package/esm2020/typography/typography.module.mjs +4 -4
  324. package/esm2020/typography/typography.property.mjs +3 -3
  325. package/esm2020/upload/upload-portal.component.mjs +3 -3
  326. package/esm2020/upload/upload.component.mjs +3 -3
  327. package/esm2020/upload/upload.module.mjs +4 -4
  328. package/esm2020/upload/upload.property.mjs +3 -3
  329. package/fesm2015/ng-nest-ui-affix.mjs +10 -11
  330. package/fesm2015/ng-nest-ui-alert.mjs +10 -11
  331. package/fesm2015/ng-nest-ui-anchor.mjs +71 -24
  332. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  333. package/fesm2015/ng-nest-ui-api.mjs +7 -8
  334. package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -14
  335. package/fesm2015/ng-nest-ui-avatar.mjs +16 -17
  336. package/fesm2015/ng-nest-ui-back-top.mjs +10 -11
  337. package/fesm2015/ng-nest-ui-badge.mjs +10 -11
  338. package/fesm2015/ng-nest-ui-base-form.mjs +10 -11
  339. package/fesm2015/ng-nest-ui-border.mjs +7 -8
  340. package/fesm2015/ng-nest-ui-button.mjs +16 -17
  341. package/fesm2015/ng-nest-ui-calendar.mjs +10 -11
  342. package/fesm2015/ng-nest-ui-card.mjs +10 -11
  343. package/fesm2015/ng-nest-ui-carousel.mjs +16 -17
  344. package/fesm2015/ng-nest-ui-cascade.mjs +13 -14
  345. package/fesm2015/ng-nest-ui-checkbox.mjs +10 -11
  346. package/fesm2015/ng-nest-ui-collapse.mjs +16 -17
  347. package/fesm2015/ng-nest-ui-color-picker.mjs +14 -15
  348. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  349. package/fesm2015/ng-nest-ui-color.mjs +10 -11
  350. package/fesm2015/ng-nest-ui-comment.mjs +16 -17
  351. package/fesm2015/ng-nest-ui-container.mjs +31 -32
  352. package/fesm2015/ng-nest-ui-core.mjs +88 -16
  353. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  354. package/fesm2015/ng-nest-ui-crumb.mjs +10 -11
  355. package/fesm2015/ng-nest-ui-date-picker.mjs +234 -72
  356. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  357. package/fesm2015/ng-nest-ui-description.mjs +16 -17
  358. package/fesm2015/ng-nest-ui-dialog.mjs +40 -41
  359. package/fesm2015/ng-nest-ui-doc.mjs +7 -8
  360. package/fesm2015/ng-nest-ui-drawer.mjs +31 -32
  361. package/fesm2015/ng-nest-ui-dropdown.mjs +13 -14
  362. package/fesm2015/ng-nest-ui-empty.mjs +10 -11
  363. package/fesm2015/ng-nest-ui-examples.mjs +7 -8
  364. package/fesm2015/ng-nest-ui-find.mjs +10 -11
  365. package/fesm2015/ng-nest-ui-form.mjs +16 -17
  366. package/fesm2015/ng-nest-ui-highlight.mjs +10 -11
  367. package/fesm2015/ng-nest-ui-i18n.mjs +33 -18
  368. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  369. package/fesm2015/ng-nest-ui-icon.mjs +13 -14
  370. package/fesm2015/ng-nest-ui-image.mjs +19 -20
  371. package/fesm2015/ng-nest-ui-inner.mjs +10 -11
  372. package/fesm2015/ng-nest-ui-input-number.mjs +10 -11
  373. package/fesm2015/ng-nest-ui-input.mjs +16 -17
  374. package/fesm2015/ng-nest-ui-keyword.mjs +10 -11
  375. package/fesm2015/ng-nest-ui-layout.mjs +16 -17
  376. package/fesm2015/ng-nest-ui-link.mjs +10 -11
  377. package/fesm2015/ng-nest-ui-list.mjs +21 -22
  378. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  379. package/fesm2015/ng-nest-ui-loading.mjs +10 -11
  380. package/fesm2015/ng-nest-ui-menu.mjs +16 -17
  381. package/fesm2015/ng-nest-ui-message-box.mjs +10 -11
  382. package/fesm2015/ng-nest-ui-message.mjs +10 -11
  383. package/fesm2015/ng-nest-ui-notification.mjs +10 -11
  384. package/fesm2015/ng-nest-ui-outlet.mjs +7 -8
  385. package/fesm2015/ng-nest-ui-page-header.mjs +10 -11
  386. package/fesm2015/ng-nest-ui-pagination.mjs +10 -11
  387. package/fesm2015/ng-nest-ui-pattern.mjs +7 -8
  388. package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -11
  389. package/fesm2015/ng-nest-ui-popover.mjs +13 -14
  390. package/fesm2015/ng-nest-ui-portal.mjs +7 -8
  391. package/fesm2015/ng-nest-ui-progress.mjs +10 -11
  392. package/fesm2015/ng-nest-ui-radio.mjs +10 -11
  393. package/fesm2015/ng-nest-ui-rate.mjs +10 -11
  394. package/fesm2015/ng-nest-ui-resizable.mjs +10 -11
  395. package/fesm2015/ng-nest-ui-result.mjs +10 -11
  396. package/fesm2015/ng-nest-ui-ripple.mjs +10 -11
  397. package/fesm2015/ng-nest-ui-select.mjs +13 -14
  398. package/fesm2015/ng-nest-ui-skeleton.mjs +10 -11
  399. package/fesm2015/ng-nest-ui-slider-select.mjs +10 -11
  400. package/fesm2015/ng-nest-ui-slider.mjs +20 -12
  401. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  402. package/fesm2015/ng-nest-ui-statistic.mjs +16 -17
  403. package/fesm2015/ng-nest-ui-steps.mjs +10 -11
  404. package/fesm2015/ng-nest-ui-switch.mjs +10 -11
  405. package/fesm2015/ng-nest-ui-table.mjs +31 -31
  406. package/fesm2015/ng-nest-ui-tabs.mjs +25 -26
  407. package/fesm2015/ng-nest-ui-tag.mjs +10 -11
  408. package/fesm2015/ng-nest-ui-text-retract.mjs +10 -11
  409. package/fesm2015/ng-nest-ui-textarea.mjs +10 -11
  410. package/fesm2015/ng-nest-ui-theme.mjs +10 -11
  411. package/fesm2015/ng-nest-ui-time-ago.mjs +7 -8
  412. package/fesm2015/ng-nest-ui-time-picker.mjs +66 -30
  413. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  414. package/fesm2015/ng-nest-ui-time-range.mjs +7 -8
  415. package/fesm2015/ng-nest-ui-timeline.mjs +10 -11
  416. package/fesm2015/ng-nest-ui-tooltip.mjs +13 -14
  417. package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
  418. package/fesm2015/ng-nest-ui-tree-file.mjs +23 -13
  419. package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
  420. package/fesm2015/ng-nest-ui-tree-select.mjs +13 -14
  421. package/fesm2015/ng-nest-ui-tree.mjs +368 -55
  422. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  423. package/fesm2015/ng-nest-ui-typography.mjs +10 -11
  424. package/fesm2015/ng-nest-ui-upload.mjs +13 -14
  425. package/fesm2015/ng-nest-ui.mjs +0 -1
  426. package/fesm2020/ng-nest-ui-affix.mjs +10 -11
  427. package/fesm2020/ng-nest-ui-alert.mjs +10 -11
  428. package/fesm2020/ng-nest-ui-anchor.mjs +71 -24
  429. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  430. package/fesm2020/ng-nest-ui-api.mjs +7 -8
  431. package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -14
  432. package/fesm2020/ng-nest-ui-avatar.mjs +16 -17
  433. package/fesm2020/ng-nest-ui-back-top.mjs +10 -11
  434. package/fesm2020/ng-nest-ui-badge.mjs +10 -11
  435. package/fesm2020/ng-nest-ui-base-form.mjs +10 -11
  436. package/fesm2020/ng-nest-ui-border.mjs +7 -8
  437. package/fesm2020/ng-nest-ui-button.mjs +16 -17
  438. package/fesm2020/ng-nest-ui-calendar.mjs +10 -11
  439. package/fesm2020/ng-nest-ui-card.mjs +10 -11
  440. package/fesm2020/ng-nest-ui-carousel.mjs +16 -17
  441. package/fesm2020/ng-nest-ui-cascade.mjs +13 -14
  442. package/fesm2020/ng-nest-ui-checkbox.mjs +10 -11
  443. package/fesm2020/ng-nest-ui-collapse.mjs +16 -17
  444. package/fesm2020/ng-nest-ui-color-picker.mjs +14 -15
  445. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  446. package/fesm2020/ng-nest-ui-color.mjs +10 -11
  447. package/fesm2020/ng-nest-ui-comment.mjs +16 -17
  448. package/fesm2020/ng-nest-ui-container.mjs +31 -32
  449. package/fesm2020/ng-nest-ui-core.mjs +88 -16
  450. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  451. package/fesm2020/ng-nest-ui-crumb.mjs +10 -11
  452. package/fesm2020/ng-nest-ui-date-picker.mjs +233 -72
  453. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  454. package/fesm2020/ng-nest-ui-description.mjs +16 -17
  455. package/fesm2020/ng-nest-ui-dialog.mjs +40 -41
  456. package/fesm2020/ng-nest-ui-doc.mjs +7 -8
  457. package/fesm2020/ng-nest-ui-drawer.mjs +31 -32
  458. package/fesm2020/ng-nest-ui-dropdown.mjs +13 -14
  459. package/fesm2020/ng-nest-ui-empty.mjs +10 -11
  460. package/fesm2020/ng-nest-ui-examples.mjs +7 -8
  461. package/fesm2020/ng-nest-ui-find.mjs +10 -11
  462. package/fesm2020/ng-nest-ui-form.mjs +16 -17
  463. package/fesm2020/ng-nest-ui-highlight.mjs +10 -11
  464. package/fesm2020/ng-nest-ui-i18n.mjs +33 -18
  465. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  466. package/fesm2020/ng-nest-ui-icon.mjs +13 -14
  467. package/fesm2020/ng-nest-ui-image.mjs +19 -20
  468. package/fesm2020/ng-nest-ui-inner.mjs +10 -11
  469. package/fesm2020/ng-nest-ui-input-number.mjs +10 -11
  470. package/fesm2020/ng-nest-ui-input.mjs +16 -17
  471. package/fesm2020/ng-nest-ui-keyword.mjs +10 -11
  472. package/fesm2020/ng-nest-ui-layout.mjs +16 -17
  473. package/fesm2020/ng-nest-ui-link.mjs +10 -11
  474. package/fesm2020/ng-nest-ui-list.mjs +21 -22
  475. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  476. package/fesm2020/ng-nest-ui-loading.mjs +10 -11
  477. package/fesm2020/ng-nest-ui-menu.mjs +16 -17
  478. package/fesm2020/ng-nest-ui-message-box.mjs +10 -11
  479. package/fesm2020/ng-nest-ui-message.mjs +10 -11
  480. package/fesm2020/ng-nest-ui-notification.mjs +10 -11
  481. package/fesm2020/ng-nest-ui-outlet.mjs +7 -8
  482. package/fesm2020/ng-nest-ui-page-header.mjs +10 -11
  483. package/fesm2020/ng-nest-ui-pagination.mjs +10 -11
  484. package/fesm2020/ng-nest-ui-pattern.mjs +7 -8
  485. package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -11
  486. package/fesm2020/ng-nest-ui-popover.mjs +13 -14
  487. package/fesm2020/ng-nest-ui-portal.mjs +7 -8
  488. package/fesm2020/ng-nest-ui-progress.mjs +10 -11
  489. package/fesm2020/ng-nest-ui-radio.mjs +10 -11
  490. package/fesm2020/ng-nest-ui-rate.mjs +10 -11
  491. package/fesm2020/ng-nest-ui-resizable.mjs +10 -11
  492. package/fesm2020/ng-nest-ui-result.mjs +10 -11
  493. package/fesm2020/ng-nest-ui-ripple.mjs +10 -11
  494. package/fesm2020/ng-nest-ui-select.mjs +13 -14
  495. package/fesm2020/ng-nest-ui-skeleton.mjs +10 -11
  496. package/fesm2020/ng-nest-ui-slider-select.mjs +10 -11
  497. package/fesm2020/ng-nest-ui-slider.mjs +20 -12
  498. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  499. package/fesm2020/ng-nest-ui-statistic.mjs +16 -17
  500. package/fesm2020/ng-nest-ui-steps.mjs +10 -11
  501. package/fesm2020/ng-nest-ui-switch.mjs +10 -11
  502. package/fesm2020/ng-nest-ui-table.mjs +31 -31
  503. package/fesm2020/ng-nest-ui-tabs.mjs +25 -26
  504. package/fesm2020/ng-nest-ui-tag.mjs +10 -11
  505. package/fesm2020/ng-nest-ui-text-retract.mjs +10 -11
  506. package/fesm2020/ng-nest-ui-textarea.mjs +10 -11
  507. package/fesm2020/ng-nest-ui-theme.mjs +10 -11
  508. package/fesm2020/ng-nest-ui-time-ago.mjs +7 -8
  509. package/fesm2020/ng-nest-ui-time-picker.mjs +66 -30
  510. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  511. package/fesm2020/ng-nest-ui-time-range.mjs +7 -8
  512. package/fesm2020/ng-nest-ui-timeline.mjs +10 -11
  513. package/fesm2020/ng-nest-ui-tooltip.mjs +13 -14
  514. package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
  515. package/fesm2020/ng-nest-ui-tree-file.mjs +23 -13
  516. package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
  517. package/fesm2020/ng-nest-ui-tree-select.mjs +13 -14
  518. package/fesm2020/ng-nest-ui-tree.mjs +365 -55
  519. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  520. package/fesm2020/ng-nest-ui-typography.mjs +10 -11
  521. package/fesm2020/ng-nest-ui-upload.mjs +13 -14
  522. package/fesm2020/ng-nest-ui.mjs +0 -1
  523. package/i18n/i18n.property.d.ts +3 -0
  524. package/i18n/languages/en_GB.d.ts +4 -0
  525. package/i18n/languages/en_US.d.ts +4 -0
  526. package/i18n/languages/zh_CN.d.ts +4 -0
  527. package/i18n/languages/zh_TW.d.ts +4 -0
  528. package/package.json +1 -1
  529. package/slider/slider.component.d.ts +1 -1
  530. package/slider/slider.property.d.ts +6 -1
  531. package/time-picker/time-picker-frame.component.d.ts +6 -2
  532. package/time-picker/time-picker-portal.component.d.ts +2 -1
  533. package/time-picker/time-picker.property.d.ts +32 -1
  534. package/tree/tree-node.component.d.ts +35 -4
  535. package/tree/tree.component.d.ts +24 -3
  536. package/tree/tree.module.d.ts +8 -7
  537. package/tree/tree.property.d.ts +63 -1
  538. package/tree/tree.service.d.ts +10 -0
  539. package/tree-file/tree-file.component.d.ts +1 -0
  540. package/divider/README.md +0 -9
@@ -33,8 +33,8 @@ export class XDatePickerProperty extends XControlValueAccessor {
33
33
  this.nodeEmit = new EventEmitter();
34
34
  }
35
35
  }
36
- /** @nocollapse */ XDatePickerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
37
- /** @nocollapse */ XDatePickerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDatePickerProperty, selector: "ng-component", inputs: { type: "type", format: "format", clearable: "clearable", placement: "placement", size: "size", bordered: "bordered", preset: "preset", extraFooter: "extraFooter" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
36
+ /** @nocollapse */ XDatePickerProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
37
+ /** @nocollapse */ XDatePickerProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XDatePickerProperty, selector: "ng-component", inputs: { type: "type", format: "format", clearable: "clearable", placement: "placement", size: "size", bordered: "bordered", preset: "preset", extraFooter: "extraFooter", disabledDate: "disabledDate", disabledTime: "disabledTime" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
38
38
  __decorate([
39
39
  XWithConfig(X_CONFIG_NAME, 'yyyy-MM-dd')
40
40
  ], XDatePickerProperty.prototype, "format", void 0);
@@ -55,7 +55,7 @@ __decorate([
55
55
  __decorate([
56
56
  XDataConvert()
57
57
  ], XDatePickerProperty.prototype, "preset", void 0);
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerProperty, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerProperty, decorators: [{
59
59
  type: Component,
60
60
  args: [{ template: '' }]
61
61
  }], propDecorators: { type: [{
@@ -74,6 +74,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
74
74
  type: Input
75
75
  }], extraFooter: [{
76
76
  type: Input
77
+ }], disabledDate: [{
78
+ type: Input
79
+ }], disabledTime: [{
80
+ type: Input
77
81
  }], nodeEmit: [{
78
82
  type: Output
79
83
  }] } });
@@ -107,8 +111,8 @@ export class XDateRangeProperty extends XControlValueAccessor {
107
111
  this.nodeEmit = new EventEmitter();
108
112
  }
109
113
  }
110
- /** @nocollapse */ XDateRangeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
111
- /** @nocollapse */ XDateRangeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDateRangeProperty, selector: "ng-component", inputs: { type: "type", format: "format", clearable: "clearable", placement: "placement", size: "size", bordered: "bordered", preset: "preset", placeholder: "placeholder", extraFooter: "extraFooter" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
114
+ /** @nocollapse */ XDateRangeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDateRangeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
115
+ /** @nocollapse */ XDateRangeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XDateRangeProperty, selector: "ng-component", inputs: { type: "type", format: "format", clearable: "clearable", placement: "placement", size: "size", bordered: "bordered", preset: "preset", placeholder: "placeholder", extraFooter: "extraFooter", disabledDate: "disabledDate", disabledTime: "disabledTime" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
112
116
  __decorate([
113
117
  XWithConfig(X_CONFIG_RANGE_NAME, 'yyyy-MM-dd')
114
118
  ], XDateRangeProperty.prototype, "format", void 0);
@@ -129,7 +133,7 @@ __decorate([
129
133
  __decorate([
130
134
  XDataConvert()
131
135
  ], XDateRangeProperty.prototype, "preset", void 0);
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDateRangeProperty, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDateRangeProperty, decorators: [{
133
137
  type: Component,
134
138
  args: [{ template: '' }]
135
139
  }], propDecorators: { type: [{
@@ -150,6 +154,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
150
154
  type: Input
151
155
  }], extraFooter: [{
152
156
  type: Input
157
+ }], disabledDate: [{
158
+ type: Input
159
+ }], disabledTime: [{
160
+ type: Input
153
161
  }], nodeEmit: [{
154
162
  type: Output
155
163
  }] } });
@@ -269,8 +277,8 @@ export class XPickerDateProperty extends XProperty {
269
277
  this.rangeDateClick = new EventEmitter();
270
278
  }
271
279
  }
272
- /** @nocollapse */ XPickerDateProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
273
- /** @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", rangeHover: "rangeHover", 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 });
280
+ /** @nocollapse */ XPickerDateProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerDateProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
281
+ /** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", 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", rangeHover: "rangeHover", rangeValue: "rangeValue", rangeType: "rangeType", disabledDate: "disabledDate" }, 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 });
274
282
  __decorate([
275
283
  XInputBoolean()
276
284
  ], XPickerDateProperty.prototype, "showHeader", void 0);
@@ -292,7 +300,7 @@ __decorate([
292
300
  __decorate([
293
301
  XInputBoolean()
294
302
  ], XPickerDateProperty.prototype, "rangeHover", void 0);
295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, decorators: [{
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerDateProperty, decorators: [{
296
304
  type: Component,
297
305
  args: [{ template: '' }]
298
306
  }], propDecorators: { type: [{
@@ -321,6 +329,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
321
329
  type: Input
322
330
  }], rangeType: [{
323
331
  type: Input
332
+ }], disabledDate: [{
333
+ type: Input
324
334
  }], typeChange: [{
325
335
  type: Output
326
336
  }], modelChange: [{
@@ -429,8 +439,8 @@ export class XPickerMonthProperty extends XProperty {
429
439
  this.rangeDateClick = new EventEmitter();
430
440
  }
431
441
  }
432
- /** @nocollapse */ XPickerMonthProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerMonthProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
433
- /** @nocollapse */ XPickerMonthProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerMonthProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", monthTemp: "monthTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", nextYearBtn: "nextYearBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
442
+ /** @nocollapse */ XPickerMonthProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerMonthProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
443
+ /** @nocollapse */ XPickerMonthProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XPickerMonthProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", monthTemp: "monthTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", nextYearBtn: "nextYearBtn", rangeValue: "rangeValue", rangeType: "rangeType", disabledDate: "disabledDate" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
434
444
  __decorate([
435
445
  XInputBoolean()
436
446
  ], XPickerMonthProperty.prototype, "showHeader", void 0);
@@ -443,7 +453,7 @@ __decorate([
443
453
  __decorate([
444
454
  XInputBoolean()
445
455
  ], XPickerMonthProperty.prototype, "nextYearBtn", void 0);
446
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerMonthProperty, decorators: [{
456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerMonthProperty, decorators: [{
447
457
  type: Component,
448
458
  args: [{ template: '' }]
449
459
  }], propDecorators: { type: [{
@@ -466,6 +476,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
466
476
  type: Input
467
477
  }], rangeType: [{
468
478
  type: Input
479
+ }], disabledDate: [{
480
+ type: Input
469
481
  }], modelChange: [{
470
482
  type: Output
471
483
  }], typeChange: [{
@@ -579,8 +591,8 @@ export class XPickerYearProperty extends XProperty {
579
591
  this.rangeDateClick = new EventEmitter();
580
592
  }
581
593
  }
582
- /** @nocollapse */ XPickerYearProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerYearProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
583
- /** @nocollapse */ XPickerYearProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerYearProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", yearTemp: "yearTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", nextYearBtn: "nextYearBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", startChange: "startChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
594
+ /** @nocollapse */ XPickerYearProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerYearProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
595
+ /** @nocollapse */ XPickerYearProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XPickerYearProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", yearTemp: "yearTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", nextYearBtn: "nextYearBtn", rangeValue: "rangeValue", rangeType: "rangeType", disabledDate: "disabledDate" }, outputs: { modelChange: "modelChange", typeChange: "typeChange", startChange: "startChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
584
596
  __decorate([
585
597
  XInputBoolean()
586
598
  ], XPickerYearProperty.prototype, "showHeader", void 0);
@@ -593,7 +605,7 @@ __decorate([
593
605
  __decorate([
594
606
  XInputBoolean()
595
607
  ], XPickerYearProperty.prototype, "nextYearBtn", void 0);
596
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerYearProperty, decorators: [{
608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XPickerYearProperty, decorators: [{
597
609
  type: Component,
598
610
  args: [{ template: '' }]
599
611
  }], propDecorators: { type: [{
@@ -616,6 +628,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
616
628
  type: Input
617
629
  }], rangeType: [{
618
630
  type: Input
631
+ }], disabledDate: [{
632
+ type: Input
619
633
  }], modelChange: [{
620
634
  type: Output
621
635
  }], typeChange: [{
@@ -637,4 +651,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
637
651
  }], rangeDateClick: [{
638
652
  type: Output
639
653
  }] } });
640
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBR1QsV0FBVyxFQUdYLFlBQVksRUFHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUEwQjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQTBCeEM7OztXQUdHO1FBQ3NCLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBTS9EOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ2pEOzttSUE5Q1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsNFJBRFQsRUFBRTtBQVdvQztJQUFqRCxXQUFXLENBQVMsYUFBYSxFQUFFLFlBQVksQ0FBQzttREFBaUI7QUFLTDtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtzREFBc0I7QUFLN0I7SUFBcEQsV0FBVyxDQUFVLGFBQWEsRUFBRSxjQUFjLENBQUM7c0RBQXFCO0FBSzVCO0lBQTVDLFdBQVcsQ0FBUSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lEQUF1QjtBQUtOO0lBQTVELGFBQWEsRUFBRTtJ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QVksRUFBYSxDQUFDO0tBQzFEOzttSUFyR1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsa29CQURULEVBQUU7QUEwQkc7SUFBaEIsYUFBYSxFQUFFO3VEQUE2QjtBQUs1QjtJQUFoQixhQUFhLEVBQUU7d0RBQXdCO0FBS3ZCO0lBQWhCLGFBQWEsRUFBRTt3REFBOEI7QUFLN0I7SUFBaEIsYUFBYSxFQUFFO3dEQUE4QjsyRkF4QzVDLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS29CLFVBQVU7c0JBQW5DLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGFBQWE7c0JBQXRCLE1BQU07Z0JBS0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUtHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFLRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhQcm9wZXJ0eSxcclxuICBYQm9vbGVhbixcclxuICBYQ29ybmVyLFxyXG4gIFhXaXRoQ29uZmlnLFxyXG4gIFhTaXplLFxyXG4gIFhUZW1wbGF0ZSxcclxuICBYRGF0YUNvbnZlcnQsXHJcbiAgWERhdGEsXHJcbiAgWElkZW50aXR5UHJvcGVydHlcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDb250cm9sVmFsdWVBY2Nlc3NvciwgWEZvcm1PcHRpb24gfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuLyoqXHJcbiAqIERhdGVQaWNrZXJcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1waWNrZXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVBpY2tlclByZWZpeCA9ICd4LWRhdGUtcGlja2VyJztcclxuY29uc3QgWF9DT05GSUdfTkFNRSA9ICdkYXRlUGlja2VyJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlclByb3BlcnR5IGV4dGVuZHMgWENvbnRyb2xWYWx1ZUFjY2Vzc29yPGFueT4gaW1wbGVtZW50cyBYRGF0ZVBpY2tlck9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICAvKipcclxuICAgKiBAemhfQ04g5qC85byP5YyW57G75Z6LXHJcbiAgICogQGVuX1VTIEZvcm1hdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9DT05GSUdfTkFNRSwgJ3l5eXktTU0tZGQnKSBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgY2xlYXJhYmxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleekuuaWueS9jVxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHBvc2l0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhDb3JuZXI+KFhfQ09ORklHX05BTUUsICdib3R0b20tc3RhcnQnKSBwbGFjZW1lbnQ/OiBYQ29ybmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYU2l6ZT4oWF9DT05GSUdfTkFNRSwgJ21lZGl1bScpIG92ZXJyaWRlIHNpemUhOiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L655qGGXHJcbiAgICogQGVuX1VTIERpc3BsYXkgQm9yZGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIGJvcmRlcmVkITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW/q+aNt+mAieaLqeaMiemSru+8jOiHquWumuS5ieaIluebtOaOpeiuvue9ruS7iuWkqe+8iHRvZGF577yJLOaYqOWkqe+8iHllc3RlcmRhee+8iSzmmI7lpKnvvIh0b21vcnJvd++8iVxyXG4gICAqIEBlbl9VUyBRdWljayBzZWxlY3Rpb24gYnV0dG9uLCBzdXBwb3J0IHRvZGF5LCB5ZXN0ZXJkYXksIHRvbW9ycm93XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHByZXNldDogWERhdGE8WERhdGVQaWNrZXJQcmVzZXQ+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmhteiEmlxyXG4gICAqIEBlbl9VUyBGb290ZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBleHRyYUZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbm9kZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVQaWNrZXIgT3B0aW9uXHJcbiAqIEB1bmRvY3VtZW50IHRydWVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJPcHRpb24gZXh0ZW5kcyBYRm9ybU9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBDaG9vc2UgYSB0eXBlXHJcbiAgICovXHJcbiAgdHlwZT86IFhEYXRlUGlja2VyVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qC85byP5YyW57G75Z6LXHJcbiAgICogQGVuX1VTIEZvcm1hdCB0eXBlXHJcbiAgICovXHJcbiAgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgY2xlYXJhYmxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleekuuaWueS9jVxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHBvc2l0aW9uXHJcbiAgICovXHJcbiAgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBzaXplPzogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIGJvcmRlcmVkPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWJjee9ruagh+etvlxyXG4gICAqIEBlbl9VUyBCZWZvcmUgbGFiZWxcclxuICAgKi9cclxuICBiZWZvcmU/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWQjue9ruagh+etvlxyXG4gICAqIEBlbl9VUyBBZnRlciBsYWJlbFxyXG4gICAqL1xyXG4gIGFmdGVyPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnngrnlh7vnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIG5vZGVDbGljaz86ICh2YWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xyXG59XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlXHJcbiAqIEBzZWxlY3RvciB4LWRhdGUtcmFuZ2VcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVJhbmdlUHJlZml4ID0gJ3gtZGF0ZS1yYW5nZSc7XHJcbmNvbnN0IFhfQ09ORklHX1JBTkdFX05BTUUgPSAnZGF0ZVJhbmdlJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUmFuZ2UgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUmFuZ2VQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3Nvcjxhbnk+IGltcGxlbWVudHMgWERhdGVSYW5nZU9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICAvKipcclxuICAgKiBAemhfQ04g5qC85byP5YyW57G75Z6LXHJcbiAgICogQGVuX1VTIEZvcm1hdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9DT05GSUdfUkFOR0VfTkFNRSwgJ3l5eXktTU0tZGQnKSBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX1JBTkdFX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgY2xlYXJhYmxlPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleekuuaWueS9jVxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHBvc2l0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhDb3JuZXI+KFhfQ09ORklHX1JBTkdFX05BTUUsICdib3R0b20tc3RhcnQnKSBwbGFjZW1lbnQ/OiBYQ29ybmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYU2l6ZT4oWF9DT05GSUdfUkFOR0VfTkFNRSwgJ21lZGl1bScpIG92ZXJyaWRlIHNpemUhOiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L655qGGXHJcbiAgICogQGVuX1VTIERpc3BsYXkgQm9yZGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIGJvcmRlcmVkITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW/q+aNt+mAieaLqeaMiemSru+8jOiHquWumuS5ieaIluebtOaOpeiuvue9ruacrOWRqO+8iHRoaXNXZWVr77yJ44CB5LiK5ZGo77yIbGFzdFdlZWvvvInjgIHkuIvlkajvvIhuZXh0V2Vla++8ieOAgeacrOaciO+8iHRoaXNNb250aO+8ieOAgeS4iuS4gOaciO+8iGxhc3RNb250aO+8ieOAgeS4i+S4gOaciO+8iG5leHRNb250aO+8ieOAgeacrOW5tO+8iHRoaXNZZWFy77yJ44CB5Y675bm077yIbGFzdFllYXLvvInjgIHmmI7lubTvvIhuZXh0WWVhcu+8iVxyXG4gICAqIEBlbl9VUyBRdWljayBzZWxlY3Rpb24gYnV0dG9uLCBzdXBwb3J0IHRoaXNXZWVrLCBsYXN0V2VlaywgbmV4dFdlZWssIHRoaXNNb250aCwgbGFzdE1vbnRoLCBuZXh0TW9udGgsIHRoaXNZZWFyLCBsYXN0WWVhciwgbmV4dFllYXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWERhdGFDb252ZXJ0KCkgcHJlc2V0OiBYRGF0YTxYRGF0ZVJhbmdlUHJlc2V0PiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDml6XmnJ/mj5DnpLrkv6Hmga9cclxuICAgKiBAZW5fVVMgUGxhY2Vob2xkZXIgb2YgZGF0ZSBpbnB1dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIHBsYWNlaG9sZGVyPzogc3RyaW5nW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmhteiEmlxyXG4gICAqIEBlbl9VUyBGb290ZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBleHRyYUZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbm9kZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcltdPigpO1xyXG59XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIE9wdGlvblxyXG4gKiBAdW5kb2N1bWVudCB0cnVlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlUmFuZ2VPcHRpb24gZXh0ZW5kcyBYRm9ybU9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIHRhYiDplK7mjqfliLbmrKHluo9cclxuICAgKiBAZW5fVVMgVGFiIGtleSBjb250cm9sIG9yZGVyXHJcbiAgICovXHJcbiAgdGFiaW5kZXg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn+aPkOekuuS/oeaBr1xyXG4gICAqIEBlbl9VUyBQbGFjZWhvbGRlciBvZiBkYXRlIGlucHV0XHJcbiAgICovXHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq5cclxuICogQGVuX1VTIFF1aWNrIHNlbGVjdGlvbiBidXR0b25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJQcmVzZXQgZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWHveaVsFxyXG4gICAqIEBlbl9VUyBDdXN0b20gZnVuY3Rpb25cclxuICAgKi9cclxuICBmdW5jOiAoKSA9PiBEYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOW/q+aNt+iMg+WbtOmAieaLqeaMiemSrlxyXG4gKiBAZW5fVVMgUXVpY2sgcmFuZ2Ugc2VsZWN0aW9uIGJ1dHRvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVJhbmdlUHJlc2V0IGV4dGVuZHMgWElkZW50aXR5UHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlh73mlbBcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGZ1bmN0aW9uXHJcbiAgICovXHJcbiAgZnVuYzogKCkgPT4gRGF0ZVtdO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaXpeacn+mAieaLqeexu+Wei1xyXG4gKiBAZW5fVVMgRGF0ZSBzZWxlY3Rpb24gdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnIHwgJ21vbnRoJyB8ICd5ZWFyJyB8ICdkYXRlLXRpbWUnIHwgJ2RhdGUtaG91cicgfCAnZGF0ZS1taW51dGUnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDml6XmnJ/mlbDmja7nsbvlnotcclxuICogQGVuX1VTIERhdGUgZGF0YSB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlck1vZGVsVHlwZSA9ICdkYXRlJyB8ICdudW1iZXInIHwgJ3N0cmluZyc7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1waWNrZXItcG9ydGFsXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQb3J0YWxQcmVmaXggPSAneC1kYXRlLXBpY2tlci1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1yYW5nZS1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVJhbmdlUG9ydGFsUHJlZml4ID0gJ3gtZGF0ZS1yYW5nZS1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlckRhdGVcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLWRhdGVcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyRGF0ZVByZWZpeCA9ICd4LXBpY2tlci1kYXRlJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJEYXRlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyRGF0ZVByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGUgfCBudWxsO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDml6XmnJ/mmL7npLrmqKHmnb9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5IHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGF0ZVRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrliIfmjaLmjInpkq5cclxuICAgKiBAZW5fVVMgRGlzcGxheSBzd2l0Y2ggYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBzaG93SGVhZGVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOmAieaLqVxyXG4gICAqIEBlbl9VUyBSYW5nZSBwaWNrZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHJhbmdlUGlja2VyPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS4gOW5tFxyXG4gICAqIEBlbl9VUyBMYXN0IHllYXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhc3RZZWFyQnRuOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuaciFxyXG4gICAqIEBlbl9VUyBMYXN0IG1vbnRoXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXN0TW9udGhCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiL5LiA5bm0XHJcbiAgICogQGVuX1VTIE5leHQgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5pyIXHJcbiAgICogQGVuX1VTIE5leHQgbW9udGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG5leHRNb250aEJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7QgaG92ZXIg5pWI5p6cXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIHN0eWxlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSByYW5nZUhvdmVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+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/lvIDlp4sv57uT5p2f5pel5pyfXHJcbiAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyUmFuZ1R5cGUgPSAnc3RhcnQnIHwgJ2VuZCc7XHJcblxyXG4vKipcclxuICogUGlja2VyTW9udGhcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLW1vbnRoXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFBpY2tlck1vbnRoUHJlZml4ID0gJ3gtcGlja2VyLW1vbnRoJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJNb250aCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFBpY2tlck1vbnRoUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZSB8IG51bGw7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaciOS7veaYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBNb250aCBkaXNwbGF5IHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbW9udGhUZW1wPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TpgInmi6lcclxuICAgKiBAZW5fVVMgUmFuZ2UgcGlja2VyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSByYW5nZVBpY2tlcj86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrkuIDlubRcclxuICAgKiBAZW5fVVMgTGFzdCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXN0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TmnIjku71cclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJhbmdlVmFsdWU6IChudW1iZXIgfCBudWxsKVtdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieaLqeeahOaYr+W8gOWniy/nu5PmnZ/ml6XmnJ9cclxuICAgKiBAZW5fVVMgVGhlIGN1cnJlbnQgY2hvaWNlIGlzIHRoZSBzdGFydCAvIGVuZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VUeXBlITogWERhdGVQaWNrZXJSYW5nVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7Tlj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2NvcGUgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieW5tOeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBZZWFyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB5ZWFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaciOeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBNb250aCBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65pyI5Lu95LqL5Lu2XHJcbiAgICogQGVuX1VTIGRpc3BsYXkgZGF0ZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBkaXNwbGF5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TmnIjku70gbW91c2VlbnRlciDkuovku7ZcclxuICAgKiBAZW5fVVMgRGF0ZSBtb3VzZWVudGVyIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlVGRNb3VzZWVudGVyID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZUNlbGw+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaciOS7vSBtb3VzZWxlYXZlIOS6i+S7tlxyXG4gICAqIEBlbl9VUyBEYXRlIG1vdXNlbGVhdmUgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VUZE1vdXNlbGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05Lit55qE5pyI5Lu954K55Ye75LqL5Lu2XHJcbiAgICogQGVuX1VTIFJhbmdlIGRhdGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VEYXRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBpY2tlclllYXJcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLXllYXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyWWVhclByZWZpeCA9ICd4LXBpY2tlci15ZWFyJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJZZWFyIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyWWVhclByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGUgfCBudWxsO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlubTku73mmL7npLrmqKHmnb9cclxuICAgKiBAZW5fVVMgTW9udGggZGlzcGxheSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHllYXJUZW1wPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TpgInmi6lcclxuICAgKiBAZW5fVVMgUmFuZ2UgcGlja2VyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSByYW5nZVBpY2tlcj86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrkuIDlubRcclxuICAgKiBAZW5fVVMgTGFzdCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXN0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlubTku71cclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJhbmdlVmFsdWU6IChudW1iZXIgfCBudWxsKVtdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieaLqeeahOaYr+W8gOWniy/nu5PmnZ/ml6XmnJ9cclxuICAgKiBAZW5fVVMgVGhlIGN1cnJlbnQgY2hvaWNlIGlzIHRoZSBzdGFydCAvIGVuZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VUeXBlITogWERhdGVQaWNrZXJSYW5nVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlp4vlubTku73lj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU3RhcnQgeWVhciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc3RhcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNjb3BlIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInlubTnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgWWVhciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgeWVhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmnIjnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTW9udGggY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuaciOS7veS6i+S7tlxyXG4gICAqIEBlbl9VUyBkaXNwbGF5IGRhdGUgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgZGlzcGxheUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pyI5Lu9IG1vdXNlZW50ZXIg5LqL5Lu2XHJcbiAgICogQGVuX1VTIERhdGUgbW91c2VlbnRlciBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZVRkTW91c2VlbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TmnIjku70gbW91c2VsZWF2ZSDkuovku7ZcclxuICAgKiBAZW5fVVMgRGF0ZSBtb3VzZWxlYXZlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlVGRNb3VzZWxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZUNlbGw+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOS4reeahOaciOS7veeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlRGF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZUNlbGw+KCk7XHJcbn1cclxuIl19
654
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBR1QsV0FBVyxFQUdYLFlBQVksRUFHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUEwQjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQTBCeEM7OztXQUdHO1FBQ3NCLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBZ0IvRDs7O1dBR0c7UUFDTyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQUNqRDs7bUlBeERZLG1CQUFtQjt1SEFBbkIsbUJBQW1CLHdWQURULEVBQUU7QUFXb0M7SUFBakQsV0FBVyxDQUFTLGFBQWEsRUFBRSxZQUFZLENBQUM7bURBQWlCO0FBS0w7SUFBNUQsV0FBVyxDQUFXLGFBQWEsRUFBRSxJQUFJLENBQUM7SUFBRSxhQUFhLEVBQUU7c0RBQXNCO0FBSzdCO0lBQXBELFdBQVcsQ0FBVSxhQUFhLEVBQUUsY0FBYyxDQUFDO3NEQUFxQjtBQUs1QjtJQUE1QyxXQUFXLENBQVEsYUFBYSxFQUFFLFFBQVEsQ0FBQztpREFBdUI7QUFLTjtJQUE1RCxhQUFhLEVBQUU7SUFBRSxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztxREFBcUI7QUFLakU7SUFBZixZQUFZLEVBQUU7bURBQXVDOzJGQW5DcEQsbUJBQW1CO2tCQUQvQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNaEIsSUFBSTtzQkFBWixLQUFLO2dCQUtxRCxNQUFNO3NCQUFoRSxLQUFLO2dCQUtnRSxTQUFTO3NCQUE5RSxLQUFLO2dCQUt3RCxTQUFTO3NCQUF0RSxLQUFLO2dCQUt5RCxJQUFJO3NCQUFsRSxLQUFLO2dCQUtnRSxRQUFRO3NCQUE3RSxLQUFLO2dCQUttQixNQUFNO3NCQUE5QixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtJLFFBQVE7c0JBQWpCLE1BQU07O0FBdURUOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFDL0MsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUM7QUFFeEM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEscUJBQTBCO0lBRGxFOztRQUVFOzs7V0FHRztRQUNNLFNBQUksR0FBb0IsTUFBTSxDQUFDO1FBMEJ4Qzs7O1dBR0c7UUFDc0IsV0FBTSxHQUE0QixFQUFFLENBQUM7UUFxQjlEOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO0tBQ25EOztrSUE3RFksa0JBQWtCO3NIQUFsQixrQkFBa0Isb1hBRFIsRUFBRTtBQVcwQztJQUF2RCxXQUFXLENBQVMsbUJBQW1CLEVBQUUsWUFBWSxDQUFDO2tEQUFpQjtBQUtMO0lBQWxFLFdBQVcsQ0FBVyxtQkFBbUIsRUFBRSxJQUFJLENBQUM7SUFBRSxhQUFhLEVBQUU7cURBQXNCO0FBSzdCO0lBQTFELFdBQVcsQ0FBVSxtQkFBbUIsRUFBRSxjQUFjLENBQUM7cURBQXFCO0FBSzVCO0lBQWxELFdBQVcsQ0FBUSxtQkFBbUIsRUFBRSxRQUFRLENBQUM7Z0RBQXVCO0FBS1o7SUFBNUQsYUFBYSxFQUFFO0lBQUUsV0FBVyxDQUFXLGFBQWEsRUFBRSxJQUFJLENBQUM7b0RBQXFCO0FBS2pFO0lBQWYsWUFBWSxFQUFFO2tEQUFzQzsyRkFuQ25ELGtCQUFrQjtrQkFEOUIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLMkQsTUFBTTtzQkFBdEUsS0FBSztnQkFLc0UsU0FBUztzQkFBcEYsS0FBSztnQkFLOEQsU0FBUztzQkFBNUUsS0FBSztnQkFLK0QsSUFBSTtzQkFBeEUsS0FBSztnQkFLZ0UsUUFBUTtzQkFBN0UsS0FBSztnQkFLbUIsTUFBTTtzQkFBOUIsS0FBSztnQkFLWSxXQUFXO3NCQUE1QixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtJLFFBQVE7c0JBQWpCLE1BQU07O0FBMEZUOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsQ0FBQztBQUU5RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7QUFFNUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztBQUVqRDs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFTO0lBRGxEOztRQUVFOzs7V0FHRztRQUNNLFNBQUksR0FBb0IsTUFBTSxDQUFDO1FBQ3hDOzs7V0FHRztRQUNNLFlBQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBVzlCOzs7V0FHRztRQUN1QixlQUFVLEdBQWEsSUFBSSxDQUFDO1FBTXREOzs7V0FHRztRQUN1QixnQkFBVyxHQUFhLElBQUksQ0FBQztRQUN2RDs7O1dBR0c7UUFDdUIsaUJBQVksR0FBYSxJQUFJLENBQUM7UUFDeEQ7OztXQUdHO1FBQ3VCLGdCQUFXLEdBQWEsSUFBSSxDQUFDO1FBQ3ZEOzs7V0FHRztRQUN1QixpQkFBWSxHQUFhLElBQUksQ0FBQztRQUN4RDs7O1dBR0c7UUFDdUIsZUFBVSxHQUFhLElBQUksQ0FBQztRQUN0RDs7O1dBR0c7UUFDTSxlQUFVLEdBQXNCLEVBQUUsQ0FBQztRQVc1Qzs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDM0Q7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pEOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNuRDs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7OztXQUdHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ25EOzs7V0FHRztRQUNPLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDNUQ7OztXQUdHO1FBQ08sc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUM1RDs7O1dBR0c7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7S0FDMUQ7O21JQXBIWSxtQkFBbUI7dUhBQW5CLG1CQUFtQiwwdEJBRFQsRUFBRTtBQTBCRztJQUFoQixhQUFhLEVBQUU7dURBQTZCO0FBSzVCO0lBQWhCLGFBQWEsRUFBRTt3REFBd0I7QUFLdkI7SUFBaEIsYUFBYSxFQUFFO3dEQUE4QjtBQUs3QjtJQUFoQixhQUFhLEVBQUU7eURBQStCO0FBSzlCO0lBQWhCLGFBQWEsRUFBRTt3REFBOEI7QUFLN0I7SUFBaEIsYUFBYSxFQUFFO3lEQUErQjtBQUs5QjtJQUFoQixhQUFhLEVBQUU7dURBQTZCOzJGQXZEM0MsbUJBQW1CO2tCQUQvQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNaEIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLb0IsWUFBWTtzQkFBckMsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLb0IsWUFBWTtzQkFBckMsS0FBSztnQkFLb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFLRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLSSxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBS0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUtHLGNBQWM7c0JBQXZCLE1BQU07O0FBd0lUOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUVuRDs7R0FFRztBQUVILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxTQUFTO0lBRG5EOztRQUVFOzs7V0FHRztRQUNNLFNBQUksR0FBb0IsTUFBTSxDQUFDO1FBQ3hDOzs7V0FHRztRQUNNLFlBQU8sR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBV3BDOzs7V0FHRztRQUN1QixlQUFVLEdBQWEsSUFBSSxDQUFDO1FBTXREOzs7V0FHRztRQUN1QixnQkFBVyxHQUFhLElBQUksQ0FBQztRQUN2RDs7O1dBR0c7UUFDdUIsZ0JBQVcsR0FBYSxJQUFJLENBQUM7UUFDdkQ7OztXQUdHO1FBQ00sZUFBVSxHQUFzQixFQUFFLENBQUM7UUFXNUM7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pEOzs7V0FHRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUMzRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7OztXQUdHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEQ7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25EOzs7V0FHRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuRDs7O1dBR0c7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQzVEOzs7V0FHRztRQUNPLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDNUQ7OztXQUdHO1FBQ08sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO0tBQzFEOztvSUFyR1ksb0JBQW9CO3dIQUFwQixvQkFBb0Isc29CQURWLEVBQUU7QUEwQkc7SUFBaEIsYUFBYSxFQUFFO3dEQUE2QjtBQUs1QjtJQUFoQixhQUFhLEVBQUU7eURBQXdCO0FBS3ZCO0lBQWhCLGFBQWEsRUFBRTt5REFBOEI7QUFLN0I7SUFBaEIsYUFBYSxFQUFFO3lEQUE4QjsyRkF4QzVDLG9CQUFvQjtrQkFEaEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS29CLFVBQVU7c0JBQW5DLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS29CLFdBQVc7c0JBQXBDLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGFBQWE7c0JBQXRCLE1BQU07Z0JBS0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUtHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFLRyxjQUFjO3NCQUF2QixNQUFNOztBQUdUOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFFakQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBUztJQURsRDs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQUN4Qzs7O1dBR0c7UUFDTSxZQUFPLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQVdwQzs7O1dBR0c7UUFDdUIsZUFBVSxHQUFhLElBQUksQ0FBQztRQU10RDs7O1dBR0c7UUFDdUIsZ0JBQVcsR0FBYSxJQUFJLENBQUM7UUFDdkQ7OztXQUdHO1FBQ3VCLGdCQUFXLEdBQWEsSUFBSSxDQUFDO1FBQ3ZEOzs7V0FHRztRQUNNLGVBQVUsR0FBc0IsRUFBRSxDQUFDO1FBVzVDOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNqRDs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDM0Q7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25EOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNuRDs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNsRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7OztXQUdHO1FBQ08sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ25EOzs7V0FHRztRQUNPLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDNUQ7OztXQUdHO1FBQ08sc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUM1RDs7O1dBR0c7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7S0FDMUQ7O21JQTFHWSxtQkFBbUI7dUhBQW5CLG1CQUFtQixncUJBRFQsRUFBRTtBQTBCRztJQUFoQixhQUFhLEVBQUU7dURBQTZCO0FBSzVCO0lBQWhCLGFBQWEsRUFBRTt3REFBd0I7QUFLdkI7SUFBaEIsYUFBYSxFQUFFO3dEQUE4QjtBQUs3QjtJQUFoQixhQUFhLEVBQUU7d0RBQThCOzJGQXhDNUMsbUJBQW1CO2tCQUQvQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNaEIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLRyxVQUFVO3NCQUFsQixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxhQUFhO3NCQUF0QixNQUFNO2dCQUtHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFLRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBS0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWElucHV0Qm9vbGVhbixcclxuICBYUHJvcGVydHksXHJcbiAgWEJvb2xlYW4sXHJcbiAgWENvcm5lcixcclxuICBYV2l0aENvbmZpZyxcclxuICBYU2l6ZSxcclxuICBYVGVtcGxhdGUsXHJcbiAgWERhdGFDb252ZXJ0LFxyXG4gIFhEYXRhLFxyXG4gIFhJZGVudGl0eVByb3BlcnR5XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVGVtcGxhdGVSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29udHJvbFZhbHVlQWNjZXNzb3IsIFhGb3JtT3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyXHJcbiAqIEBzZWxlY3RvciB4LWRhdGUtcGlja2VyXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQcmVmaXggPSAneC1kYXRlLXBpY2tlcic7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAnZGF0ZVBpY2tlcic7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWERhdGVQaWNrZXJQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3Nvcjxhbnk+IGltcGxlbWVudHMgWERhdGVQaWNrZXJPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX05BTUUsICd5eXl5LU1NLWRkJykgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQ29ybmVyPihYX0NPTkZJR19OQU1FLCAnYm90dG9tLXN0YXJ0JykgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX05BTUUsICdtZWRpdW0nKSBvdmVycmlkZSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq7vvIzoh6rlrprkuYnmiJbnm7TmjqXorr7nva7ku4rlpKnvvIh0b2Rhee+8iSzmmKjlpKnvvIh5ZXN0ZXJkYXnvvIks5piO5aSp77yIdG9tb3Jyb3fvvIlcclxuICAgKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvbiwgc3VwcG9ydCB0b2RheSwgeWVzdGVyZGF5LCB0b21vcnJvd1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBwcmVzZXQ6IFhEYXRhPFhEYXRlUGlja2VyUHJlc2V0PiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpobXohJpcclxuICAgKiBAZW5fVVMgRm9vdGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgZXh0cmFGb290ZXI/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEaXNhYmxlZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWREYXRlPzogWERhdGVQaWNrZXJEaXNhYmxlZERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOeahOaXtumXtFxyXG4gICAqIEBlbl9VUyBEaXNhYmxlZCB0aW1lXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWRUaW1lPzogWERhdGVQaWNrZXJEaXNhYmxlZFRpbWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIE9wdGlvblxyXG4gKiBAdW5kb2N1bWVudCB0cnVlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlUGlja2VyT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgQ2hvb3NlIGEgdHlwZVxyXG4gICAqL1xyXG4gIHR5cGU/OiBYRGF0ZVBpY2tlclR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIHBsYWNlbWVudD86IFhDb3JuZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgc2l6ZT86IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovrnmoYZcclxuICAgKiBAZW5fVVMgRGlzcGxheSBCb3JkZXJcclxuICAgKi9cclxuICBib3JkZXJlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliY3nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQmVmb3JlIGxhYmVsXHJcbiAgICovXHJcbiAgYmVmb3JlPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlkI7nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQWZ0ZXIgbGFiZWxcclxuICAgKi9cclxuICBhZnRlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBub2RlQ2xpY2s/OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZVxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXJhbmdlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVSYW5nZVByZWZpeCA9ICd4LWRhdGUtcmFuZ2UnO1xyXG5jb25zdCBYX0NPTkZJR19SQU5HRV9OQU1FID0gJ2RhdGVSYW5nZSc7XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVJhbmdlUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55PiBpbXBsZW1lbnRzIFhEYXRlUmFuZ2VPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX1JBTkdFX05BTUUsICd5eXl5LU1NLWRkJykgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19SQU5HRV9OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQ29ybmVyPihYX0NPTkZJR19SQU5HRV9OQU1FLCAnYm90dG9tLXN0YXJ0JykgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX1JBTkdFX05BTUUsICdtZWRpdW0nKSBvdmVycmlkZSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq7vvIzoh6rlrprkuYnmiJbnm7TmjqXorr7nva7mnKzlkajvvIh0aGlzV2Vla++8ieOAgeS4iuWRqO+8iGxhc3RXZWVr77yJ44CB5LiL5ZGo77yIbmV4dFdlZWvvvInjgIHmnKzmnIjvvIh0aGlzTW9udGjvvInjgIHkuIrkuIDmnIjvvIhsYXN0TW9udGjvvInjgIHkuIvkuIDmnIjvvIhuZXh0TW9udGjvvInjgIHmnKzlubTvvIh0aGlzWWVhcu+8ieOAgeWOu+W5tO+8iGxhc3RZZWFy77yJ44CB5piO5bm077yIbmV4dFllYXLvvIlcclxuICAgKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvbiwgc3VwcG9ydCB0aGlzV2VlaywgbGFzdFdlZWssIG5leHRXZWVrLCB0aGlzTW9udGgsIGxhc3RNb250aCwgbmV4dE1vbnRoLCB0aGlzWWVhciwgbGFzdFllYXIsIG5leHRZZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHByZXNldDogWERhdGE8WERhdGVSYW5nZVByZXNldD4gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pel5pyf5o+Q56S65L+h5oGvXHJcbiAgICogQGVuX1VTIFBsYWNlaG9sZGVyIG9mIGRhdGUgaW5wdXRcclxuICAgKi9cclxuICBASW5wdXQoKSBvdmVycmlkZSBwbGFjZWhvbGRlcj86IHN0cmluZ1tdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpobXohJpcclxuICAgKiBAZW5fVVMgRm9vdGVyXHJcbiAgICovXHJcbiAgQElucHV0KCkgZXh0cmFGb290ZXI/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEaXNhYmxlZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWREYXRlPzogWERhdGVQaWNrZXJEaXNhYmxlZERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOeahOaXtumXtFxyXG4gICAqIEBlbl9VUyBEaXNhYmxlZCB0aW1lXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWRUaW1lPzogWERhdGVQaWNrZXJEaXNhYmxlZFRpbWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVJhbmdlT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0YWIg6ZSu5o6n5Yi25qyh5bqPXHJcbiAgICogQGVuX1VTIFRhYiBrZXkgY29udHJvbCBvcmRlclxyXG4gICAqL1xyXG4gIHRhYmluZGV4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDml6XmnJ/mj5DnpLrkv6Hmga9cclxuICAgKiBAZW5fVVMgUGxhY2Vob2xkZXIgb2YgZGF0ZSBpbnB1dFxyXG4gICAqL1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g56aB55So5pel5pyf55qE6Ieq5a6a5LmJ57G75Z6LXHJcbiAqIEBlbl9VUyDnpoHnlKjml6XmnJ/nmoToh6rlrprkuYnnsbvlnotcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyRGlzYWJsZWREYXRlID0gKGN1cnJlbnQ6IERhdGUpID0+IGJvb2xlYW47XHJcblxyXG4vKipcclxuICogQHpoX0NOIOemgeeUqOaXtumXtOeahOiHquWumuS5ieexu+Wei1xyXG4gKiBAZW5fVVMg56aB55So5pe26Ze055qE6Ieq5a6a5LmJ57G75Z6LXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlckRpc2FibGVkVGltZSA9ICh0eXBlPzogWERhdGVQaWNrZXJSYW5nVHlwZSkgPT4gWERhdGVQaWNrZXJEaXNhYmxlZFRpbWVGbjtcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g56aB55So5pe26Ze055qE6Ieq5a6a5LmJ5Ye95pWwXHJcbiAqIEBlbl9VUyDnpoHnlKjml7bpl7TnmoToh6rlrprkuYnlh73mlbBcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyRGlzYWJsZWRUaW1lRm4gPSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOWwj+aXtueahOiHquWumuS5ieWHveaVsFxyXG4gICAqIEBlbl9VUyDnpoHnlKjlsI/ml7bnmoToh6rlrprkuYnlh73mlbBcclxuICAgKi9cclxuICBkaXNhYmxlZEhvdXJzPzogKCkgPT4gbnVtYmVyW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOWIhumSn+eahOiHquWumuS5ieWHveaVsFxyXG4gICAqIEBlbl9VUyDnpoHnlKjliIbpkp/nmoToh6rlrprkuYnlh73mlbBcclxuICAgKi9cclxuICBkaXNhYmxlZE1pbnV0ZXM/OiAoKSA9PiBudW1iZXJbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55So56eS55qE6Ieq5a6a5LmJ5Ye95pWwXHJcbiAgICogQGVuX1VTIOemgeeUqOenkueahOiHquWumuS5ieWHveaVsFxyXG4gICAqL1xyXG4gIGRpc2FibGVkU2Vjb25kcz86ICgpID0+IG51bWJlcltdO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq5cclxuICogQGVuX1VTIFF1aWNrIHNlbGVjdGlvbiBidXR0b25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJQcmVzZXQgZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWHveaVsFxyXG4gICAqIEBlbl9VUyBDdXN0b20gZnVuY3Rpb25cclxuICAgKi9cclxuICBmdW5jOiAoKSA9PiBEYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOW/q+aNt+iMg+WbtOmAieaLqeaMiemSrlxyXG4gKiBAZW5fVVMgUXVpY2sgcmFuZ2Ugc2VsZWN0aW9uIGJ1dHRvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVJhbmdlUHJlc2V0IGV4dGVuZHMgWElkZW50aXR5UHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlh73mlbBcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGZ1bmN0aW9uXHJcbiAgICovXHJcbiAgZnVuYzogKCkgPT4gRGF0ZVtdO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaXpeacn+mAieaLqeexu+Wei1xyXG4gKiBAZW5fVVMgRGF0ZSBzZWxlY3Rpb24gdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJyB8ICdkYXRlLXRpbWUnIHwgJ2RhdGUtaG91cicgfCAnZGF0ZS1taW51dGUnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDml6XmnJ/mlbDmja7nsbvlnotcclxuICogQGVuX1VTIERhdGUgZGF0YSB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlck1vZGVsVHlwZSA9ICdkYXRlJyB8ICdudW1iZXInIHwgJ3N0cmluZyc7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1waWNrZXItcG9ydGFsXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQb3J0YWxQcmVmaXggPSAneC1kYXRlLXBpY2tlci1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1yYW5nZS1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVJhbmdlUG9ydGFsUHJlZml4ID0gJ3gtZGF0ZS1yYW5nZS1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlckRhdGVcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLWRhdGVcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyRGF0ZVByZWZpeCA9ICd4LXBpY2tlci1kYXRlJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJEYXRlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyRGF0ZVByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGUgfCBudWxsO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDml6XmnJ/mmL7npLrmqKHmnb9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5IHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGF0ZVRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrliIfmjaLmjInpkq5cclxuICAgKiBAZW5fVVMgRGlzcGxheSBzd2l0Y2ggYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBzaG93SGVhZGVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOmAieaLqVxyXG4gICAqIEBlbl9VUyBSYW5nZSBwaWNrZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHJhbmdlUGlja2VyPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS4gOW5tFxyXG4gICAqIEBlbl9VUyBMYXN0IHllYXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhc3RZZWFyQnRuOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuaciFxyXG4gICAqIEBlbl9VUyBMYXN0IG1vbnRoXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsYXN0TW9udGhCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiL5LiA5bm0XHJcbiAgICogQGVuX1VTIE5leHQgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5pyIXHJcbiAgICogQGVuX1VTIE5leHQgbW9udGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIG5leHRNb250aEJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7QgaG92ZXIg5pWI5p6cXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIHN0eWxlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSByYW5nZUhvdmVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacn1xyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VWYWx1ZTogKG51bWJlciB8IG51bGwpW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVR5cGUhOiBYRGF0ZVBpY2tlclJhbmdUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnpoHnlKjnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGlzYWJsZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkRGF0ZT86IFhEYXRlUGlja2VyRGlzYWJsZWREYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+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+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIGVuZCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlckVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit5pel5pyfXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgc2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55So5pel5pyfXHJcbiAgICogQGVuX1VTIERpc2FibGVkIGRhdGVcclxuICAgKi9cclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g57G75Z6LXHJcbiAgICogQGVuX1VTIFR5cGVcclxuICAgKi9cclxuICB0eXBlPzogWERhdGVQaWNrZXJUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnrKzlh6DlkahcclxuICAgKiBAZW5fVVMgV2Vla1xyXG4gICAqL1xyXG4gIHdlZWs/OiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gKiBAZW5fVVMgVGhlIGN1cnJlbnQgY2hvaWNlIGlzIHRoZSBzdGFydCAvIGVuZCBkYXRlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlclJhbmdUeXBlID0gJ3N0YXJ0JyB8ICdlbmQnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlck1vbnRoXHJcbiAqIEBzZWxlY3RvciB4LXBpY2tlci1tb250aFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJNb250aFByZWZpeCA9ICd4LXBpY2tlci1tb250aCc7XHJcblxyXG4vKipcclxuICogUGlja2VyTW9udGggUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJNb250aFByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGUgfCBudWxsO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmnIjku73mmL7npLrmqKHmnb9cclxuICAgKiBAZW5fVVMgTW9udGggZGlzcGxheSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vbnRoVGVtcD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu06YCJ5oupXHJcbiAgICogQGVuX1VTIFJhbmdlIHBpY2tlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgcmFuZ2VQaWNrZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5LiA5bm0XHJcbiAgICogQGVuX1VTIExhc3QgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGFzdFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiL5LiA5bm0XHJcbiAgICogQGVuX1VTIE5leHQgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pyI5Lu9XHJcbiAgICogQGVuX1VTIFJhbmdlIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVZhbHVlOiAobnVtYmVyIHwgbnVsbClbXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInmi6nnmoTmmK/lvIDlp4sv57uT5p2f5pel5pyfXHJcbiAgICogQGVuX1VTIFRoZSBjdXJyZW50IGNob2ljZSBpcyB0aGUgc3RhcnQgLyBlbmQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJhbmdlVHlwZSE6IFhEYXRlUGlja2VyUmFuZ1R5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEaXNhYmxlZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWREYXRlPzogWERhdGVQaWNrZXJEaXNhYmxlZERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4reeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTZWxlY3RlZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlUGlja2VyVHlwZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNjb3BlIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInlubTnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgWWVhciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgeWVhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmnIjnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTW9udGggY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vbnRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuaciOS7veS6i+S7tlxyXG4gICAqIEBlbl9VUyBkaXNwbGF5IGRhdGUgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgZGlzcGxheUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pyI5Lu9IG1vdXNlZW50ZXIg5LqL5Lu2XHJcbiAgICogQGVuX1VTIERhdGUgbW91c2VlbnRlciBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZVRkTW91c2VlbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TmnIjku70gbW91c2VsZWF2ZSDkuovku7ZcclxuICAgKiBAZW5fVVMgRGF0ZSBtb3VzZWxlYXZlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlVGRNb3VzZWxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZUNlbGw+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOS4reeahOaciOS7veeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHJhbmdlRGF0ZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZUNlbGw+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJZZWFyXHJcbiAqIEBzZWxlY3RvciB4LXBpY2tlci15ZWFyXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFBpY2tlclllYXJQcmVmaXggPSAneC1waWNrZXIteWVhcic7XHJcblxyXG4vKipcclxuICogUGlja2VyWWVhciBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFBpY2tlclllYXJQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S655qE5pel5pyfXHJcbiAgICogQGVuX1VTIERhdGUgZGlzcGxheWVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzcGxheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4reeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBTZWxlY3RlZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbW9kZWw/OiBEYXRlIHwgbnVsbDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bm05Lu95pi+56S65qih5p2/XHJcbiAgICogQGVuX1VTIE1vbnRoIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSB5ZWFyVGVtcD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu06YCJ5oupXHJcbiAgICogQGVuX1VTIFJhbmdlIHBpY2tlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgcmFuZ2VQaWNrZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5LiA5bm0XHJcbiAgICogQGVuX1VTIExhc3QgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGFzdFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiL5LiA5bm0XHJcbiAgICogQGVuX1VTIE5leHQgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05bm05Lu9XHJcbiAgICogQGVuX1VTIFJhbmdlIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVZhbHVlOiAobnVtYmVyIHwgbnVsbClbXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInmi6nnmoTmmK/lvIDlp4sv57uT5p2f5pel5pyfXHJcbiAgICogQGVuX1VTIFRoZSBjdXJyZW50IGNob2ljZSBpcyB0aGUgc3RhcnQgLyBlbmQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJhbmdlVHlwZSE6IFhEYXRlUGlja2VyUmFuZ1R5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOemgeeUqOeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEaXNhYmxlZCBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZWREYXRlPzogWERhdGVQaWNrZXJEaXNhYmxlZERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4reeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTZWxlY3RlZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlUGlja2VyVHlwZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5aeL5bm05Lu95Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFN0YXJ0IHllYXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHN0YXJ0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5bm055qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFllYXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5pyI55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE1vbnRoIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb250aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrmnIjku73kuovku7ZcclxuICAgKiBAZW5fVVMgZGlzcGxheSBkYXRlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGRpc3BsYXlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaciOS7vSBtb3VzZWVudGVyIOS6i+S7tlxyXG4gICAqIEBlbl9VUyBEYXRlIG1vdXNlZW50ZXIgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VUZE1vdXNlZW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pyI5Lu9IG1vdXNlbGVhdmUg5LqL5Lu2XHJcbiAgICogQGVuX1VTIERhdGUgbW91c2VsZWF2ZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZVRkTW91c2VsZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TkuK3nmoTmnIjku73ngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZURhdGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG59XHJcbiJdfQ==