primeng 18.0.0-rc.2 → 18.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/LICENSE.md +1 -1
  2. package/accordion/accordion.d.ts +7 -7
  3. package/autocomplete/autocomplete.d.ts +26 -13
  4. package/badge/badge.d.ts +1 -3
  5. package/basecomponent/basecomponent.d.ts +2 -5
  6. package/blockui/blockui.d.ts +10 -5
  7. package/breadcrumb/breadcrumb.d.ts +9 -6
  8. package/button/button.d.ts +10 -4
  9. package/calendar/calendar.d.ts +29 -15
  10. package/card/card.d.ts +12 -5
  11. package/carousel/carousel.d.ts +10 -4
  12. package/cascadeselect/cascadeselect.d.ts +18 -8
  13. package/checkbox/checkbox.d.ts +8 -4
  14. package/chip/chip.d.ts +9 -7
  15. package/config/primeng.d.ts +12 -6
  16. package/config/provideprimeng.d.ts +1 -12
  17. package/config/themeprovider.d.ts +10 -4
  18. package/confirmdialog/confirmdialog.d.ts +15 -5
  19. package/confirmpopup/confirmpopup.d.ts +11 -5
  20. package/contextmenu/contextmenu.d.ts +10 -6
  21. package/datepicker/datepicker.d.ts +25 -11
  22. package/dialog/dialog.d.ts +15 -4
  23. package/divider/divider.d.ts +1 -1
  24. package/dock/dock.d.ts +7 -4
  25. package/drawer/drawer.d.ts +18 -10
  26. package/dropdown/dropdown.d.ts +4 -3
  27. package/dynamicdialog/dynamicdialog.d.ts +1 -0
  28. package/editor/editor.d.ts +7 -3
  29. package/esm2022/accordion/accordion.mjs +58 -43
  30. package/esm2022/autocomplete/autocomplete.mjs +227 -168
  31. package/esm2022/autocomplete/style/autocompletestyle.mjs +5 -4
  32. package/esm2022/badge/badge.mjs +39 -32
  33. package/esm2022/basecomponent/basecomponent.mjs +3 -26
  34. package/esm2022/blockui/blockui.mjs +38 -18
  35. package/esm2022/breadcrumb/breadcrumb.mjs +50 -32
  36. package/esm2022/button/button.mjs +55 -28
  37. package/esm2022/calendar/calendar.mjs +200 -137
  38. package/esm2022/card/card.mjs +96 -46
  39. package/esm2022/carousel/carousel.mjs +74 -42
  40. package/esm2022/cascadeselect/cascadeselect.mjs +100 -62
  41. package/esm2022/checkbox/checkbox.mjs +32 -14
  42. package/esm2022/chip/chip.mjs +117 -96
  43. package/esm2022/colorpicker/colorpicker.mjs +2 -2
  44. package/esm2022/config/primeng.mjs +14 -18
  45. package/esm2022/config/provideprimeng.mjs +11 -3
  46. package/esm2022/config/themeprovider.mjs +10 -16
  47. package/esm2022/confirmdialog/confirmdialog.mjs +105 -61
  48. package/esm2022/confirmpopup/confirmpopup.mjs +57 -29
  49. package/esm2022/contextmenu/contextmenu.mjs +52 -21
  50. package/esm2022/datepicker/datepicker.mjs +200 -159
  51. package/esm2022/dialog/dialog.mjs +113 -67
  52. package/esm2022/divider/divider.mjs +2 -4
  53. package/esm2022/dock/dock.mjs +31 -13
  54. package/esm2022/drawer/drawer.mjs +115 -73
  55. package/esm2022/dropdown/dropdown.mjs +13 -5
  56. package/esm2022/dynamicdialog/dialogservice.mjs +2 -2
  57. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +13 -13
  58. package/esm2022/dynamicdialog/dynamicdialog.mjs +9 -5
  59. package/esm2022/editor/editor.mjs +27 -11
  60. package/esm2022/fieldset/fieldset.mjs +61 -33
  61. package/esm2022/fileupload/fileupload.mjs +139 -89
  62. package/esm2022/galleria/galleria.mjs +18 -9
  63. package/esm2022/image/image.mjs +114 -67
  64. package/esm2022/imagecompare/imagecompare.mjs +31 -11
  65. package/esm2022/inplace/inplace.mjs +49 -24
  66. package/esm2022/inputmask/inputmask.mjs +33 -17
  67. package/esm2022/inputmask/style/inputmaskstyle.mjs +2 -2
  68. package/esm2022/inputnumber/inputnumber.mjs +58 -50
  69. package/esm2022/inputotp/inputotp.mjs +33 -14
  70. package/esm2022/inputtext/inputtext.mjs +11 -10
  71. package/esm2022/listbox/listbox.mjs +137 -78
  72. package/esm2022/megamenu/megamenu.mjs +105 -59
  73. package/esm2022/menu/menu.mjs +27 -27
  74. package/esm2022/menubar/menubar.mjs +70 -35
  75. package/esm2022/message/message.mjs +50 -26
  76. package/esm2022/messages/messages.mjs +13 -4
  77. package/esm2022/metergroup/metergroup.mjs +63 -31
  78. package/esm2022/multiselect/multiselect.mjs +247 -156
  79. package/esm2022/multiselect/style/multiselectstyle.mjs +1 -4
  80. package/esm2022/orderlist/orderlist.mjs +125 -70
  81. package/esm2022/organizationchart/organizationchart.mjs +30 -14
  82. package/esm2022/overlay/overlay.mjs +27 -7
  83. package/esm2022/overlay/style/overlaystyle.mjs +2 -2
  84. package/esm2022/overlaypanel/overlaypanel.mjs +34 -11
  85. package/esm2022/paginator/paginator.mjs +92 -60
  86. package/esm2022/panel/panel.mjs +160 -100
  87. package/esm2022/panelmenu/panelmenu.mjs +55 -32
  88. package/esm2022/password/password.mjs +114 -52
  89. package/esm2022/picklist/picklist.mjs +397 -269
  90. package/esm2022/popover/popover.mjs +30 -13
  91. package/esm2022/progressbar/progressbar.mjs +27 -9
  92. package/esm2022/rating/rating.mjs +46 -22
  93. package/esm2022/ripple/ripple.mjs +5 -2
  94. package/esm2022/scroller/scroller.mjs +47 -37
  95. package/esm2022/scrollpanel/scrollpanel.mjs +28 -9
  96. package/esm2022/scrolltop/scrolltop.mjs +17 -10
  97. package/esm2022/select/select.mjs +202 -122
  98. package/esm2022/select/style/selectstyle.mjs +2 -5
  99. package/esm2022/selectbutton/selectbutton.mjs +26 -11
  100. package/esm2022/sidebar/sidebar.mjs +83 -61
  101. package/esm2022/speeddial/speeddial.mjs +54 -29
  102. package/esm2022/splitbutton/splitbutton.mjs +41 -18
  103. package/esm2022/splitter/splitter.mjs +29 -19
  104. package/esm2022/splitter/style/splitterstyle.mjs +5 -4
  105. package/esm2022/stepper/stepper.mjs +27 -13
  106. package/esm2022/table/table.mjs +6368 -6510
  107. package/esm2022/tabmenu/tabmenu.mjs +54 -27
  108. package/esm2022/tabs/tablist.mjs +28 -20
  109. package/esm2022/tabview/tabview.mjs +106 -54
  110. package/esm2022/tag/tag.mjs +68 -44
  111. package/esm2022/textarea/textarea.mjs +9 -9
  112. package/esm2022/tieredmenu/tieredmenu.mjs +45 -22
  113. package/esm2022/timeline/timeline.mjs +41 -17
  114. package/esm2022/toast/toast.mjs +31 -9
  115. package/esm2022/togglebutton/togglebutton.mjs +45 -30
  116. package/esm2022/toggleswitch/toggleswitch.mjs +28 -9
  117. package/esm2022/toolbar/toolbar.mjs +47 -21
  118. package/esm2022/tooltip/tooltip.mjs +36 -71
  119. package/esm2022/tree/style/treestyle.mjs +13 -3
  120. package/esm2022/tree/tree.mjs +193 -137
  121. package/esm2022/treeselect/style/treeselectstyle.mjs +1 -4
  122. package/esm2022/treeselect/treeselect.mjs +157 -90
  123. package/esm2022/treetable/treetable.mjs +31 -12
  124. package/esm2022/usestyle/usestyle.mjs +2 -2
  125. package/fesm2022/primeng-accordion.mjs +57 -42
  126. package/fesm2022/primeng-accordion.mjs.map +1 -1
  127. package/fesm2022/primeng-autocomplete.mjs +230 -170
  128. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  129. package/fesm2022/primeng-badge.mjs +38 -31
  130. package/fesm2022/primeng-badge.mjs.map +1 -1
  131. package/fesm2022/primeng-basecomponent.mjs +2 -25
  132. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  133. package/fesm2022/primeng-blockui.mjs +37 -17
  134. package/fesm2022/primeng-blockui.mjs.map +1 -1
  135. package/fesm2022/primeng-breadcrumb.mjs +49 -31
  136. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  137. package/fesm2022/primeng-button.mjs +54 -27
  138. package/fesm2022/primeng-button.mjs.map +1 -1
  139. package/fesm2022/primeng-calendar.mjs +199 -136
  140. package/fesm2022/primeng-calendar.mjs.map +1 -1
  141. package/fesm2022/primeng-card.mjs +95 -45
  142. package/fesm2022/primeng-card.mjs.map +1 -1
  143. package/fesm2022/primeng-carousel.mjs +73 -41
  144. package/fesm2022/primeng-carousel.mjs.map +1 -1
  145. package/fesm2022/primeng-cascadeselect.mjs +99 -61
  146. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  147. package/fesm2022/primeng-checkbox.mjs +31 -13
  148. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  149. package/fesm2022/primeng-chip.mjs +116 -95
  150. package/fesm2022/primeng-chip.mjs.map +1 -1
  151. package/fesm2022/primeng-colorpicker.mjs +1 -1
  152. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  153. package/fesm2022/primeng-config.mjs +38 -39
  154. package/fesm2022/primeng-config.mjs.map +1 -1
  155. package/fesm2022/primeng-confirmdialog.mjs +104 -60
  156. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  157. package/fesm2022/primeng-confirmpopup.mjs +56 -28
  158. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  159. package/fesm2022/primeng-contextmenu.mjs +51 -20
  160. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  161. package/fesm2022/primeng-datepicker.mjs +199 -158
  162. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  163. package/fesm2022/primeng-dialog.mjs +112 -66
  164. package/fesm2022/primeng-dialog.mjs.map +1 -1
  165. package/fesm2022/primeng-divider.mjs +1 -3
  166. package/fesm2022/primeng-divider.mjs.map +1 -1
  167. package/fesm2022/primeng-dock.mjs +30 -12
  168. package/fesm2022/primeng-dock.mjs.map +1 -1
  169. package/fesm2022/primeng-drawer.mjs +114 -72
  170. package/fesm2022/primeng-drawer.mjs.map +1 -1
  171. package/fesm2022/primeng-dropdown.mjs +12 -4
  172. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  173. package/fesm2022/primeng-dynamicdialog.mjs +21 -17
  174. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  175. package/fesm2022/primeng-editor.mjs +26 -10
  176. package/fesm2022/primeng-editor.mjs.map +1 -1
  177. package/fesm2022/primeng-fieldset.mjs +60 -32
  178. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  179. package/fesm2022/primeng-fileupload.mjs +138 -88
  180. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  181. package/fesm2022/primeng-galleria.mjs +17 -8
  182. package/fesm2022/primeng-galleria.mjs.map +1 -1
  183. package/fesm2022/primeng-image.mjs +113 -66
  184. package/fesm2022/primeng-image.mjs.map +1 -1
  185. package/fesm2022/primeng-imagecompare.mjs +30 -10
  186. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  187. package/fesm2022/primeng-inplace.mjs +48 -23
  188. package/fesm2022/primeng-inplace.mjs.map +1 -1
  189. package/fesm2022/primeng-inputmask.mjs +33 -17
  190. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  191. package/fesm2022/primeng-inputnumber.mjs +57 -49
  192. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  193. package/fesm2022/primeng-inputotp.mjs +32 -13
  194. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  195. package/fesm2022/primeng-inputtext.mjs +10 -9
  196. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  197. package/fesm2022/primeng-listbox.mjs +136 -77
  198. package/fesm2022/primeng-listbox.mjs.map +1 -1
  199. package/fesm2022/primeng-megamenu.mjs +104 -58
  200. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  201. package/fesm2022/primeng-menu.mjs +26 -26
  202. package/fesm2022/primeng-menu.mjs.map +1 -1
  203. package/fesm2022/primeng-menubar.mjs +69 -34
  204. package/fesm2022/primeng-menubar.mjs.map +1 -1
  205. package/fesm2022/primeng-message.mjs +49 -25
  206. package/fesm2022/primeng-message.mjs.map +1 -1
  207. package/fesm2022/primeng-messages.mjs +12 -3
  208. package/fesm2022/primeng-messages.mjs.map +1 -1
  209. package/fesm2022/primeng-metergroup.mjs +62 -30
  210. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  211. package/fesm2022/primeng-multiselect.mjs +246 -158
  212. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  213. package/fesm2022/primeng-orderlist.mjs +124 -69
  214. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  215. package/fesm2022/primeng-organizationchart.mjs +29 -13
  216. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  217. package/fesm2022/primeng-overlay.mjs +27 -7
  218. package/fesm2022/primeng-overlay.mjs.map +1 -1
  219. package/fesm2022/primeng-overlaypanel.mjs +33 -10
  220. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  221. package/fesm2022/primeng-paginator.mjs +91 -59
  222. package/fesm2022/primeng-paginator.mjs.map +1 -1
  223. package/fesm2022/primeng-panel.mjs +159 -99
  224. package/fesm2022/primeng-panel.mjs.map +1 -1
  225. package/fesm2022/primeng-panelmenu.mjs +54 -31
  226. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  227. package/fesm2022/primeng-password.mjs +113 -51
  228. package/fesm2022/primeng-password.mjs.map +1 -1
  229. package/fesm2022/primeng-picklist.mjs +396 -268
  230. package/fesm2022/primeng-picklist.mjs.map +1 -1
  231. package/fesm2022/primeng-popover.mjs +29 -12
  232. package/fesm2022/primeng-popover.mjs.map +1 -1
  233. package/fesm2022/primeng-progressbar.mjs +26 -8
  234. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  235. package/fesm2022/primeng-rating.mjs +45 -21
  236. package/fesm2022/primeng-rating.mjs.map +1 -1
  237. package/fesm2022/primeng-ripple.mjs +4 -1
  238. package/fesm2022/primeng-ripple.mjs.map +1 -1
  239. package/fesm2022/primeng-scroller.mjs +46 -36
  240. package/fesm2022/primeng-scroller.mjs.map +1 -1
  241. package/fesm2022/primeng-scrollpanel.mjs +27 -8
  242. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  243. package/fesm2022/primeng-scrolltop.mjs +16 -9
  244. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  245. package/fesm2022/primeng-select.mjs +202 -125
  246. package/fesm2022/primeng-select.mjs.map +1 -1
  247. package/fesm2022/primeng-selectbutton.mjs +25 -10
  248. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  249. package/fesm2022/primeng-sidebar.mjs +82 -60
  250. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  251. package/fesm2022/primeng-speeddial.mjs +53 -28
  252. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  253. package/fesm2022/primeng-splitbutton.mjs +40 -17
  254. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  255. package/fesm2022/primeng-splitter.mjs +32 -21
  256. package/fesm2022/primeng-splitter.mjs.map +1 -1
  257. package/fesm2022/primeng-stepper.mjs +26 -12
  258. package/fesm2022/primeng-stepper.mjs.map +1 -1
  259. package/fesm2022/primeng-table.mjs +6370 -6512
  260. package/fesm2022/primeng-table.mjs.map +1 -1
  261. package/fesm2022/primeng-tabmenu.mjs +53 -26
  262. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  263. package/fesm2022/primeng-tabs.mjs +27 -19
  264. package/fesm2022/primeng-tabs.mjs.map +1 -1
  265. package/fesm2022/primeng-tabview.mjs +106 -54
  266. package/fesm2022/primeng-tabview.mjs.map +1 -1
  267. package/fesm2022/primeng-tag.mjs +67 -43
  268. package/fesm2022/primeng-tag.mjs.map +1 -1
  269. package/fesm2022/primeng-textarea.mjs +8 -8
  270. package/fesm2022/primeng-textarea.mjs.map +1 -1
  271. package/fesm2022/primeng-tieredmenu.mjs +44 -21
  272. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  273. package/fesm2022/primeng-timeline.mjs +40 -16
  274. package/fesm2022/primeng-timeline.mjs.map +1 -1
  275. package/fesm2022/primeng-toast.mjs +30 -8
  276. package/fesm2022/primeng-toast.mjs.map +1 -1
  277. package/fesm2022/primeng-togglebutton.mjs +44 -29
  278. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  279. package/fesm2022/primeng-toggleswitch.mjs +27 -8
  280. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  281. package/fesm2022/primeng-toolbar.mjs +46 -20
  282. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  283. package/fesm2022/primeng-tooltip.mjs +36 -71
  284. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  285. package/fesm2022/primeng-tree.mjs +204 -138
  286. package/fesm2022/primeng-tree.mjs.map +1 -1
  287. package/fesm2022/primeng-treeselect.mjs +156 -92
  288. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  289. package/fesm2022/primeng-treetable.mjs +30 -11
  290. package/fesm2022/primeng-treetable.mjs.map +1 -1
  291. package/fesm2022/primeng-usestyle.mjs +1 -1
  292. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  293. package/fieldset/fieldset.d.ts +12 -6
  294. package/fileupload/fileupload.d.ts +19 -8
  295. package/galleria/galleria.d.ts +3 -2
  296. package/image/image.d.ts +18 -7
  297. package/imagecompare/imagecompare.d.ts +7 -2
  298. package/inplace/inplace.d.ts +12 -6
  299. package/inputmask/inputmask.d.ts +8 -4
  300. package/inputnumber/inputnumber.d.ts +11 -6
  301. package/inputotp/inputotp.d.ts +7 -2
  302. package/inputtext/inputtext.d.ts +2 -2
  303. package/listbox/listbox.d.ts +17 -4
  304. package/megamenu/megamenu.d.ts +16 -7
  305. package/menu/menu.d.ts +6 -6
  306. package/menubar/menubar.d.ts +13 -6
  307. package/message/message.d.ts +10 -4
  308. package/messages/messages.d.ts +4 -3
  309. package/metergroup/metergroup.d.ts +11 -3
  310. package/multiselect/multiselect.d.ts +36 -17
  311. package/orderlist/orderlist.d.ts +23 -11
  312. package/organizationchart/organizationchart.d.ts +6 -4
  313. package/overlay/overlay.d.ts +6 -3
  314. package/overlaypanel/overlaypanel.d.ts +6 -3
  315. package/package.json +233 -233
  316. package/paginator/paginator.d.ts +15 -8
  317. package/panel/panel.d.ts +14 -5
  318. package/panelmenu/panelmenu.d.ts +8 -4
  319. package/password/password.d.ts +20 -8
  320. package/picklist/picklist.d.ts +23 -3
  321. package/popover/popover.d.ts +8 -5
  322. package/progressbar/progressbar.d.ts +7 -3
  323. package/rating/rating.d.ts +11 -5
  324. package/scroller/scroller.d.ts +9 -4
  325. package/scrollpanel/scrollpanel.d.ts +7 -3
  326. package/scrolltop/scrolltop.d.ts +7 -4
  327. package/select/select.d.ts +31 -13
  328. package/selectbutton/selectbutton.d.ts +7 -3
  329. package/sidebar/sidebar.d.ts +9 -2
  330. package/speeddial/speeddial.d.ts +9 -4
  331. package/splitbutton/splitbutton.d.ts +9 -5
  332. package/splitter/splitter.d.ts +6 -7
  333. package/splitter/style/splitterstyle.d.ts +0 -13
  334. package/stepper/stepper.d.ts +8 -3
  335. package/table/table.d.ts +928 -1030
  336. package/tabmenu/tabmenu.d.ts +12 -7
  337. package/tabs/tablist.d.ts +6 -2
  338. package/tabview/tabview.d.ts +16 -7
  339. package/tag/tag.d.ts +8 -9
  340. package/textarea/textarea.d.ts +2 -2
  341. package/tieredmenu/tieredmenu.d.ts +10 -6
  342. package/timeline/timeline.d.ts +7 -2
  343. package/toast/toast.d.ts +7 -3
  344. package/togglebutton/togglebutton.d.ts +8 -3
  345. package/toggleswitch/toggleswitch.d.ts +6 -2
  346. package/toolbar/toolbar.d.ts +9 -4
  347. package/tooltip/tooltip.d.ts +2 -1
  348. package/tree/style/treestyle.d.ts +1 -1
  349. package/tree/tree.d.ts +25 -10
  350. package/treeselect/treeselect.d.ts +26 -12
  351. package/treetable/treetable.d.ts +7 -5
