primeng 18.0.0-beta.1 → 18.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/README.md +1 -1
  2. package/accordion/accordion.d.ts +1 -1
  3. package/accordion/style/accordionstyle.d.ts +37 -0
  4. package/api/translation.d.ts +2 -0
  5. package/autocomplete/autocomplete.d.ts +2 -3
  6. package/autocomplete/style/autocompletestyle.d.ts +69 -0
  7. package/avatar/style/avatarstyle.d.ts +25 -0
  8. package/avatargroup/style/avatargroupstyle.d.ts +14 -0
  9. package/badge/style/badgestyle.d.ts +17 -0
  10. package/base/style/basestyle.d.ts +4 -0
  11. package/blockui/blockui.d.ts +1 -1
  12. package/blockui/style/blockuistyle.d.ts +17 -0
  13. package/breadcrumb/style/breadcrumbstyle.d.ts +45 -0
  14. package/button/style/buttonstyle.d.ts +29 -0
  15. package/buttongroup/style/buttongroupstyle.d.ts +17 -0
  16. package/card/style/cardstyle.d.ts +45 -0
  17. package/carousel/style/carouselstyle.d.ts +69 -0
  18. package/cascadeselect/cascadeselect.d.ts +2 -2
  19. package/cascadeselect/style/cascadeselectstyle.d.ts +65 -0
  20. package/checkbox/style/checkboxstyle.d.ts +29 -0
  21. package/chip/style/chipstyle.d.ts +33 -0
  22. package/colorpicker/colorpicker.d.ts +1 -1
  23. package/colorpicker/style/colorpickerstyle.d.ts +45 -0
  24. package/confirmdialog/confirmdialog.d.ts +1 -1
  25. package/confirmdialog/style/confirmdialogstyle.d.ts +33 -0
  26. package/confirmpopup/confirmpopup.d.ts +3 -3
  27. package/confirmpopup/style/confirmpopupstyle.d.ts +41 -0
  28. package/contextmenu/contextmenu.d.ts +2 -2
  29. package/contextmenu/style/contextmenustyle.d.ts +54 -0
  30. package/dataview/dataview.d.ts +1 -1
  31. package/dataview/style/dataviewstyle.d.ts +37 -0
  32. package/datepicker/datepicker.d.ts +1 -1
  33. package/datepicker/style/datepickerstyle.d.ts +165 -0
  34. package/dialog/style/dialogstyle.d.ts +49 -0
  35. package/divider/style/dividerstyle.d.ts +21 -0
  36. package/dock/style/dockstyle.d.ts +41 -0
  37. package/drawer/style/drawerstyle.d.ts +37 -0
  38. package/dropdown/style/dropdownstyle.d.ts +14 -0
  39. package/dynamicdialog/style/dynamicdialogstyle.d.ts +49 -0
  40. package/editor/style/editorstyle.d.ts +25 -0
  41. package/esm2022/accordion/accordion.mjs +3 -3
  42. package/esm2022/accordion/style/accordionstyle.mjs +37 -1
  43. package/esm2022/api/primengconfig.mjs +3 -1
  44. package/esm2022/api/translation.mjs +1 -1
  45. package/esm2022/autocomplete/autocomplete.mjs +4 -4
  46. package/esm2022/autocomplete/style/autocompletestyle.mjs +69 -1
  47. package/esm2022/avatar/style/avatarstyle.mjs +25 -1
  48. package/esm2022/avatargroup/style/avatargroupstyle.mjs +14 -1
  49. package/esm2022/badge/style/badgestyle.mjs +17 -1
  50. package/esm2022/basecomponent/basecomponent.mjs +3 -4
  51. package/esm2022/blockui/blockui.mjs +3 -3
  52. package/esm2022/blockui/style/blockuistyle.mjs +17 -1
  53. package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +45 -1
  54. package/esm2022/button/style/buttonstyle.mjs +29 -1
  55. package/esm2022/buttongroup/style/buttongroupstyle.mjs +17 -1
  56. package/esm2022/card/style/cardstyle.mjs +45 -1
  57. package/esm2022/carousel/style/carouselstyle.mjs +69 -1
  58. package/esm2022/cascadeselect/cascadeselect.mjs +15 -19
  59. package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +65 -1
  60. package/esm2022/checkbox/checkbox.mjs +1 -1
  61. package/esm2022/checkbox/style/checkboxstyle.mjs +29 -1
  62. package/esm2022/chip/style/chipstyle.mjs +33 -1
  63. package/esm2022/colorpicker/colorpicker.mjs +3 -3
  64. package/esm2022/colorpicker/style/colorpickerstyle.mjs +45 -1
  65. package/esm2022/confirmdialog/confirmdialog.mjs +3 -3
  66. package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +33 -1
  67. package/esm2022/confirmpopup/confirmpopup.mjs +11 -11
  68. package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +41 -1
  69. package/esm2022/contextmenu/contextmenu.mjs +15 -15
  70. package/esm2022/contextmenu/style/contextmenustyle.mjs +54 -1
  71. package/esm2022/dataview/dataview.mjs +3 -3
  72. package/esm2022/dataview/style/dataviewstyle.mjs +37 -1
  73. package/esm2022/datepicker/datepicker.mjs +3 -3
  74. package/esm2022/datepicker/style/datepickerstyle.mjs +165 -1
  75. package/esm2022/dialog/style/dialogstyle.mjs +49 -1
  76. package/esm2022/divider/style/dividerstyle.mjs +21 -1
  77. package/esm2022/dock/style/dockstyle.mjs +41 -1
  78. package/esm2022/drawer/drawer.mjs +3 -3
  79. package/esm2022/drawer/style/drawerstyle.mjs +37 -1
  80. package/esm2022/dropdown/dropdown.mjs +9 -9
  81. package/esm2022/dropdown/style/dropdownstyle.mjs +4 -1
  82. package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +49 -1
  83. package/esm2022/editor/style/editorstyle.mjs +25 -1
  84. package/esm2022/fieldset/style/fieldsetstyle.mjs +37 -1
  85. package/esm2022/fileupload/fileupload.interface.mjs +1 -1
  86. package/esm2022/fileupload/fileupload.mjs +46 -13
  87. package/esm2022/fileupload/style/fileuploadstyle.mjs +73 -1
  88. package/esm2022/floatlabel/style/floatlabelstyle.mjs +17 -1
  89. package/esm2022/fluid/style/fluidstyle.mjs +17 -1
  90. package/esm2022/galleria/style/galleriastyle.mjs +125 -1
  91. package/esm2022/iconfield/style/iconfieldstyle.mjs +23 -4
  92. package/esm2022/image/style/imagestyle.mjs +57 -1
  93. package/esm2022/inplace/style/inplacestyle.mjs +25 -1
  94. package/esm2022/inputgroup/style/inputgroupstyle.mjs +24 -8
  95. package/esm2022/inputmask/inputmask.mjs +1 -1
  96. package/esm2022/inputmask/style/inputmaskstyle.mjs +17 -1
  97. package/esm2022/inputnumber/inputnumber.mjs +3 -3
  98. package/esm2022/inputnumber/style/inputnumberstyle.mjs +33 -1
  99. package/esm2022/inputotp/inputotp.mjs +3 -3
  100. package/esm2022/inputotp/style/inputotpstyle.mjs +21 -1
  101. package/esm2022/inputtext/style/inputtextstyle.mjs +17 -1
  102. package/esm2022/inputtextarea/style/textareastyle.mjs +17 -1
  103. package/esm2022/knob/style/knobstyle.mjs +29 -1
  104. package/esm2022/listbox/listbox.mjs +9 -9
  105. package/esm2022/listbox/style/listboxstyle.mjs +53 -1
  106. package/esm2022/megamenu/megamenu.mjs +15 -15
  107. package/esm2022/megamenu/style/megamenustyle.mjs +81 -1
  108. package/esm2022/menu/style/menustyle.mjs +57 -1
  109. package/esm2022/menubar/style/menubarstyle.mjs +65 -1
  110. package/esm2022/message/style/messagestyle.mjs +38 -2
  111. package/esm2022/metergroup/metergroup.mjs +10 -10
  112. package/esm2022/metergroup/style/metergroupstyle.mjs +45 -1
  113. package/esm2022/multiselect/multiselect.mjs +53 -53
  114. package/esm2022/multiselect/style/multiselectstyle.mjs +85 -1
  115. package/esm2022/orderlist/orderlist.mjs +3 -3
  116. package/esm2022/orderlist/style/orderliststyle.mjs +21 -1
  117. package/esm2022/organizationchart/organizationchart.mjs +3 -3
  118. package/esm2022/organizationchart/style/organizationchartstyle.mjs +53 -1
  119. package/esm2022/overlay/overlay.mjs +1 -1
  120. package/esm2022/overlaypanel/style/popoverstyle.mjs +21 -1
  121. package/esm2022/paginator/paginator.mjs +6 -6
  122. package/esm2022/paginator/style/paginatorstyle.mjs +81 -1
  123. package/esm2022/panel/style/panelstyle.mjs +45 -1
  124. package/esm2022/panelmenu/panelmenu.mjs +22 -22
  125. package/esm2022/panelmenu/style/panelmenustyle.mjs +83 -2
  126. package/esm2022/password/style/passwordstyle.mjs +45 -1
  127. package/esm2022/picklist/picklist.mjs +3 -3
  128. package/esm2022/picklist/style/pickliststyle.mjs +37 -1
  129. package/esm2022/progressbar/progressbar.mjs +3 -3
  130. package/esm2022/progressbar/style/progressbarstyle.mjs +25 -1
  131. package/esm2022/progressspinner/progressspinner.mjs +3 -3
  132. package/esm2022/progressspinner/style/progressspinnerstyle.mjs +25 -1
  133. package/esm2022/radiobutton/radiobutton.mjs +4 -4
  134. package/esm2022/radiobutton/style/radiobuttonstyle.mjs +29 -1
  135. package/esm2022/rating/rating.mjs +1 -1
  136. package/esm2022/rating/style/ratingstyle.mjs +29 -1
  137. package/esm2022/ripple/ripple.mjs +17 -12
  138. package/esm2022/ripple/style/ripplestyle.mjs +17 -1
  139. package/esm2022/scroller/scroller.mjs +5 -5
  140. package/esm2022/scroller/style/scrollerstyle.mjs +104 -0
  141. package/esm2022/scrollpanel/scrollpanel.mjs +3 -3
  142. package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +33 -1
  143. package/esm2022/scrolltop/scrolltop.mjs +3 -3
  144. package/esm2022/scrolltop/style/scrolltopstyle.mjs +21 -1
  145. package/esm2022/select/public_api.mjs +2 -1
  146. package/esm2022/select/select.mjs +10 -10
  147. package/esm2022/select/style/selectstyle.mjs +85 -1
  148. package/esm2022/selectbutton/selectbutton.mjs +8 -8
  149. package/esm2022/selectbutton/style/selectbuttonstyle.mjs +17 -1
  150. package/esm2022/skeleton/style/skeletonstyle.mjs +17 -1
  151. package/esm2022/slider/style/sliderstyle.mjs +25 -1
  152. package/esm2022/speeddial/speeddial.mjs +3 -3
  153. package/esm2022/speeddial/style/speeddialstyle.mjs +41 -1
  154. package/esm2022/splitbutton/splitbutton.mjs +8 -8
  155. package/esm2022/splitbutton/style/splitbuttonstyle.mjs +25 -1
  156. package/esm2022/splitter/style/splitterstyle.mjs +25 -1
  157. package/esm2022/stepper/stepper.mjs +26 -26
  158. package/esm2022/stepper/style/stepperstyle.mjs +21 -1
  159. package/esm2022/steps/style/stepsstyle.mjs +37 -1
  160. package/esm2022/table/style/tablestyle.mjs +899 -0
  161. package/esm2022/table/table.mjs +24 -24
  162. package/esm2022/tabmenu/style/tabmenustyle.mjs +42 -2
  163. package/esm2022/tabmenu/tabmenu.mjs +3 -3
  164. package/esm2022/tabs/style/tabsstyle.mjs +49 -1
  165. package/esm2022/tabview/style/tabsstyle.mjs +49 -1
  166. package/esm2022/tag/style/tagstyle.mjs +25 -1
  167. package/esm2022/terminal/style/terminalstyle.mjs +49 -1
  168. package/esm2022/textarea/style/textareastyle.mjs +17 -1
  169. package/esm2022/textarea/textarea.mjs +1 -2
  170. package/esm2022/tieredmenu/style/tieredmenustyle.mjs +61 -1
  171. package/esm2022/tieredmenu/tieredmenu.mjs +15 -15
  172. package/esm2022/timeline/style/timelinestyle.mjs +41 -1
  173. package/esm2022/toast/style/toaststyle.mjs +49 -1
  174. package/esm2022/togglebutton/style/togglebuttonstyle.mjs +25 -1
  175. package/esm2022/togglebutton/togglebutton.mjs +3 -3
  176. package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +25 -1
  177. package/esm2022/toggleswitch/toggleswitch.mjs +1 -1
  178. package/esm2022/toolbar/style/toolbarstyle.mjs +29 -1
  179. package/esm2022/tooltip/style/tooltipstyle.mjs +25 -1
  180. package/esm2022/tree/style/treestyle.mjs +69 -1
  181. package/esm2022/tree/tree.mjs +9 -9
  182. package/esm2022/treeselect/style/treeselectstyle.mjs +53 -1
  183. package/esm2022/treeselect/treeselect.mjs +3 -3
  184. package/esm2022/treetable/style/treetablestyle.mjs +97 -1
  185. package/esm2022/treetable/treetable.mjs +3 -3
  186. package/fesm2022/primeng-accordion.mjs +38 -2
  187. package/fesm2022/primeng-accordion.mjs.map +1 -1
  188. package/fesm2022/primeng-api.mjs +2 -0
  189. package/fesm2022/primeng-api.mjs.map +1 -1
  190. package/fesm2022/primeng-autocomplete.mjs +71 -3
  191. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  192. package/fesm2022/primeng-avatar.mjs +24 -0
  193. package/fesm2022/primeng-avatar.mjs.map +1 -1
  194. package/fesm2022/primeng-avatargroup.mjs +13 -0
  195. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  196. package/fesm2022/primeng-badge.mjs +16 -0
  197. package/fesm2022/primeng-badge.mjs.map +1 -1
  198. package/fesm2022/primeng-basecomponent.mjs +2 -3
  199. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  200. package/fesm2022/primeng-blockui.mjs +18 -2
  201. package/fesm2022/primeng-blockui.mjs.map +1 -1
  202. package/fesm2022/primeng-breadcrumb.mjs +44 -0
  203. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  204. package/fesm2022/primeng-button.mjs +28 -0
  205. package/fesm2022/primeng-button.mjs.map +1 -1
  206. package/fesm2022/primeng-buttongroup.mjs +16 -0
  207. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  208. package/fesm2022/primeng-card.mjs +44 -0
  209. package/fesm2022/primeng-card.mjs.map +1 -1
  210. package/fesm2022/primeng-carousel.mjs +68 -0
  211. package/fesm2022/primeng-carousel.mjs.map +1 -1
  212. package/fesm2022/primeng-cascadeselect.mjs +78 -18
  213. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  214. package/fesm2022/primeng-checkbox.mjs +28 -0
  215. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  216. package/fesm2022/primeng-chip.mjs +32 -0
  217. package/fesm2022/primeng-chip.mjs.map +1 -1
  218. package/fesm2022/primeng-colorpicker.mjs +46 -2
  219. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  220. package/fesm2022/primeng-confirmdialog.mjs +34 -2
  221. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  222. package/fesm2022/primeng-confirmpopup.mjs +49 -9
  223. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  224. package/fesm2022/primeng-contextmenu.mjs +67 -14
  225. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  226. package/fesm2022/primeng-dataview.mjs +38 -2
  227. package/fesm2022/primeng-dataview.mjs.map +1 -1
  228. package/fesm2022/primeng-datepicker.mjs +166 -2
  229. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  230. package/fesm2022/primeng-dialog.mjs +49 -1
  231. package/fesm2022/primeng-dialog.mjs.map +1 -1
  232. package/fesm2022/primeng-divider.mjs +21 -1
  233. package/fesm2022/primeng-divider.mjs.map +1 -1
  234. package/fesm2022/primeng-dock.mjs +40 -0
  235. package/fesm2022/primeng-dock.mjs.map +1 -1
  236. package/fesm2022/primeng-drawer.mjs +38 -2
  237. package/fesm2022/primeng-drawer.mjs.map +1 -1
  238. package/fesm2022/primeng-dropdown.mjs +11 -8
  239. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  240. package/fesm2022/primeng-dynamicdialog.mjs +48 -0
  241. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  242. package/fesm2022/primeng-editor.mjs +24 -0
  243. package/fesm2022/primeng-editor.mjs.map +1 -1
  244. package/fesm2022/primeng-fieldset.mjs +36 -0
  245. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  246. package/fesm2022/primeng-fileupload.mjs +117 -12
  247. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  248. package/fesm2022/primeng-floatlabel.mjs +16 -0
  249. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  250. package/fesm2022/primeng-fluid.mjs +16 -0
  251. package/fesm2022/primeng-fluid.mjs.map +1 -1
  252. package/fesm2022/primeng-galleria.mjs +124 -0
  253. package/fesm2022/primeng-galleria.mjs.map +1 -1
  254. package/fesm2022/primeng-iconfield.mjs +22 -3
  255. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  256. package/fesm2022/primeng-image.mjs +56 -0
  257. package/fesm2022/primeng-image.mjs.map +1 -1
  258. package/fesm2022/primeng-inplace.mjs +24 -0
  259. package/fesm2022/primeng-inplace.mjs.map +1 -1
  260. package/fesm2022/primeng-inputgroup.mjs +23 -7
  261. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  262. package/fesm2022/primeng-inputmask.mjs +16 -0
  263. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  264. package/fesm2022/primeng-inputnumber.mjs +34 -2
  265. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  266. package/fesm2022/primeng-inputotp.mjs +22 -2
  267. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  268. package/fesm2022/primeng-inputtext.mjs +16 -0
  269. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  270. package/fesm2022/primeng-inputtextarea.mjs +16 -0
  271. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  272. package/fesm2022/primeng-knob.mjs +28 -0
  273. package/fesm2022/primeng-knob.mjs.map +1 -1
  274. package/fesm2022/primeng-listbox.mjs +60 -8
  275. package/fesm2022/primeng-listbox.mjs.map +1 -1
  276. package/fesm2022/primeng-megamenu.mjs +94 -14
  277. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  278. package/fesm2022/primeng-menu.mjs +56 -0
  279. package/fesm2022/primeng-menu.mjs.map +1 -1
  280. package/fesm2022/primeng-menubar.mjs +64 -0
  281. package/fesm2022/primeng-menubar.mjs.map +1 -1
  282. package/fesm2022/primeng-message.mjs +38 -2
  283. package/fesm2022/primeng-message.mjs.map +1 -1
  284. package/fesm2022/primeng-metergroup.mjs +53 -9
  285. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  286. package/fesm2022/primeng-multiselect.mjs +136 -52
  287. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  288. package/fesm2022/primeng-orderlist.mjs +22 -2
  289. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  290. package/fesm2022/primeng-organizationchart.mjs +54 -2
  291. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  292. package/fesm2022/primeng-overlay.mjs.map +1 -1
  293. package/fesm2022/primeng-overlaypanel.mjs +20 -0
  294. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  295. package/fesm2022/primeng-paginator.mjs +85 -5
  296. package/fesm2022/primeng-paginator.mjs.map +1 -1
  297. package/fesm2022/primeng-panel.mjs +45 -1
  298. package/fesm2022/primeng-panel.mjs.map +1 -1
  299. package/fesm2022/primeng-panelmenu.mjs +103 -22
  300. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  301. package/fesm2022/primeng-password.mjs +44 -0
  302. package/fesm2022/primeng-password.mjs.map +1 -1
  303. package/fesm2022/primeng-picklist.mjs +38 -2
  304. package/fesm2022/primeng-picklist.mjs.map +1 -1
  305. package/fesm2022/primeng-progressbar.mjs +26 -2
  306. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  307. package/fesm2022/primeng-progressspinner.mjs +26 -2
  308. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  309. package/fesm2022/primeng-radiobutton.mjs +31 -3
  310. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  311. package/fesm2022/primeng-rating.mjs +28 -0
  312. package/fesm2022/primeng-rating.mjs.map +1 -1
  313. package/fesm2022/primeng-ripple.mjs +32 -11
  314. package/fesm2022/primeng-ripple.mjs.map +1 -1
  315. package/fesm2022/primeng-scroller.mjs +39 -7
  316. package/fesm2022/primeng-scroller.mjs.map +1 -1
  317. package/fesm2022/primeng-scrollpanel.mjs +34 -2
  318. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  319. package/fesm2022/primeng-scrolltop.mjs +22 -2
  320. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  321. package/fesm2022/primeng-select.mjs +94 -10
  322. package/fesm2022/primeng-select.mjs.map +1 -1
  323. package/fesm2022/primeng-selectbutton.mjs +23 -7
  324. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  325. package/fesm2022/primeng-skeleton.mjs +16 -0
  326. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  327. package/fesm2022/primeng-slider.mjs +24 -0
  328. package/fesm2022/primeng-slider.mjs.map +1 -1
  329. package/fesm2022/primeng-speeddial.mjs +42 -2
  330. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  331. package/fesm2022/primeng-splitbutton.mjs +31 -7
  332. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  333. package/fesm2022/primeng-splitter.mjs +24 -0
  334. package/fesm2022/primeng-splitter.mjs.map +1 -1
  335. package/fesm2022/primeng-stepper.mjs +45 -25
  336. package/fesm2022/primeng-stepper.mjs.map +1 -1
  337. package/fesm2022/primeng-steps.mjs +36 -0
  338. package/fesm2022/primeng-steps.mjs.map +1 -1
  339. package/fesm2022/primeng-table.mjs +230 -56
  340. package/fesm2022/primeng-table.mjs.map +1 -1
  341. package/fesm2022/primeng-tabmenu.mjs +43 -3
  342. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  343. package/fesm2022/primeng-tabs.mjs +48 -0
  344. package/fesm2022/primeng-tabs.mjs.map +1 -1
  345. package/fesm2022/primeng-tabview.mjs +48 -0
  346. package/fesm2022/primeng-tabview.mjs.map +1 -1
  347. package/fesm2022/primeng-tag.mjs +24 -0
  348. package/fesm2022/primeng-tag.mjs.map +1 -1
  349. package/fesm2022/primeng-terminal.mjs +48 -0
  350. package/fesm2022/primeng-terminal.mjs.map +1 -1
  351. package/fesm2022/primeng-textarea.mjs +16 -1
  352. package/fesm2022/primeng-textarea.mjs.map +1 -1
  353. package/fesm2022/primeng-tieredmenu.mjs +74 -14
  354. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  355. package/fesm2022/primeng-timeline.mjs +40 -0
  356. package/fesm2022/primeng-timeline.mjs.map +1 -1
  357. package/fesm2022/primeng-toast.mjs +48 -0
  358. package/fesm2022/primeng-toast.mjs.map +1 -1
  359. package/fesm2022/primeng-togglebutton.mjs +26 -2
  360. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  361. package/fesm2022/primeng-toggleswitch.mjs +24 -0
  362. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  363. package/fesm2022/primeng-toolbar.mjs +28 -0
  364. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  365. package/fesm2022/primeng-tooltip.mjs +24 -0
  366. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  367. package/fesm2022/primeng-tree.mjs +76 -8
  368. package/fesm2022/primeng-tree.mjs.map +1 -1
  369. package/fesm2022/primeng-treeselect.mjs +54 -2
  370. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  371. package/fesm2022/primeng-treetable.mjs +98 -2
  372. package/fesm2022/primeng-treetable.mjs.map +1 -1
  373. package/fieldset/style/fieldsetstyle.d.ts +37 -0
  374. package/fileupload/fileupload.d.ts +4 -1
  375. package/fileupload/fileupload.interface.d.ts +9 -0
  376. package/fileupload/style/fileuploadstyle.d.ts +73 -0
  377. package/floatlabel/style/floatlabelstyle.d.ts +17 -0
  378. package/fluid/style/fluidstyle.d.ts +17 -0
  379. package/galleria/style/galleriastyle.d.ts +125 -0
  380. package/iconfield/style/iconfieldstyle.d.ts +17 -0
  381. package/image/style/imagestyle.d.ts +57 -0
  382. package/inplace/style/inplacestyle.d.ts +25 -0
  383. package/inputgroup/style/inputgroupstyle.d.ts +17 -0
  384. package/inputmask/style/inputmaskstyle.d.ts +17 -0
  385. package/inputnumber/inputnumber.d.ts +1 -1
  386. package/inputnumber/style/inputnumberstyle.d.ts +33 -0
  387. package/inputotp/inputotp.d.ts +1 -1
  388. package/inputotp/style/inputotpstyle.d.ts +21 -0
  389. package/inputtext/style/inputtextstyle.d.ts +17 -0
  390. package/inputtextarea/style/textareastyle.d.ts +17 -0
  391. package/knob/style/knobstyle.d.ts +29 -0
  392. package/listbox/style/listboxstyle.d.ts +53 -0
  393. package/megamenu/megamenu.d.ts +2 -2
  394. package/megamenu/style/megamenustyle.d.ts +81 -0
  395. package/menu/style/menustyle.d.ts +57 -0
  396. package/menubar/style/menubarstyle.d.ts +65 -0
  397. package/message/style/messagestyle.d.ts +37 -0
  398. package/metergroup/metergroup.d.ts +2 -2
  399. package/metergroup/style/metergroupstyle.d.ts +45 -0
  400. package/multiselect/multiselect.d.ts +4 -5
  401. package/multiselect/style/multiselectstyle.d.ts +85 -0
  402. package/orderlist/orderlist.d.ts +1 -1
  403. package/orderlist/style/orderliststyle.d.ts +21 -0
  404. package/organizationchart/organizationchart.d.ts +1 -1
  405. package/organizationchart/style/organizationchartstyle.d.ts +53 -0
  406. package/overlaypanel/style/popoverstyle.d.ts +21 -0
  407. package/package.json +226 -226
  408. package/paginator/style/paginatorstyle.d.ts +81 -0
  409. package/panel/style/panelstyle.d.ts +43 -0
  410. package/panelmenu/panelmenu.d.ts +3 -3
  411. package/panelmenu/style/panelmenustyle.d.ts +82 -0
  412. package/password/style/passwordstyle.d.ts +45 -0
  413. package/picklist/picklist.d.ts +1 -1
  414. package/picklist/style/pickliststyle.d.ts +37 -0
  415. package/progressbar/progressbar.d.ts +1 -1
  416. package/progressbar/style/progressbarstyle.d.ts +25 -0
  417. package/progressspinner/progressspinner.d.ts +1 -1
  418. package/progressspinner/style/progressspinnerstyle.d.ts +25 -0
  419. package/radiobutton/radiobutton.d.ts +1 -1
  420. package/radiobutton/style/radiobuttonstyle.d.ts +29 -0
  421. package/rating/style/ratingstyle.d.ts +29 -0
  422. package/ripple/ripple.d.ts +1 -0
  423. package/ripple/style/ripplestyle.d.ts +17 -0
  424. package/scroller/scroller.d.ts +2 -2
  425. package/scroller/style/scrollerstyle.d.ts +43 -0
  426. package/scrollpanel/scrollpanel.d.ts +1 -1
  427. package/scrollpanel/style/scrollpanelstyle.d.ts +33 -0
  428. package/scrolltop/scrolltop.d.ts +1 -1
  429. package/scrolltop/style/scrolltopstyle.d.ts +21 -0
  430. package/select/public_api.d.ts +1 -0
  431. package/select/style/selectstyle.d.ts +85 -0
  432. package/selectbutton/selectbutton.d.ts +1 -1
  433. package/selectbutton/style/selectbuttonstyle.d.ts +17 -0
  434. package/skeleton/style/skeletonstyle.d.ts +17 -0
  435. package/slider/style/sliderstyle.d.ts +25 -0
  436. package/speeddial/speeddial.d.ts +1 -1
  437. package/speeddial/style/speeddialstyle.d.ts +41 -0
  438. package/splitbutton/splitbutton.d.ts +1 -1
  439. package/splitbutton/style/splitbuttonstyle.d.ts +25 -0
  440. package/splitter/style/splitterstyle.d.ts +25 -0
  441. package/stepper/stepper.d.ts +4 -4
  442. package/stepper/style/stepperstyle.d.ts +21 -0
  443. package/steps/style/stepsstyle.d.ts +37 -0
  444. package/table/style/tablestyle.d.ts +327 -0
  445. package/table/table.d.ts +5 -5
  446. package/tabmenu/style/tabmenustyle.d.ts +41 -0
  447. package/tabmenu/tabmenu.d.ts +1 -1
  448. package/tabs/style/tabsstyle.d.ts +49 -0
  449. package/tabview/style/tabsstyle.d.ts +49 -0
  450. package/tag/style/tagstyle.d.ts +25 -0
  451. package/terminal/style/terminalstyle.d.ts +49 -0
  452. package/textarea/style/textareastyle.d.ts +17 -0
  453. package/tieredmenu/style/tieredmenustyle.d.ts +61 -0
  454. package/tieredmenu/tieredmenu.d.ts +2 -2
  455. package/timeline/style/timelinestyle.d.ts +41 -0
  456. package/toast/style/toaststyle.d.ts +49 -0
  457. package/togglebutton/style/togglebuttonstyle.d.ts +25 -0
  458. package/togglebutton/togglebutton.d.ts +1 -1
  459. package/toggleswitch/style/toggleswitchstyle.d.ts +25 -0
  460. package/toolbar/style/toolbarstyle.d.ts +29 -0
  461. package/tooltip/style/tooltipstyle.d.ts +25 -0
  462. package/tree/style/treestyle.d.ts +69 -0
  463. package/treeselect/style/treeselectstyle.d.ts +53 -0
  464. package/treeselect/treeselect.d.ts +1 -1
  465. package/treetable/style/treetablestyle.d.ts +97 -0
  466. package/treetable/treetable.d.ts +1 -1
  467. package/esm2022/scroller/style/virtualscrollerstyle.mjs +0 -72
  468. package/esm2022/table/style/datatablestyle.mjs +0 -725
  469. package/scroller/style/virtualscrollerstyle.d.ts +0 -10
  470. package/table/style/datatablestyle.d.ts +0 -124
