primeng 18.0.6-lts → 18.0.7-lts

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 (236) hide show
  1. package/LICENSE.md +3 -3
  2. package/api/translation.d.ts +1 -0
  3. package/confirmdialog/confirmdialog.d.ts +1 -0
  4. package/dialog/dialog.d.ts +1 -0
  5. package/dynamicdialog/dynamicdialog-config.d.ts +1 -1
  6. package/editor/editor.d.ts +25 -4
  7. package/editor/editor.interface.d.ts +67 -9
  8. package/esm2022/api/translation.mjs +1 -1
  9. package/esm2022/autocomplete/autocomplete.mjs +1 -4
  10. package/esm2022/config/primeng.mjs +3 -2
  11. package/esm2022/confirmdialog/confirmdialog.mjs +41 -3
  12. package/esm2022/contextmenu/contextmenu.mjs +3 -3
  13. package/esm2022/datepicker/datepicker.mjs +10 -4
  14. package/esm2022/dialog/dialog.mjs +15 -4
  15. package/esm2022/dock/dock.mjs +2 -2
  16. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +2 -2
  17. package/esm2022/editor/editor.interface.mjs +1 -1
  18. package/esm2022/editor/editor.mjs +61 -3
  19. package/esm2022/listbox/listbox.mjs +85 -10
  20. package/esm2022/listbox/style/listboxstyle.mjs +23 -1
  21. package/esm2022/megamenu/megamenu.mjs +2 -2
  22. package/esm2022/menu/menu.mjs +2 -2
  23. package/esm2022/menubar/menubar.mjs +2 -2
  24. package/esm2022/message/message.mjs +1 -1
  25. package/esm2022/multiselect/multiselect.mjs +6 -3
  26. package/esm2022/picklist/picklist.mjs +105 -32
  27. package/esm2022/radiobutton/radiobutton.mjs +4 -5
  28. package/esm2022/select/select.mjs +29 -14
  29. package/esm2022/table/style/tablestyle.mjs +2 -2
  30. package/esm2022/table/table.mjs +56 -22
  31. package/esm2022/tabs/tablist.mjs +2 -2
  32. package/esm2022/tag/tag.mjs +1 -1
  33. package/esm2022/terminal/terminal.mjs +22 -12
  34. package/esm2022/tieredmenu/tieredmenu.mjs +2 -2
  35. package/esm2022/treetable/treetable.mjs +9 -9
  36. package/fesm2022/primeng-accordion.mjs.map +1 -1
  37. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  38. package/fesm2022/primeng-api.mjs.map +1 -1
  39. package/fesm2022/primeng-autocomplete.mjs +0 -3
  40. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  41. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  42. package/fesm2022/primeng-avatar.mjs.map +1 -1
  43. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  44. package/fesm2022/primeng-badge.mjs.map +1 -1
  45. package/fesm2022/primeng-base.mjs.map +1 -1
  46. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  47. package/fesm2022/primeng-blockui.mjs.map +1 -1
  48. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  49. package/fesm2022/primeng-button.mjs.map +1 -1
  50. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  51. package/fesm2022/primeng-calendar.mjs.map +1 -1
  52. package/fesm2022/primeng-card.mjs.map +1 -1
  53. package/fesm2022/primeng-carousel.mjs.map +1 -1
  54. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  55. package/fesm2022/primeng-chart.mjs.map +1 -1
  56. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  57. package/fesm2022/primeng-chip.mjs.map +1 -1
  58. package/fesm2022/primeng-chips.mjs.map +1 -1
  59. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  60. package/fesm2022/primeng-config.mjs +2 -1
  61. package/fesm2022/primeng-config.mjs.map +1 -1
  62. package/fesm2022/primeng-confirmdialog.mjs +40 -2
  63. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  64. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  65. package/fesm2022/primeng-contextmenu.mjs +2 -2
  66. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  67. package/fesm2022/primeng-dataview.mjs.map +1 -1
  68. package/fesm2022/primeng-datepicker.mjs +9 -3
  69. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  70. package/fesm2022/primeng-defer.mjs.map +1 -1
  71. package/fesm2022/primeng-dialog.mjs +14 -3
  72. package/fesm2022/primeng-dialog.mjs.map +1 -1
  73. package/fesm2022/primeng-divider.mjs.map +1 -1
  74. package/fesm2022/primeng-dock.mjs +1 -1
  75. package/fesm2022/primeng-dock.mjs.map +1 -1
  76. package/fesm2022/primeng-dom.mjs.map +1 -1
  77. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  78. package/fesm2022/primeng-drawer.mjs.map +1 -1
  79. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  80. package/fesm2022/primeng-dynamicdialog.mjs +1 -1
  81. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  82. package/fesm2022/primeng-editor.mjs +60 -2
  83. package/fesm2022/primeng-editor.mjs.map +1 -1
  84. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  85. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  86. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  87. package/fesm2022/primeng-fluid.mjs.map +1 -1
  88. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  89. package/fesm2022/primeng-galleria.mjs.map +1 -1
  90. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  91. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  92. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  93. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  94. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  95. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  96. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  97. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  98. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  99. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  100. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  102. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  104. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  106. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  108. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  110. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  112. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  114. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  116. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  118. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  120. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  122. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  124. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  126. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  128. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  130. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  132. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  134. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  136. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  138. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  140. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  142. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  144. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  145. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  146. package/fesm2022/primeng-image.mjs.map +1 -1
  147. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  148. package/fesm2022/primeng-inplace.mjs.map +1 -1
  149. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  150. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  151. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  152. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  153. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  154. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  155. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  156. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  157. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  158. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  159. package/fesm2022/primeng-knob.mjs.map +1 -1
  160. package/fesm2022/primeng-listbox.mjs +107 -10
  161. package/fesm2022/primeng-listbox.mjs.map +1 -1
  162. package/fesm2022/primeng-megamenu.mjs +1 -1
  163. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  164. package/fesm2022/primeng-menu.mjs +1 -1
  165. package/fesm2022/primeng-menu.mjs.map +1 -1
  166. package/fesm2022/primeng-menubar.mjs +1 -1
  167. package/fesm2022/primeng-menubar.mjs.map +1 -1
  168. package/fesm2022/primeng-message.mjs.map +1 -1
  169. package/fesm2022/primeng-messages.mjs.map +1 -1
  170. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  171. package/fesm2022/primeng-multiselect.mjs +5 -2
  172. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  173. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  174. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  175. package/fesm2022/primeng-overlay.mjs.map +1 -1
  176. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  177. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  178. package/fesm2022/primeng-paginator.mjs.map +1 -1
  179. package/fesm2022/primeng-panel.mjs.map +1 -1
  180. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  181. package/fesm2022/primeng-password.mjs.map +1 -1
  182. package/fesm2022/primeng-picklist.mjs +104 -31
  183. package/fesm2022/primeng-picklist.mjs.map +1 -1
  184. package/fesm2022/primeng-popover.mjs.map +1 -1
  185. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  186. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  187. package/fesm2022/primeng-radiobutton.mjs +3 -4
  188. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  189. package/fesm2022/primeng-rating.mjs.map +1 -1
  190. package/fesm2022/primeng-ripple.mjs.map +1 -1
  191. package/fesm2022/primeng-scroller.mjs.map +1 -1
  192. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  193. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  194. package/fesm2022/primeng-select.mjs +28 -13
  195. package/fesm2022/primeng-select.mjs.map +1 -1
  196. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  197. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  198. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  199. package/fesm2022/primeng-slider.mjs.map +1 -1
  200. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  201. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  202. package/fesm2022/primeng-splitter.mjs.map +1 -1
  203. package/fesm2022/primeng-stepper.mjs.map +1 -1
  204. package/fesm2022/primeng-steps.mjs.map +1 -1
  205. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  206. package/fesm2022/primeng-table.mjs +57 -23
  207. package/fesm2022/primeng-table.mjs.map +1 -1
  208. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  209. package/fesm2022/primeng-tabs.mjs +1 -1
  210. package/fesm2022/primeng-tabs.mjs.map +1 -1
  211. package/fesm2022/primeng-tabview.mjs.map +1 -1
  212. package/fesm2022/primeng-tag.mjs.map +1 -1
  213. package/fesm2022/primeng-terminal.mjs +21 -11
  214. package/fesm2022/primeng-terminal.mjs.map +1 -1
  215. package/fesm2022/primeng-textarea.mjs.map +1 -1
  216. package/fesm2022/primeng-tieredmenu.mjs +1 -1
  217. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  218. package/fesm2022/primeng-timeline.mjs.map +1 -1
  219. package/fesm2022/primeng-toast.mjs.map +1 -1
  220. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  221. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  222. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  223. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  224. package/fesm2022/primeng-tree.mjs.map +1 -1
  225. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  226. package/fesm2022/primeng-treetable.mjs +8 -8
  227. package/fesm2022/primeng-treetable.mjs.map +1 -1
  228. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  229. package/fesm2022/primeng-utils.mjs.map +1 -1
  230. package/listbox/listbox.d.ts +27 -1
  231. package/message/message.d.ts +1 -1
  232. package/multiselect/multiselect.d.ts +1 -1
  233. package/package.json +335 -335
  234. package/table/table.d.ts +10 -2
  235. package/tag/tag.d.ts +1 -1
  236. package/terminal/terminal.d.ts +2 -1
@@ -140,7 +140,8 @@ export class PrimeNG extends ThemeProvider {
140
140
  selectColor: 'Select a color',
141
141
  removeLabel: 'Remove',
142
142
  browseFiles: 'Browse Files',
143
- maximizeLabel: 'Maximize'
143
+ maximizeLabel: 'Maximize',
144
+ minimizeLabel: 'Minimize'
144
145
  }
145
146
  };