@@ -8,6 +8,7 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
9
9
  const _c0 = ["*"];
10
10
  const _c1 = ["container"];
11
+ const _c2 = a0 => ({ display: "flex", "flex-wrap": "nowrap", "flex-direction": a0 });
11
12
  function Splitter_ng_template_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
12
13
  i0.ɵɵelementContainer(0);
13
14
  } }
@@ -50,7 +51,7 @@ export class SplitterPanel extends BaseComponent {
50
51
  i0.ɵɵcontentQuerySignal(dirIndex, ctx.splitter, Splitter, 5);
51
52
  } if (rf & 2) {
52
53
  i0.ɵɵqueryAdvance();
53
- } }, hostAttrs: [1, "p-splitter-panel"], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function SplitterPanel_Template(rf, ctx) { if (rf & 1) {
54
+ } }, hostAttrs: [1, "p-splitterpanel"], standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function SplitterPanel_Template(rf, ctx) { if (rf & 1) {
54
55
  i0.ɵɵprojectionDef();
55
56
  i0.ɵɵprojection(0);
56
57
  } }, dependencies: [CommonModule], encapsulation: 2, changeDetection: 0 });
@@ -64,7 +65,7 @@ export class SplitterPanel extends BaseComponent {
64
65
  template: `<ng-content></ng-content>`,
65
66
  changeDetection: ChangeDetectionStrategy.OnPush,
66
67
  host: {
67
- class: 'p-splitter-panel'
68
+ class: 'p-splitterpanel'
68
69
  }
69
70
  }]
70
71
  }], null, null); })();