@@ -258,4 +258,88 @@ export class MultiSelectStyle extends BaseStyle {
258
258
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: MultiSelectStyle, decorators: [{
259
259
  type: Injectable
260
260
  }] });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3RzdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9tdWx0aXNlbGVjdC9zdHlsZS9tdWx0aXNlbGVjdHN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7Ozs7O2tCQU1SLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzt3QkFDdEIsRUFBRSxDQUFDLDBCQUEwQixDQUFDOzZCQUN6QixFQUFFLENBQUMsaUNBQWlDLENBQUMsV0FBVyxFQUFFLENBQUMsaUNBQWlDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLGdCQUFnQixFQUFFLENBQzNPLGlDQUFpQyxDQUNwQztxQkFDZ0IsRUFBRSxDQUFDLDJCQUEyQixDQUFDOztrQkFFbEMsRUFBRSxDQUFDLG9CQUFvQixDQUFDOzs7O29CQUl0QixFQUFFLENBQUMsZ0NBQWdDLENBQUM7Ozs7b0JBSXBDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztrQkFDdEMsRUFBRSxDQUFDLCtCQUErQixDQUFDO2VBQ3RDLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztzQkFDdkcsRUFBRSxDQUFDLCtCQUErQixDQUFDOzs7O2tCQUl2QyxFQUFFLENBQUMsK0JBQStCLENBQUM7Ozs7a0JBSW5DLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQzs7Ozs7a0JBS3pDLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O2FBUzFDLEVBQUUsQ0FBQyw0QkFBNEIs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b0JBQW9CO0lBQzFCLFdBQVcsRUFBRSw0QkFBNEI7SUFDekMsTUFBTSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RCxzQkFBc0IsRUFBRSxJQUFJO1FBQzVCLCtCQUErQixFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLGlCQUFpQjtRQUMxRixTQUFTLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixLQUFLLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQztRQUN6RixZQUFZLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztLQUNsRCxDQUFDO0lBQ0YsWUFBWSxFQUFFLDZCQUE2QjtDQUM5QyxDQUFDO0FBR0YsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFDM0MsSUFBSSxHQUFHLGFBQWEsQ0FBQztJQUVyQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRWQsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUVsQixZQUFZLEdBQUcsWUFBWSxDQUFDO3VHQVBuQixnQkFBZ0I7MkdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VTdHlsZSB9IGZyb20gJ3ByaW1lbmcvYmFzZSc7XG5cbmNvbnN0IHRoZW1lID0gKHsgZHQgfSkgPT4gYFxuLnAtbXVsdGlzZWxlY3Qge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnbXVsdGlzZWxlY3QuYmFja2dyb3VuZCcpfTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAke2R0KCdtdWx0aXNlbGVjdC5ib3JkZXIuY29sb3InKX07XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAke2R0KCdtdWx0aXNlbGVjdC50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBjb2xvciAke2R0KCdtdWx0aXNlbGVjdC50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBib3JkZXItY29sb3IgJHtkdCgnbXVsdGlzZWxlY3QudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgb3V0bGluZS1jb2xvciAke2R0KCdtdWx0aXNlbGVjdC50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBib3gtc2hhZG93ICR7ZHQoXG4gICAgICAgICdtdWx0aXNlbGVjdC50cmFuc2l0aW9uLmR1cmF0aW9uJyxcbiAgICApfTtcbiAgICBib3JkZXItcmFkaXVzOiAke2R0KCdtdWx0aXNlbGVjdC5ib3JkZXIucmFkaXVzJyl9O1xuICAgIG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6ICR7ZHQoJ211bHRpc2VsZWN0LnNoYWRvdycpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3Q6bm90KC5wLWRpc2FibGVkKTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5ob3Zlci5ib3JkZXIuY29sb3InKX07XG59XG5cbi5wLW11bHRpc2VsZWN0Om5vdCgucC1kaXNhYmxlZCkucC1mb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5mb2N1cy5ib3JkZXIuY29sb3InKX07XG4gICAgYm94LXNoYWRvdzogJHtkdCgnbXVsdGlzZWxlY3QuZm9jdXMucmluZy5zaGFkb3cnKX07XG4gICAgb3V0bGluZTogJHtkdCgnbXVsdGlzZWxlY3QuZm9jdXMucmluZy53aWR0aCcpfSAke2R0KCdtdWx0aXNlbGVjdC5mb2N1cy5yaW5nLnN0eWxlJyl9ICR7ZHQoJ211bHRpc2VsZWN0LmZvY3VzLnJpbmcuY29sb3InKX07XG4gICAgb3V0bGluZS1vZmZzZXQ6ICR7ZHQoJ211bHRpc2VsZWN0LmZvY3VzLnJpbmcub2Zmc2V0Jyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC5wLXZhcmlhbnQtZmlsbGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdtdWx0aXNlbGVjdC5maWxsZWQuYmFja2dyb3VuZCcpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QucC12YXJpYW50LWZpbGxlZC5wLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdtdWx0aXNlbGVjdC5maWxsZWQuZm9jdXMuYmFja2dyb3VuZCcpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QucC1kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdtdWx0aXNlbGVjdC5kaXNhYmxlZC5iYWNrZ3JvdW5kJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC1kcm9wZG93biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5kcm9wZG93bi5jb2xvcicpfTtcbiAgICB3aWR0aDogJHtkdCgnbXVsdGlzZWxlY3QuZHJvcGRvd24ud2lkdGgnKX07XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICR7ZHQoJ211bHRpc2VsZWN0LmJvcmRlci5yYWRpdXMnKX07XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICR7ZHQoJ211bHRpc2VsZWN0LmJvcmRlci5yYWRpdXMnKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LWxhYmVsLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wLW11bHRpc2VsZWN0LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zLWNlbnRlcjtcbiAgICBnYXA6IGNhbGMoJHtkdCgnbXVsdGlzZWxlY3QucGFkZGluZy55Jyl9IC8gMik7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBwYWRkaW5nOiAke2R0KCdtdWx0aXNlbGVjdC5wYWRkaW5nLnknKX0gJHtkdCgnbXVsdGlzZWxlY3QucGFkZGluZy54Jyl9O1xuICAgIGNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5jb2xvcicpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtbGFiZWwucC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0LnBsYWNlaG9sZGVyLmNvbG9yJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC5wLWRpc2FibGVkIC5wLW11bHRpc2VsZWN0LWxhYmVsIHtcbiAgICBjb2xvcjogJHtkdCgnbXVsdGlzZWxlY3QuZGlzYWJsZWQuY29sb3InKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LWxhYmVsLWVtcHR5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnAtbXVsdGlzZWxlY3QgLnAtbXVsdGlzZWxlY3Qtb3ZlcmxheSB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4ucC1tdWx0aXNlbGVjdC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnbXVsdGlzZWxlY3Qub3ZlcmxheS5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5vdmVybGF5LmNvbG9yJyl9O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7ZHQoJ211bHRpc2VsZWN0Lm92ZXJsYXkuYm9yZGVyLmNvbG9yJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ211bHRpc2VsZWN0Lm92ZXJsYXkuYm9yZGVyLnJhZGl1cycpfTtcbiAgICBib3gtc2hhZG93OiAke2R0KCdtdWx0aXNlbGVjdC5vdmVybGF5LnNoYWRvdycpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogJHtkdCgnbXVsdGlzZWxlY3QubGlzdC5oZWFkZXIucGFkZGluZycpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtaGVhZGVyIC5wLWNoZWNrYm94IHtcbiAgICBtYXJnaW4tcmlnaHQ6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5nYXAnKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LWZpbHRlci1jb250YWluZXIge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4ucC1tdWx0aXNlbGVjdC1maWx0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ucC1tdWx0aXNlbGVjdC1saXN0LWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5wLW11bHRpc2VsZWN0LWxpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nOiAke2R0KCdtdWx0aXNlbGVjdC5saXN0LnBhZGRpbmcnKX07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogJHtkdCgnbXVsdGlzZWxlY3QubGlzdC5nYXAnKX1cbn1cblxuLnAtbXVsdGlzZWxlY3Qtb3B0aW9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5nYXAnKX07XG4gICAgcGFkZGluZzogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLnBhZGRpbmcnKX07XG4gICAgYm9yZGVyOiAwIG5vbmU7XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5jb2xvcicpfTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICR7ZHQoJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGNvbG9yICR7ZHQoJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGJvcmRlci1jb2xvciAke2R0KCdtdWx0aXNlbGVjdC50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBib3gtc2hhZG93ICR7ZHQoJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIG91dGxpbmUtY29sb3IgJHtkdChcbiAgICAgICAgJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nLFxuICAgICl9O1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5ib3JkZXIucmFkaXVzJyl9XG59XG5cbi5wLW11bHRpc2VsZWN0LW9wdGlvbjpub3QoLnAtbXVsdGlzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkKTpub3QoLnAtZGlzYWJsZWQpLnAtZm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5mb2N1cy5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5vcHRpb24uZm9jdXMuY29sb3InKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LW9wdGlvbi5wLW11bHRpc2VsZWN0LW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLnNlbGVjdGVkLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5zZWxlY3RlZC5jb2xvcicpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3Qtb3B0aW9uLnAtbXVsdGlzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkLnAtZm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5zZWxlY3RlZC5mb2N1cy5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5vcHRpb24uc2VsZWN0ZWQuZm9jdXMuY29sb3InKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LW9wdGlvbi1ncm91cCB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAke2R0KCdtdWx0aXNlbGVjdC5vcHRpb24uZ3JvdXAucGFkZGluZycpfTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdtdWx0aXNlbGVjdC5vcHRpb24uZ3JvdXAuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLmdyb3VwLmNvbG9yJyl9O1xuICAgIGZvbnQtd2VpZ2h0OiAke2R0KCdtdWx0aXNlbGVjdC5vcHRpb24uZ3JvdXAuZm9udC53ZWlnaHQnKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LWVtcHR5LW1lc3NhZ2Uge1xuICAgIHBhZGRpbmc6ICR7ZHQoJ211bHRpc2VsZWN0LmVtcHR5Lm1lc3NhZ2UucGFkZGluZycpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtbGFiZWwgLnAtY2hpcCB7XG4gICAgcGFkZGluZy10b3A6IGNhbGMoJHtkdCgnbXVsdGlzZWxlY3QucGFkZGluZy55Jyl9IC8gMik7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoJHtkdCgnbXVsdGlzZWxlY3QucGFkZGluZy55Jyl9IC8gMik7XG4gICAgYm9yZGVyLXJhZGl1czogJHtkdCgnbXVsdGlzZWxlY3QuY2hpcC5ib3JkZXIucmFkaXVzJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC1sYWJlbDpoYXMoLnAtY2hpcCkge1xuICAgIHBhZGRpbmc6IGNhbGMoJHtkdCgnbXVsdGlzZWxlY3QucGFkZGluZy55Jyl9IC8gMikgY2FsYygke2R0KCdtdWx0aXNlbGVjdC5wYWRkaW5nLngnKX0gLyAyKTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtZmx1aWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8qIEZvciBQcmltZU5HICovXG5cbnAtbXVsdGlzZWxlY3QubmctaW52YWxpZC5uZy1kaXJ0eSA+IC5wLW11bHRpc2VsZWN0LnAtY29tcG9uZW50LnAtaW5wdXR3cmFwcGVyIHtcbiAgICBib3JkZXItY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0LmludmFsaWQuYm9yZGVyLmNvbG9yJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC1jbGVhci1pY29uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5kcm9wZG93bi5jb2xvcicpfTtcbn1cbmA7XG5cbmNvbnN0IGlubGluZVN0eWxlcyA9IHtcbiAgICByb290OiAoeyBwcm9wcyB9KSA9PiAoeyBwb3NpdGlvbjogcHJvcHMuYXBwZW5kVG8gPT09ICdzZWxmJyA/ICdyZWxhdGl2ZScgOiB1bmRlZmluZWQgfSksXG59O1xuXG5jb25zdCBjbGFzc2VzID0ge1xuICAgIHJvb3Q6ICh7IGluc3RhbmNlIH0pID0+ICh7XG4gICAgICAgICdwLW11bHRpc2VsZWN0IHAtY29tcG9uZW50IHAtaW5wdXR3cmFwcGVyJzogdHJ1ZSxcbiAgICAgICAgJ3AtbXVsdGlzZWxlY3QtZGlzcGxheS1jaGlwJzogaW5zdGFuY2UuZGlzcGxheSA9PT0gJ2NoaXAnLFxuICAgICAgICAncC1kaXNhYmxlZCc6IGluc3RhbmNlLmRpc2FibGVkLFxuICAgICAgICAncC1pbnZhbGlkJzogaW5zdGFuY2UuaW52YWxpZCxcbiAgICAgICAgJ3AtdmFyaWFudC1maWxsZWQnOiBpbnN0YW5jZS52YXJpYW50ID8gaW5zdGFuY2UudmFyaWFudCA9PT0gJ2ZpbGxlZCcgOiBpbnN0YW5jZS5jb25maWcuaW5wdXRTdHlsZSA9PT0gJ2ZpbGxlZCcsXG4gICAgICAgICdwLWZvY3VzJzogaW5zdGFuY2UuZm9jdXNlZCxcbiAgICAgICAgJ3AtaW5wdXR3cmFwcGVyLWZpbGxlZCc6IGluc3RhbmNlLmZpbGxlZCxcbiAgICAgICAgJ3AtaW5wdXR3cmFwcGVyLWZvY3VzJzogaW5zdGFuY2UuZm9jdXNlZCB8fCBpbnN0YW5jZS5vdmVybGF5VmlzaWJsZSxcbiAgICAgICAgJ3AtbXVsdGlzZWxlY3Qtb3Blbic6IGluc3RhbmNlLm92ZXJsYXlWaXNpYmxlLFxuICAgICAgICAncC1tdWx0aXNlbGVjdC1mbHVpZCc6IGluc3RhbmNlLmhhc0ZsdWlkLFxuICAgIH0pLFxuICAgIGxhYmVsQ29udGFpbmVyOiAncC1tdWx0aXNlbGVjdC1sYWJlbC1jb250YWluZXInLFxuICAgIGxhYmVsOiAoeyBpbnN0YW5jZSB9KSA9PiAoe1xuICAgICAgICAncC1tdWx0aXNlbGVjdC1sYWJlbCc6IHRydWUsXG4gICAgICAgICdwLXBsYWNlaG9sZGVyJzogaW5zdGFuY2UubGFiZWwgPT09IGluc3RhbmNlLnBsYWNlaG9sZGVyLFxuICAgICAgICAncC1tdWx0aXNlbGVjdC1sYWJlbC1lbXB0eSc6XG4gICAgICAgICAgICAhaW5zdGFuY2UucGxhY2Vob2xkZXIoKSAmJiAhaW5zdGFuY2UuZGVmYXVsdExhYmVsICYmICghaW5zdGFuY2UubW9kZWxWYWx1ZSgpIHx8IGluc3RhbmNlLm1vZGVsVmFsdWUoKS5sZW5ndGggPT09IDApLFxuICAgIH0pLFxuICAgIGNoaXBJdGVtOiAncC1tdWx0aXNlbGVjdC1jaGlwLWl0ZW0nLFxuICAgIHBjQ2hpcDogJ3AtbXVsdGlzZWxlY3QtY2hpcCcsXG4gICAgY2hpcEljb246ICdwLW11bHRpc2VsZWN0LWNoaXAtaWNvbicsXG4gICAgZHJvcGRvd246ICdwLW11bHRpc2VsZWN0LWRyb3Bkb3duJyxcbiAgICBsb2FkaW5nSWNvbjogJ3AtbXVsdGlzZWxlY3QtbG9hZGluZy1pY29uJyxcbiAgICBkcm9wZG93bkljb246ICdwLW11bHRpc2VsZWN0LWRyb3Bkb3duLWljb24nLFxuICAgIG92ZXJsYXk6ICdwLW11bHRpc2VsZWN0LW92ZXJsYXkgcC1jb21wb25lbnQnLFxuICAgIGhlYWRlcjogJ3AtbXVsdGlzZWxlY3QtaGVhZGVyJyxcbiAgICBwY0ZpbHRlckNvbnRhaW5lcjogJ3AtbXVsdGlzZWxlY3QtZmlsdGVyLWNvbnRhaW5lcicsXG4gICAgcGNGaWx0ZXI6ICdwLW11bHRpc2VsZWN0LWZpbHRlcicsXG4gICAgbGlzdENvbnRhaW5lcjogJ3AtbXVsdGlzZWxlY3QtbGlzdC1jb250YWluZXInLFxuICAgIGxpc3Q6ICdwLW11bHRpc2VsZWN0LWxpc3QnLFxuICAgIG9wdGlvbkdyb3VwOiAncC1tdWx0aXNlbGVjdC1vcHRpb24tZ3JvdXAnLFxuICAgIG9wdGlvbjogKHsgaW5zdGFuY2UsIG9wdGlvbiwgaW5kZXgsIGdldEl0ZW1PcHRpb25zIH0pID0+ICh7XG4gICAgICAgICdwLW11bHRpc2VsZWN0LW9wdGlvbic6IHRydWUsXG4gICAgICAgICdwLW11bHRpc2VsZWN0LW9wdGlvbi1zZWxlY3RlZCc6IGluc3RhbmNlLmlzU2VsZWN0ZWQob3B0aW9uKSAmJiBpbnN0YW5jZS5oaWdobGlnaHRPblNlbGVjdCxcbiAgICAgICAgJ3AtZm9jdXMnOiBpbnN0YW5jZS5mb2N1c2VkT3B0aW9uSW5kZXggPT09IGluc3RhbmNlLmdldE9wdGlvbkluZGV4KGluZGV4LCBnZXRJdGVtT3B0aW9ucyksXG4gICAgICAgICdwLWRpc2FibGVkJzogaW5zdGFuY2UuaXNPcHRpb25EaXNhYmxlZChvcHRpb24pLFxuICAgIH0pLFxuICAgIGVtcHR5TWVzc2FnZTogJ3AtbXVsdGlzZWxlY3QtZW1wdHktbWVzc2FnZScsXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RTdHlsZSBleHRlbmRzIEJhc2VTdHlsZSB7XG4gICAgbmFtZSA9ICdtdWx0aXNlbGVjdCc7XG5cbiAgICB0aGVtZSA9IHRoZW1lO1xuXG4gICAgY2xhc3NlcyA9IGNsYXNzZXM7XG5cbiAgICBpbmxpbmVTdHlsZXMgPSBpbmxpbmVTdHlsZXM7XG59XG4iXX0=