146
147
  zIndex = {
@@ -182,4 +183,4 @@ export class PrimeNG extends ThemeProvider {
182
183
  type: Injectable,
183
184
  args: [{ providedIn: 'root' }]
184
185
  }], null, null); })();
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWVuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvcHJpbWVuZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQStCLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFtQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFxQmpFLE1BQU0sT0FBTyxPQUFRLFNBQVEsYUFBYTtJQUN0QyxNQUFNLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRXpCLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFN0MsVUFBVSxHQUFHLE1BQU0sQ0FBd0IsVUFBVSxDQUFDLENBQUM7SUFFdkQsWUFBWSxHQUFHLE1BQU0sQ0FBd0IsVUFBVSxDQUFDLENBQUM7SUFFekQsY0FBYyxHQUFtQixFQUFFLENBQUM7SUFFcEMsR0FBRyxHQUFHLE1BQU0sQ0FBZ0MsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUVsRSxzQkFBc0IsR0FBRztRQUNyQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUMxSyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMscUJBQXFCLEVBQUUsZUFBZSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsd0JBQXdC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Z25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyTWF0Y2hNb2RlLCBPdmVybGF5T3B0aW9ucywgVHJhbnNsYXRpb24gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaGVtZUNvbmZpZ1R5cGUsIFRoZW1lUHJvdmlkZXIgfSBmcm9tICcuL3RoZW1lcHJvdmlkZXInO1xuXG4vLyBUeXBlIGZvciB6SW5kZXhcbmV4cG9ydCB0eXBlIFpJbmRleCA9IHtcbiAgICBtb2RhbDogbnVtYmVyO1xuICAgIG92ZXJsYXk6IG51bWJlcjtcbiAgICBtZW51OiBudW1iZXI7XG4gICAgdG9vbHRpcDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgUHJpbWVOR0NvbmZpZ1R5cGUgPSB7XG4gICAgcmlwcGxlPzogYm9vbGVhbjtcbiAgICBpbnB1dFN0eWxlPzogJ291dGxpbmVkJyB8ICdmaWxsZWQnO1xuICAgIGNzcD86IHtcbiAgICAgICAgbm9uY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB9O1xuICAgIG92ZXJsYXlPcHRpb25zPzogT3ZlcmxheU9wdGlvbnM7XG4gICAgdHJhbnNsYXRpb24/OiBUcmFuc2xhdGlvbjtcbn0gJiBUaGVtZUNvbmZpZ1R5cGU7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHJpbWVORyBleHRlbmRzIFRoZW1lUHJvdmlkZXIge1xuICAgIHJpcHBsZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwdWJsaWMgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIGlucHV0U3R5bGUgPSBzaWduYWw8J291dGxpbmVkJyB8ICdmaWxsZWQnPignb3V0bGluZWQnKTtcblxuICAgIGlucHV0VmFyaWFudCA9IHNpZ25hbDwnb3V0bGluZWQnIHwgJ2ZpbGxlZCc+KCdvdXRsaW5lZCcpO1xuXG4gICAgb3ZlcmxheU9wdGlvbnM6IE92ZXJsYXlPcHRpb25zID0ge307XG5cbiAgICBjc3AgPSBzaWduYWw8eyBub25jZTogc3RyaW5nIHwgdW5kZWZpbmVkIH0+KHsgbm9uY2U6IHVuZGVmaW5lZCB9KTtcblxuICAgIGZpbHRlck1hdGNoTW9kZU9wdGlvbnMgPSB7XG4gICAgICAgIHRleHQ6IFtGaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEgsIEZpbHRlck1hdGNoTW9kZS5DT05UQUlOUywgRmlsdGVyTWF0Y2hNb2RlLk5PVF9DT05UQUlOUywgRmlsdGVyTWF0Y2hNb2RlLkVORFNfV0lUSCwgRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUywgRmlsdGVyTWF0Y2hNb2RlLk5PVF9FUVVBTFNdLFxuICAgICAgICBudW1lcmljOiBbRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUywgRmlsdGVyTWF0Y2hNb2RlLk5PVF9FUVVBTFMsIEZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU4sIEZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU5fT1JfRVFVQUxfVE8sIEZpbHRlck1hdGNoTW9kZS5HUkVBVEVSX1RIQU4sIEZpbHRlck1hdGNoTW9kZS5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9dLFxuICAgICAgICBkYXRlOiBbRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVMsIEZpbHRlck1hdGNoTW9kZS5EQVRFX0lTX05PVCwgRmlsdGVyTWF0Y2hNb2RlLkRBVEVfQkVGT1JFLCBGaWx0ZXJNYXRjaE1vZGUuREFURV9BRlRFUl1cbiAgICB9O1xuXG4gICAgcHVibGljIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbiA9IHtcbiAgICAgICAgc3RhcnRzV2l0aDogJ1N0YXJ0cyB3aXRoJyxcbiAgICAgICAgY29udGFpbnM6ICdDb250YWlucycsXG4gICAgICAgIG5vdENvbnRhaW5zOiAnTm90IGNvbnRhaW5zJyxcbiAgICAgICAgZW5kc1dpdGg6ICdFbmRzIHdpdGgnLFxuICAgICAgICBlcXVhbHM6ICdFcXVhbHMnLFxuICAgICAgICBub3RFcXVhbHM6ICdOb3QgZXF1YWxzJyxcbiAgICAgICAgbm9GaWx0ZXI6ICdObyBGaWx0ZXInLFxuICAgICAgICBsdDogJ0xlc3MgdGhhbicsXG4gICAgICAgIGx0ZTogJ0xlc3MgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgICAgIGd0OiAnR3JlYXRlciB0aGFuJyxcbiAgICAgICAgZ3RlOiAnR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICAgICAgaXM6ICdJcycsXG4gICAgICAgIGlzTm90OiAnSXMgbm90JyxcbiAgICAgICAgYmVmb3JlOiAnQmVmb3JlJyxcbiAgICAgICAgYWZ0ZXI6ICdBZnRlcicsXG4gICAgICAgIGRhdGVJczogJ0RhdGUgaXMnLFxuICAgICAgICBkYXRlSXNOb3Q6ICdEYXRlIGlzIG5vdCcsXG4gICAgICAgIGRhdGVCZWZvcmU6ICdEYXRlIGlzIGJlZm9yZScsXG4gICAgICAgIGRhdGVBZnRlcjogJ0RhdGUgaXMgYWZ0ZXInLFxuICAgICAgICBjbGVhcjogJ0NsZWFyJyxcbiAgICAgICAgYXBwbHk6ICdBcHBseScsXG4gICAgICAgIG1hdGNoQWxsOiAnTWF0Y2ggQWxsJyxcbiAgICAgICAgbWF0Y2hBbnk6ICdNYXRjaCBBbnknLFxuICAgICAgICBhZGRSdWxlOiAnQWRkIFJ1bGUnLFxuICAgICAgICByZW1vdmVSdWxlOiAnUmVtb3ZlIFJ1bGUnLFxuICAgICAgICBhY2NlcHQ6ICdZZXMnLFxuICAgICAgICByZWplY3Q6ICdObycsXG4gICAgICAgIGNob29zZTogJ0Nob29zZScsXG4gICAgICAgIHVwbG9hZDogJ1VwbG9hZCcsXG4gICAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICAgIHBlbmRpbmc6ICdQZW5kaW5nJyxcbiAgICAgICAgZmlsZVNpemVUeXBlczogWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ10sXG4gICAgICAgIGRheU5hbWVzOiBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5J10sXG4gICAgICAgIGRheU5hbWVzU2hvcnQ6IFsnU3VuJywgJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0J10sXG4gICAgICAgIGRheU5hbWVzTWluOiBbJ1N1JywgJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJ10sXG4gICAgICAgIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddLFxuICAgICAgICBtb250aE5hbWVzU2hvcnQ6IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXSxcbiAgICAgICAgY2hvb3NlWWVhcjogJ0Nob29zZSBZZWFyJyxcbiAgICAgICAgY2hvb3NlTW9udGg6ICdDaG9vc2UgTW9udGgnLFxuICAgICAgICBjaG9vc2VEYXRlOiAnQ2hvb3NlIERhdGUnLFxuICAgICAgICBwcmV2RGVjYWRlOiAnUHJldmlvdXMgRGVjYWRlJyxcbiAgICAgICAgbmV4dERlY2FkZTogJ05leHQgRGVjYWRlJyxcbiAgICAgICAgcHJldlllYXI6ICdQcmV2aW91cyBZZWFyJyxcbiAgICAgICAgbmV4dFllYXI6ICdOZXh0IFllYXInLFxuICAgICAgICBwcmV2TW9udGg6ICdQcmV2aW91cyBNb250aCcsXG4gICAgICAgIG5leHRNb250aDogJ05leHQgTW9udGgnLFxuICAgICAgICBwcmV2SG91cjogJ1ByZXZpb3VzIEhvdXInLFxuICAgICAgICBuZXh0SG91cjogJ05leHQgSG91cicsXG4gICAgICAgIHByZXZNaW51dGU6ICdQcmV2aW91cyBNaW51dGUnLFxuICAgICAgICBuZXh0TWludXRlOiAnTmV4dCBNaW51dGUnLFxuICAgICAgICBwcmV2U2Vjb25kOiAnUHJldmlvdXMgU2Vjb25kJyxcbiAgICAgICAgbmV4dFNlY29uZDogJ05leHQgU2Vjb25kJyxcbiAgICAgICAgYW06ICdhbScsXG4gICAgICAgIHBtOiAncG0nLFxuICAgICAgICBkYXRlRm9ybWF0OiAnbW0vZGQveXknLFxuICAgICAgICBmaXJzdERheU9mV2VlazogMCxcbiAgICAgICAgdG9kYXk6ICdUb2RheScsXG4gICAgICAgIHdlZWtIZWFkZXI6ICdXaycsXG4gICAgICAgIHdlYWs6ICdXZWFrJyxcbiAgICAgICAgbWVkaXVtOiAnTWVkaXVtJyxcbiAgICAgICAgc3Ryb25nOiAnU3Ryb25nJyxcbiAgICAgICAgcGFzc3dvcmRQcm9tcHQ6ICdFbnRlciBhIHBhc3N3b3JkJyxcbiAgICAgICAgZW1wdHlNZXNzYWdlOiAnTm8gcmVzdWx0cyBmb3VuZCcsXG4gICAgICAgIHNlYXJjaE1lc3NhZ2U6ICdTZWFyY2ggcmVzdWx0cyBhcmUgYXZhaWxhYmxlJyxcbiAgICAgICAgc2VsZWN0aW9uTWVzc2FnZTogJ3swfSBpdGVtcyBzZWxlY3RlZCcsXG4gICAgICAgIGVtcHR5U2VsZWN0aW9uTWVzc2FnZTogJ05vIHNlbGVjdGVkIGl0ZW0nLFxuICAgICAgICBlbXB0eVNlYXJjaE1lc3NhZ2U6ICdObyByZXN1bHRzIGZvdW5kJyxcbiAgICAgICAgZW1wdHlGaWx0ZXJNZXNzYWdlOiAnTm8gcmVzdWx0cyBmb3VuZCcsXG4gICAgICAgIGZpbGVDaG9zZW5NZXNzYWdlOiAnRmlsZXMnLFxuICAgICAgICBub0ZpbGVDaG9zZW5NZXNzYWdlOiAnTm8gZmlsZSBjaG9zZW4nLFxuICAgICAgICBhcmlhOiB7XG4gICAgICAgICAgICB0cnVlTGFiZWw6ICdUcnVlJyxcbiAgICAgICAgICAgIGZhbHNlTGFiZWw6ICdGYWxzZScsXG4gICAgICAgICAgICBudWxsTGFiZWw6ICdOb3QgU2VsZWN0ZWQnLFxuICAgICAgICAgICAgc3RhcjogJzEgc3RhcicsXG4gICAgICAgICAgICBzdGFyczogJ3tzdGFyfSBzdGFycycsXG4gICAgICAgICAgICBzZWxlY3RBbGw6ICdBbGwgaXRlbXMgc2VsZWN0ZWQnLFxuICAgICAgICAgICAgdW5zZWxlY3RBbGw6ICdBbGwgaXRlbXMgdW5zZWxlY3RlZCcsXG4gICAgICAgICAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICAgICAgICAgIHByZXZpb3VzOiAnUHJldmlvdXMnLFxuICAgICAgICAgICAgbmV4dDogJ05leHQnLFxuICAgICAgICAgICAgbmF2aWdhdGlvbjogJ05hdmlnYXRpb24nLFxuICAgICAgICAgICAgc2Nyb2xsVG9wOiAnU2Nyb2xsIFRvcCcsXG4gICAgICAgICAgICBtb3ZlVG9wOiAnTW92ZSBUb3AnLFxuICAgICAgICAgICAgbW92ZVVwOiAnTW92ZSBVcCcsXG4gICAgICAgICAgICBtb3ZlRG93bjogJ01vdmUgRG93bicsXG4gICAgICAgICAgICBtb3ZlQm90dG9tOiAnTW92ZSBCb3R0b20nLFxuICAgICAgICAgICAgbW92ZVRvVGFyZ2V0OiAnTW92ZSB0byBUYXJnZXQnLFxuICAgICAgICAgICAgbW92ZVRvU291cmNlOiAnTW92ZSB0byBTb3VyY2UnLFxuICAgICAgICAgICAgbW92ZUFsbFRvVGFyZ2V0OiAnTW92ZSBBbGwgdG8gVGFyZ2V0JyxcbiAgICAgICAgICAgIG1vdmVBbGxUb1NvdXJjZTogJ01vdmUgQWxsIHRvIFNvdXJjZScsXG4gICAgICAgICAgICBwYWdlTGFiZWw6ICd7cGFnZX0nLFxuICAgICAgICAgICAgZmlyc3RQYWdlTGFiZWw6ICdGaXJzdCBQYWdlJyxcbiAgICAgICAgICAgIGxhc3RQYWdlTGFiZWw6ICdMYXN0IFBhZ2UnLFxuICAgICAgICAgICAgbmV4dFBhZ2VMYWJlbDogJ05leHQgUGFnZScsXG4gICAgICAgICAgICBwcmV2UGFnZUxhYmVsOiAnUHJldmlvdXMgUGFnZScsXG4gICAgICAgICAgICByb3dzUGVyUGFnZUxhYmVsOiAnUm93cyBwZXIgcGFnZScsXG4gICAgICAgICAgICBwcmV2aW91c1BhZ2VMYWJlbDogJ1ByZXZpb3VzIFBhZ2UnLFxuICAgICAgICAgICAganVtcFRvUGFnZURyb3Bkb3duTGFiZWw6ICdKdW1wIHRvIFBhZ2UgRHJvcGRvd24nLFxuICAgICAgICAgICAganVtcFRvUGFnZUlucHV0TGFiZWw6ICdKdW1wIHRvIFBhZ2UgSW5wdXQnLFxuICAgICAgICAgICAgc2VsZWN0Um93OiAnUm93IFNlbGVjdGVkJyxcbiAgICAgICAgICAgIHVuc2VsZWN0Um93OiAnUm93IFVuc2VsZWN0ZWQnLFxuICAgICAgICAgICAgZXhwYW5kUm93OiAnUm93IEV4cGFuZGVkJyxcbiAgICAgICAgICAgIGNvbGxhcHNlUm93OiAnUm93IENvbGxhcHNlZCcsXG4gICAgICAgICAgICBzaG93RmlsdGVyTWVudTogJ1Nob3cgRmlsdGVyIE1lbnUnLFxuICAgICAgICAgICAgaGlkZUZpbHRlck1lbnU6ICdIaWRlIEZpbHRlciBNZW51JyxcbiAgICAgICAgICAgIGZpbHRlck9wZXJhdG9yOiAnRmlsdGVyIE9wZXJhdG9yJyxcbiAgICAgICAgICAgIGZpbHRlckNvbnN0cmFpbnQ6ICdGaWx0ZXIgQ29uc3RyYWludCcsXG4gICAgICAgICAgICBlZGl0Um93OiAnUm93IEVkaXQnLFxuICAgICAgICAgICAgc2F2ZUVkaXQ6ICdTYXZlIEVkaXQnLFxuICAgICAgICAgICAgY2FuY2VsRWRpdDogJ0NhbmNlbCBFZGl0JyxcbiAgICAgICAgICAgIGxpc3RWaWV3OiAnTGlzdCBWaWV3JyxcbiAgICAgICAgICAgIGdyaWRWaWV3OiAnR3JpZCBWaWV3JyxcbiAgICAgICAgICAgIHNsaWRlOiAnU2xpZGUnLFxuICAgICAgICAgICAgc2xpZGVOdW1iZXI6ICd7c2xpZGVOdW1iZXJ9JyxcbiAgICAgICAgICAgIHpvb21JbWFnZTogJ1pvb20gSW1hZ2UnLFxuICAgICAgICAgICAgem9vbUluOiAnWm9vbSBJbicsXG4gICAgICAgICAgICB6b29tT3V0OiAnWm9vbSBPdXQnLFxuICAgICAgICAgICAgcm90YXRlUmlnaHQ6ICdSb3RhdGUgUmlnaHQnLFxuICAgICAgICAgICAgcm90YXRlTGVmdDogJ1JvdGF0ZSBMZWZ0JyxcbiAgICAgICAgICAgIGxpc3RMYWJlbDogJ09wdGlvbiBMaXN0JyxcbiAgICAgICAgICAgIHNlbGVjdENvbG9yOiAnU2VsZWN0IGEgY29sb3InLFxuICAgICAgICAgICAgcmVtb3ZlTGFiZWw6ICdSZW1vdmUnLFxuICAgICAgICAgICAgYnJvd3NlRmlsZXM6ICdCcm93c2UgRmlsZXMnLFxuICAgICAgICAgICAgbWF4aW1pemVMYWJlbDogJ01heGltaXplJ1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHpJbmRleDogWkluZGV4ID0ge1xuICAgICAgICBtb2RhbDogMTEwMCxcbiAgICAgICAgb3ZlcmxheTogMTAwMCxcbiAgICAgICAgbWVudTogMTAwMCxcbiAgICAgICAgdG9vbHRpcDogMTEwMFxuICAgIH07XG5cbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU291cmNlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgdHJhbnNsYXRpb25PYnNlcnZlciA9IHRoaXMudHJhbnNsYXRpb25Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uW2tleSBhcyBrZXlvZiB0eXBlb2YgdGhpcy50cmFuc2xhdGlvbl07XG4gICAgfVxuXG4gICAgc2V0VHJhbnNsYXRpb24odmFsdWU6IFRyYW5zbGF0aW9uKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRpb24gPSB7IC4uLnRoaXMudHJhbnNsYXRpb24sIC4uLnZhbHVlIH07XG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25Tb3VyY2UubmV4dCh0aGlzLnRyYW5zbGF0aW9uKTtcbiAgICB9XG5cbiAgICBzZXRDb25maWcoY29uZmlnOiBQcmltZU5HQ29uZmlnVHlwZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGNzcCwgcmlwcGxlLCBpbnB1dFN0eWxlLCB0aGVtZSwgb3ZlcmxheU9wdGlvbnMsIHRyYW5zbGF0aW9uIH0gPSBjb25maWcgfHwge307XG5cbiAgICAgICAgaWYgKGNzcCkgdGhpcy5jc3Auc2V0KGNzcCk7XG4gICAgICAgIGlmIChyaXBwbGUpIHRoaXMucmlwcGxlLnNldChyaXBwbGUpO1xuICAgICAgICBpZiAoaW5wdXRTdHlsZSkgdGhpcy5pbnB1dFN0eWxlLnNldChpbnB1dFN0eWxlKTtcbiAgICAgICAgaWYgKG92ZXJsYXlPcHRpb25zKSB0aGlzLm92ZXJsYXlPcHRpb25zID0gb3ZlcmxheU9wdGlvbnM7XG4gICAgICAgIGlmICh0cmFuc2xhdGlvbikgdGhpcy5zZXRUcmFuc2xhdGlvbih0cmFuc2xhdGlvbik7XG5cbiAgICAgICAgaWYgKHRoZW1lKVxuICAgICAgICAgICAgdGhpcy5zZXRUaGVtZUNvbmZpZyh7XG4gICAgICAgICAgICAgICAgdGhlbWVcbiAgICAgICAgICAgIH0gYXMgVGhlbWVDb25maWdUeXBlKTtcbiAgICB9XG59XG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWVuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvcHJpbWVuZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQStCLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFtQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFxQmpFLE1BQU0sT0FBTyxPQUFRLFNBQVEsYUFBYTtJQUN0QyxNQUFNLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRXpCLFVBQVUsR0FBUSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFN0MsVUFBVSxHQUFHLE1BQU0sQ0FBd0IsVUFBVSxDQUFDLENBQUM7SUFFdkQsWUFBWSxHQUFHLE1BQU0sQ0FBd0IsVUFBVSxDQUFDLENBQUM7SUFFekQsY0FBYyxHQUFtQixFQUFFLENBQUM7SUFFcEMsR0FBRyxHQUFHLE1BQU0sQ0FBZ0MsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUVsRSxzQkFBc0IsR0FBRztRQUNyQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUMxSyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMscUJBQXFCLEVBQUUsZUFBZSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsd0JBQXdC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YWJsZSwgUExBVEZPUk1fSUQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyTWF0Y2hNb2RlLCBPdmVybGF5T3B0aW9ucywgVHJhbnNsYXRpb24gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaGVtZUNvbmZpZ1R5cGUsIFRoZW1lUHJvdmlkZXIgfSBmcm9tICcuL3RoZW1lcHJvdmlkZXInO1xuXG4vLyBUeXBlIGZvciB6SW5kZXhcbmV4cG9ydCB0eXBlIFpJbmRleCA9IHtcbiAgICBtb2RhbDogbnVtYmVyO1xuICAgIG92ZXJsYXk6IG51bWJlcjtcbiAgICBtZW51OiBudW1iZXI7XG4gICAgdG9vbHRpcDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgUHJpbWVOR0NvbmZpZ1R5cGUgPSB7XG4gICAgcmlwcGxlPzogYm9vbGVhbjtcbiAgICBpbnB1dFN0eWxlPzogJ291dGxpbmVkJyB8ICdmaWxsZWQnO1xuICAgIGNzcD86IHtcbiAgICAgICAgbm9uY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB9O1xuICAgIG92ZXJsYXlPcHRpb25zPzogT3ZlcmxheU9wdGlvbnM7XG4gICAgdHJhbnNsYXRpb24/OiBUcmFuc2xhdGlvbjtcbn0gJiBUaGVtZUNvbmZpZ1R5cGU7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUHJpbWVORyBleHRlbmRzIFRoZW1lUHJvdmlkZXIge1xuICAgIHJpcHBsZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwdWJsaWMgcGxhdGZvcm1JZDogYW55ID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAgIGlucHV0U3R5bGUgPSBzaWduYWw8J291dGxpbmVkJyB8ICdmaWxsZWQnPignb3V0bGluZWQnKTtcblxuICAgIGlucHV0VmFyaWFudCA9IHNpZ25hbDwnb3V0bGluZWQnIHwgJ2ZpbGxlZCc+KCdvdXRsaW5lZCcpO1xuXG4gICAgb3ZlcmxheU9wdGlvbnM6IE92ZXJsYXlPcHRpb25zID0ge307XG5cbiAgICBjc3AgPSBzaWduYWw8eyBub25jZTogc3RyaW5nIHwgdW5kZWZpbmVkIH0+KHsgbm9uY2U6IHVuZGVmaW5lZCB9KTtcblxuICAgIGZpbHRlck1hdGNoTW9kZU9wdGlvbnMgPSB7XG4gICAgICAgIHRleHQ6IFtGaWx0ZXJNYXRjaE1vZGUuU1RBUlRTX1dJVEgsIEZpbHRlck1hdGNoTW9kZS5DT05UQUlOUywgRmlsdGVyTWF0Y2hNb2RlLk5PVF9DT05UQUlOUywgRmlsdGVyTWF0Y2hNb2RlLkVORFNfV0lUSCwgRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUywgRmlsdGVyTWF0Y2hNb2RlLk5PVF9FUVVBTFNdLFxuICAgICAgICBudW1lcmljOiBbRmlsdGVyTWF0Y2hNb2RlLkVRVUFMUywgRmlsdGVyTWF0Y2hNb2RlLk5PVF9FUVVBTFMsIEZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU4sIEZpbHRlck1hdGNoTW9kZS5MRVNTX1RIQU5fT1JfRVFVQUxfVE8sIEZpbHRlck1hdGNoTW9kZS5HUkVBVEVSX1RIQU4sIEZpbHRlck1hdGNoTW9kZS5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9dLFxuICAgICAgICBkYXRlOiBbRmlsdGVyTWF0Y2hNb2RlLkRBVEVfSVMsIEZpbHRlck1hdGNoTW9kZS5EQVRFX0lTX05PVCwgRmlsdGVyTWF0Y2hNb2RlLkRBVEVfQkVGT1JFLCBGaWx0ZXJNYXRjaE1vZGUuREFURV9BRlRFUl1cbiAgICB9O1xuXG4gICAgcHVibGljIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvbiA9IHtcbiAgICAgICAgc3RhcnRzV2l0aDogJ1N0YXJ0cyB3aXRoJyxcbiAgICAgICAgY29udGFpbnM6ICdDb250YWlucycsXG4gICAgICAgIG5vdENvbnRhaW5zOiAnTm90IGNvbnRhaW5zJyxcbiAgICAgICAgZW5kc1dpdGg6ICdFbmRzIHdpdGgnLFxuICAgICAgICBlcXVhbHM6ICdFcXVhbHMnLFxuICAgICAgICBub3RFcXVhbHM6ICdOb3QgZXF1YWxzJyxcbiAgICAgICAgbm9GaWx0ZXI6ICdObyBGaWx0ZXInLFxuICAgICAgICBsdDogJ0xlc3MgdGhhbicsXG4gICAgICAgIGx0ZTogJ0xlc3MgdGhhbiBvciBlcXVhbCB0bycsXG4gICAgICAgIGd0OiAnR3JlYXRlciB0aGFuJyxcbiAgICAgICAgZ3RlOiAnR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvJyxcbiAgICAgICAgaXM6ICdJcycsXG4gICAgICAgIGlzTm90OiAnSXMgbm90JyxcbiAgICAgICAgYmVmb3JlOiAnQmVmb3JlJyxcbiAgICAgICAgYWZ0ZXI6ICdBZnRlcicsXG4gICAgICAgIGRhdGVJczogJ0RhdGUgaXMnLFxuICAgICAgICBkYXRlSXNOb3Q6ICdEYXRlIGlzIG5vdCcsXG4gICAgICAgIGRhdGVCZWZvcmU6ICdEYXRlIGlzIGJlZm9yZScsXG4gICAgICAgIGRhdGVBZnRlcjogJ0RhdGUgaXMgYWZ0ZXInLFxuICAgICAgICBjbGVhcjogJ0NsZWFyJyxcbiAgICAgICAgYXBwbHk6ICdBcHBseScsXG4gICAgICAgIG1hdGNoQWxsOiAnTWF0Y2ggQWxsJyxcbiAgICAgICAgbWF0Y2hBbnk6ICdNYXRjaCBBbnknLFxuICAgICAgICBhZGRSdWxlOiAnQWRkIFJ1bGUnLFxuICAgICAgICByZW1vdmVSdWxlOiAnUmVtb3ZlIFJ1bGUnLFxuICAgICAgICBhY2NlcHQ6ICdZZXMnLFxuICAgICAgICByZWplY3Q6ICdObycsXG4gICAgICAgIGNob29zZTogJ0Nob29zZScsXG4gICAgICAgIHVwbG9hZDogJ1VwbG9hZCcsXG4gICAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICAgIHBlbmRpbmc6ICdQZW5kaW5nJyxcbiAgICAgICAgZmlsZVNpemVUeXBlczogWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ10sXG4gICAgICAgIGRheU5hbWVzOiBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5J10sXG4gICAgICAgIGRheU5hbWVzU2hvcnQ6IFsnU3VuJywgJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0J10sXG4gICAgICAgIGRheU5hbWVzTWluOiBbJ1N1JywgJ01vJywgJ1R1JywgJ1dlJywgJ1RoJywgJ0ZyJywgJ1NhJ10sXG4gICAgICAgIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddLFxuICAgICAgICBtb250aE5hbWVzU2hvcnQ6IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXSxcbiAgICAgICAgY2hvb3NlWWVhcjogJ0Nob29zZSBZZWFyJyxcbiAgICAgICAgY2hvb3NlTW9udGg6ICdDaG9vc2UgTW9udGgnLFxuICAgICAgICBjaG9vc2VEYXRlOiAnQ2hvb3NlIERhdGUnLFxuICAgICAgICBwcmV2RGVjYWRlOiAnUHJldmlvdXMgRGVjYWRlJyxcbiAgICAgICAgbmV4dERlY2FkZTogJ05leHQgRGVjYWRlJyxcbiAgICAgICAgcHJldlllYXI6ICdQcmV2aW91cyBZZWFyJyxcbiAgICAgICAgbmV4dFllYXI6ICdOZXh0IFllYXInLFxuICAgICAgICBwcmV2TW9udGg6ICdQcmV2aW91cyBNb250aCcsXG4gICAgICAgIG5leHRNb250aDogJ05leHQgTW9udGgnLFxuICAgICAgICBwcmV2SG91cjogJ1ByZXZpb3VzIEhvdXInLFxuICAgICAgICBuZXh0SG91cjogJ05leHQgSG91cicsXG4gICAgICAgIHByZXZNaW51dGU6ICdQcmV2aW91cyBNaW51dGUnLFxuICAgICAgICBuZXh0TWludXRlOiAnTmV4dCBNaW51dGUnLFxuICAgICAgICBwcmV2U2Vjb25kOiAnUHJldmlvdXMgU2Vjb25kJyxcbiAgICAgICAgbmV4dFNlY29uZDogJ05leHQgU2Vjb25kJyxcbiAgICAgICAgYW06ICdhbScsXG4gICAgICAgIHBtOiAncG0nLFxuICAgICAgICBkYXRlRm9ybWF0OiAnbW0vZGQveXknLFxuICAgICAgICBmaXJzdERheU9mV2VlazogMCxcbiAgICAgICAgdG9kYXk6ICdUb2RheScsXG4gICAgICAgIHdlZWtIZWFkZXI6ICdXaycsXG4gICAgICAgIHdlYWs6ICdXZWFrJyxcbiAgICAgICAgbWVkaXVtOiAnTWVkaXVtJyxcbiAgICAgICAgc3Ryb25nOiAnU3Ryb25nJyxcbiAgICAgICAgcGFzc3dvcmRQcm9tcHQ6ICdFbnRlciBhIHBhc3N3b3JkJyxcbiAgICAgICAgZW1wdHlNZXNzYWdlOiAnTm8gcmVzdWx0cyBmb3VuZCcsXG4gICAgICAgIHNlYXJjaE1lc3NhZ2U6ICdTZWFyY2ggcmVzdWx0cyBhcmUgYXZhaWxhYmxlJyxcbiAgICAgICAgc2VsZWN0aW9uTWVzc2FnZTogJ3swfSBpdGVtcyBzZWxlY3RlZCcsXG4gICAgICAgIGVtcHR5U2VsZWN0aW9uTWVzc2FnZTogJ05vIHNlbGVjdGVkIGl0ZW0nLFxuICAgICAgICBlbXB0eVNlYXJjaE1lc3NhZ2U6ICdObyByZXN1bHRzIGZvdW5kJyxcbiAgICAgICAgZW1wdHlGaWx0ZXJNZXNzYWdlOiAnTm8gcmVzdWx0cyBmb3VuZCcsXG4gICAgICAgIGZpbGVDaG9zZW5NZXNzYWdlOiAnRmlsZXMnLFxuICAgICAgICBub0ZpbGVDaG9zZW5NZXNzYWdlOiAnTm8gZmlsZSBjaG9zZW4nLFxuICAgICAgICBhcmlhOiB7XG4gICAgICAgICAgICB0cnVlTGFiZWw6ICdUcnVlJyxcbiAgICAgICAgICAgIGZhbHNlTGFiZWw6ICdGYWxzZScsXG4gICAgICAgICAgICBudWxsTGFiZWw6ICdOb3QgU2VsZWN0ZWQnLFxuICAgICAgICAgICAgc3RhcjogJzEgc3RhcicsXG4gICAgICAgICAgICBzdGFyczogJ3tzdGFyfSBzdGFycycsXG4gICAgICAgICAgICBzZWxlY3RBbGw6ICdBbGwgaXRlbXMgc2VsZWN0ZWQnLFxuICAgICAgICAgICAgdW5zZWxlY3RBbGw6ICdBbGwgaXRlbXMgdW5zZWxlY3RlZCcsXG4gICAgICAgICAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICAgICAgICAgIHByZXZpb3VzOiAnUHJldmlvdXMnLFxuICAgICAgICAgICAgbmV4dDogJ05leHQnLFxuICAgICAgICAgICAgbmF2aWdhdGlvbjogJ05hdmlnYXRpb24nLFxuICAgICAgICAgICAgc2Nyb2xsVG9wOiAnU2Nyb2xsIFRvcCcsXG4gICAgICAgICAgICBtb3ZlVG9wOiAnTW92ZSBUb3AnLFxuICAgICAgICAgICAgbW92ZVVwOiAnTW92ZSBVcCcsXG4gICAgICAgICAgICBtb3ZlRG93bjogJ01vdmUgRG93bicsXG4gICAgICAgICAgICBtb3ZlQm90dG9tOiAnTW92ZSBCb3R0b20nLFxuICAgICAgICAgICAgbW92ZVRvVGFyZ2V0OiAnTW92ZSB0byBUYXJnZXQnLFxuICAgICAgICAgICAgbW92ZVRvU291cmNlOiAnTW92ZSB0byBTb3VyY2UnLFxuICAgICAgICAgICAgbW92ZUFsbFRvVGFyZ2V0OiAnTW92ZSBBbGwgdG8gVGFyZ2V0JyxcbiAgICAgICAgICAgIG1vdmVBbGxUb1NvdXJjZTogJ01vdmUgQWxsIHRvIFNvdXJjZScsXG4gICAgICAgICAgICBwYWdlTGFiZWw6ICd7cGFnZX0nLFxuICAgICAgICAgICAgZmlyc3RQYWdlTGFiZWw6ICdGaXJzdCBQYWdlJyxcbiAgICAgICAgICAgIGxhc3RQYWdlTGFiZWw6ICdMYXN0IFBhZ2UnLFxuICAgICAgICAgICAgbmV4dFBhZ2VMYWJlbDogJ05leHQgUGFnZScsXG4gICAgICAgICAgICBwcmV2UGFnZUxhYmVsOiAnUHJldmlvdXMgUGFnZScsXG4gICAgICAgICAgICByb3dzUGVyUGFnZUxhYmVsOiAnUm93cyBwZXIgcGFnZScsXG4gICAgICAgICAgICBwcmV2aW91c1BhZ2VMYWJlbDogJ1ByZXZpb3VzIFBhZ2UnLFxuICAgICAgICAgICAganVtcFRvUGFnZURyb3Bkb3duTGFiZWw6ICdKdW1wIHRvIFBhZ2UgRHJvcGRvd24nLFxuICAgICAgICAgICAganVtcFRvUGFnZUlucHV0TGFiZWw6ICdKdW1wIHRvIFBhZ2UgSW5wdXQnLFxuICAgICAgICAgICAgc2VsZWN0Um93OiAnUm93IFNlbGVjdGVkJyxcbiAgICAgICAgICAgIHVuc2VsZWN0Um93OiAnUm93IFVuc2VsZWN0ZWQnLFxuICAgICAgICAgICAgZXhwYW5kUm93OiAnUm93IEV4cGFuZGVkJyxcbiAgICAgICAgICAgIGNvbGxhcHNlUm93OiAnUm93IENvbGxhcHNlZCcsXG4gICAgICAgICAgICBzaG93RmlsdGVyTWVudTogJ1Nob3cgRmlsdGVyIE1lbnUnLFxuICAgICAgICAgICAgaGlkZUZpbHRlck1lbnU6ICdIaWRlIEZpbHRlciBNZW51JyxcbiAgICAgICAgICAgIGZpbHRlck9wZXJhdG9yOiAnRmlsdGVyIE9wZXJhdG9yJyxcbiAgICAgICAgICAgIGZpbHRlckNvbnN0cmFpbnQ6ICdGaWx0ZXIgQ29uc3RyYWludCcsXG4gICAgICAgICAgICBlZGl0Um93OiAnUm93IEVkaXQnLFxuICAgICAgICAgICAgc2F2ZUVkaXQ6ICdTYXZlIEVkaXQnLFxuICAgICAgICAgICAgY2FuY2VsRWRpdDogJ0NhbmNlbCBFZGl0JyxcbiAgICAgICAgICAgIGxpc3RWaWV3OiAnTGlzdCBWaWV3JyxcbiAgICAgICAgICAgIGdyaWRWaWV3OiAnR3JpZCBWaWV3JyxcbiAgICAgICAgICAgIHNsaWRlOiAnU2xpZGUnLFxuICAgICAgICAgICAgc2xpZGVOdW1iZXI6ICd7c2xpZGVOdW1iZXJ9JyxcbiAgICAgICAgICAgIHpvb21JbWFnZTogJ1pvb20gSW1hZ2UnLFxuICAgICAgICAgICAgem9vbUluOiAnWm9vbSBJbicsXG4gICAgICAgICAgICB6b29tT3V0OiAnWm9vbSBPdXQnLFxuICAgICAgICAgICAgcm90YXRlUmlnaHQ6ICdSb3RhdGUgUmlnaHQnLFxuICAgICAgICAgICAgcm90YXRlTGVmdDogJ1JvdGF0ZSBMZWZ0JyxcbiAgICAgICAgICAgIGxpc3RMYWJlbDogJ09wdGlvbiBMaXN0JyxcbiAgICAgICAgICAgIHNlbGVjdENvbG9yOiAnU2VsZWN0IGEgY29sb3InLFxuICAgICAgICAgICAgcmVtb3ZlTGFiZWw6ICdSZW1vdmUnLFxuICAgICAgICAgICAgYnJvd3NlRmlsZXM6ICdCcm93c2UgRmlsZXMnLFxuICAgICAgICAgICAgbWF4aW1pemVMYWJlbDogJ01heGltaXplJyxcbiAgICAgICAgICAgIG1pbmltaXplTGFiZWw6ICdNaW5pbWl6ZSdcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICB6SW5kZXg6IFpJbmRleCA9IHtcbiAgICAgICAgbW9kYWw6IDExMDAsXG4gICAgICAgIG92ZXJsYXk6IDEwMDAsXG4gICAgICAgIG1lbnU6IDEwMDAsXG4gICAgICAgIHRvb2x0aXA6IDExMDBcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNvdXJjZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIHRyYW5zbGF0aW9uT2JzZXJ2ZXIgPSB0aGlzLnRyYW5zbGF0aW9uU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbltrZXkgYXMga2V5b2YgdHlwZW9mIHRoaXMudHJhbnNsYXRpb25dO1xuICAgIH1cblxuICAgIHNldFRyYW5zbGF0aW9uKHZhbHVlOiBUcmFuc2xhdGlvbikge1xuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uID0geyAuLi50aGlzLnRyYW5zbGF0aW9uLCAuLi52YWx1ZSB9O1xuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU291cmNlLm5leHQodGhpcy50cmFuc2xhdGlvbik7XG4gICAgfVxuXG4gICAgc2V0Q29uZmlnKGNvbmZpZzogUHJpbWVOR0NvbmZpZ1R5cGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBjc3AsIHJpcHBsZSwgaW5wdXRTdHlsZSwgdGhlbWUsIG92ZXJsYXlPcHRpb25zLCB0cmFuc2xhdGlvbiB9ID0gY29uZmlnIHx8IHt9O1xuXG4gICAgICAgIGlmIChjc3ApIHRoaXMuY3NwLnNldChjc3ApO1xuICAgICAgICBpZiAocmlwcGxlKSB0aGlzLnJpcHBsZS5zZXQocmlwcGxlKTtcbiAgICAgICAgaWYgKGlucHV0U3R5bGUpIHRoaXMuaW5wdXRTdHlsZS5zZXQoaW5wdXRTdHlsZSk7XG4gICAgICAgIGlmIChvdmVybGF5T3B0aW9ucykgdGhpcy5vdmVybGF5T3B0aW9ucyA9IG92ZXJsYXlPcHRpb25zO1xuICAgICAgICBpZiAodHJhbnNsYXRpb24pIHRoaXMuc2V0VHJhbnNsYXRpb24odHJhbnNsYXRpb24pO1xuXG4gICAgICAgIGlmICh0aGVtZSlcbiAgICAgICAgICAgIHRoaXMuc2V0VGhlbWVDb25maWcoe1xuICAgICAgICAgICAgICAgIHRoZW1lXG4gICAgICAgICAgICB9IGFzIFRoZW1lQ29uZmlnVHlwZSk7XG4gICAgfVxufVxuIl19
@@ -449,6 +449,7 @@ export class ConfirmDialog extends BaseComponent {
449
449
  return;
450
450
  }