@@ -134,7 +135,7 @@ export class Splitter extends BaseComponent {
134
135
  set panelSizes(val) {
135
136
  this._panelSizes = val;
136
137
  if (this.el && this.el.nativeElement && this.panels.length > 0) {
137
- let children = [...this.el.nativeElement.children[0].children].filter((child) => hasClass(child, 'p-splitter-panel'));
138
+ let children = [...this.el.nativeElement.children[0].children].filter((child) => hasClass(child, 'p-splitterpanel'));
138
139
  let _panelSizes = [];
139
140
  this.panels.map((panel, i) => {
140
141
  let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;
@@ -157,6 +158,7 @@ export class Splitter extends BaseComponent {
157
158
  */
158
159
  onResizeStart = new EventEmitter();
159
160
  containerViewChild;
161
+ templates;
160
162
  nested = false;
161
163
  panels = [];
162
164
  dragging = false;
@@ -180,9 +182,8 @@ export class Splitter extends BaseComponent {
180
182
  super.ngOnInit();
181
183
  this.nested = this.isNested();
182
184
  }
183
- _templates;
184
185
  ngAfterContentInit() {
185
- this._templates.forEach((item) => {
186
+ this.templates.forEach((item) => {
186
187
  switch (item.getType()) {
187
188
  case 'panel':
188
189
  this.panels.push(item.template);
@@ -202,7 +203,7 @@ export class Splitter extends BaseComponent {
202
203
  initialized = this.restoreState();
203
204
  }
204
205
  if (!initialized) {
205
- let children = [...this.el.nativeElement.children[0].children].filter((child) => hasClass(child, 'p-splitter-panel'));
206
+ let children = [...this.el.nativeElement.children[0].children].filter((child) => hasClass(child, 'p-splitterpanel'));
206
207
  let _panelSizes = [];
207
208
  this.panels.map((panel, i) => {
208
209
  let panelInitialSize = this.panelSizes.length - 1 >= i ? this.panelSizes[i] : null;
@@ -253,7 +254,7 @@ export class Splitter extends BaseComponent {
253
254
  }
254
255
  }
255
256
  else {
256
- if (this.horizontal) {
257
+ if (this.horizontal()) {
257
258
  if (isRTL(this.el.nativeElement)) {
258
259
  newPos = ((this.startPos - event.pageX) * 100) / this.size;
259
260
  }
@@ -463,7 +464,7 @@ export class Splitter extends BaseComponent {
463
464
  const stateString = storage.getItem(this.stateKey);
464
465
  if (stateString) {
465
466
  this._panelSizes = JSON.parse(stateString);
466
- let children = [...this.containerViewChild.nativeElement.children].filter((child) => hasClass(child, 'p-splitter-panel'));
467
+ let children = [...this.containerViewChild.nativeElement.children].filter((child) => hasClass(child, 'p-splitterpanel'));
467
468
  children.forEach((child, i) => {
468
469
  child.style.flexBasis = 'calc(' + this._panelSizes[i] + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';
469
470
  });
@@ -480,8 +481,8 @@ export class Splitter extends BaseComponent {
480
481
  }
481
482
  panelContainerClass() {
482
483
  return {
483
- 'p-splitter-panel': true,
484
- 'p-splitter-panel-nested': true
484
+ 'p-splitterpanel': true,
485
+ 'p-splitterpanel-nested': true
485
486
  };
486
487
  }
487
488
  gutterStyle() {
@@ -498,19 +499,20 @@ export class Splitter extends BaseComponent {
498
499
  i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
499
500
  } if (rf & 2) {
500
501
  let _t;
501
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._templates = _t);
502
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
502
503
  } }, viewQuery: function Splitter_Query(rf, ctx) { if (rf & 1) {
503
504
  i0.ɵɵviewQuery(_c1, 5);
504
505
  } if (rf & 2) {
505
506
  let _t;
506
507
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);
507
508
  } }, hostVars: 2, hostBindings: function Splitter_HostBindings(rf, ctx) { if (rf & 2) {
508
- i0.ɵɵclassProp("p-splitter-panel-nested", ctx.nested);
509
- } }, inputs: { styleClass: "styleClass", panelStyleClass: "panelStyleClass", style: "style", panelStyle: "panelStyle", stateStorage: "stateStorage", stateKey: "stateKey", layout: "layout", gutterSize: [2, "gutterSize", "gutterSize", numberAttribute], step: [2, "step", "step", numberAttribute], minSizes: [2, "minSizes", "minSizes", numberAttribute], panelSizes: "panelSizes" }, outputs: { onResizeEnd: "onResizeEnd", onResizeStart: "onResizeStart" }, standalone: true, features: [i0.ɵɵProvidersFeature([SplitterStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 8, consts: [["container", ""], [3, "ngClass", "ngStyle"], ["ngFor", "", 3, "ngForOf"], ["tabindex", "-1", 3, "ngClass", "ngStyle"], [4, "ngTemplateOutlet"], ["class", "p-splitter-gutter", "role", "separator", "tabindex", "-1", 3, "mousedown", "touchstart", "touchmove", "touchend", 4, "ngIf"], ["role", "separator", "tabindex", "-1", 1, "p-splitter-gutter", 3, "mousedown", "touchstart", "touchmove", "touchend"], ["tabindex", "0", 1, "p-splitter-gutter-handle", 3, "keyup", "keydown", "ngStyle"]], template: function Splitter_Template(rf, ctx) { if (rf & 1) {
509
+ i0.ɵɵclassProp("p-splitterpanel-nested", ctx.nested);
510
+ } }, inputs: { styleClass: "styleClass", panelStyleClass: "panelStyleClass", style: "style", panelStyle: "panelStyle", stateStorage: "stateStorage", stateKey: "stateKey", layout: "layout", gutterSize: [2, "gutterSize", "gutterSize", numberAttribute], step: [2, "step", "step", numberAttribute], minSizes: "minSizes", panelSizes: "panelSizes" }, outputs: { onResizeEnd: "onResizeEnd", onResizeStart: "onResizeStart" }, standalone: true, features: [i0.ɵɵProvidersFeature([SplitterStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 12, consts: [["container", ""], [3, "ngClass", "ngStyle"], ["ngFor", "", 3, "ngForOf"], ["tabindex", "-1", 3, "ngClass", "ngStyle"], [4, "ngTemplateOutlet"], ["class", "p-splitter-gutter", "role", "separator", "tabindex", "-1", 3, "mousedown", "touchstart", "touchmove", "touchend", 4, "ngIf"], ["role", "separator", "tabindex", "-1", 1, "p-splitter-gutter", 3, "mousedown", "touchstart", "touchmove", "touchend"], ["tabindex", "0", 1, "p-splitter-gutter-handle", 3, "keyup", "keydown", "ngStyle"]], template: function Splitter_Template(rf, ctx) { if (rf & 1) {
510
511
  i0.ɵɵelementStart(0, "div", 1, 0);
511
512
  i0.ɵɵtemplate(2, Splitter_ng_template_2_Template, 3, 8, "ng-template", 2);
512
513
  i0.ɵɵelementEnd();
513
514
  } if (rf & 2) {
515
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction1(10, _c2, ctx.layout === "vertical" ? "column" : ""));
514
516
  i0.ɵɵclassMap(ctx.styleClass);
515
517
  i0.ɵɵproperty("ngClass", ctx.containerClass())("ngStyle", ctx.style);
516
518
  i0.ɵɵattribute("data-pc-name", "splitter")("data-p-gutter-resizing", false)("data-pc-section", "root");
@@ -525,7 +527,16 @@ export class Splitter extends BaseComponent {
525
527
  standalone: true,
526
528
  imports: [CommonModule, SharedModule],
527
529
  template: `
528
- <div #container [ngClass]="containerClass()" [class]="styleClass" [ngStyle]="style" [attr.data-pc-name]="'splitter'" [attr.data-p-gutter-resizing]="false" [attr.data-pc-section]="'root'">
530
+ <div
531
+ #container
532
+ [ngClass]="containerClass()"
533
+ [class]="styleClass"
534
+ [ngStyle]="style"
535
+ [style]="{ display: 'flex', 'flex-wrap': 'nowrap', 'flex-direction': layout === 'vertical' ? 'column' : '' }"
536
+ [attr.data-pc-name]="'splitter'"
537
+ [attr.data-p-gutter-resizing]="false"
538
+ [attr.data-pc-section]="'root'"
539
+ >
529
540
  <ng-template ngFor let-panel [ngForOf]="panels" let-i="index">
530
541
  <div [ngClass]="panelContainerClass()" [class]="panelStyleClass" [ngStyle]="panelStyle" tabindex="-1" [attr.data-pc-name]="'splitter'" [attr.data-pc-section]="'root'">
531
542
  <ng-container *ngTemplateOutlet="panel"></ng-container>
@@ -559,7 +570,7 @@ export class Splitter extends BaseComponent {
559
570
  encapsulation: ViewEncapsulation.None,
560
571
  changeDetection: ChangeDetectionStrategy.OnPush,
561
572
  host: {
562
- '[class.p-splitter-panel-nested]': 'nested'
573
+ '[class.p-splitterpanel-nested]': 'nested'
563
574
  },
564
575
  providers: [SplitterStyle]
565
576
  }]
@@ -584,8 +595,7 @@ export class Splitter extends BaseComponent {
584
595
  type: Input,
585
596
  args: [{ transform: numberAttribute }]
586
597
  }], minSizes: [{
587
- type: Input,
588
- args: [{ transform: numberAttribute }]
598
+ type: Input
589
599
  }], panelSizes: [{
590
600
  type: Input
591
601
  }], onResizeEnd: [{
@@ -595,7 +605,7 @@ export class Splitter extends BaseComponent {
595
605
  }], containerViewChild: [{
596
606
  type: ViewChild,
597
607
  args: ['container', { static: false }]
598
- }], _templates: [{
608
+ }], templates: [{
599
609
  type: ContentChildren,
600
610
  args: [PrimeTemplate]
601
611
  }] }); })();
@@ -613,4 +623,4 @@ export class SplitterModule {
613
623
  }]
614
624
  }], null, null); })();
615
625
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SplitterModule, { imports: [Splitter, SplitterPanel, SharedModule], exports: [Splitter, SplitterPanel, SharedModule] }); })();
616
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BsaXR0ZXIvc3BsaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBbUIsZUFBZSxFQUFzQixZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMVAsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3SCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7SUE4QmxDLHdCQUF1RDs7OztJQUUzRCw4QkFXQztJQUhHLEFBREEsQUFEQSxBQURBLG9PQUFhLHNDQUE0QixLQUFDLHlOQUM1Qix1Q0FBNkIsS0FBQyxpTEFDL0IsZ0NBQXlCLEtBQUMsK0tBQzNCLCtCQUF3QixLQUFDO0lBSXJDLDhCQVNDO0lBREcsQUFEQSxzTEFBUyw0QkFBcUIsS0FBQyxtTkFDcEIsb0NBQTBCLEtBQUM7SUFFOUMsQUFESyxpQkFBTSxFQUNMOzs7O0lBUEUsY0FBeUI7SUFBekIsOENBQXlCOzs7O0lBbEJqQyw4QkFBdUs7SUFDbksseUZBQXdDO0lBQzVDLGlCQUFNO0lBQ04sdUVBV0M7Ozs7O0lBZHNDLHFDQUF5QjtJ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LEVBQUUsQ0FBQyxhQUFhLENBQUM7YUFDN0I7Z0JBTVksVUFBVTtrQkFBbEIsS0FBSztZQUtHLGVBQWU7a0JBQXZCLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxVQUFVO2tCQUFsQixLQUFLO1lBS0csWUFBWTtrQkFBcEIsS0FBSztZQUtHLFFBQVE7a0JBQWhCLEtBQUs7WUFLRyxNQUFNO2tCQUFkLEtBQUs7WUFLaUMsVUFBVTtrQkFBaEQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7WUFLRSxJQUFJO2tCQUExQyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtZQUtFLFFBQVE7a0JBQTlDLEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1lBS3hCLFVBQVU7a0JBQXRCLEtBQUs7WUF1QkksV0FBVztrQkFBcEIsTUFBTTtZQU1HLGFBQWE7a0JBQXRCLE1BQU07WUFFb0Msa0JBQWtCO2tCQUE1RCxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUE2Q1QsVUFBVTtrQkFBekMsZUFBZTttQkFBQyxhQUFhOztrRkFuSXJCLFFBQVE7QUF3ZnJCLE1BQU0sT0FBTyxjQUFjO3dHQUFkLGNBQWM7NERBQWQsY0FBYztnRUFIYixRQUFRLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFDWixZQUFZOztpRkFFdEMsY0FBYztjQUoxQixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDO2FBQ25EOzt3RkFDWSxjQUFjLGNBeGZkLFFBQVEsRUFyRFIsYUFBYSxFQTBpQmEsWUFBWSxhQXJmdEMsUUFBUSxFQXJEUixhQUFhLEVBMmlCYSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgY29udGVudENoaWxkLCBjb250ZW50Q2hpbGRyZW4sIENvbnRlbnRDaGlsZHJlbiwgZWZmZWN0LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBudW1iZXJBdHRyaWJ1dGUsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRDbGFzcywgZ2V0SGVpZ2h0LCBnZXRPdXRlckhlaWdodCwgZ2V0T3V0ZXJXaWR0aCwgZ2V0V2lkdGgsIGhhc0NsYXNzLCBpc1JUTCwgcmVtb3ZlQ2xhc3MgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgVm9pZExpc3RlbmVyIH0gZnJvbSAncHJpbWVuZy90cy1oZWxwZXJzJztcbmltcG9ydCB7IFNwbGl0dGVyUmVzaXplRW5kRXZlbnQsIFNwbGl0dGVyUmVzaXplU3RhcnRFdmVudCB9IGZyb20gJy4vc3BsaXR0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNwbGl0dGVyU3R5bGUgfSBmcm9tICcuL3N0eWxlL3NwbGl0dGVyc3R5bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3BsaXR0ZXItcGFuZWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncC1zcGxpdHRlci1wYW5lbCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNwbGl0dGVyUGFuZWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBzcGxpdHRlciA9IGNvbnRlbnRDaGlsZChTcGxpdHRlcik7XG5cbiAgICBuZXN0ZWRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3BsaXR0ZXIoKSk7XG59XG5cbi8qKlxuICogU3BsaXR0ZXIgaXMgdXRpbGl6ZWQgdG8gc2VwYXJhdGUgYW5kIHJlc2l6ZSBwYW5lbHMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3BsaXR0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2hhcmVkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2ICNjb250YWluZXIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3MoKVwiIFtjbGFzc109XCJzdHlsZUNsYXNzXCIgW25nU3R5bGVdPVwic3R5bGVcIiBbYXR0ci5kYXRhLXBjLW5hbWVdPVwiJ3NwbGl0dGVyJ1wiIFthdHRyLmRhdGEtcC1ndXR0ZXItcmVzaXppbmddPVwiZmFsc2VcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3Jvb3QnXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXBhbmVsIFtuZ0Zvck9mXT1cInBhbmVsc1wiIGxldC1pPVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInBhbmVsQ29udGFpbmVyQ2xhc3MoKVwiIFtjbGFzc109XCJwYW5lbFN0eWxlQ2xhc3NcIiBbbmdTdHlsZV09XCJwYW5lbFN0eWxlXCIgdGFiaW5kZXg9XCItMVwiIFthdHRyLmRhdGEtcGMtbmFtZV09XCInc3BsaXR0ZXInXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyb290J1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFuZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSAhPT0gcGFuZWxzLmxlbmd0aCAtIDFcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtc3BsaXR0ZXItZ3V0dGVyXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInNlcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uR3V0dGVyTW91c2VEb3duKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAodG91Y2hzdGFydCk9XCJvbkd1dHRlclRvdWNoU3RhcnQoJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICh0b3VjaG1vdmUpPVwib25HdXR0ZXJUb3VjaE1vdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh0b3VjaGVuZCk9XCJvbkd1dHRlclRvdWNoRW5kKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtZ3V0dGVyLXJlc2l6aW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidndXR0ZXInXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJndXR0ZXJTdHlsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtb3JpZW50YXRpb25dPVwibGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtdmFsdWVub3ddPVwicHJldlNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidndXR0ZXJoYW5kbGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbkd1dHRlcktleVVwKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25HdXR0ZXJLZXlEb3duKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3BsaXR0ZXItcGFuZWwtbmVzdGVkXSc6ICduZXN0ZWQnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtTcGxpdHRlclN0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdHRlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBwYW5lbC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwYW5lbFN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIHBhbmVsLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHBhbmVsU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGVyZSBhIHN0YXRlZnVsIHNwbGl0dGVyIGtlZXBzIGl0cyBzdGF0ZSwgdmFsaWQgdmFsdWVzIGFyZSAnc2Vzc2lvbicgZm9yIHNlc3Npb25TdG9yYWdlIGFuZCAnbG9jYWwnIGZvciBsb2NhbFN0b3JhZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3RhdGVTdG9yYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnc2Vzc2lvbic7XG4gICAgLyoqXG4gICAgICogU3RvcmFnZSBpZGVudGlmaWVyIG9mIGEgc3RhdGVmdWwgU3BsaXR0ZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3RhdGVLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIE9yaWVudGF0aW9uIG9mIHRoZSBwYW5lbHMuIFZhbGlkIHZhbHVlcyBhcmUgJ2hvcml6b250YWwnIGFuZCAndmVydGljYWwnLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxheW91dDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJ2hvcml6b250YWwnO1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGRpdmlkZXIgaW4gcGl4ZWxzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGd1dHRlclNpemU6IG51bWJlciA9IDQ7XG4gICAgLyoqXG4gICAgICogU3RlcCBmYWN0b3IgdG8gaW5jcmVtZW50L2RlY3JlbWVudCB0aGUgc2l6ZSBvZiB0aGUgcGFuZWxzIHdoaWxlIHByZXNzaW5nIHRoZSBhcnJvdyBrZXlzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHN0ZXA6IG51bWJlciA9IDU7XG4gICAgLyoqXG4gICAgICogTWluaW11bSBzaXplIG9mIHRoZSBlbGVtZW50cyByZWxhdGl2ZSB0byAxMDAlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIG1pblNpemVzOiBudW1iZXJbXSA9IFtdO1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGVsZW1lbnRzIHJlbGF0aXZlIHRvIDEwMCUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHBhbmVsU2l6ZXMoKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWxTaXplcztcbiAgICB9XG4gICAgc2V0IHBhbmVsU2l6ZXModmFsOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLl9wYW5lbFNpemVzID0gdmFsO1xuXG4gICAgICAgIGlmICh0aGlzLmVsICYmIHRoaXMuZWwubmF0aXZlRWxlbWVudCAmJiB0aGlzLnBhbmVscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbLi4udGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuXS5maWx0ZXIoKGNoaWxkKSA9PiBoYXNDbGFzcyhjaGlsZCwgJ3Atc3BsaXR0ZXItcGFuZWwnKSk7XG4gICAgICAgICAgICBsZXQgX3BhbmVsU2l6ZXMgPSBbXTtcblxuICAgICAgICAgICAgdGhpcy5wYW5lbHMubWFwKChwYW5lbCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBwYW5lbEluaXRpYWxTaXplID0gdGhpcy5wYW5lbFNpemVzLmxlbmd0aCAtIDEgPj0gaSA/IHRoaXMucGFuZWxTaXplc1tpXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IHBhbmVsU2l6ZSA9IHBhbmVsSW5pdGlhbFNpemUgfHwgMTAwIC8gdGhpcy5wYW5lbHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIF9wYW5lbFNpemVzW2ldID0gcGFuZWxTaXplO1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuW2ldLnN0eWxlLmZsZXhCYXNpcyA9ICdjYWxjKCcgKyBwYW5lbFNpemUgKyAnJSAtICcgKyAodGhpcy5wYW5lbHMubGVuZ3RoIC0gMSkgKiB0aGlzLmd1dHRlclNpemUgKyAncHgpJztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlc2l6ZSBlbmRzLlxuICAgICAqIEBwYXJhbSB7U3BsaXR0ZXJSZXNpemVFbmRFdmVudH0gZXZlbnQgLSBDdXN0b20gcGFuZWwgcmVzaXplIGVuZCBldmVudFxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlc2l6ZUVuZDogRXZlbnRFbWl0dGVyPFNwbGl0dGVyUmVzaXplRW5kRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcGxpdHRlclJlc2l6ZUVuZEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlc2l6ZSBzdGFydHMuXG4gICAgICogQHBhcmFtIHtTcGxpdHRlclJlc2l6ZVN0YXJ0RXZlbnR9IGV2ZW50IC0gQ3VzdG9tIHBhbmVsIHJlc2l6ZSBzdGFydCBldmVudFxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlc2l6ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJSZXNpemVTdGFydEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJSZXNpemVTdGFydEV2ZW50PigpO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRhaW5lclZpZXdDaGlsZDogTnVsbGFibGU8RWxlbWVudFJlZj47XG5cbiAgICBuZXN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHBhbmVsczogYW55W10gPSBbXTtcblxuICAgIGRyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBtb3VzZU1vdmVMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgbW91c2VVcExpc3RlbmVyOiBWb2lkTGlzdGVuZXI7XG5cbiAgICB0b3VjaE1vdmVMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgdG91Y2hFbmRMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgc2l6ZTogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIGd1dHRlckVsZW1lbnQ6IE51bGxhYmxlPEVsZW1lbnRSZWYgfCBIVE1MRWxlbWVudD47XG5cbiAgICBzdGFydFBvczogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIHByZXZQYW5lbEVsZW1lbnQ6IE51bGxhYmxlPEVsZW1lbnRSZWYgfCBIVE1MRWxlbWVudD47XG5cbiAgICBuZXh0UGFuZWxFbGVtZW50OiBOdWxsYWJsZTxFbGVtZW50UmVmIHwgSFRNTEVsZW1lbnQ+O1xuXG4gICAgbmV4dFBhbmVsU2l6ZTogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIHByZXZQYW5lbFNpemU6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICBfcGFuZWxTaXplczogbnVtYmVyW10gPSBbXTtcblxuICAgIHByZXZQYW5lbEluZGV4OiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgdGltZXI6IGFueTtcblxuICAgIHByZXZTaXplOiBhbnk7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoU3BsaXR0ZXJTdHlsZSk7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5uZXN0ZWQgPSB0aGlzLmlzTmVzdGVkKCk7XG4gICAgfVxuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSBfdGVtcGxhdGVzITogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLl90ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3BhbmVsJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbHMucHVzaChpdGVtLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbHMucHVzaChpdGVtLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYW5lbHMgJiYgdGhpcy5wYW5lbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTdGF0ZWZ1bCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkID0gdGhpcy5yZXN0b3JlU3RhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFsuLi50aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5dLmZpbHRlcigoY2hpbGQpID0+IGhhc0NsYXNzKGNoaWxkLCAncC1zcGxpdHRlci1wYW5lbCcpKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IF9wYW5lbFNpemVzID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbHMubWFwKChwYW5lbCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhbmVsSW5pdGlhbFNpemUgPSB0aGlzLnBhbmVsU2l6ZXMubGVuZ3RoIC0gMSA+PSBpID8gdGhpcy5wYW5lbFNpemVzW2ldIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYW5lbFNpemUgPSBwYW5lbEluaXRpYWxTaXplIHx8IDEwMCAvIHRoaXMucGFuZWxzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9wYW5lbFNpemVzW2ldID0gcGFuZWxTaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5baV0uc3R5bGUuZmxleEJhc2lzID0gJ2NhbGMoJyArIHBhbmVsU2l6ZSArICclIC0gJyArICh0aGlzLnBhbmVscy5sZW5ndGggLSAxKSAqICh0aGlzLmd1dHRlclNpemUgYXMgbnVtYmVyKSArICdweCknO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYW5lbFNpemVzID0gX3BhbmVsU2l6ZXM7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2U2l6ZSA9IHBhcnNlRmxvYXQoX3BhbmVsU2l6ZXNbMF0pLnRvRml4ZWQoNCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzaXplU3RhcnQoZXZlbnQ6IFRvdWNoRXZlbnQgfCBNb3VzZUV2ZW50LCBpbmRleDogbnVtYmVyLCBpc0tleURvd24/OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZ3V0dGVyRWxlbWVudCA9IChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KSB8fCAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50O1xuICAgICAgICB0aGlzLnNpemUgPSB0aGlzLmhvcml6b250YWwoKSA/IGdldFdpZHRoKCh0aGlzLmNvbnRhaW5lclZpZXdDaGlsZCBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50KSA6IGdldEhlaWdodCgodGhpcy5jb250YWluZXJWaWV3Q2hpbGQgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgaWYgKCFpc0tleURvd24pIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zdGFydFBvcyA9IHRoaXMuaG9yaXpvbnRhbCgpID8gKGV2ZW50IGluc3RhbmNlb2YgTW91c2VFdmVudCA/IGV2ZW50LnBhZ2VYIDogZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgpIDogZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQucGFnZVkgOiBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJldlBhbmVsRWxlbWVudCA9IHRoaXMuZ3V0dGVyRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICB0aGlzLm5leHRQYW5lbEVsZW1lbnQgPSB0aGlzLmd1dHRlckVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAgIGlmIChpc0tleURvd24pIHtcbiAgICAgICAgICAgIHRoaXMucHJldlBhbmVsU2l6ZSA9IHRoaXMuaG9yaXpvbnRhbCgpID8gZ2V0T3V0ZXJXaWR0aCh0aGlzLnByZXZQYW5lbEVsZW1lbnQsIHRydWUpIDogZ2V0T3V0ZXJIZWlnaHQodGhpcy5wcmV2UGFuZWxFbGVtZW50LCB0cnVlKTtcbiAgICAgICAgICAgIHRoaXMubmV4dFBhbmVsU2l6ZSA9IHRoaXMuaG9yaXpvbnRhbCgpID8gZ2V0T3V0ZXJXaWR0aCh0aGlzLm5leHRQYW5lbEVsZW1lbnQsIHRydWUpIDogZ2V0T3V0ZXJIZWlnaHQodGhpcy5uZXh0UGFuZWxFbGVtZW50LCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucHJldlBhbmVsU2l6ZSA9ICgxMDAgKiAodGhpcy5ob3Jpem9udGFsKCkgPyBnZXRPdXRlcldpZHRoKHRoaXMucHJldlBhbmVsRWxlbWVudCwgdHJ1ZSkgOiBnZXRPdXRlckhlaWdodCh0aGlzLnByZXZQYW5lbEVsZW1lbnQsIHRydWUpKSkgLyB0aGlzLnNpemU7XG4gICAgICAgICAgICB0aGlzLm5leHRQYW5lbFNpemUgPSAoMTAwICogKHRoaXMuaG9yaXpvbnRhbCgpID8gZ2V0T3V0ZXJXaWR0aCh0aGlzLm5leHRQYW5lbEVsZW1lbnQsIHRydWUpIDogZ2V0T3V0ZXJIZWlnaHQodGhpcy5uZXh0UGFuZWxFbGVtZW50LCB0cnVlKSkpIC8gdGhpcy5zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2UGFuZWxJbmRleCA9IGluZGV4O1xuICAgICAgICBhZGRDbGFzcyh0aGlzLmd1dHRlckVsZW1lbnQsICdwLXNwbGl0dGVyLWd1dHRlci1yZXNpemluZycpO1xuICAgICAgICB0aGlzLmd1dHRlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXAtZ3V0dGVyLXJlc2l6aW5nJywgJ3RydWUnKTtcbiAgICAgICAgYWRkQ2xhc3MoKHRoaXMuY29udGFpbmVyVmlld0NoaWxkIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQsICdwLXNwbGl0dGVyLXJlc2l6aW5nJyk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyVmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXAtcmVzaXppbmcnLCAndHJ1ZScpO1xuICAgICAgICB0aGlzLm9uUmVzaXplU3RhcnQuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBzaXplczogdGhpcy5fcGFuZWxTaXplcyBhcyBudW1iZXJbXSB9KTtcbiAgICB9XG5cbiAgICBvblJlc2l6ZShldmVudDogTW91c2VFdmVudCwgc3RlcD86IG51bWJlciwgaXNLZXlEb3duPzogYm9vbGVhbikge1xuICAgICAgICBsZXQgbmV3UG9zLCBuZXdQcmV2UGFuZWxTaXplLCBuZXdOZXh0UGFuZWxTaXplO1xuXG4gICAgICAgIGlmIChpc0tleURvd24pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhvcml6b250YWwoKSkge1xuICAgICAgICAgICAgICAgIG5ld1ByZXZQYW5lbFNpemUgPSAoMTAwICogKHRoaXMucHJldlBhbmVsU2l6ZSArIHN0ZXApKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgICAgICBuZXdOZXh0UGFuZWxTaXplID0gKDEwMCAqICh0aGlzLm5leHRQYW5lbFNpemUgLSBzdGVwKSkgLyB0aGlzLnNpemU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1ByZXZQYW5lbFNpemUgPSAoMTAwICogKHRoaXMucHJldlBhbmVsU2l6ZSAtIHN0ZXApKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgICAgICBuZXdOZXh0UGFuZWxTaXplID0gKDEwMCAqICh0aGlzLm5leHRQYW5lbFNpemUgKyBzdGVwKSkgLyB0aGlzLnNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ob3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUlRMKHRoaXMuZWwubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3UG9zID0gKCh0aGlzLnN0YXJ0UG9zIC0gZXZlbnQucGFnZVgpICogMTAwKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXdQb3MgPSAoKGV2ZW50LnBhZ2VYIC0gdGhpcy5zdGFydFBvcykgKiAxMDApIC8gdGhpcy5zaXplO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UG9zID0gKChldmVudC5wYWdlWSAtIHRoaXMuc3RhcnRQb3MpICogMTAwKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV3UHJldlBhbmVsU2l6ZSA9ICh0aGlzLnByZXZQYW5lbFNpemUgYXMgbnVtYmVyKSArIG5ld1BvcztcbiAgICAgICAgICAgIG5ld05leHRQYW5lbFNpemUgPSAodGhpcy5uZXh0UGFuZWxTaXplIGFzIG51bWJlcikgLSBuZXdQb3M7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByZXZTaXplID0gcGFyc2VGbG9hdChuZXdQcmV2UGFuZWxTaXplKS50b0ZpeGVkKDQpO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlUmVzaXplKG5ld1ByZXZQYW5lbFNpemUsIG5ld05leHRQYW5lbFNpemUpKSB7XG4gICAgICAgICAgICAodGhpcy5wcmV2UGFuZWxFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zdHlsZS5mbGV4QmFzaXMgPSAnY2FsYygnICsgbmV3UHJldlBhbmVsU2l6ZSArICclIC0gJyArICh0aGlzLnBhbmVscy5sZW5ndGggLSAxKSAqIHRoaXMuZ3V0dGVyU2l6ZSArICdweCknO1xuICAgICAgICAgICAgKHRoaXMubmV4dFBhbmVsRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZmxleEJhc2lzID0gJ2NhbGMoJyArIG5ld05leHRQYW5lbFNpemUgKyAnJSAtICcgKyAodGhpcy5wYW5lbHMubGVuZ3RoIC0gMSkgKiB0aGlzLmd1dHRlclNpemUgKyAncHgpJztcbiAgICAgICAgICAgIHRoaXMuX3BhbmVsU2l6ZXNbdGhpcy5wcmV2UGFuZWxJbmRleCBhcyBudW1iZXJdID0gbmV3UHJldlBhbmVsU2l6ZTtcbiAgICAgICAgICAgIHRoaXMuX3BhbmVsU2l6ZXNbKHRoaXMucHJldlBhbmVsSW5kZXggYXMgbnVtYmVyKSArIDFdID0gbmV3TmV4dFBhbmVsU2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlc2l6ZUVuZChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdGF0ZWZ1bCgpKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vblJlc2l6ZUVuZC5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHNpemVzOiB0aGlzLl9wYW5lbFNpemVzIH0pO1xuICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmd1dHRlckVsZW1lbnQgYXMgYW55LCAncC1zcGxpdHRlci1ndXR0ZXItcmVzaXppbmcnKTtcbiAgICAgICAgcmVtb3ZlQ2xhc3MoKHRoaXMuY29udGFpbmVyVmlld0NoaWxkIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQsICdwLXNwbGl0dGVyLXJlc2l6aW5nJyk7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBvbkd1dHRlck1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnJlc2l6ZVN0YXJ0KGV2ZW50LCBpbmRleCk7XG4gICAgICAgIHRoaXMuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgb25HdXR0ZXJUb3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZVN0YXJ0KGV2ZW50LCBpbmRleCk7XG4gICAgICAgICAgICB0aGlzLmJpbmRUb3VjaExpc3RlbmVycygpO1xuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25HdXR0ZXJUb3VjaE1vdmUoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vblJlc2l6ZShldmVudCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25HdXR0ZXJUb3VjaEVuZChldmVudDogVG91Y2hFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUVuZChldmVudCk7XG4gICAgICAgIHRoaXMudW5iaW5kVG91Y2hMaXN0ZW5lcnMoKTtcblxuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICByZXBlYXQoZXZlbnQsIGluZGV4LCBzdGVwKSB7XG4gICAgICAgIHRoaXMucmVzaXplU3RhcnQoZXZlbnQsIGluZGV4LCB0cnVlKTtcbiAgICAgICAgdGhpcy5vblJlc2l6ZShldmVudCwgc3RlcCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgc2V0VGltZXIoZXZlbnQsIGluZGV4LCBzdGVwKSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lcigpO1xuICAgICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlcGVhdChldmVudCwgaW5kZXgsIHN0ZXApO1xuICAgICAgICB9LCA0MCk7XG4gICAgfVxuXG4gICAgY2xlYXJUaW1lcigpIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uR3V0dGVyS2V5VXAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jbGVhclRpbWVyKCk7XG4gICAgICAgIHRoaXMucmVzaXplRW5kKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkd1dHRlcktleURvd24oZXZlbnQsIGluZGV4KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0Jzoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxheW91dCA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VGltZXIoZXZlbnQsIGluZGV4LCB0aGlzLnN0ZXAgKiAtMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWVyKGV2ZW50LCBpbmRleCwgdGhpcy5zdGVwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0ID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VGltZXIoZXZlbnQsIGluZGV4LCB0aGlzLnN0ZXAgKiAtMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUaW1lcihldmVudCwgaW5kZXgsIHRoaXMuc3RlcCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAvL25vIG9wXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YWxpZGF0ZVJlc2l6ZShuZXdQcmV2UGFuZWxTaXplOiBudW1iZXIsIG5ld05leHRQYW5lbFNpemU6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5taW5TaXplcy5sZW5ndGggPj0gMSAmJiB0aGlzLm1pblNpemVzWzBdICYmIHRoaXMubWluU2l6ZXNbMF0gPiBuZXdQcmV2UGFuZWxTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5taW5TaXplcy5sZW5ndGggPiAxICYmIHRoaXMubWluU2l6ZXNbMV0gJiYgdGhpcy5taW5TaXplc1sxXSA+IG5ld05leHRQYW5lbFNpemUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ21vdXNlbW92ZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25SZXNpemUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMubW91c2VVcExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlVXBMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsICdtb3VzZXVwJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVFbmQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMudW5iaW5kTW91c2VMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmluZFRvdWNoTGlzdGVuZXJzKCkge1xuICAgICAgICBpZiAoIXRoaXMudG91Y2hNb3ZlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMudG91Y2hNb3ZlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAndG91Y2htb3ZlJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblJlc2l6ZShldmVudC5jaGFuZ2VkVG91Y2hlc1swXSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy50b3VjaEVuZExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnRvdWNoRW5kTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAndG91Y2hlbmQnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUVuZChldmVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy51bmJpbmRUb3VjaExpc3RlbmVycygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRNb3VzZUxpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKHRoaXMubW91c2VNb3ZlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW91c2VVcExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlVXBMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kVG91Y2hMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICh0aGlzLnRvdWNoTW92ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnRvdWNoTW92ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLnRvdWNoTW92ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRvdWNoRW5kTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMudG91Y2hFbmRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy50b3VjaEVuZExpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2l6ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RhcnRQb3MgPSBudWxsO1xuICAgICAgICB0aGlzLnByZXZQYW5lbEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLm5leHRQYW5lbEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLnByZXZQYW5lbFNpemUgPSBudWxsO1xuICAgICAgICB0aGlzLm5leHRQYW5lbFNpemUgPSBudWxsO1xuICAgICAgICB0aGlzLmd1dHRlckVsZW1lbnQgPSBudWxsO1xuICAgICAgICB0aGlzLnByZXZQYW5lbEluZGV4ID0gbnVsbDtcbiAgICB9XG5cbiAgICBpc05lc3RlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgd2hpbGUgKHBhcmVudCAmJiAhaGFzQ2xhc3MocGFyZW50LCAncC1zcGxpdHRlcicpKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQgIT09IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1N0YXRlZnVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZUtleSAhPSBudWxsO1xuICAgIH1cblxuICAgIGdldFN0b3JhZ2UoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuc3RhdGVTdG9yYWdlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbG9jYWwnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2U7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdzZXNzaW9uJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuc2Vzc2lvblN0b3JhZ2U7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5zdGF0ZVN0b3JhZ2UgKyAnIGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgc3RhdGUgc3RvcmFnZSwgc3VwcG9ydGVkIHZhbHVlcyBhcmUgXCJsb2NhbFwiIGFuZCBcInNlc3Npb25cIi4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU3RvcmFnZSBpcyBub3QgYSBhdmFpbGFibGUgYnkgZGVmYXVsdCBvbiB0aGUgc2VydmVyLicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2F2ZVN0YXRlKCkge1xuICAgICAgICB0aGlzLmdldFN0b3JhZ2UoKS5zZXRJdGVtKHRoaXMuc3RhdGVLZXkgYXMgc3RyaW5nLCBKU09OLnN0cmluZ2lmeSh0aGlzLl9wYW5lbFNpemVzKSk7XG4gICAgfVxuXG4gICAgcmVzdG9yZVN0YXRlKCkge1xuICAgICAgICBjb25zdCBzdG9yYWdlID0gdGhpcy5nZXRTdG9yYWdlKCk7XG4gICAgICAgIGNvbnN0IHN0YXRlU3RyaW5nID0gc3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhdGVLZXkgYXMgc3RyaW5nKTtcblxuICAgICAgICBpZiAoc3RhdGVTdHJpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX3BhbmVsU2l6ZXMgPSBKU09OLnBhcnNlKHN0YXRlU3RyaW5nKTtcbiAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFsuLi4odGhpcy5jb250YWluZXJWaWV3Q2hpbGQgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudC5jaGlsZHJlbl0uZmlsdGVyKChjaGlsZCkgPT4gaGFzQ2xhc3MoY2hpbGQsICdwLXNwbGl0dGVyLXBhbmVsJykpO1xuICAgICAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBjaGlsZC5zdHlsZS5mbGV4QmFzaXMgPSAnY2FsYygnICsgdGhpcy5fcGFuZWxTaXplc1tpXSArICclIC0gJyArICh0aGlzLnBhbmVscy5sZW5ndGggLSAxKSAqIHRoaXMuZ3V0dGVyU2l6ZSArICdweCknO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnRhaW5lckNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3Atc3BsaXR0ZXIgcC1jb21wb25lbnQnOiB0cnVlLFxuICAgICAgICAgICAgJ3Atc3BsaXR0ZXItaG9yaXpvbnRhbCc6IHRoaXMubGF5b3V0ID09PSAnaG9yaXpvbnRhbCcsXG4gICAgICAgICAgICAncC1zcGxpdHRlci12ZXJ0aWNhbCc6IHRoaXMubGF5b3V0ID09PSAndmVydGljYWwnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcGFuZWxDb250YWluZXJDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLXNwbGl0dGVyLXBhbmVsJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLXNwbGl0dGVyLXBhbmVsLW5lc3RlZCc6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBndXR0ZXJTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaG9yaXpvbnRhbCgpKSByZXR1cm4geyB3aWR0aDogdGhpcy5ndXR0ZXJTaXplICsgJ3B4JyB9O1xuICAgICAgICBlbHNlIHJldHVybiB7IGhlaWdodDogdGhpcy5ndXR0ZXJTaXplICsgJ3B4JyB9O1xuICAgIH1cblxuICAgIGhvcml6b250YWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxheW91dCA9PT0gJ2hvcml6b250YWwnO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbU3BsaXR0ZXIsIFNwbGl0dGVyUGFuZWwsIFNoYXJlZE1vZHVsZV0sXG4gICAgZXhwb3J0czogW1NwbGl0dGVyLCBTcGxpdHRlclBhbmVsLCBTaGFyZWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFNwbGl0dGVyTW9kdWxlIHt9XG4iXX0=
626
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3BsaXR0ZXIvc3BsaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuUCxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdILE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7SUF1Q2xDLHdCQUF1RDs7OztJQUUzRCw4QkFXQztJQUhHLEFBREEsQUFEQSxBQURBLG9PQUFhLHNDQUE0QixLQUFDLHlOQUM1Qix1Q0FBNkIsS0FBQyxpTEFDL0IsZ0NBQXlCLEtBQUMsK0tBQzNCLCtCQUF3QixLQUFDO0lBSXJDLDhCQVNDO0lBREcsQUFEQSxzTEFBUyw0QkFBcUIsS0FBQyxtTkFDcEIsb0NBQTBCLEtBQUM7SUFFOUMsQUFESyxpQkFBTSxFQUNMOzs7O0lBUEUsY0FBeUI7SUFBekIsOENBQXlCOzs7O0lBbEJqQyw4QkFBdUs7SUFDbksseUZBQXdDO0lBQzVDLGlCQUFNO0lBQ04sdUVBV0M7Ozs7O0lBZHNDLHFDQUF5QjtJ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QkFDRCxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7YUFDN0I7Z0JBTVksVUFBVTtrQkFBbEIsS0FBSztZQUtHLGVBQWU7a0JBQXZCLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxVQUFVO2tCQUFsQixLQUFLO1lBS0csWUFBWTtrQkFBcEIsS0FBSztZQUtHLFFBQVE7a0JBQWhCLEtBQUs7WUFLRyxNQUFNO2tCQUFkLEtBQUs7WUFLaUMsVUFBVTtrQkFBaEQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7WUFLRSxJQUFJO2tCQUExQyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtZQUs1QixRQUFRO2tCQUFoQixLQUFLO1lBS08sVUFBVTtrQkFBdEIsS0FBSztZQXVCSSxXQUFXO2tCQUFwQixNQUFNO1lBTUcsYUFBYTtrQkFBdEIsTUFBTTtZQUVvQyxrQkFBa0I7a0JBQTVELFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUVULFNBQVM7a0JBQXhDLGVBQWU7bUJBQUMsYUFBYTs7a0ZBeEZyQixRQUFRO0FBd2ZyQixNQUFNLE9BQU8sY0FBYzt3R0FBZCxjQUFjOzREQUFkLGNBQWM7Z0VBSGIsUUFBUSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQ1osWUFBWTs7aUZBRXRDLGNBQWM7Y0FKMUIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDO2dCQUNoRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQzthQUNuRDs7d0ZBQ1ksY0FBYyxjQXhmZCxRQUFRLEVBOURSLGFBQWEsRUFtakJhLFlBQVksYUFyZnRDLFFBQVEsRUE5RFIsYUFBYSxFQW9qQmEsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBudW1iZXJBdHRyaWJ1dGUsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRDbGFzcywgZ2V0SGVpZ2h0LCBnZXRPdXRlckhlaWdodCwgZ2V0T3V0ZXJXaWR0aCwgZ2V0V2lkdGgsIGhhc0NsYXNzLCBpc1JUTCwgcmVtb3ZlQ2xhc3MgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgVm9pZExpc3RlbmVyIH0gZnJvbSAncHJpbWVuZy90cy1oZWxwZXJzJztcbmltcG9ydCB7IFNwbGl0dGVyUmVzaXplRW5kRXZlbnQsIFNwbGl0dGVyUmVzaXplU3RhcnRFdmVudCB9IGZyb20gJy4vc3BsaXR0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNwbGl0dGVyU3R5bGUgfSBmcm9tICcuL3N0eWxlL3NwbGl0dGVyc3R5bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3BsaXR0ZXItcGFuZWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncC1zcGxpdHRlcnBhbmVsJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU3BsaXR0ZXJQYW5lbCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIHNwbGl0dGVyID0gY29udGVudENoaWxkKFNwbGl0dGVyKTtcblxuICAgIG5lc3RlZFN0YXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zcGxpdHRlcigpKTtcbn1cblxuLyoqXG4gKiBTcGxpdHRlciBpcyB1dGlsaXplZCB0byBzZXBhcmF0ZSBhbmQgcmVzaXplIHBhbmVscy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zcGxpdHRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNjb250YWluZXJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzKClcIlxuICAgICAgICAgICAgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwic3R5bGVcIlxuICAgICAgICAgICAgW3N0eWxlXT1cInsgZGlzcGxheTogJ2ZsZXgnLCAnZmxleC13cmFwJzogJ25vd3JhcCcsICdmbGV4LWRpcmVjdGlvbic6IGxheW91dCA9PT0gJ3ZlcnRpY2FsJyA/ICdjb2x1bW4nIDogJycgfVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXBjLW5hbWVdPVwiJ3NwbGl0dGVyJ1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXAtZ3V0dGVyLXJlc2l6aW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncm9vdCdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXBhbmVsIFtuZ0Zvck9mXT1cInBhbmVsc1wiIGxldC1pPVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInBhbmVsQ29udGFpbmVyQ2xhc3MoKVwiIFtjbGFzc109XCJwYW5lbFN0eWxlQ2xhc3NcIiBbbmdTdHlsZV09XCJwYW5lbFN0eWxlXCIgdGFiaW5kZXg9XCItMVwiIFthdHRyLmRhdGEtcGMtbmFtZV09XCInc3BsaXR0ZXInXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyb290J1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFuZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSAhPT0gcGFuZWxzLmxlbmd0aCAtIDFcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtc3BsaXR0ZXItZ3V0dGVyXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInNlcGFyYXRvclwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uR3V0dGVyTW91c2VEb3duKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAodG91Y2hzdGFydCk9XCJvbkd1dHRlclRvdWNoU3RhcnQoJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICh0b3VjaG1vdmUpPVwib25HdXR0ZXJUb3VjaE1vdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICh0b3VjaGVuZCk9XCJvbkd1dHRlclRvdWNoRW5kKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtZ3V0dGVyLXJlc2l6aW5nXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidndXR0ZXInXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJndXR0ZXJTdHlsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtb3JpZW50YXRpb25dPVwibGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtdmFsdWVub3ddPVwicHJldlNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidndXR0ZXJoYW5kbGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbkd1dHRlcktleVVwKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25HdXR0ZXJLZXlEb3duKCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3BsaXR0ZXJwYW5lbC1uZXN0ZWRdJzogJ25lc3RlZCdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1NwbGl0dGVyU3R5bGVdXG59KVxuZXhwb3J0IGNsYXNzIFNwbGl0dGVyIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBwYW5lbC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwYW5lbFN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIHBhbmVsLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHBhbmVsU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGVyZSBhIHN0YXRlZnVsIHNwbGl0dGVyIGtlZXBzIGl0cyBzdGF0ZSwgdmFsaWQgdmFsdWVzIGFyZSAnc2Vzc2lvbicgZm9yIHNlc3Npb25TdG9yYWdlIGFuZCAnbG9jYWwnIGZvciBsb2NhbFN0b3JhZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3RhdGVTdG9yYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnc2Vzc2lvbic7XG4gICAgLyoqXG4gICAgICogU3RvcmFnZSBpZGVudGlmaWVyIG9mIGEgc3RhdGVmdWwgU3BsaXR0ZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3RhdGVLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIE9yaWVudGF0aW9uIG9mIHRoZSBwYW5lbHMuIFZhbGlkIHZhbHVlcyBhcmUgJ2hvcml6b250YWwnIGFuZCAndmVydGljYWwnLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxheW91dDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJ2hvcml6b250YWwnO1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGRpdmlkZXIgaW4gcGl4ZWxzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGd1dHRlclNpemU6IG51bWJlciA9IDQ7XG4gICAgLyoqXG4gICAgICogU3RlcCBmYWN0b3IgdG8gaW5jcmVtZW50L2RlY3JlbWVudCB0aGUgc2l6ZSBvZiB0aGUgcGFuZWxzIHdoaWxlIHByZXNzaW5nIHRoZSBhcnJvdyBrZXlzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHN0ZXA6IG51bWJlciA9IDU7XG4gICAgLyoqXG4gICAgICogTWluaW11bSBzaXplIG9mIHRoZSBlbGVtZW50cyByZWxhdGl2ZSB0byAxMDAlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1pblNpemVzOiBudW1iZXJbXSA9IFtdO1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIGVsZW1lbnRzIHJlbGF0aXZlIHRvIDEwMCUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHBhbmVsU2l6ZXMoKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWxTaXplcztcbiAgICB9XG4gICAgc2V0IHBhbmVsU2l6ZXModmFsOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLl9wYW5lbFNpemVzID0gdmFsO1xuXG4gICAgICAgIGlmICh0aGlzLmVsICYmIHRoaXMuZWwubmF0aXZlRWxlbWVudCAmJiB0aGlzLnBhbmVscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbLi4udGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuXS5maWx0ZXIoKGNoaWxkKSA9PiBoYXNDbGFzcyhjaGlsZCwgJ3Atc3BsaXR0ZXJwYW5lbCcpKTtcbiAgICAgICAgICAgIGxldCBfcGFuZWxTaXplcyA9IFtdO1xuXG4gICAgICAgICAgICB0aGlzLnBhbmVscy5tYXAoKHBhbmVsLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHBhbmVsSW5pdGlhbFNpemUgPSB0aGlzLnBhbmVsU2l6ZXMubGVuZ3RoIC0gMSA+PSBpID8gdGhpcy5wYW5lbFNpemVzW2ldIDogbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgcGFuZWxTaXplID0gcGFuZWxJbml0aWFsU2l6ZSB8fCAxMDAgLyB0aGlzLnBhbmVscy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgX3BhbmVsU2l6ZXNbaV0gPSBwYW5lbFNpemU7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5baV0uc3R5bGUuZmxleEJhc2lzID0gJ2NhbGMoJyArIHBhbmVsU2l6ZSArICclIC0gJyArICh0aGlzLnBhbmVscy5sZW5ndGggLSAxKSAqIHRoaXMuZ3V0dGVyU2l6ZSArICdweCknO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gcmVzaXplIGVuZHMuXG4gICAgICogQHBhcmFtIHtTcGxpdHRlclJlc2l6ZUVuZEV2ZW50fSBldmVudCAtIEN1c3RvbSBwYW5lbCByZXNpemUgZW5kIGV2ZW50XG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uUmVzaXplRW5kOiBFdmVudEVtaXR0ZXI8U3BsaXR0ZXJSZXNpemVFbmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNwbGl0dGVyUmVzaXplRW5kRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gcmVzaXplIHN0YXJ0cy5cbiAgICAgKiBAcGFyYW0ge1NwbGl0dGVyUmVzaXplU3RhcnRFdmVudH0gZXZlbnQgLSBDdXN0b20gcGFuZWwgcmVzaXplIHN0YXJ0IGV2ZW50XG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uUmVzaXplU3RhcnQ6IEV2ZW50RW1pdHRlcjxTcGxpdHRlclJlc2l6ZVN0YXJ0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTcGxpdHRlclJlc2l6ZVN0YXJ0RXZlbnQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29udGFpbmVyVmlld0NoaWxkOiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzITogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+O1xuXG4gICAgbmVzdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwYW5lbHM6IGFueVtdID0gW107XG5cbiAgICBkcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgbW91c2VNb3ZlTGlzdGVuZXI6IFZvaWRMaXN0ZW5lcjtcblxuICAgIG1vdXNlVXBMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgdG91Y2hNb3ZlTGlzdGVuZXI6IFZvaWRMaXN0ZW5lcjtcblxuICAgIHRvdWNoRW5kTGlzdGVuZXI6IFZvaWRMaXN0ZW5lcjtcblxuICAgIHNpemU6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICBndXR0ZXJFbGVtZW50OiBOdWxsYWJsZTxFbGVtZW50UmVmIHwgSFRNTEVsZW1lbnQ+O1xuXG4gICAgc3RhcnRQb3M6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICBwcmV2UGFuZWxFbGVtZW50OiBOdWxsYWJsZTxFbGVtZW50UmVmIHwgSFRNTEVsZW1lbnQ+O1xuXG4gICAgbmV4dFBhbmVsRWxlbWVudDogTnVsbGFibGU8RWxlbWVudFJlZiB8IEhUTUxFbGVtZW50PjtcblxuICAgIG5leHRQYW5lbFNpemU6IE51bGxhYmxlPG51bWJlcj47XG5cbiAgICBwcmV2UGFuZWxTaXplOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgX3BhbmVsU2l6ZXM6IG51bWJlcltdID0gW107XG5cbiAgICBwcmV2UGFuZWxJbmRleDogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIHRpbWVyOiBhbnk7XG5cbiAgICBwcmV2U2l6ZTogYW55O1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KFNwbGl0dGVyU3R5bGUpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMubmVzdGVkID0gdGhpcy5pc05lc3RlZCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3BhbmVsJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbHMucHVzaChpdGVtLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbHMucHVzaChpdGVtLnRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wYW5lbHMgJiYgdGhpcy5wYW5lbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTdGF0ZWZ1bCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkID0gdGhpcy5yZXN0b3JlU3RhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFsuLi50aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uY2hpbGRyZW5dLmZpbHRlcigoY2hpbGQpID0+IGhhc0NsYXNzKGNoaWxkLCAncC1zcGxpdHRlcnBhbmVsJykpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgX3BhbmVsU2l6ZXMgPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVscy5tYXAoKHBhbmVsLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFuZWxJbml0aWFsU2l6ZSA9IHRoaXMucGFuZWxTaXplcy5sZW5ndGggLSAxID49IGkgPyB0aGlzLnBhbmVsU2l6ZXNbaV0gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhbmVsU2l6ZSA9IHBhbmVsSW5pdGlhbFNpemUgfHwgMTAwIC8gdGhpcy5wYW5lbHMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgX3BhbmVsU2l6ZXNbaV0gPSBwYW5lbFNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbltpXS5zdHlsZS5mbGV4QmFzaXMgPSAnY2FsYygnICsgcGFuZWxTaXplICsgJyUgLSAnICsgKHRoaXMucGFuZWxzLmxlbmd0aCAtIDEpICogKHRoaXMuZ3V0dGVyU2l6ZSBhcyBudW1iZXIpICsgJ3B4KSc7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BhbmVsU2l6ZXMgPSBfcGFuZWxTaXplcztcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZTaXplID0gcGFyc2VGbG9hdChfcGFuZWxTaXplc1swXSkudG9GaXhlZCg0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNpemVTdGFydChldmVudDogVG91Y2hFdmVudCB8IE1vdXNlRXZlbnQsIGluZGV4OiBudW1iZXIsIGlzS2V5RG93bj86IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5ndXR0ZXJFbGVtZW50ID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpIHx8IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuaG9yaXpvbnRhbCgpID8gZ2V0V2lkdGgoKHRoaXMuY29udGFpbmVyVmlld0NoaWxkIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQpIDogZ2V0SGVpZ2h0KCh0aGlzLmNvbnRhaW5lclZpZXdDaGlsZCBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoIWlzS2V5RG93bikge1xuICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0UG9zID0gdGhpcy5ob3Jpem9udGFsKCkgPyAoZXZlbnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50ID8gZXZlbnQucGFnZVggOiBldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWCkgOiBldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQgPyBldmVudC5wYWdlWSA6IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2UGFuZWxFbGVtZW50ID0gdGhpcy5ndXR0ZXJFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHRoaXMubmV4dFBhbmVsRWxlbWVudCA9IHRoaXMuZ3V0dGVyRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGlzS2V5RG93bikge1xuICAgICAgICAgICAgdGhpcy5wcmV2UGFuZWxTaXplID0gdGhpcy5ob3Jpem9udGFsKCkgPyBnZXRPdXRlcldpZHRoKHRoaXMucHJldlBhbmVsRWxlbWVudCwgdHJ1ZSkgOiBnZXRPdXRlckhlaWdodCh0aGlzLnByZXZQYW5lbEVsZW1lbnQsIHRydWUpO1xuICAgICAgICAgICAgdGhpcy5uZXh0UGFuZWxTaXplID0gdGhpcy5ob3Jpem9udGFsKCkgPyBnZXRPdXRlcldpZHRoKHRoaXMubmV4dFBhbmVsRWxlbWVudCwgdHJ1ZSkgOiBnZXRPdXRlckhlaWdodCh0aGlzLm5leHRQYW5lbEVsZW1lbnQsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wcmV2UGFuZWxTaXplID0gKDEwMCAqICh0aGlzLmhvcml6b250YWwoKSA/IGdldE91dGVyV2lkdGgodGhpcy5wcmV2UGFuZWxFbGVtZW50LCB0cnVlKSA6IGdldE91dGVySGVpZ2h0KHRoaXMucHJldlBhbmVsRWxlbWVudCwgdHJ1ZSkpKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgIHRoaXMubmV4dFBhbmVsU2l6ZSA9ICgxMDAgKiAodGhpcy5ob3Jpem9udGFsKCkgPyBnZXRPdXRlcldpZHRoKHRoaXMubmV4dFBhbmVsRWxlbWVudCwgdHJ1ZSkgOiBnZXRPdXRlckhlaWdodCh0aGlzLm5leHRQYW5lbEVsZW1lbnQsIHRydWUpKSkgLyB0aGlzLnNpemU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByZXZQYW5lbEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGFkZENsYXNzKHRoaXMuZ3V0dGVyRWxlbWVudCwgJ3Atc3BsaXR0ZXItZ3V0dGVyLXJlc2l6aW5nJyk7XG4gICAgICAgIHRoaXMuZ3V0dGVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtcC1ndXR0ZXItcmVzaXppbmcnLCAndHJ1ZScpO1xuICAgICAgICBhZGRDbGFzcygodGhpcy5jb250YWluZXJWaWV3Q2hpbGQgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCwgJ3Atc3BsaXR0ZXItcmVzaXppbmcnKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtcC1yZXNpemluZycsICd0cnVlJyk7XG4gICAgICAgIHRoaXMub25SZXNpemVTdGFydC5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHNpemVzOiB0aGlzLl9wYW5lbFNpemVzIGFzIG51bWJlcltdIH0pO1xuICAgIH1cblxuICAgIG9uUmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50LCBzdGVwPzogbnVtYmVyLCBpc0tleURvd24/OiBib29sZWFuKSB7XG4gICAgICAgIGxldCBuZXdQb3MsIG5ld1ByZXZQYW5lbFNpemUsIG5ld05leHRQYW5lbFNpemU7XG5cbiAgICAgICAgaWYgKGlzS2V5RG93bikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaG9yaXpvbnRhbCgpKSB7XG4gICAgICAgICAgICAgICAgbmV3UHJldlBhbmVsU2l6ZSA9ICgxMDAgKiAodGhpcy5wcmV2UGFuZWxTaXplICsgc3RlcCkpIC8gdGhpcy5zaXplO1xuICAgICAgICAgICAgICAgIG5ld05leHRQYW5lbFNpemUgPSAoMTAwICogKHRoaXMubmV4dFBhbmVsU2l6ZSAtIHN0ZXApKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UHJldlBhbmVsU2l6ZSA9ICgxMDAgKiAodGhpcy5wcmV2UGFuZWxTaXplIC0gc3RlcCkpIC8gdGhpcy5zaXplO1xuICAgICAgICAgICAgICAgIG5ld05leHRQYW5lbFNpemUgPSAoMTAwICogKHRoaXMubmV4dFBhbmVsU2l6ZSArIHN0ZXApKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhvcml6b250YWwoKSkge1xuICAgICAgICAgICAgICAgIGlmIChpc1JUTCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1BvcyA9ICgodGhpcy5zdGFydFBvcyAtIGV2ZW50LnBhZ2VYKSAqIDEwMCkgLyB0aGlzLnNpemU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3UG9zID0gKChldmVudC5wYWdlWCAtIHRoaXMuc3RhcnRQb3MpICogMTAwKSAvIHRoaXMuc2l6ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1BvcyA9ICgoZXZlbnQucGFnZVkgLSB0aGlzLnN0YXJ0UG9zKSAqIDEwMCkgLyB0aGlzLnNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG5ld1ByZXZQYW5lbFNpemUgPSAodGhpcy5wcmV2UGFuZWxTaXplIGFzIG51bWJlcikgKyBuZXdQb3M7XG4gICAgICAgICAgICBuZXdOZXh0UGFuZWxTaXplID0gKHRoaXMubmV4dFBhbmVsU2l6ZSBhcyBudW1iZXIpIC0gbmV3UG9zO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcmV2U2l6ZSA9IHBhcnNlRmxvYXQobmV3UHJldlBhbmVsU2l6ZSkudG9GaXhlZCg0KTtcblxuICAgICAgICBpZiAodGhpcy52YWxpZGF0ZVJlc2l6ZShuZXdQcmV2UGFuZWxTaXplLCBuZXdOZXh0UGFuZWxTaXplKSkge1xuICAgICAgICAgICAgKHRoaXMucHJldlBhbmVsRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuc3R5bGUuZmxleEJhc2lzID0gJ2NhbGMoJyArIG5ld1ByZXZQYW5lbFNpemUgKyAnJSAtICcgKyAodGhpcy5wYW5lbHMubGVuZ3RoIC0gMSkgKiB0aGlzLmd1dHRlclNpemUgKyAncHgpJztcbiAgICAgICAgICAgICh0aGlzLm5leHRQYW5lbEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLmZsZXhCYXNpcyA9ICdjYWxjKCcgKyBuZXdOZXh0UGFuZWxTaXplICsgJyUgLSAnICsgKHRoaXMucGFuZWxzLmxlbmd0aCAtIDEpICogdGhpcy5ndXR0ZXJTaXplICsgJ3B4KSc7XG4gICAgICAgICAgICB0aGlzLl9wYW5lbFNpemVzW3RoaXMucHJldlBhbmVsSW5kZXggYXMgbnVtYmVyXSA9IG5ld1ByZXZQYW5lbFNpemU7XG4gICAgICAgICAgICB0aGlzLl9wYW5lbFNpemVzWyh0aGlzLnByZXZQYW5lbEluZGV4IGFzIG51bWJlcikgKyAxXSA9IG5ld05leHRQYW5lbFNpemU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNpemVFbmQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzU3RhdGVmdWwoKSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlU3RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25SZXNpemVFbmQuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBzaXplczogdGhpcy5fcGFuZWxTaXplcyB9KTtcbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5ndXR0ZXJFbGVtZW50IGFzIGFueSwgJ3Atc3BsaXR0ZXItZ3V0dGVyLXJlc2l6aW5nJyk7XG4gICAgICAgIHJlbW92ZUNsYXNzKCh0aGlzLmNvbnRhaW5lclZpZXdDaGlsZCBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50LCAncC1zcGxpdHRlci1yZXNpemluZycpO1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgb25HdXR0ZXJNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5yZXNpemVTdGFydChldmVudCwgaW5kZXgpO1xuICAgICAgICB0aGlzLmJpbmRNb3VzZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIG9uR3V0dGVyVG91Y2hTdGFydChldmVudDogVG91Y2hFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVTdGFydChldmVudCwgaW5kZXgpO1xuICAgICAgICAgICAgdGhpcy5iaW5kVG91Y2hMaXN0ZW5lcnMoKTtcblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uR3V0dGVyVG91Y2hNb3ZlKGV2ZW50KSB7XG4gICAgICAgIHRoaXMub25SZXNpemUoZXZlbnQpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uR3V0dGVyVG91Y2hFbmQoZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVFbmQoZXZlbnQpO1xuICAgICAgICB0aGlzLnVuYmluZFRvdWNoTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgcmVwZWF0KGV2ZW50LCBpbmRleCwgc3RlcCkge1xuICAgICAgICB0aGlzLnJlc2l6ZVN0YXJ0KGV2ZW50LCBpbmRleCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMub25SZXNpemUoZXZlbnQsIHN0ZXAsIHRydWUpO1xuICAgIH1cblxuICAgIHNldFRpbWVyKGV2ZW50LCBpbmRleCwgc3RlcCkge1xuICAgICAgICB0aGlzLmNsZWFyVGltZXIoKTtcbiAgICAgICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXBlYXQoZXZlbnQsIGluZGV4LCBzdGVwKTtcbiAgICAgICAgfSwgNDApO1xuICAgIH1cblxuICAgIGNsZWFyVGltZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkd1dHRlcktleVVwKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2xlYXJUaW1lcigpO1xuICAgICAgICB0aGlzLnJlc2l6ZUVuZChldmVudCk7XG4gICAgfVxuXG4gICAgb25HdXR0ZXJLZXlEb3duKGV2ZW50LCBpbmRleCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sYXlvdXQgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWVyKGV2ZW50LCBpbmRleCwgdGhpcy5zdGVwICogLTEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0ID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRUaW1lcihldmVudCwgaW5kZXgsIHRoaXMuc3RlcCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxheW91dCA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWVyKGV2ZW50LCBpbmRleCwgdGhpcy5zdGVwICogLTEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0ID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VGltZXIoZXZlbnQsIGluZGV4LCB0aGlzLnN0ZXApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgLy9ubyBvcFxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFsaWRhdGVSZXNpemUobmV3UHJldlBhbmVsU2l6ZTogbnVtYmVyLCBuZXdOZXh0UGFuZWxTaXplOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMubWluU2l6ZXMubGVuZ3RoID49IDEgJiYgdGhpcy5taW5TaXplc1swXSAmJiB0aGlzLm1pblNpemVzWzBdID4gbmV3UHJldlBhbmVsU2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWluU2l6ZXMubGVuZ3RoID4gMSAmJiB0aGlzLm1pblNpemVzWzFdICYmIHRoaXMubWluU2l6ZXNbMV0gPiBuZXdOZXh0UGFuZWxTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBiaW5kTW91c2VMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5tb3VzZU1vdmVMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5tb3VzZU1vdmVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsICdtb3VzZW1vdmUnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uUmVzaXplKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLm1vdXNlVXBMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCAnbW91c2V1cCcsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplRW5kKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLnVuYmluZE1vdXNlTGlzdGVuZXJzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRUb3VjaExpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRvdWNoTW92ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnRvdWNoTW92ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ3RvdWNobW92ZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25SZXNpemUoZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMudG91Y2hFbmRMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy50b3VjaEVuZExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ3RvdWNoZW5kJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVFbmQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMudW5iaW5kVG91Y2hMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kTW91c2VMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vdXNlVXBMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMubW91c2VVcExpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmluZFRvdWNoTGlzdGVuZXJzKCkge1xuICAgICAgICBpZiAodGhpcy50b3VjaE1vdmVMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy50b3VjaE1vdmVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy50b3VjaE1vdmVMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50b3VjaEVuZExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnRvdWNoRW5kTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMudG91Y2hFbmRMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNpemUgPSBudWxsO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zID0gbnVsbDtcbiAgICAgICAgdGhpcy5wcmV2UGFuZWxFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5uZXh0UGFuZWxFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5wcmV2UGFuZWxTaXplID0gbnVsbDtcbiAgICAgICAgdGhpcy5uZXh0UGFuZWxTaXplID0gbnVsbDtcbiAgICAgICAgdGhpcy5ndXR0ZXJFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy5wcmV2UGFuZWxJbmRleCA9IG51bGw7XG4gICAgfVxuXG4gICAgaXNOZXN0ZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgICAgIHdoaWxlIChwYXJlbnQgJiYgIWhhc0NsYXNzKHBhcmVudCwgJ3Atc3BsaXR0ZXInKSkge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGFyZW50ICE9PSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNTdGF0ZWZ1bCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVLZXkgIT0gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRTdG9yYWdlKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnN0YXRlU3RvcmFnZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xvY2FsJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnc2Vzc2lvbic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3LnNlc3Npb25TdG9yYWdlO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuc3RhdGVTdG9yYWdlICsgJyBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdGhlIHN0YXRlIHN0b3JhZ2UsIHN1cHBvcnRlZCB2YWx1ZXMgYXJlIFwibG9jYWxcIiBhbmQgXCJzZXNzaW9uXCIuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0b3JhZ2UgaXMgbm90IGEgYXZhaWxhYmxlIGJ5IGRlZmF1bHQgb24gdGhlIHNlcnZlci4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNhdmVTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5nZXRTdG9yYWdlKCkuc2V0SXRlbSh0aGlzLnN0YXRlS2V5IGFzIHN0cmluZywgSlNPTi5zdHJpbmdpZnkodGhpcy5fcGFuZWxTaXplcykpO1xuICAgIH1cblxuICAgIHJlc3RvcmVTdGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IHRoaXMuZ2V0U3RvcmFnZSgpO1xuICAgICAgICBjb25zdCBzdGF0ZVN0cmluZyA9IHN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXRlS2V5IGFzIHN0cmluZyk7XG5cbiAgICAgICAgaWYgKHN0YXRlU3RyaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9wYW5lbFNpemVzID0gSlNPTi5wYXJzZShzdGF0ZVN0cmluZyk7XG4gICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbLi4uKHRoaXMuY29udGFpbmVyVmlld0NoaWxkIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5dLmZpbHRlcigoY2hpbGQpID0+IGhhc0NsYXNzKGNoaWxkLCAncC1zcGxpdHRlcnBhbmVsJykpO1xuICAgICAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBjaGlsZC5zdHlsZS5mbGV4QmFzaXMgPSAnY2FsYygnICsgdGhpcy5fcGFuZWxTaXplc1tpXSArICclIC0gJyArICh0aGlzLnBhbmVscy5sZW5ndGggLSAxKSAqIHRoaXMuZ3V0dGVyU2l6ZSArICdweCknO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnRhaW5lckNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3Atc3BsaXR0ZXIgcC1jb21wb25lbnQnOiB0cnVlLFxuICAgICAgICAgICAgJ3Atc3BsaXR0ZXItaG9yaXpvbnRhbCc6IHRoaXMubGF5b3V0ID09PSAnaG9yaXpvbnRhbCcsXG4gICAgICAgICAgICAncC1zcGxpdHRlci12ZXJ0aWNhbCc6IHRoaXMubGF5b3V0ID09PSAndmVydGljYWwnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcGFuZWxDb250YWluZXJDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLXNwbGl0dGVycGFuZWwnOiB0cnVlLFxuICAgICAgICAgICAgJ3Atc3BsaXR0ZXJwYW5lbC1uZXN0ZWQnOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ3V0dGVyU3R5bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvcml6b250YWwoKSkgcmV0dXJuIHsgd2lkdGg6IHRoaXMuZ3V0dGVyU2l6ZSArICdweCcgfTtcbiAgICAgICAgZWxzZSByZXR1cm4geyBoZWlnaHQ6IHRoaXMuZ3V0dGVyU2l6ZSArICdweCcgfTtcbiAgICB9XG5cbiAgICBob3Jpem9udGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXlvdXQgPT09ICdob3Jpem9udGFsJztcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1NwbGl0dGVyLCBTcGxpdHRlclBhbmVsLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtTcGxpdHRlciwgU3BsaXR0ZXJQYW5lbCwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdHRlck1vZHVsZSB7fVxuIl19
@@ -73,6 +73,8 @@ const theme = ({ dt }) => `
73
73
 
74
74
  .p-splitterpanel-nested {
75
75
  display: flex;
76
+ flex-grow: 1;
77
+ justify-content: center;
76
78
  }
77
79
 
78
80
  .p-splitterpanel .p-splitter {
@@ -85,14 +87,13 @@ const classes = {
85
87
  gutter: 'p-splitter-gutter',
86
88
  gutterHandle: 'p-splitter-gutter-handle'
87
89
  };
88
- const inlineStyles = {
90
+ /*const inlineStyles = {
89
91
  root: ({ props }) => [{ display: 'flex', 'flex-wrap': 'nowrap' }, props.layout === 'vertical' ? { 'flex-direction': 'column' } : '']
90
- };
92
+ };*/
91
93
  export class SplitterStyle extends BaseStyle {
92
94
  name = 'splitter';
93
95
  theme = theme;
94
96
  classes = classes;
95
- inlineStyles = inlineStyles;
96
97
  static ɵfac = /*@__PURE__*/ (() => { let ɵSplitterStyle_BaseFactory; return function SplitterStyle_Factory(__ngFactoryType__) { return (ɵSplitterStyle_BaseFactory || (ɵSplitterStyle_BaseFactory = i0.ɵɵgetInheritedFactory(SplitterStyle)))(__ngFactoryType__ || SplitterStyle); }; })();
97
98
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SplitterStyle, factory: SplitterStyle.ɵfac });
98
99
  }
@@ -123,4 +124,4 @@ export var SplitterClasses;
123
124
  */
124
125
  SplitterClasses["gutterHandle"] = "p-splitter-gutter-handle";
125
126
  })(SplitterClasses || (SplitterClasses = {}));
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXJzdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zcGxpdHRlci9zdHlsZS9zcGxpdHRlcnN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7Ozt3QkFJRixFQUFFLENBQUMsdUJBQXVCLENBQUM7a0JBQ2pDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztxQkFDdEIsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzlCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7a0JBY2YsRUFBRSxDQUFDLDRCQUE0QixDQUFDOzs7O3FCQUk3QixFQUFFLENBQUMsK0JBQStCLENBQUM7a0JBQ3RDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztnQ0FDbEIsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGdCQUFnQixFQUFFLENBQUMsOEJBQThCLENBQUM7Ozs7O2tCQUtsRyxFQUFFLENBQUMsbUNBQW1DLENBQUM7ZUFDMUMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDLElBQUksRUFBRSxDQUFDLGtDQUFrQyxDQUFDLElBQUksRUFBRSxDQUFDLGtDQUFrQyxDQUFDO3NCQUNuSCxFQUFFLENBQUMsbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7O2NBYy9DLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzs7Ozs7YUFLM0IsRUFBRSxDQUFDLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBeUJ0QyxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUc7SUFDWixJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzdFLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsWUFBWSxFQUFFLDBCQUEwQjtDQUMzQyxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUc7SUFDakIsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDdkksQ0FBQztBQUdGLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQUN4QyxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBRWxCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFZCxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBRWxCLFlBQVksR0FBRyxZQUFZLENBQUM7aU9BUG5CLGFBQWEseUJBQWIsYUFBYTtnRUFBYixhQUFhLFdBQWIsYUFBYTs7aUZBQWIsYUFBYTtjQUR6QixVQUFVOztBQVdYOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFhWDtBQWJELFdBQVksZUFBZTtJQUN2Qjs7T0FFRztJQUNILHNDQUFtQixDQUFBO0lBQ25COztPQUVHO0lBQ0gsK0NBQTRCLENBQUE7SUFDNUI7O09BRUc7SUFDSCw0REFBeUMsQ0FBQTtBQUM3QyxDQUFDLEVBYlcsZUFBZSxLQUFmLGVBQWUsUUFhMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuXG5jb25zdCB0aGVtZSA9ICh7IGR0IH0pID0+IGBcbi5wLXNwbGl0dGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7ZHQoJ3NwbGl0dGVyLmJvcmRlci5jb2xvcicpfTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdzcGxpdHRlci5iYWNrZ3JvdW5kJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ2JvcmRlci5yYWRpdXMubWQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ3NwbGl0dGVyLmNvbG9yJyl9O1xufVxuXG4ucC1zcGxpdHRlci12ZXJ0aWNhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnAtc3BsaXR0ZXItZ3V0dGVyIHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnc3BsaXR0ZXIuZ3V0dGVyLmJhY2tncm91bmQnKX07XG59XG5cbi5wLXNwbGl0dGVyLWd1dHRlci1oYW5kbGUge1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ3NwbGl0dGVyLmhhbmRsZS5ib3JkZXIucmFkaXVzJyl9O1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ3NwbGl0dGVyLmhhbmRsZS5iYWNrZ3JvdW5kJyl9O1xuICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgJHtkdCgnc3BsaXR0ZXIudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgYm94LXNoYWRvdyAke2R0KCdzcGxpdHRlci50cmFuc2l0aW9uLmR1cmF0aW9uJyl9O1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ucC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlOmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6ICR7ZHQoJ3NwbGl0dGVyLmhhbmRsZS5mb2N1cy5yaW5nLnNoYWRvdycpfTtcbiAgICBvdXRsaW5lOiAke2R0KCdzcGxpdHRlci5oYW5kbGUuZm9jdXMucmluZy53aWR0aCcpfSAke2R0KCdzcGxpdHRlci5oYW5kbGUuZm9jdXMucmluZy5zdHlsZScpfSAke2R0KCdzcGxpdHRlci5oYW5kbGUuZm9jdXMucmluZy5jb2xvcicpfTtcbiAgICBvdXRsaW5lLW9mZnNldDogJHtkdCgnc3BsaXR0ZXIuaGFuZGxlLmZvY3VzLnJpbmcub2Zmc2V0Jyl9O1xufVxuXG4ucC1zcGxpdHRlci1ob3Jpem9udGFsLnAtc3BsaXR0ZXItcmVzaXppbmcge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnAtc3BsaXR0ZXItdmVydGljYWwucC1zcGxpdHRlci1yZXNpemluZyB7XG4gICAgY3Vyc29yOiByb3ctcmVzaXplO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucC1zcGxpdHRlci1ob3Jpem9udGFsID4gLnAtc3BsaXR0ZXItZ3V0dGVyID4gLnAtc3BsaXR0ZXItZ3V0dGVyLWhhbmRsZSB7XG4gICAgaGVpZ2h0OiAke2R0KCdzcGxpdHRlci5oYW5kbGUuc2l6ZScpfTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnAtc3BsaXR0ZXItdmVydGljYWwgPiAucC1zcGxpdHRlci1ndXR0ZXIgPiAucC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlIHtcbiAgICB3aWR0aDogJHtkdCgnc3BsaXR0ZXIuaGFuZGxlLnNpemUnKX07XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucC1zcGxpdHRlci1ob3Jpem9udGFsID4gLnAtc3BsaXR0ZXItZ3V0dGVyIHtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5wLXNwbGl0dGVyLXZlcnRpY2FsID4gLnAtc3BsaXR0ZXItZ3V0dGVyIHtcbiAgICBjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5wLXNwbGl0dGVycGFuZWwge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucC1zcGxpdHRlcnBhbmVsLW5lc3RlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLnAtc3BsaXR0ZXJwYW5lbCAucC1zcGxpdHRlciB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGJvcmRlcjogMCBub25lO1xufVxuYDtcblxuY29uc3QgY2xhc3NlcyA9IHtcbiAgICByb290OiAoeyBwcm9wcyB9KSA9PiBbJ3Atc3BsaXR0ZXIgcC1jb21wb25lbnQnLCAncC1zcGxpdHRlci0nICsgcHJvcHMubGF5b3V0XSxcbiAgICBndXR0ZXI6ICdwLXNwbGl0dGVyLWd1dHRlcicsXG4gICAgZ3V0dGVySGFuZGxlOiAncC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlJ1xufTtcblxuY29uc3QgaW5saW5lU3R5bGVzID0ge1xuICAgIHJvb3Q6ICh7IHByb3BzIH0pID0+IFt7IGRpc3BsYXk6ICdmbGV4JywgJ2ZsZXgtd3JhcCc6ICdub3dyYXAnIH0sIHByb3BzLmxheW91dCA9PT0gJ3ZlcnRpY2FsJyA/IHsgJ2ZsZXgtZGlyZWN0aW9uJzogJ2NvbHVtbicgfSA6ICcnXVxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNwbGl0dGVyU3R5bGUgZXh0ZW5kcyBCYXNlU3R5bGUge1xuICAgIG5hbWUgPSAnc3BsaXR0ZXInO1xuXG4gICAgdGhlbWUgPSB0aGVtZTtcblxuICAgIGNsYXNzZXMgPSBjbGFzc2VzO1xuXG4gICAgaW5saW5lU3R5bGVzID0gaW5saW5lU3R5bGVzO1xufVxuXG4vKipcbiAqXG4gKiBTcGxpdHRlciBpcyB1dGlsaXplZCB0byBzZXBhcmF0ZSBhbmQgcmVzaXplIHBhbmVscy5cbiAqXG4gKiBbTGl2ZSBEZW1vXShodHRwczovL3d3dy5wcmltZW5nLm9yZy9zcGxpdHRlci8pXG4gKlxuICogQG1vZHVsZSBzcGxpdHRlcnN0eWxlXG4gKlxuICovXG5leHBvcnQgZW51bSBTcGxpdHRlckNsYXNzZXMge1xuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHJvb3QgZWxlbWVudFxuICAgICAqL1xuICAgIHJvb3QgPSAncC1zcGxpdHRlcicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgZ3V0dGVyIGVsZW1lbnRcbiAgICAgKi9cbiAgICBndXR0ZXIgPSAncC1zcGxpdHRlci1ndXR0ZXInLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGd1dHRlciBoYW5kbGUgZWxlbWVudFxuICAgICAqL1xuICAgIGd1dHRlckhhbmRsZSA9ICdwLXNwbGl0dGVyLWd1dHRlci1oYW5kbGUnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BsaXR0ZXJTdHlsZSBleHRlbmRzIEJhc2VTdHlsZSB7fVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXJzdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zcGxpdHRlci9zdHlsZS9zcGxpdHRlcnN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7Ozt3QkFJRixFQUFFLENBQUMsdUJBQXVCLENBQUM7a0JBQ2pDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztxQkFDdEIsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzlCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7a0JBY2YsRUFBRSxDQUFDLDRCQUE0QixDQUFDOzs7O3FCQUk3QixFQUFFLENBQUMsK0JBQStCLENBQUM7a0JBQ3RDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztnQ0FDbEIsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGdCQUFnQixFQUFFLENBQUMsOEJBQThCLENBQUM7Ozs7O2tCQUtsRyxFQUFFLENBQUMsbUNBQW1DLENBQUM7ZUFDMUMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDLElBQUksRUFBRSxDQUFDLGtDQUFrQyxDQUFDLElBQUksRUFBRSxDQUFDLGtDQUFrQyxDQUFDO3NCQUNuSCxFQUFFLENBQUMsbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7O2NBYy9DLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzs7Ozs7YUFLM0IsRUFBRSxDQUFDLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EyQnRDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRztJQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsd0JBQXdCLEVBQUUsYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDN0UsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixZQUFZLEVBQUUsMEJBQTBCO0NBQzNDLENBQUM7QUFFRjs7SUFFSTtBQUdKLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQUN4QyxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBRWxCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFZCxPQUFPLEdBQUcsT0FBTyxDQUFDO2lPQUxULGFBQWEseUJBQWIsYUFBYTtnRUFBYixhQUFhLFdBQWIsYUFBYTs7aUZBQWIsYUFBYTtjQUR6QixVQUFVOztBQVdYOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFhWDtBQWJELFdBQVksZUFBZTtJQUN2Qjs7T0FFRztJQUNILHNDQUFtQixDQUFBO0lBQ25COztPQUVHO0lBQ0gsK0NBQTRCLENBQUE7SUFDNUI7O09BRUc7SUFDSCw0REFBeUMsQ0FBQTtBQUM3QyxDQUFDLEVBYlcsZUFBZSxLQUFmLGVBQWUsUUFhMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuXG5jb25zdCB0aGVtZSA9ICh7IGR0IH0pID0+IGBcbi5wLXNwbGl0dGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7ZHQoJ3NwbGl0dGVyLmJvcmRlci5jb2xvcicpfTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdzcGxpdHRlci5iYWNrZ3JvdW5kJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ2JvcmRlci5yYWRpdXMubWQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ3NwbGl0dGVyLmNvbG9yJyl9O1xufVxuXG4ucC1zcGxpdHRlci12ZXJ0aWNhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLnAtc3BsaXR0ZXItZ3V0dGVyIHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnc3BsaXR0ZXIuZ3V0dGVyLmJhY2tncm91bmQnKX07XG59XG5cbi5wLXNwbGl0dGVyLWd1dHRlci1oYW5kbGUge1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ3NwbGl0dGVyLmhhbmRsZS5ib3JkZXIucmFkaXVzJyl9O1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ3NwbGl0dGVyLmhhbmRsZS5iYWNrZ3JvdW5kJyl9O1xuICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgJHtkdCgnc3BsaXR0ZXIudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgYm94LXNoYWRvdyAke2R0KCdzcGxpdHRlci50cmFuc2l0aW9uLmR1cmF0aW9uJyl9O1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ucC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlOmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6ICR7ZHQoJ3NwbGl0dGVyLmhhbmRsZS5mb2N1cy5yaW5nLnNoYWRvdycpfTtcbiAgICBvdXRsaW5lOiAke2R0KCdzcGxpdHRlci5oYW5kbGUuZm9jdXMucmluZy53aWR0aCcpfSAke2R0KCdzcGxpdHRlci5oYW5kbGUuZm9jdXMucmluZy5zdHlsZScpfSAke2R0KCdzcGxpdHRlci5oYW5kbGUuZm9jdXMucmluZy5jb2xvcicpfTtcbiAgICBvdXRsaW5lLW9mZnNldDogJHtkdCgnc3BsaXR0ZXIuaGFuZGxlLmZvY3VzLnJpbmcub2Zmc2V0Jyl9O1xufVxuXG4ucC1zcGxpdHRlci1ob3Jpem9udGFsLnAtc3BsaXR0ZXItcmVzaXppbmcge1xuICAgIGN1cnNvcjogY29sLXJlc2l6ZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnAtc3BsaXR0ZXItdmVydGljYWwucC1zcGxpdHRlci1yZXNpemluZyB7XG4gICAgY3Vyc29yOiByb3ctcmVzaXplO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ucC1zcGxpdHRlci1ob3Jpem9udGFsID4gLnAtc3BsaXR0ZXItZ3V0dGVyID4gLnAtc3BsaXR0ZXItZ3V0dGVyLWhhbmRsZSB7XG4gICAgaGVpZ2h0OiAke2R0KCdzcGxpdHRlci5oYW5kbGUuc2l6ZScpfTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLnAtc3BsaXR0ZXItdmVydGljYWwgPiAucC1zcGxpdHRlci1ndXR0ZXIgPiAucC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlIHtcbiAgICB3aWR0aDogJHtkdCgnc3BsaXR0ZXIuaGFuZGxlLnNpemUnKX07XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ucC1zcGxpdHRlci1ob3Jpem9udGFsID4gLnAtc3BsaXR0ZXItZ3V0dGVyIHtcbiAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG59XG5cbi5wLXNwbGl0dGVyLXZlcnRpY2FsID4gLnAtc3BsaXR0ZXItZ3V0dGVyIHtcbiAgICBjdXJzb3I6IHJvdy1yZXNpemU7XG59XG5cbi5wLXNwbGl0dGVycGFuZWwge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucC1zcGxpdHRlcnBhbmVsLW5lc3RlZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wLXNwbGl0dGVycGFuZWwgLnAtc3BsaXR0ZXIge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBib3JkZXI6IDAgbm9uZTtcbn1cbmA7XG5cbmNvbnN0IGNsYXNzZXMgPSB7XG4gICAgcm9vdDogKHsgcHJvcHMgfSkgPT4gWydwLXNwbGl0dGVyIHAtY29tcG9uZW50JywgJ3Atc3BsaXR0ZXItJyArIHByb3BzLmxheW91dF0sXG4gICAgZ3V0dGVyOiAncC1zcGxpdHRlci1ndXR0ZXInLFxuICAgIGd1dHRlckhhbmRsZTogJ3Atc3BsaXR0ZXItZ3V0dGVyLWhhbmRsZSdcbn07XG5cbi8qY29uc3QgaW5saW5lU3R5bGVzID0ge1xuICAgIHJvb3Q6ICh7IHByb3BzIH0pID0+IFt7IGRpc3BsYXk6ICdmbGV4JywgJ2ZsZXgtd3JhcCc6ICdub3dyYXAnIH0sIHByb3BzLmxheW91dCA9PT0gJ3ZlcnRpY2FsJyA/IHsgJ2ZsZXgtZGlyZWN0aW9uJzogJ2NvbHVtbicgfSA6ICcnXVxufTsqL1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3BsaXR0ZXJTdHlsZSBleHRlbmRzIEJhc2VTdHlsZSB7XG4gICAgbmFtZSA9ICdzcGxpdHRlcic7XG5cbiAgICB0aGVtZSA9IHRoZW1lO1xuXG4gICAgY2xhc3NlcyA9IGNsYXNzZXM7XG5cbiAgICAvL2lubGluZVN0eWxlcyA9IGlubGluZVN0eWxlcztcbn1cblxuLyoqXG4gKlxuICogU3BsaXR0ZXIgaXMgdXRpbGl6ZWQgdG8gc2VwYXJhdGUgYW5kIHJlc2l6ZSBwYW5lbHMuXG4gKlxuICogW0xpdmUgRGVtb10oaHR0cHM6Ly93d3cucHJpbWVuZy5vcmcvc3BsaXR0ZXIvKVxuICpcbiAqIEBtb2R1bGUgc3BsaXR0ZXJzdHlsZVxuICpcbiAqL1xuZXhwb3J0IGVudW0gU3BsaXR0ZXJDbGFzc2VzIHtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSByb290IGVsZW1lbnRcbiAgICAgKi9cbiAgICByb290ID0gJ3Atc3BsaXR0ZXInLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGd1dHRlciBlbGVtZW50XG4gICAgICovXG4gICAgZ3V0dGVyID0gJ3Atc3BsaXR0ZXItZ3V0dGVyJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBndXR0ZXIgaGFuZGxlIGVsZW1lbnRcbiAgICAgKi9cbiAgICBndXR0ZXJIYW5kbGUgPSAncC1zcGxpdHRlci1ndXR0ZXItaGFuZGxlJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwbGl0dGVyU3R5bGUgZXh0ZW5kcyBCYXNlU3R5bGUge31cbiJdfQ==