261
+ /**
262
+ *
263
+ * MultiSelect is used to select multiple items from a collection.
264
+ *
265
+ * [Live Demo](https://www.primeng.org/multiselect/)
266
+ *
267
+ * @module multiselectstyle
268
+ *
269
+ */
270
+ export var MultiSelectClasses;
271
+ (function (MultiSelectClasses) {
272
+ /**
273
+ * Class name of the root element
274
+ */
275
+ MultiSelectClasses["root"] = "p-multiselect";
276
+ /**
277
+ * Class name of the label container element
278
+ */
279
+ MultiSelectClasses["labelContainer"] = "p-multiselect-label-container";
280
+ /**
281
+ * Class name of the label element
282
+ */
283
+ MultiSelectClasses["label"] = "p-multiselect-label";
284
+ /**
285
+ * Class name of the chip item element
286
+ */
287
+ MultiSelectClasses["chipItem"] = "p-multiselect-chip-item";
288
+ /**
289
+ * Class name of the chip element
290
+ */
291
+ MultiSelectClasses["pcChip"] = "p-multiselect-chip";
292
+ /**
293
+ * Class name of the chip icon element
294
+ */
295
+ MultiSelectClasses["chipIcon"] = "p-multiselect-chip-icon";
296
+ /**
297
+ * Class name of the dropdown element
298
+ */
299
+ MultiSelectClasses["dropdown"] = "p-multiselect-dropdown";
300
+ /**
301
+ * Class name of the loading icon element
302
+ */
303
+ MultiSelectClasses["loadingIcon"] = "p-multiselect-loading-icon";
304
+ /**
305
+ * Class name of the dropdown icon element
306
+ */
307
+ MultiSelectClasses["dropdownIcon"] = "p-multiselect-dropdown-icon";
308
+ /**
309
+ * Class name of the overlay element
310
+ */
311
+ MultiSelectClasses["overlay"] = "p-multiselect-overlay";
312
+ /**
313
+ * Class name of the header element
314
+ */
315
+ MultiSelectClasses["header"] = "p-multiselect-header";
316
+ /**
317
+ * Class name of the filter container element
318
+ */
319
+ MultiSelectClasses["pcFilterContainer"] = "p-multiselect-filter-container";
320
+ /**
321
+ * Class name of the filter element
322
+ */
323
+ MultiSelectClasses["pcFilter"] = "p-multiselect-filter";
324
+ /**
325
+ * Class name of the list container element
326
+ */
327
+ MultiSelectClasses["listContainer"] = "p-multiselect-list-container";
328
+ /**
329
+ * Class name of the list element
330
+ */
331
+ MultiSelectClasses["list"] = "p-multiselect-list";
332
+ /**
333
+ * Class name of the option group element
334
+ */
335
+ MultiSelectClasses["optionGroup"] = "p-multiselect-option-group";
336
+ /**
337
+ * Class name of the option element
338
+ */
339
+ MultiSelectClasses["option"] = "p-multiselect-option";
340
+ /**
341
+ * Class name of the empty message element
342
+ */
343
+ MultiSelectClasses["emptyMessage"] = "p-multiselect-empty-message";
344
+ })(MultiSelectClasses || (MultiSelectClasses = {}));
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3RzdHlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9tdWx0aXNlbGVjdC9zdHlsZS9tdWx0aXNlbGVjdHN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7Ozs7O2tCQU1SLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQzt3QkFDdEIsRUFBRSxDQUFDLDBCQUEwQixDQUFDOzZCQUN6QixFQUFFLENBQUMsaUNBQWlDLENBQUMsV0FBVyxFQUFFLENBQUMsaUNBQWlDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLGdCQUFnQixFQUFFLENBQzNPLGlDQUFpQyxDQUNwQztxQkFDZ0IsRUFBRSxDQUFDLDJCQUEyQixDQUFDOztrQkFFbEMsRUFBRSxDQUFDLG9CQUFvQixDQUFDOzs7O29CQUl0QixFQUFFLENBQUMsZ0NBQWdDLENBQUM7Ozs7b0JBSXBDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztrQkFDdEMsRUFBRSxDQUFDLCtCQUErQixDQUFDO2VBQ3RDLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztzQkFDdkcsRUFBRSxDQUFDLCtCQUErQixDQUFDOzs7O2tCQUl2QyxFQUFFLENBQUMsK0JBQStCLENBQUM7Ozs7a0JBSW5DLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQzs7Ozs7a0JBS3pDLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O2FBUzFDLEVBQUUsQ0FBQyw0QkFBNEIs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T0FFRztJQUNILHVEQUFpQyxDQUFBO0lBQ2pDOztPQUVHO0lBQ0gscURBQStCLENBQUE7SUFDL0I7O09BRUc7SUFDSCwwRUFBb0QsQ0FBQTtJQUNwRDs7T0FFRztJQUNILHVEQUFpQyxDQUFBO0lBQ2pDOztPQUVHO0lBQ0gsb0VBQThDLENBQUE7SUFDOUM7O09BRUc7SUFDSCxpREFBMkIsQ0FBQTtJQUMzQjs7T0FFRztJQUNILGdFQUEwQyxDQUFBO0lBQzFDOztPQUVHO0lBQ0gscURBQStCLENBQUE7SUFDL0I7O09BRUc7SUFDSCxrRUFBNEMsQ0FBQTtBQUNoRCxDQUFDLEVBekVXLGtCQUFrQixLQUFsQixrQkFBa0IsUUF5RTdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVN0eWxlIH0gZnJvbSAncHJpbWVuZy9iYXNlJztcblxuY29uc3QgdGhlbWUgPSAoeyBkdCB9KSA9PiBgXG4ucC1tdWx0aXNlbGVjdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdtdWx0aXNlbGVjdC5iYWNrZ3JvdW5kJyl9O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7ZHQoJ211bHRpc2VsZWN0LmJvcmRlci5jb2xvcicpfTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICR7ZHQoJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGNvbG9yICR7ZHQoJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGJvcmRlci1jb2xvciAke2R0KCdtdWx0aXNlbGVjdC50cmFuc2l0aW9uLmR1cmF0aW9uJyl9LCBvdXRsaW5lLWNvbG9yICR7ZHQoJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGJveC1zaGFkb3cgJHtkdChcbiAgICAgICAgJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nLFxuICAgICl9O1xuICAgIGJvcmRlci1yYWRpdXM6ICR7ZHQoJ211bHRpc2VsZWN0LmJvcmRlci5yYWRpdXMnKX07XG4gICAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogJHtkdCgnbXVsdGlzZWxlY3Quc2hhZG93Jyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdDpub3QoLnAtZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0LmhvdmVyLmJvcmRlci5jb2xvcicpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3Q6bm90KC5wLWRpc2FibGVkKS5wLWZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0LmZvY3VzLmJvcmRlci5jb2xvcicpfTtcbiAgICBib3gtc2hhZG93OiAke2R0KCdtdWx0aXNlbGVjdC5mb2N1cy5yaW5nLnNoYWRvdycpfTtcbiAgICBvdXRsaW5lOiAke2R0KCdtdWx0aXNlbGVjdC5mb2N1cy5yaW5nLndpZHRoJyl9ICR7ZHQoJ211bHRpc2VsZWN0LmZvY3VzLnJpbmcuc3R5bGUnKX0gJHtkdCgnbXVsdGlzZWxlY3QuZm9jdXMucmluZy5jb2xvcicpfTtcbiAgICBvdXRsaW5lLW9mZnNldDogJHtkdCgnbXVsdGlzZWxlY3QuZm9jdXMucmluZy5vZmZzZXQnKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LnAtdmFyaWFudC1maWxsZWQge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ211bHRpc2VsZWN0LmZpbGxlZC5iYWNrZ3JvdW5kJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC5wLXZhcmlhbnQtZmlsbGVkLnAtZm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ211bHRpc2VsZWN0LmZpbGxlZC5mb2N1cy5iYWNrZ3JvdW5kJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC5wLWRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ211bHRpc2VsZWN0LmRpc2FibGVkLmJhY2tncm91bmQnKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LWRyb3Bkb3duIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0LmRyb3Bkb3duLmNvbG9yJyl9O1xuICAgIHdpZHRoOiAke2R0KCdtdWx0aXNlbGVjdC5kcm9wZG93bi53aWR0aCcpfTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHtkdCgnbXVsdGlzZWxlY3QuYm9yZGVyLnJhZGl1cycpfTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHtkdCgnbXVsdGlzZWxlY3QuYm9yZGVyLnJhZGl1cycpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtbGFiZWwtY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnAtbXVsdGlzZWxlY3QtbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXMtY2VudGVyO1xuICAgIGdhcDogY2FsYygke2R0KCdtdWx0aXNlbGVjdC5wYWRkaW5nLnknKX0gLyAyKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHBhZGRpbmc6ICR7ZHQoJ211bHRpc2VsZWN0LnBhZGRpbmcueScpfSAke2R0KCdtdWx0aXNlbGVjdC5wYWRkaW5nLngnKX07XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0LmNvbG9yJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC1sYWJlbC5wLXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtkdCgnbXVsdGlzZWxlY3QucGxhY2Vob2xkZXIuY29sb3InKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LnAtZGlzYWJsZWQgLnAtbXVsdGlzZWxlY3QtbGFiZWwge1xuICAgIGNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5kaXNhYmxlZC5jb2xvcicpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtbGFiZWwtZW1wdHkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ucC1tdWx0aXNlbGVjdCAucC1tdWx0aXNlbGVjdC1vdmVybGF5IHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG59XG5cbi5wLW11bHRpc2VsZWN0LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdtdWx0aXNlbGVjdC5vdmVybGF5LmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0Lm92ZXJsYXkuY29sb3InKX07XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtkdCgnbXVsdGlzZWxlY3Qub3ZlcmxheS5ib3JkZXIuY29sb3InKX07XG4gICAgYm9yZGVyLXJhZGl1czogJHtkdCgnbXVsdGlzZWxlY3Qub3ZlcmxheS5ib3JkZXIucmFkaXVzJyl9O1xuICAgIGJveC1zaGFkb3c6ICR7ZHQoJ211bHRpc2VsZWN0Lm92ZXJsYXkuc2hhZG93Jyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAke2R0KCdtdWx0aXNlbGVjdC5saXN0LmhlYWRlci5wYWRkaW5nJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC1oZWFkZXIgLnAtY2hlY2tib3gge1xuICAgIG1hcmdpbi1yaWdodDogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLmdhcCcpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgZmxleDogMSAxIGF1dG87XG59XG5cbi5wLW11bHRpc2VsZWN0LWZpbHRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5wLW11bHRpc2VsZWN0LWxpc3QtY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnAtbXVsdGlzZWxlY3QtbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHBhZGRpbmc6ICR7ZHQoJ211bHRpc2VsZWN0Lmxpc3QucGFkZGluZycpfTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAke2R0KCdtdWx0aXNlbGVjdC5saXN0LmdhcCcpfVxufVxuXG4ucC1tdWx0aXNlbGVjdC1vcHRpb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLmdhcCcpfTtcbiAgICBwYWRkaW5nOiAke2R0KCdtdWx0aXNlbGVjdC5vcHRpb24ucGFkZGluZycpfTtcbiAgICBib3JkZXI6IDAgbm9uZTtcbiAgICBjb2xvcjogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLmNvbG9yJyl9O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgJHtkdCgnbXVsdGlzZWxlY3QudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgY29sb3IgJHtkdCgnbXVsdGlzZWxlY3QudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgYm9yZGVyLWNvbG9yICR7ZHQoJ211bHRpc2VsZWN0LnRyYW5zaXRpb24uZHVyYXRpb24nKX0sIGJveC1zaGFkb3cgJHtkdCgnbXVsdGlzZWxlY3QudHJhbnNpdGlvbi5kdXJhdGlvbicpfSwgb3V0bGluZS1jb2xvciAke2R0KFxuICAgICAgICAnbXVsdGlzZWxlY3QudHJhbnNpdGlvbi5kdXJhdGlvbicsXG4gICAgKX07XG4gICAgYm9yZGVyLXJhZGl1czogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLmJvcmRlci5yYWRpdXMnKX1cbn1cblxuLnAtbXVsdGlzZWxlY3Qtb3B0aW9uOm5vdCgucC1tdWx0aXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQpOm5vdCgucC1kaXNhYmxlZCkucC1mb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLmZvY3VzLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5mb2N1cy5jb2xvcicpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3Qtb3B0aW9uLnAtbXVsdGlzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAke2R0KCdtdWx0aXNlbGVjdC5vcHRpb24uc2VsZWN0ZWQuYmFja2dyb3VuZCcpfTtcbiAgICBjb2xvcjogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLnNlbGVjdGVkLmNvbG9yJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC1vcHRpb24ucC1tdWx0aXNlbGVjdC1vcHRpb24tc2VsZWN0ZWQucC1mb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJHtkdCgnbXVsdGlzZWxlY3Qub3B0aW9uLnNlbGVjdGVkLmZvY3VzLmJhY2tncm91bmQnKX07XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5zZWxlY3RlZC5mb2N1cy5jb2xvcicpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3Qtb3B0aW9uLWdyb3VwIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5ncm91cC5wYWRkaW5nJyl9O1xuICAgIGJhY2tncm91bmQ6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5ncm91cC5iYWNrZ3JvdW5kJyl9O1xuICAgIGNvbG9yOiAke2R0KCdtdWx0aXNlbGVjdC5vcHRpb24uZ3JvdXAuY29sb3InKX07XG4gICAgZm9udC13ZWlnaHQ6ICR7ZHQoJ211bHRpc2VsZWN0Lm9wdGlvbi5ncm91cC5mb250LndlaWdodCcpfTtcbn1cblxuLnAtbXVsdGlzZWxlY3QtZW1wdHktbWVzc2FnZSB7XG4gICAgcGFkZGluZzogJHtkdCgnbXVsdGlzZWxlY3QuZW1wdHkubWVzc2FnZS5wYWRkaW5nJyl9O1xufVxuXG4ucC1tdWx0aXNlbGVjdC1sYWJlbCAucC1jaGlwIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygke2R0KCdtdWx0aXNlbGVjdC5wYWRkaW5nLnknKX0gLyAyKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygke2R0KCdtdWx0aXNlbGVjdC5wYWRkaW5nLnknKX0gLyAyKTtcbiAgICBib3JkZXItcmFkaXVzOiAke2R0KCdtdWx0aXNlbGVjdC5jaGlwLmJvcmRlci5yYWRpdXMnKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LWxhYmVsOmhhcygucC1jaGlwKSB7XG4gICAgcGFkZGluZzogY2FsYygke2R0KCdtdWx0aXNlbGVjdC5wYWRkaW5nLnknKX0gLyAyKSBjYWxjKCR7ZHQoJ211bHRpc2VsZWN0LnBhZGRpbmcueCcpfSAvIDIpO1xufVxuXG4ucC1tdWx0aXNlbGVjdC1mbHVpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLyogRm9yIFByaW1lTkcgKi9cblxucC1tdWx0aXNlbGVjdC5uZy1pbnZhbGlkLm5nLWRpcnR5ID4gLnAtbXVsdGlzZWxlY3QucC1jb21wb25lbnQucC1pbnB1dHdyYXBwZXIge1xuICAgIGJvcmRlci1jb2xvcjogJHtkdCgnbXVsdGlzZWxlY3QuaW52YWxpZC5ib3JkZXIuY29sb3InKX07XG59XG5cbi5wLW11bHRpc2VsZWN0LWNsZWFyLWljb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR7ZHQoJ211bHRpc2VsZWN0LmRyb3Bkb3duLmNvbG9yJyl9O1xufVxuYDtcblxuY29uc3QgaW5saW5lU3R5bGVzID0ge1xuICAgIHJvb3Q6ICh7IHByb3BzIH0pID0+ICh7IHBvc2l0aW9uOiBwcm9wcy5hcHBlbmRUbyA9PT0gJ3NlbGYnID8gJ3JlbGF0aXZlJyA6IHVuZGVmaW5lZCB9KSxcbn07XG5cbmNvbnN0IGNsYXNzZXMgPSB7XG4gICAgcm9vdDogKHsgaW5zdGFuY2UgfSkgPT4gKHtcbiAgICAgICAgJ3AtbXVsdGlzZWxlY3QgcC1jb21wb25lbnQgcC1pbnB1dHdyYXBwZXInOiB0cnVlLFxuICAgICAgICAncC1tdWx0aXNlbGVjdC1kaXNwbGF5LWNoaXAnOiBpbnN0YW5jZS5kaXNwbGF5ID09PSAnY2hpcCcsXG4gICAgICAgICdwLWRpc2FibGVkJzogaW5zdGFuY2UuZGlzYWJsZWQsXG4gICAgICAgICdwLWludmFsaWQnOiBpbnN0YW5jZS5pbnZhbGlkLFxuICAgICAgICAncC12YXJpYW50LWZpbGxlZCc6IGluc3RhbmNlLnZhcmlhbnQgPyBpbnN0YW5jZS52YXJpYW50ID09PSAnZmlsbGVkJyA6IGluc3RhbmNlLmNvbmZpZy5pbnB1dFN0eWxlID09PSAnZmlsbGVkJyxcbiAgICAgICAgJ3AtZm9jdXMnOiBpbnN0YW5jZS5mb2N1c2VkLFxuICAgICAgICAncC1pbnB1dHdyYXBwZXItZmlsbGVkJzogaW5zdGFuY2UuZmlsbGVkLFxuICAgICAgICAncC1pbnB1dHdyYXBwZXItZm9jdXMnOiBpbnN0YW5jZS5mb2N1c2VkIHx8IGluc3RhbmNlLm92ZXJsYXlWaXNpYmxlLFxuICAgICAgICAncC1tdWx0aXNlbGVjdC1vcGVuJzogaW5zdGFuY2Uub3ZlcmxheVZpc2libGUsXG4gICAgICAgICdwLW11bHRpc2VsZWN0LWZsdWlkJzogaW5zdGFuY2UuaGFzRmx1aWQsXG4gICAgfSksXG4gICAgbGFiZWxDb250YWluZXI6ICdwLW11bHRpc2VsZWN0LWxhYmVsLWNvbnRhaW5lcicsXG4gICAgbGFiZWw6ICh7IGluc3RhbmNlIH0pID0+ICh7XG4gICAgICAgICdwLW11bHRpc2VsZWN0LWxhYmVsJzogdHJ1ZSxcbiAgICAgICAgJ3AtcGxhY2Vob2xkZXInOiBpbnN0YW5jZS5sYWJlbCA9PT0gaW5zdGFuY2UucGxhY2Vob2xkZXIsXG4gICAgICAgICdwLW11bHRpc2VsZWN0LWxhYmVsLWVtcHR5JzpcbiAgICAgICAgICAgICFpbnN0YW5jZS5wbGFjZWhvbGRlcigpICYmICFpbnN0YW5jZS5kZWZhdWx0TGFiZWwgJiYgKCFpbnN0YW5jZS5tb2RlbFZhbHVlKCkgfHwgaW5zdGFuY2UubW9kZWxWYWx1ZSgpLmxlbmd0aCA9PT0gMCksXG4gICAgfSksXG4gICAgY2hpcEl0ZW06ICdwLW11bHRpc2VsZWN0LWNoaXAtaXRlbScsXG4gICAgcGNDaGlwOiAncC1tdWx0aXNlbGVjdC1jaGlwJyxcbiAgICBjaGlwSWNvbjogJ3AtbXVsdGlzZWxlY3QtY2hpcC1pY29uJyxcbiAgICBkcm9wZG93bjogJ3AtbXVsdGlzZWxlY3QtZHJvcGRvd24nLFxuICAgIGxvYWRpbmdJY29uOiAncC1tdWx0aXNlbGVjdC1sb2FkaW5nLWljb24nLFxuICAgIGRyb3Bkb3duSWNvbjogJ3AtbXVsdGlzZWxlY3QtZHJvcGRvd24taWNvbicsXG4gICAgb3ZlcmxheTogJ3AtbXVsdGlzZWxlY3Qtb3ZlcmxheSBwLWNvbXBvbmVudCcsXG4gICAgaGVhZGVyOiAncC1tdWx0aXNlbGVjdC1oZWFkZXInLFxuICAgIHBjRmlsdGVyQ29udGFpbmVyOiAncC1tdWx0aXNlbGVjdC1maWx0ZXItY29udGFpbmVyJyxcbiAgICBwY0ZpbHRlcjogJ3AtbXVsdGlzZWxlY3QtZmlsdGVyJyxcbiAgICBsaXN0Q29udGFpbmVyOiAncC1tdWx0aXNlbGVjdC1saXN0LWNvbnRhaW5lcicsXG4gICAgbGlzdDogJ3AtbXVsdGlzZWxlY3QtbGlzdCcsXG4gICAgb3B0aW9uR3JvdXA6ICdwLW11bHRpc2VsZWN0LW9wdGlvbi1ncm91cCcsXG4gICAgb3B0aW9uOiAoeyBpbnN0YW5jZSwgb3B0aW9uLCBpbmRleCwgZ2V0SXRlbU9wdGlvbnMgfSkgPT4gKHtcbiAgICAgICAgJ3AtbXVsdGlzZWxlY3Qtb3B0aW9uJzogdHJ1ZSxcbiAgICAgICAgJ3AtbXVsdGlzZWxlY3Qtb3B0aW9uLXNlbGVjdGVkJzogaW5zdGFuY2UuaXNTZWxlY3RlZChvcHRpb24pICYmIGluc3RhbmNlLmhpZ2hsaWdodE9uU2VsZWN0LFxuICAgICAgICAncC1mb2N1cyc6IGluc3RhbmNlLmZvY3VzZWRPcHRpb25JbmRleCA9PT0gaW5zdGFuY2UuZ2V0T3B0aW9uSW5kZXgoaW5kZXgsIGdldEl0ZW1PcHRpb25zKSxcbiAgICAgICAgJ3AtZGlzYWJsZWQnOiBpbnN0YW5jZS5pc09wdGlvbkRpc2FibGVkKG9wdGlvbiksXG4gICAgfSksXG4gICAgZW1wdHlNZXNzYWdlOiAncC1tdWx0aXNlbGVjdC1lbXB0eS1tZXNzYWdlJyxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdFN0eWxlIGV4dGVuZHMgQmFzZVN0eWxlIHtcbiAgICBuYW1lID0gJ211bHRpc2VsZWN0JztcblxuICAgIHRoZW1lID0gdGhlbWU7XG5cbiAgICBjbGFzc2VzID0gY2xhc3NlcztcblxuICAgIGlubGluZVN0eWxlcyA9IGlubGluZVN0eWxlcztcbn1cblxuLyoqXG4gKlxuICogTXVsdGlTZWxlY3QgaXMgdXNlZCB0byBzZWxlY3QgbXVsdGlwbGUgaXRlbXMgZnJvbSBhIGNvbGxlY3Rpb24uXG4gKlxuICogW0xpdmUgRGVtb10oaHR0cHM6Ly93d3cucHJpbWVuZy5vcmcvbXVsdGlzZWxlY3QvKVxuICpcbiAqIEBtb2R1bGUgbXVsdGlzZWxlY3RzdHlsZVxuICpcbiAqL1xuZXhwb3J0IGVudW0gTXVsdGlTZWxlY3RDbGFzc2VzIHtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSByb290IGVsZW1lbnRcbiAgICAgKi9cbiAgICByb290ID0gJ3AtbXVsdGlzZWxlY3QnLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGxhYmVsIGNvbnRhaW5lciBlbGVtZW50XG4gICAgICovXG4gICAgbGFiZWxDb250YWluZXIgPSAncC1tdWx0aXNlbGVjdC1sYWJlbC1jb250YWluZXInLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGxhYmVsIGVsZW1lbnRcbiAgICAgKi9cbiAgICBsYWJlbCA9ICdwLW11bHRpc2VsZWN0LWxhYmVsJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBjaGlwIGl0ZW0gZWxlbWVudFxuICAgICAqL1xuICAgIGNoaXBJdGVtID0gJ3AtbXVsdGlzZWxlY3QtY2hpcC1pdGVtJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBjaGlwIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwY0NoaXAgPSAncC1tdWx0aXNlbGVjdC1jaGlwJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBjaGlwIGljb24gZWxlbWVudFxuICAgICAqL1xuICAgIGNoaXBJY29uID0gJ3AtbXVsdGlzZWxlY3QtY2hpcC1pY29uJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBkcm9wZG93biBlbGVtZW50XG4gICAgICovXG4gICAgZHJvcGRvd24gPSAncC1tdWx0aXNlbGVjdC1kcm9wZG93bicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgbG9hZGluZyBpY29uIGVsZW1lbnRcbiAgICAgKi9cbiAgICBsb2FkaW5nSWNvbiA9ICdwLW11bHRpc2VsZWN0LWxvYWRpbmctaWNvbicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgZHJvcGRvd24gaWNvbiBlbGVtZW50XG4gICAgICovXG4gICAgZHJvcGRvd25JY29uID0gJ3AtbXVsdGlzZWxlY3QtZHJvcGRvd24taWNvbicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgb3ZlcmxheSBlbGVtZW50XG4gICAgICovXG4gICAgb3ZlcmxheSA9ICdwLW11bHRpc2VsZWN0LW92ZXJsYXknLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGhlYWRlciBlbGVtZW50XG4gICAgICovXG4gICAgaGVhZGVyID0gJ3AtbXVsdGlzZWxlY3QtaGVhZGVyJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBmaWx0ZXIgY29udGFpbmVyIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwY0ZpbHRlckNvbnRhaW5lciA9ICdwLW11bHRpc2VsZWN0LWZpbHRlci1jb250YWluZXInLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGZpbHRlciBlbGVtZW50XG4gICAgICovXG4gICAgcGNGaWx0ZXIgPSAncC1tdWx0aXNlbGVjdC1maWx0ZXInLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGxpc3QgY29udGFpbmVyIGVsZW1lbnRcbiAgICAgKi9cbiAgICBsaXN0Q29udGFpbmVyID0gJ3AtbXVsdGlzZWxlY3QtbGlzdC1jb250YWluZXInLFxuICAgIC8qKlxuICAgICAqIENsYXNzIG5hbWUgb2YgdGhlIGxpc3QgZWxlbWVudFxuICAgICAqL1xuICAgIGxpc3QgPSAncC1tdWx0aXNlbGVjdC1saXN0JyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBvcHRpb24gZ3JvdXAgZWxlbWVudFxuICAgICAqL1xuICAgIG9wdGlvbkdyb3VwID0gJ3AtbXVsdGlzZWxlY3Qtb3B0aW9uLWdyb3VwJyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBvcHRpb24gZWxlbWVudFxuICAgICAqL1xuICAgIG9wdGlvbiA9ICdwLW11bHRpc2VsZWN0LW9wdGlvbicsXG4gICAgLyoqXG4gICAgICogQ2xhc3MgbmFtZSBvZiB0aGUgZW1wdHkgbWVzc2FnZSBlbGVtZW50XG4gICAgICovXG4gICAgZW1wdHlNZXNzYWdlID0gJ3AtbXVsdGlzZWxlY3QtZW1wdHktbWVzc2FnZScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTZWxlY3RTdHlsZSBleHRlbmRzIEJhc2VTdHlsZSB7fVxuIl19
@@ -716,7 +716,7 @@ export class OrderList extends BaseComponent {
716
716
  super.ngOnDestroy();
717
717
  }