451
451
  if (confirmation.key === this.key) {
452
+ this.resetConfirmationOptionsToDefault();
452
453
  this.confirmation = confirmation;
453
454
  const keys = Object.keys(confirmation);
454
455
  keys.forEach((key) => {
@@ -616,6 +617,40 @@ export class ConfirmDialog extends BaseComponent {
616
617
  getRejectButtonProps() {
617
618
  return this.option('rejectButtonProps');
618
619
  }
620
+ resetConfirmationOptionsToDefault() {
621
+ this.header = undefined;
622
+ this.icon = undefined;
623
+ this.message = undefined;
624
+ this.style = undefined;
625
+ this.styleClass = undefined;
626
+ this.maskStyleClass = undefined;
627
+ this.acceptIcon = undefined;
628
+ this.acceptLabel = undefined;
629
+ this.acceptAriaLabel = undefined;
630
+ this.rejectIcon = undefined;
631
+ this.rejectLabel = undefined;
632
+ this.rejectAriaLabel = undefined;
633
+ this.acceptVisible = true;
634
+ this.rejectVisible = true;
635
+ this.acceptButtonStyleClass = undefined;
636
+ this.rejectButtonStyleClass = undefined;
637
+ this.closeOnEscape = true;
638
+ this.dismissableMask = undefined;
639
+ this.blockScroll = true;
640
+ this.rtl = false;
641
+ this.closable = true;
642
+ this.appendTo = 'body';
643
+ this.key = undefined;
644
+ this.autoZIndex = true;
645
+ this.baseZIndex = 0;
646
+ this.transitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
647
+ this.focusTrap = true;
648
+ this.defaultFocus = 'accept';
649
+ this.breakpoints = undefined;
650
+ this.acceptButtonStyleClass = undefined;
651
+ this.rejectButtonStyleClass = undefined;
652
+ this.confirmation = null;
653
+ }
619
654
  static ɵfac = function ConfirmDialog_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ConfirmDialog)(i0.ɵɵdirectiveInject(i1.ConfirmationService), i0.ɵɵdirectiveInject(i0.NgZone)); };
620
655
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ConfirmDialog, selectors: [["p-confirmDialog"], ["p-confirmdialog"], ["p-confirm-dialog"]], contentQueries: function ConfirmDialog_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
621
656
  i0.ɵɵcontentQuery(dirIndex, Footer, 5);
@@ -638,7 +673,7 @@ export class ConfirmDialog extends BaseComponent {
638
673
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.iconTemplate = _t.first);
639
674
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headlessTemplate = _t.first);
640
675
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
641
- } }, inputs: { header: "header", icon: "icon", message: "message", style: "style", styleClass: "styleClass", maskStyleClass: "maskStyleClass", acceptIcon: "acceptIcon", acceptLabel: "acceptLabel", closeAriaLabel: "closeAriaLabel", acceptAriaLabel: "acceptAriaLabel", acceptVisible: [2, "acceptVisible", "acceptVisible", booleanAttribute], rejectIcon: "rejectIcon", rejectLabel: "rejectLabel", rejectAriaLabel: "rejectAriaLabel", rejectVisible: [2, "rejectVisible", "rejectVisible", booleanAttribute], acceptButtonStyleClass: "acceptButtonStyleClass", rejectButtonStyleClass: "rejectButtonStyleClass", closeOnEscape: [2, "closeOnEscape", "closeOnEscape", booleanAttribute], dismissableMask: [2, "dismissableMask", "dismissableMask", booleanAttribute], blockScroll: [2, "blockScroll", "blockScroll", booleanAttribute], rtl: [2, "rtl", "rtl", booleanAttribute], closable: [2, "closable", "closable", booleanAttribute], appendTo: "appendTo", key: "key", autoZIndex: [2, "autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: [2, "baseZIndex", "baseZIndex", numberAttribute], transitionOptions: "transitionOptions", focusTrap: [2, "focusTrap", "focusTrap", booleanAttribute], defaultFocus: "defaultFocus", breakpoints: "breakpoints", visible: "visible", position: "position" }, outputs: { onHide: "onHide" }, standalone: true, features: [i0.ɵɵProvidersFeature([ConfirmDialogStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c8, decls: 6, vars: 10, consts: [["dialog", ""], ["footer", ""], ["headless", ""], ["content", ""], ["header", ""], ["role", "alertdialog", 3, "visibleChange", "visible", "closable", "styleClass", "modal", "header", "closeOnEscape", "blockScroll", "appendTo", "position"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngClass"], [4, "ngTemplateOutlet"], [3, "ngClass", "class"], [3, "ngClass", "innerHTML"], [3, "ngClass", "class", 4, "ngIf"], [3, "label", "styleClass", "ariaLabel", "buttonProps", "onClick", 4, "ngIf"], [3, "onClick", "label", "styleClass", "ariaLabel", "buttonProps"], [3, "class"], [3, "class", 4, "ngIf"]], template: function ConfirmDialog_Template(rf, ctx) { if (rf & 1) {
676
+ } }, inputs: { header: "header", icon: "icon", message: "message", style: "style", styleClass: "styleClass", maskStyleClass: "maskStyleClass", acceptIcon: "acceptIcon", acceptLabel: "acceptLabel", closeAriaLabel: "closeAriaLabel", acceptAriaLabel: "acceptAriaLabel", acceptVisible: [2, "acceptVisible", "acceptVisible", booleanAttribute], rejectIcon: "rejectIcon", rejectLabel: "rejectLabel", rejectAriaLabel: "rejectAriaLabel", rejectVisible: [2, "rejectVisible", "rejectVisible", booleanAttribute], acceptButtonStyleClass: "acceptButtonStyleClass", rejectButtonStyleClass: "rejectButtonStyleClass", closeOnEscape: [2, "closeOnEscape", "closeOnEscape", booleanAttribute], dismissableMask: [2, "dismissableMask", "dismissableMask", booleanAttribute], blockScroll: [2, "blockScroll", "blockScroll", booleanAttribute], rtl: [2, "rtl", "rtl", booleanAttribute], closable: [2, "closable", "closable", booleanAttribute], appendTo: "appendTo", key: "key", autoZIndex: [2, "autoZIndex", "autoZIndex", booleanAttribute], baseZIndex: [2, "baseZIndex", "baseZIndex", numberAttribute], transitionOptions: "transitionOptions", focusTrap: [2, "focusTrap", "focusTrap", booleanAttribute], defaultFocus: "defaultFocus", breakpoints: "breakpoints", visible: "visible", position: "position" }, outputs: { onHide: "onHide" }, standalone: true, features: [i0.ɵɵProvidersFeature([ConfirmDialogStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c8, decls: 6, vars: 13, consts: [["dialog", ""], ["footer", ""], ["headless", ""], ["content", ""], ["header", ""], ["role", "alertdialog", 3, "visibleChange", "visible", "closable", "styleClass", "modal", "header", "closeOnEscape", "blockScroll", "appendTo", "position", "dismissableMask", "baseZIndex", "autoZIndex"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "ngClass"], [4, "ngTemplateOutlet"], [3, "ngClass", "class"], [3, "ngClass", "innerHTML"], [3, "ngClass", "class", 4, "ngIf"], [3, "label", "styleClass", "ariaLabel", "buttonProps", "onClick", 4, "ngIf"], [3, "onClick", "label", "styleClass", "ariaLabel", "buttonProps"], [3, "class"], [3, "class", 4, "ngIf"]], template: function ConfirmDialog_Template(rf, ctx) { if (rf & 1) {
642
677
  const _r1 = i0.ɵɵgetCurrentView();
643
678
  i0.ɵɵprojectionDef(_c7);
644
679
  i0.ɵɵelementStart(0, "p-dialog", 5, 0);
@@ -647,7 +682,7 @@ export class ConfirmDialog extends BaseComponent {
647
682
  i0.ɵɵelementEnd();
648
683
  } if (rf & 2) {
649
684
  i0.ɵɵtwoWayProperty("visible", ctx.visible);
650
- i0.ɵɵproperty("closable", ctx.option("closable"))("styleClass", ctx.cx("root"))("modal", true)("header", ctx.option("header"))("closeOnEscape", ctx.option("closeOnEscape"))("blockScroll", ctx.option("blockScroll"))("appendTo", ctx.option("appendTo"))("position", ctx.position);
685
+ i0.ɵɵproperty("closable", ctx.option("closable"))("styleClass", ctx.cx("root"))("modal", true)("header", ctx.option("header"))("closeOnEscape", ctx.option("closeOnEscape"))("blockScroll", ctx.option("blockScroll"))("appendTo", ctx.option("appendTo"))("position", ctx.position)("dismissableMask", ctx.dismissableMask)("baseZIndex", ctx.baseZIndex)("autoZIndex", ctx.autoZIndex);
651
686
  i0.ɵɵadvance(2);
652
687
  i0.ɵɵconditional(ctx.headlessTemplate || ctx._headlessTemplate ? 2 : 3);
653
688
  } }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, Button, Dialog, SharedModule], encapsulation: 2, data: { animation: [trigger('animation', [transition('void => visible', [useAnimation(showAnimation)]), transition('visible => void', [useAnimation(hideAnimation)])])] }, changeDetection: 0 });
@@ -671,6 +706,9 @@ export class ConfirmDialog extends BaseComponent {
671
706
  [blockScroll]="option('blockScroll')"
672
707
  [appendTo]="option('appendTo')"
673
708
  [position]="position"
709
+ [dismissableMask]="dismissableMask"
710
+ [baseZIndex]="baseZIndex"
711
+ [autoZIndex]="autoZIndex"
674
712
  >
675
713
  @if (headlessTemplate || _headlessTemplate) {
676
714
  <ng-template #headless>
@@ -854,4 +892,4 @@ export class ConfirmDialogModule {
854
892
  args: [{ imports: [ConfirmDialog, SharedModule], exports: [ConfirmDialog, SharedModule] }]
855
893
  }], null, null); })();
