primeng 18.0.0-rc.1 → 18.0.0

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 (418) hide show
  1. package/LICENSE.md +1 -1
  2. package/accordion/accordion.d.ts +2 -4
  3. package/api/primeicons.d.ts +3 -3
  4. package/api/scrolleroptions.d.ts +10 -0
  5. package/api/selectitemgroup.d.ts +2 -2
  6. package/api/shared.d.ts +2 -2
  7. package/autocomplete/autocomplete.d.ts +6 -7
  8. package/badge/badge.d.ts +16 -2
  9. package/blockui/blockui.d.ts +2 -2
  10. package/breadcrumb/breadcrumb.d.ts +3 -4
  11. package/button/button.d.ts +3 -4
  12. package/calendar/calendar.d.ts +12 -12
  13. package/card/card.d.ts +2 -2
  14. package/carousel/carousel.d.ts +3 -3
  15. package/cascadeselect/cascadeselect.d.ts +31 -15
  16. package/cascadeselect/style/cascadeselectstyle.d.ts +8 -1
  17. package/checkbox/checkbox.d.ts +2 -2
  18. package/chip/chip.d.ts +2 -2
  19. package/config/primeng.d.ts +12 -6
  20. package/config/provideprimeng.d.ts +1 -12
  21. package/config/themeprovider.d.ts +10 -4
  22. package/confirmdialog/confirmdialog.d.ts +4 -3
  23. package/confirmpopup/confirmpopup.d.ts +3 -4
  24. package/contextmenu/contextmenu.d.ts +2 -2
  25. package/dataview/dataview.d.ts +9 -10
  26. package/datepicker/datepicker.d.ts +8 -8
  27. package/defer/defer.d.ts +2 -0
  28. package/dialog/dialog.d.ts +4 -4
  29. package/drawer/drawer.d.ts +2 -2
  30. package/dropdown/dropdown.d.ts +0 -23
  31. package/editor/editor.d.ts +2 -2
  32. package/esm2022/accordion/accordion.mjs +9 -35
  33. package/esm2022/accordion/style/accordionstyle.mjs +9 -7
  34. package/esm2022/api/primeicons.mjs +4 -4
  35. package/esm2022/api/scrolleroptions.mjs +1 -1
  36. package/esm2022/api/selectitemgroup.mjs +1 -1
  37. package/esm2022/api/shared.mjs +6 -6
  38. package/esm2022/autocomplete/autocomplete.mjs +272 -308
  39. package/esm2022/autocomplete/style/autocompletestyle.mjs +16 -15
  40. package/esm2022/avatar/avatar.mjs +3 -3
  41. package/esm2022/avatar/style/avatarstyle.mjs +3 -3
  42. package/esm2022/badge/badge.mjs +33 -3
  43. package/esm2022/badge/style/badgestyle.mjs +3 -3
  44. package/esm2022/base/style/basestyle.mjs +6 -4
  45. package/esm2022/basecomponent/basecomponent.mjs +8 -2
  46. package/esm2022/blockui/blockui.mjs +6 -6
  47. package/esm2022/breadcrumb/breadcrumb.mjs +94 -101
  48. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +5 -1
  49. package/esm2022/button/button.mjs +19 -37
  50. package/esm2022/button/style/buttonstyle.mjs +17 -7
  51. package/esm2022/buttongroup/style/buttongroupstyle.mjs +9 -9
  52. package/esm2022/calendar/calendar.mjs +115 -115
  53. package/esm2022/calendar/style/calendarstyle.mjs +5 -5
  54. package/esm2022/card/card.mjs +10 -9
  55. package/esm2022/carousel/carousel.mjs +20 -19
  56. package/esm2022/carousel/style/carouselstyle.mjs +10 -1
  57. package/esm2022/cascadeselect/cascadeselect.mjs +182 -107
  58. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +37 -22
  59. package/esm2022/checkbox/checkbox.mjs +8 -8
  60. package/esm2022/chip/chip.mjs +10 -10
  61. package/esm2022/chip/style/chipstyle.mjs +2 -2
  62. package/esm2022/colorpicker/colorpicker.mjs +2 -2
  63. package/esm2022/colorpicker/style/colorpickerstyle.mjs +29 -1
  64. package/esm2022/config/primeng.mjs +14 -18
  65. package/esm2022/config/provideprimeng.mjs +11 -3
  66. package/esm2022/config/themeprovider.mjs +10 -16
  67. package/esm2022/confirmdialog/confirmdialog.mjs +26 -18
  68. package/esm2022/confirmpopup/confirmpopup.mjs +45 -36
  69. package/esm2022/contextmenu/contextmenu.mjs +13 -13
  70. package/esm2022/contextmenu/style/contextmenustyle.mjs +11 -1
  71. package/esm2022/dataview/dataview.mjs +39 -113
  72. package/esm2022/datepicker/datepicker.mjs +93 -93
  73. package/esm2022/datepicker/style/datepickerstyle.mjs +23 -16
  74. package/esm2022/defer/defer.mjs +7 -1
  75. package/esm2022/dialog/dialog.mjs +44 -43
  76. package/esm2022/dialog/style/dialogstyle.mjs +22 -1
  77. package/esm2022/divider/style/dividerstyle.mjs +18 -14
  78. package/esm2022/dock/style/dockstyle.mjs +11 -1
  79. package/esm2022/drawer/drawer.mjs +11 -11
  80. package/esm2022/drawer/style/drawerstyle.mjs +5 -1
  81. package/esm2022/dropdown/dropdown.mjs +4 -18
  82. package/esm2022/dropdown/style/dropdownstyle.mjs +4 -4
  83. package/esm2022/dynamicdialog/dialogservice.mjs +2 -2
  84. package/esm2022/editor/editor.mjs +1 -1
  85. package/esm2022/editor/style/editorstyle.mjs +52 -158
  86. package/esm2022/fieldset/fieldset.mjs +20 -21
  87. package/esm2022/fileupload/fileupload.mjs +108 -68
  88. package/esm2022/floatlabel/style/floatlabelstyle.mjs +5 -5
  89. package/esm2022/galleria/galleria.mjs +6 -1
  90. package/esm2022/galleria/style/galleriastyle.mjs +18 -1
  91. package/esm2022/iconfield/style/iconfieldstyle.mjs +2 -2
  92. package/esm2022/iftalabel/iftalabel.mjs +6 -6
  93. package/esm2022/iftalabel/style/iftalabelstyle.mjs +5 -5
  94. package/esm2022/image/image.mjs +37 -70
  95. package/esm2022/image/style/imagestyle.mjs +7 -7
  96. package/esm2022/imagecompare/imagecompare.mjs +158 -0
  97. package/esm2022/imagecompare/primeng-imagecompare.mjs +5 -0
  98. package/esm2022/imagecompare/public_api.mjs +3 -0
  99. package/esm2022/imagecompare/style/imagecomparestyle.mjs +124 -0
  100. package/esm2022/inplace/inplace.mjs +8 -8
  101. package/esm2022/inputmask/inputmask.mjs +13 -13
  102. package/esm2022/inputmask/style/inputmaskstyle.mjs +14 -7
  103. package/esm2022/inputnumber/inputnumber.mjs +44 -46
  104. package/esm2022/inputnumber/style/inputnumberstyle.mjs +27 -19
  105. package/esm2022/inputotp/inputotp.mjs +4 -16
  106. package/esm2022/inputtext/inputtext.mjs +11 -10
  107. package/esm2022/inputtext/style/inputtextstyle.mjs +15 -9
  108. package/esm2022/keyfilter/keyfilter.mjs +4 -3
  109. package/esm2022/listbox/listbox.mjs +8 -53
  110. package/esm2022/megamenu/megamenu.mjs +18 -18
  111. package/esm2022/megamenu/style/megamenustyle.mjs +17 -1
  112. package/esm2022/menu/menu.mjs +47 -29
  113. package/esm2022/menubar/menubar.mjs +25 -25
  114. package/esm2022/menubar/style/menubarstyle.mjs +22 -2
  115. package/esm2022/message/message.mjs +12 -12
  116. package/esm2022/messages/messages.mjs +2 -1
  117. package/esm2022/metergroup/style/metergroupstyle.mjs +9 -9
  118. package/esm2022/multiselect/multiselect.mjs +214 -202
  119. package/esm2022/multiselect/style/multiselectstyle.mjs +13 -18
  120. package/esm2022/orderlist/orderlist.mjs +38 -80
  121. package/esm2022/organizationchart/style/organizationchartstyle.mjs +11 -22
  122. package/esm2022/overlay/style/overlaystyle.mjs +2 -2
  123. package/esm2022/overlaypanel/overlaypanel.mjs +25 -25
  124. package/esm2022/paginator/paginator.mjs +48 -48
  125. package/esm2022/paginator/style/paginatorstyle.mjs +10 -3
  126. package/esm2022/panel/panel.mjs +17 -37
  127. package/esm2022/panelmenu/panelmenu.mjs +32 -43
  128. package/esm2022/panelmenu/style/panelmenustyle.mjs +13 -5
  129. package/esm2022/password/password.mjs +53 -30
  130. package/esm2022/password/style/passwordstyle.mjs +14 -6
  131. package/esm2022/picklist/picklist.mjs +136 -112
  132. package/esm2022/popover/popover.mjs +22 -26
  133. package/esm2022/progressbar/style/progressbarstyle.mjs +29 -29
  134. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +2 -2
  135. package/esm2022/rating/rating.mjs +12 -12
  136. package/esm2022/ripple/ripple.mjs +5 -2
  137. package/esm2022/scroller/scroller.mjs +9 -9
  138. package/esm2022/scrollpanel/scrollpanel.mjs +4 -4
  139. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +3 -2
  140. package/esm2022/scrolltop/style/scrolltopstyle.mjs +7 -2
  141. package/esm2022/select/select.mjs +70 -116
  142. package/esm2022/select/style/selectstyle.mjs +14 -23
  143. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +5 -5
  144. package/esm2022/sidebar/sidebar.mjs +2 -2
  145. package/esm2022/skeleton/style/skeletonstyle.mjs +15 -2
  146. package/esm2022/slider/slider.mjs +18 -11
  147. package/esm2022/slider/style/sliderstyle.mjs +6 -6
  148. package/esm2022/speeddial/speeddial.mjs +1 -16
  149. package/esm2022/speeddial/style/speeddialstyle.mjs +2 -2
  150. package/esm2022/splitbutton/splitbutton.mjs +8 -8
  151. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +9 -9
  152. package/esm2022/splitter/splitter.mjs +79 -29
  153. package/esm2022/splitter/style/splitterstyle.mjs +5 -4
  154. package/esm2022/stepper/style/stepperstyle.mjs +6 -1
  155. package/esm2022/styleclass/styleclass.mjs +2 -2
  156. package/esm2022/table/style/tablestyle.mjs +14 -7
  157. package/esm2022/table/table.mjs +6649 -6669
  158. package/esm2022/tabmenu/tabmenu.mjs +15 -33
  159. package/esm2022/tabs/tab.mjs +4 -3
  160. package/esm2022/tabs/tablist.mjs +9 -6
  161. package/esm2022/tabview/tabview.mjs +72 -64
  162. package/esm2022/terminal/style/terminalstyle.mjs +2 -2
  163. package/esm2022/textarea/style/textareastyle.mjs +9 -7
  164. package/esm2022/textarea/textarea.mjs +9 -9
  165. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +6 -1
  166. package/esm2022/tieredmenu/tieredmenu.mjs +13 -13
  167. package/esm2022/timeline/style/timelinestyle.mjs +2 -1
  168. package/esm2022/timeline/timeline.mjs +1 -16
  169. package/esm2022/toast/style/toaststyle.mjs +7 -1
  170. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +2 -2
  171. package/esm2022/toggleswitch/toggleswitch.mjs +1 -10
  172. package/esm2022/tooltip/tooltip.mjs +34 -26
  173. package/esm2022/tree/style/treestyle.mjs +20 -8
  174. package/esm2022/tree/tree.mjs +138 -97
  175. package/esm2022/treeselect/style/treeselectstyle.mjs +15 -15
  176. package/esm2022/treeselect/treeselect.mjs +50 -50
  177. package/esm2022/treetable/style/treetablestyle.mjs +4 -4
  178. package/esm2022/treetable/treetable.mjs +20 -4
  179. package/esm2022/usestyle/usestyle.mjs +3 -2
  180. package/fesm2022/primeng-accordion.mjs +16 -40
  181. package/fesm2022/primeng-accordion.mjs.map +1 -1
  182. package/fesm2022/primeng-api.mjs +8 -8
  183. package/fesm2022/primeng-api.mjs.map +1 -1
  184. package/fesm2022/primeng-autocomplete.mjs +286 -321
  185. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  186. package/fesm2022/primeng-avatar.mjs +4 -4
  187. package/fesm2022/primeng-avatar.mjs.map +1 -1
  188. package/fesm2022/primeng-badge.mjs +34 -4
  189. package/fesm2022/primeng-badge.mjs.map +1 -1
  190. package/fesm2022/primeng-base.mjs +5 -3
  191. package/fesm2022/primeng-base.mjs.map +1 -1
  192. package/fesm2022/primeng-basecomponent.mjs +7 -1
  193. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  194. package/fesm2022/primeng-blockui.mjs +5 -5
  195. package/fesm2022/primeng-blockui.mjs.map +1 -1
  196. package/fesm2022/primeng-breadcrumb.mjs +97 -100
  197. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  198. package/fesm2022/primeng-button.mjs +34 -42
  199. package/fesm2022/primeng-button.mjs.map +1 -1
  200. package/fesm2022/primeng-buttongroup.mjs +8 -8
  201. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  202. package/fesm2022/primeng-calendar.mjs +118 -118
  203. package/fesm2022/primeng-calendar.mjs.map +1 -1
  204. package/fesm2022/primeng-card.mjs +9 -8
  205. package/fesm2022/primeng-card.mjs.map +1 -1
  206. package/fesm2022/primeng-carousel.mjs +28 -18
  207. package/fesm2022/primeng-carousel.mjs.map +1 -1
  208. package/fesm2022/primeng-cascadeselect.mjs +218 -128
  209. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  210. package/fesm2022/primeng-checkbox.mjs +7 -7
  211. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  212. package/fesm2022/primeng-chip.mjs +10 -10
  213. package/fesm2022/primeng-chip.mjs.map +1 -1
  214. package/fesm2022/primeng-colorpicker.mjs +29 -1
  215. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  216. package/fesm2022/primeng-config.mjs +38 -39
  217. package/fesm2022/primeng-config.mjs.map +1 -1
  218. package/fesm2022/primeng-confirmdialog.mjs +25 -17
  219. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  220. package/fesm2022/primeng-confirmpopup.mjs +44 -35
  221. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  222. package/fesm2022/primeng-contextmenu.mjs +22 -12
  223. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  224. package/fesm2022/primeng-dataview.mjs +38 -112
  225. package/fesm2022/primeng-dataview.mjs.map +1 -1
  226. package/fesm2022/primeng-datepicker.mjs +114 -107
  227. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  228. package/fesm2022/primeng-defer.mjs +6 -0
  229. package/fesm2022/primeng-defer.mjs.map +1 -1
  230. package/fesm2022/primeng-dialog.mjs +64 -42
  231. package/fesm2022/primeng-dialog.mjs.map +1 -1
  232. package/fesm2022/primeng-divider.mjs +17 -13
  233. package/fesm2022/primeng-divider.mjs.map +1 -1
  234. package/fesm2022/primeng-dock.mjs +10 -0
  235. package/fesm2022/primeng-dock.mjs.map +1 -1
  236. package/fesm2022/primeng-drawer.mjs +14 -10
  237. package/fesm2022/primeng-drawer.mjs.map +1 -1
  238. package/fesm2022/primeng-dropdown.mjs +6 -20
  239. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  240. package/fesm2022/primeng-dynamicdialog.mjs +1 -1
  241. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  242. package/fesm2022/primeng-editor.mjs +51 -157
  243. package/fesm2022/primeng-editor.mjs.map +1 -1
  244. package/fesm2022/primeng-fieldset.mjs +19 -20
  245. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  246. package/fesm2022/primeng-fileupload.mjs +107 -67
  247. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  248. package/fesm2022/primeng-floatlabel.mjs +4 -4
  249. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  250. package/fesm2022/primeng-galleria.mjs +22 -0
  251. package/fesm2022/primeng-galleria.mjs.map +1 -1
  252. package/fesm2022/primeng-iconfield.mjs +1 -1
  253. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  254. package/fesm2022/primeng-iftalabel.mjs +9 -9
  255. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  256. package/fesm2022/primeng-image.mjs +42 -75
  257. package/fesm2022/primeng-image.mjs.map +1 -1
  258. package/fesm2022/primeng-imagecompare.mjs +286 -0
  259. package/fesm2022/primeng-imagecompare.mjs.map +1 -0
  260. package/fesm2022/primeng-inplace.mjs +7 -7
  261. package/fesm2022/primeng-inplace.mjs.map +1 -1
  262. package/fesm2022/primeng-inputmask.mjs +25 -18
  263. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  264. package/fesm2022/primeng-inputnumber.mjs +69 -63
  265. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  266. package/fesm2022/primeng-inputotp.mjs +3 -15
  267. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  268. package/fesm2022/primeng-inputtext.mjs +24 -17
  269. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  270. package/fesm2022/primeng-keyfilter.mjs +3 -2
  271. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  272. package/fesm2022/primeng-listbox.mjs +7 -52
  273. package/fesm2022/primeng-listbox.mjs.map +1 -1
  274. package/fesm2022/primeng-megamenu.mjs +33 -17
  275. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  276. package/fesm2022/primeng-menu.mjs +46 -28
  277. package/fesm2022/primeng-menu.mjs.map +1 -1
  278. package/fesm2022/primeng-menubar.mjs +45 -25
  279. package/fesm2022/primeng-menubar.mjs.map +1 -1
  280. package/fesm2022/primeng-message.mjs +11 -11
  281. package/fesm2022/primeng-message.mjs.map +1 -1
  282. package/fesm2022/primeng-messages.mjs +1 -0
  283. package/fesm2022/primeng-messages.mjs.map +1 -1
  284. package/fesm2022/primeng-metergroup.mjs +8 -8
  285. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  286. package/fesm2022/primeng-multiselect.mjs +225 -218
  287. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  288. package/fesm2022/primeng-orderlist.mjs +37 -79
  289. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  290. package/fesm2022/primeng-organizationchart.mjs +10 -21
  291. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  292. package/fesm2022/primeng-overlay.mjs +1 -1
  293. package/fesm2022/primeng-overlay.mjs.map +1 -1
  294. package/fesm2022/primeng-overlaypanel.mjs +24 -24
  295. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  296. package/fesm2022/primeng-paginator.mjs +56 -49
  297. package/fesm2022/primeng-paginator.mjs.map +1 -1
  298. package/fesm2022/primeng-panel.mjs +16 -36
  299. package/fesm2022/primeng-panel.mjs.map +1 -1
  300. package/fesm2022/primeng-panelmenu.mjs +43 -46
  301. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  302. package/fesm2022/primeng-password.mjs +65 -34
  303. package/fesm2022/primeng-password.mjs.map +1 -1
  304. package/fesm2022/primeng-picklist.mjs +135 -111
  305. package/fesm2022/primeng-picklist.mjs.map +1 -1
  306. package/fesm2022/primeng-popover.mjs +21 -25
  307. package/fesm2022/primeng-popover.mjs.map +1 -1
  308. package/fesm2022/primeng-progressbar.mjs +28 -28
  309. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  310. package/fesm2022/primeng-radiobutton.mjs +1 -1
  311. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  312. package/fesm2022/primeng-rating.mjs +11 -11
  313. package/fesm2022/primeng-rating.mjs.map +1 -1
  314. package/fesm2022/primeng-ripple.mjs +4 -1
  315. package/fesm2022/primeng-ripple.mjs.map +1 -1
  316. package/fesm2022/primeng-scroller.mjs +8 -8
  317. package/fesm2022/primeng-scroller.mjs.map +1 -1
  318. package/fesm2022/primeng-scrollpanel.mjs +5 -4
  319. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  320. package/fesm2022/primeng-scrolltop.mjs +6 -1
  321. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  322. package/fesm2022/primeng-select.mjs +82 -137
  323. package/fesm2022/primeng-select.mjs.map +1 -1
  324. package/fesm2022/primeng-selectbutton.mjs +4 -4
  325. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  326. package/fesm2022/primeng-sidebar.mjs +1 -1
  327. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  328. package/fesm2022/primeng-skeleton.mjs +14 -1
  329. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  330. package/fesm2022/primeng-slider.mjs +22 -15
  331. package/fesm2022/primeng-slider.mjs.map +1 -1
  332. package/fesm2022/primeng-speeddial.mjs +1 -16
  333. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  334. package/fesm2022/primeng-splitbutton.mjs +15 -15
  335. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  336. package/fesm2022/primeng-splitter.mjs +84 -33
  337. package/fesm2022/primeng-splitter.mjs.map +1 -1
  338. package/fesm2022/primeng-stepper.mjs +5 -0
  339. package/fesm2022/primeng-stepper.mjs.map +1 -1
  340. package/fesm2022/primeng-styleclass.mjs +1 -1
  341. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  342. package/fesm2022/primeng-table.mjs +6663 -6676
  343. package/fesm2022/primeng-table.mjs.map +1 -1
  344. package/fesm2022/primeng-tabmenu.mjs +14 -32
  345. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  346. package/fesm2022/primeng-tabs.mjs +11 -7
  347. package/fesm2022/primeng-tabs.mjs.map +1 -1
  348. package/fesm2022/primeng-tabview.mjs +71 -63
  349. package/fesm2022/primeng-tabview.mjs.map +1 -1
  350. package/fesm2022/primeng-terminal.mjs +1 -1
  351. package/fesm2022/primeng-terminal.mjs.map +1 -1
  352. package/fesm2022/primeng-textarea.mjs +16 -14
  353. package/fesm2022/primeng-textarea.mjs.map +1 -1
  354. package/fesm2022/primeng-tieredmenu.mjs +17 -12
  355. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  356. package/fesm2022/primeng-timeline.mjs +1 -15
  357. package/fesm2022/primeng-timeline.mjs.map +1 -1
  358. package/fesm2022/primeng-toast.mjs +6 -0
  359. package/fesm2022/primeng-toast.mjs.map +1 -1
  360. package/fesm2022/primeng-togglebutton.mjs +1 -1
  361. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  362. package/fesm2022/primeng-toggleswitch.mjs +0 -9
  363. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  364. package/fesm2022/primeng-tooltip.mjs +33 -25
  365. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  366. package/fesm2022/primeng-tree.mjs +156 -103
  367. package/fesm2022/primeng-tree.mjs.map +1 -1
  368. package/fesm2022/primeng-treeselect.mjs +63 -63
  369. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  370. package/fesm2022/primeng-treetable.mjs +22 -6
  371. package/fesm2022/primeng-treetable.mjs.map +1 -1
  372. package/fesm2022/primeng-usestyle.mjs +2 -1
  373. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  374. package/fieldset/fieldset.d.ts +3 -3
  375. package/fileupload/fileupload.d.ts +21 -5
  376. package/iftalabel/iftalabel.d.ts +2 -2
  377. package/image/image.d.ts +6 -7
  378. package/imagecompare/imagecompare.d.ts +52 -0
  379. package/imagecompare/index.d.ts +5 -0
  380. package/imagecompare/public_api.d.ts +2 -0
  381. package/imagecompare/style/imagecomparestyle.d.ts +35 -0
  382. package/inplace/inplace.d.ts +2 -2
  383. package/inputmask/inputmask.d.ts +2 -2
  384. package/inputnumber/inputnumber.d.ts +4 -5
  385. package/inputotp/inputotp.d.ts +1 -2
  386. package/inputtext/inputtext.d.ts +2 -2
  387. package/listbox/listbox.d.ts +2 -3
  388. package/megamenu/megamenu.d.ts +4 -4
  389. package/menu/menu.d.ts +10 -4
  390. package/menubar/menubar.d.ts +5 -5
  391. package/message/message.d.ts +2 -2
  392. package/multiselect/multiselect.d.ts +16 -16
  393. package/orderlist/orderlist.d.ts +10 -11
  394. package/overlaypanel/overlaypanel.d.ts +3 -4
  395. package/package.json +172 -166
  396. package/paginator/paginator.d.ts +6 -6
  397. package/panel/panel.d.ts +3 -4
  398. package/panelmenu/panelmenu.d.ts +2 -3
  399. package/password/password.d.ts +9 -5
  400. package/popover/popover.d.ts +7 -5
  401. package/rating/rating.d.ts +4 -4
  402. package/scroller/scroller.d.ts +2 -2
  403. package/select/select.d.ts +12 -13
  404. package/speeddial/speeddial.d.ts +2 -3
  405. package/splitbutton/splitbutton.d.ts +2 -2
  406. package/splitter/splitter.d.ts +11 -5
  407. package/splitter/style/splitterstyle.d.ts +0 -13
  408. package/table/table.d.ts +934 -995
  409. package/tabmenu/tabmenu.d.ts +5 -6
  410. package/tabview/tabview.d.ts +4 -5
  411. package/textarea/textarea.d.ts +2 -2
  412. package/tieredmenu/tieredmenu.d.ts +2 -2
  413. package/timeline/timeline.d.ts +0 -1
  414. package/toggleswitch/toggleswitch.d.ts +0 -1
  415. package/tooltip/tooltip.d.ts +2 -1
  416. package/tree/style/treestyle.d.ts +1 -1
  417. package/tree/tree.d.ts +9 -7
  418. package/treeselect/treeselect.d.ts +9 -9