718
718
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: OrderList, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FilterService }, { token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
719
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.2", type: OrderList, selector: "p-orderList", inputs: { header: "header", style: "style", styleClass: "styleClass", tabindex: ["tabindex", "tabindex", numberAttribute], ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", listStyle: "listStyle", responsive: ["responsive", "responsive", booleanAttribute], filterBy: "filterBy", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], dragdrop: ["dragdrop", "dragdrop", booleanAttribute], controlsPosition: "controlsPosition", ariaFilterLabel: "ariaFilterLabel", filterMatchMode: "filterMatchMode", breakpoint: "breakpoint", stripedRows: ["stripedRows", "stripedRows", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], trackBy: "trackBy", scrollHeight: "scrollHeight", autoOptionFocus: ["autoOptionFocus", "autoOptionFocus", booleanAttribute], selection: "selection", value: "value" }, outputs: { selectionChange: "selectionChange", onReorder: "onReorder", onSelectionChange: "onSelectionChange", onFilterEvent: "onFilterEvent", onFocus: "onFocus", onBlur: "onBlur" }, providers: [OrderListStyle], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "listViewChild", first: true, predicate: ["listelement"], descendants: true }, { propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
719
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.2", type: OrderList, selector: "p-orderList, p-orderlist", inputs: { header: "header", style: "style", styleClass: "styleClass", tabindex: ["tabindex", "tabindex", numberAttribute], ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", listStyle: "listStyle", responsive: ["responsive", "responsive", booleanAttribute], filterBy: "filterBy", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", metaKeySelection: ["metaKeySelection", "metaKeySelection", booleanAttribute], dragdrop: ["dragdrop", "dragdrop", booleanAttribute], controlsPosition: "controlsPosition", ariaFilterLabel: "ariaFilterLabel", filterMatchMode: "filterMatchMode", breakpoint: "breakpoint", stripedRows: ["stripedRows", "stripedRows", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], trackBy: "trackBy", scrollHeight: "scrollHeight", autoOptionFocus: ["autoOptionFocus", "autoOptionFocus", booleanAttribute], selection: "selection", value: "value" }, outputs: { selectionChange: "selectionChange", onReorder: "onReorder", onSelectionChange: "onSelectionChange", onFilterEvent: "onFilterEvent", onFocus: "onFocus", onBlur: "onBlur" }, providers: [OrderListStyle], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "listViewChild", first: true, predicate: ["listelement"], descendants: true }, { propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
720
720
  <div
721
721
  [ngClass]="{
722
722
  'p-orderlist p-component': true,
@@ -816,7 +816,7 @@ export class OrderList extends BaseComponent {
816
816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: OrderList, decorators: [{
817
817
  type: Component,
818
818
  args: [{
819
- selector: 'p-orderList',
819
+ selector: 'p-orderList, p-orderlist',
820
820
  template: `
821
821
  <div
822
822
  [ngClass]="{
@@ -1042,4 +1042,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
1042
1042
  declarations: [OrderList],
1043
1043
  }]
1044
1044
  }] });
1045
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJsaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL29yZGVybGlzdC9vcmRlcmxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFZLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUdILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFFWixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFLTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdDLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFD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QWhCcEIsWUFBWTtZQUNaLFlBQVk7WUFDWixZQUFZO1lBQ1osWUFBWTtZQUNaLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFdBQVc7WUFDWCxhQUFhO1lBQ2IsVUFBVTtZQUNWLGFBQWE7WUFDYixXQUFXLEVBRU0sWUFBWSxFQUFFLGNBQWMsRUFBRSxhQUFhOzsyRkFHdkQsZUFBZTtrQkFsQjNCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsYUFBYTt3QkFDYixXQUFXO3FCQUNkO29CQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQztvQkFDakUsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBEcmFnRHJvcE1vZHVsZSwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBPdXRwdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBpbmplY3QsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UsIFByaW1lTkdDb25maWcsIFByaW1lVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IERvbUhhbmRsZXIgfSBmcm9tICdwcmltZW5nL2RvbSc7XG5pbXBvcnQgeyBBbmdsZURvdWJsZURvd25JY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucy9hbmdsZWRvdWJsZWRvd24nO1xuaW1wb3J0IHsgQW5nbGVEb3VibGVVcEljb24gfSBmcm9tICdwcmltZW5nL2ljb25zL2FuZ2xlZG91YmxldXAnO1xuaW1wb3J0IHsgQW5nbGVEb3duSWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMvYW5nbGVkb3duJztcbmltcG9ydCB7IEFuZ2xlVXBJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucy9hbmdsZXVwJztcbmltcG9ydCB7IFNlYXJjaEljb24gfSBmcm9tICdwcmltZW5nL2ljb25zL3NlYXJjaCc7XG5pbXBvcnQgeyBSaXBwbGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHMtaGVscGVycyc7XG5pbXBvcnQgeyBPYmplY3RVdGlscywgVW5pcXVlQ29tcG9uZW50SWQgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IE9yZGVyTGlzdEZpbHRlckV2ZW50LCBPcmRlckxpc3RGaWx0ZXJPcHRpb25zLCBPcmRlckxpc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vb3JkZXJsaXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBPcmRlckxpc3RTdHlsZSB9IGZyb20gJy4vc3R5bGUvb3JkZXJsaXN0c3R5bGUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0Ym94LCBMaXN0Ym94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9saXN0Ym94JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLyoqXG4gKiBPcmRlckxpc3QgaXMgdXNlZCB0byBtYW5hZ2VkIHRoZSBvcmRlciBvZiBhIGNvbGxlY3Rpb24uXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atb3JkZXJMaXN0JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3Atb3JkZXJsaXN0IHAtY29tcG9uZW50JzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAncC1vcmRlcmxpc3Qtc3RyaXBlZCc6IHN0cmlwZWRSb3dzLFxuICAgICAgICAgICAgICAgICdwLW9yZGVybGlzdC1jb250cm9scy1sZWZ0JzogY29udHJvbHNQb3NpdGlvbiA9PT0gJ2xlZnQnLFxuICAgICAgICAgICAgICAgICdwLW9yZGVybGlzdC1jb250cm9scy1yaWdodCc6IGNvbnRyb2xzUG9zaXRpb24gPT09ICdyaWdodCcsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInN0eWxlXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncm9vdCdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1vcmRlcmxpc3QtY29udHJvbHNcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NvbnRyb2xzJ1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtb3ZlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlVXAoKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW92ZVVwQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidtb3ZlVXBCdXR0b24nXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBbmdsZVVwSWNvbiAqbmdJZj1cIiFtb3ZlVXBJY29uVGVtcGxhdGVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21vdmV1cGljb24nXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibW92ZVVwSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibW92ZURpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1pY29uLW9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZVRvcCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtb3ZlVG9wQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidtb3ZlVG9wQnV0dG9uJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8QW5nbGVEb3VibGVVcEljb24gKm5nSWY9XCIhbW92ZVRvcEljb25UZW1wbGF0ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbW92ZXRvcGljb24nXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibW92ZVRvcEljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1vdmVEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVEb3duKClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vdmVEb3duQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidtb3ZlRG93bkJ1dHRvbidcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG93bkljb24gKm5nSWY9XCIhbW92ZURvd25JY29uVGVtcGxhdGVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21vdmVkb3duaWNvbidcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb3ZlRG93bkljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1vdmVEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVCb3R0b20oKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW92ZUJvdHRvbUFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbW92ZUJvdHRvbUJ1dHRvbidcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG91YmxlRG93bkljb24gKm5nSWY9XCIhbW92ZUJvdHRvbUljb25UZW1wbGF0ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbW92ZWJvdHRvbWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibW92ZUJvdHRvbUljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLW9yZGVybGlzdC1saXN0LWNvbnRhaW5lclwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInY29udGFpbmVyJ1wiPlxuICAgICAgICAgICAgICAgIDxwLWxpc3Rib3hcbiAgICAgICAgICAgICAgICAgICAgI2xpc3RlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRfc2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlXT1cInsgd2lkdGg6ICcxNXJlbScgfVwiXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZCArICdfbGlzdCdcIlxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJsaXN0U3R5bGVcIlxuICAgICAgICAgICAgICAgICAgICBbc3RyaXBlZF09XCJzdHJpcGVkUm93c1wiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIChvbkZvY3VzKT1cIm9uTGlzdEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAob25CbHVyKT1cIm9uTGlzdEJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uSXRlbUtleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW21ldGFLZXlTZWxlY3Rpb25dPVwibWV0YUtleVNlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzY3JvbGxIZWlnaHRdPVwic2Nyb2xsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9PcHRpb25Gb2N1c109XCJhdXRvT3B0aW9uRm9jdXNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRlclRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9wLWxpc3Rib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW09yZGVyTGlzdFN0eWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgT3JkZXJMaXN0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKlxuICAgICAqIFRleHQgZm9yIHRoZSBjYXB0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBlbGVtZW50IGluIHRhYmJpbmcgb3JkZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGFiaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBzdHJpbmcgdGhhdCBsYWJlbHMgdGhlIGlucHV0IGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIG9uZSBvciBtb3JlIElEcyBpbiB0aGUgRE9NIHRoYXQgbGFiZWxzIHRoZSBpbnB1dCBmaWVsZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBsaXN0IGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbGlzdFN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQSBib29sZWFuIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgcmVzcG9uc2l2ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVzcG9uc2l2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFdoZW4gc3BlY2lmaWVkIGRpc3BsYXlzIGFuIGlucHV0IGZpZWxkIHRvIGZpbHRlciB0aGUgaXRlbXMgb24ga2V5dXAgYW5kIGRlY2lkZXMgd2hpY2ggZmllbGRzIHRvIHNlYXJjaCBhZ2FpbnN0LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGZpbHRlckJ5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBQbGFjZWhvbGRlciBvZiB0aGUgZmlsdGVyIGlucHV0LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGZpbHRlclBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhbGUgdG8gdXNlIGluIGZpbHRlcmluZy4gVGhlIGRlZmF1bHQgbG9jYWxlIGlzIHRoZSBob3N0IGVudmlyb25tZW50J3MgY3VycmVudCBsb2NhbGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZmlsdGVyTG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHRydWUgbWV0YUtleSBuZWVkcyB0byBiZSBwcmVzc2VkIHRvIHNlbGVjdCBvciB1bnNlbGVjdCBhbiBpdGVtIGFuZCB3aGVuIHNldCB0byBmYWxzZSBzZWxlY3Rpb24gb2YgZWFjaCBpdGVtIGNhbiBiZSB0b2dnbGVkIGluZGl2aWR1YWxseS4gT24gdG91Y2ggZW5hYmxlZCBkZXZpY2VzLCBtZXRhS2V5U2VsZWN0aW9uIGlzIHR1cm5lZCBvZmYgYXV0b21hdGljYWxseS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgbWV0YUtleVNlbGVjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBlbmFibGUgZHJhZ2Ryb3AgYmFzZWQgcmVvcmRlcmluZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZHJhZ2Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBidXR0b25zIHdpdGggcmVzcGVjdCB0byB0aGUgbGlzdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjb250cm9sc1Bvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnID0gJ2xlZnQnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN0cmluZyB0aGF0IGxhYmVscyB0aGUgZmlsdGVyIGlucHV0LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFGaWx0ZXJMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBob3cgdGhlIGl0ZW1zIGFyZSBmaWx0ZXJlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBmaWx0ZXJNYXRjaE1vZGU6ICdjb250YWlucycgfCAnc3RhcnRzV2l0aCcgfCAnZW5kc1dpdGgnIHwgJ2VxdWFscycgfCAnbm90RXF1YWxzJyB8ICdpbicgfCAnbHQnIHwgJ2x0ZScgfCAnZ3QnIHwgJ2d0ZScgPVxuICAgICAgICAnY29udGFpbnMnO1xuXG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHRoZSB3aWR0aCBvZiB0aGUgc2NyZWVuIGF0IHdoaWNoIHRoZSBjb21wb25lbnQgc2hvdWxkIGNoYW5nZSBpdHMgYmVoYXZpb3IuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYnJlYWtwb2ludDogc3RyaW5nID0gJzk2MHB4JztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZGlzcGxheXMgcm93cyB3aXRoIGFsdGVybmF0aW5nIGNvbG9ycy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc3RyaXBlZFJvd3M6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdG8gb3B0aW1pemUgdGhlIGRvbSBvcGVyYXRpb25zIGJ5IGRlbGVnYXRpbmcgdG8gbmdGb3JUcmFja0J5LCBkZWZhdWx0IGFsZ29yaXRobSBjaGVja3MgZm9yIG9iamVjdCBpZGVudGl0eS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0cmFja0J5OiBGdW5jdGlvbiA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpID0+IGl0ZW07XG5cbiAgICAvKipcbiAgICAgKiBIZWlnaHQgb2YgdGhlIHZpZXdwb3J0LCBhIHNjcm9sbGJhciBpcyBkZWZpbmVkIGlmIGhlaWdodCBvZiBsaXN0IGV4Y2VlZHMgdGhpcyB2YWx1ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnMTRyZW0nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmb2N1cyBvbiB0aGUgZmlyc3QgdmlzaWJsZSBvciBzZWxlY3RlZCBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhdXRvT3B0aW9uRm9jdXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQSBsaXN0IG9mIHZhbHVlcyB0aGF0IGFyZSBjdXJyZW50bHkgc2VsZWN0ZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHNlbGVjdGlvbih2YWw6IGFueVtdKSB7XG4gICAgICAgIHRoaXMuZF9zZWxlY3Rpb24gPSB2YWw7XG4gICAgfVxuICAgIGdldCBzZWxlY3Rpb24oKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5kX3NlbGVjdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiB2YWx1ZXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBjb21wb25lbnQuXG4gICAgICogSXQgcmVwcmVzZW50cyB0aGUgZGF0YSBzb3VyY2UgZm9yIHRoZSBsaXN0IG9mIGl0ZW1zLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB2YWx1ZSh2YWw6IGFueVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogYW55W10gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIG9uIHNlbGVjdGlvbiBjaGFuZ2UuXG4gICAgICogQHBhcmFtIHsqfSBhbnkgLSBzZWxlY3Rpb24gaW5zdGFuY2UuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBsaXN0IGlzIHJlb3JkZXJlZC5cbiAgICAgKiBAcGFyYW0geyp9IGFueSAtIGxpc3QgaW5zdGFuY2UuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uUmVvcmRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBzZWxlY3Rpb24gY2hhbmdlcy5cbiAgICAgKiBAcGFyYW0ge09yZGVyTGlzdFNlbGVjdGlvbkNoYW5nZUV2ZW50fSBldmVudCAtIEN1c3RvbSBjaGFuZ2UgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8T3JkZXJMaXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxPcmRlckxpc3RTZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGZpbHRlcmluZyBvY2N1cnMuXG4gICAgICogQHBhcmFtIHtPcmRlckxpc3RGaWx0ZXJFdmVudH0gZXZlbnQgLSBDdXN0b20gZmlsdGVyIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkZpbHRlckV2ZW50OiBFdmVudEVtaXR0ZXI8T3JkZXJMaXN0RmlsdGVyRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxPcmRlckxpc3RGaWx0ZXJFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHRoZSBsaXN0IGlzIGZvY3VzZWRcbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIEJyb3dzZXIgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gdGhlIGxpc3QgaXMgYmx1cnJlZFxuICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gQnJvd3NlciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25CbHVyOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2xpc3RlbGVtZW50JykgbGlzdFZpZXdDaGlsZCE6IExpc3Rib3g7XG5cbiAgICBAVmlld0NoaWxkKCdmaWx0ZXInKSBmaWx0ZXJWaWV3Q2hpbGQ6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSB0ZW1wbGF0ZXM6IE51bGxhYmxlPFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPj47XG5cbiAgICBwdWJsaWMgaXRlbVRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBwdWJsaWMgZW1wdHlNZXNzYWdlVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgcHVibGljIGVtcHR5RmlsdGVyTWVzc2FnZVRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIHB1YmxpYyBmaWx0ZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBnZXQgbW92ZVVwQXJpYUxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYSA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEubW92ZVVwIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldCBtb3ZlVG9wQXJpYUxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYSA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEubW92ZVRvcCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXQgbW92ZURvd25BcmlhTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYS5tb3ZlRG93biA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXQgbW92ZUJvdHRvbUFyaWFMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEgPyB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLm1vdmVCb3R0b20gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KE9yZGVyTGlzdFN0eWxlKTtcblxuICAgIG1vdmVVcEljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBtb3ZlVG9wSWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIG1vdmVEb3duSWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIG1vdmVCb3R0b21JY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgZmlsdGVySWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIGZpbHRlck9wdGlvbnM6IE51bGxhYmxlPE9yZGVyTGlzdEZpbHRlck9wdGlvbnM+O1xuXG4gICAgZF9zZWxlY3Rpb246IGFueVtdID0gW107XG5cbiAgICBtb3ZlZFVwOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIG1vdmVkRG93bjogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICBpdGVtVG91Y2hlZDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICBzdHlsZUVsZW1lbnQ6IGFueTtcblxuICAgIGlkOiBzdHJpbmcgPSBVbmlxdWVDb21wb25lbnRJZCgpO1xuXG4gICAgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZm9jdXNlZE9wdGlvbkluZGV4OiBhbnkgPSAtMTtcblxuICAgIGZvY3VzZWRPcHRpb246IGFueSB8IHVuZGVmaW5lZDtcblxuICAgIHB1YmxpYyBmaWx0ZXJWYWx1ZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIHB1YmxpYyB2aXNpYmxlT3B0aW9uczogTnVsbGFibGU8YW55W10+O1xuXG4gICAgcHVibGljIF92YWx1ZTogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSxcbiAgICAgICAgcHVibGljIGNvbmZpZzogUHJpbWVOR0NvbmZpZyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2l2ZSkge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVTdHlsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyQnkpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICh2YWx1ZSkgPT4gdGhpcy5vbkZpbHRlcktleXVwKHZhbHVlKSxcbiAgICAgICAgICAgICAgICByZXNldDogKCkgPT4gdGhpcy5yZXNldEZpbHRlcigpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgKHRoaXMudGVtcGxhdGVzIGFzIFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPikuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2l0ZW0nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZW1wdHknOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtcHR5TWVzc2FnZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdlbXB0eWZpbHRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1wdHlGaWx0ZXJNZXNzYWdlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbHRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmV1cGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVVcEljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbW92ZXRvcGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVUb3BJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmVkb3duaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZURvd25JY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmVib3R0b21pY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQm90dG9tSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdmaWx0ZXJpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMubW92ZWRVcCB8fCB0aGlzLm1vdmVkRG93bikge1xuICAgICAgICAgICAgbGV0IGxpc3RJdGVtcyA9IERvbUhhbmRsZXIuZmluZCh0aGlzLmxpc3RWaWV3Q2hpbGQ/LmVsLm5hdGl2ZUVsZW1lbnQsICdsaS5wLWxpc3Rib3gtb3B0aW9uLXNlbGVjdGVkJyk7XG5cbiAgICAgICAgICAgIGxldCBsaXN0SXRlbTtcblxuICAgICAgICAgICAgaWYgKGxpc3RJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubW92ZWRVcCkgbGlzdEl0ZW0gPSBsaXN0SXRlbXNbMF07XG4gICAgICAgICAgICAgICAgZWxzZSBsaXN0SXRlbSA9IGxpc3RJdGVtc1tsaXN0SXRlbXMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgICAgICBEb21IYW5kbGVyLnNjcm9sbEluVmlldyh0aGlzLmxpc3RWaWV3Q2hpbGQ/LmVsLm5hdGl2ZUVsZW1lbnQsIGxpc3RJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubW92ZWRVcCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5tb3ZlZERvd24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2ZW50LCBpdGVtOiBhbnksIGluZGV4PzogbnVtYmVyLCBzZWxlY3RlZElkPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaXRlbVRvdWNoZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGZvY3VzZWRJbmRleCA9IGluZGV4ID8gaW5kZXggOiBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QodGhpcy5mb2N1c2VkT3B0aW9uLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgbGV0IHNlbGVjdGVkSW5kZXggPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QoaXRlbSwgdGhpcy5kX3NlbGVjdGlvbik7XG4gICAgICAgIGxldCBzZWxlY3RlZCA9IHNlbGVjdGVkSW5kZXggIT09IC0xO1xuICAgICAgICBsZXQgbWV0YVNlbGVjdGlvbiA9IHRoaXMuaXRlbVRvdWNoZWQgPyBmYWxzZSA6IHRoaXMubWV0YUtleVNlbGVjdGlvbjtcblxuICAgICAgICBpZiAoc2VsZWN0ZWRJZCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkT3B0aW9uSW5kZXggPSBzZWxlY3RlZElkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1ldGFTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGxldCBtZXRhS2V5ID0gZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5O1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQgJiYgbWV0YUtleSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZF9zZWxlY3Rpb24gPSB0aGlzLmRfc2VsZWN0aW9uLmZpbHRlcigodmFsLCBmb2N1c2VkSW5kZXgpID0+IGZvY3VzZWRJbmRleCAhPT0gc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZF9zZWxlY3Rpb24gPSBtZXRhS2V5ID8gKHRoaXMuZF9zZWxlY3Rpb24gPyBbLi4udGhpcy5kX3NlbGVjdGlvbl0gOiBbXSkgOiBbXTtcbiAgICAgICAgICAgICAgICBPYmplY3RVdGlscy5pbnNlcnRJbnRvT3JkZXJlZEFycmF5KGl0ZW0sIGZvY3VzZWRJbmRleCwgdGhpcy5kX3NlbGVjdGlvbiwgdGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gdGhpcy5kX3NlbGVjdGlvbi5maWx0ZXIoKHZhbCwgZm9jdXNlZEluZGV4KSA9PiBmb2N1c2VkSW5kZXggIT09IHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gdGhpcy5kX3NlbGVjdGlvbiA/IFsuLi50aGlzLmRfc2VsZWN0aW9uXSA6IFtdO1xuICAgICAgICAgICAgICAgIE9iamVjdFV0aWxzLmluc2VydEludG9PcmRlcmVkQXJyYXkoaXRlbSwgZm9jdXNlZEluZGV4LCB0aGlzLmRfc2VsZWN0aW9uLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vYmluZGluZ1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZF9zZWxlY3Rpb24pO1xuXG4gICAgICAgIC8vZXZlbnRcbiAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHZhbHVlOiB0aGlzLmRfc2VsZWN0aW9uIH0pO1xuICAgIH1cblxuICAgIG9uRmlsdGVyS2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWYWx1ZSA9ICgoPEhUTUxJbnB1dEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS52YWx1ZS50cmltKCkgYXMgYW55KS50b0xvY2FsZUxvd2VyQ2FzZSh0aGlzLmZpbHRlckxvY2FsZSk7XG4gICAgICAgIHRoaXMuZmlsdGVyKCk7XG5cbiAgICAgICAgdGhpcy5vbkZpbHRlckV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52aXNpYmxlT3B0aW9ucyBhcyBhbnlbXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZmlsdGVyKCkge1xuICAgICAgICBsZXQgc2VhcmNoRmllbGRzOiBzdHJpbmdbXSA9ICh0aGlzLmZpbHRlckJ5IGFzIHN0cmluZykuc3BsaXQoJywnKTtcbiAgICAgICAgdGhpcy52aXNpYmxlT3B0aW9ucyA9IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIoXG4gICAgICAgICAgICB0aGlzLnZhbHVlIGFzIGFueVtdLFxuICAgICAgICAgICAgc2VhcmNoRmllbGRzLFxuICAgICAgICAgICAgdGhpcy5maWx0ZXJWYWx1ZSxcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTWF0Y2hNb2RlLFxuICAgICAgICAgICAgdGhpcy5maWx0ZXJMb2NhbGUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIG9uIGZpbHRlciByZXNldC5cbiAgICAgKiBAZ3JvdXAgTWV0aG9kXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0RmlsdGVyKCkge1xuICAgICAgICB0aGlzLmZpbHRlclZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5maWx0ZXJWaWV3Q2hpbGQgJiYgKCg8SFRNTElucHV0RWxlbWVudD50aGlzLmZpbHRlclZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KS52YWx1ZSA9ICcnKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1WaXNpYmxlKGl0ZW06IGFueSk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJWYWx1ZSAmJiB0aGlzLmZpbHRlclZhbHVlLnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgKHRoaXMudmlzaWJsZU9wdGlvbnMgYXMgYW55W10pLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT0gKHRoaXMudmlzaWJsZU9wdGlvbnMgYXMgYW55W10pW2ldKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtVG91Y2hFbmQoKSB7XG4gICAgICAgIHRoaXMuaXRlbVRvdWNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlzU2VsZWN0ZWQoaXRlbTogYW55KSB7XG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QoaXRlbSwgdGhpcy5kX3NlbGVjdGlvbikgIT09IC0xO1xuICAgIH1cblxuICAgIGlzRW1wdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlclZhbHVlID8gIXRoaXMudmlzaWJsZU9wdGlvbnMgfHwgdGhpcy52aXNpYmxlT3B0aW9ucy5sZW5ndGggPT09IDAgOiAhdGhpcy52YWx1ZSB8fCB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBtb3ZlVXAoKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNlbGVjdGlvbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGlvbltpXTtcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtSW5kZXg6IG51bWJlciA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChzZWxlY3RlZEl0ZW0sIHRoaXMudmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUluZGV4ICE9IDAgJiYgdGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3ZlZEl0ZW0gPSB0aGlzLnZhbHVlW3NlbGVjdGVkSXRlbUluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSB0aGlzLnZhbHVlW3NlbGVjdGVkSXRlbUluZGV4IC0gMV07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbc2VsZWN0ZWRJdGVtSW5kZXggLSAxXSA9IG1vdmVkSXRlbTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtzZWxlY3RlZEl0ZW1JbmRleF0gPSB0ZW1wO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ2Ryb3AgJiYgdGhpcy5maWx0ZXJWYWx1ZSkgdGhpcy5maWx0ZXIoKTtcblxuICAgICAgICAgICAgdGhpcy5tb3ZlZFVwID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMub25SZW9yZGVyLmVtaXQodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlzdFZpZXdDaGlsZD8uY2Q/Lm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG1vdmVUb3AoKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbSA9IHRoaXMuc2VsZWN0aW9uW2ldO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleDogbnVtYmVyID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgdGhpcy52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT0gMCAmJiB0aGlzLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vdmVkSXRlbSA9IHRoaXMudmFsdWUuc3BsaWNlKHNlbGVjdGVkSXRlbUluZGV4LCAxKVswXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZS51bnNoaWZ0KG1vdmVkSXRlbSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5kcmFnZHJvcCAmJiB0aGlzLmZpbHRlclZhbHVlKSB0aGlzLmZpbHRlcigpO1xuXG4gICAgICAgICAgICB0aGlzLm9uUmVvcmRlci5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdFZpZXdDaGlsZC5zY3JvbGxJblZpZXcoMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpc3RWaWV3Q2hpbGQ/LmNkPy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBtb3ZlRG93bigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtID0gdGhpcy5zZWxlY3Rpb25baV07XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbUluZGV4OiBudW1iZXIgPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3Qoc2VsZWN0ZWRJdGVtLCB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgc2VsZWN0ZWRJdGVtSW5kZXggIT0gdGhpcy52YWx1ZS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3ZlZEl0ZW0gPSB0aGlzLnZhbHVlW3NlbGVjdGVkSXRlbUluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSB0aGlzLnZhbHVlW3NlbGVjdGVkSXRlbUluZGV4ICsgMV07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbc2VsZWN0ZWRJdGVtSW5kZXggKyAxXSA9IG1vdmVkSXRlbTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZVtzZWxlY3RlZEl0ZW1JbmRleF0gPSB0ZW1wO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ2Ryb3AgJiYgdGhpcy5maWx0ZXJWYWx1ZSkgdGhpcy5maWx0ZXIoKTtcblxuICAgICAgICAgICAgdGhpcy5tb3ZlZERvd24gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5vblJlb3JkZXIuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpc3RWaWV3Q2hpbGQ/LmNkPy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBtb3ZlQm90dG9tKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zZWxlY3Rpb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtID0gdGhpcy5zZWxlY3Rpb25baV07XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbUluZGV4OiBudW1iZXIgPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3Qoc2VsZWN0ZWRJdGVtLCB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgc2VsZWN0ZWRJdGVtSW5kZXggIT0gdGhpcy52YWx1ZS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3ZlZEl0ZW0gPSB0aGlzLnZhbHVlLnNwbGljZShzZWxlY3RlZEl0ZW1JbmRleCwgMSlbMF07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUucHVzaChtb3ZlZEl0ZW0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ2Ryb3AgJiYgdGhpcy5maWx0ZXJWYWx1ZSkgdGhpcy5maWx0ZXIoKTtcblxuICAgICAgICAgICAgdGhpcy5vblJlb3JkZXIuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gICAgICAgICAgICB0aGlzLmxpc3RWaWV3Q2hpbGQuc2Nyb2xsSW5WaWV3KHRoaXMudmFsdWU/Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlzdFZpZXdDaGlsZD8uY2Q/Lm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIG9uRHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgICAgIGxldCBwcmV2aW91c0luZGV4ID0gZXZlbnQucHJldmlvdXNJbmRleDtcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleCA9IGV2ZW50LmN1cnJlbnRJbmRleDtcblxuICAgICAgICBpZiAocHJldmlvdXNJbmRleCAhPT0gY3VycmVudEluZGV4KSB7XG4gICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlT3B0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlclZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzSW5kZXggPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QoZXZlbnQuaXRlbS5kYXRhLCB0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4ID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHRoaXMudmlzaWJsZU9wdGlvbnNbY3VycmVudEluZGV4XSwgdGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMudmlzaWJsZU9wdGlvbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLnZhbHVlIGFzIGFueVtdLCBwcmV2aW91c0luZGV4LCBjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkT3B0aW9uSW5kZXgoY3VycmVudEluZGV4KTtcbiAgICAgICAgICAgIHRoaXMub25SZW9yZGVyLmVtaXQoW2V2ZW50Lml0ZW0uZGF0YV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25MaXN0Rm9jdXMoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWwgPVxuICAgICAgICAgICAgRG9tSGFuZGxlci5maW5kU2luZ2xlKHRoaXMubGlzdFZpZXdDaGlsZC5lbC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcC1oaWdobGlnaHQ9XCJ0cnVlXCJdJykgfHxcbiAgICAgICAgICAgIERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLmxpc3RWaWV3Q2hpbGQuZWwubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJpdGVtXCJdJyk7XG5cbiAgICAgICAgaWYgKGZvY3VzYWJsZUVsKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5kSW5kZXggPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QoZm9jdXNhYmxlRWwsIHRoaXMubGlzdFZpZXdDaGlsZC5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4ICE9PSAtMSA/IHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4IDogZm9jdXNhYmxlRWwgPyBmaW5kSW5kZXggOiAtMTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkT3B0aW9uSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkZvY3VzLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uTGlzdEJsdXIoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4ID0gLTE7XG4gICAgICAgIHRoaXMub25CbHVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uSXRlbUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMub25BcnJvd0Rvd25LZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFycm93VXBLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkhvbWVLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW5kS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW50ZXJLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICAgICAgICAgIHRoaXMub25TcGFjZUtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdLZXlBJzpcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gWy4uLnRoaXMudmFsdWVdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZF9zZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk9wdGlvbk1vdXNlRG93bihpbmRleCkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZvY3VzZWRPcHRpb25JbmRleCA9IGluZGV4O1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duS2V5KGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbkluZGV4ID0gdGhpcy5maW5kTmV4dE9wdGlvbkluZGV4KHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4KTtcblxuICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRPcHRpb25JbmRleChvcHRpb25JbmRleCk7XG5cbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICB0aGlzLm9uRW50ZXJLZXkoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgb25BcnJvd1VwS2V5KGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbkluZGV4ID0gdGhpcy5maW5kUHJldk9wdGlvbkluZGV4KHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4KTtcblxuICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRPcHRpb25JbmRleChvcHRpb25JbmRleCk7XG5cbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICB0aGlzLm9uRW50ZXJLZXkoZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkhvbWVLZXkoZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIGxldCB2aXNpYmxlT3B0aW9ucyA9IHRoaXMuZ2V0VmlzaWJsZU9wdGlvbnMoKTtcbiAgICAgICAgICAgIGxldCBmb2N1c2VkSW5kZXggPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QodGhpcy5mb2N1c2VkT3B0aW9uLCB2aXNpYmxlT3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gWy4uLnRoaXMudmFsdWVdLnNsaWNlKDAsIGZvY3VzZWRJbmRleCArIDEpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLmRfc2VsZWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZE9wdGlvbkluZGV4KDApO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkVuZEtleShldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuY3RybEtleSAmJiBldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgbGV0IHZpc2libGVPcHRpb25zID0gdGhpcy5nZXRWaXNpYmxlT3B0aW9ucygpO1xuICAgICAgICAgICAgbGV0IGZvY3VzZWRJbmRleCA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdCh0aGlzLmZvY3VzZWRPcHRpb24sIHZpc2libGVPcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMuZF9zZWxlY3Rpb24gPSBbLi4udGhpcy52YWx1ZV0uc2xpY2UoZm9jdXNlZEluZGV4LCB2aXNpYmxlT3B0aW9ucy5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5kX3NlbGVjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRPcHRpb25JbmRleChEb21IYW5kbGVyLmZpbmQodGhpcy5saXN0Vmlld0NoaWxkLmVsLm5hdGl2ZUVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiaXRlbVwiXScpLmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkVudGVyS2V5KGV2ZW50KSB7XG4gICAgICAgIHRoaXMub25JdGVtQ2xpY2soZXZlbnQsIHRoaXMuZm9jdXNlZE9wdGlvbik7XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblNwYWNlS2V5KGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCB2aXNpYmxlT3B0aW9ucyA9IHRoaXMuZ2V0VmlzaWJsZU9wdGlvbnMoKTtcbiAgICAgICAgICAgIGxldCBsYXN0U2VsZWN0ZWRJbmRleCA9IHRoaXMuZ2V0TGF0ZXN0U2VsZWN0ZWRWaXNpYmxlT3B0aW9uSW5kZXgodmlzaWJsZU9wdGlvbnMpO1xuXG4gICAgICAgICAgICBpZiAobGFzdFNlbGVjdGVkSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZvY3VzZWRJbmRleCA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdCh0aGlzLmZvY3VzZWRPcHRpb24sIHZpc2libGVPcHRpb25zKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gW1xuICAgICAgICAgICAgICAgICAgICAuLi52aXNpYmxlT3B0aW9ucy5zbGljZShNYXRoLm1pbihsYXN0U2VsZWN0ZWRJbmRleCwgZm9jdXNlZEluZGV4KSwgTWF0aC5tYXgobGFzdFNlbGVjdGVkSW5kZXgsIGZvY3VzZWRJbmRleCkgKyAxKSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5kX3NlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHZhbHVlOiB0aGlzLmRfc2VsZWN0aW9uIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkVudGVyS2V5KGV2ZW50KTtcbiAgICB9XG5cbiAgICBmaW5kTmV4dE9wdGlvbkluZGV4KGluZGV4KSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gRG9tSGFuZGxlci5maW5kKHRoaXMubGlzdFZpZXdDaGlsZC5lbC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cIml0ZW1cIl0nKTtcbiAgICAgICAgY29uc3QgbWF0Y2hlZE9wdGlvbkluZGV4ID0gWy4uLml0ZW1zXS5maW5kSW5kZXgoKGxpbmspID0+IGxpbmsuaWQgPT09IGluZGV4KTtcblxuICAgICAgICByZXR1cm4gbWF0Y2hlZE9wdGlvbkluZGV4ID4gLTEgPyBtYXRjaGVkT3B0aW9uSW5kZXggKyAxIDogMDtcbiAgICB9XG5cbiAgICBmaW5kUHJldk9wdGlvbkluZGV4KGluZGV4KSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gRG9tSGFuZGxlci5maW5kKHRoaXMubGlzdFZpZXdDaGlsZC5lbC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cIml0ZW1cIl0nKTtcbiAgICAgICAgY29uc3QgbWF0Y2hlZE9wdGlvbkluZGV4ID0gWy4uLml0ZW1zXS5maW5kSW5kZXgoKGxpbmspID0+IGxpbmsuaWQgPT09IGluZGV4KTtcblxuICAgICAgICByZXR1cm4gbWF0Y2hlZE9wdGlvbkluZGV4ID4gLTEgPyBtYXRjaGVkT3B0aW9uSW5kZXggLSAxIDogMDtcbiAgICB9XG5cbiAgICBnZXRMYXRlc3RTZWxlY3RlZFZpc2libGVPcHRpb25JbmRleCh2aXNpYmxlT3B0aW9uczogYW55W10pOiBudW1iZXIge1xuICAgICAgICBjb25zdCBsYXRlc3RTZWxlY3RlZEl0ZW0gPSBbLi4udGhpcy5kX3NlbGVjdGlvbl0ucmV2ZXJzZSgpLmZpbmQoKGl0ZW0pID0+IHZpc2libGVPcHRpb25zLmluY2x1ZGVzKGl0ZW0pKTtcblxuICAgICAgICByZXR1cm4gbGF0ZXN0U2VsZWN0ZWRJdGVtICE9PSB1bmRlZmluZWQgPyB2aXNpYmxlT3B0aW9ucy5pbmRleE9mKGxhdGVzdFNlbGVjdGVkSXRlbSkgOiAtMTtcbiAgICB9XG5cbiAgICBnZXRWaXNpYmxlT3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZU9wdGlvbnMgJiYgdGhpcy52aXNpYmxlT3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IHRoaXMudmlzaWJsZU9wdGlvbnNcbiAgICAgICAgICAgIDogdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgPyB0aGlzLnZhbHVlXG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXRGb2N1c2VkT3B0aW9uKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZU9wdGlvbnMgJiYgdGhpcy52aXNpYmxlT3B0aW9ucy5sZW5ndGhcbiAgICAgICAgICAgID8gdGhpcy52aXNpYmxlT3B0aW9uc1tpbmRleF1cbiAgICAgICAgICAgIDogdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aFxuICAgICAgICAgICAgICA/IHRoaXMudmFsdWVbaW5kZXhdXG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBjaGFuZ2VGb2N1c2VkT3B0aW9uSW5kZXgoaW5kZXgpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBEb21IYW5kbGVyLmZpbmQodGhpcy5saXN0Vmlld0NoaWxkLmVsLm5hdGl2ZUVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiaXRlbVwiXScpO1xuXG4gICAgICAgIGxldCBvcmRlciA9IGluZGV4ID49IGl0ZW1zLmxlbmd0aCA/IGl0ZW1zLmxlbmd0aCAtIDEgOiBpbmRleCA8IDAgPyAwIDogaW5kZXg7XG5cbiAgICAgICAgdGhpcy5mb2N1c2VkT3B0aW9uSW5kZXggPSBpdGVtc1tvcmRlcl0gPyBpdGVtc1tvcmRlcl0uZ2V0QXR0cmlidXRlKCdpZCcpIDogLTE7XG4gICAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbiA9IHRoaXMuZ2V0Rm9jdXNlZE9wdGlvbihvcmRlcik7XG5cbiAgICAgICAgdGhpcy5zY3JvbGxJblZpZXcodGhpcy5mb2N1c2VkT3B0aW9uSW5kZXgpO1xuICAgIH1cblxuICAgIHNjcm9sbEluVmlldyhpZCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gRG9tSGFuZGxlci5maW5kU2luZ2xlKHRoaXMubGlzdFZpZXdDaGlsZC5lbC5uYXRpdmVFbGVtZW50LCBgW2RhdGEtcGMtc2VjdGlvbj1cIml0ZW1cIl1baWQ9XCIke2lkfVwiXWApO1xuXG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3ICYmIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnLCBpbmxpbmU6ICduZWFyZXN0JyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpbmROZXh0SXRlbShpdGVtOiBhbnkpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICBsZXQgbmV4dEl0ZW0gPSBpdGVtLm5leHRFbGVtZW50U2libGluZztcblxuICAgICAgICBpZiAobmV4dEl0ZW0pXG4gICAgICAgICAgICByZXR1cm4gIURvbUhhbmRsZXIuaGFzQ2xhc3MobmV4dEl0ZW0sICdwLW9yZGVybGlzdC1pdGVtJykgfHwgRG9tSGFuZGxlci5pc0hpZGRlbihuZXh0SXRlbSlcbiAgICAgICAgICAgICAgICA/IHRoaXMuZmluZE5leHRJdGVtKG5leHRJdGVtKVxuICAgICAgICAgICAgICAgIDogbmV4dEl0ZW07XG4gICAgICAgIGVsc2UgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZmluZFByZXZJdGVtKGl0ZW06IGFueSk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGxldCBwcmV2SXRlbSA9IGl0ZW0ucHJldmlvdXNFbGVtZW50U2libGluZztcblxuICAgICAgICBpZiAocHJldkl0ZW0pXG4gICAgICAgICAgICByZXR1cm4gIURvbUhhbmRsZXIuaGFzQ2xhc3MocHJldkl0ZW0sICdwLW9yZGVybGlzdC1pdGVtJykgfHwgRG9tSGFuZGxlci5pc0hpZGRlbihwcmV2SXRlbSlcbiAgICAgICAgICAgICAgICA/IHRoaXMuZmluZFByZXZJdGVtKHByZXZJdGVtKVxuICAgICAgICAgICAgICAgIDogcHJldkl0ZW07XG4gICAgICAgIGVsc2UgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbW92ZURpc2FibGVkKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5zZWxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzZWRPcHRpb25JZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4ICE9PSAtMSA/IHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4IDogbnVsbDtcbiAgICB9XG5cbiAgICBjcmVhdGVTdHlsZSgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0sIHRoaXMuaWQsICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnN0eWxlRWxlbWVudCwgJ3R5cGUnLCAndGV4dC9jc3MnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgdGhpcy5zdHlsZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGlubmVySFRNTCA9IGBcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHt0aGlzLmJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAucC1vcmRlcmxpc3RbJHt0aGlzLmlkfV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wLW9yZGVybGlzdFske3RoaXMuaWR9XSAucC1vcmRlcmxpc3QtY29udHJvbHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLnAtb3JkZXJsaXN0WyR7dGhpcy5pZH1dIC5wLW9yZGVybGlzdC1jb250cm9scyAucC1idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0taW5saW5lLXNwYWNpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wLW9yZGVybGlzdFske3RoaXMuaWR9XSAucC1vcmRlcmxpc3QtY29udHJvbHMgLnAtYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGA7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLnN0eWxlRWxlbWVudCwgJ2lubmVySFRNTCcsIGlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgRG9tSGFuZGxlci5zZXRBdHRyaWJ1dGUodGhpcy5zdHlsZUVsZW1lbnQsICdub25jZScsIHRoaXMuY29uZmlnPy5jc3AoKT8ubm9uY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveVN0eWxlKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3R5bGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmRvY3VtZW50LCB0aGlzLnN0eWxlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGBgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveVN0eWxlKCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgUmlwcGxlTW9kdWxlLFxuICAgICAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICAgICAgQW5nbGVEb3VibGVEb3duSWNvbixcbiAgICAgICAgQW5nbGVEb3VibGVVcEljb24sXG4gICAgICAgIEFuZ2xlVXBJY29uLFxuICAgICAgICBBbmdsZURvd25JY29uLFxuICAgICAgICBTZWFyY2hJY29uLFxuICAgICAgICBMaXN0Ym94TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtPcmRlckxpc3QsIFNoYXJlZE1vZHVsZSwgRHJhZ0Ryb3BNb2R1bGUsIExpc3Rib3hNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW09yZGVyTGlzdF0sXG59KVxuZXhwb3J0IGNsYXNzIE9yZGVyTGlzdE1vZHVsZSB7fVxuIl19
1045
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJsaXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL29yZGVybGlzdC9vcmRlcmxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdDLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFD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LFlBaEJwQixZQUFZO1lBQ1osWUFBWTtZQUNaLFlBQVk7WUFDWixZQUFZO1lBQ1osY0FBYztZQUNkLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsV0FBVztZQUNYLGFBQWE7WUFDYixVQUFVO1lBQ1YsYUFBYTtZQUNiLFdBQVcsRUFFTSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWE7OzJGQUd2RCxlQUFlO2tCQWxCM0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsVUFBVTt3QkFDVixhQUFhO3dCQUNiLFdBQVc7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDO29CQUNqRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIERyYWdEcm9wTW9kdWxlLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBpbmplY3QsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UsIFByaW1lTkdDb25maWcsIFByaW1lVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IERvbUhhbmRsZXIgfSBmcm9tICdwcmltZW5nL2RvbSc7XG5pbXBvcnQgeyBBbmdsZURvdWJsZURvd25JY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucy9hbmdsZWRvdWJsZWRvd24nO1xuaW1wb3J0IHsgQW5nbGVEb3VibGVVcEljb24gfSBmcm9tICdwcmltZW5nL2ljb25zL2FuZ2xlZG91YmxldXAnO1xuaW1wb3J0IHsgQW5nbGVEb3duSWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMvYW5nbGVkb3duJztcbmltcG9ydCB7IEFuZ2xlVXBJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucy9hbmdsZXVwJztcbmltcG9ydCB7IFNlYXJjaEljb24gfSBmcm9tICdwcmltZW5nL2ljb25zL3NlYXJjaCc7XG5pbXBvcnQgeyBSaXBwbGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHMtaGVscGVycyc7XG5pbXBvcnQgeyBPYmplY3RVdGlscywgVW5pcXVlQ29tcG9uZW50SWQgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IE9yZGVyTGlzdEZpbHRlckV2ZW50LCBPcmRlckxpc3RGaWx0ZXJPcHRpb25zLCBPcmRlckxpc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vb3JkZXJsaXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBPcmRlckxpc3RTdHlsZSB9IGZyb20gJy4vc3R5bGUvb3JkZXJsaXN0c3R5bGUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0Ym94LCBMaXN0Ym94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9saXN0Ym94JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLyoqXG4gKiBPcmRlckxpc3QgaXMgdXNlZCB0byBtYW5hZ2VkIHRoZSBvcmRlciBvZiBhIGNvbGxlY3Rpb24uXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atb3JkZXJMaXN0LCBwLW9yZGVybGlzdCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdwLW9yZGVybGlzdCBwLWNvbXBvbmVudCc6IHRydWUsXG4gICAgICAgICAgICAgICAgJ3Atb3JkZXJsaXN0LXN0cmlwZWQnOiBzdHJpcGVkUm93cyxcbiAgICAgICAgICAgICAgICAncC1vcmRlcmxpc3QtY29udHJvbHMtbGVmdCc6IGNvbnRyb2xzUG9zaXRpb24gPT09ICdsZWZ0JyxcbiAgICAgICAgICAgICAgICAncC1vcmRlcmxpc3QtY29udHJvbHMtcmlnaHQnOiBjb250cm9sc1Bvc2l0aW9uID09PSAncmlnaHQnLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJzdHlsZVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwic3R5bGVDbGFzc1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3Jvb3QnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtb3JkZXJsaXN0LWNvbnRyb2xzXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjb250cm9scydcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibW92ZURpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1pY29uLW9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZVVwKClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vdmVVcEFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbW92ZVVwQnV0dG9uJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8QW5nbGVVcEljb24gKm5nSWY9XCIhbW92ZVVwSWNvblRlbXBsYXRlXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidtb3ZldXBpY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVVcEljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm1vdmVEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVUb3AoKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibW92ZVRvcEFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbW92ZVRvcEJ1dHRvbidcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG91YmxlVXBJY29uICpuZ0lmPVwiIW1vdmVUb3BJY29uVGVtcGxhdGVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21vdmV0b3BpY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVUb3BJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtb3ZlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlRG93bigpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJtb3ZlRG93bkFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbW92ZURvd25CdXR0b24nXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBbmdsZURvd25JY29uICpuZ0lmPVwiIW1vdmVEb3duSWNvblRlbXBsYXRlXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidtb3ZlZG93bmljb24nXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibW92ZURvd25JY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtb3ZlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlQm90dG9tKClcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vdmVCb3R0b21BcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21vdmVCb3R0b21CdXR0b24nXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBbmdsZURvdWJsZURvd25JY29uICpuZ0lmPVwiIW1vdmVCb3R0b21JY29uVGVtcGxhdGVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21vdmVib3R0b21pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVCb3R0b21JY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1vcmRlcmxpc3QtbGlzdC1jb250YWluZXJcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NvbnRhaW5lcidcIj5cbiAgICAgICAgICAgICAgICA8cC1saXN0Ym94XG4gICAgICAgICAgICAgICAgICAgICNsaXN0ZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkX3NlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJ7IHdpZHRoOiAnMTVyZW0nIH1cIlxuICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWQgKyAnX2xpc3QnXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwibGlzdFN0eWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0cmlwZWRdPVwic3RyaXBlZFJvd3NcIlxuICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAob25Gb2N1cyk9XCJvbkxpc3RGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQmx1cik9XCJvbkxpc3RCbHVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkl0ZW1LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFttZXRhS2V5U2VsZWN0aW9uXT1cIm1ldGFLZXlTZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgIFthdXRvT3B0aW9uRm9jdXNdPVwiYXV0b09wdGlvbkZvY3VzXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvcC1saXN0Ym94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtPcmRlckxpc3RTdHlsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE9yZGVyTGlzdCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBUZXh0IGZvciB0aGUgY2FwdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBJbmRleCBvZiB0aGUgZWxlbWVudCBpbiB0YWJiaW5nIG9yZGVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRhYmluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgc3RyaW5nIHRoYXQgbGFiZWxzIHRoZSBpbnB1dCBmb3IgYWNjZXNzaWJpbGl0eS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyBvbmUgb3IgbW9yZSBJRHMgaW4gdGhlIERPTSB0aGF0IGxhYmVscyB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgbGlzdCBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxpc3RTdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIEEgYm9vbGVhbiB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIHJlc3BvbnNpdmUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlc3BvbnNpdmU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHNwZWNpZmllZCBkaXNwbGF5cyBhbiBpbnB1dCBmaWVsZCB0byBmaWx0ZXIgdGhlIGl0ZW1zIG9uIGtleXVwIGFuZCBkZWNpZGVzIHdoaWNoIGZpZWxkcyB0byBzZWFyY2ggYWdhaW5zdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBmaWx0ZXJCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogUGxhY2Vob2xkZXIgb2YgdGhlIGZpbHRlciBpbnB1dC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBmaWx0ZXJQbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogTG9jYWxlIHRvIHVzZSBpbiBmaWx0ZXJpbmcuIFRoZSBkZWZhdWx0IGxvY2FsZSBpcyB0aGUgaG9zdCBlbnZpcm9ubWVudCdzIGN1cnJlbnQgbG9jYWxlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGZpbHRlckxvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiB0cnVlIG1ldGFLZXkgbmVlZHMgdG8gYmUgcHJlc3NlZCB0byBzZWxlY3Qgb3IgdW5zZWxlY3QgYW4gaXRlbSBhbmQgd2hlbiBzZXQgdG8gZmFsc2Ugc2VsZWN0aW9uIG9mIGVhY2ggaXRlbSBjYW4gYmUgdG9nZ2xlZCBpbmRpdmlkdWFsbHkuIE9uIHRvdWNoIGVuYWJsZWQgZGV2aWNlcywgbWV0YUtleVNlbGVjdGlvbiBpcyB0dXJuZWQgb2ZmIGF1dG9tYXRpY2FsbHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG1ldGFLZXlTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZW5hYmxlIGRyYWdkcm9wIGJhc2VkIHJlb3JkZXJpbmcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRyYWdkcm9wOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgYnV0dG9ucyB3aXRoIHJlc3BlY3QgdG8gdGhlIGxpc3QuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY29udHJvbHNQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBzdHJpbmcgdGhhdCBsYWJlbHMgdGhlIGZpbHRlciBpbnB1dC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcmlhRmlsdGVyTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgaG93IHRoZSBpdGVtcyBhcmUgZmlsdGVyZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZmlsdGVyTWF0Y2hNb2RlOiAnY29udGFpbnMnIHwgJ3N0YXJ0c1dpdGgnIHwgJ2VuZHNXaXRoJyB8ICdlcXVhbHMnIHwgJ25vdEVxdWFscycgfCAnaW4nIHwgJ2x0JyB8ICdsdGUnIHwgJ2d0JyB8ICdndGUnID1cbiAgICAgICAgJ2NvbnRhaW5zJztcblxuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB0aGUgd2lkdGggb2YgdGhlIHNjcmVlbiBhdCB3aGljaCB0aGUgY29tcG9uZW50IHNob3VsZCBjaGFuZ2UgaXRzIGJlaGF2aW9yLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGJyZWFrcG9pbnQ6IHN0cmluZyA9ICc5NjBweCc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXlzIHJvd3Mgd2l0aCBhbHRlcm5hdGluZyBjb2xvcnMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHN0cmlwZWRSb3dzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgY29tcG9uZW50IHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRvIG9wdGltaXplIHRoZSBkb20gb3BlcmF0aW9ucyBieSBkZWxlZ2F0aW5nIHRvIG5nRm9yVHJhY2tCeSwgZGVmYXVsdCBhbGdvcml0aG0gY2hlY2tzIGZvciBvYmplY3QgaWRlbnRpdHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdHJhY2tCeTogRnVuY3Rpb24gPSAoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSA9PiBpdGVtO1xuXG4gICAgLyoqXG4gICAgICogSGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCwgYSBzY3JvbGxiYXIgaXMgZGVmaW5lZCBpZiBoZWlnaHQgb2YgbGlzdCBleGNlZWRzIHRoaXMgdmFsdWUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzE0cmVtJztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gZm9jdXMgb24gdGhlIGZpcnN0IHZpc2libGUgb3Igc2VsZWN0ZWQgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b09wdGlvbkZvY3VzOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiB2YWx1ZXMgdGhhdCBhcmUgY3VycmVudGx5IHNlbGVjdGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCBzZWxlY3Rpb24odmFsOiBhbnlbXSkge1xuICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gdmFsO1xuICAgIH1cbiAgICBnZXQgc2VsZWN0aW9uKCk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZF9zZWxlY3Rpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXJyYXkgb2YgdmFsdWVzIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgY29tcG9uZW50LlxuICAgICAqIEl0IHJlcHJlc2VudHMgdGhlIGRhdGEgc291cmNlIGZvciB0aGUgbGlzdCBvZiBpdGVtcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdmFsdWUodmFsOiBhbnlbXSB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbDtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHZhbHVlKCk6IGFueVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBvbiBzZWxlY3Rpb24gY2hhbmdlLlxuICAgICAqIEBwYXJhbSB7Kn0gYW55IC0gc2VsZWN0aW9uIGluc3RhbmNlLlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gbGlzdCBpcyByZW9yZGVyZWQuXG4gICAgICogQHBhcmFtIHsqfSBhbnkgLSBsaXN0IGluc3RhbmNlLlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlb3JkZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIHtPcmRlckxpc3RTZWxlY3Rpb25DaGFuZ2VFdmVudH0gZXZlbnQgLSBDdXN0b20gY2hhbmdlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPE9yZGVyTGlzdFNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8T3JkZXJMaXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBmaWx0ZXJpbmcgb2NjdXJzLlxuICAgICAqIEBwYXJhbSB7T3JkZXJMaXN0RmlsdGVyRXZlbnR9IGV2ZW50IC0gQ3VzdG9tIGZpbHRlciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25GaWx0ZXJFdmVudDogRXZlbnRFbWl0dGVyPE9yZGVyTGlzdEZpbHRlckV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8T3JkZXJMaXN0RmlsdGVyRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiB0aGUgbGlzdCBpcyBmb2N1c2VkXG4gICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBCcm93c2VyIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHRoZSBsaXN0IGlzIGJsdXJyZWRcbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIEJyb3dzZXIgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdsaXN0ZWxlbWVudCcpIGxpc3RWaWV3Q2hpbGQhOiBMaXN0Ym94O1xuXG4gICAgQFZpZXdDaGlsZCgnZmlsdGVyJykgZmlsdGVyVmlld0NoaWxkOiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBOdWxsYWJsZTxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4+O1xuXG4gICAgcHVibGljIGl0ZW1UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgcHVibGljIGVtcHR5TWVzc2FnZVRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIHB1YmxpYyBlbXB0eUZpbHRlck1lc3NhZ2VUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBwdWJsaWMgZmlsdGVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgZ2V0IG1vdmVVcEFyaWFMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEgPyB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLm1vdmVVcCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXQgbW92ZVRvcEFyaWFMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEgPyB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLm1vdmVUb3AgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0IG1vdmVEb3duQXJpYUxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYSA/IHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEubW92ZURvd24gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0IG1vdmVCb3R0b21BcmlhTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYS5tb3ZlQm90dG9tIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChPcmRlckxpc3RTdHlsZSk7XG5cbiAgICBtb3ZlVXBJY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgbW92ZVRvcEljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBtb3ZlRG93bkljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBtb3ZlQm90dG9tSWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIGZpbHRlckljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBmaWx0ZXJPcHRpb25zOiBOdWxsYWJsZTxPcmRlckxpc3RGaWx0ZXJPcHRpb25zPjtcblxuICAgIGRfc2VsZWN0aW9uOiBhbnlbXSA9IFtdO1xuXG4gICAgbW92ZWRVcDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICBtb3ZlZERvd246IE51bGxhYmxlPGJvb2xlYW4+O1xuXG4gICAgaXRlbVRvdWNoZWQ6IE51bGxhYmxlPGJvb2xlYW4+O1xuXG4gICAgc3R5bGVFbGVtZW50OiBhbnk7XG5cbiAgICBpZDogc3RyaW5nID0gVW5pcXVlQ29tcG9uZW50SWQoKTtcblxuICAgIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGZvY3VzZWRPcHRpb25JbmRleDogYW55ID0gLTE7XG5cbiAgICBmb2N1c2VkT3B0aW9uOiBhbnkgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgZmlsdGVyVmFsdWU6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICBwdWJsaWMgdmlzaWJsZU9wdGlvbnM6IE51bGxhYmxlPGFueVtdPjtcblxuICAgIHB1YmxpYyBfdmFsdWU6IGFueVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjb25maWc6IFByaW1lTkdDb25maWcsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlU3R5bGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpbHRlckJ5KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiAodmFsdWUpID0+IHRoaXMub25GaWx0ZXJLZXl1cCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgcmVzZXQ6ICgpID0+IHRoaXMucmVzZXRGaWx0ZXIoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgICh0aGlzLnRlbXBsYXRlcyBhcyBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4pLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2VtcHR5JzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbXB0eU1lc3NhZ2VUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZW1wdHlmaWx0ZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtcHR5RmlsdGVyTWVzc2FnZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdmaWx0ZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdoZWFkZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdtb3ZldXBpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlVXBJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmV0b3BpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlVG9wSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdtb3ZlZG93bmljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVEb3duSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdtb3ZlYm90dG9taWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUJvdHRvbUljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsdGVyaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVySWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vdmVkVXAgfHwgdGhpcy5tb3ZlZERvd24pIHtcbiAgICAgICAgICAgIGxldCBsaXN0SXRlbXMgPSBEb21IYW5kbGVyLmZpbmQodGhpcy5saXN0Vmlld0NoaWxkPy5lbC5uYXRpdmVFbGVtZW50LCAnbGkucC1saXN0Ym94LW9wdGlvbi1zZWxlY3RlZCcpO1xuXG4gICAgICAgICAgICBsZXQgbGlzdEl0ZW07XG5cbiAgICAgICAgICAgIGlmIChsaXN0SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vdmVkVXApIGxpc3RJdGVtID0gbGlzdEl0ZW1zWzBdO1xuICAgICAgICAgICAgICAgIGVsc2UgbGlzdEl0ZW0gPSBsaXN0SXRlbXNbbGlzdEl0ZW1zLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICAgICAgRG9tSGFuZGxlci5zY3JvbGxJblZpZXcodGhpcy5saXN0Vmlld0NoaWxkPy5lbC5uYXRpdmVFbGVtZW50LCBsaXN0SXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm1vdmVkVXAgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubW92ZWREb3duID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhldmVudCwgaXRlbTogYW55LCBpbmRleD86IG51bWJlciwgc2VsZWN0ZWRJZD86IHN0cmluZykge1xuICAgICAgICB0aGlzLml0ZW1Ub3VjaGVkID0gZmFsc2U7XG4gICAgICAgIGxldCBmb2N1c2VkSW5kZXggPSBpbmRleCA/IGluZGV4IDogT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHRoaXMuZm9jdXNlZE9wdGlvbiwgdGhpcy52YWx1ZSk7XG4gICAgICAgIGxldCBzZWxlY3RlZEluZGV4ID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KGl0ZW0sIHRoaXMuZF9zZWxlY3Rpb24pO1xuICAgICAgICBsZXQgc2VsZWN0ZWQgPSBzZWxlY3RlZEluZGV4ICE9PSAtMTtcbiAgICAgICAgbGV0IG1ldGFTZWxlY3Rpb24gPSB0aGlzLml0ZW1Ub3VjaGVkID8gZmFsc2UgOiB0aGlzLm1ldGFLZXlTZWxlY3Rpb247XG5cbiAgICAgICAgaWYgKHNlbGVjdGVkSWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4ID0gc2VsZWN0ZWRJZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtZXRhU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBsZXQgbWV0YUtleSA9IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkICYmIG1ldGFLZXkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gdGhpcy5kX3NlbGVjdGlvbi5maWx0ZXIoKHZhbCwgZm9jdXNlZEluZGV4KSA9PiBmb2N1c2VkSW5kZXggIT09IHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gbWV0YUtleSA/ICh0aGlzLmRfc2VsZWN0aW9uID8gWy4uLnRoaXMuZF9zZWxlY3Rpb25dIDogW10pIDogW107XG4gICAgICAgICAgICAgICAgT2JqZWN0VXRpbHMuaW5zZXJ0SW50b09yZGVyZWRBcnJheShpdGVtLCBmb2N1c2VkSW5kZXgsIHRoaXMuZF9zZWxlY3Rpb24sIHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kX3NlbGVjdGlvbiA9IHRoaXMuZF9zZWxlY3Rpb24uZmlsdGVyKCh2YWwsIGZvY3VzZWRJbmRleCkgPT4gZm9jdXNlZEluZGV4ICE9PSBzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kX3NlbGVjdGlvbiA9IHRoaXMuZF9zZWxlY3Rpb24gPyBbLi4udGhpcy5kX3NlbGVjdGlvbl0gOiBbXTtcbiAgICAgICAgICAgICAgICBPYmplY3RVdGlscy5pbnNlcnRJbnRvT3JkZXJlZEFycmF5KGl0ZW0sIGZvY3VzZWRJbmRleCwgdGhpcy5kX3NlbGVjdGlvbiwgdGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvL2JpbmRpbmdcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLmRfc2VsZWN0aW9uKTtcblxuICAgICAgICAvL2V2ZW50XG4gICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCB2YWx1ZTogdGhpcy5kX3NlbGVjdGlvbiB9KTtcbiAgICB9XG5cbiAgICBvbkZpbHRlcktleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmFsdWUgPSAoKDxIVE1MSW5wdXRFbGVtZW50PmV2ZW50LnRhcmdldCkudmFsdWUudHJpbSgpIGFzIGFueSkudG9Mb2NhbGVMb3dlckNhc2UodGhpcy5maWx0ZXJMb2NhbGUpO1xuICAgICAgICB0aGlzLmZpbHRlcigpO1xuXG4gICAgICAgIHRoaXMub25GaWx0ZXJFdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmlzaWJsZU9wdGlvbnMgYXMgYW55W10sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpbHRlcigpIHtcbiAgICAgICAgbGV0IHNlYXJjaEZpZWxkczogc3RyaW5nW10gPSAodGhpcy5maWx0ZXJCeSBhcyBzdHJpbmcpLnNwbGl0KCcsJyk7XG4gICAgICAgIHRoaXMudmlzaWJsZU9wdGlvbnMgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyKFxuICAgICAgICAgICAgdGhpcy52YWx1ZSBhcyBhbnlbXSxcbiAgICAgICAgICAgIHNlYXJjaEZpZWxkcyxcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyVmFsdWUsXG4gICAgICAgICAgICB0aGlzLmZpbHRlck1hdGNoTW9kZSxcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyTG9jYWxlLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBvbiBmaWx0ZXIgcmVzZXQuXG4gICAgICogQGdyb3VwIE1ldGhvZFxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldEZpbHRlcigpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWYWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuZmlsdGVyVmlld0NoaWxkICYmICgoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5maWx0ZXJWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCkudmFsdWUgPSAnJyk7XG4gICAgfVxuXG4gICAgaXNJdGVtVmlzaWJsZShpdGVtOiBhbnkpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyVmFsdWUgJiYgdGhpcy5maWx0ZXJWYWx1ZS50cmltKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICh0aGlzLnZpc2libGVPcHRpb25zIGFzIGFueVtdKS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtID09ICh0aGlzLnZpc2libGVPcHRpb25zIGFzIGFueVtdKVtpXSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbVRvdWNoRW5kKCkge1xuICAgICAgICB0aGlzLml0ZW1Ub3VjaGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkKGl0ZW06IGFueSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KGl0ZW0sIHRoaXMuZF9zZWxlY3Rpb24pICE9PSAtMTtcbiAgICB9XG5cbiAgICBpc0VtcHR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJWYWx1ZSA/ICF0aGlzLnZpc2libGVPcHRpb25zIHx8IHRoaXMudmlzaWJsZU9wdGlvbnMubGVuZ3RoID09PSAwIDogIXRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZS5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgbW92ZVVwKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zZWxlY3Rpb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtID0gdGhpcy5zZWxlY3Rpb25baV07XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbUluZGV4OiBudW1iZXIgPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3Qoc2VsZWN0ZWRJdGVtLCB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW1JbmRleCAhPSAwICYmIHRoaXMudmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW92ZWRJdGVtID0gdGhpcy52YWx1ZVtzZWxlY3RlZEl0ZW1JbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gdGhpcy52YWx1ZVtzZWxlY3RlZEl0ZW1JbmRleCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW3NlbGVjdGVkSXRlbUluZGV4IC0gMV0gPSBtb3ZlZEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbc2VsZWN0ZWRJdGVtSW5kZXhdID0gdGVtcDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdkcm9wICYmIHRoaXMuZmlsdGVyVmFsdWUpIHRoaXMuZmlsdGVyKCk7XG5cbiAgICAgICAgICAgIHRoaXMubW92ZWRVcCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm9uUmVvcmRlci5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpc3RWaWV3Q2hpbGQ/LmNkPy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBtb3ZlVG9wKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSB0aGlzLnNlbGVjdGlvbi5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGlvbltpXTtcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtSW5kZXg6IG51bWJlciA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChzZWxlY3RlZEl0ZW0sIHRoaXMudmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUluZGV4ICE9IDAgJiYgdGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3ZlZEl0ZW0gPSB0aGlzLnZhbHVlLnNwbGljZShzZWxlY3RlZEl0ZW1JbmRleCwgMSlbMF07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUudW5zaGlmdChtb3ZlZEl0ZW0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ2Ryb3AgJiYgdGhpcy5maWx0ZXJWYWx1ZSkgdGhpcy5maWx0ZXIoKTtcblxuICAgICAgICAgICAgdGhpcy5vblJlb3JkZXIuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RWaWV3Q2hpbGQuc2Nyb2xsSW5WaWV3KDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0Vmlld0NoaWxkPy5jZD8ubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgbW92ZURvd24oKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbSA9IHRoaXMuc2VsZWN0aW9uW2ldO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleDogbnVtYmVyID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgdGhpcy52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHNlbGVjdGVkSXRlbUluZGV4ICE9IHRoaXMudmFsdWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW92ZWRJdGVtID0gdGhpcy52YWx1ZVtzZWxlY3RlZEl0ZW1JbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gdGhpcy52YWx1ZVtzZWxlY3RlZEl0ZW1JbmRleCArIDFdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlW3NlbGVjdGVkSXRlbUluZGV4ICsgMV0gPSBtb3ZlZEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVbc2VsZWN0ZWRJdGVtSW5kZXhdID0gdGVtcDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdkcm9wICYmIHRoaXMuZmlsdGVyVmFsdWUpIHRoaXMuZmlsdGVyKCk7XG5cbiAgICAgICAgICAgIHRoaXMubW92ZWREb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMub25SZW9yZGVyLmVtaXQodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5saXN0Vmlld0NoaWxkPy5jZD8ubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgbW92ZUJvdHRvbSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VsZWN0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbSA9IHRoaXMuc2VsZWN0aW9uW2ldO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleDogbnVtYmVyID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgdGhpcy52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHNlbGVjdGVkSXRlbUluZGV4ICE9IHRoaXMudmFsdWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW92ZWRJdGVtID0gdGhpcy52YWx1ZS5zcGxpY2Uoc2VsZWN0ZWRJdGVtSW5kZXgsIDEpWzBdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLnB1c2gobW92ZWRJdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdkcm9wICYmIHRoaXMuZmlsdGVyVmFsdWUpIHRoaXMuZmlsdGVyKCk7XG5cbiAgICAgICAgICAgIHRoaXMub25SZW9yZGVyLmVtaXQodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgdGhpcy5saXN0Vmlld0NoaWxkLnNjcm9sbEluVmlldyh0aGlzLnZhbHVlPy5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpc3RWaWV3Q2hpbGQ/LmNkPy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbkRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xuICAgICAgICBsZXQgcHJldmlvdXNJbmRleCA9IGV2ZW50LnByZXZpb3VzSW5kZXg7XG4gICAgICAgIGxldCBjdXJyZW50SW5kZXggPSBldmVudC5jdXJyZW50SW5kZXg7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzSW5kZXggIT09IGN1cnJlbnRJbmRleCkge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZU9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0luZGV4ID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KGV2ZW50Lml0ZW0uZGF0YSwgdGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdCh0aGlzLnZpc2libGVPcHRpb25zW2N1cnJlbnRJbmRleF0sIHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLnZpc2libGVPcHRpb25zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy52YWx1ZSBhcyBhbnlbXSwgcHJldmlvdXNJbmRleCwgY3VycmVudEluZGV4KTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZE9wdGlvbkluZGV4KGN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICB0aGlzLm9uUmVvcmRlci5lbWl0KFtldmVudC5pdGVtLmRhdGFdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTGlzdEZvY3VzKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZUVsID1cbiAgICAgICAgICAgIERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLmxpc3RWaWV3Q2hpbGQuZWwubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXAtaGlnaGxpZ2h0PVwidHJ1ZVwiXScpIHx8XG4gICAgICAgICAgICBEb21IYW5kbGVyLmZpbmRTaW5nbGUodGhpcy5saXN0Vmlld0NoaWxkLmVsLm5hdGl2ZUVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiaXRlbVwiXScpO1xuXG4gICAgICAgIGlmIChmb2N1c2FibGVFbCkge1xuICAgICAgICAgICAgY29uc3QgZmluZEluZGV4ID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KGZvY3VzYWJsZUVsLCB0aGlzLmxpc3RWaWV3Q2hpbGQuZWwubmF0aXZlRWxlbWVudC5jaGlsZHJlbik7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZvY3VzZWRPcHRpb25JbmRleCAhPT0gLTEgPyB0aGlzLmZvY3VzZWRPcHRpb25JbmRleCA6IGZvY3VzYWJsZUVsID8gZmluZEluZGV4IDogLTE7XG5cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZE9wdGlvbkluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkxpc3RCbHVyKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZvY3VzZWRPcHRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLmZvY3VzZWRPcHRpb25JbmRleCA9IC0xO1xuICAgICAgICB0aGlzLm9uQmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkl0ZW1LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dEb3duS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIHRoaXMub25BcnJvd1VwS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMub25Ib21lS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVuZEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVudGVyS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3BhY2VLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnS2V5QSc6XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kX3NlbGVjdGlvbiA9IFsuLi50aGlzLnZhbHVlXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLmRfc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25PcHRpb25Nb3VzZURvd24oaW5kZXgpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb2N1c2VkT3B0aW9uSW5kZXggPSBpbmRleDtcbiAgICB9XG5cbiAgICBvbkFycm93RG93bktleShldmVudCkge1xuICAgICAgICBjb25zdCBvcHRpb25JbmRleCA9IHRoaXMuZmluZE5leHRPcHRpb25JbmRleCh0aGlzLmZvY3VzZWRPcHRpb25JbmRleCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkT3B0aW9uSW5kZXgob3B0aW9uSW5kZXgpO1xuXG4gICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5vbkVudGVyS2V5KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIG9uQXJyb3dVcEtleShldmVudCkge1xuICAgICAgICBjb25zdCBvcHRpb25JbmRleCA9IHRoaXMuZmluZFByZXZPcHRpb25JbmRleCh0aGlzLmZvY3VzZWRPcHRpb25JbmRleCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkT3B0aW9uSW5kZXgob3B0aW9uSW5kZXgpO1xuXG4gICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5vbkVudGVyS2V5KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25Ib21lS2V5KGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5jdHJsS2V5ICYmIGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICBsZXQgdmlzaWJsZU9wdGlvbnMgPSB0aGlzLmdldFZpc2libGVPcHRpb25zKCk7XG4gICAgICAgICAgICBsZXQgZm9jdXNlZEluZGV4ID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHRoaXMuZm9jdXNlZE9wdGlvbiwgdmlzaWJsZU9wdGlvbnMpO1xuICAgICAgICAgICAgdGhpcy5kX3NlbGVjdGlvbiA9IFsuLi50aGlzLnZhbHVlXS5zbGljZSgwLCBmb2N1c2VkSW5kZXggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5kX3NlbGVjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRPcHRpb25JbmRleCgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25FbmRLZXkoZXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIGxldCB2aXNpYmxlT3B0aW9ucyA9IHRoaXMuZ2V0VmlzaWJsZU9wdGlvbnMoKTtcbiAgICAgICAgICAgIGxldCBmb2N1c2VkSW5kZXggPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QodGhpcy5mb2N1c2VkT3B0aW9uLCB2aXNpYmxlT3B0aW9ucyk7XG4gICAgICAgICAgICB0aGlzLmRfc2VsZWN0aW9uID0gWy4uLnRoaXMudmFsdWVdLnNsaWNlKGZvY3VzZWRJbmRleCwgdmlzaWJsZU9wdGlvbnMubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZF9zZWxlY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkT3B0aW9uSW5kZXgoRG9tSGFuZGxlci5maW5kKHRoaXMubGlzdFZpZXdDaGlsZC5lbC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cIml0ZW1cIl0nKS5sZW5ndGggLSAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25FbnRlcktleShldmVudCkge1xuICAgICAgICB0aGlzLm9uSXRlbUNsaWNrKGV2ZW50LCB0aGlzLmZvY3VzZWRPcHRpb24pO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25TcGFjZUtleShldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmIChldmVudC5zaGlmdEtleSAmJiB0aGlzLnNlbGVjdGlvbiAmJiB0aGlzLnNlbGVjdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgdmlzaWJsZU9wdGlvbnMgPSB0aGlzLmdldFZpc2libGVPcHRpb25zKCk7XG4gICAgICAgICAgICBsZXQgbGFzdFNlbGVjdGVkSW5kZXggPSB0aGlzLmdldExhdGVzdFNlbGVjdGVkVmlzaWJsZU9wdGlvbkluZGV4KHZpc2libGVPcHRpb25zKTtcblxuICAgICAgICAgICAgaWYgKGxhc3RTZWxlY3RlZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGxldCBmb2N1c2VkSW5kZXggPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QodGhpcy5mb2N1c2VkT3B0aW9uLCB2aXNpYmxlT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgdGhpcy5kX3NlbGVjdGlvbiA9IFtcbiAgICAgICAgICAgICAgICAgICAgLi4udmlzaWJsZU9wdGlvbnMuc2xpY2UoTWF0aC5taW4obGFzdFNlbGVjdGVkSW5kZXgsIGZvY3VzZWRJbmRleCksIE1hdGgubWF4KGxhc3RTZWxlY3RlZEluZGV4LCBmb2N1c2VkSW5kZXgpICsgMSksXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZF9zZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCB2YWx1ZTogdGhpcy5kX3NlbGVjdGlvbiB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25FbnRlcktleShldmVudCk7XG4gICAgfVxuXG4gICAgZmluZE5leHRPcHRpb25JbmRleChpbmRleCkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IERvbUhhbmRsZXIuZmluZCh0aGlzLmxpc3RWaWV3Q2hpbGQuZWwubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJpdGVtXCJdJyk7XG4gICAgICAgIGNvbnN0IG1hdGNoZWRPcHRpb25JbmRleCA9IFsuLi5pdGVtc10uZmluZEluZGV4KChsaW5rKSA9PiBsaW5rLmlkID09PSBpbmRleCk7XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoZWRPcHRpb25JbmRleCA+IC0xID8gbWF0Y2hlZE9wdGlvbkluZGV4ICsgMSA6IDA7XG4gICAgfVxuXG4gICAgZmluZFByZXZPcHRpb25JbmRleChpbmRleCkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IERvbUhhbmRsZXIuZmluZCh0aGlzLmxpc3RWaWV3Q2hpbGQuZWwubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJpdGVtXCJdJyk7XG4gICAgICAgIGNvbnN0IG1hdGNoZWRPcHRpb25JbmRleCA9IFsuLi5pdGVtc10uZmluZEluZGV4KChsaW5rKSA9PiBsaW5rLmlkID09PSBpbmRleCk7XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoZWRPcHRpb25JbmRleCA+IC0xID8gbWF0Y2hlZE9wdGlvbkluZGV4IC0gMSA6IDA7XG4gICAgfVxuXG4gICAgZ2V0TGF0ZXN0U2VsZWN0ZWRWaXNpYmxlT3B0aW9uSW5kZXgodmlzaWJsZU9wdGlvbnM6IGFueVtdKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbGF0ZXN0U2VsZWN0ZWRJdGVtID0gWy4uLnRoaXMuZF9zZWxlY3Rpb25dLnJldmVyc2UoKS5maW5kKChpdGVtKSA9PiB2aXNpYmxlT3B0aW9ucy5pbmNsdWRlcyhpdGVtKSk7XG5cbiAgICAgICAgcmV0dXJuIGxhdGVzdFNlbGVjdGVkSXRlbSAhPT0gdW5kZWZpbmVkID8gdmlzaWJsZU9wdGlvbnMuaW5kZXhPZihsYXRlc3RTZWxlY3RlZEl0ZW0pIDogLTE7XG4gICAgfVxuXG4gICAgZ2V0VmlzaWJsZU9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVPcHRpb25zICYmIHRoaXMudmlzaWJsZU9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICAgICAgPyB0aGlzLnZpc2libGVPcHRpb25zXG4gICAgICAgICAgICA6IHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwXG4gICAgICAgICAgICAgID8gdGhpcy52YWx1ZVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0Rm9jdXNlZE9wdGlvbihpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHJldHVybiBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVPcHRpb25zICYmIHRoaXMudmlzaWJsZU9wdGlvbnMubGVuZ3RoXG4gICAgICAgICAgICA/IHRoaXMudmlzaWJsZU9wdGlvbnNbaW5kZXhdXG4gICAgICAgICAgICA6IHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGhcbiAgICAgICAgICAgICAgPyB0aGlzLnZhbHVlW2luZGV4XVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgY2hhbmdlRm9jdXNlZE9wdGlvbkluZGV4KGluZGV4KSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gRG9tSGFuZGxlci5maW5kKHRoaXMubGlzdFZpZXdDaGlsZC5lbC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cIml0ZW1cIl0nKTtcblxuICAgICAgICBsZXQgb3JkZXIgPSBpbmRleCA+PSBpdGVtcy5sZW5ndGggPyBpdGVtcy5sZW5ndGggLSAxIDogaW5kZXggPCAwID8gMCA6IGluZGV4O1xuXG4gICAgICAgIHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4ID0gaXRlbXNbb3JkZXJdID8gaXRlbXNbb3JkZXJdLmdldEF0dHJpYnV0ZSgnaWQnKSA6IC0xO1xuICAgICAgICB0aGlzLmZvY3VzZWRPcHRpb24gPSB0aGlzLmdldEZvY3VzZWRPcHRpb24ob3JkZXIpO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsSW5WaWV3KHRoaXMuZm9jdXNlZE9wdGlvbkluZGV4KTtcbiAgICB9XG5cbiAgICBzY3JvbGxJblZpZXcoaWQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLmxpc3RWaWV3Q2hpbGQuZWwubmF0aXZlRWxlbWVudCwgYFtkYXRhLXBjLXNlY3Rpb249XCJpdGVtXCJdW2lkPVwiJHtpZH1cIl1gKTtcblxuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyAmJiBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICduZWFyZXN0JywgaW5saW5lOiAnbmVhcmVzdCcgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kTmV4dEl0ZW0oaXRlbTogYW55KTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgbGV0IG5leHRJdGVtID0gaXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG5cbiAgICAgICAgaWYgKG5leHRJdGVtKVxuICAgICAgICAgICAgcmV0dXJuICFEb21IYW5kbGVyLmhhc0NsYXNzKG5leHRJdGVtLCAncC1vcmRlcmxpc3QtaXRlbScpIHx8IERvbUhhbmRsZXIuaXNIaWRkZW4obmV4dEl0ZW0pXG4gICAgICAgICAgICAgICAgPyB0aGlzLmZpbmROZXh0SXRlbShuZXh0SXRlbSlcbiAgICAgICAgICAgICAgICA6IG5leHRJdGVtO1xuICAgICAgICBlbHNlIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZpbmRQcmV2SXRlbShpdGVtOiBhbnkpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICBsZXQgcHJldkl0ZW0gPSBpdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG5cbiAgICAgICAgaWYgKHByZXZJdGVtKVxuICAgICAgICAgICAgcmV0dXJuICFEb21IYW5kbGVyLmhhc0NsYXNzKHByZXZJdGVtLCAncC1vcmRlcmxpc3QtaXRlbScpIHx8IERvbUhhbmRsZXIuaXNIaWRkZW4ocHJldkl0ZW0pXG4gICAgICAgICAgICAgICAgPyB0aGlzLmZpbmRQcmV2SXRlbShwcmV2SXRlbSlcbiAgICAgICAgICAgICAgICA6IHByZXZJdGVtO1xuICAgICAgICBlbHNlIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIG1vdmVEaXNhYmxlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuc2VsZWN0aW9uLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1c2VkT3B0aW9uSWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvY3VzZWRPcHRpb25JbmRleCAhPT0gLTEgPyB0aGlzLmZvY3VzZWRPcHRpb25JbmRleCA6IG51bGw7XG4gICAgfVxuXG4gICAgY3JlYXRlU3R5bGUoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc3R5bGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLCB0aGlzLmlkLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5zdHlsZUVsZW1lbnQsICd0eXBlJywgJ3RleHQvY3NzJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmhlYWQsIHRoaXMuc3R5bGVFbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGxldCBpbm5lckhUTUwgPSBgXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7dGhpcy5icmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLnAtb3JkZXJsaXN0WyR7dGhpcy5pZH1dIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAucC1vcmRlcmxpc3RbJHt0aGlzLmlkfV0gLnAtb3JkZXJsaXN0LWNvbnRyb2xzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jb250ZW50LXBhZGRpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wLW9yZGVybGlzdFske3RoaXMuaWR9XSAucC1vcmRlcmxpc3QtY29udHJvbHMgLnAtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWlubGluZS1zcGFjaW5nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAucC1vcmRlcmxpc3RbJHt0aGlzLmlkfV0gLnAtb3JkZXJsaXN0LWNvbnRyb2xzIC5wLWJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBgO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5zdHlsZUVsZW1lbnQsICdpbm5lckhUTUwnLCBpbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIERvbUhhbmRsZXIuc2V0QXR0cmlidXRlKHRoaXMuc3R5bGVFbGVtZW50LCAnbm9uY2UnLCB0aGlzLmNvbmZpZz8uY3NwKCk/Lm5vbmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3lTdHlsZSgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0eWxlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudCwgdGhpcy5zdHlsZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICBgYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3lTdHlsZSgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgICBTaGFyZWRNb2R1bGUsXG4gICAgICAgIFJpcHBsZU1vZHVsZSxcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgICAgIEFuZ2xlRG91YmxlRG93bkljb24sXG4gICAgICAgIEFuZ2xlRG91YmxlVXBJY29uLFxuICAgICAgICBBbmdsZVVwSWNvbixcbiAgICAgICAgQW5nbGVEb3duSWNvbixcbiAgICAgICAgU2VhcmNoSWNvbixcbiAgICAgICAgTGlzdGJveE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbT3JkZXJMaXN0LCBTaGFyZWRNb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBMaXN0Ym94TW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtPcmRlckxpc3RdLFxufSlcbmV4cG9ydCBjbGFzcyBPcmRlckxpc3RNb2R1bGUge31cbiJdfQ==
@@ -28,4 +28,24 @@ export class OrderListStyle extends BaseStyle {
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: OrderListStyle, decorators: [{
29
29
  type: Injectable
30
30
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJsaXN0c3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvb3JkZXJsaXN0L3N0eWxlL29yZGVybGlzdHN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7O1dBR2YsRUFBRSxDQUFDLGVBQWUsQ0FBQzs7Ozs7OztXQU9uQixFQUFFLENBQUMsd0JBQXdCLENBQUM7O0NBRXRDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRztJQUNaLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsUUFBUSxFQUFFLHNCQUFzQjtDQUNuQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBQ3pDLElBQUksR0FBRyxXQUFXLENBQUM7SUFFbkIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLE9BQU8sR0FBRyxPQUFPLENBQUM7dUdBTFQsY0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVN0eWxlIH0gZnJvbSAncHJpbWVuZy9iYXNlJztcblxuY29uc3QgdGhlbWUgPSAoeyBkdCB9KSA9PiBgXG4ucC1vcmRlcmxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAke2R0KCdvcmRlcmxpc3QuZ2FwJyl9O1xufVxuXG4ucC1vcmRlcmxpc3QtY29udHJvbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6ICR7ZHQoJ29yZGVybGlzdC5jb250cm9scy5nYXAnKX07XG59XG5gO1xuXG5jb25zdCBjbGFzc2VzID0ge1xuICAgIHJvb3Q6ICdwLW9yZGVybGlzdCBwLWNvbXBvbmVudCcsXG4gICAgY29udHJvbHM6ICdwLW9yZGVybGlzdC1jb250cm9scycsXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3JkZXJMaXN0U3R5bGUgZXh0ZW5kcyBCYXNlU3R5bGUge1xuICAgIG5hbWUgPSAnb3JkZXJsaXN0JztcblxuICAgIHRoZW1lID0gdGhlbWU7XG5cbiAgICBjbGFzc2VzID0gY2xhc3Nlcztcbn1cbiJdfQ==
31
+ /**
32
+ *
33
+ * OrderList is used to maneged the order of a collection.
34
+ *
35
+ * [Live Demo](https://primeng.org/orderlist)
36
+ *
37
+ * @module orderliststyle
38
+ *
39
+ */
40
+ export var OrderListClasses;
41
+ (function (OrderListClasses) {
42
+ /**
43
+ * Class name of the root element
44
+ */
45
+ OrderListClasses["root"] = "p-orderlist";
46
+ /**
47
+ * Class name of the controls element
48
+ */
49
+ OrderListClasses["controls"] = "p-orderlist-controls";
50
+ })(OrderListClasses || (OrderListClasses = {}));
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJsaXN0c3R5bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvb3JkZXJsaXN0L3N0eWxlL29yZGVybGlzdHN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFekMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7O1dBR2YsRUFBRSxDQUFDLGVBQWUsQ0FBQzs7Ozs7OztXQU9uQixFQUFFLENBQUMsd0JBQXdCLENBQUM7O0NBRXRDLENBQUM7QUFFRixNQUFNLE9BQU8sR0FBRztJQUNaLElBQUksRUFBRSx5QkFBeUI7SUFDL0IsUUFBUSxFQUFFLHNCQUFzQjtDQUNuQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBQ3pDLElBQUksR0FBRyxXQUFXLENBQUM7SUFFbkIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUVkLE9BQU8sR0FBRyxPQUFPLENBQUM7dUdBTFQsY0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOztBQVNYOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxDQUFOLElBQVksZ0JBU1g7QUFURCxXQUFZLGdCQUFnQjtJQUN4Qjs7T0FFRztJQUNILHdDQUFvQixDQUFBO0lBQ3BCOztPQUVHO0lBQ0gscURBQWlDLENBQUE7QUFDckMsQ0FBQyxFQVRXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFTM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlU3R5bGUgfSBmcm9tICdwcmltZW5nL2Jhc2UnO1xuXG5jb25zdCB0aGVtZSA9ICh7IGR0IH0pID0+IGBcbi5wLW9yZGVybGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6ICR7ZHQoJ29yZGVybGlzdC5nYXAnKX07XG59XG5cbi5wLW9yZGVybGlzdC1jb250cm9scyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogJHtkdCgnb3JkZXJsaXN0LmNvbnRyb2xzLmdhcCcpfTtcbn1cbmA7XG5cbmNvbnN0IGNsYXNzZXMgPSB7XG4gICAgcm9vdDogJ3Atb3JkZXJsaXN0IHAtY29tcG9uZW50JyxcbiAgICBjb250cm9sczogJ3Atb3JkZXJsaXN0LWNvbnRyb2xzJyxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPcmRlckxpc3RTdHlsZSBleHRlbmRzIEJhc2VTdHlsZSB7XG4gICAgbmFtZSA9ICdvcmRlcmxpc3QnO1xuXG4gICAgdGhlbWUgPSB0aGVtZTtcblxuICAgIGNsYXNzZXMgPSBjbGFzc2VzO1xufVxuXG4vKipcbiAqXG4gKiBPcmRlckxpc3QgaXMgdXNlZCB0byBtYW5lZ2VkIHRoZSBvcmRlciBvZiBhIGNvbGxlY3Rpb24uXG4gKlxuICogW0xpdmUgRGVtb10oaHR0cHM6Ly9wcmltZW5nLm9yZy9vcmRlcmxpc3QpXG4gKlxuICogQG1vZHVsZSBvcmRlcmxpc3RzdHlsZVxuICpcbiAqL1xuXG5leHBvcnQgZW51bSBPcmRlckxpc3RDbGFzc2VzIHtcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSByb290IGVsZW1lbnRcbiAgICAgKi9cbiAgICByb290ID0gJ3Atb3JkZXJsaXN0JyxcbiAgICAvKipcbiAgICAgKiBDbGFzcyBuYW1lIG9mIHRoZSBjb250cm9scyBlbGVtZW50XG4gICAgICovXG4gICAgY29udHJvbHMgPSAncC1vcmRlcmxpc3QtY29udHJvbHMnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyTGlzdFN0eWxlIGV4dGVuZHMgQmFzZVN0eWxlIHt9XG4iXX0=