856
894
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ConfirmDialogModule, { imports: [ConfirmDialog, SharedModule], exports: [ConfirmDialog, SharedModule] }); })();
857
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maXJtZGlhbG9nL2NvbmZpcm1kaWFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixlQUFlLEVBR2YsTUFBTSxFQUdOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQXFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4SSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUE2QjVDLHdCQUEyTDs7O0lBQTNMLDRHQUE0Szs7O0lBQXBHLEFB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LEVBQUUsS0FBSyxFQUFFO1lBRU0sZ0JBQWdCO2tCQUFqRSxZQUFZO21CQUFDLFVBQVUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFFaEIsU0FBUztrQkFBeEMsZUFBZTttQkFBQyxhQUFhOztrRkF2T3JCLGFBQWE7QUFvZjFCLE1BQU0sT0FBTyxtQkFBbUI7NkdBQW5CLG1CQUFtQjs0REFBbkIsbUJBQW1CO2dFQURWLGFBQWEsRUFBRSxZQUFZLEVBQTRCLFlBQVk7O2lGQUM1RSxtQkFBbUI7Y0FEL0IsUUFBUTtlQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsRUFBRTs7d0ZBQy9FLG1CQUFtQixjQXBmbkIsYUFBYSxFQW1mVyxZQUFZLGFBbmZwQyxhQUFhLEVBbWZtRCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0aW9uLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBOZ1pvbmUsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbmRTaW5nbGUsIHNldEF0dHJpYnV0ZSwgdXVpZCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1FdmVudFR5cGUsIEZvb3RlciwgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlLCBUcmFuc2xhdGlvbktleXMgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcbmltcG9ydCB7IENoZWNrSWNvbiwgVGltZXNJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBSaXBwbGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHMtaGVscGVycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dTdHlsZSB9IGZyb20gJy4vc3R5bGUvY29uZmlybWRpYWxvZ3N0eWxlJztcblxuY29uc3Qgc2hvd0FuaW1hdGlvbiA9IGFuaW1hdGlvbihbc3R5bGUoeyB0cmFuc2Zvcm06ICd7e3RyYW5zZm9ybX19Jywgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSgne3t0cmFuc2l0aW9ufX0nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ25vbmUnLCBvcGFjaXR5OiAxIH0pKV0pO1xuXG5jb25zdCBoaWRlQW5pbWF0aW9uID0gYW5pbWF0aW9uKFthbmltYXRlKCd7e3RyYW5zaXRpb259fScsIHN0eWxlKHsgdHJhbnNmb3JtOiAne3t0cmFuc2Zvcm19fScsIG9wYWNpdHk6IDAgfSkpXSk7XG4vKipcbiAqIENvbmZpcm1EaWFsb2cgdXNlcyBhIERpYWxvZyBVSSB0aGF0IGlzIGludGVncmF0ZWQgd2l0aCB0aGUgQ29uZmlybWF0aW9uIEFQSS5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1jb25maXJtRGlhbG9nLCBwLWNvbmZpcm1kaWFsb2csIHAtY29uZmlybS1kaWFsb2cnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnV0dG9uLCBSaXBwbGUsIFRpbWVzSWNvbiwgQ2hlY2tJY29uLCBEaWFsb2csIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHAtZGlhbG9nXG4gICAgICAgICAgICAjZGlhbG9nXG4gICAgICAgICAgICBbKHZpc2libGUpXT1cInZpc2libGVcIlxuICAgICAgICAgICAgcm9sZT1cImFsZXJ0ZGlhbG9nXCJcbiAgICAgICAgICAgIFtjbG9zYWJsZV09XCJvcHRpb24oJ2Nsb3NhYmxlJylcIlxuICAgICAgICAgICAgW3N0eWxlQ2xhc3NdPVwiY3goJ3Jvb3QnKVwiXG4gICAgICAgICAgICBbbW9kYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaGVhZGVyXT1cIm9wdGlvbignaGVhZGVyJylcIlxuICAgICAgICAgICAgW2Nsb3NlT25Fc2NhcGVdPVwib3B0aW9uKCdjbG9zZU9uRXNjYXBlJylcIlxuICAgICAgICAgICAgW2Jsb2NrU2Nyb2xsXT1cIm9wdGlvbignYmxvY2tTY3JvbGwnKVwiXG4gICAgICAgICAgICBbYXBwZW5kVG9dPVwib3B0aW9uKCdhcHBlbmRUbycpXCJcbiAgICAgICAgICAgIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoaGVhZGxlc3NUZW1wbGF0ZSB8fCBfaGVhZGxlc3NUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGxlc3M+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkbGVzc1RlbXBsYXRlIHx8IF9oZWFkbGVzc1RlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29uZmlybWF0aW9uLCBvbkFjY2VwdDogb25BY2NlcHQuYmluZCh0aGlzKSwgb25SZWplY3Q6IG9uUmVqZWN0LmJpbmQodGhpcykgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaWYgKGhlYWRlclRlbXBsYXRlIHx8IF9oZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiY3goJ2hlYWRlcicpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlIHx8IF9oZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGljb25UZW1wbGF0ZSB8fCBfaWNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGUgfHwgX2ljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCFpY29uVGVtcGxhdGUgJiYgIV9pY29uVGVtcGxhdGUgJiYgIV9tZXNzYWdlVGVtcGxhdGUgJiYgIW1lc3NhZ2VUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiY3goJ2ljb24nKVwiIFtjbGFzc109XCJvcHRpb24oJ2ljb24nKVwiICpuZ0lmPVwib3B0aW9uKCdpY29uJylcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlVGVtcGxhdGUgfHwgX21lc3NhZ2VUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVzc2FnZVRlbXBsYXRlIHx8IF9tZXNzYWdlVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb25maXJtYXRpb24gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiY3goJ21lc3NhZ2UnKVwiIFtpbm5lckhUTUxdPVwib3B0aW9uKCdtZXNzYWdlJylcIj4gPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyPlxuICAgICAgICAgICAgICAgIEBpZiAoZm9vdGVyVGVtcGxhdGUgfHwgX2Zvb3RlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInAtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGUgfHwgX2Zvb3RlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIWZvb3RlclRlbXBsYXRlICYmICFfZm9vdGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbigncmVqZWN0VmlzaWJsZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJyZWplY3RCdXR0b25MYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJvblJlamVjdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cImdldEJ1dHRvblN0eWxlQ2xhc3MoJ3BjUmVqZWN0QnV0dG9uJywgJ3JlamVjdEJ1dHRvblN0eWxlQ2xhc3MnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIm9wdGlvbigncmVqZWN0QnV0dG9uUHJvcHMnLCAnYXJpYUxhYmVsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblByb3BzXT1cImdldFJlamVjdEJ1dHRvblByb3BzKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHJlamVjdEljb24gJiYgIXJlamVjdEljb25UZW1wbGF0ZSAmJiAhX3JlamVjdEljb25UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwib3B0aW9uKCdyZWplY3RJY29uJylcIiBbY2xhc3NdPVwib3B0aW9uKCdyZWplY3RJY29uJylcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWplY3RJY29uVGVtcGxhdGUgfHwgX3JlamVjdEljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImFjY2VwdEJ1dHRvbkxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uQWNjZXB0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlQ2xhc3NdPVwiZ2V0QnV0dG9uU3R5bGVDbGFzcygncGNBY2NlcHRCdXR0b24nLCAnYWNjZXB0QnV0dG9uU3R5bGVDbGFzcycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uKCdhY2NlcHRWaXNpYmxlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJvcHRpb24oJ2FjY2VwdEJ1dHRvblByb3BzJywgJ2FyaWFMYWJlbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25Qcm9wc109XCJnZXRBY2NlcHRCdXR0b25Qcm9wcygpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChhY2NlcHRJY29uICYmICFfYWNjZXB0SWNvblRlbXBsYXRlICYmICFhY2NlcHRJY29uVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm9wdGlvbignYWNjZXB0SWNvbicpXCIgW2NsYXNzXT1cIm9wdGlvbignYWNjZXB0SWNvbicpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWNjZXB0SWNvblRlbXBsYXRlIHx8IF9hY2NlcHRJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1kaWFsb2c+XG4gICAgYCxcbiAgICBhbmltYXRpb25zOiBbdHJpZ2dlcignYW5pbWF0aW9uJywgW3RyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFt1c2VBbmltYXRpb24oc2hvd0FuaW1hdGlvbildKSwgdHJhbnNpdGlvbigndmlzaWJsZSA9PiB2b2lkJywgW3VzZUFuaW1hdGlvbihoaWRlQW5pbWF0aW9uKV0pXSldLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbQ29uZmlybURpYWxvZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBDb25maXJtRGlhbG9nIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBUaXRsZSB0ZXh0IG9mIHRoZSBkaWFsb2cuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiB0byBkaXNwbGF5IG5leHQgdG8gbWVzc2FnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBvZiB0aGUgY29uZmlybWF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHN0eWxlKCk6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGU7XG4gICAgfVxuICAgIHNldCBzdHlsZSh2YWx1ZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9zdHlsZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmeSB0aGUgQ1NTIGNsYXNzKGVzKSBmb3Igc3R5bGluZyB0aGUgbWFzayBlbGVtZW50XG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbWFza1N0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJY29uIG9mIHRoZSBhY2NlcHQgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFjY2VwdEljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBMYWJlbCBvZiB0aGUgYWNjZXB0IGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhY2NlcHRMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBzdHJpbmcgdGhhdCBsYWJlbHMgdGhlIGNsb3NlIGJ1dHRvbiBmb3IgYWNjZXNzaWJpbGl0eS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjbG9zZUFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBzdHJpbmcgdGhhdCBsYWJlbHMgdGhlIGFjY2VwdCBidXR0b24gZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYWNjZXB0QXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVmlzaWJpbGl0eSBvZiB0aGUgYWNjZXB0IGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYWNjZXB0VmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgcmVqZWN0IGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSByZWplY3RJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTGFiZWwgb2YgdGhlIHJlamVjdCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcmVqZWN0TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgc3RyaW5nIHRoYXQgbGFiZWxzIHRoZSByZWplY3QgYnV0dG9uIGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHJlamVjdEFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFZpc2liaWxpdHkgb2YgdGhlIHJlamVjdCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJlamVjdFZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBhY2NlcHQgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFjY2VwdEJ1dHRvblN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgcmVqZWN0IGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSByZWplY3RCdXR0b25TdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIGlmIHByZXNzaW5nIGVzY2FwZSBrZXkgc2hvdWxkIGhpZGUgdGhlIGRpYWxvZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgY2xvc2VPbkVzY2FwZTogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIGlmIGNsaWNraW5nIHRoZSBtb2RhbCBiYWNrZ3JvdW5kIHNob3VsZCBoaWRlIHRoZSBkaWFsb2cuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc21pc3NhYmxlTWFzazogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgc2Nyb2xsaW5nIGJlaGF2aW9yIHNob3VsZCBiZSBibG9ja2VkIHdpdGhpbiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBibG9ja1Njcm9sbDogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogV2hlbiBlbmFibGVkIGRpYWxvZyBpcyBkaXNwbGF5ZWQgaW4gUlRMIGRpcmVjdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcnRsOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQWRkcyBhIGNsb3NlIGljb24gdG8gdGhlIGhlYWRlciB0byBoaWRlIHRoZSBkaWFsb2cuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsb3NhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiAgVGFyZ2V0IGVsZW1lbnQgdG8gYXR0YWNoIHRoZSBkaWFsb2csIHZhbGlkIHZhbHVlcyBhcmUgXCJib2R5XCIgb3IgYSBsb2NhbCBuZy10ZW1wbGF0ZSB2YXJpYWJsZSBvZiBhbm90aGVyIGVsZW1lbnQgKG5vdGU6IHVzZSBiaW5kaW5nIHdpdGggYnJhY2tldHMgZm9yIHRlbXBsYXRlIHZhcmlhYmxlcywgZS5nLiBbYXBwZW5kVG9dPVwibXlkaXZcIiBmb3IgYSBkaXYgZWxlbWVudCBoYXZpbmcgI215ZGl2IGFzIHZhcmlhYmxlIG5hbWUpLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFwcGVuZFRvOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBUZW1wbGF0ZVJlZjxhbnk+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCB8IGFueSA9ICdib2R5JztcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBrZXkgdG8gbWF0Y2ggdGhlIGtleSBvZiBjb25maXJtIG9iamVjdCwgbmVjZXNzYXJ5IHRvIHVzZSB3aGVuIGNvbXBvbmVudCB0cmVlIGhhcyBtdWx0aXBsZSBjb25maXJtIGRpYWxvZ3MuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkga2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IG1hbmFnZSBsYXllcmluZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b1pJbmRleDogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogQmFzZSB6SW5kZXggdmFsdWUgdG8gdXNlIGluIGxheWVyaW5nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGJhc2VaSW5kZXg6IG51bWJlciA9IDA7XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBhbmltYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZyA9ICcxNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG4gICAgLyoqXG4gICAgICogV2hlbiBlbmFibGVkLCBjYW4gb25seSBmb2N1cyBvbiBlbGVtZW50cyBpbnNpZGUgdGhlIGNvbmZpcm0gZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmb2N1c1RyYXA6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIEVsZW1lbnQgdG8gcmVjZWl2ZSB0aGUgZm9jdXMgd2hlbiB0aGUgZGlhbG9nIGdldHMgdmlzaWJsZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkZWZhdWx0Rm9jdXM6ICdhY2NlcHQnIHwgJ3JlamVjdCcgfCAnY2xvc2UnIHwgJ25vbmUnID0gJ2FjY2VwdCc7XG4gICAgLyoqXG4gICAgICogT2JqZWN0IGxpdGVyYWwgdG8gZGVmaW5lIHdpZHRocyBwZXIgc2NyZWVuIHNpemUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYnJlYWtwb2ludHM6IGFueTtcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IHZpc2libGUgc3RhdGUgYXMgYSBib29sZWFuLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCB2aXNpYmxlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICAgIH1cblxuICAgIHNldCB2aXNpYmxlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLl92aXNpYmxlICYmICF0aGlzLm1hc2tWaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1hc2tWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqICBBbGxvd3MgZ2V0dGluZyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgcG9zaXRpb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICAgIH1cbiAgICBzZXQgcG9zaXRpb24odmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IHZhbHVlO1xuXG4gICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvcGxlZnQnOlxuICAgICAgICAgICAgY2FzZSAnYm90dG9tbGVmdCc6XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybU9wdGlvbnMgPSAndHJhbnNsYXRlM2QoLTEwMCUsIDBweCwgMHB4KSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0b3ByaWdodCc6XG4gICAgICAgICAgICBjYXNlICdib3R0b21yaWdodCc6XG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1PcHRpb25zID0gJ3RyYW5zbGF0ZTNkKDEwMCUsIDBweCwgMHB4KSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtT3B0aW9ucyA9ICd0cmFuc2xhdGUzZCgwcHgsIDEwMCUsIDBweCknO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybU9wdGlvbnMgPSAndHJhbnNsYXRlM2QoMHB4LCAtMTAwJSwgMHB4KSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtT3B0aW9ucyA9ICdzY2FsZSgwLjcpJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBkaWFsb2cgaXMgaGlkZGVuLlxuICAgICAqIEBwYXJhbSB7Q29uZmlybUV2ZW50VHlwZX0gZW51bSAtIEN1c3RvbSBjb25maXJtIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkhpZGU6IEV2ZW50RW1pdHRlcjxDb25maXJtRXZlbnRUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlybUV2ZW50VHlwZT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoRm9vdGVyKSBmb290ZXI6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KENvbmZpcm1EaWFsb2dTdHlsZSk7XG5cbiAgICBAQ29udGVudENoaWxkKCdoZWFkZXInLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBoZWFkZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBAQ29udGVudENoaWxkKCdmb290ZXInLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBmb290ZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBAQ29udGVudENoaWxkKCdyZWplY3RpY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgcmVqZWN0SWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2FjY2VwdGljb24nLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBhY2NlcHRJY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnbWVzc2FnZScsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIG1lc3NhZ2VUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBAQ29udGVudENoaWxkKCdpY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgaWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRsZXNzJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgaGVhZGxlc3NUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFByaW1lVGVtcGxhdGUpIHRlbXBsYXRlczogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2hlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2Zvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX3JlamVjdEljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9hY2NlcHRJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfbWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX2ljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9oZWFkbGVzc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uZmlybWF0aW9uOiBOdWxsYWJsZTxDb25maXJtYXRpb24+O1xuXG4gICAgX3Zpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBfc3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbiAgICBtYXNrVmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIGRpYWxvZzogTnVsbGFibGU8RGlhbG9nPjtcblxuICAgIHdyYXBwZXI6IE51bGxhYmxlPEhUTUxFbGVtZW50PjtcblxuICAgIGNvbnRlbnRDb250YWluZXI6IE51bGxhYmxlPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJlV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIF9wb3NpdGlvbjogc3RyaW5nID0gJ2NlbnRlcic7XG5cbiAgICB0cmFuc2Zvcm1PcHRpb25zOiBhbnkgPSAnc2NhbGUoMC43KSc7XG5cbiAgICBzdHlsZUVsZW1lbnQ6IGFueTtcblxuICAgIGlkID0gdXVpZCgncG5faWRfJyk7XG5cbiAgICBhcmlhTGFiZWxsZWRCeTogc3RyaW5nID0gdGhpcy5nZXRBcmlhTGFiZWxsZWRCeSgpO1xuXG4gICAgdHJhbnNsYXRpb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyB6b25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UucmVxdWlyZUNvbmZpcm1hdGlvbiQuc3Vic2NyaWJlKChjb25maXJtYXRpb24pID0+IHtcbiAgICAgICAgICAgIGlmICghY29uZmlybWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbmZpcm1hdGlvbi5rZXkgPT09IHRoaXMua2V5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24gPSBjb25maXJtYXRpb247XG5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlybWF0aW9uKTtcblxuICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGNvbmZpcm1hdGlvbltrZXldO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlybWF0aW9uLmFjY2VwdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5hY2NlcHRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uYWNjZXB0RXZlbnQuc3Vic2NyaWJlKHRoaXMuY29uZmlybWF0aW9uLmFjY2VwdCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlybWF0aW9uLnJlamVjdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5yZWplY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24ucmVqZWN0RXZlbnQuc3Vic2NyaWJlKHRoaXMuY29uZmlybWF0aW9uLnJlamVjdCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN0eWxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5jb25maWcudHJhbnNsYXRpb25PYnNlcnZlci5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdoZWFkZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZm9vdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9vdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2ljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlamVjdGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWplY3RJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2FjY2VwdGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY2NlcHRJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2hlYWRsZXNzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGVhZGxlc3NUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRBcmlhTGFiZWxsZWRCeSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGVhZGVyICE9PSBudWxsID8gdXVpZCgncG5faWRfJykgKyAnX2hlYWRlcicgOiBudWxsO1xuICAgIH1cblxuICAgIG9wdGlvbihuYW1lOiBzdHJpbmcsIGs/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0gdGhpcyB8fCB0aGlzO1xuICAgICAgICBpZiAoc291cmNlLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgICBpZiAoaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2Vba107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc291cmNlW25hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRCdXR0b25TdHlsZUNsYXNzKGN4OiBzdHJpbmcsIG9wdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY3hDbGFzcyA9IHRoaXMuY3goY3gpO1xuICAgICAgICBjb25zdCBvcHRpb25DbGFzcyA9IHRoaXMub3B0aW9uKG9wdCk7XG5cbiAgICAgICAgcmV0dXJuIFtjeENsYXNzLCBvcHRpb25DbGFzc10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBnZXRFbGVtZW50VG9Gb2N1cygpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLm9wdGlvbignZGVmYXVsdEZvY3VzJykpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FjY2VwdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRTaW5nbGUodGhpcy5kaWFsb2cuZWwubmF0aXZlRWxlbWVudCwgJy5wLWNvbmZpcm0tZGlhbG9nLWFjY2VwdCcpO1xuXG4gICAgICAgICAgICBjYXNlICdyZWplY3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBmaW5kU2luZ2xlKHRoaXMuZGlhbG9nLmVsLm5hdGl2ZUVsZW1lbnQsICcucC1jb25maXJtLWRpYWxvZy1yZWplY3QnKTtcblxuICAgICAgICAgICAgY2FzZSAnY2xvc2UnOlxuICAgICAgICAgICAgICAgIHJldHVybiBmaW5kU2luZ2xlKHRoaXMuZGlhbG9nLmVsLm5hdGl2ZUVsZW1lbnQsICcucC1kaWFsb2ctaGVhZGVyLWNsb3NlJyk7XG5cbiAgICAgICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAvL2JhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRTaW5nbGUodGhpcy5kaWFsb2cuZWwubmF0aXZlRWxlbWVudCwgJy5wLWNvbmZpcm0tZGlhbG9nLWFjY2VwdCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlU3R5bGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5zdHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGhpcy5zdHlsZUVsZW1lbnQpO1xuICAgICAgICAgICAgbGV0IGlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludCBpbiB0aGlzLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgaW5uZXJIVE1MICs9IGBcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHticmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLnAtZGlhbG9nWyR7dGhpcy5pZH1dIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHt0aGlzLmJyZWFrcG9pbnRzW2JyZWFrcG9pbnRdfSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQuaW5uZXJIVE1MID0gaW5uZXJIVE1MO1xuICAgICAgICAgICAgc2V0QXR0cmlidXRlKHRoaXMuc3R5bGVFbGVtZW50LCAnbm9uY2UnLCB0aGlzLmNvbmZpZz8uY3NwKCk/Lm5vbmNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5jb25maXJtYXRpb24/LnJlamVjdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5yZWplY3RFdmVudC5lbWl0KENvbmZpcm1FdmVudFR5cGUuQ0FOQ0VMKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZShDb25maXJtRXZlbnRUeXBlLkNBTkNFTCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgaGlkZSh0eXBlPzogQ29uZmlybUV2ZW50VHlwZSkge1xuICAgICAgICB0aGlzLm9uSGlkZS5lbWl0KHR5cGUpO1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgLy8gVW5zdWJzY3JpYmUgZnJvbSBjb25maXJtYXRpb24gZXZlbnRzIHdoZW4gdGhlIGRpYWxvZ3VlIGlzIGNsb3NlZCwgYmVjYXVzZSBldmVudHMgYXJlIGNyZWF0ZWQgd2hlbiB0aGUgZGlhbG9ndWUgaXMgb3BlbmVkLlxuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQ29uZmlybWF0aW9uRXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5jb25maXJtYXRpb24gPSBudWxsO1xuICAgIH1cblxuICAgIGRlc3Ryb3lTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3R5bGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQodGhpcy5zdHlsZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIC8vIFVuc3Vic2NyaWJlIGZyb20gY29uZmlybWF0aW9uIGV2ZW50cyBpZiB0aGUgZGlhbG9ndWUgaXMgb3BlbmVkIGFuZCB0aGlzIGNvbXBvbmVudCBpcyBzb21laG93IGRlc3Ryb3llZC5cbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUNvbmZpcm1hdGlvbkV2ZW50cygpO1xuXG4gICAgICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRlc3Ryb3lTdHlsZSgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHVuc3Vic2NyaWJlQ29uZmlybWF0aW9uRXZlbnRzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25maXJtYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmFjY2VwdEV2ZW50Py51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24ucmVqZWN0RXZlbnQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjY2VwdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlybWF0aW9uICYmIHRoaXMuY29uZmlybWF0aW9uLmFjY2VwdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5hY2NlcHRFdmVudC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oaWRlKENvbmZpcm1FdmVudFR5cGUuQUNDRVBUKTtcbiAgICB9XG5cbiAgICBvblJlamVjdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlybWF0aW9uICYmIHRoaXMuY29uZmlybWF0aW9uLnJlamVjdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5yZWplY3RFdmVudC5lbWl0KENvbmZpcm1FdmVudFR5cGUuUkVKRUNUKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZShDb25maXJtRXZlbnRUeXBlLlJFSkVDVCk7XG4gICAgfVxuXG4gICAgZ2V0IGFjY2VwdEJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbignYWNjZXB0TGFiZWwnKSB8fCB0aGlzLmNvbmZpZy5nZXRUcmFuc2xhdGlvbihUcmFuc2xhdGlvbktleXMuQUNDRVBUKTtcbiAgICB9XG5cbiAgICBnZXQgcmVqZWN0QnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uKCdyZWplY3RMYWJlbCcpIHx8IHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5SRUpFQ1QpO1xuICAgIH1cblxuICAgIGdldEFjY2VwdEJ1dHRvblByb3BzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb24oJ2FjY2VwdEJ1dHRvblByb3BzJyk7XG4gICAgfVxuXG4gICAgZ2V0UmVqZWN0QnV0dG9uUHJvcHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbigncmVqZWN0QnV0dG9uUHJvcHMnKTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7IGltcG9ydHM6IFtDb25maXJtRGlhbG9nLCBTaGFyZWRNb2R1bGVdLCBleHBvcnRzOiBbQ29uZmlybURpYWxvZywgU2hhcmVkTW9kdWxlXSB9KVxuZXhwb3J0IGNsYXNzIENvbmZpcm1EaWFsb2dNb2R1bGUge31cbiJdfQ==
895
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maXJtZGlhbG9nL2NvbmZpcm1kaWFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFFUixlQUFlLEVBR2YsTUFBTSxFQUdOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQXFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4SSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQzVDLHdCQUEyTDs7O0lBQTNMLDRHQUE0Szs7O0lBQXBHLEFB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YztrQkFBN0QsWUFBWTttQkFBQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBRUUsY0FBYztrQkFBN0QsWUFBWTttQkFBQyxRQUFRLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBRU0sa0JBQWtCO2tCQUFyRSxZQUFZO21CQUFDLFlBQVksRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFFRSxrQkFBa0I7a0JBQXJFLFlBQVk7bUJBQUMsWUFBWSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQUVELGVBQWU7a0JBQS9ELFlBQVk7bUJBQUMsU0FBUyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQUVELFlBQVk7a0JBQXpELFlBQVk7bUJBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQUVNLGdCQUFnQjtrQkFBakUsWUFBWTttQkFBQyxVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO1lBRWhCLFNBQVM7a0JBQXhDLGVBQWU7bUJBQUMsYUFBYTs7a0ZBdk9yQixhQUFhO0FBd2hCMUIsTUFBTSxPQUFPLG1CQUFtQjs2R0FBbkIsbUJBQW1COzREQUFuQixtQkFBbUI7Z0VBRFYsYUFBYSxFQUFFLFlBQVksRUFBNEIsWUFBWTs7aUZBQzVFLG1CQUFtQjtjQUQvQixRQUFRO2VBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFOzt3RkFDL0UsbUJBQW1CLGNBeGhCbkIsYUFBYSxFQXVoQlcsWUFBWSxhQXZoQnBDLGFBQWEsRUF1aEJtRCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0aW9uLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBOZ1pvbmUsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbmRTaW5nbGUsIHNldEF0dHJpYnV0ZSwgdXVpZCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24sIENvbmZpcm1hdGlvblNlcnZpY2UsIENvbmZpcm1FdmVudFR5cGUsIEZvb3RlciwgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlLCBUcmFuc2xhdGlvbktleXMgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcbmltcG9ydCB7IENoZWNrSWNvbiwgVGltZXNJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBSaXBwbGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ3ByaW1lbmcvdHMtaGVscGVycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dTdHlsZSB9IGZyb20gJy4vc3R5bGUvY29uZmlybWRpYWxvZ3N0eWxlJztcblxuY29uc3Qgc2hvd0FuaW1hdGlvbiA9IGFuaW1hdGlvbihbc3R5bGUoeyB0cmFuc2Zvcm06ICd7e3RyYW5zZm9ybX19Jywgb3BhY2l0eTogMCB9KSwgYW5pbWF0ZSgne3t0cmFuc2l0aW9ufX0nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ25vbmUnLCBvcGFjaXR5OiAxIH0pKV0pO1xuXG5jb25zdCBoaWRlQW5pbWF0aW9uID0gYW5pbWF0aW9uKFthbmltYXRlKCd7e3RyYW5zaXRpb259fScsIHN0eWxlKHsgdHJhbnNmb3JtOiAne3t0cmFuc2Zvcm19fScsIG9wYWNpdHk6IDAgfSkpXSk7XG4vKipcbiAqIENvbmZpcm1EaWFsb2cgdXNlcyBhIERpYWxvZyBVSSB0aGF0IGlzIGludGVncmF0ZWQgd2l0aCB0aGUgQ29uZmlybWF0aW9uIEFQSS5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1jb25maXJtRGlhbG9nLCBwLWNvbmZpcm1kaWFsb2csIHAtY29uZmlybS1kaWFsb2cnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnV0dG9uLCBSaXBwbGUsIFRpbWVzSWNvbiwgQ2hlY2tJY29uLCBEaWFsb2csIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHAtZGlhbG9nXG4gICAgICAgICAgICAjZGlhbG9nXG4gICAgICAgICAgICBbKHZpc2libGUpXT1cInZpc2libGVcIlxuICAgICAgICAgICAgcm9sZT1cImFsZXJ0ZGlhbG9nXCJcbiAgICAgICAgICAgIFtjbG9zYWJsZV09XCJvcHRpb24oJ2Nsb3NhYmxlJylcIlxuICAgICAgICAgICAgW3N0eWxlQ2xhc3NdPVwiY3goJ3Jvb3QnKVwiXG4gICAgICAgICAgICBbbW9kYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaGVhZGVyXT1cIm9wdGlvbignaGVhZGVyJylcIlxuICAgICAgICAgICAgW2Nsb3NlT25Fc2NhcGVdPVwib3B0aW9uKCdjbG9zZU9uRXNjYXBlJylcIlxuICAgICAgICAgICAgW2Jsb2NrU2Nyb2xsXT1cIm9wdGlvbignYmxvY2tTY3JvbGwnKVwiXG4gICAgICAgICAgICBbYXBwZW5kVG9dPVwib3B0aW9uKCdhcHBlbmRUbycpXCJcbiAgICAgICAgICAgIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiXG4gICAgICAgICAgICBbZGlzbWlzc2FibGVNYXNrXT1cImRpc21pc3NhYmxlTWFza1wiXG4gICAgICAgICAgICBbYmFzZVpJbmRleF09XCJiYXNlWkluZGV4XCJcbiAgICAgICAgICAgIFthdXRvWkluZGV4XT1cImF1dG9aSW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGhlYWRsZXNzVGVtcGxhdGUgfHwgX2hlYWRsZXNzVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRsZXNzPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGxlc3NUZW1wbGF0ZSB8fCBfaGVhZGxlc3NUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbmZpcm1hdGlvbiwgb25BY2NlcHQ6IG9uQWNjZXB0LmJpbmQodGhpcyksIG9uUmVqZWN0OiBvblJlamVjdC5iaW5kKHRoaXMpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGlmIChoZWFkZXJUZW1wbGF0ZSB8fCBfaGVhZGVyVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImN4KCdoZWFkZXInKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZSB8fCBfaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpY29uVGVtcGxhdGUgfHwgX2ljb25UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlIHx8IF9pY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICghaWNvblRlbXBsYXRlICYmICFfaWNvblRlbXBsYXRlICYmICFfbWVzc2FnZVRlbXBsYXRlICYmICFtZXNzYWdlVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cImN4KCdpY29uJylcIiBbY2xhc3NdPVwib3B0aW9uKCdpY29uJylcIiAqbmdJZj1cIm9wdGlvbignaWNvbicpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZVRlbXBsYXRlIHx8IF9tZXNzYWdlVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1lc3NhZ2VUZW1wbGF0ZSB8fCBfbWVzc2FnZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29uZmlybWF0aW9uIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImN4KCdtZXNzYWdlJylcIiBbaW5uZXJIVE1MXT1cIm9wdGlvbignbWVzc2FnZScpXCI+IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3Rlcj5cbiAgICAgICAgICAgICAgICBAaWYgKGZvb3RlclRlbXBsYXRlIHx8IF9mb290ZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJwLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlIHx8IF9mb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKCFmb290ZXJUZW1wbGF0ZSAmJiAhX2Zvb3RlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24oJ3JlamVjdFZpc2libGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicmVqZWN0QnV0dG9uTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25SZWplY3QoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVDbGFzc109XCJnZXRCdXR0b25TdHlsZUNsYXNzKCdwY1JlamVjdEJ1dHRvbicsICdyZWplY3RCdXR0b25TdHlsZUNsYXNzJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJvcHRpb24oJ3JlamVjdEJ1dHRvblByb3BzJywgJ2FyaWFMYWJlbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25Qcm9wc109XCJnZXRSZWplY3RCdXR0b25Qcm9wcygpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZWplY3RJY29uICYmICFyZWplY3RJY29uVGVtcGxhdGUgJiYgIV9yZWplY3RJY29uVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm9wdGlvbigncmVqZWN0SWNvbicpXCIgW2NsYXNzXT1cIm9wdGlvbigncmVqZWN0SWNvbicpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVqZWN0SWNvblRlbXBsYXRlIHx8IF9yZWplY3RJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJhY2NlcHRCdXR0b25MYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJvbkFjY2VwdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cImdldEJ1dHRvblN0eWxlQ2xhc3MoJ3BjQWNjZXB0QnV0dG9uJywgJ2FjY2VwdEJ1dHRvblN0eWxlQ2xhc3MnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbignYWNjZXB0VmlzaWJsZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwib3B0aW9uKCdhY2NlcHRCdXR0b25Qcm9wcycsICdhcmlhTGFiZWwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uUHJvcHNdPVwiZ2V0QWNjZXB0QnV0dG9uUHJvcHMoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWNjZXB0SWNvbiAmJiAhX2FjY2VwdEljb25UZW1wbGF0ZSAmJiAhYWNjZXB0SWNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJvcHRpb24oJ2FjY2VwdEljb24nKVwiIFtjbGFzc109XCJvcHRpb24oJ2FjY2VwdEljb24nKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImFjY2VwdEljb25UZW1wbGF0ZSB8fCBfYWNjZXB0SWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtZGlhbG9nPlxuICAgIGAsXG4gICAgYW5pbWF0aW9uczogW3RyaWdnZXIoJ2FuaW1hdGlvbicsIFt0cmFuc2l0aW9uKCd2b2lkID0+IHZpc2libGUnLCBbdXNlQW5pbWF0aW9uKHNob3dBbmltYXRpb24pXSksIHRyYW5zaXRpb24oJ3Zpc2libGUgPT4gdm9pZCcsIFt1c2VBbmltYXRpb24oaGlkZUFuaW1hdGlvbildKV0pXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW0NvbmZpcm1EaWFsb2dTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybURpYWxvZyBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVGl0bGUgdGV4dCBvZiB0aGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEljb24gdG8gZGlzcGxheSBuZXh0IHRvIG1lc3NhZ2UuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIE1lc3NhZ2Ugb2YgdGhlIGNvbmZpcm1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBzdHlsZSgpOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlO1xuICAgIH1cbiAgICBzZXQgc3R5bGUodmFsdWU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fc3R5bGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xhc3Mgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgdGhlIENTUyBjbGFzcyhlcykgZm9yIHN0eWxpbmcgdGhlIG1hc2sgZWxlbWVudFxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1hc2tTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgYWNjZXB0IGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhY2NlcHRJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTGFiZWwgb2YgdGhlIGFjY2VwdCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYWNjZXB0TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgc3RyaW5nIHRoYXQgbGFiZWxzIHRoZSBjbG9zZSBidXR0b24gZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY2xvc2VBcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgc3RyaW5nIHRoYXQgbGFiZWxzIHRoZSBhY2NlcHQgYnV0dG9uIGZvciBhY2Nlc3NpYmlsaXR5LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFjY2VwdEFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFZpc2liaWxpdHkgb2YgdGhlIGFjY2VwdCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFjY2VwdFZpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIEljb24gb2YgdGhlIHJlamVjdCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcmVqZWN0SWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIExhYmVsIG9mIHRoZSByZWplY3QgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHJlamVjdExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN0cmluZyB0aGF0IGxhYmVscyB0aGUgcmVqZWN0IGJ1dHRvbiBmb3IgYWNjZXNzaWJpbGl0eS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSByZWplY3RBcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBWaXNpYmlsaXR5IG9mIHRoZSByZWplY3QgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZWplY3RWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgYWNjZXB0IGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhY2NlcHRCdXR0b25TdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIHJlamVjdCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcmVqZWN0QnV0dG9uU3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyBpZiBwcmVzc2luZyBlc2NhcGUga2V5IHNob3VsZCBoaWRlIHRoZSBkaWFsb2cuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNsb3NlT25Fc2NhcGU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyBpZiBjbGlja2luZyB0aGUgbW9kYWwgYmFja2dyb3VuZCBzaG91bGQgaGlkZSB0aGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNtaXNzYWJsZU1hc2s6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHNjcm9sbGluZyBiZWhhdmlvciBzaG91bGQgYmUgYmxvY2tlZCB3aXRoaW4gdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYmxvY2tTY3JvbGw6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFdoZW4gZW5hYmxlZCBkaWFsb2cgaXMgZGlzcGxheWVkIGluIFJUTCBkaXJlY3Rpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJ0bDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEFkZHMgYSBjbG9zZSBpY29uIHRvIHRoZSBoZWFkZXIgdG8gaGlkZSB0aGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjbG9zYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogIFRhcmdldCBlbGVtZW50IHRvIGF0dGFjaCB0aGUgZGlhbG9nLCB2YWxpZCB2YWx1ZXMgYXJlIFwiYm9keVwiIG9yIGEgbG9jYWwgbmctdGVtcGxhdGUgdmFyaWFibGUgb2YgYW5vdGhlciBlbGVtZW50IChub3RlOiB1c2UgYmluZGluZyB3aXRoIGJyYWNrZXRzIGZvciB0ZW1wbGF0ZSB2YXJpYWJsZXMsIGUuZy4gW2FwcGVuZFRvXT1cIm15ZGl2XCIgZm9yIGEgZGl2IGVsZW1lbnQgaGF2aW5nICNteWRpdiBhcyB2YXJpYWJsZSBuYW1lKS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcHBlbmRUbzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmIHwgVGVtcGxhdGVSZWY8YW55PiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgfCBhbnkgPSAnYm9keSc7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwga2V5IHRvIG1hdGNoIHRoZSBrZXkgb2YgY29uZmlybSBvYmplY3QsIG5lY2Vzc2FyeSB0byB1c2Ugd2hlbiBjb21wb25lbnQgdHJlZSBoYXMgbXVsdGlwbGUgY29uZmlybSBkaWFsb2dzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBtYW5hZ2UgbGF5ZXJpbmcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG9aSW5kZXg6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIEJhc2UgekluZGV4IHZhbHVlIHRvIHVzZSBpbiBsYXllcmluZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBiYXNlWkluZGV4OiBudW1iZXIgPSAwO1xuICAgIC8qKlxuICAgICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRyYW5zaXRpb25PcHRpb25zOiBzdHJpbmcgPSAnMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknO1xuICAgIC8qKlxuICAgICAqIFdoZW4gZW5hYmxlZCwgY2FuIG9ubHkgZm9jdXMgb24gZWxlbWVudHMgaW5zaWRlIHRoZSBjb25maXJtIGRpYWxvZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZm9jdXNUcmFwOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBFbGVtZW50IHRvIHJlY2VpdmUgdGhlIGZvY3VzIHdoZW4gdGhlIGRpYWxvZyBnZXRzIHZpc2libGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZGVmYXVsdEZvY3VzOiAnYWNjZXB0JyB8ICdyZWplY3QnIHwgJ2Nsb3NlJyB8ICdub25lJyA9ICdhY2NlcHQnO1xuICAgIC8qKlxuICAgICAqIE9iamVjdCBsaXRlcmFsIHRvIGRlZmluZSB3aWR0aHMgcGVyIHNjcmVlbiBzaXplLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGJyZWFrcG9pbnRzOiBhbnk7XG4gICAgLyoqXG4gICAgICogQ3VycmVudCB2aXNpYmxlIHN0YXRlIGFzIGEgYm9vbGVhbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgdmlzaWJsZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBzZXQgdmlzaWJsZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcblxuICAgICAgICBpZiAodGhpcy5fdmlzaWJsZSAmJiAhdGhpcy5tYXNrVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5tYXNrVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAgQWxsb3dzIGdldHRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgICB9XG4gICAgc2V0IHBvc2l0aW9uKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSB2YWx1ZTtcblxuICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICd0b3BsZWZ0JzpcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbWxlZnQnOlxuICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1PcHRpb25zID0gJ3RyYW5zbGF0ZTNkKC0xMDAlLCAwcHgsIDBweCknO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wcmlnaHQnOlxuICAgICAgICAgICAgY2FzZSAnYm90dG9tcmlnaHQnOlxuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtT3B0aW9ucyA9ICd0cmFuc2xhdGUzZCgxMDAlLCAwcHgsIDBweCknO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybU9wdGlvbnMgPSAndHJhbnNsYXRlM2QoMHB4LCAxMDAlLCAwcHgpJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1PcHRpb25zID0gJ3RyYW5zbGF0ZTNkKDBweCwgLTEwMCUsIDBweCknO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zZm9ybU9wdGlvbnMgPSAnc2NhbGUoMC43KSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gZGlhbG9nIGlzIGhpZGRlbi5cbiAgICAgKiBAcGFyYW0ge0NvbmZpcm1FdmVudFR5cGV9IGVudW0gLSBDdXN0b20gY29uZmlybSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25IaWRlOiBFdmVudEVtaXR0ZXI8Q29uZmlybUV2ZW50VHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbmZpcm1FdmVudFR5cGU+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKEZvb3RlcikgZm9vdGVyOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChDb25maXJtRGlhbG9nU3R5bGUpO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgaGVhZGVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgZm9vdGVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgncmVqZWN0aWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIHJlamVjdEljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBAQ29udGVudENoaWxkKCdhY2NlcHRpY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgYWNjZXB0SWNvblRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIEBDb250ZW50Q2hpbGQoJ21lc3NhZ2UnLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBtZXNzYWdlVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGljb25UZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBAQ29udGVudENoaWxkKCdoZWFkbGVzcycsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGhlYWRsZXNzVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZDtcblxuICAgIF9oZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9mb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9yZWplY3RJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfYWNjZXB0SWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX21lc3NhZ2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9pY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfaGVhZGxlc3NUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIGNvbmZpcm1hdGlvbjogTnVsbGFibGU8Q29uZmlybWF0aW9uPjtcblxuICAgIF92aXNpYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgX3N0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICAgbWFza1Zpc2libGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBkaWFsb2c6IE51bGxhYmxlPERpYWxvZz47XG5cbiAgICB3cmFwcGVyOiBOdWxsYWJsZTxIVE1MRWxlbWVudD47XG5cbiAgICBjb250ZW50Q29udGFpbmVyOiBOdWxsYWJsZTxIVE1MRGl2RWxlbWVudD47XG5cbiAgICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByZVdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBfcG9zaXRpb246IHN0cmluZyA9ICdjZW50ZXInO1xuXG4gICAgdHJhbnNmb3JtT3B0aW9uczogYW55ID0gJ3NjYWxlKDAuNyknO1xuXG4gICAgc3R5bGVFbGVtZW50OiBhbnk7XG5cbiAgICBpZCA9IHV1aWQoJ3BuX2lkXycpO1xuXG4gICAgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyA9IHRoaXMuZ2V0QXJpYUxhYmVsbGVkQnkoKTtcblxuICAgIHRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgem9uZTogTmdab25lXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLnJlcXVpcmVDb25maXJtYXRpb24kLnN1YnNjcmliZSgoY29uZmlybWF0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNvbmZpcm1hdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb25maXJtYXRpb24ua2V5ID09PSB0aGlzLmtleSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRDb25maXJtYXRpb25PcHRpb25zVG9EZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24gPSBjb25maXJtYXRpb247XG5cbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlybWF0aW9uKTtcblxuICAgICAgICAgICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGNvbmZpcm1hdGlvbltrZXldO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlybWF0aW9uLmFjY2VwdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5hY2NlcHRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24uYWNjZXB0RXZlbnQuc3Vic2NyaWJlKHRoaXMuY29uZmlybWF0aW9uLmFjY2VwdCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlybWF0aW9uLnJlamVjdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5yZWplY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24ucmVqZWN0RXZlbnQuc3Vic2NyaWJlKHRoaXMuY29uZmlybWF0aW9uLnJlamVjdCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN0eWxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uID0gdGhpcy5jb25maWcudHJhbnNsYXRpb25PYnNlcnZlci5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdoZWFkZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZm9vdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9vdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2ljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlamVjdGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZWplY3RJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2FjY2VwdGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY2NlcHRJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2hlYWRsZXNzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGVhZGxlc3NUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRBcmlhTGFiZWxsZWRCeSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGVhZGVyICE9PSBudWxsID8gdXVpZCgncG5faWRfJykgKyAnX2hlYWRlcicgOiBudWxsO1xuICAgIH1cblxuICAgIG9wdGlvbihuYW1lOiBzdHJpbmcsIGs/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc291cmNlOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0gdGhpcyB8fCB0aGlzO1xuICAgICAgICBpZiAoc291cmNlLmhhc093blByb3BlcnR5KG5hbWUpKSB7XG4gICAgICAgICAgICBpZiAoaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2Vba107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc291cmNlW25hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRCdXR0b25TdHlsZUNsYXNzKGN4OiBzdHJpbmcsIG9wdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY3hDbGFzcyA9IHRoaXMuY3goY3gpO1xuICAgICAgICBjb25zdCBvcHRpb25DbGFzcyA9IHRoaXMub3B0aW9uKG9wdCk7XG5cbiAgICAgICAgcmV0dXJuIFtjeENsYXNzLCBvcHRpb25DbGFzc10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBnZXRFbGVtZW50VG9Gb2N1cygpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLm9wdGlvbignZGVmYXVsdEZvY3VzJykpIHtcbiAgICAgICAgICAgIGNhc2UgJ2FjY2VwdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRTaW5nbGUodGhpcy5kaWFsb2cuZWwubmF0aXZlRWxlbWVudCwgJy5wLWNvbmZpcm0tZGlhbG9nLWFjY2VwdCcpO1xuXG4gICAgICAgICAgICBjYXNlICdyZWplY3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBmaW5kU2luZ2xlKHRoaXMuZGlhbG9nLmVsLm5hdGl2ZUVsZW1lbnQsICcucC1jb25maXJtLWRpYWxvZy1yZWplY3QnKTtcblxuICAgICAgICAgICAgY2FzZSAnY2xvc2UnOlxuICAgICAgICAgICAgICAgIHJldHVybiBmaW5kU2luZ2xlKHRoaXMuZGlhbG9nLmVsLm5hdGl2ZUVsZW1lbnQsICcucC1kaWFsb2ctaGVhZGVyLWNsb3NlJyk7XG5cbiAgICAgICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICAvL2JhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRTaW5nbGUodGhpcy5kaWFsb2cuZWwubmF0aXZlRWxlbWVudCwgJy5wLWNvbmZpcm0tZGlhbG9nLWFjY2VwdCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlU3R5bGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5zdHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQudHlwZSA9ICd0ZXh0L2Nzcyc7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGhpcy5zdHlsZUVsZW1lbnQpO1xuICAgICAgICAgICAgbGV0IGlubmVySFRNTCA9ICcnO1xuICAgICAgICAgICAgZm9yIChsZXQgYnJlYWtwb2ludCBpbiB0aGlzLmJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgaW5uZXJIVE1MICs9IGBcbiAgICAgICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHticmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLnAtZGlhbG9nWyR7dGhpcy5pZH1dIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHt0aGlzLmJyZWFrcG9pbnRzW2JyZWFrcG9pbnRdfSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQuaW5uZXJIVE1MID0gaW5uZXJIVE1MO1xuICAgICAgICAgICAgc2V0QXR0cmlidXRlKHRoaXMuc3R5bGVFbGVtZW50LCAnbm9uY2UnLCB0aGlzLmNvbmZpZz8uY3NwKCk/Lm5vbmNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5jb25maXJtYXRpb24/LnJlamVjdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5yZWplY3RFdmVudC5lbWl0KENvbmZpcm1FdmVudFR5cGUuQ0FOQ0VMKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZShDb25maXJtRXZlbnRUeXBlLkNBTkNFTCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgaGlkZSh0eXBlPzogQ29uZmlybUV2ZW50VHlwZSkge1xuICAgICAgICB0aGlzLm9uSGlkZS5lbWl0KHR5cGUpO1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgLy8gVW5zdWJzY3JpYmUgZnJvbSBjb25maXJtYXRpb24gZXZlbnRzIHdoZW4gdGhlIGRpYWxvZ3VlIGlzIGNsb3NlZCwgYmVjYXVzZSBldmVudHMgYXJlIGNyZWF0ZWQgd2hlbiB0aGUgZGlhbG9ndWUgaXMgb3BlbmVkLlxuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQ29uZmlybWF0aW9uRXZlbnRzKCk7XG5cbiAgICAgICAgdGhpcy5jb25maXJtYXRpb24gPSBudWxsO1xuICAgIH1cblxuICAgIGRlc3Ryb3lTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3R5bGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQodGhpcy5zdHlsZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIC8vIFVuc3Vic2NyaWJlIGZyb20gY29uZmlybWF0aW9uIGV2ZW50cyBpZiB0aGUgZGlhbG9ndWUgaXMgb3BlbmVkIGFuZCB0aGlzIGNvbXBvbmVudCBpcyBzb21laG93IGRlc3Ryb3llZC5cbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUNvbmZpcm1hdGlvbkV2ZW50cygpO1xuXG4gICAgICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRlc3Ryb3lTdHlsZSgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHVuc3Vic2NyaWJlQ29uZmlybWF0aW9uRXZlbnRzKCkge1xuICAgICAgICBpZiAodGhpcy5jb25maXJtYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uLmFjY2VwdEV2ZW50Py51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb24ucmVqZWN0RXZlbnQ/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjY2VwdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlybWF0aW9uICYmIHRoaXMuY29uZmlybWF0aW9uLmFjY2VwdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5hY2NlcHRFdmVudC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oaWRlKENvbmZpcm1FdmVudFR5cGUuQUNDRVBUKTtcbiAgICB9XG5cbiAgICBvblJlamVjdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlybWF0aW9uICYmIHRoaXMuY29uZmlybWF0aW9uLnJlamVjdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbi5yZWplY3RFdmVudC5lbWl0KENvbmZpcm1FdmVudFR5cGUuUkVKRUNUKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGlkZShDb25maXJtRXZlbnRUeXBlLlJFSkVDVCk7XG4gICAgfVxuXG4gICAgZ2V0IGFjY2VwdEJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbignYWNjZXB0TGFiZWwnKSB8fCB0aGlzLmNvbmZpZy5nZXRUcmFuc2xhdGlvbihUcmFuc2xhdGlvbktleXMuQUNDRVBUKTtcbiAgICB9XG5cbiAgICBnZXQgcmVqZWN0QnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uKCdyZWplY3RMYWJlbCcpIHx8IHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5SRUpFQ1QpO1xuICAgIH1cblxuICAgIGdldEFjY2VwdEJ1dHRvblByb3BzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb24oJ2FjY2VwdEJ1dHRvblByb3BzJyk7XG4gICAgfVxuXG4gICAgZ2V0UmVqZWN0QnV0dG9uUHJvcHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbigncmVqZWN0QnV0dG9uUHJvcHMnKTtcbiAgICB9XG5cbiAgICByZXNldENvbmZpcm1hdGlvbk9wdGlvbnNUb0RlZmF1bHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGVhZGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmljb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdHlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdHlsZUNsYXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm1hc2tTdHlsZUNsYXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmFjY2VwdEljb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYWNjZXB0TGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYWNjZXB0QXJpYUxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnJlamVjdEljb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVqZWN0TGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVqZWN0QXJpYUxhYmVsID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmFjY2VwdFZpc2libGUgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlamVjdFZpc2libGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmFjY2VwdEJ1dHRvblN0eWxlQ2xhc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucmVqZWN0QnV0dG9uU3R5bGVDbGFzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jbG9zZU9uRXNjYXBlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kaXNtaXNzYWJsZU1hc2sgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYmxvY2tTY3JvbGwgPSB0cnVlO1xuICAgICAgICB0aGlzLnJ0bCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNsb3NhYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hcHBlbmRUbyA9ICdib2R5JztcbiAgICAgICAgdGhpcy5rZXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYXV0b1pJbmRleCA9IHRydWU7XG4gICAgICAgIHRoaXMuYmFzZVpJbmRleCA9IDA7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbk9wdGlvbnMgPSAnMTUwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknO1xuICAgICAgICB0aGlzLmZvY3VzVHJhcCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZvY3VzID0gJ2FjY2VwdCc7XG4gICAgICAgIHRoaXMuYnJlYWtwb2ludHMgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuYWNjZXB0QnV0dG9uU3R5bGVDbGFzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5yZWplY3RCdXR0b25TdHlsZUNsYXNzID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbiA9IG51bGw7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoeyBpbXBvcnRzOiBbQ29uZmlybURpYWxvZywgU2hhcmVkTW9kdWxlXSwgZXhwb3J0czogW0NvbmZpcm1EaWFsb2csIFNoYXJlZE1vZHVsZV0gfSlcbmV4cG9ydCBjbGFzcyBDb25maXJtRGlhbG9nTW9kdWxlIHt9XG4iXX0=