@@ -58,7 +58,7 @@ function Paginator_div_0_button_3_span_2_Template(rf, ctx) { if (rf & 1) {
58
58
  } if (rf & 2) {
59
59
  const ctx_r1 = i0.ɵɵnextContext(3);
60
60
  i0.ɵɵadvance();
61
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.firstPageLinkIconTemplate);
61
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.firstpagelinkicon);
62
62
  } }
63
63
  function Paginator_div_0_button_3_Template(rf, ctx) { if (rf & 1) {
64
64
  const _r3 = i0.ɵɵgetCurrentView();
@@ -71,9 +71,9 @@ function Paginator_div_0_button_3_Template(rf, ctx) { if (rf & 1) {
71
71
  i0.ɵɵproperty("disabled", ctx_r1.isFirstPage() || ctx_r1.empty())("ngClass", i0.ɵɵpureFunction1(5, _c5, ctx_r1.isFirstPage() || ctx_r1.empty()));
72
72
  i0.ɵɵattribute("aria-label", ctx_r1.getAriaLabel("firstPageLabel"));
73
73
  i0.ɵɵadvance();
74
- i0.ɵɵproperty("ngIf", !ctx_r1.firstPageLinkIconTemplate);
74
+ i0.ɵɵproperty("ngIf", !ctx_r1.firstpagelinkicon);
75
75
  i0.ɵɵadvance();
76
- i0.ɵɵproperty("ngIf", ctx_r1.firstPageLinkIconTemplate);
76
+ i0.ɵɵproperty("ngIf", ctx_r1.firstpagelinkicon);
77
77
  } }
78
78
  function Paginator_div_0_AngleLeftIcon_5_Template(rf, ctx) { if (rf & 1) {
79
79
  i0.ɵɵelement(0, "AngleLeftIcon", 21);
@@ -91,7 +91,7 @@ function Paginator_div_0_span_6_Template(rf, ctx) { if (rf & 1) {
91
91
  } if (rf & 2) {
92
92
  const ctx_r1 = i0.ɵɵnextContext(2);
93
93
  i0.ɵɵadvance();
94
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.previousPageLinkIconTemplate);
94
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.previouspagelinkicon);
95
95
  } }
96
96
  function Paginator_div_0_span_7_button_1_Template(rf, ctx) { if (rf & 1) {
97
97
  const _r4 = i0.ɵɵgetCurrentView();
@@ -144,7 +144,7 @@ function Paginator_div_0_p_select_8_3_ng_template_0_Template(rf, ctx) { if (rf &
144
144
  i0.ɵɵtemplate(0, Paginator_div_0_p_select_8_3_ng_template_0_ng_container_0_Template, 1, 0, "ng-container", 23);
145
145
  } if (rf & 2) {
146
146
  const ctx_r1 = i0.ɵɵnextContext(4);
147
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.dropdownIconTemplate);
147
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.dropdownicon);
148
148
  } }
149
149
  function Paginator_div_0_p_select_8_3_Template(rf, ctx) { if (rf & 1) {
150
150
  i0.ɵɵtemplate(0, Paginator_div_0_p_select_8_3_ng_template_0_Template, 1, 1, "ng-template", 32);
@@ -162,7 +162,7 @@ function Paginator_div_0_p_select_8_Template(rf, ctx) { if (rf & 1) {
162
162
  i0.ɵɵadvance(2);
163
163
  i0.ɵɵproperty("ngIf", ctx_r1.jumpToPageItemTemplate);
164
164
  i0.ɵɵadvance();
165
- i0.ɵɵproperty("ngIf", ctx_r1.dropdownIconTemplate);
165
+ i0.ɵɵproperty("ngIf", ctx_r1.dropdownicon);
166
166
  } }
167
167
  function Paginator_div_0_AngleRightIcon_10_Template(rf, ctx) { if (rf & 1) {
168
168
  i0.ɵɵelement(0, "AngleRightIcon", 21);
@@ -180,7 +180,7 @@ function Paginator_div_0_span_11_Template(rf, ctx) { if (rf & 1) {
180
180
  } if (rf & 2) {
181
181
  const ctx_r1 = i0.ɵɵnextContext(2);
182
182
  i0.ɵɵadvance();
183
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.nextPageLinkIconTemplate);
183
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.nextpagelinkicon);
184
184
  } }
185
185
  function Paginator_div_0_button_12_AngleDoubleRightIcon_1_Template(rf, ctx) { if (rf & 1) {
186
186
  i0.ɵɵelement(0, "AngleDoubleRightIcon", 21);
@@ -198,7 +198,7 @@ function Paginator_div_0_button_12_span_2_Template(rf, ctx) { if (rf & 1) {
198
198
  } if (rf & 2) {
199
199
  const ctx_r1 = i0.ɵɵnextContext(3);
200
200
  i0.ɵɵadvance();
201
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.lastPageLinkIconTemplate);
201
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.lastpagelinkicon);
202
202
  } }
203
203
  function Paginator_div_0_button_12_Template(rf, ctx) { if (rf & 1) {
204
204
  const _r8 = i0.ɵɵgetCurrentView();
@@ -211,9 +211,9 @@ function Paginator_div_0_button_12_Template(rf, ctx) { if (rf & 1) {
211
211
  i0.ɵɵproperty("disabled", ctx_r1.isLastPage() || ctx_r1.empty())("ngClass", i0.ɵɵpureFunction1(5, _c5, ctx_r1.isLastPage() || ctx_r1.empty()));
212
212
  i0.ɵɵattribute("aria-label", ctx_r1.getAriaLabel("lastPageLabel"));
213
213
  i0.ɵɵadvance();
214
- i0.ɵɵproperty("ngIf", !ctx_r1.lastPageLinkIconTemplate);
214
+ i0.ɵɵproperty("ngIf", !ctx_r1.lastpagelinkicon);
215
215
  i0.ɵɵadvance();
216
- i0.ɵɵproperty("ngIf", ctx_r1.lastPageLinkIconTemplate);
216
+ i0.ɵɵproperty("ngIf", ctx_r1.lastpagelinkicon);
217
217
  } }
218
218
  function Paginator_div_0_p_inputnumber_13_Template(rf, ctx) { if (rf & 1) {
219
219
  const _r9 = i0.ɵɵgetCurrentView();
@@ -246,7 +246,7 @@ function Paginator_div_0_p_select_14_2_ng_template_0_Template(rf, ctx) { if (rf
246
246
  i0.ɵɵtemplate(0, Paginator_div_0_p_select_14_2_ng_template_0_ng_container_0_Template, 1, 0, "ng-container", 23);
247
247
  } if (rf & 2) {
248
248
  const ctx_r1 = i0.ɵɵnextContext(4);
249
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.dropdownIconTemplate);
249
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.dropdownicon);
250
250
  } }
251
251
  function Paginator_div_0_p_select_14_2_Template(rf, ctx) { if (rf & 1) {
252
252
  i0.ɵɵtemplate(0, Paginator_div_0_p_select_14_2_ng_template_0_Template, 1, 1, "ng-template", 32);
@@ -266,7 +266,7 @@ function Paginator_div_0_p_select_14_Template(rf, ctx) { if (rf & 1) {
266
266
  i0.ɵɵadvance();
267
267
  i0.ɵɵproperty("ngIf", ctx_r1.dropdownItemTemplate);
268
268
  i0.ɵɵadvance();
269
- i0.ɵɵproperty("ngIf", ctx_r1.dropdownIconTemplate);
269
+ i0.ɵɵproperty("ngIf", ctx_r1.dropdownicon);
270
270
  } }
271
271
  function Paginator_div_0_div_15_ng_container_1_Template(rf, ctx) { if (rf & 1) {
272
272
  i0.ɵɵelementContainer(0);
@@ -311,9 +311,9 @@ function Paginator_div_0_Template(rf, ctx) { if (rf & 1) {
311
311
  i0.ɵɵproperty("disabled", ctx_r1.isFirstPage() || ctx_r1.empty())("ngClass", i0.ɵɵpureFunction1(25, _c5, ctx_r1.isFirstPage() || ctx_r1.empty()));
312
312
  i0.ɵɵattribute("aria-label", ctx_r1.getAriaLabel("prevPageLabel"));
313
313
  i0.ɵɵadvance();
314
- i0.ɵɵproperty("ngIf", !ctx_r1.previousPageLinkIconTemplate);
314
+ i0.ɵɵproperty("ngIf", !ctx_r1.previouspagelinkicon);
315
315
  i0.ɵɵadvance();
316
- i0.ɵɵproperty("ngIf", ctx_r1.previousPageLinkIconTemplate);
316
+ i0.ɵɵproperty("ngIf", ctx_r1.previouspagelinkicon);
317
317
  i0.ɵɵadvance();
318
318
  i0.ɵɵproperty("ngIf", ctx_r1.showPageLinks);
319
319
  i0.ɵɵadvance();
@@ -322,9 +322,9 @@ function Paginator_div_0_Template(rf, ctx) { if (rf & 1) {
322
322
  i0.ɵɵproperty("disabled", ctx_r1.isLastPage() || ctx_r1.empty())("ngClass", i0.ɵɵpureFunction1(27, _c5, ctx_r1.isLastPage() || ctx_r1.empty()));
323
323
  i0.ɵɵattribute("aria-label", ctx_r1.getAriaLabel("nextPageLabel"));
324
324
  i0.ɵɵadvance();
325
- i0.ɵɵproperty("ngIf", !ctx_r1.nextPageLinkIconTemplate);
325
+ i0.ɵɵproperty("ngIf", !ctx_r1.nextpagelinkicon);
326
326
  i0.ɵɵadvance();
327
- i0.ɵɵproperty("ngIf", ctx_r1.nextPageLinkIconTemplate);
327
+ i0.ɵɵproperty("ngIf", ctx_r1.nextpagelinkicon);
328
328
  i0.ɵɵadvance();
329
329
  i0.ɵɵproperty("ngIf", ctx_r1.showFirstLastIcon);
330
330
  i0.ɵɵadvance();
@@ -468,27 +468,27 @@ export class Paginator extends BaseComponent {
468
468
  * Template for the dropdown icon.
469
469
  * @group Templates
470
470
  */
471
- dropdownIconTemplate;
471
+ dropdownicon;
472
472
  /**
473
473
  * Template for the first page link icon.
474
474
  * @group Templates
475
475
  */
476
- firstPageLinkIconTemplate;
476
+ firstpagelinkicon;
477
477
  /**
478
478
  * Template for the previous page link icon.
479
479
  * @group Templates
480
480
  */
481
- previousPageLinkIconTemplate;
481
+ previouspagelinkicon;
482
482
  /**
483
483
  * Template for the last page link icon.
484
484
  * @group Templates
485
485
  */
486
- lastPageLinkIconTemplate;
486
+ lastpagelinkicon;
487
487
  /**
488
488
  * Template for the next page link icon.
489
489
  * @group Templates
490
490
  */
491
- nextPageLinkIconTemplate;
491
+ nextpagelinkicon;
492
492
  pageLinks;
493
493
  pageItems;
494
494
  rowsPerPageItems;
@@ -675,11 +675,11 @@ export class Paginator extends BaseComponent {
675
675
  i0.ɵɵcontentQuery(dirIndex, _c4, 5);
676
676
  } if (rf & 2) {
677
677
  let _t;
678
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownIconTemplate = _t.first);
679
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.firstPageLinkIconTemplate = _t.first);
680
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.previousPageLinkIconTemplate = _t.first);
681
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lastPageLinkIconTemplate = _t.first);
682
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextPageLinkIconTemplate = _t.first);
678
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownicon = _t.first);
679
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.firstpagelinkicon = _t.first);
680
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.previouspagelinkicon = _t.first);
681
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lastpagelinkicon = _t.first);
682
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.nextpagelinkicon = _t.first);
683
683
  } }, inputs: { pageLinkSize: [2, "pageLinkSize", "pageLinkSize", numberAttribute], style: "style", styleClass: "styleClass", alwaysShow: [2, "alwaysShow", "alwaysShow", booleanAttribute], dropdownAppendTo: "dropdownAppendTo", templateLeft: "templateLeft", templateRight: "templateRight", appendTo: "appendTo", dropdownScrollHeight: "dropdownScrollHeight", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: [2, "showCurrentPageReport", "showCurrentPageReport", booleanAttribute], showFirstLastIcon: [2, "showFirstLastIcon", "showFirstLastIcon", booleanAttribute], totalRecords: [2, "totalRecords", "totalRecords", numberAttribute], rows: [2, "rows", "rows", numberAttribute], rowsPerPageOptions: "rowsPerPageOptions", showJumpToPageDropdown: [2, "showJumpToPageDropdown", "showJumpToPageDropdown", booleanAttribute], showJumpToPageInput: [2, "showJumpToPageInput", "showJumpToPageInput", booleanAttribute], jumpToPageItemTemplate: "jumpToPageItemTemplate", showPageLinks: [2, "showPageLinks", "showPageLinks", booleanAttribute], locale: "locale", dropdownItemTemplate: "dropdownItemTemplate", first: "first" }, outputs: { onPageChange: "onPageChange" }, standalone: true, features: [i0.ɵɵProvidersFeature([PaginatorStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [[3, "class", "ngStyle", "ngClass", 4, "ngIf"], [3, "ngStyle", "ngClass"], ["class", "p-paginator-content-start", 4, "ngIf"], ["class", "p-paginator-current", 4, "ngIf"], ["type", "button", "pRipple", "", "class", "p-paginator-first", 3, "disabled", "ngClass", "click", 4, "ngIf"], ["type", "button", "pRipple", "", 1, "p-paginator-prev", 3, "click", "disabled", "ngClass"], [3, "styleClass", 4, "ngIf"], ["class", "p-paginator-prev-icon", 4, "ngIf"], ["class", "p-paginator-pages", 4, "ngIf"], ["styleClass", "p-paginator-jtp-dropdown", 3, "options", "ngModel", "disabled", "appendTo", "scrollHeight", "onChange", 4, "ngIf"], ["type", "button", "pRipple", "", 1, "p-paginator-next", 3, "click", "disabled", "ngClass"], ["class", "p-paginator-next-icon", 4, "ngIf"], ["type", "button", "pRipple", "", "class", "p-paginator-last", 3, "disabled", "ngClass", "click", 4, "ngIf"], ["class", "p-paginator-jtp-input", 3, "ngModel", "disabled", "ngModelChange", 4, "ngIf"], ["styleClass", "p-paginator-rpp-dropdown", 3, "options", "ngModel", "disabled", "appendTo", "scrollHeight", "ariaLabel", "ngModelChange", "onChange", 4, "ngIf"], ["class", "p-paginator-content-end", 4, "ngIf"], [1, "p-paginator-content-start"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "p-paginator-current"], ["type", "button", "pRipple", "", 1, "p-paginator-first", 3, "click", "disabled", "ngClass"], ["class", "p-paginator-first-icon", 4, "ngIf"], [3, "styleClass"], [1, "p-paginator-first-icon"], [4, "ngTemplateOutlet"], [1, "p-paginator-prev-icon"], [1, "p-paginator-pages"], ["type", "button", "class", "p-paginator-page", "pRipple", "", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], ["type", "button", "pRipple", "", 1, "p-paginator-page", 3, "click", "ngClass"], ["styleClass", "p-paginator-jtp-dropdown", 3, "onChange", "options", "ngModel", "disabled", "appendTo", "scrollHeight"], ["pTemplate", "selectedItem"], [4, "ngIf"], ["pTemplate", "item"], ["pTemplate", "dropdownicon"], [1, "p-paginator-next-icon"], ["type", "button", "pRipple", "", 1, "p-paginator-last", 3, "click", "disabled", "ngClass"], ["class", "p-paginator-last-icon", 4, "ngIf"], [1, "p-paginator-last-icon"], [1, "p-paginator-jtp-input", 3, "ngModelChange", "ngModel", "disabled"], ["styleClass", "p-paginator-rpp-dropdown", 3, "ngModelChange", "onChange", "options", "ngModel", "disabled", "appendTo", "scrollHeight", "ariaLabel"], [1, "p-paginator-content-end"]], template: function Paginator_Template(rf, ctx) { if (rf & 1) {
684
684
  i0.ɵɵtemplate(0, Paginator_div_0_Template, 16, 29, "div", 0);
685
685
  } if (rf & 2) {
@@ -708,15 +708,15 @@ export class Paginator extends BaseComponent {
708
708
  [ngClass]="{ 'p-disabled': isFirstPage() || empty() }"
709
709
  [attr.aria-label]="getAriaLabel('firstPageLabel')"
710
710
  >
711
- <AngleDoubleLeftIcon *ngIf="!firstPageLinkIconTemplate" [styleClass]="'p-paginator-first-icon'" />
712
- <span class="p-paginator-first-icon" *ngIf="firstPageLinkIconTemplate">
713
- <ng-template *ngTemplateOutlet="firstPageLinkIconTemplate"></ng-template>
711
+ <AngleDoubleLeftIcon *ngIf="!firstpagelinkicon" [styleClass]="'p-paginator-first-icon'" />
712
+ <span class="p-paginator-first-icon" *ngIf="firstpagelinkicon">
713
+ <ng-template *ngTemplateOutlet="firstpagelinkicon"></ng-template>
714
714
  </span>
715
715
  </button>
716
716
  <button type="button" [disabled]="isFirstPage() || empty()" (click)="changePageToPrev($event)" pRipple class="p-paginator-prev" [ngClass]="{ 'p-disabled': isFirstPage() || empty() }" [attr.aria-label]="getAriaLabel('prevPageLabel')">
717
- <AngleLeftIcon *ngIf="!previousPageLinkIconTemplate" [styleClass]="'p-paginator-prev-icon'" />
718
- <span class="p-paginator-prev-icon" *ngIf="previousPageLinkIconTemplate">
719
- <ng-template *ngTemplateOutlet="previousPageLinkIconTemplate"></ng-template>
717
+ <AngleLeftIcon *ngIf="!previouspagelinkicon" [styleClass]="'p-paginator-prev-icon'" />
718
+ <span class="p-paginator-prev-icon" *ngIf="previouspagelinkicon">
719
+ <ng-template *ngTemplateOutlet="previouspagelinkicon"></ng-template>
720
720
  </span>
721
721
  </button>
722
722
  <span class="p-paginator-pages" *ngIf="showPageLinks">
@@ -750,14 +750,14 @@ export class Paginator extends BaseComponent {
750
750
  <ng-container *ngTemplateOutlet="jumpToPageItemTemplate; context: { $implicit: item }"></ng-container>
751
751
  </ng-template>
752
752
  </ng-container>
753
- <ng-template pTemplate="dropdownicon" *ngIf="dropdownIconTemplate">
754
- <ng-container *ngTemplateOutlet="dropdownIconTemplate"></ng-container>
753
+ <ng-template pTemplate="dropdownicon" *ngIf="dropdownicon">
754
+ <ng-container *ngTemplateOutlet="dropdownicon"></ng-container>
755
755
  </ng-template>
756
756
  </p-select>
757
757
  <button type="button" [disabled]="isLastPage() || empty()" (click)="changePageToNext($event)" pRipple class="p-paginator-next" [ngClass]="{ 'p-disabled': isLastPage() || empty() }" [attr.aria-label]="getAriaLabel('nextPageLabel')">
758
- <AngleRightIcon *ngIf="!nextPageLinkIconTemplate" [styleClass]="'p-paginator-next-icon'" />
759
- <span class="p-paginator-next-icon" *ngIf="nextPageLinkIconTemplate">
760
- <ng-template *ngTemplateOutlet="nextPageLinkIconTemplate"></ng-template>
758
+ <AngleRightIcon *ngIf="!nextpagelinkicon" [styleClass]="'p-paginator-next-icon'" />
759
+ <span class="p-paginator-next-icon" *ngIf="nextpagelinkicon">
760
+ <ng-template *ngTemplateOutlet="nextpagelinkicon"></ng-template>
761
761
  </span>
762
762
  </button>
763
763
  <button
@@ -770,9 +770,9 @@ export class Paginator extends BaseComponent {
770
770
  [ngClass]="{ 'p-disabled': isLastPage() || empty() }"
771
771
  [attr.aria-label]="getAriaLabel('lastPageLabel')"
772
772
  >
773
- <AngleDoubleRightIcon *ngIf="!lastPageLinkIconTemplate" [styleClass]="'p-paginator-last-icon'" />
774
- <span class="p-paginator-last-icon" *ngIf="lastPageLinkIconTemplate">
775
- <ng-template *ngTemplateOutlet="lastPageLinkIconTemplate"></ng-template>
773
+ <AngleDoubleRightIcon *ngIf="!lastpagelinkicon" [styleClass]="'p-paginator-last-icon'" />
774
+ <span class="p-paginator-last-icon" *ngIf="lastpagelinkicon">
775
+ <ng-template *ngTemplateOutlet="lastpagelinkicon"></ng-template>
776
776
  </span>
777
777
  </button>
778
778
  <p-inputnumber *ngIf="showJumpToPageInput" [ngModel]="currentPage()" class="p-paginator-jtp-input" [disabled]="empty()" (ngModelChange)="changePage($event - 1)"></p-inputnumber>
@@ -792,8 +792,8 @@ export class Paginator extends BaseComponent {
792
792
  <ng-container *ngTemplateOutlet="dropdownItemTemplate; context: { $implicit: item }"></ng-container>
793
793
  </ng-template>
794
794
  </ng-container>
795
- <ng-template pTemplate="dropdownicon" *ngIf="dropdownIconTemplate">
796
- <ng-container *ngTemplateOutlet="dropdownIconTemplate"></ng-container>
795
+ <ng-template pTemplate="dropdownicon" *ngIf="dropdownicon">
796
+ <ng-container *ngTemplateOutlet="dropdownicon"></ng-container>
797
797
  </ng-template>
798
798
  </p-select>
799
799
  <div class="p-paginator-content-end" *ngIf="templateRight" [attr.data-pc-section]="'end'">
@@ -860,19 +860,19 @@ export class Paginator extends BaseComponent {
860
860
  type: Input
861
861
  }], onPageChange: [{
862
862
  type: Output
863
- }], dropdownIconTemplate: [{
863
+ }], dropdownicon: [{
864
864
  type: ContentChild,
865
865
  args: ['dropdownicon']
866
- }], firstPageLinkIconTemplate: [{
866
+ }], firstpagelinkicon: [{
867
867
  type: ContentChild,
868
868
  args: ['firstpagelinkicon']
869
- }], previousPageLinkIconTemplate: [{
869
+ }], previouspagelinkicon: [{
870
870
  type: ContentChild,
871
871
  args: ['previouspagelinkicon']
872
- }], lastPageLinkIconTemplate: [{
872
+ }], lastpagelinkicon: [{
873
873
  type: ContentChild,
874
874
  args: ['lastpagelinkicon']
875
- }], nextPageLinkIconTemplate: [{
875
+ }], nextpagelinkicon: [{
876
876
  type: ContentChild,
877
877
  args: ['nextpagelinkicon']
878
878
  }] }); })();
@@ -890,4 +890,4 @@ export class PaginatorModule {
890
890
  }]
891
891
  }], null, null); })();
892
892
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PaginatorModule, { imports: [Paginator, SharedModule], exports: [Paginator, SharedModule] }); })();
893
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2luYXRvci9wYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQXFCLE1BQU0sRUFBOEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDalAsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBb0IsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBYXhDLHdCQUFzRzs7O0lBRDFHLCtCQUE2RjtJQUN6Rix5RkFBdUY7SUFDM0YsaUJBQU07Ozs7SUFEYSxjQUFnQztJQUFBLEFBQWhDLHNEQUFnQyw4RUFBc0M7OztJQUV6RixnQ0FBZ0U7SUFBQSxZQUF1QjtJQUFBLGlCQUFPOzs7SUFBOUIsY0FBdUI7SUFBdkIsOENBQXVCOzs7SUFXbkYsMENBQWtHOztJQUExQyxxREFBdUM7Ozs7SUFFM0YsK0ZB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WUFNN0Isc0JBQXNCO2tCQUE5QixLQUFLO1lBS2tDLGFBQWE7a0JBQXBELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFLN0IsTUFBTTtrQkFBZCxLQUFLO1lBTUcsb0JBQW9CO2tCQUE1QixLQUFLO1lBTU8sS0FBSztrQkFBakIsS0FBSztZQWFJLFlBQVk7a0JBQXJCLE1BQU07WUFNdUIsb0JBQW9CO2tCQUFqRCxZQUFZO21CQUFDLGNBQWM7WUFNTyx5QkFBeUI7a0JBQTNELFlBQVk7bUJBQUMsbUJBQW1CO1lBTUssNEJBQTRCO2tCQUFqRSxZQUFZO21CQUFDLHNCQUFzQjtZQU1GLHdCQUF3QjtrQkFBekQsWUFBWTttQkFBQyxrQkFBa0I7WUFNRSx3QkFBd0I7a0JBQXpELFlBQVk7bUJBQUMsa0JBQWtCOztrRkE5SnZCLFNBQVM7QUF1WXRCLE1BQU0sT0FBTyxlQUFlO3lHQUFmLGVBQWU7NERBQWYsZUFBZTtnRUFIZCxTQUFTLEVBQUUsWUFBWSxFQUNaLFlBQVk7O2lGQUV4QixlQUFlO2NBSjNCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDO2FBQ3JDOzt3RkFDWSxlQUFlLGNBdllmLFNBQVMsRUFvWUcsWUFBWSxhQXBZeEIsU0FBUyxFQXFZRyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBOZ01vZHVsZSwgbnVtYmVyQXR0cmlidXRlLCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXJpYSwgU2VsZWN0SXRlbSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcm9wZG93bkNoYW5nZUV2ZW50IH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBBbmdsZURvdWJsZUxlZnRJY29uLCBBbmdsZURvdWJsZVJpZ2h0SWNvbiwgQW5nbGVMZWZ0SWNvbiwgQW5nbGVSaWdodEljb24gfSBmcm9tICdwcmltZW5nL2ljb25zJztcbmltcG9ydCB7IElucHV0TnVtYmVyIH0gZnJvbSAncHJpbWVuZy9pbnB1dG51bWJlcic7XG5pbXBvcnQgeyBSaXBwbGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdwcmltZW5nL3NlbGVjdCc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHMtaGVscGVycyc7XG5pbXBvcnQgeyBQYWdpbmF0b3JTdGF0ZSB9IGZyb20gJy4vcGFnaW5hdG9yLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYWdpbmF0b3JTdHlsZSB9IGZyb20gJy4vc3R5bGUvcGFnaW5hdG9yc3R5bGUnO1xuXG4vKipcbiAqIFBhZ2luYXRvciBpcyBhIGdlbmVyaWMgY29tcG9uZW50IHRvIGRpc3BsYXkgY29udGVudCBpbiBwYWdlZCBmb3JtYXQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtcGFnaW5hdG9yJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNlbGVjdCwgSW5wdXROdW1iZXIsIEZvcm1zTW9kdWxlLCBSaXBwbGUsIEFuZ2xlRG91YmxlTGVmdEljb24sIEFuZ2xlRG91YmxlUmlnaHRJY29uLCBBbmdsZUxlZnRJY29uLCBBbmdsZVJpZ2h0SWNvbiwgU2hhcmVkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IFtjbGFzc109XCJzdHlsZUNsYXNzXCIgW25nU3R5bGVdPVwic3R5bGVcIiBbbmdDbGFzc109XCIncC1wYWdpbmF0b3IgcC1jb21wb25lbnQnXCIgKm5nSWY9XCJhbHdheXNTaG93ID8gdHJ1ZSA6IHBhZ2VMaW5rcyAmJiBwYWdlTGlua3MubGVuZ3RoID4gMVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncGFnaW5hdG9yJ1wiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncm9vdCdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXBhZ2luYXRvci1jb250ZW50LXN0YXJ0XCIgKm5nSWY9XCJ0ZW1wbGF0ZUxlZnRcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3N0YXJ0J1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZUxlZnQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwYWdpbmF0b3JTdGF0ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYWdpbmF0b3ItY3VycmVudFwiICpuZ0lmPVwic2hvd0N1cnJlbnRQYWdlUmVwb3J0XCI+e3sgY3VycmVudFBhZ2VSZXBvcnQgfX08L3NwYW4+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Rmlyc3RMYXN0SWNvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRmlyc3RQYWdlKCkgfHwgZW1wdHkoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2VUb0ZpcnN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtcGFnaW5hdG9yLWZpcnN0XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWRpc2FibGVkJzogaXNGaXJzdFBhZ2UoKSB8fCBlbXB0eSgpIH1cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0QXJpYUxhYmVsKCdmaXJzdFBhZ2VMYWJlbCcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8QW5nbGVEb3VibGVMZWZ0SWNvbiAqbmdJZj1cIiFmaXJzdFBhZ2VMaW5rSWNvblRlbXBsYXRlXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtcGFnaW5hdG9yLWZpcnN0LWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFnaW5hdG9yLWZpcnN0LWljb25cIiAqbmdJZj1cImZpcnN0UGFnZUxpbmtJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlyc3RQYWdlTGlua0ljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiaXNGaXJzdFBhZ2UoKSB8fCBlbXB0eSgpXCIgKGNsaWNrKT1cImNoYW5nZVBhZ2VUb1ByZXYoJGV2ZW50KVwiIHBSaXBwbGUgY2xhc3M9XCJwLXBhZ2luYXRvci1wcmV2XCIgW25nQ2xhc3NdPVwieyAncC1kaXNhYmxlZCc6IGlzRmlyc3RQYWdlKCkgfHwgZW1wdHkoKSB9XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRBcmlhTGFiZWwoJ3ByZXZQYWdlTGFiZWwnKVwiPlxuICAgICAgICAgICAgICAgIDxBbmdsZUxlZnRJY29uICpuZ0lmPVwiIXByZXZpb3VzUGFnZUxpbmtJY29uVGVtcGxhdGVcIiBbc3R5bGVDbGFzc109XCIncC1wYWdpbmF0b3ItcHJldi1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXBhZ2luYXRvci1wcmV2LWljb25cIiAqbmdJZj1cInByZXZpb3VzUGFnZUxpbmtJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJldmlvdXNQYWdlTGlua0ljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFnaW5hdG9yLXBhZ2VzXCIgKm5nSWY9XCJzaG93UGFnZUxpbmtzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2VMaW5rIG9mIHBhZ2VMaW5rc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1wYWdpbmF0b3ItcGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtcGFnaW5hdG9yLXBhZ2Utc2VsZWN0ZWQnOiBwYWdlTGluayAtIDEgPT0gZ2V0UGFnZSgpIH1cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldFBhZ2VBcmlhTGFiZWwocGFnZUxpbmspXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cInBhZ2VMaW5rIC0gMSA9PSBnZXRQYWdlKCkgPyAncGFnZScgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QYWdlTGlua0NsaWNrKCRldmVudCwgcGFnZUxpbmsgLSAxKVwiXG4gICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldExvY2FsaXphdGlvbihwYWdlTGluaykgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxwLXNlbGVjdFxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInBhZ2VJdGVtc1wiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZ2V0UGFnZSgpXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dKdW1wVG9QYWdlRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJlbXB0eSgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEFyaWFMYWJlbCgnanVtcFRvUGFnZURyb3Bkb3duTGFiZWwnKVwiXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtcGFnaW5hdG9yLWp0cC1kcm9wZG93blwiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uUGFnZURyb3Bkb3duQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFthcHBlbmRUb109XCJkcm9wZG93bkFwcGVuZFRvXCJcbiAgICAgICAgICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cImRyb3Bkb3duU2Nyb2xsSGVpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwic2VsZWN0ZWRJdGVtXCI+e3sgY3VycmVudFBhZ2VSZXBvcnQgfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJqdW1wVG9QYWdlSXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwianVtcFRvUGFnZUl0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkcm9wZG93bmljb25cIiAqbmdJZj1cImRyb3Bkb3duSWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wZG93bkljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3Atc2VsZWN0PlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cImlzTGFzdFBhZ2UoKSB8fCBlbXB0eSgpXCIgKGNsaWNrKT1cImNoYW5nZVBhZ2VUb05leHQoJGV2ZW50KVwiIHBSaXBwbGUgY2xhc3M9XCJwLXBhZ2luYXRvci1uZXh0XCIgW25nQ2xhc3NdPVwieyAncC1kaXNhYmxlZCc6IGlzTGFzdFBhZ2UoKSB8fCBlbXB0eSgpIH1cIiBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEFyaWFMYWJlbCgnbmV4dFBhZ2VMYWJlbCcpXCI+XG4gICAgICAgICAgICAgICAgPEFuZ2xlUmlnaHRJY29uICpuZ0lmPVwiIW5leHRQYWdlTGlua0ljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLXBhZ2luYXRvci1uZXh0LWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFnaW5hdG9yLW5leHQtaWNvblwiICpuZ0lmPVwibmV4dFBhZ2VMaW5rSWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm5leHRQYWdlTGlua0ljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Rmlyc3RMYXN0SWNvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTGFzdFBhZ2UoKSB8fCBlbXB0eSgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUGFnZVRvTGFzdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLXBhZ2luYXRvci1sYXN0XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWRpc2FibGVkJzogaXNMYXN0UGFnZSgpIHx8IGVtcHR5KCkgfVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRBcmlhTGFiZWwoJ2xhc3RQYWdlTGFiZWwnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEFuZ2xlRG91YmxlUmlnaHRJY29uICpuZ0lmPVwiIWxhc3RQYWdlTGlua0ljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLXBhZ2luYXRvci1sYXN0LWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFnaW5hdG9yLWxhc3QtaWNvblwiICpuZ0lmPVwibGFzdFBhZ2VMaW5rSWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImxhc3RQYWdlTGlua0ljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8cC1pbnB1dG51bWJlciAqbmdJZj1cInNob3dKdW1wVG9QYWdlSW5wdXRcIiBbbmdNb2RlbF09XCJjdXJyZW50UGFnZSgpXCIgY2xhc3M9XCJwLXBhZ2luYXRvci1qdHAtaW5wdXRcIiBbZGlzYWJsZWRdPVwiZW1wdHkoKVwiIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50IC0gMSlcIj48L3AtaW5wdXRudW1iZXI+XG4gICAgICAgICAgICA8cC1zZWxlY3RcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJyb3dzUGVyUGFnZUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJvd3NcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwicm93c1BlclBhZ2VPcHRpb25zXCJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1wYWdpbmF0b3ItcnBwLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZW1wdHkoKVwiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uUnBwQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFthcHBlbmRUb109XCJkcm9wZG93bkFwcGVuZFRvXCJcbiAgICAgICAgICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cImRyb3Bkb3duU2Nyb2xsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImdldEFyaWFMYWJlbCgncm93c1BlclBhZ2VMYWJlbCcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHJvcGRvd25JdGVtVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wZG93bkl0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJkcm9wZG93bmljb25cIiAqbmdJZj1cImRyb3Bkb3duSWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wZG93bkljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3Atc2VsZWN0PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGFnaW5hdG9yLWNvbnRlbnQtZW5kXCIgKm5nSWY9XCJ0ZW1wbGF0ZVJpZ2h0XCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidlbmQnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmlnaHQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwYWdpbmF0b3JTdGF0ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1BhZ2luYXRvclN0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3IgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiBwYWdlIGxpbmtzIHRvIGRpc3BsYXkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgcGFnZUxpbmtTaXplOiBudW1iZXIgPSA1O1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc2hvdyBpdCBldmVuIHRoZXJlIGlzIG9ubHkgb25lIHBhZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsd2F5c1Nob3c6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFRhcmdldCBlbGVtZW50IHRvIGF0dGFjaCB0aGUgZHJvcGRvd24gb3ZlcmxheSwgdmFsaWQgdmFsdWVzIGFyZSBcImJvZHlcIiBvciBhIGxvY2FsIG5nLXRlbXBsYXRlIHZhcmlhYmxlIG9mIGFub3RoZXIgZWxlbWVudCAobm90ZTogdXNlIGJpbmRpbmcgd2l0aCBicmFja2V0cyBmb3IgdGVtcGxhdGUgdmFyaWFibGVzLCBlLmcuIFthcHBlbmRUb109XCJteWRpdlwiIGZvciBhIGRpdiBlbGVtZW50IGhhdmluZyAjbXlkaXYgYXMgdmFyaWFibGUgbmFtZSkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcGRvd25BcHBlbmRUbzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgVGVtcGxhdGVSZWY8YW55PiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgfCBhbnk7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgaW5zdGFuY2UgdG8gaW5qZWN0IGludG8gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnaW5hdG9yLlxuICAgICAqIEBwYXJhbSB7UGFnaW5hdG9yU3RhdGV9IGNvbnRleHQgLSBQYWdpbmF0b3Igc3RhdGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdGVtcGxhdGVMZWZ0OiBUZW1wbGF0ZVJlZjxQYWdpbmF0b3JTdGF0ZT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgaW5zdGFuY2UgdG8gaW5qZWN0IGludG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHBhZ2luYXRvci5cbiAgICAgKiBAcGFyYW0ge1BhZ2luYXRvclN0YXRlfSBjb250ZXh0IC0gUGFnaW5hdG9yIHN0YXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRlbXBsYXRlUmlnaHQ6IFRlbXBsYXRlUmVmPFBhZ2luYXRvclN0YXRlPiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUYXJnZXQgZWxlbWVudCB0byBhdHRhY2ggdGhlIGRyb3Bkb3duIG92ZXJsYXksIHZhbGlkIHZhbHVlcyBhcmUgXCJib2R5XCIgb3IgYSBsb2NhbCBuZy10ZW1wbGF0ZSB2YXJpYWJsZSBvZiBhbm90aGVyIGVsZW1lbnQgKG5vdGU6IHVzZSBiaW5kaW5nIHdpdGggYnJhY2tldHMgZm9yIHRlbXBsYXRlIHZhcmlhYmxlcywgZS5nLiBbYXBwZW5kVG9dPVwibXlkaXZcIiBmb3IgYSBkaXYgZWxlbWVudCBoYXZpbmcgI215ZGl2IGFzIHZhcmlhYmxlIG5hbWUpLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcGVuZFRvOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB8IGFueTtcbiAgICAvKipcbiAgICAgKiBEcm9wZG93biBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0IGluIHBpeGVscywgYSBzY3JvbGxiYXIgaXMgZGVmaW5lZCBpZiBoZWlnaHQgb2YgbGlzdCBleGNlZWRzIHRoaXMgdmFsdWUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcGRvd25TY3JvbGxIZWlnaHQ6IHN0cmluZyA9ICcyMDBweCc7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgb2YgdGhlIGN1cnJlbnQgcGFnZSByZXBvcnQgZWxlbWVudC4gQXZhaWxhYmxlIHBsYWNlaG9sZGVycyBhcmUge2N1cnJlbnRQYWdlfSx7dG90YWxQYWdlc30se3Jvd3N9LHtmaXJzdH0se2xhc3R9IGFuZCB7dG90YWxSZWNvcmRzfVxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU6IHN0cmluZyA9ICd7Y3VycmVudFBhZ2V9IG9mIHt0b3RhbFBhZ2VzfSc7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBkaXNwbGF5IGN1cnJlbnQgcGFnZSByZXBvcnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dDdXJyZW50UGFnZVJlcG9ydDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGVuIGVuYWJsZWQsIGljb25zIGFyZSBkaXNwbGF5ZWQgb24gcGFnaW5hdG9yIHRvIGdvIGZpcnN0IGFuZCBsYXN0IHBhZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dGaXJzdExhc3RJY29uOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBOdW1iZXIgb2YgdG90YWwgcmVjb3Jkcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0b3RhbFJlY29yZHM6IG51bWJlciA9IDA7XG4gICAgLyoqXG4gICAgICogRGF0YSBjb3VudCB0byBkaXNwbGF5IHBlciBwYWdlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHJvd3M6IG51bWJlciA9IDA7XG4gICAgLyoqXG4gICAgICogQXJyYXkgb2YgaW50ZWdlci9vYmplY3QgdmFsdWVzIHRvIGRpc3BsYXkgaW5zaWRlIHJvd3MgcGVyIHBhZ2UgZHJvcGRvd24uIEEgb2JqZWN0IHRoYXQgaGF2ZSAnc2hvd0FsbCcga2V5IGNhbiBiZSBhZGRlZCB0byBpdCB0byBzaG93IGFsbCBkYXRhLiBFeHA7IFsxMCwyMCwzMCx7c2hvd0FsbDonQWxsJ31dXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcm93c1BlclBhZ2VPcHRpb25zOiBhbnlbXSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBkcm9wZG93biB0byBuYXZpZ2F0ZSB0byBhbnkgcGFnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0p1bXBUb1BhZ2VEcm9wZG93bjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBpbnB1dCB0byBuYXZpZ2F0ZSB0byBhbnkgcGFnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0p1bXBUb1BhZ2VJbnB1dDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBpbnN0YW5jZSB0byBpbmplY3QgaW50byB0aGUganVtcCB0byBwYWdlIGRyb3Bkb3duIGl0ZW0gaW5zaWRlIGluIHRoZSBwYWdpbmF0b3IuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHQgLSBpdGVtIGluc3RhbmNlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGp1bXBUb1BhZ2VJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBhbnkgfT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHBhZ2UgbGlua3MuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dQYWdlTGlua3M6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIExvY2FsZSB0byBiZSB1c2VkIGluIGZvcm1hdHRpbmcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgaW5zdGFuY2UgdG8gaW5qZWN0IGludG8gdGhlIHJvd3MgcGVyIHBhZ2UgZHJvcGRvd24gaXRlbSBpbnNpZGUgaW4gdGhlIHBhZ2luYXRvci5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gY29udGV4dCAtIGl0ZW0gaW5zdGFuY2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcGRvd25JdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBhbnkgfT4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBaZXJvLXJlbGF0aXZlIG51bWJlciBvZiB0aGUgZmlyc3Qgcm93IHRvIGJlIGRpc3BsYXllZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgZmlyc3QoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpcnN0O1xuICAgIH1cblxuICAgIHNldCBmaXJzdCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9maXJzdCA9IHZhbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBwYWdlIGNoYW5nZXMsIHRoZSBldmVudCBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5ldyBzdGF0ZS5cbiAgICAgKiBAcGFyYW0ge1BhZ2luYXRvclN0YXRlfSBldmVudCAtIFBhZ2luYXRvciBzdGF0ZS5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UGFnaW5hdG9yU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdpbmF0b3JTdGF0ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciB0aGUgZHJvcGRvd24gaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZHJvcGRvd25pY29uJykgZHJvcGRvd25JY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgZm9yIHRoZSBmaXJzdCBwYWdlIGxpbmsgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZmlyc3RwYWdlbGlua2ljb24nKSBmaXJzdFBhZ2VMaW5rSWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciB0aGUgcHJldmlvdXMgcGFnZSBsaW5rIGljb24uXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3ByZXZpb3VzcGFnZWxpbmtpY29uJykgcHJldmlvdXNQYWdlTGlua0ljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBmb3IgdGhlIGxhc3QgcGFnZSBsaW5rIGljb24uXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2xhc3RwYWdlbGlua2ljb24nKSBsYXN0UGFnZUxpbmtJY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgZm9yIHRoZSBuZXh0IHBhZ2UgbGluayBpY29uLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCduZXh0cGFnZWxpbmtpY29uJykgbmV4dFBhZ2VMaW5rSWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIHBhZ2VMaW5rczogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG5cbiAgICBwYWdlSXRlbXM6IFNlbGVjdEl0ZW1bXSB8IHVuZGVmaW5lZDtcblxuICAgIHJvd3NQZXJQYWdlSXRlbXM6IFNlbGVjdEl0ZW1bXSB8IHVuZGVmaW5lZDtcblxuICAgIHBhZ2luYXRvclN0YXRlOiBhbnk7XG5cbiAgICBfZmlyc3Q6IG51bWJlciA9IDA7XG5cbiAgICBfcGFnZTogbnVtYmVyID0gMDtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChQYWdpbmF0b3JTdHlsZSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVQYWdpbmF0b3JTdGF0ZSgpO1xuICAgIH1cblxuICAgIGdldEFyaWFMYWJlbChsYWJlbFR5cGU6IGtleW9mIEFyaWEpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYSA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWFbbGFiZWxUeXBlXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRQYWdlQXJpYUxhYmVsKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYSA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEucGFnZUxhYmVsLnJlcGxhY2UoL3twYWdlfS9nLCBgJHt2YWx1ZX1gKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRMb2NhbGl6YXRpb24oZGlnaXQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG51bWVyYWxzID0gWy4uLm5ldyBJbnRsLk51bWJlckZvcm1hdCh0aGlzLmxvY2FsZSwgeyB1c2VHcm91cGluZzogZmFsc2UgfSkuZm9ybWF0KDk4NzY1NDMyMTApXS5yZXZlcnNlKCk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbmV3IE1hcChudW1lcmFscy5tYXAoKGQsIGkpID0+IFtpLCBkXSkpO1xuICAgICAgICBpZiAoZGlnaXQgPiA5KSB7XG4gICAgICAgICAgICBjb25zdCBudW1iZXJzID0gU3RyaW5nKGRpZ2l0KS5zcGxpdCgnJyk7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVycy5tYXAoKG51bWJlcikgPT4gaW5kZXguZ2V0KE51bWJlcihudW1iZXIpKSkuam9pbignJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXguZ2V0KGRpZ2l0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZTogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2UpO1xuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2UudG90YWxSZWNvcmRzKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhZ2VMaW5rcygpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQYWdpbmF0b3JTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaXJzdCgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dzUGVyUGFnZU9wdGlvbnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2UuZmlyc3QpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpcnN0ID0gc2ltcGxlQ2hhbmdlLmZpcnN0LmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnZUxpbmtzKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhZ2luYXRvclN0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLnJvd3MpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnZUxpbmtzKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhZ2luYXRvclN0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlLnJvd3NQZXJQYWdlT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dzUGVyUGFnZU9wdGlvbnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2UucGFnZUxpbmtTaXplKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhZ2VMaW5rcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlUm93c1BlclBhZ2VPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucm93c1BlclBhZ2VJdGVtcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgb3B0IG9mIHRoaXMucm93c1BlclBhZ2VPcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHQgPT0gJ29iamVjdCcgJiYgb3B0WydzaG93QWxsJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dzUGVyUGFnZUl0ZW1zLnVuc2hpZnQoeyBsYWJlbDogb3B0WydzaG93QWxsJ10sIHZhbHVlOiB0aGlzLnRvdGFsUmVjb3JkcyB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd3NQZXJQYWdlSXRlbXMucHVzaCh7IGxhYmVsOiBTdHJpbmcodGhpcy5nZXRMb2NhbGl6YXRpb24ob3B0KSksIHZhbHVlOiBvcHQgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNGaXJzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBhZ2UoKSA9PT0gMDtcbiAgICB9XG5cbiAgICBpc0xhc3RQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQYWdlKCkgPT09IHRoaXMuZ2V0UGFnZUNvdW50KCkgLSAxO1xuICAgIH1cblxuICAgIGdldFBhZ2VDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMudG90YWxSZWNvcmRzIC8gdGhpcy5yb3dzKTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVQYWdlTGlua0JvdW5kYXJpZXMoKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIGxldCBudW1iZXJPZlBhZ2VzID0gdGhpcy5nZXRQYWdlQ291bnQoKSxcbiAgICAgICAgICAgIHZpc2libGVQYWdlcyA9IE1hdGgubWluKHRoaXMucGFnZUxpbmtTaXplLCBudW1iZXJPZlBhZ2VzKTtcblxuICAgICAgICAvL2NhbGN1bGF0ZSByYW5nZSwga2VlcCBjdXJyZW50IGluIG1pZGRsZSBpZiBuZWNlc3NhcnlcbiAgICAgICAgbGV0IHN0YXJ0ID0gTWF0aC5tYXgoMCwgTWF0aC5jZWlsKHRoaXMuZ2V0UGFnZSgpIC0gdmlzaWJsZVBhZ2VzIC8gMikpLFxuICAgICAgICAgICAgZW5kID0gTWF0aC5taW4obnVtYmVyT2ZQYWdlcyAtIDEsIHN0YXJ0ICsgdmlzaWJsZVBhZ2VzIC0gMSk7XG5cbiAgICAgICAgLy9jaGVjayB3aGVuIGFwcHJvYWNoaW5nIHRvIGxhc3QgcGFnZVxuICAgICAgICB2YXIgZGVsdGEgPSB0aGlzLnBhZ2VMaW5rU2l6ZSAtIChlbmQgLSBzdGFydCArIDEpO1xuICAgICAgICBzdGFydCA9IE1hdGgubWF4KDAsIHN0YXJ0IC0gZGVsdGEpO1xuXG4gICAgICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG4gICAgfVxuXG4gICAgdXBkYXRlUGFnZUxpbmtzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2VMaW5rcyA9IFtdO1xuICAgICAgICBsZXQgYm91bmRhcmllcyA9IHRoaXMuY2FsY3VsYXRlUGFnZUxpbmtCb3VuZGFyaWVzKCksXG4gICAgICAgICAgICBzdGFydCA9IGJvdW5kYXJpZXNbMF0sXG4gICAgICAgICAgICBlbmQgPSBib3VuZGFyaWVzWzFdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5wYWdlTGlua3MucHVzaChpICsgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG93SnVtcFRvUGFnZURyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VJdGVtcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmdldFBhZ2VDb3VudCgpOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VJdGVtcy5wdXNoKHsgbGFiZWw6IFN0cmluZyhpICsgMSksIHZhbHVlOiBpIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbmdlUGFnZShwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdmFyIHBjID0gdGhpcy5nZXRQYWdlQ291bnQoKTtcblxuICAgICAgICBpZiAocCA+PSAwICYmIHAgPCBwYykge1xuICAgICAgICAgICAgdGhpcy5fZmlyc3QgPSB0aGlzLnJvd3MgKiBwO1xuICAgICAgICAgICAgdmFyIHN0YXRlID0ge1xuICAgICAgICAgICAgICAgIHBhZ2U6IHAsXG4gICAgICAgICAgICAgICAgZmlyc3Q6IHRoaXMuZmlyc3QsXG4gICAgICAgICAgICAgICAgcm93czogdGhpcy5yb3dzLFxuICAgICAgICAgICAgICAgIHBhZ2VDb3VudDogcGNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhZ2VMaW5rcygpO1xuXG4gICAgICAgICAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KHN0YXRlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnaW5hdG9yU3RhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUZpcnN0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYWdlID0gdGhpcy5nZXRQYWdlKCk7XG4gICAgICAgIGlmIChwYWdlID4gMCAmJiB0aGlzLnRvdGFsUmVjb3JkcyAmJiB0aGlzLmZpcnN0ID49IHRoaXMudG90YWxSZWNvcmRzKSB7XG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKSA9PiB0aGlzLmNoYW5nZVBhZ2UocGFnZSAtIDEpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFBhZ2UoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IodGhpcy5maXJzdCAvIHRoaXMucm93cyk7XG4gICAgfVxuXG4gICAgY2hhbmdlUGFnZVRvRmlyc3QoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0ZpcnN0UGFnZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2UoMCk7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNoYW5nZVBhZ2VUb1ByZXYoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlUGFnZSh0aGlzLmdldFBhZ2UoKSAtIDEpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNoYW5nZVBhZ2VUb05leHQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlUGFnZSh0aGlzLmdldFBhZ2UoKSArIDEpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNoYW5nZVBhZ2VUb0xhc3QoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0xhc3RQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUGFnZSh0aGlzLmdldFBhZ2VDb3VudCgpIC0gMSk7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uUGFnZUxpbmtDbGljayhldmVudDogRXZlbnQsIHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZVBhZ2UocGFnZSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25ScHBDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlUGFnZSh0aGlzLmdldFBhZ2UoKSk7XG4gICAgfVxuXG4gICAgb25QYWdlRHJvcGRvd25DaGFuZ2UoZXZlbnQ6IERyb3Bkb3duQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VQYWdlKGV2ZW50LnZhbHVlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVQYWdpbmF0b3JTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0b3JTdGF0ZSA9IHtcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMuZ2V0UGFnZSgpLFxuICAgICAgICAgICAgcGFnZUNvdW50OiB0aGlzLmdldFBhZ2VDb3VudCgpLFxuICAgICAgICAgICAgcm93czogdGhpcy5yb3dzLFxuICAgICAgICAgICAgZmlyc3Q6IHRoaXMuZmlyc3QsXG4gICAgICAgICAgICB0b3RhbFJlY29yZHM6IHRoaXMudG90YWxSZWNvcmRzXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBhZ2VDb3VudCgpID09PSAwO1xuICAgIH1cblxuICAgIGN1cnJlbnRQYWdlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBhZ2VDb3VudCgpID4gMCA/IHRoaXMuZ2V0UGFnZSgpICsgMSA6IDA7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnRQYWdlUmVwb3J0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGVcbiAgICAgICAgICAgIC5yZXBsYWNlKCd7Y3VycmVudFBhZ2V9JywgU3RyaW5nKHRoaXMuY3VycmVudFBhZ2UoKSkpXG4gICAgICAgICAgICAucmVwbGFjZSgne3RvdGFsUGFnZXN9JywgU3RyaW5nKHRoaXMuZ2V0UGFnZUNvdW50KCkpKVxuICAgICAgICAgICAgLnJlcGxhY2UoJ3tmaXJzdH0nLCBTdHJpbmcodGhpcy50b3RhbFJlY29yZHMgPiAwID8gdGhpcy5fZmlyc3QgKyAxIDogMCkpXG4gICAgICAgICAgICAucmVwbGFjZSgne2xhc3R9JywgU3RyaW5nKE1hdGgubWluKHRoaXMuX2ZpcnN0ICsgdGhpcy5yb3dzLCB0aGlzLnRvdGFsUmVjb3JkcykpKVxuICAgICAgICAgICAgLnJlcGxhY2UoJ3tyb3dzfScsIFN0cmluZyh0aGlzLnJvd3MpKVxuICAgICAgICAgICAgLnJlcGxhY2UoJ3t0b3RhbFJlY29yZHN9JywgU3RyaW5nKHRoaXMudG90YWxSZWNvcmRzKSk7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtQYWdpbmF0b3IsIFNoYXJlZE1vZHVsZV0sXG4gICAgZXhwb3J0czogW1BhZ2luYXRvciwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JNb2R1bGUge31cbiJdfQ==
893
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2luYXRvci9wYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQXFCLE1BQU0sRUFBOEIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDalAsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBb0IsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBYXhDLHdCQUFzRzs7O0lBRDFHLCtCQUE2RjtJQUN6Rix5RkFBdUY7SUFDM0YsaUJBQU07Ozs7SUFEYSxjQUFnQztJQUFBLEFBQWhDLHNEQUFnQyw4RUFBc0M7OztJQUV6RixnQ0FBZ0U7SUFBQSxZQUF1QjtJQUFBLGlCQUFPOzs7SUFBOUIsY0FBdUI7SUFBdkIsOENBQXVCOzs7SUFXbkYsMENBQTBGOztJQUExQyxxREFBdUM7Ozs7SUFFbkYsK0ZBQW1EOzs7SUFEdkQsZ0NBQStEO0lBQzNELDRFQUFtRDtJQUN2RCxpQkFBTzs7O0lBRFcsY0FBbUM7SUFBbkMsMkRBQW1DOzs7O0lBWnpELGtDQVNDO0lBTEcscUxBQVMsZ0NBQXlCLEtBQUM7SUFPbkMsQUFEQSx5R0FBMEYsK0RBQzNCO0lBR25FLGlCQUFTOzs7SUFQTCxBQUpBLGlFQUFxQywrRUFJaUI7O0lBR2hDLGNBQXdCO0lBQXhCLGdEQUF3QjtJQUNSLGNBQXVCO0lBQXZCLCtDQUF1Qjs7O0lBSzdELG9DQUFzRjs7SUFBekMsb0RBQXNDOzs7O0lBRS9FLHNGQUFzRDs7O0lBRDFELGdDQUFpRTtJQUM3RCxtRUFBc0Q7SUFDMUQsaUJBQU87OztJQURXLGNBQXNDO0lBQXRDLDhEQUFzQzs7OztJQUl4RCxrQ0FTQztJQUZHLDBOQUFTLDZDQUFtQyxDQUFDLENBQUMsS0FBQztJQUcvQyxZQUNKO0lBQUEsaUJBQVM7Ozs7SUFQTCx5RkFBc0U7O0lBTXRFLGNBQ0o7SUFESSxvRUFDSjs7O0lBWkosZ0NBQXNEO0lBQ2xELDhFQVNDO0lBR0wsaUJBQU87OztJQVZzQixjQUFZO0lBQVosMENBQVk7OztJQXNCQyxZQUF1Qjs7O0lBQXZCLDhDQUF1Qjs7O0lBR3JELHdCQUFzRzs7O0lBQXRHLDJIQUF1Rjs7OztJQUE5QixBQUExQyxnRUFBMEMsZ0VBQTRCOzs7SUFGN0YsNkJBQTZDO0lBQ3pDLDJHQUF1Qzs7OztJQUt2Qyx3QkFBOEQ7OztJQUE5RCw4R0FBK0M7OztJQUFoQyxzREFBOEI7OztJQURqRCw4RkFBMkQ7Ozs7SUFqQi9ELG9DQVVDO0lBSEcsK0xBQVksbUNBQTRCLEtBQUM7SUFVekMsQUFMQSxBQURBLDRGQUFzQyxpRkFDTywwREFLYztJQUcvRCxpQkFBVzs7O0lBWFAsQUFEQSxBQUpBLEFBRkEsQUFEQSwwQ0FBcUIsNkJBQ0EsNEJBRUQscUNBSVMsNkNBQ1E7O0lBR3RCLGVBQTRCO0lBQTVCLG9EQUE0QjtJQUtKLGNBQWtCO0lBQWxCLDBDQUFrQjs7O0lBS3pELHFDQUFtRjs7SUFBekMsb0RBQXNDOzs7O0lBRTVFLHVGQUFrRDs7O0lBRHRELGdDQUE2RDtJQUN6RCxvRUFBa0Q7SUFDdEQsaUJBQU87OztJQURXLGNBQWtDO0lBQWxDLDBEQUFrQzs7O0lBYXBELDJDQUF5Rjs7SUFBekMsb0RBQXNDOzs7O0lBRWxGLGdHQUFrRDs7O0lBRHRELGdDQUE2RDtJQUN6RCw2RUFBa0Q7SUFDdEQsaUJBQU87OztJQURXLGNBQWtDO0lBQWxDLDBEQUFrQzs7OztJQVp4RCxrQ0FTQztJQUxHLHNMQUFTLCtCQUF3QixLQUFDO0lBT2xDLEFBREEsNEdBQXlGLGdFQUM1QjtJQUdqRSxpQkFBUzs7O0lBUEwsQUFKQSxnRUFBb0MsOEVBSWlCOztJQUc5QixjQUF1QjtJQUF2QiwrQ0FBdUI7SUFDVCxjQUFzQjtJQUF0Qiw4Q0FBc0I7Ozs7SUFJL0QseUNBQWlLO0lBQXpDLG9OQUFpQiwyQkFBb0IsQ0FBQyxDQUFDLEtBQUM7SUFBQyxpQkFBZ0I7OztJQUE5RSxBQUF4RCw4Q0FBeUIsNEJBQW1EOzs7SUFjM0csd0JBQW9HOzs7SUFBcEcsNEhBQXFGOzs7O0lBQTlCLEFBQXhDLDhEQUF3QyxpRUFBNEI7OztJQUYzRiw2QkFBMkM7SUFDdkMsNEdBQXVDOzs7O0lBS3ZDLHdCQUE4RDs7O0lBQTlELCtHQUErQzs7O0lBQWhDLHNEQUE4Qjs7O0lBRGpELCtGQUEyRDs7OztJQWhCL0Qsb0NBVUM7SUFSRyxrU0FBa0I7SUFJbEIsaU1BQVksMEJBQW1CLEtBQUM7SUFVaEMsQUFMQSwrRkFBMkMsMkRBS2dCO0lBRy9ELGlCQUFXOzs7SUFsQlAsaURBQTRCO0lBQzVCLDJDQUFrQjtJQU9sQixBQURBLEFBREEsQUFGQSx5Q0FBb0IscUNBRVMsNkNBQ1Esc0RBQ1M7SUFFL0IsY0FBMEI7SUFBMUIsa0RBQTBCO0lBS0YsY0FBa0I7SUFBbEIsMENBQWtCOzs7SUFLekQsd0JBQXVHOzs7SUFEM0csK0JBQTBGO0lBQ3RGLDBGQUF3RjtJQUM1RixpQkFBTTs7OztJQURhLGNBQWlDO0lBQUEsQUFBakMsdURBQWlDLDhFQUFzQzs7OztJQXhHOUYsOEJBQXFOO0lBS2pOLEFBREEsQUFIQSxnRUFBNkYscURBRzdCLHlEQVUvRDtJQU1ELGlDQUF5TztJQUE3SywyS0FBUywrQkFBd0IsS0FBQztJQUUxRixBQURBLG9GQUFzRixxREFDckI7SUFHckUsaUJBQVM7SUFlVCxBQWRBLGtFQUFzRCw2REF3QnJEO0lBV0Qsa0NBQXVPO0lBQTVLLDJLQUFTLCtCQUF3QixLQUFDO0lBRXpGLEFBREEsd0ZBQW1GLHdEQUN0QjtJQUdqRSxpQkFBUztJQXFDVCxBQXBCQSxBQURBLEFBZkEseUVBU0MsMEVBTWdLLGdFQVdoSyxzREFVeUY7SUFHOUYsaUJBQU07OztJQTFHRCxnQ0FBb0I7SUFBbUIsQUFBbEIsc0NBQWlCLHNDQUFzQzs7SUFDckMsY0FBa0I7SUFBbEIsMENBQWtCO0lBR3ZCLGNBQTJCO0lBQTNCLG1EQUEyQjtJQUV6RCxjQUF1QjtJQUF2QiwrQ0FBdUI7SUFjTixjQUFxQztJQUFxRSxBQUExRyxpRUFBcUMsZ0ZBQTJIOztJQUNsSyxjQUEyQjtJQUEzQixtREFBMkI7SUFDTixjQUEwQjtJQUExQixrREFBMEI7SUFJbEMsY0FBbUI7SUFBbkIsMkNBQW1CO0lBaUIvQyxjQUE0QjtJQUE1QixvREFBNEI7SUFrQlgsY0FBb0M7SUFBcUUsQUFBekcsZ0VBQW9DLCtFQUEwSDs7SUFDL0osY0FBdUI7SUFBdkIsK0NBQXVCO0lBQ0gsY0FBc0I7SUFBdEIsOENBQXNCO0lBSzFELGNBQXVCO0lBQXZCLCtDQUF1QjtJQWNaLGNBQXlCO0lBQXpCLGlEQUF5QjtJQUlwQyxjQUF3QjtJQUF4QixnREFBd0I7SUFpQlMsY0FBbUI7SUFBbkIsMkNBQW1COztBQWhIckU7OztHQUdHO0FBc0hILE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUN4Qzs7O09BR0c7SUFDb0MsWUFBWSxHQUFXLENBQUMsQ0FBQztJQUNoRTs7O09BR0c7SUFDTSxLQUFLLENBQThDO0lBQzVEOzs7T0FHRztJQUNNLFVBQVUsQ0FBcUI7SUFDeEM7OztPQUdHO0lBQ3FDLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFDbkU7OztPQUdHO0lBQ00sZ0JBQWdCLENBQWdGO0lBQ3pHOzs7O09BSUc7SUFDTSxZQUFZLENBQTBDO0lBQy9EOzs7O09BSUc7SUFDTSxhQUFhLENBQTBDO0lBQ2hFOzs7T0FHRztJQUNNLFFBQVEsQ0FBZ0Y7SUFDakc7OztPQUdHO0lBQ00sb0JBQW9CLEdBQVcsT0FBTyxDQUFDO0lBQ2hEOzs7T0FHRztJQUNNLHlCQUF5QixHQUFXLCtCQUErQixDQUFDO0lBQzdFOzs7T0FHRztJQUNxQyxxQkFBcUIsQ0FBc0I7SUFDbkY7OztPQUdHO0lBQ3FDLGlCQUFpQixHQUFZLElBQUksQ0FBQztJQUMxRTs7O09BR0c7SUFDb0MsWUFBWSxHQUFXLENBQUMsQ0FBQztJQUNoRTs7O09BR0c7SUFDb0MsSUFBSSxHQUFXLENBQUMsQ0FBQztJQUN4RDs7O09BR0c7SUFDTSxrQkFBa0IsQ0FBb0I7SUFDL0M7OztPQUdHO0lBQ3FDLHNCQUFzQixDQUFzQjtJQUNwRjs7O09BR0c7SUFDcUMsbUJBQW1CLENBQXNCO0lBQ2pGOzs7O09BSUc7SUFDTSxzQkFBc0IsQ0FBOEM7SUFDN0U7OztPQUdHO0lBQ3FDLGFBQWEsR0FBWSxJQUFJLENBQUM7SUFDdEU7OztPQUdHO0lBQ00sTUFBTSxDQUFxQjtJQUNwQzs7OztPQUlHO0lBQ00sb0JBQW9CLENBQThDO0lBRTNFOzs7T0FHRztJQUNILElBQWEsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsR0FBVztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLFlBQVksR0FBaUMsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFFMUY7OztPQUdHO0lBQzJCLFlBQVksQ0FBNkI7SUFFdkU7OztPQUdHO0lBQ2dDLGlCQUFpQixDQUE2QjtJQUVqRjs7O09BR0c7SUFDbUMsb0JBQW9CLENBQTZCO0lBRXZGOzs7T0FHRztJQUMrQixnQkFBZ0IsQ0FBNkI7SUFFL0U7OztPQUdHO0lBQytCLGdCQUFnQixDQUE2QjtJQUUvRSxTQUFTLENBQXVCO0lBRWhDLFNBQVMsQ0FBMkI7SUFFcEMsZ0JBQWdCLENBQTJCO0lBRTNDLGNBQWMsQ0FBTTtJQUVwQixNQUFNLEdBQVcsQ0FBQyxDQUFDO0lBRW5CLEtBQUssR0FBVyxDQUFDLENBQUM7SUFFbEIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6QztRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDOUYsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM1SCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDekIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUcsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNaLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLFlBQTJCO1FBQ25DLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEMsSUFBSSxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUM5QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3BCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztZQUMzQixLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUN0QyxJQUFJLE9BQU8sR0FBRyxJQUFJLFFBQVEsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RixDQUFDO3FCQUFNLENBQUM7b0JBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELDJCQUEyQjtRQUN2QixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQ25DLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUQsc0RBQXNEO1FBQ3RELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNqRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFaEUscUNBQXFDO1FBQ3JDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFFbkMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUMvQyxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUNyQixHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhCLEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxDQUFTO1FBQ2hCLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDNUIsSUFBSSxLQUFLLEdBQUc7Z0JBQ1IsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsU0FBUyxFQUFFLEVBQUU7YUFDaEIsQ0FBQztZQUNGLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUV2QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBWTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVk7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWSxFQUFFLElBQVk7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQTBCO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2xDLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyx5QkFBeUI7YUFDaEMsT0FBTyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7YUFDcEQsT0FBTyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7YUFDcEQsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RSxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQzthQUMvRSxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO21HQWhZUSxTQUFTOzZEQUFULFNBQVM7Ozs7Ozs7Ozs7Ozs7eUVBS0UsZUFBZSx5RkFlZixnQkFBZ0IsZ1RBcUNoQixnQkFBZ0Isb0VBS2hCLGdCQUFnQixxREFLaEIsZUFBZSw2QkFLZixlQUFlLDZIQVVmLGdCQUFnQiwwRUFLaEIsZ0JBQWdCLDBHQVdoQixnQkFBZ0IsbUxBcEd6QixDQUFDLGNBQWMsQ0FBQztZQTlHdkIsNERBQXFOOztZQUFsSSx3RkFBMkQ7NEJBRnhJLFlBQVksb0VBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxXQUFXLGtDQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVk7O2lGQWtIL0ksU0FBUztjQXJIckIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQztnQkFDekosUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E0R1Q7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDOUI7b0JBTTBDLFlBQVk7a0JBQWxELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1lBSzVCLEtBQUs7a0JBQWIsS0FBSztZQUtHLFVBQVU7a0JBQWxCLEtBQUs7WUFLa0MsVUFBVTtrQkFBakQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQUs3QixnQkFBZ0I7a0JBQXhCLEtBQUs7WUFNRyxZQUFZO2tCQUFwQixLQUFLO1lBTUcsYUFBYTtrQkFBckIsS0FBSztZQUtHLFFBQVE7a0JBQWhCLEtBQUs7WUFLRyxvQkFBb0I7a0JBQTVCLEtBQUs7WUFLRyx5QkFBeUI7a0JBQWpDLEtBQUs7WUFLa0MscUJBQXFCO2tCQUE1RCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBS0UsaUJBQWlCO2tCQUF4RCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBS0MsWUFBWTtrQkFBbEQsS0FBSzttQkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7WUFLRSxJQUFJO2tCQUExQyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtZQUs1QixrQkFBa0I7a0JBQTFCLEtBQUs7WUFLa0Msc0JBQXNCO2tCQUE3RCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBS0UsbUJBQW1CO2tCQUExRCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBTTdCLHNCQUFzQjtrQkFBOUIsS0FBSztZQUtrQyxhQUFhO2tCQUFwRCxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBSzdCLE1BQU07a0JBQWQsS0FBSztZQU1HLG9CQUFvQjtrQkFBNUIsS0FBSztZQU1PLEtBQUs7a0JBQWpCLEtBQUs7WUFhSSxZQUFZO2tCQUFyQixNQUFNO1lBTXVCLFlBQVk7a0JBQXpDLFlBQVk7bUJBQUMsY0FBYztZQU1PLGlCQUFpQjtrQkFBbkQsWUFBWTttQkFBQyxtQkFBbUI7WUFNSyxvQkFBb0I7a0JBQXpELFlBQVk7bUJBQUMsc0JBQXNCO1lBTUYsZ0JBQWdCO2tCQUFqRCxZQUFZO21CQUFDLGtCQUFrQjtZQU1FLGdCQUFnQjtrQkFBakQsWUFBWTttQkFBQyxrQkFBa0I7O2tGQTlKdkIsU0FBUztBQXVZdEIsTUFBTSxPQUFPLGVBQWU7eUdBQWYsZUFBZTs0REFBZixlQUFlO2dFQUhkLFNBQVMsRUFBRSxZQUFZLEVBQ1osWUFBWTs7aUZBRXhCLGVBQWU7Y0FKM0IsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7YUFDckM7O3dGQUNZLGVBQWUsY0F2WWYsU0FBUyxFQW9ZRyxZQUFZLGFBcFl4QixTQUFTLEVBcVlHLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBudW1iZXJBdHRyaWJ1dGUsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBcmlhLCBTZWxlY3RJdGVtLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IERyb3Bkb3duQ2hhbmdlRXZlbnQgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFuZ2xlRG91YmxlTGVmdEljb24sIEFuZ2xlRG91YmxlUmlnaHRJY29uLCBBbmdsZUxlZnRJY29uLCBBbmdsZVJpZ2h0SWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMnO1xuaW1wb3J0IHsgSW5wdXROdW1iZXIgfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcbmltcG9ydCB7IFJpcHBsZSB9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJ3ByaW1lbmcvc2VsZWN0JztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAncHJpbWVuZy90cy1oZWxwZXJzJztcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAnLi9wYWdpbmF0b3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBhZ2luYXRvclN0eWxlIH0gZnJvbSAnLi9zdHlsZS9wYWdpbmF0b3JzdHlsZSc7XG5cbi8qKlxuICogUGFnaW5hdG9yIGlzIGEgZ2VuZXJpYyBjb21wb25lbnQgdG8gZGlzcGxheSBjb250ZW50IGluIHBhZ2VkIGZvcm1hdC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1wYWdpbmF0b3InLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2VsZWN0LCBJbnB1dE51bWJlciwgRm9ybXNNb2R1bGUsIFJpcHBsZSwgQW5nbGVEb3VibGVMZWZ0SWNvbiwgQW5nbGVEb3VibGVSaWdodEljb24sIEFuZ2xlTGVmdEljb24sIEFuZ2xlUmlnaHRJY29uLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIiBbbmdTdHlsZV09XCJzdHlsZVwiIFtuZ0NsYXNzXT1cIidwLXBhZ2luYXRvciBwLWNvbXBvbmVudCdcIiAqbmdJZj1cImFsd2F5c1Nob3cgPyB0cnVlIDogcGFnZUxpbmtzICYmIHBhZ2VMaW5rcy5sZW5ndGggPiAxXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidwYWdpbmF0b3InXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidyb290J1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGFnaW5hdG9yLWNvbnRlbnQtc3RhcnRcIiAqbmdJZj1cInRlbXBsYXRlTGVmdFwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInc3RhcnQnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlTGVmdDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHBhZ2luYXRvclN0YXRlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXBhZ2luYXRvci1jdXJyZW50XCIgKm5nSWY9XCJzaG93Q3VycmVudFBhZ2VSZXBvcnRcIj57eyBjdXJyZW50UGFnZVJlcG9ydCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dGaXJzdExhc3RJY29uXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNGaXJzdFBhZ2UoKSB8fCBlbXB0eSgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUGFnZVRvRmlyc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1wYWdpbmF0b3ItZmlyc3RcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZGlzYWJsZWQnOiBpc0ZpcnN0UGFnZSgpIHx8IGVtcHR5KCkgfVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRBcmlhTGFiZWwoJ2ZpcnN0UGFnZUxhYmVsJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxBbmdsZURvdWJsZUxlZnRJY29uICpuZ0lmPVwiIWZpcnN0cGFnZWxpbmtpY29uXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtcGFnaW5hdG9yLWZpcnN0LWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFnaW5hdG9yLWZpcnN0LWljb25cIiAqbmdJZj1cImZpcnN0cGFnZWxpbmtpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImZpcnN0cGFnZWxpbmtpY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0ZpcnN0UGFnZSgpIHx8IGVtcHR5KClcIiAoY2xpY2spPVwiY2hhbmdlUGFnZVRvUHJldigkZXZlbnQpXCIgcFJpcHBsZSBjbGFzcz1cInAtcGFnaW5hdG9yLXByZXZcIiBbbmdDbGFzc109XCJ7ICdwLWRpc2FibGVkJzogaXNGaXJzdFBhZ2UoKSB8fCBlbXB0eSgpIH1cIiBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEFyaWFMYWJlbCgncHJldlBhZ2VMYWJlbCcpXCI+XG4gICAgICAgICAgICAgICAgPEFuZ2xlTGVmdEljb24gKm5nSWY9XCIhcHJldmlvdXNwYWdlbGlua2ljb25cIiBbc3R5bGVDbGFzc109XCIncC1wYWdpbmF0b3ItcHJldi1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXBhZ2luYXRvci1wcmV2LWljb25cIiAqbmdJZj1cInByZXZpb3VzcGFnZWxpbmtpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInByZXZpb3VzcGFnZWxpbmtpY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYWdpbmF0b3ItcGFnZXNcIiAqbmdJZj1cInNob3dQYWdlTGlua3NcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZUxpbmsgb2YgcGFnZUxpbmtzXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXBhZ2luYXRvci1wYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1wYWdpbmF0b3ItcGFnZS1zZWxlY3RlZCc6IHBhZ2VMaW5rIC0gMSA9PSBnZXRQYWdlKCkgfVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0UGFnZUFyaWFMYWJlbChwYWdlTGluaylcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwicGFnZUxpbmsgLSAxID09IGdldFBhZ2UoKSA/ICdwYWdlJyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBhZ2VMaW5rQ2xpY2soJGV2ZW50LCBwYWdlTGluayAtIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0TG9jYWxpemF0aW9uKHBhZ2VMaW5rKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHAtc2VsZWN0XG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwicGFnZUl0ZW1zXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJnZXRQYWdlKClcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0p1bXBUb1BhZ2VEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVtcHR5KClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0QXJpYUxhYmVsKCdqdW1wVG9QYWdlRHJvcGRvd25MYWJlbCcpXCJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwicC1wYWdpbmF0b3ItanRwLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwib25QYWdlRHJvcGRvd25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2FwcGVuZFRvXT1cImRyb3Bkb3duQXBwZW5kVG9cIlxuICAgICAgICAgICAgICAgIFtzY3JvbGxIZWlnaHRdPVwiZHJvcGRvd25TY3JvbGxIZWlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzZWxlY3RlZEl0ZW1cIj57eyBjdXJyZW50UGFnZVJlcG9ydCB9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImp1bXBUb1BhZ2VJdGVtVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJqdW1wVG9QYWdlSXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImRyb3Bkb3duaWNvblwiICpuZ0lmPVwiZHJvcGRvd25pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wZG93bmljb25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9wLXNlbGVjdD5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJpc0xhc3RQYWdlKCkgfHwgZW1wdHkoKVwiIChjbGljayk9XCJjaGFuZ2VQYWdlVG9OZXh0KCRldmVudClcIiBwUmlwcGxlIGNsYXNzPVwicC1wYWdpbmF0b3ItbmV4dFwiIFtuZ0NsYXNzXT1cInsgJ3AtZGlzYWJsZWQnOiBpc0xhc3RQYWdlKCkgfHwgZW1wdHkoKSB9XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRBcmlhTGFiZWwoJ25leHRQYWdlTGFiZWwnKVwiPlxuICAgICAgICAgICAgICAgIDxBbmdsZVJpZ2h0SWNvbiAqbmdJZj1cIiFuZXh0cGFnZWxpbmtpY29uXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtcGFnaW5hdG9yLW5leHQtaWNvbidcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYWdpbmF0b3ItbmV4dC1pY29uXCIgKm5nSWY9XCJuZXh0cGFnZWxpbmtpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm5leHRwYWdlbGlua2ljb25cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0ZpcnN0TGFzdEljb25cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xhc3RQYWdlKCkgfHwgZW1wdHkoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2VUb0xhc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1wYWdpbmF0b3ItbGFzdFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1kaXNhYmxlZCc6IGlzTGFzdFBhZ2UoKSB8fCBlbXB0eSgpIH1cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0QXJpYUxhYmVsKCdsYXN0UGFnZUxhYmVsJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxBbmdsZURvdWJsZVJpZ2h0SWNvbiAqbmdJZj1cIiFsYXN0cGFnZWxpbmtpY29uXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtcGFnaW5hdG9yLWxhc3QtaWNvbidcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYWdpbmF0b3ItbGFzdC1pY29uXCIgKm5nSWY9XCJsYXN0cGFnZWxpbmtpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImxhc3RwYWdlbGlua2ljb25cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHAtaW5wdXRudW1iZXIgKm5nSWY9XCJzaG93SnVtcFRvUGFnZUlucHV0XCIgW25nTW9kZWxdPVwiY3VycmVudFBhZ2UoKVwiIGNsYXNzPVwicC1wYWdpbmF0b3ItanRwLWlucHV0XCIgW2Rpc2FibGVkXT1cImVtcHR5KClcIiAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VQYWdlKCRldmVudCAtIDEpXCI+PC9wLWlucHV0bnVtYmVyPlxuICAgICAgICAgICAgPHAtc2VsZWN0XG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwicm93c1BlclBhZ2VJdGVtc1wiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyb3dzXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInJvd3NQZXJQYWdlT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cInAtcGFnaW5hdG9yLXJwcC1kcm9wZG93blwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImVtcHR5KClcIlxuICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJvblJwcENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbYXBwZW5kVG9dPVwiZHJvcGRvd25BcHBlbmRUb1wiXG4gICAgICAgICAgICAgICAgW3Njcm9sbEhlaWdodF09XCJkcm9wZG93blNjcm9sbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJnZXRBcmlhTGFiZWwoJ3Jvd3NQZXJQYWdlTGFiZWwnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRyb3Bkb3duSXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25JdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZHJvcGRvd25pY29uXCIgKm5nSWY9XCJkcm9wZG93bmljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3Bkb3duaWNvblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3Atc2VsZWN0PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGFnaW5hdG9yLWNvbnRlbnQtZW5kXCIgKm5nSWY9XCJ0ZW1wbGF0ZVJpZ2h0XCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidlbmQnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlUmlnaHQ7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwYWdpbmF0b3JTdGF0ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1BhZ2luYXRvclN0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3IgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiBwYWdlIGxpbmtzIHRvIGRpc3BsYXkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgcGFnZUxpbmtTaXplOiBudW1iZXIgPSA1O1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gc2hvdyBpdCBldmVuIHRoZXJlIGlzIG9ubHkgb25lIHBhZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFsd2F5c1Nob3c6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFRhcmdldCBlbGVtZW50IHRvIGF0dGFjaCB0aGUgZHJvcGRvd24gb3ZlcmxheSwgdmFsaWQgdmFsdWVzIGFyZSBcImJvZHlcIiBvciBhIGxvY2FsIG5nLXRlbXBsYXRlIHZhcmlhYmxlIG9mIGFub3RoZXIgZWxlbWVudCAobm90ZTogdXNlIGJpbmRpbmcgd2l0aCBicmFja2V0cyBmb3IgdGVtcGxhdGUgdmFyaWFibGVzLCBlLmcuIFthcHBlbmRUb109XCJteWRpdlwiIGZvciBhIGRpdiBlbGVtZW50IGhhdmluZyAjbXlkaXYgYXMgdmFyaWFibGUgbmFtZSkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcGRvd25BcHBlbmRUbzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgVGVtcGxhdGVSZWY8YW55PiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgfCBhbnk7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgaW5zdGFuY2UgdG8gaW5qZWN0IGludG8gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnaW5hdG9yLlxuICAgICAqIEBwYXJhbSB7UGFnaW5hdG9yU3RhdGV9IGNvbnRleHQgLSBQYWdpbmF0b3Igc3RhdGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdGVtcGxhdGVMZWZ0OiBUZW1wbGF0ZVJlZjxQYWdpbmF0b3JTdGF0ZT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgaW5zdGFuY2UgdG8gaW5qZWN0IGludG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHBhZ2luYXRvci5cbiAgICAgKiBAcGFyYW0ge1BhZ2luYXRvclN0YXRlfSBjb250ZXh0IC0gUGFnaW5hdG9yIHN0YXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRlbXBsYXRlUmlnaHQ6IFRlbXBsYXRlUmVmPFBhZ2luYXRvclN0YXRlPiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUYXJnZXQgZWxlbWVudCB0byBhdHRhY2ggdGhlIGRyb3Bkb3duIG92ZXJsYXksIHZhbGlkIHZhbHVlcyBhcmUgXCJib2R5XCIgb3IgYSBsb2NhbCBuZy10ZW1wbGF0ZSB2YXJpYWJsZSBvZiBhbm90aGVyIGVsZW1lbnQgKG5vdGU6IHVzZSBiaW5kaW5nIHdpdGggYnJhY2tldHMgZm9yIHRlbXBsYXRlIHZhcmlhYmxlcywgZS5nLiBbYXBwZW5kVG9dPVwibXlkaXZcIiBmb3IgYSBkaXYgZWxlbWVudCBoYXZpbmcgI215ZGl2IGFzIHZhcmlhYmxlIG5hbWUpLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcGVuZFRvOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB8IGFueTtcbiAgICAvKipcbiAgICAgKiBEcm9wZG93biBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0IGluIHBpeGVscywgYSBzY3JvbGxiYXIgaXMgZGVmaW5lZCBpZiBoZWlnaHQgb2YgbGlzdCBleGNlZWRzIHRoaXMgdmFsdWUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcGRvd25TY3JvbGxIZWlnaHQ6IHN0cmluZyA9ICcyMDBweCc7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgb2YgdGhlIGN1cnJlbnQgcGFnZSByZXBvcnQgZWxlbWVudC4gQXZhaWxhYmxlIHBsYWNlaG9sZGVycyBhcmUge2N1cnJlbnRQYWdlfSx7dG90YWxQYWdlc30se3Jvd3N9LHtmaXJzdH0se2xhc3R9IGFuZCB7dG90YWxSZWNvcmRzfVxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU6IHN0cmluZyA9ICd7Y3VycmVudFBhZ2V9IG9mIHt0b3RhbFBhZ2VzfSc7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBkaXNwbGF5IGN1cnJlbnQgcGFnZSByZXBvcnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dDdXJyZW50UGFnZVJlcG9ydDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGVuIGVuYWJsZWQsIGljb25zIGFyZSBkaXNwbGF5ZWQgb24gcGFnaW5hdG9yIHRvIGdvIGZpcnN0IGFuZCBsYXN0IHBhZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dGaXJzdExhc3RJY29uOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBOdW1iZXIgb2YgdG90YWwgcmVjb3Jkcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0b3RhbFJlY29yZHM6IG51bWJlciA9IDA7XG4gICAgLyoqXG4gICAgICogRGF0YSBjb3VudCB0byBkaXNwbGF5IHBlciBwYWdlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHJvd3M6IG51bWJlciA9IDA7XG4gICAgLyoqXG4gICAgICogQXJyYXkgb2YgaW50ZWdlci9vYmplY3QgdmFsdWVzIHRvIGRpc3BsYXkgaW5zaWRlIHJvd3MgcGVyIHBhZ2UgZHJvcGRvd24uIEEgb2JqZWN0IHRoYXQgaGF2ZSAnc2hvd0FsbCcga2V5IGNhbiBiZSBhZGRlZCB0byBpdCB0byBzaG93IGFsbCBkYXRhLiBFeHA7IFsxMCwyMCwzMCx7c2hvd0FsbDonQWxsJ31dXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcm93c1BlclBhZ2VPcHRpb25zOiBhbnlbXSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBkcm9wZG93biB0byBuYXZpZ2F0ZSB0byBhbnkgcGFnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0p1bXBUb1BhZ2VEcm9wZG93bjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBpbnB1dCB0byBuYXZpZ2F0ZSB0byBhbnkgcGFnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0p1bXBUb1BhZ2VJbnB1dDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBpbnN0YW5jZSB0byBpbmplY3QgaW50byB0aGUganVtcCB0byBwYWdlIGRyb3Bkb3duIGl0ZW0gaW5zaWRlIGluIHRoZSBwYWdpbmF0b3IuXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGNvbnRleHQgLSBpdGVtIGluc3RhbmNlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGp1bXBUb1BhZ2VJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBhbnkgfT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHBhZ2UgbGlua3MuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dQYWdlTGlua3M6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIExvY2FsZSB0byBiZSB1c2VkIGluIGZvcm1hdHRpbmcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgaW5zdGFuY2UgdG8gaW5qZWN0IGludG8gdGhlIHJvd3MgcGVyIHBhZ2UgZHJvcGRvd24gaXRlbSBpbnNpZGUgaW4gdGhlIHBhZ2luYXRvci5cbiAgICAgKiBAcGFyYW0ge09iamVjdH0gY29udGV4dCAtIGl0ZW0gaW5zdGFuY2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcGRvd25JdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBhbnkgfT4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBaZXJvLXJlbGF0aXZlIG51bWJlciBvZiB0aGUgZmlyc3Qgcm93IHRvIGJlIGRpc3BsYXllZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgZmlyc3QoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpcnN0O1xuICAgIH1cblxuICAgIHNldCBmaXJzdCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9maXJzdCA9IHZhbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBwYWdlIGNoYW5nZXMsIHRoZSBldmVudCBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG5ldyBzdGF0ZS5cbiAgICAgKiBAcGFyYW0ge1BhZ2luYXRvclN0YXRlfSBldmVudCAtIFBhZ2luYXRvciBzdGF0ZS5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UGFnaW5hdG9yU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdpbmF0b3JTdGF0ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciB0aGUgZHJvcGRvd24gaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZHJvcGRvd25pY29uJykgZHJvcGRvd25pY29uOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciB0aGUgZmlyc3QgcGFnZSBsaW5rIGljb24uXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2ZpcnN0cGFnZWxpbmtpY29uJykgZmlyc3RwYWdlbGlua2ljb246IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgZm9yIHRoZSBwcmV2aW91cyBwYWdlIGxpbmsgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncHJldmlvdXNwYWdlbGlua2ljb24nKSBwcmV2aW91c3BhZ2VsaW5raWNvbjogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBmb3IgdGhlIGxhc3QgcGFnZSBsaW5rIGljb24uXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2xhc3RwYWdlbGlua2ljb24nKSBsYXN0cGFnZWxpbmtpY29uOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciB0aGUgbmV4dCBwYWdlIGxpbmsgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnbmV4dHBhZ2VsaW5raWNvbicpIG5leHRwYWdlbGlua2ljb246IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgcGFnZUxpbmtzOiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcblxuICAgIHBhZ2VJdGVtczogU2VsZWN0SXRlbVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgcm93c1BlclBhZ2VJdGVtczogU2VsZWN0SXRlbVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgcGFnaW5hdG9yU3RhdGU6IGFueTtcblxuICAgIF9maXJzdDogbnVtYmVyID0gMDtcblxuICAgIF9wYWdlOiBudW1iZXIgPSAwO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KFBhZ2luYXRvclN0eWxlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBhZ2luYXRvclN0YXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0QXJpYUxhYmVsKGxhYmVsVHlwZToga2V5b2YgQXJpYSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYVtsYWJlbFR5cGVdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldFBhZ2VBcmlhTGFiZWwodmFsdWU6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYS5wYWdlTGFiZWwucmVwbGFjZSgve3BhZ2V9L2csIGAke3ZhbHVlfWApIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldExvY2FsaXphdGlvbihkaWdpdDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbnVtZXJhbHMgPSBbLi4ubmV3IEludGwuTnVtYmVyRm9ybWF0KHRoaXMubG9jYWxlLCB7IHVzZUdyb3VwaW5nOiBmYWxzZSB9KS5mb3JtYXQoOTg3NjU0MzIxMCldLnJldmVyc2UoKTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBuZXcgTWFwKG51bWVyYWxzLm1hcCgoZCwgaSkgPT4gW2ksIGRdKSk7XG4gICAgICAgIGlmIChkaWdpdCA+IDkpIHtcbiAgICAgICAgICAgIGNvbnN0IG51bWJlcnMgPSBTdHJpbmcoZGlnaXQpLnNwbGl0KCcnKTtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXJzLm1hcCgobnVtYmVyKSA9PiBpbmRleC5nZXQoTnVtYmVyKG51bWJlcikpKS5qb2luKCcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpbmRleC5nZXQoZGlnaXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZSk7XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS50b3RhbFJlY29yZHMpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnZUxpbmtzKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhZ2luYXRvclN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpcnN0KCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJvd3NQZXJQYWdlT3B0aW9ucygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS5maXJzdCkge1xuICAgICAgICAgICAgdGhpcy5fZmlyc3QgPSBzaW1wbGVDaGFuZ2UuZmlyc3QuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQYWdlTGlua3MoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnaW5hdG9yU3RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2Uucm93cykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQYWdlTGlua3MoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnaW5hdG9yU3RhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2Uucm93c1BlclBhZ2VPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJvd3NQZXJQYWdlT3B0aW9ucygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZS5wYWdlTGlua1NpemUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnZUxpbmtzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVSb3dzUGVyUGFnZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5yb3dzUGVyUGFnZUl0ZW1zID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBvcHQgb2YgdGhpcy5yb3dzUGVyUGFnZU9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdCA9PSAnb2JqZWN0JyAmJiBvcHRbJ3Nob3dBbGwnXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd3NQZXJQYWdlSXRlbXMudW5zaGlmdCh7IGxhYmVsOiBvcHRbJ3Nob3dBbGwnXSwgdmFsdWU6IHRoaXMudG90YWxSZWNvcmRzIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93c1BlclBhZ2VJdGVtcy5wdXNoKHsgbGFiZWw6IFN0cmluZyh0aGlzLmdldExvY2FsaXphdGlvbihvcHQpKSwgdmFsdWU6IG9wdCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0ZpcnN0UGFnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UGFnZSgpID09PSAwO1xuICAgIH1cblxuICAgIGlzTGFzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFBhZ2UoKSA9PT0gdGhpcy5nZXRQYWdlQ291bnQoKSAtIDE7XG4gICAgfVxuXG4gICAgZ2V0UGFnZUNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy50b3RhbFJlY29yZHMgLyB0aGlzLnJvd3MpO1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZVBhZ2VMaW5rQm91bmRhcmllcygpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgbGV0IG51bWJlck9mUGFnZXMgPSB0aGlzLmdldFBhZ2VDb3VudCgpLFxuICAgICAgICAgICAgdmlzaWJsZVBhZ2VzID0gTWF0aC5taW4odGhpcy5wYWdlTGlua1NpemUsIG51bWJlck9mUGFnZXMpO1xuXG4gICAgICAgIC8vY2FsY3VsYXRlIHJhbmdlLCBrZWVwIGN1cnJlbnQgaW4gbWlkZGxlIGlmIG5lY2Vzc2FyeVxuICAgICAgICBsZXQgc3RhcnQgPSBNYXRoLm1heCgwLCBNYXRoLmNlaWwodGhpcy5nZXRQYWdlKCkgLSB2aXNpYmxlUGFnZXMgLyAyKSksXG4gICAgICAgICAgICBlbmQgPSBNYXRoLm1pbihudW1iZXJPZlBhZ2VzIC0gMSwgc3RhcnQgKyB2aXNpYmxlUGFnZXMgLSAxKTtcblxuICAgICAgICAvL2NoZWNrIHdoZW4gYXBwcm9hY2hpbmcgdG8gbGFzdCBwYWdlXG4gICAgICAgIHZhciBkZWx0YSA9IHRoaXMucGFnZUxpbmtTaXplIC0gKGVuZCAtIHN0YXJ0ICsgMSk7XG4gICAgICAgIHN0YXJ0ID0gTWF0aC5tYXgoMCwgc3RhcnQgLSBkZWx0YSk7XG5cbiAgICAgICAgcmV0dXJuIFtzdGFydCwgZW5kXTtcbiAgICB9XG5cbiAgICB1cGRhdGVQYWdlTGlua3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZUxpbmtzID0gW107XG4gICAgICAgIGxldCBib3VuZGFyaWVzID0gdGhpcy5jYWxjdWxhdGVQYWdlTGlua0JvdW5kYXJpZXMoKSxcbiAgICAgICAgICAgIHN0YXJ0ID0gYm91bmRhcmllc1swXSxcbiAgICAgICAgICAgIGVuZCA9IGJvdW5kYXJpZXNbMV07XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VMaW5rcy5wdXNoKGkgKyAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNob3dKdW1wVG9QYWdlRHJvcGRvd24pIHtcbiAgICAgICAgICAgIHRoaXMucGFnZUl0ZW1zID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ2V0UGFnZUNvdW50KCk7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZUl0ZW1zLnB1c2goeyBsYWJlbDogU3RyaW5nKGkgKyAxKSwgdmFsdWU6IGkgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGFuZ2VQYWdlKHA6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB2YXIgcGMgPSB0aGlzLmdldFBhZ2VDb3VudCgpO1xuXG4gICAgICAgIGlmIChwID49IDAgJiYgcCA8IHBjKSB7XG4gICAgICAgICAgICB0aGlzLl9maXJzdCA9IHRoaXMucm93cyAqIHA7XG4gICAgICAgICAgICB2YXIgc3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgcGFnZTogcCxcbiAgICAgICAgICAgICAgICBmaXJzdDogdGhpcy5maXJzdCxcbiAgICAgICAgICAgICAgICByb3dzOiB0aGlzLnJvd3MsXG4gICAgICAgICAgICAgICAgcGFnZUNvdW50OiBwY1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFnZUxpbmtzKCk7XG5cbiAgICAgICAgICAgIHRoaXMub25QYWdlQ2hhbmdlLmVtaXQoc3RhdGUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQYWdpbmF0b3JTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlRmlyc3QoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmdldFBhZ2UoKTtcbiAgICAgICAgaWYgKHBhZ2UgPiAwICYmIHRoaXMudG90YWxSZWNvcmRzICYmIHRoaXMuZmlyc3QgPj0gdGhpcy50b3RhbFJlY29yZHMpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpID0+IHRoaXMuY2hhbmdlUGFnZShwYWdlIC0gMSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UGFnZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLmZpcnN0IC8gdGhpcy5yb3dzKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VQYWdlVG9GaXJzdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRmlyc3RQYWdlKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUGFnZSgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY2hhbmdlUGFnZVRvUHJldihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VQYWdlKHRoaXMuZ2V0UGFnZSgpIC0gMSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY2hhbmdlUGFnZVRvTmV4dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VQYWdlKHRoaXMuZ2V0UGFnZSgpICsgMSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY2hhbmdlUGFnZVRvTGFzdChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTGFzdFBhZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQYWdlKHRoaXMuZ2V0UGFnZUNvdW50KCkgLSAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25QYWdlTGlua0NsaWNrKGV2ZW50OiBFdmVudCwgcGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlUGFnZShwYWdlKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblJwcENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VQYWdlKHRoaXMuZ2V0UGFnZSgpKTtcbiAgICB9XG5cbiAgICBvblBhZ2VEcm9wZG93bkNoYW5nZShldmVudDogRHJvcGRvd25DaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZVBhZ2UoZXZlbnQudmFsdWUpO1xuICAgIH1cblxuICAgIHVwZGF0ZVBhZ2luYXRvclN0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2luYXRvclN0YXRlID0ge1xuICAgICAgICAgICAgcGFnZTogdGhpcy5nZXRQYWdlKCksXG4gICAgICAgICAgICBwYWdlQ291bnQ6IHRoaXMuZ2V0UGFnZUNvdW50KCksXG4gICAgICAgICAgICByb3dzOiB0aGlzLnJvd3MsXG4gICAgICAgICAgICBmaXJzdDogdGhpcy5maXJzdCxcbiAgICAgICAgICAgIHRvdGFsUmVjb3JkczogdGhpcy50b3RhbFJlY29yZHNcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBlbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UGFnZUNvdW50KCkgPT09IDA7XG4gICAgfVxuXG4gICAgY3VycmVudFBhZ2UoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UGFnZUNvdW50KCkgPiAwID8gdGhpcy5nZXRQYWdlKCkgKyAxIDogMDtcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudFBhZ2VSZXBvcnQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZVxuICAgICAgICAgICAgLnJlcGxhY2UoJ3tjdXJyZW50UGFnZX0nLCBTdHJpbmcodGhpcy5jdXJyZW50UGFnZSgpKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKCd7dG90YWxQYWdlc30nLCBTdHJpbmcodGhpcy5nZXRQYWdlQ291bnQoKSkpXG4gICAgICAgICAgICAucmVwbGFjZSgne2ZpcnN0fScsIFN0cmluZyh0aGlzLnRvdGFsUmVjb3JkcyA+IDAgPyB0aGlzLl9maXJzdCArIDEgOiAwKSlcbiAgICAgICAgICAgIC5yZXBsYWNlKCd7bGFzdH0nLCBTdHJpbmcoTWF0aC5taW4odGhpcy5fZmlyc3QgKyB0aGlzLnJvd3MsIHRoaXMudG90YWxSZWNvcmRzKSkpXG4gICAgICAgICAgICAucmVwbGFjZSgne3Jvd3N9JywgU3RyaW5nKHRoaXMucm93cykpXG4gICAgICAgICAgICAucmVwbGFjZSgne3RvdGFsUmVjb3Jkc30nLCBTdHJpbmcodGhpcy50b3RhbFJlY29yZHMpKTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1BhZ2luYXRvciwgU2hhcmVkTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbUGFnaW5hdG9yLCBTaGFyZWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRvck1vZHVsZSB7fVxuIl19
@@ -23,11 +23,11 @@ const theme = ({ dt }) => `
23
23
  }
24
24
 
25
25
  .p-paginator-content-start {
26
- margin-right: auto;
26
+ margin-inline-end: auto;
27
27
  }
28
28
 
29
29
  .p-paginator-content-end {
30
- margin-left: auto;
30
+ margin-inline-start: auto;
31
31
  }
32
32
 
33
33
  .p-paginator-page,
@@ -73,6 +73,13 @@ const theme = ({ dt }) => `
73
73
  color: ${dt('paginator.nav.button.hover.color')};
74
74
  }
75
75
 
76
+ .p-paginator-first:dir(rtl),
77
+ .p-paginator-prev:dir(rtl),
78
+ .p-paginator-next:dir(rtl),
79
+ .p-paginator-last:dir(rtl) {
80
+ transform: rotate(180deg);
81
+ }
82
+
76
83
  .p-paginator-page.p-paginator-page-selected {
77
84
  background: ${dt('paginator.nav.button.selected.background')};
78
85
  color: ${dt('paginator.nav.button.selected.color')};
@@ -233,4 +240,4 @@ export var PaginatorClasses;
233
240
  */
234
241
  PaginatorClasses["pcJumpToPageInput"] = "p-paginator-jtp-input";
235
242
  })(PaginatorClasses || (PaginatorClasses = {}));
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yc3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdG9yL3N0eWxlL3BhZ2luYXRvcnN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7Ozs7O2tCQU1SLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUMvQixFQUFFLENBQUMsaUJBQWlCLENBQUM7ZUFDbkIsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3FCQUNqQixFQUFFLENBQUMseUJBQXlCLENBQUM7V0FDdkMsRUFBRSxDQUFDLGVBQWUsQ0FBQzs7Ozs7Ozs7V0FRbkIsRUFBRSxDQUFDLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQXdCWixFQUFFLENBQUMsaUNBQWlDLENBQUM7O2FBRTFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDNUIsRUFBRSxDQUFDLDRCQUE0QixDQUFDO2NBQ25DLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzs2QkFDbEIsRUFBRSxDQUFDLCtCQUErQixDQUFDLFdBQVcsRUFBRSxDQUFDLCtCQUErQixDQUFDLG1CQUFtQixFQUFFLENBQUMsK0JBQStCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztxQkFDbE0sRUFBRSxDQUFDLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7O2tCQVUzQyxFQUFFLENBQUMsd0NBQXdDLENBQUM7ZUFDL0MsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLElBQUksRUFBRSxDQUFDLHVDQUF1QyxDQUFDLElBQUksRUFBRSxDQUFDLHVDQUF1QyxDQUFDO3NCQUNsSSxFQUFFLENBQUMsd0NBQXdDLENBQUM7Ozs7Ozs7O2tCQVFoRCxFQUFFLENBQUMsdUNBQXVDLENBQUM7YUFDaEQsRUFBRSxDQUFDLGtDQUFrQyxDQUFDOzs7O2tCQUlqQyxFQUFFLENBQUMsMENBQTBDLENBQUM7YUFDbkQsRUFBRSxDQUFDLHFDQUFxQyxDQUFDOzs7O2FBSXpDLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQzs7Ozs7O1dBTTNDLEVBQUUsQ0FBQyxlQUFlLENBQUM7Ozs7aUJBSWIsRUFBRSxDQUFDLHdDQUF3QyxDQUFDOztDQUU1RCxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUc7SUFDWixTQUFTLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDOUIseUJBQXlCO1FBQ3pCO1lBQ0kscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFO1lBQ2pELENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxjQUFjLEVBQUU7U0FDcEQ7S0FDSjtJQUNELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsWUFBWSxFQUFFLDJCQUEyQjtJQUN6QyxVQUFVLEVBQUUseUJBQXlCO0lBQ3JDLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3JCLG1CQUFtQjtRQUNuQjtZQUNJLFlBQVksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDekM7S0FDSjtJQUNELFNBQVMsRUFBRSx3QkFBd0I7SUFDbkMsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDcEIsa0JBQWtCO1FBQ2xCO1lBQ0ksWUFBWSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUTtTQUN6QztLQUNKO0lBQ0QsUUFBUSxFQUFFLHVCQUF1QjtJQUNqQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNwQixrQkFBa0I7UUFDbEI7WUFDSSxZQUFZLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1NBQ3pDO0tBQ0o7SUFDRCxRQUFRLEVBQUUsdUJBQXVCO0lBQ2pDLElBQUksRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3BCLGtCQUFrQjtRQUNsQjtZQUNJLFlBQVksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDekM7S0FDSjtJQUNELFFBQVEsRUFBRSx1QkFBdUI7SUFDakMsS0FBSyxFQUFFLG1CQUFtQjtJQUMxQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDM0Isa0JBQWtCO1FBQ2xCO1lBQ0ksMkJBQTJCLEVBQUUsUUFBUSxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSTtTQUMzRDtLQUNKO0lBQ0QsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixvQkFBb0IsRUFBRSwwQkFBMEI7SUFDaEQsb0JBQW9CLEVBQUUsMEJBQTBCO0lBQ2hELGlCQUFpQixFQUFFLHVCQUF1QjtDQUM3QyxDQUFDO0FBR0YsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBQ3pDLElBQUksR0FBRyxXQUFXLENBQUM7SUFFbkIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLE9BQU8sR0FBRyxPQUFPLENBQUM7cU9BTFQsY0FBYyx5QkFBZCxjQUFjO2dFQUFkLGNBQWMsV0FBZCxjQUFjOztpRkFBZCxjQUFjO2NBRDFCLFVBQVU7O0FBU1g7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLENBQU4sSUFBWSxnQkFxRVg7QUFyRUQsV0FBWSxnQkFBZ0I7SUFDeEI7O09BRUc7SUFDSCw2Q0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILDhEQUEwQyxDQUFBO0lBQzFDOztPQUVHO0lBQ0gsMERBQXNDLENBQUE7SUFDdEM7O09BRUc7SUFDSCwrQ0FBMkIsQ0FBQTtJQUMzQjs7T0FFRztJQUNILHdEQUFvQyxDQUFBO0lBQ3BDOztPQUVHO0lBQ0gsNkNBQXlCLENBQUE7SUFDekI7O09BRUc7SUFDSCxzREFBa0MsQ0FBQTtJQUNsQzs7T0FFRztJQUNILDZDQUF5QixDQUFBO0lBQ3pCOztPQUVHO0lBQ0gsc0RBQWtDLENBQUE7SUFDbEM7O09BRUc7SUFDSCw2Q0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILHNEQUFrQyxDQUFBO0lBQ2xDOztPQUVHO0lBQ0gsK0NBQTJCLENBQUE7SUFDM0I7O09BRUc7SUFDSCw2Q0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILG1EQUErQixDQUFBO0lBQy9COztPQUVHO0lBQ0gscUVBQWlELENBQUE7SUFDakQ7O09BRUc7SUFDSCxxRUFBaUQsQ0FBQTtJQUNqRDs7T0FFRztJQUNILCtEQUEyQyxDQUFBO0FBQy9DLENBQUMsRUFyRVcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQXFFM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuXG5jb25zdCB0aGVtZSA9ICh7IGR0IH0pID0+IGBcbi5wLXBhZ2luYXRvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdwYWdpbmF0b3IuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgncGFnaW5hdG9yLmNvbG9yJyl9O1xuICAgIHBhZGRpbmc6ICR7ZHQoJ3BhZ2luYXRvci5wYWRkaW5nJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ3BhZ2luYXRvci5ib3JkZXIucmFkaXVzJyl9O1xuICAgIGdhcDogJHtkdCgncGFnaW5hdG9yLmdhcCcpfTtcbn1cblxuLnAtcGFnaW5hdG9yLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAke2R0KCdwYWdpbmF0b3IuZ2FwJyl9O1xufVxuXG4ucC1wYWdpbmF0b3ItY29udGVudC1zdGFydCB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ucC1wYWdpbmF0b3ItY29udGVudC1lbmQge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ucC1wYWdpbmF0b3ItcGFnZSxcbi5wLXBhZ2luYXRvci1uZXh0LFxuLnAtcGFnaW5hdG9yLWxhc3QsXG4ucC1wYWdpbmF0b3ItZmlyc3QsXG4ucC1wYWdpbmF0b3ItcHJldiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uYmFja2dyb3VuZCcpfTtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBjb2xvcjogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uY29sb3InKX07XG4gICAgbWluLXdpZHRoOiAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi53aWR0aCcpfTtcbiAgICBoZWlnaHQ6ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLmhlaWdodCcpfTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICR7ZHQoJ3BhZ2luYXRvci50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBjb2xvciAke2R0KCdwYWdpbmF0b3IudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgb3V0bGluZS1jb2xvciAke2R0KCdwYWdpbmF0b3IudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgYm94LXNoYWRvdyAke2R0KCdwYWdpbmF0b3IudHJhbnNpdGlvbi5kdXJhdGlvbicpfTtcbiAgICBib3JkZXItcmFkaXVzOiAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi5ib3JkZXIucmFkaXVzJyl9O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ucC1wYWdpbmF0b3ItcGFnZTpmb2N1cy12aXNpYmxlLFxuLnAtcGFnaW5hdG9yLW5leHQ6Zm9jdXMtdmlzaWJsZSxcbi5wLXBhZ2luYXRvci1sYXN0OmZvY3VzLXZpc2libGUsXG4ucC1wYWdpbmF0b3ItZmlyc3Q6Zm9jdXMtdmlzaWJsZSxcbi5wLXBhZ2luYXRvci1wcmV2OmZvY3VzLXZpc2libGUge1xuICAgIGJveC1zaGFkb3c6ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLmZvY3VzLnJpbmcuc2hhZG93Jyl9O1xuICAgIG91dGxpbmU6ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLmZvY3VzLnJpbmcud2lkdGgnKX0gJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uZm9jdXMucmluZy5zdHlsZScpfSAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi5mb2N1cy5yaW5nLmNvbG9yJyl9O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi5mb2N1cy5yaW5nLm9mZnNldCcpfTtcbn1cblxuLnAtcGFnaW5hdG9yLXBhZ2U6bm90KC5wLWRpc2FibGVkKTpub3QoLnAtcGFnaW5hdG9yLXBhZ2Utc2VsZWN0ZWQpOmhvdmVyLFxuLnAtcGFnaW5hdG9yLWZpcnN0Om5vdCgucC1kaXNhYmxlZCk6aG92ZXIsXG4ucC1wYWdpbmF0b3ItcHJldjpub3QoLnAtZGlzYWJsZWQpOmhvdmVyLFxuLnAtcGFnaW5hdG9yLW5leHQ6bm90KC5wLWRpc2FibGVkKTpob3Zlcixcbi5wLXBhZ2luYXRvci1sYXN0Om5vdCgucC1kaXNhYmxlZCk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLmhvdmVyLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLmhvdmVyLmNvbG9yJyl9O1xufVxuXG4ucC1wYWdpbmF0b3ItcGFnZS5wLXBhZ2luYXRvci1wYWdlLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi5zZWxlY3RlZC5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi5zZWxlY3RlZC5jb2xvcicpfTtcbn1cblxuLnAtcGFnaW5hdG9yLWN1cnJlbnQge1xuICAgIGNvbG9yOiAke2R0KCdwYWdpbmF0b3IuY3VycmVudC5wYWdlLnJlcG9ydC5jb2xvcicpfTtcbn1cblxuLnAtcGFnaW5hdG9yLXBhZ2VzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAke2R0KCdwYWdpbmF0b3IuZ2FwJyl9O1xufVxuXG4ucC1wYWdpbmF0b3ItanRwLWlucHV0IC5wLWlucHV0dGV4dCB7XG4gICAgbWF4LXdpZHRoOiAke2R0KCdwYWdpbmF0b3IuanVtcC50by5wYWdlLmlucHV0Lm1heC53aWR0aCcpfTtcbn1cbmA7XG5cbmNvbnN0IGNsYXNzZXMgPSB7XG4gICAgcGFnaW5hdG9yOiAoeyBpbnN0YW5jZSwga2V5IH0pID0+IFtcbiAgICAgICAgJ3AtcGFnaW5hdG9yIHAtY29tcG9uZW50JyxcbiAgICAgICAge1xuICAgICAgICAgICAgJ3AtcGFnaW5hdG9yLWRlZmF1bHQnOiAhaW5zdGFuY2UuaGFzQnJlYWtwb2ludHMoKSxcbiAgICAgICAgICAgIFtgcC1wYWdpbmF0b3ItJHtrZXl9YF06IGluc3RhbmNlLmhhc0JyZWFrcG9pbnRzKClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY29udGVudDogJ3AtcGFnaW5hdG9yLWNvbnRlbnQnLFxuICAgIGNvbnRlbnRTdGFydDogJ3AtcGFnaW5hdG9yLWNvbnRlbnQtc3RhcnQnLFxuICAgIGNvbnRlbnRFbmQ6ICdwLXBhZ2luYXRvci1jb250ZW50LWVuZCcsXG4gICAgZmlyc3Q6ICh7IGluc3RhbmNlIH0pID0+IFtcbiAgICAgICAgJ3AtcGFnaW5hdG9yLWZpcnN0JyxcbiAgICAgICAge1xuICAgICAgICAgICAgJ3AtZGlzYWJsZWQnOiBpbnN0YW5jZS4kYXR0cnMuZGlzYWJsZWRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgZmlyc3RJY29uOiAncC1wYWdpbmF0b3ItZmlyc3QtaWNvbicsXG4gICAgcHJldjogKHsgaW5zdGFuY2UgfSkgPT4gW1xuICAgICAgICAncC1wYWdpbmF0b3ItcHJldicsXG4gICAgICAgIHtcbiAgICAgICAgICAgICdwLWRpc2FibGVkJzogaW5zdGFuY2UuJGF0dHJzLmRpc2FibGVkXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHByZXZJY29uOiAncC1wYWdpbmF0b3ItcHJldi1pY29uJyxcbiAgICBuZXh0OiAoeyBpbnN0YW5jZSB9KSA9PiBbXG4gICAgICAgICdwLXBhZ2luYXRvci1uZXh0JyxcbiAgICAgICAge1xuICAgICAgICAgICAgJ3AtZGlzYWJsZWQnOiBpbnN0YW5jZS4kYXR0cnMuZGlzYWJsZWRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgbmV4dEljb246ICdwLXBhZ2luYXRvci1uZXh0LWljb24nLFxuICAgIGxhc3Q6ICh7IGluc3RhbmNlIH0pID0+IFtcbiAgICAgICAgJ3AtcGFnaW5hdG9yLWxhc3QnLFxuICAgICAgICB7XG4gICAgICAgICAgICAncC1kaXNhYmxlZCc6IGluc3RhbmNlLiRhdHRycy5kaXNhYmxlZFxuICAgICAgICB9XG4gICAgXSxcbiAgICBsYXN0SWNvbjogJ3AtcGFnaW5hdG9yLWxhc3QtaWNvbicsXG4gICAgcGFnZXM6ICdwLXBhZ2luYXRvci1wYWdlcycsXG4gICAgcGFnZTogKHsgcHJvcHMsIHBhZ2VMaW5rIH0pID0+IFtcbiAgICAgICAgJ3AtcGFnaW5hdG9yLXBhZ2UnLFxuICAgICAgICB7XG4gICAgICAgICAgICAncC1wYWdpbmF0b3ItcGFnZS1zZWxlY3RlZCc6IHBhZ2VMaW5rIC0gMSA9PT0gcHJvcHMucGFnZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBjdXJyZW50OiAncC1wYWdpbmF0b3ItY3VycmVudCcsXG4gICAgcGNSb3dQZXJQYWdlRHJvcGRvd246ICdwLXBhZ2luYXRvci1ycHAtZHJvcGRvd24nLFxuICAgIHBjSnVtcFRvUGFnZURyb3Bkb3duOiAncC1wYWdpbmF0b3ItanRwLWRyb3Bkb3duJyxcbiAgICBwY0p1bXBUb1BhZ2VJbnB1dDogJ3AtcGFnaW5hdG9yLWp0cC1pbnB1dCdcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQYWdpbmF0b3JTdHlsZSBleHRlbmRzIEJhc2VTdHlsZSB7XG4gICAgbmFtZSA9ICdwYWdpbmF0b3InO1xuXG4gICAgdGhlbWUgPSB0aGVtZTtcblxuICAgIGNsYXNzZXMgPSBjbGFzc2VzO1xufVxuXG4vKipcbiAqXG4gKiBQYWdpbmF0b3IgaXMgYSBnZW5lcmljIGNvbXBvbmVudCB0byBkaXNwbGF5IGNvbnRlbnQgaW4gcGFnZWQgZm9ybWF0LlxuICpcbiAqIFtMaXZlIERlbW9dKGh0dHBzOi8vd3d3LnByaW1lbmcub3JnL3BhZ2luYXRvcilcbiAqXG4gKiBAbW9kdWxlIHBhZ2luYXRvcnN0eWxlXG4gKlxuICovXG5cbmV4cG9ydCBlbnVtIFBhZ2luYXRvckNsYXNzZXMge1xuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHBhZ2luYXRvciBlbGVtZW50XG4gICAgICovXG4gICAgcGFnaW5hdG9yID0gJ3AtcGFnaW5hdG9yJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBjb250ZW50IHN0YXJ0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBjb250ZW50U3RhcnQgPSAncC1wYWdpbmF0b3ItY29udGVudC1zdGFydCcsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgY29udGVudCBlbmQgZWxlbWVudFxuICAgICAqL1xuICAgIGNvbnRlbnRFbmQgPSAncC1wYWdpbmF0b3ItY29udGVudC1lbmQnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGZpcnN0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBmaXJzdCA9ICdwLXBhZ2luYXRvci1maXJzdCcsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgZmlyc3QgaWNvbiBlbGVtZW50XG4gICAgICovXG4gICAgZmlyc3RJY29uID0gJ3AtcGFnaW5hdG9yLWZpcnN0LWljb24nLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHByZXYgZWxlbWVudFxuICAgICAqL1xuICAgIHByZXYgPSAncC1wYWdpbmF0b3ItcHJldicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgcHJldiBpY29uIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcmV2SWNvbiA9ICdwLXBhZ2luYXRvci1wcmV2LWljb24nLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIG5leHQgZWxlbWVudFxuICAgICAqL1xuICAgIG5leHQgPSAncC1wYWdpbmF0b3ItbmV4dCcsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgbmV4dCBpY29uIGVsZW1lbnRcbiAgICAgKi9cbiAgICBuZXh0SWNvbiA9ICdwLXBhZ2luYXRvci1uZXh0LWljb24nLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGxhc3QgZWxlbWVudFxuICAgICAqL1xuICAgIGxhc3QgPSAncC1wYWdpbmF0b3ItbGFzdCcsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgbGFzdCBpY29uIGVsZW1lbnRcbiAgICAgKi9cbiAgICBsYXN0SWNvbiA9ICdwLXBhZ2luYXRvci1sYXN0LWljb24nLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHBhZ2VzIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwYWdlcyA9ICdwLXBhZ2luYXRvci1wYWdlcycsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgcGFnZSBlbGVtZW50XG4gICAgICovXG4gICAgcGFnZSA9ICdwLXBhZ2luYXRvci1wYWdlJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBjdXJyZW50IGVsZW1lbnRcbiAgICAgKi9cbiAgICBjdXJyZW50ID0gJ3AtcGFnaW5hdG9yLWN1cnJlbnQnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHJvdyBwZXIgcGFnZSBkcm9wZG93biBlbGVtZW50XG4gICAgICovXG4gICAgcGNSb3dQZXJQYWdlRHJvcGRvd24gPSAncC1wYWdpbmF0b3ItcnBwLWRyb3Bkb3duJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBqdW1wIHRvIHBhZ2UgZHJvcGRvd24gZWxlbWVudFxuICAgICAqL1xuICAgIHBjSnVtcFRvUGFnZURyb3Bkb3duID0gJ3AtcGFnaW5hdG9yLWp0cC1kcm9wZG93bicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUganVtcCB0byBwYWdlIGlucHV0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBwY0p1bXBUb1BhZ2VJbnB1dCA9ICdwLXBhZ2luYXRvci1qdHAtaW5wdXQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdG9yU3R5bGUgZXh0ZW5kcyBCYXNlU3R5bGUge31cbiJdfQ==
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yc3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnaW5hdG9yL3N0eWxlL3BhZ2luYXRvcnN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7Ozs7O2tCQU1SLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUMvQixFQUFFLENBQUMsaUJBQWlCLENBQUM7ZUFDbkIsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3FCQUNqQixFQUFFLENBQUMseUJBQXlCLENBQUM7V0FDdkMsRUFBRSxDQUFDLGVBQWUsQ0FBQzs7Ozs7Ozs7V0FRbkIsRUFBRSxDQUFDLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQXdCWixFQUFFLENBQUMsaUNBQWlDLENBQUM7O2FBRTFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztpQkFDNUIsRUFBRSxDQUFDLDRCQUE0QixDQUFDO2NBQ25DLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQzs2QkFDbEIsRUFBRSxDQUFDLCtCQUErQixDQUFDLFdBQVcsRUFBRSxDQUFDLCtCQUErQixDQUFDLG1CQUFtQixFQUFFLENBQUMsK0JBQStCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztxQkFDbE0sRUFBRSxDQUFDLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7O2tCQVUzQyxFQUFFLENBQUMsd0NBQXdDLENBQUM7ZUFDL0MsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLElBQUksRUFBRSxDQUFDLHVDQUF1QyxDQUFDLElBQUksRUFBRSxDQUFDLHVDQUF1QyxDQUFDO3NCQUNsSSxFQUFFLENBQUMsd0NBQXdDLENBQUM7Ozs7Ozs7O2tCQVFo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SCw2Q0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILHNEQUFrQyxDQUFBO0lBQ2xDOztPQUVHO0lBQ0gsNkNBQXlCLENBQUE7SUFDekI7O09BRUc7SUFDSCxzREFBa0MsQ0FBQTtJQUNsQzs7T0FFRztJQUNILCtDQUEyQixDQUFBO0lBQzNCOztPQUVHO0lBQ0gsNkNBQXlCLENBQUE7SUFDekI7O09BRUc7SUFDSCxtREFBK0IsQ0FBQTtJQUMvQjs7T0FFRztJQUNILHFFQUFpRCxDQUFBO0lBQ2pEOztPQUVHO0lBQ0gscUVBQWlELENBQUE7SUFDakQ7O09BRUc7SUFDSCwrREFBMkMsQ0FBQTtBQUMvQyxDQUFDLEVBckVXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFxRTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVN0eWxlIH0gZnJvbSAncHJpbWVuZy9iYXNlJztcblxuY29uc3QgdGhlbWUgPSAoeyBkdCB9KSA9PiBgXG4ucC1wYWdpbmF0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYmFja2dyb3VuZDogJHtkdCgncGFnaW5hdG9yLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ3BhZ2luYXRvci5jb2xvcicpfTtcbiAgICBwYWRkaW5nOiAke2R0KCdwYWdpbmF0b3IucGFkZGluZycpfTtcbiAgICBib3JkZXItcmFkaXVzOiAke2R0KCdwYWdpbmF0b3IuYm9yZGVyLnJhZGl1cycpfTtcbiAgICBnYXA6ICR7ZHQoJ3BhZ2luYXRvci5nYXAnKX07XG59XG5cbi5wLXBhZ2luYXRvci1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogJHtkdCgncGFnaW5hdG9yLmdhcCcpfTtcbn1cblxuLnAtcGFnaW5hdG9yLWNvbnRlbnQtc3RhcnQge1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiBhdXRvO1xufVxuXG4ucC1wYWdpbmF0b3ItY29udGVudC1lbmQge1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG59XG5cbi5wLXBhZ2luYXRvci1wYWdlLFxuLnAtcGFnaW5hdG9yLW5leHQsXG4ucC1wYWdpbmF0b3ItbGFzdCxcbi5wLXBhZ2luYXRvci1maXJzdCxcbi5wLXBhZ2luYXRvci1wcmV2IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi5iYWNrZ3JvdW5kJyl9O1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGNvbG9yOiAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi5jb2xvcicpfTtcbiAgICBtaW4td2lkdGg6ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLndpZHRoJyl9O1xuICAgIGhlaWdodDogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uaGVpZ2h0Jyl9O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJHtkdCgncGFnaW5hdG9yLnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGNvbG9yICR7ZHQoJ3BhZ2luYXRvci50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBvdXRsaW5lLWNvbG9yICR7ZHQoJ3BhZ2luYXRvci50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBib3gtc2hhZG93ICR7ZHQoJ3BhZ2luYXRvci50cmFuc2l0aW9uLmR1cmF0aW9uJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLmJvcmRlci5yYWRpdXMnKX07XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5wLXBhZ2luYXRvci1wYWdlOmZvY3VzLXZpc2libGUsXG4ucC1wYWdpbmF0b3ItbmV4dDpmb2N1cy12aXNpYmxlLFxuLnAtcGFnaW5hdG9yLWxhc3Q6Zm9jdXMtdmlzaWJsZSxcbi5wLXBhZ2luYXRvci1maXJzdDpmb2N1cy12aXNpYmxlLFxuLnAtcGFnaW5hdG9yLXByZXY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgYm94LXNoYWRvdzogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uZm9jdXMucmluZy5zaGFkb3cnKX07XG4gICAgb3V0bGluZTogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uZm9jdXMucmluZy53aWR0aCcpfSAke2R0KCdwYWdpbmF0b3IubmF2LmJ1dHRvbi5mb2N1cy5yaW5nLnN0eWxlJyl9ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLmZvY3VzLnJpbmcuY29sb3InKX07XG4gICAgb3V0bGluZS1vZmZzZXQ6ICR7ZHQoJ3BhZ2luYXRvci5uYXYuYnV0dG9uLmZvY3VzLnJpbmcub2Zmc2V0Jyl9O1xufVxuXG4ucC1wYWdpbmF0b3ItcGFnZTpub3QoLnAtZGlzYWJsZWQpOm5vdCgucC1wYWdpbmF0b3ItcGFnZS1zZWxlY3RlZCk6aG92ZXIsXG4ucC1wYWdpbmF0b3ItZmlyc3Q6bm90KC5wLWRpc2FibGVkKTpob3Zlcixcbi5wLXBhZ2luYXRvci1wcmV2Om5vdCgucC1kaXNhYmxlZCk6aG92ZXIsXG4ucC1wYWdpbmF0b3ItbmV4dDpub3QoLnAtZGlzYWJsZWQpOmhvdmVyLFxuLnAtcGFnaW5hdG9yLWxhc3Q6bm90KC5wLWRpc2FibGVkKTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uaG92ZXIuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uaG92ZXIuY29sb3InKX07XG59XG5cbi5wLXBhZ2luYXRvci1maXJzdDpkaXIocnRsKSxcbi5wLXBhZ2luYXRvci1wcmV2OmRpcihydGwpLFxuLnAtcGFnaW5hdG9yLW5leHQ6ZGlyKHJ0bCksXG4ucC1wYWdpbmF0b3ItbGFzdDpkaXIocnRsKSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLnAtcGFnaW5hdG9yLXBhZ2UucC1wYWdpbmF0b3ItcGFnZS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uc2VsZWN0ZWQuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgncGFnaW5hdG9yLm5hdi5idXR0b24uc2VsZWN0ZWQuY29sb3InKX07XG59XG5cbi5wLXBhZ2luYXRvci1jdXJyZW50IHtcbiAgICBjb2xvcjogJHtkdCgncGFnaW5hdG9yLmN1cnJlbnQucGFnZS5yZXBvcnQuY29sb3InKX07XG59XG5cbi5wLXBhZ2luYXRvci1wYWdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogJHtkdCgncGFnaW5hdG9yLmdhcCcpfTtcbn1cblxuLnAtcGFnaW5hdG9yLWp0cC1pbnB1dCAucC1pbnB1dHRleHQge1xuICAgIG1heC13aWR0aDogJHtkdCgncGFnaW5hdG9yLmp1bXAudG8ucGFnZS5pbnB1dC5tYXgud2lkdGgnKX07XG59XG5gO1xuXG5jb25zdCBjbGFzc2VzID0ge1xuICAgIHBhZ2luYXRvcjogKHsgaW5zdGFuY2UsIGtleSB9KSA9PiBbXG4gICAgICAgICdwLXBhZ2luYXRvciBwLWNvbXBvbmVudCcsXG4gICAgICAgIHtcbiAgICAgICAgICAgICdwLXBhZ2luYXRvci1kZWZhdWx0JzogIWluc3RhbmNlLmhhc0JyZWFrcG9pbnRzKCksXG4gICAgICAgICAgICBbYHAtcGFnaW5hdG9yLSR7a2V5fWBdOiBpbnN0YW5jZS5oYXNCcmVha3BvaW50cygpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGNvbnRlbnQ6ICdwLXBhZ2luYXRvci1jb250ZW50JyxcbiAgICBjb250ZW50U3RhcnQ6ICdwLXBhZ2luYXRvci1jb250ZW50LXN0YXJ0JyxcbiAgICBjb250ZW50RW5kOiAncC1wYWdpbmF0b3ItY29udGVudC1lbmQnLFxuICAgIGZpcnN0OiAoeyBpbnN0YW5jZSB9KSA9PiBbXG4gICAgICAgICdwLXBhZ2luYXRvci1maXJzdCcsXG4gICAgICAgIHtcbiAgICAgICAgICAgICdwLWRpc2FibGVkJzogaW5zdGFuY2UuJGF0dHJzLmRpc2FibGVkXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGZpcnN0SWNvbjogJ3AtcGFnaW5hdG9yLWZpcnN0LWljb24nLFxuICAgIHByZXY6ICh7IGluc3RhbmNlIH0pID0+IFtcbiAgICAgICAgJ3AtcGFnaW5hdG9yLXByZXYnLFxuICAgICAgICB7XG4gICAgICAgICAgICAncC1kaXNhYmxlZCc6IGluc3RhbmNlLiRhdHRycy5kaXNhYmxlZFxuICAgICAgICB9XG4gICAgXSxcbiAgICBwcmV2SWNvbjogJ3AtcGFnaW5hdG9yLXByZXYtaWNvbicsXG4gICAgbmV4dDogKHsgaW5zdGFuY2UgfSkgPT4gW1xuICAgICAgICAncC1wYWdpbmF0b3ItbmV4dCcsXG4gICAgICAgIHtcbiAgICAgICAgICAgICdwLWRpc2FibGVkJzogaW5zdGFuY2UuJGF0dHJzLmRpc2FibGVkXG4gICAgICAgIH1cbiAgICBdLFxuICAgIG5leHRJY29uOiAncC1wYWdpbmF0b3ItbmV4dC1pY29uJyxcbiAgICBsYXN0OiAoeyBpbnN0YW5jZSB9KSA9PiBbXG4gICAgICAgICdwLXBhZ2luYXRvci1sYXN0JyxcbiAgICAgICAge1xuICAgICAgICAgICAgJ3AtZGlzYWJsZWQnOiBpbnN0YW5jZS4kYXR0cnMuZGlzYWJsZWRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgbGFzdEljb246ICdwLXBhZ2luYXRvci1sYXN0LWljb24nLFxuICAgIHBhZ2VzOiAncC1wYWdpbmF0b3ItcGFnZXMnLFxuICAgIHBhZ2U6ICh7IHByb3BzLCBwYWdlTGluayB9KSA9PiBbXG4gICAgICAgICdwLXBhZ2luYXRvci1wYWdlJyxcbiAgICAgICAge1xuICAgICAgICAgICAgJ3AtcGFnaW5hdG9yLXBhZ2Utc2VsZWN0ZWQnOiBwYWdlTGluayAtIDEgPT09IHByb3BzLnBhZ2VcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY3VycmVudDogJ3AtcGFnaW5hdG9yLWN1cnJlbnQnLFxuICAgIHBjUm93UGVyUGFnZURyb3Bkb3duOiAncC1wYWdpbmF0b3ItcnBwLWRyb3Bkb3duJyxcbiAgICBwY0p1bXBUb1BhZ2VEcm9wZG93bjogJ3AtcGFnaW5hdG9yLWp0cC1kcm9wZG93bicsXG4gICAgcGNKdW1wVG9QYWdlSW5wdXQ6ICdwLXBhZ2luYXRvci1qdHAtaW5wdXQnXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFnaW5hdG9yU3R5bGUgZXh0ZW5kcyBCYXNlU3R5bGUge1xuICAgIG5hbWUgPSAncGFnaW5hdG9yJztcblxuICAgIHRoZW1lID0gdGhlbWU7XG5cbiAgICBjbGFzc2VzID0gY2xhc3Nlcztcbn1cblxuLyoqXG4gKlxuICogUGFnaW5hdG9yIGlzIGEgZ2VuZXJpYyBjb21wb25lbnQgdG8gZGlzcGxheSBjb250ZW50IGluIHBhZ2VkIGZvcm1hdC5cbiAqXG4gKiBbTGl2ZSBEZW1vXShodHRwczovL3d3dy5wcmltZW5nLm9yZy9wYWdpbmF0b3IpXG4gKlxuICogQG1vZHVsZSBwYWdpbmF0b3JzdHlsZVxuICpcbiAqL1xuXG5leHBvcnQgZW51bSBQYWdpbmF0b3JDbGFzc2VzIHtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBwYWdpbmF0b3IgZWxlbWVudFxuICAgICAqL1xuICAgIHBhZ2luYXRvciA9ICdwLXBhZ2luYXRvcicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgY29udGVudCBzdGFydCBlbGVtZW50XG4gICAgICovXG4gICAgY29udGVudFN0YXJ0ID0gJ3AtcGFnaW5hdG9yLWNvbnRlbnQtc3RhcnQnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGNvbnRlbnQgZW5kIGVsZW1lbnRcbiAgICAgKi9cbiAgICBjb250ZW50RW5kID0gJ3AtcGFnaW5hdG9yLWNvbnRlbnQtZW5kJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBmaXJzdCBlbGVtZW50XG4gICAgICovXG4gICAgZmlyc3QgPSAncC1wYWdpbmF0b3ItZmlyc3QnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGZpcnN0IGljb24gZWxlbWVudFxuICAgICAqL1xuICAgIGZpcnN0SWNvbiA9ICdwLXBhZ2luYXRvci1maXJzdC1pY29uJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBwcmV2IGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcmV2ID0gJ3AtcGFnaW5hdG9yLXByZXYnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHByZXYgaWNvbiBlbGVtZW50XG4gICAgICovXG4gICAgcHJldkljb24gPSAncC1wYWdpbmF0b3ItcHJldi1pY29uJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBuZXh0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBuZXh0ID0gJ3AtcGFnaW5hdG9yLW5leHQnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIG5leHQgaWNvbiBlbGVtZW50XG4gICAgICovXG4gICAgbmV4dEljb24gPSAncC1wYWdpbmF0b3ItbmV4dC1pY29uJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBsYXN0IGVsZW1lbnRcbiAgICAgKi9cbiAgICBsYXN0ID0gJ3AtcGFnaW5hdG9yLWxhc3QnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGxhc3QgaWNvbiBlbGVtZW50XG4gICAgICovXG4gICAgbGFzdEljb24gPSAncC1wYWdpbmF0b3ItbGFzdC1pY29uJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBwYWdlcyBlbGVtZW50XG4gICAgICovXG4gICAgcGFnZXMgPSAncC1wYWdpbmF0b3ItcGFnZXMnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIHBhZ2UgZWxlbWVudFxuICAgICAqL1xuICAgIHBhZ2UgPSAncC1wYWdpbmF0b3ItcGFnZScsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgY3VycmVudCBlbGVtZW50XG4gICAgICovXG4gICAgY3VycmVudCA9ICdwLXBhZ2luYXRvci1jdXJyZW50JyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSByb3cgcGVyIHBhZ2UgZHJvcGRvd24gZWxlbWVudFxuICAgICAqL1xuICAgIHBjUm93UGVyUGFnZURyb3Bkb3duID0gJ3AtcGFnaW5hdG9yLXJwcC1kcm9wZG93bicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUganVtcCB0byBwYWdlIGRyb3Bkb3duIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwY0p1bXBUb1BhZ2VEcm9wZG93biA9ICdwLXBhZ2luYXRvci1qdHAtZHJvcGRvd24nLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGp1bXAgdG8gcGFnZSBpbnB1dCBlbGVtZW50XG4gICAgICovXG4gICAgcGNKdW1wVG9QYWdlSW5wdXQgPSAncC1wYWdpbmF0b3ItanRwLWlucHV0J1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRvclN0eWxlIGV4dGVuZHMgQmFzZVN0eWxlIHt9XG4iXX0=