@sbb-esta/lyne-elements-dev 4.7.0-dev.1773755030 → 4.7.0-dev.1773817331

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 (943) hide show
  1. package/{block-link-common-D4aizuV-.js → block-link-common-BMTrbSfi.js} +1 -1
  2. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  3. package/breadcrumb/breadcrumb-group.js +1 -1
  4. package/{breadcrumb-group.component-BA8KK3Om.js → breadcrumb-group.component-CfUyO1sI.js} +1 -1
  5. package/breadcrumb.js +1 -1
  6. package/breadcrumb.pure.js +1 -1
  7. package/checkbox/checkbox.component.js +2 -2
  8. package/checkbox/checkbox.js +2 -2
  9. package/checkbox/common/checkbox-common.js +1 -1
  10. package/checkbox/common.js +1 -1
  11. package/checkbox-group/checkbox-group.component.js +20 -2
  12. package/checkbox-group.js +1 -1
  13. package/checkbox-group.pure.js +1 -1
  14. package/{checkbox.component-CJcC5JnN.js → checkbox.component-Bazdxs9R.js} +1 -1
  15. package/checkbox.js +3 -3
  16. package/checkbox.pure.js +2 -2
  17. package/chip/chip/chip.component.js +1 -1
  18. package/chip/chip-group/chip-group.component.js +1 -1
  19. package/chip/chip-group.js +1 -1
  20. package/chip/chip.js +1 -1
  21. package/chip-label/chip-label.component.js +1 -1
  22. package/chip-label.js +1 -1
  23. package/chip-label.pure.js +1 -1
  24. package/chip.js +2 -2
  25. package/chip.pure.js +2 -2
  26. package/clock/clock.component.js +1 -1
  27. package/clock.js +1 -1
  28. package/clock.pure.js +1 -1
  29. package/container/container/container.component.js +1 -1
  30. package/container/container.js +1 -1
  31. package/container/sticky-bar/sticky-bar.component.js +1 -1
  32. package/container/sticky-bar.js +1 -1
  33. package/container.js +2 -2
  34. package/container.pure.js +2 -2
  35. package/core/base-elements/selection-group-base-element.js +2 -0
  36. package/core/base-elements.js +2 -1
  37. package/core/controllers/media-matchers-controller.js +1 -1
  38. package/core/styles/core.scss +2 -6
  39. package/core.css +33 -117
  40. package/custom-elements.json +749 -160
  41. package/date-input/date-input.component.js +1 -1
  42. package/date-input.js +1 -1
  43. package/date-input.pure.js +1 -1
  44. package/datepicker/common/datepicker-button.js +1 -1
  45. package/datepicker/common.js +1 -1
  46. package/datepicker/datepicker/datepicker.component.js +1 -1
  47. package/datepicker/datepicker.js +1 -1
  48. package/datepicker.js +2 -2
  49. package/datepicker.pure.js +2 -2
  50. package/development/{block-link-common-FvD8So7p.js → block-link-common-CjBLu4BU.js} +2 -2
  51. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  52. package/development/breadcrumb/breadcrumb-group.js +1 -1
  53. package/development/breadcrumb-group.component-zU06d9ni.js +279 -0
  54. package/development/breadcrumb.js +1 -1
  55. package/development/breadcrumb.pure.js +1 -1
  56. package/development/checkbox/checkbox.component.js +2 -2
  57. package/development/checkbox/checkbox.js +2 -2
  58. package/development/checkbox/common/checkbox-common.js +1 -1
  59. package/development/checkbox/common.js +1 -1
  60. package/development/{checkbox-common-DD7r8g0_.js → checkbox-common-DOS4FkuG.js} +1 -1
  61. package/development/checkbox-group/checkbox-group.component.d.ts +8 -23
  62. package/development/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  63. package/development/checkbox-group/checkbox-group.component.js +33 -1
  64. package/development/checkbox-group.js +1 -1
  65. package/development/checkbox-group.pure.js +1 -1
  66. package/development/{checkbox.component-B43Akyck.js → checkbox.component-DBtj7z07.js} +2 -2
  67. package/development/checkbox.js +3 -3
  68. package/development/checkbox.pure.js +2 -2
  69. package/development/chip/chip/chip.component.js +1 -1
  70. package/development/chip/chip-group/chip-group.component.js +1 -1
  71. package/development/chip/chip-group.js +1 -1
  72. package/development/chip/chip.js +1 -1
  73. package/development/{chip-group.component-DzCCcoOw.js → chip-group.component-BIJlU5Dp.js} +1 -1
  74. package/development/chip-label/chip-label.component.js +1 -1
  75. package/development/{chip-label.component-jN_Fulv_.js → chip-label.component-DOCHCxBi.js} +1 -1
  76. package/development/chip-label.js +1 -1
  77. package/development/chip-label.pure.js +1 -1
  78. package/development/{chip.component-Bn7ffNEr.js → chip.component-D6OL8r_Q.js} +1 -1
  79. package/development/chip.js +2 -2
  80. package/development/chip.pure.js +2 -2
  81. package/development/clock/clock.component.js +1 -1
  82. package/development/{clock.component-btjeVAaa.js → clock.component-DPIVt4d3.js} +1 -1
  83. package/development/clock.js +1 -1
  84. package/development/clock.pure.js +1 -1
  85. package/development/{compact-paginator.component-CCDP0TMd.js → compact-paginator.component-BSTPWGJx.js} +1 -1
  86. package/development/container/container/container.component.js +1 -1
  87. package/development/container/container.js +1 -1
  88. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  89. package/development/container/sticky-bar.js +1 -1
  90. package/development/{container.component-CVm8-HZ4.js → container.component-Co2L3KBb.js} +1 -1
  91. package/development/container.js +2 -2
  92. package/development/container.pure.js +2 -2
  93. package/development/core/base-elements/selection-group-base-element.d.ts +35 -0
  94. package/development/core/base-elements/selection-group-base-element.d.ts.map +1 -0
  95. package/development/core/base-elements/selection-group-base-element.js +2 -0
  96. package/development/core/base-elements.d.ts +1 -0
  97. package/development/core/base-elements.d.ts.map +1 -1
  98. package/development/core/base-elements.js +2 -1
  99. package/development/core/controllers/media-matchers-controller.js +1 -1
  100. package/development/date-input/date-input.component.js +1 -1
  101. package/development/{date-input.component-CqsEOZfb.js → date-input.component-D6__znuy.js} +1 -1
  102. package/development/date-input.js +1 -1
  103. package/development/date-input.pure.js +1 -1
  104. package/development/datepicker/common/datepicker-button.js +1 -1
  105. package/development/datepicker/common.js +1 -1
  106. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  107. package/development/datepicker/datepicker.js +1 -1
  108. package/development/{datepicker-button-BORzfDaA.js → datepicker-button-vHP0D4yV.js} +1 -1
  109. package/development/{datepicker.component-CuFtPZg9.js → datepicker.component-DW6eq3pC.js} +1 -1
  110. package/development/datepicker.js +2 -2
  111. package/development/datepicker.pure.js +2 -2
  112. package/development/dialog/dialog/dialog.component.js +1 -1
  113. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  114. package/development/dialog/dialog-actions.js +1 -1
  115. package/development/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  116. package/development/dialog/dialog-close-button.js +1 -1
  117. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  118. package/development/dialog/dialog-content.js +1 -1
  119. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  120. package/development/dialog/dialog-title.js +1 -1
  121. package/development/dialog/dialog.js +1 -1
  122. package/development/{dialog-actions.component-Mbx-Bs3t.js → dialog-actions.component-TcOhbHSS.js} +1 -1
  123. package/development/{dialog-close-button.component-B1dPHPy2.js → dialog-close-button.component-Yi7NNtQe.js} +1 -1
  124. package/development/{dialog-content.component-qP09Yo_N.js → dialog-content.component-CzwHSsCD.js} +1 -1
  125. package/development/{dialog-title.component-B4u2w8h5.js → dialog-title.component-BjJxddme.js} +1 -1
  126. package/development/{dialog.component-DaM1FSHB.js → dialog.component-CjR644v5.js} +1 -1
  127. package/development/dialog.js +5 -5
  128. package/development/dialog.pure.js +5 -5
  129. package/development/divider/divider.component.js +1 -1
  130. package/development/{divider.component-Ddzlu6Fw.js → divider.component-D04zdHFf.js} +1 -1
  131. package/development/divider.js +1 -1
  132. package/development/divider.pure.js +1 -1
  133. package/development/{error.component-C76eZnXo.js → error.component-DCeTb_sQ.js} +1 -1
  134. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  135. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  136. package/development/expansion-panel/expansion-panel-content.js +1 -1
  137. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  138. package/development/expansion-panel/expansion-panel-header.js +1 -1
  139. package/development/expansion-panel/expansion-panel.js +1 -1
  140. package/development/{expansion-panel-content.component-DTZk3ZKL.js → expansion-panel-content.component-P1BVKaUQ.js} +1 -1
  141. package/development/{expansion-panel-header.component-C7ymZCux.js → expansion-panel-header.component-BQaFPmqq.js} +1 -1
  142. package/development/{expansion-panel.component-xUWTKeaC.js → expansion-panel.component-sNQCAll-.js} +1 -1
  143. package/development/expansion-panel.js +3 -3
  144. package/development/expansion-panel.pure.js +3 -3
  145. package/development/file-selector/common/file-selector-common.js +1 -1
  146. package/development/file-selector/common.js +1 -1
  147. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  148. package/development/file-selector/file-selector-dropzone.js +1 -1
  149. package/development/{file-selector-common-qMfAccOd.js → file-selector-common-4VE7Af0W.js} +1 -1
  150. package/development/{file-selector-dropzone.component-HDUIUSQI.js → file-selector-dropzone.component-COoDZxcq.js} +1 -1
  151. package/development/file-selector.js +2 -2
  152. package/development/file-selector.pure.js +2 -2
  153. package/development/flip-card/flip-card/flip-card.component.js +1 -1
  154. package/development/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  155. package/development/flip-card/flip-card-details.js +1 -1
  156. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  157. package/development/flip-card/flip-card-summary.js +1 -1
  158. package/development/flip-card/flip-card.js +1 -1
  159. package/development/{flip-card-details.component-BilGh5Yb.js → flip-card-details.component-DZqd1icn.js} +1 -1
  160. package/development/{flip-card-summary.component-DDDnvs_c.js → flip-card-summary.component-CTvT-hNh.js} +1 -1
  161. package/development/{flip-card.component-CdRzb7IT.js → flip-card.component-CUQYeHRg.js} +1 -1
  162. package/development/flip-card.js +3 -3
  163. package/development/flip-card.pure.js +3 -3
  164. package/development/footer/footer.component.js +1 -1
  165. package/development/{footer.component-C057PwF1.js → footer.component-CLU7iVUY.js} +1 -1
  166. package/development/footer.js +1 -1
  167. package/development/footer.pure.js +1 -1
  168. package/development/form-field/error/error.component.js +1 -1
  169. package/development/form-field/error.js +1 -1
  170. package/development/form-field/form-field/form-field.component.js +1 -1
  171. package/development/form-field/form-field.js +1 -1
  172. package/development/{form-field.component-D4dQ8sCh.js → form-field.component-DoPHu1Yf.js} +1 -1
  173. package/development/form-field.js +2 -2
  174. package/development/form-field.pure.js +2 -2
  175. package/development/header/common/header-action-common.js +1 -1
  176. package/development/header/common.js +1 -1
  177. package/development/header/header/header.component.js +1 -1
  178. package/development/header/header-environment/header-environment.component.js +1 -1
  179. package/development/header/header-environment.js +1 -1
  180. package/development/header/header.js +1 -1
  181. package/development/{header-action-common-Dff8K0RB.js → header-action-common-BPwn9nFN.js} +1 -1
  182. package/development/{header-environment.component-DYnJkxCZ.js → header-environment.component-JltjpGKu.js} +1 -1
  183. package/development/{header.component-DYls7wGO.js → header.component-DEw_zC-n.js} +1 -1
  184. package/development/header.js +3 -3
  185. package/development/header.pure.js +3 -3
  186. package/development/icon/icon-base.js +1 -1
  187. package/development/icon/icon-name-mixin.js +1 -1
  188. package/development/icon/icon.component.js +1 -1
  189. package/development/{icon-base-CcQCgmqX.js → icon-base-DaK86P0U.js} +1 -1
  190. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  191. package/development/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  192. package/development/icon-sidebar/icon-sidebar-container.js +1 -1
  193. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  194. package/development/icon-sidebar/icon-sidebar-content.js +1 -1
  195. package/development/icon-sidebar/icon-sidebar.js +1 -1
  196. package/development/{icon-sidebar-container.component-BJHjpF-Q.js → icon-sidebar-container.component-6k5VwVGK.js} +1 -1
  197. package/development/{icon-sidebar-content.component-C2wreczL.js → icon-sidebar-content.component-ISXOClFX.js} +1 -1
  198. package/development/{icon-sidebar.component-PcmjRlDp.js → icon-sidebar.component-DFDKX2cD.js} +1 -1
  199. package/development/icon-sidebar.js +3 -3
  200. package/development/icon-sidebar.pure.js +3 -3
  201. package/development/icon.js +1 -1
  202. package/development/icon.pure.js +1 -1
  203. package/development/image/image.component.js +1 -1
  204. package/development/{image.component-fvsSR3Df.js → image.component-BSJf5qRL.js} +2 -2
  205. package/development/image.js +1 -1
  206. package/development/image.pure.js +1 -1
  207. package/development/{inline-link-common-CyTcO5MN.js → inline-link-common-FwpAjkCL.js} +2 -2
  208. package/development/journey-header/journey-header.component.js +1 -1
  209. package/development/{journey-header.component-BB8WYOqH.js → journey-header.component-D1iaZBcw.js} +1 -1
  210. package/development/journey-header.js +1 -1
  211. package/development/journey-header.pure.js +1 -1
  212. package/development/lead-container/lead-container.component.js +1 -1
  213. package/development/{lead-container.component-BGf8oqw7.js → lead-container.component-BPGSdIND.js} +1 -1
  214. package/development/lead-container.js +1 -1
  215. package/development/lead-container.pure.js +1 -1
  216. package/development/link/common/block-link-common.js +2 -2
  217. package/development/link/common/inline-link-common.js +2 -2
  218. package/development/link/common/link-common.js +1 -1
  219. package/development/link/common.js +3 -3
  220. package/development/{link-common-5ob2nFyv.js → link-common-CrLiKO3x.js} +1 -1
  221. package/development/link-list/common/link-list-base.js +1 -1
  222. package/development/link-list/common.js +1 -1
  223. package/development/link-list/link-list-anchor.js +2 -2
  224. package/development/link-list/link-list.component.js +2 -2
  225. package/development/link-list/link-list.js +2 -2
  226. package/development/link-list-anchor/link-list-anchor.component.js +1 -1
  227. package/development/{link-list-anchor.component-rAMp5_jH.js → link-list-anchor.component-CMwxD7at.js} +1 -1
  228. package/development/link-list-anchor.js +1 -1
  229. package/development/link-list-anchor.pure.js +1 -1
  230. package/development/{link-list-base-DxYNcAX7.js → link-list-base-BchLGP8G.js} +1 -1
  231. package/development/{link-list.component-DD6UjlwD.js → link-list.component-B3l5PRJl.js} +2 -2
  232. package/development/link-list.js +3 -3
  233. package/development/link-list.pure.js +2 -2
  234. package/development/link.js +3 -3
  235. package/development/link.pure.js +3 -3
  236. package/development/loading-indicator/loading-indicator.component.js +1 -1
  237. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  238. package/development/{loading-indicator-circle.component-CS32gPvE.js → loading-indicator-circle.component-BJRSfYOI.js} +1 -1
  239. package/development/loading-indicator-circle.js +1 -1
  240. package/development/loading-indicator-circle.pure.js +1 -1
  241. package/development/{loading-indicator.component-CTRZkUdX.js → loading-indicator.component-DolzcY0K.js} +1 -1
  242. package/development/loading-indicator.js +1 -1
  243. package/development/loading-indicator.pure.js +1 -1
  244. package/development/logo/logo.component.js +1 -1
  245. package/development/{logo.component-Cp-EyVpA.js → logo.component-iu5iL8wQ.js} +1 -1
  246. package/development/logo.js +1 -1
  247. package/development/logo.pure.js +1 -1
  248. package/development/map-container/map-container.component.js +1 -1
  249. package/development/{map-container.component-BEAIuo5H.js → map-container.component-DMF2oulu.js} +1 -1
  250. package/development/map-container.js +1 -1
  251. package/development/map-container.pure.js +1 -1
  252. package/development/menu/common/menu-action-common.js +1 -1
  253. package/development/menu/common.js +1 -1
  254. package/development/menu/menu/menu.component.js +1 -1
  255. package/development/menu/menu.js +1 -1
  256. package/development/{menu-action-common-CyBv0NwR.js → menu-action-common-BTOi6wCg.js} +1 -1
  257. package/development/{menu.component-GHJHhE9D.js → menu.component-Dt6ilHX4.js} +1 -1
  258. package/development/menu.js +2 -2
  259. package/development/menu.pure.js +2 -2
  260. package/development/message/message.component.js +1 -1
  261. package/development/{message.component-uv9eI2gl.js → message.component-cyOtXMuM.js} +1 -1
  262. package/development/message.js +1 -1
  263. package/development/message.pure.js +1 -1
  264. package/development/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  265. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  266. package/development/mini-calendar/mini-calendar-day.js +1 -1
  267. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  268. package/development/mini-calendar/mini-calendar-month.js +1 -1
  269. package/development/mini-calendar/mini-calendar.js +1 -1
  270. package/development/{mini-calendar-day.component-DdjlUG0k.js → mini-calendar-day.component-B5SWuVZl.js} +1 -1
  271. package/development/{mini-calendar-month.component-BjxmoYz6.js → mini-calendar-month.component-Diq4my2u.js} +1 -1
  272. package/development/{mini-calendar.component-B38J84Gg.js → mini-calendar.component-O44l8sfI.js} +1 -1
  273. package/development/mini-calendar.js +3 -3
  274. package/development/mini-calendar.pure.js +3 -3
  275. package/development/navigation/common/navigation-action-common.js +1 -1
  276. package/development/navigation/common.js +1 -1
  277. package/development/navigation/navigation/navigation.component.js +1 -1
  278. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  279. package/development/navigation/navigation-list.js +1 -1
  280. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  281. package/development/navigation/navigation-marker.js +1 -1
  282. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  283. package/development/navigation/navigation-section.js +1 -1
  284. package/development/navigation/navigation.js +1 -1
  285. package/development/{navigation-action-common-saGbvoji.js → navigation-action-common-CA2aDyJ4.js} +1 -1
  286. package/development/{navigation-list.component-AFM4omXQ.js → navigation-list.component-Dz0JLuKb.js} +1 -1
  287. package/development/{navigation-marker.component-BvC73IoI.js → navigation-marker.component-DzRg3INl.js} +1 -1
  288. package/development/{navigation-section.component-B-6XU2X5.js → navigation-section.component-DnSkQA4r.js} +1 -1
  289. package/development/{navigation.component-_gUhpPyO.js → navigation.component-DZ3EQfeI.js} +1 -1
  290. package/development/navigation.js +5 -5
  291. package/development/navigation.pure.js +5 -5
  292. package/development/notification/notification.component.js +1 -1
  293. package/development/{notification.component-BT3ZQhUI.js → notification.component-D1xrOQdE.js} +1 -1
  294. package/development/notification.js +1 -1
  295. package/development/notification.pure.js +1 -1
  296. package/development/{optgroup-base-element-CjwAXrC5.js → optgroup-base-element-DVLTejtg.js} +1 -1
  297. package/development/option/optgroup/optgroup-base-element.js +1 -1
  298. package/development/option/optgroup/optgroup.component.js +1 -1
  299. package/development/option/optgroup.js +1 -1
  300. package/development/option/option/option.component.js +1 -1
  301. package/development/option/option-hint/option-hint.component.js +1 -1
  302. package/development/option/option-hint.js +1 -1
  303. package/development/option/option.js +1 -1
  304. package/development/{option-hint.component-CHS5Z_sK.js → option-hint.component-w-UQdEdu.js} +1 -1
  305. package/development/{option.component-BvOsW8Gn.js → option.component-BPN2WTiI.js} +1 -1
  306. package/development/option.js +3 -3
  307. package/development/option.pure.js +3 -3
  308. package/development/overlay/overlay.component.js +1 -1
  309. package/development/{overlay.component-RS_v3xaA.js → overlay.component-Btd42clm.js} +1 -1
  310. package/development/overlay.js +1 -1
  311. package/development/overlay.pure.js +1 -1
  312. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  313. package/development/paginator/compact-paginator.js +1 -1
  314. package/development/paginator/paginator/paginator.component.js +1 -1
  315. package/development/paginator/paginator.js +1 -1
  316. package/development/{paginator.component-cRqJW9bc.js → paginator.component-DT-sZuFS.js} +1 -1
  317. package/development/paginator.js +2 -2
  318. package/development/paginator.pure.js +2 -2
  319. package/development/popover/popover.component.js +1 -1
  320. package/development/{popover.component-BujfGgbD.js → popover.component-CLwOes_-.js} +1 -1
  321. package/development/popover.js +1 -1
  322. package/development/popover.pure.js +1 -1
  323. package/development/radio-button/common/radio-button-common.js +1 -1
  324. package/development/radio-button/common.js +1 -1
  325. package/development/radio-button/radio-button.component.js +2 -2
  326. package/development/radio-button/radio-button.js +2 -2
  327. package/development/{radio-button-common-CjbP9yKf.js → radio-button-common-CsjMvmAn.js} +1 -1
  328. package/development/radio-button-group/radio-button-group.component.d.ts +10 -31
  329. package/development/radio-button-group/radio-button-group.component.d.ts.map +1 -1
  330. package/development/radio-button-group/radio-button-group.component.js +185 -1
  331. package/development/radio-button-group.js +1 -1
  332. package/development/radio-button-group.pure.js +1 -1
  333. package/development/{radio-button.component-CVATlwTb.js → radio-button.component-BTnHGixs.js} +2 -2
  334. package/development/radio-button.js +3 -3
  335. package/development/radio-button.pure.js +2 -2
  336. package/development/{sbb-tokens-Dajio3u-.js → sbb-tokens-Lrm4nvNH.js} +1 -1
  337. package/development/screen-reader-only/screen-reader-only.component.js +1 -1
  338. package/development/{screen-reader-only.component-D-KOAjrF.js → screen-reader-only.component-Btj8mc2x.js} +1 -1
  339. package/development/screen-reader-only.js +1 -1
  340. package/development/screen-reader-only.pure.js +1 -1
  341. package/development/select/select.component.js +1 -1
  342. package/development/{select.component-DyF5Tw3J.js → select.component-DJV8Tjcw.js} +1 -1
  343. package/development/select.js +1 -1
  344. package/development/select.pure.js +1 -1
  345. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  346. package/development/selection-action-panel.component-B3pNvpeD.js +134 -0
  347. package/development/selection-action-panel.js +1 -1
  348. package/development/selection-action-panel.pure.js +1 -1
  349. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  350. package/development/selection-expansion-panel.component-B9v1yqif.js +326 -0
  351. package/development/selection-expansion-panel.js +1 -1
  352. package/development/selection-expansion-panel.pure.js +1 -1
  353. package/development/selection-group-base-element-DrTO_80I.js +220 -0
  354. package/development/sidebar/common/styles.js +1 -1
  355. package/development/sidebar/common.js +1 -1
  356. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  357. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  358. package/development/sidebar/sidebar-close-button.js +1 -1
  359. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  360. package/development/sidebar/sidebar-container.js +1 -1
  361. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  362. package/development/sidebar/sidebar-content.js +1 -1
  363. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  364. package/development/sidebar/sidebar-title.js +1 -1
  365. package/development/sidebar/sidebar.js +1 -1
  366. package/development/{sidebar-close-button.component-j4wY_hAt.js → sidebar-close-button.component-DYl0czc_.js} +1 -1
  367. package/development/{sidebar-container.component-CToGMqKH.js → sidebar-container.component-f4gR6uPU.js} +1 -1
  368. package/development/{sidebar-content.component-s3GsQtNv.js → sidebar-content.component-B70pf9tH.js} +1 -1
  369. package/development/{sidebar-title.component-Htm_hqKX.js → sidebar-title.component-RStE_x3R.js} +1 -1
  370. package/development/{sidebar.component-Ct6TAsph.js → sidebar.component-BDUew-xS.js} +1 -1
  371. package/development/sidebar.js +5 -5
  372. package/development/sidebar.pure.js +5 -5
  373. package/development/signet/signet.component.js +1 -1
  374. package/development/{signet.component-COqrcZqk.js → signet.component-B9nY5tTL.js} +1 -1
  375. package/development/signet.js +1 -1
  376. package/development/signet.pure.js +1 -1
  377. package/development/skiplink-list/skiplink-list.component.js +1 -1
  378. package/development/{skiplink-list.component-_SDkIoHp.js → skiplink-list.component-BvbnZ24-.js} +1 -1
  379. package/development/skiplink-list.js +1 -1
  380. package/development/skiplink-list.pure.js +1 -1
  381. package/development/slider/slider.component.js +1 -1
  382. package/development/{slider.component-B7EFECZk.js → slider.component-w_WtVNx-.js} +1 -1
  383. package/development/slider.js +1 -1
  384. package/development/slider.pure.js +1 -1
  385. package/development/status/status.component.js +1 -1
  386. package/development/{status.component-CE3e9OIO.js → status.component-CD4RXPEj.js} +1 -1
  387. package/development/status.js +1 -1
  388. package/development/status.pure.js +1 -1
  389. package/development/{step-label.component-BH28AI5Z.js → step-label.component-DbdXrY05.js} +1 -1
  390. package/development/{step.component-WY7qdrR8.js → step.component-BZ8GnSvF.js} +1 -1
  391. package/development/stepper/step/step.component.js +1 -1
  392. package/development/stepper/step-label/step-label.component.js +1 -1
  393. package/development/stepper/step-label.js +1 -1
  394. package/development/stepper/step.js +1 -1
  395. package/development/stepper/stepper/stepper.component.js +1 -1
  396. package/development/stepper/stepper.js +1 -1
  397. package/development/{stepper.component-D1tAcpWs.js → stepper.component-C20566P1.js} +1 -1
  398. package/development/stepper.js +3 -3
  399. package/development/stepper.pure.js +3 -3
  400. package/development/{sticky-bar.component-BlgfxSRo.js → sticky-bar.component-DxDHpEgX.js} +1 -1
  401. package/development/{styles-CYlzu-f2.js → styles-BlQUk9lF.js} +1 -1
  402. package/development/{styles-CIZBf9Yc.js → styles-TKvcDQkA.js} +1 -1
  403. package/development/{tab-group.component-DZPKWjI7.js → tab-group.component-C6jlhxvZ.js} +1 -1
  404. package/development/{tab-label.component-BJgr4u6Z.js → tab-label.component-C0qpk3p_.js} +1 -1
  405. package/development/{tab-nav-bar.component-rNmuMIsv.js → tab-nav-bar.component-CbZKhBxs.js} +1 -1
  406. package/development/{tab.component-C8jaB2_O.js → tab.component-DvEZBqQ6.js} +1 -1
  407. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  408. package/development/table/table-wrapper.js +1 -1
  409. package/development/{table-wrapper.component-6WtB_fHq.js → table-wrapper.component-lmWguT_t.js} +1 -1
  410. package/development/table.js +1 -1
  411. package/development/table.pure.js +1 -1
  412. package/development/tabs/common/styles.js +1 -1
  413. package/development/tabs/common.js +1 -1
  414. package/development/tabs/tab/tab.component.js +1 -1
  415. package/development/tabs/tab-group/tab-group.component.js +1 -1
  416. package/development/tabs/tab-group.js +1 -1
  417. package/development/tabs/tab-label/tab-label.component.js +1 -1
  418. package/development/tabs/tab-label.js +1 -1
  419. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  420. package/development/tabs/tab-nav-bar.js +1 -1
  421. package/development/tabs/tab.js +1 -1
  422. package/development/tabs.js +5 -5
  423. package/development/tabs.pure.js +5 -5
  424. package/development/tag/tag/tag.component.js +1 -1
  425. package/development/tag/tag-group/tag-group.component.js +1 -1
  426. package/development/tag/tag-group.js +1 -1
  427. package/development/tag/tag.js +1 -1
  428. package/development/{tag-group.component-C-EXr8Rq.js → tag-group.component-BW1vj2rN.js} +1 -1
  429. package/development/{tag.component-B7RY4cfx.js → tag.component-Cfx7YNV5.js} +1 -1
  430. package/development/tag.js +2 -2
  431. package/development/tag.pure.js +2 -2
  432. package/development/teaser/teaser.component.js +1 -1
  433. package/development/teaser-hero/teaser-hero.component.js +1 -1
  434. package/development/{teaser-hero.component-5vVIZZ9L.js → teaser-hero.component-sUhYQXkN.js} +1 -1
  435. package/development/teaser-hero.js +1 -1
  436. package/development/teaser-hero.pure.js +1 -1
  437. package/development/teaser-product/common/teaser-product-common.js +1 -1
  438. package/development/teaser-product/common.js +1 -1
  439. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  440. package/development/teaser-product/teaser-product.js +1 -1
  441. package/development/{teaser-product-common-DgnRgO6O.js → teaser-product-common-zgX2CF41.js} +1 -1
  442. package/development/{teaser-product.component-BsdU2W2T.js → teaser-product.component-w8Vjh-RN.js} +1 -1
  443. package/development/teaser-product.js +2 -2
  444. package/development/teaser-product.pure.js +2 -2
  445. package/development/{teaser.component-CsbKS91J.js → teaser.component-BI1diIhL.js} +1 -1
  446. package/development/teaser.js +1 -1
  447. package/development/teaser.pure.js +1 -1
  448. package/development/time-input/time-input.component.js +1 -1
  449. package/development/{time-input.component-Cf6cXrIN.js → time-input.component-B15eaxBr.js} +1 -1
  450. package/development/time-input.js +1 -1
  451. package/development/time-input.pure.js +1 -1
  452. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  453. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  454. package/development/timetable-form/timetable-form-details.js +1 -1
  455. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  456. package/development/timetable-form/timetable-form-field.js +1 -1
  457. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  458. package/development/timetable-form/timetable-form-swap-button.js +1 -1
  459. package/development/timetable-form/timetable-form.js +1 -1
  460. package/development/{timetable-form-details.component-B--aGycf.js → timetable-form-details.component-Bz6nsJEp.js} +1 -1
  461. package/development/{timetable-form-field.component-9jwIZzIm.js → timetable-form-field.component-BQHwNBP_.js} +1 -1
  462. package/development/{timetable-form-swap-button.component-Ne1-XwSf.js → timetable-form-swap-button.component-C111nH5V.js} +1 -1
  463. package/development/{timetable-form.component-BYHhDRXE.js → timetable-form.component-BwcJd7mP.js} +1 -1
  464. package/development/timetable-form.js +4 -4
  465. package/development/timetable-form.pure.js +4 -4
  466. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  467. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  468. package/development/{timetable-occupancy-icon.component-BbW73Fqd.js → timetable-occupancy-icon.component-BbPiOTqO.js} +1 -1
  469. package/development/timetable-occupancy-icon.js +1 -1
  470. package/development/timetable-occupancy-icon.pure.js +1 -1
  471. package/development/{timetable-occupancy.component-C3nWG5Vg.js → timetable-occupancy.component-COJQPJ-O.js} +1 -1
  472. package/development/timetable-occupancy.js +1 -1
  473. package/development/timetable-occupancy.pure.js +1 -1
  474. package/development/title/title-base.js +1 -1
  475. package/development/title/title.component.js +2 -2
  476. package/development/{title-base-BUQgNaUI.js → title-base-DNSaV9Ar.js} +1 -1
  477. package/development/{title.component-DgFvxLIt.js → title.component-BY1lm4Z7.js} +2 -2
  478. package/development/title.js +2 -2
  479. package/development/title.pure.js +2 -2
  480. package/development/toast/toast.component.js +1 -1
  481. package/development/{toast.component-Csifrfnq.js → toast.component-TMMY3vo-.js} +1 -1
  482. package/development/toast.js +1 -1
  483. package/development/toast.pure.js +1 -1
  484. package/development/toggle/toggle/toggle.component.js +1 -1
  485. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  486. package/development/toggle/toggle-option.js +1 -1
  487. package/development/toggle/toggle.js +1 -1
  488. package/development/toggle-check/toggle-check.component.js +1 -1
  489. package/development/{toggle-check.component-CEYmGCDZ.js → toggle-check.component-eyni_u24.js} +1 -1
  490. package/development/toggle-check.js +1 -1
  491. package/development/toggle-check.pure.js +1 -1
  492. package/development/{toggle-option.component--wHdeFI6.js → toggle-option.component-Cerp56FA.js} +1 -1
  493. package/development/{toggle.component-CGNDEU9B.js → toggle.component-9bozw9C0.js} +1 -1
  494. package/development/toggle.js +2 -2
  495. package/development/toggle.pure.js +2 -2
  496. package/development/tooltip/tooltip.component.js +1 -1
  497. package/development/{tooltip.component-D16wi4nX.js → tooltip.component-DpeuOb4p.js} +1 -1
  498. package/development/tooltip.js +1 -1
  499. package/development/tooltip.pure.js +1 -1
  500. package/development/train/train/train.component.js +1 -1
  501. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  502. package/development/train/train-blocked-passage.js +1 -1
  503. package/development/train/train-formation/train-formation.component.js +1 -1
  504. package/development/train/train-formation.js +1 -1
  505. package/development/train/train-wagon/train-wagon.component.js +1 -1
  506. package/development/train/train-wagon.js +1 -1
  507. package/development/train/train.js +1 -1
  508. package/development/{train-blocked-passage.component-CYnTeq7k.js → train-blocked-passage.component-YA9rV23T.js} +1 -1
  509. package/development/{train-formation.component-QmoA0u6E.js → train-formation.component-Bh2Cx4if.js} +1 -1
  510. package/development/{train-wagon.component-CWlRDq-Z.js → train-wagon.component-DQ12gCZf.js} +1 -1
  511. package/development/{train.component-DcMyi7HP.js → train.component-DW4vZtEt.js} +1 -1
  512. package/development/train.js +4 -4
  513. package/development/train.pure.js +4 -4
  514. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  515. package/development/{visual-checkbox.component-DtEIq9rH.js → visual-checkbox.component-CA6AKLbO.js} +1 -1
  516. package/development/visual-checkbox.js +1 -1
  517. package/development/visual-checkbox.pure.js +1 -1
  518. package/dialog/dialog/dialog.component.js +1 -1
  519. package/dialog/dialog-actions/dialog-actions.component.js +1 -1
  520. package/dialog/dialog-actions.js +1 -1
  521. package/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  522. package/dialog/dialog-close-button.js +1 -1
  523. package/dialog/dialog-content/dialog-content.component.js +1 -1
  524. package/dialog/dialog-content.js +1 -1
  525. package/dialog/dialog-title/dialog-title.component.js +1 -1
  526. package/dialog/dialog-title.js +1 -1
  527. package/dialog/dialog.js +1 -1
  528. package/dialog.js +5 -5
  529. package/dialog.pure.js +5 -5
  530. package/divider/divider.component.js +1 -1
  531. package/divider.js +1 -1
  532. package/divider.pure.js +1 -1
  533. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  534. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  535. package/expansion-panel/expansion-panel-content.js +1 -1
  536. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  537. package/expansion-panel/expansion-panel-header.js +1 -1
  538. package/expansion-panel/expansion-panel.js +1 -1
  539. package/expansion-panel.js +3 -3
  540. package/expansion-panel.pure.js +3 -3
  541. package/file-selector/common/file-selector-common.js +1 -1
  542. package/file-selector/common.js +1 -1
  543. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  544. package/file-selector/file-selector-dropzone.js +1 -1
  545. package/file-selector.js +2 -2
  546. package/file-selector.pure.js +2 -2
  547. package/flip-card/flip-card/flip-card.component.js +1 -1
  548. package/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  549. package/flip-card/flip-card-details.js +1 -1
  550. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  551. package/flip-card/flip-card-summary.js +1 -1
  552. package/flip-card/flip-card.js +1 -1
  553. package/flip-card.js +3 -3
  554. package/flip-card.pure.js +3 -3
  555. package/footer/footer.component.js +1 -1
  556. package/footer.js +1 -1
  557. package/footer.pure.js +1 -1
  558. package/form-field/error/error.component.js +1 -1
  559. package/form-field/error.js +1 -1
  560. package/form-field/form-field/form-field.component.js +1 -1
  561. package/form-field/form-field.js +1 -1
  562. package/form-field.js +2 -2
  563. package/form-field.pure.js +2 -2
  564. package/header/common/header-action-common.js +1 -1
  565. package/header/common.js +1 -1
  566. package/header/header/header.component.js +1 -1
  567. package/header/header-environment/header-environment.component.js +1 -1
  568. package/header/header-environment.js +1 -1
  569. package/header/header.js +1 -1
  570. package/header.js +3 -3
  571. package/header.pure.js +3 -3
  572. package/icon/icon-base.js +1 -1
  573. package/icon/icon-name-mixin.js +1 -1
  574. package/icon/icon.component.js +1 -1
  575. package/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  576. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  577. package/icon-sidebar/icon-sidebar-container.js +1 -1
  578. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  579. package/icon-sidebar/icon-sidebar-content.js +1 -1
  580. package/icon-sidebar/icon-sidebar.js +1 -1
  581. package/icon-sidebar.js +3 -3
  582. package/icon-sidebar.pure.js +3 -3
  583. package/icon.js +1 -1
  584. package/icon.pure.js +1 -1
  585. package/image/image.component.js +1 -1
  586. package/{image.component-Cq2t-XZu.js → image.component-BcOwT7-U.js} +1 -1
  587. package/image.js +1 -1
  588. package/image.pure.js +1 -1
  589. package/{inline-link-common-Dgdi7qpI.js → inline-link-common-DANB-hT-.js} +1 -1
  590. package/journey-header/journey-header.component.js +1 -1
  591. package/journey-header.js +1 -1
  592. package/journey-header.pure.js +1 -1
  593. package/lead-container/lead-container.component.js +1 -1
  594. package/lead-container.js +1 -1
  595. package/lead-container.pure.js +1 -1
  596. package/link/common/block-link-common.js +2 -2
  597. package/link/common/inline-link-common.js +2 -2
  598. package/link/common/link-common.js +1 -1
  599. package/link/common.js +3 -3
  600. package/link-list/common/link-list-base.js +1 -1
  601. package/link-list/common.js +1 -1
  602. package/link-list/link-list-anchor.js +2 -2
  603. package/link-list/link-list.component.js +2 -2
  604. package/link-list/link-list.js +2 -2
  605. package/link-list-anchor/link-list-anchor.component.js +1 -1
  606. package/link-list-anchor.js +1 -1
  607. package/link-list-anchor.pure.js +1 -1
  608. package/{link-list.component-9ndHNGPS.js → link-list.component-C8zrqHYc.js} +1 -1
  609. package/link-list.js +3 -3
  610. package/link-list.pure.js +2 -2
  611. package/link.js +3 -3
  612. package/link.pure.js +3 -3
  613. package/loading-indicator/loading-indicator.component.js +1 -1
  614. package/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  615. package/loading-indicator-circle.js +1 -1
  616. package/loading-indicator-circle.pure.js +1 -1
  617. package/loading-indicator.js +1 -1
  618. package/loading-indicator.pure.js +1 -1
  619. package/logo/logo.component.js +1 -1
  620. package/logo.js +1 -1
  621. package/logo.pure.js +1 -1
  622. package/map-container/map-container.component.js +1 -1
  623. package/map-container.js +1 -1
  624. package/map-container.pure.js +1 -1
  625. package/menu/common/menu-action-common.js +1 -1
  626. package/menu/common.js +1 -1
  627. package/menu/menu/menu.component.js +1 -1
  628. package/menu/menu.js +1 -1
  629. package/menu.js +2 -2
  630. package/menu.pure.js +2 -2
  631. package/message/message.component.js +1 -1
  632. package/message.js +1 -1
  633. package/message.pure.js +1 -1
  634. package/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  635. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  636. package/mini-calendar/mini-calendar-day.js +1 -1
  637. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  638. package/mini-calendar/mini-calendar-month.js +1 -1
  639. package/mini-calendar/mini-calendar.js +1 -1
  640. package/mini-calendar.js +3 -3
  641. package/mini-calendar.pure.js +3 -3
  642. package/navigation/common/navigation-action-common.js +1 -1
  643. package/navigation/common.js +1 -1
  644. package/navigation/navigation/navigation.component.js +1 -1
  645. package/navigation/navigation-list/navigation-list.component.js +1 -1
  646. package/navigation/navigation-list.js +1 -1
  647. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  648. package/navigation/navigation-marker.js +1 -1
  649. package/navigation/navigation-section/navigation-section.component.js +1 -1
  650. package/navigation/navigation-section.js +1 -1
  651. package/navigation/navigation.js +1 -1
  652. package/navigation.js +5 -5
  653. package/navigation.pure.js +5 -5
  654. package/notification/notification.component.js +1 -1
  655. package/notification.js +1 -1
  656. package/notification.pure.js +1 -1
  657. package/off-brand-theme.css +33 -117
  658. package/option/optgroup/optgroup-base-element.js +1 -1
  659. package/option/optgroup/optgroup.component.js +1 -1
  660. package/option/optgroup.js +1 -1
  661. package/option/option/option.component.js +1 -1
  662. package/option/option-hint/option-hint.component.js +1 -1
  663. package/option/option-hint.js +1 -1
  664. package/option/option.js +1 -1
  665. package/option.js +3 -3
  666. package/option.pure.js +3 -3
  667. package/overlay/overlay.component.js +1 -1
  668. package/overlay.js +1 -1
  669. package/overlay.pure.js +1 -1
  670. package/package.json +2 -2
  671. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  672. package/paginator/compact-paginator.js +1 -1
  673. package/paginator/paginator/paginator.component.js +1 -1
  674. package/paginator/paginator.js +1 -1
  675. package/paginator.js +2 -2
  676. package/paginator.pure.js +2 -2
  677. package/popover/popover.component.js +1 -1
  678. package/popover.js +1 -1
  679. package/popover.pure.js +1 -1
  680. package/radio-button/common/radio-button-common.js +1 -1
  681. package/radio-button/common.js +1 -1
  682. package/radio-button/radio-button.component.js +2 -2
  683. package/radio-button/radio-button.js +2 -2
  684. package/radio-button-group/radio-button-group.component.js +126 -2
  685. package/radio-button-group.js +1 -1
  686. package/radio-button-group.pure.js +1 -1
  687. package/{radio-button.component-B5b5OhBw.js → radio-button.component-CVPy3eQi.js} +1 -1
  688. package/radio-button.js +3 -3
  689. package/radio-button.pure.js +2 -2
  690. package/safety-theme.css +33 -117
  691. package/screen-reader-only/screen-reader-only.component.js +1 -1
  692. package/screen-reader-only.js +1 -1
  693. package/screen-reader-only.pure.js +1 -1
  694. package/select/select.component.js +1 -1
  695. package/select.js +1 -1
  696. package/select.pure.js +1 -1
  697. package/selection-action-panel/selection-action-panel.component.js +1 -1
  698. package/selection-action-panel.component-QfR2kPeM.js +35 -0
  699. package/selection-action-panel.js +1 -1
  700. package/selection-action-panel.pure.js +1 -1
  701. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  702. package/{selection-expansion-panel.component-ChMYCw38.js → selection-expansion-panel.component-BQw9icBM.js} +1 -1
  703. package/selection-expansion-panel.js +1 -1
  704. package/selection-expansion-panel.pure.js +1 -1
  705. package/selection-group-base-element-Bd6na8dT.js +113 -0
  706. package/sidebar/common/styles.js +1 -1
  707. package/sidebar/common.js +1 -1
  708. package/sidebar/sidebar/sidebar.component.js +1 -1
  709. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  710. package/sidebar/sidebar-close-button.js +1 -1
  711. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  712. package/sidebar/sidebar-container.js +1 -1
  713. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  714. package/sidebar/sidebar-content.js +1 -1
  715. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  716. package/sidebar/sidebar-title.js +1 -1
  717. package/sidebar/sidebar.js +1 -1
  718. package/sidebar.js +5 -5
  719. package/sidebar.pure.js +5 -5
  720. package/signet/signet.component.js +1 -1
  721. package/signet.js +1 -1
  722. package/signet.pure.js +1 -1
  723. package/skiplink-list/skiplink-list.component.js +1 -1
  724. package/skiplink-list.js +1 -1
  725. package/skiplink-list.pure.js +1 -1
  726. package/slider/slider.component.js +1 -1
  727. package/slider.js +1 -1
  728. package/slider.pure.js +1 -1
  729. package/standard-theme.css +33 -117
  730. package/status/status.component.js +1 -1
  731. package/status.js +1 -1
  732. package/status.pure.js +1 -1
  733. package/stepper/step/step.component.js +1 -1
  734. package/stepper/step-label/step-label.component.js +1 -1
  735. package/stepper/step-label.js +1 -1
  736. package/stepper/step.js +1 -1
  737. package/stepper/stepper/stepper.component.js +1 -1
  738. package/stepper/stepper.js +1 -1
  739. package/stepper.js +3 -3
  740. package/stepper.pure.js +3 -3
  741. package/table/table-wrapper/table-wrapper.component.js +1 -1
  742. package/table/table-wrapper.js +1 -1
  743. package/table.js +1 -1
  744. package/table.pure.js +1 -1
  745. package/tabs/common/styles.js +1 -1
  746. package/tabs/common.js +1 -1
  747. package/tabs/tab/tab.component.js +1 -1
  748. package/tabs/tab-group/tab-group.component.js +1 -1
  749. package/tabs/tab-group.js +1 -1
  750. package/tabs/tab-label/tab-label.component.js +1 -1
  751. package/tabs/tab-label.js +1 -1
  752. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  753. package/tabs/tab-nav-bar.js +1 -1
  754. package/tabs/tab.js +1 -1
  755. package/tabs.js +5 -5
  756. package/tabs.pure.js +5 -5
  757. package/tag/tag/tag.component.js +1 -1
  758. package/tag/tag-group/tag-group.component.js +1 -1
  759. package/tag/tag-group.js +1 -1
  760. package/tag/tag.js +1 -1
  761. package/tag.js +2 -2
  762. package/tag.pure.js +2 -2
  763. package/teaser/teaser.component.js +1 -1
  764. package/teaser-hero/teaser-hero.component.js +1 -1
  765. package/teaser-hero.js +1 -1
  766. package/teaser-hero.pure.js +1 -1
  767. package/teaser-product/common/teaser-product-common.js +1 -1
  768. package/teaser-product/common.js +1 -1
  769. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  770. package/teaser-product/teaser-product.js +1 -1
  771. package/teaser-product.js +2 -2
  772. package/teaser-product.pure.js +2 -2
  773. package/teaser.js +1 -1
  774. package/teaser.pure.js +1 -1
  775. package/time-input/time-input.component.js +1 -1
  776. package/time-input.js +1 -1
  777. package/time-input.pure.js +1 -1
  778. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  779. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  780. package/timetable-form/timetable-form-details.js +1 -1
  781. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  782. package/timetable-form/timetable-form-field.js +1 -1
  783. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  784. package/timetable-form/timetable-form-swap-button.js +1 -1
  785. package/timetable-form/timetable-form.js +1 -1
  786. package/timetable-form.js +4 -4
  787. package/timetable-form.pure.js +4 -4
  788. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  789. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  790. package/timetable-occupancy-icon.js +1 -1
  791. package/timetable-occupancy-icon.pure.js +1 -1
  792. package/timetable-occupancy.js +1 -1
  793. package/timetable-occupancy.pure.js +1 -1
  794. package/title/title-base.js +1 -1
  795. package/title/title.component.js +2 -2
  796. package/{title.component-DNBy2mIm.js → title.component-DafVwymI.js} +1 -1
  797. package/title.js +2 -2
  798. package/title.pure.js +2 -2
  799. package/toast/toast.component.js +1 -1
  800. package/toast.js +1 -1
  801. package/toast.pure.js +1 -1
  802. package/toggle/toggle/toggle.component.js +1 -1
  803. package/toggle/toggle-option/toggle-option.component.js +1 -1
  804. package/toggle/toggle-option.js +1 -1
  805. package/toggle/toggle.js +1 -1
  806. package/toggle-check/toggle-check.component.js +1 -1
  807. package/toggle-check.js +1 -1
  808. package/toggle-check.pure.js +1 -1
  809. package/toggle.js +2 -2
  810. package/toggle.pure.js +2 -2
  811. package/tooltip/tooltip.component.js +1 -1
  812. package/tooltip.js +1 -1
  813. package/tooltip.pure.js +1 -1
  814. package/train/train/train.component.js +1 -1
  815. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  816. package/train/train-blocked-passage.js +1 -1
  817. package/train/train-formation/train-formation.component.js +1 -1
  818. package/train/train-formation.js +1 -1
  819. package/train/train-wagon/train-wagon.component.js +1 -1
  820. package/train/train-wagon.js +1 -1
  821. package/train/train.js +1 -1
  822. package/train.js +4 -4
  823. package/train.pure.js +4 -4
  824. package/visual-checkbox/visual-checkbox.component.js +1 -1
  825. package/visual-checkbox.js +1 -1
  826. package/visual-checkbox.pure.js +1 -1
  827. package/checkbox-group.component-CNAwwaS0.js +0 -146
  828. package/development/breadcrumb-group.component-DjsoMTPI.js +0 -278
  829. package/development/checkbox-group.component-CRZO7CEc.js +0 -265
  830. package/development/radio-button-group.component-5jDkRqSJ.js +0 -404
  831. package/development/selection-action-panel.component-elyz1Xsb.js +0 -134
  832. package/development/selection-expansion-panel.component-hL2jyaAT.js +0 -326
  833. package/radio-button-group.component-Cf8r6Whf.js +0 -232
  834. package/selection-action-panel.component-_kh6l2sj.js +0 -35
  835. /package/{checkbox-common-D9htxWLZ.js → checkbox-common-J-7Y966k.js} +0 -0
  836. /package/{chip-group.component-D2AZqL3m.js → chip-group.component-CbruCoHR.js} +0 -0
  837. /package/{chip-label.component-DBN4jfW7.js → chip-label.component-D9AZdMSJ.js} +0 -0
  838. /package/{chip.component-BNOs8T6O.js → chip.component-DMB36gvC.js} +0 -0
  839. /package/{clock.component-DDaWbXHW.js → clock.component-gZJy4AU4.js} +0 -0
  840. /package/{compact-paginator.component-BxSy5YXY.js → compact-paginator.component-BK7xj9tc.js} +0 -0
  841. /package/{container.component-DXFIvseq.js → container.component-C-jpJN2k.js} +0 -0
  842. /package/{date-input.component-zZtnd9Og.js → date-input.component-Da-aS3jt.js} +0 -0
  843. /package/{datepicker-button-C1TrzFl-.js → datepicker-button-Dk2UQkPN.js} +0 -0
  844. /package/{datepicker.component-cmdnlVgf.js → datepicker.component-DUVgoAGU.js} +0 -0
  845. /package/{dialog-actions.component-B4JYi2Ym.js → dialog-actions.component-QvbasYxg.js} +0 -0
  846. /package/{dialog-close-button.component-BtxXASCn.js → dialog-close-button.component-CeZrvBtz.js} +0 -0
  847. /package/{dialog-content.component-CNhoC-NZ.js → dialog-content.component-bHJNAgKn.js} +0 -0
  848. /package/{dialog-title.component-C8Jsbuqt.js → dialog-title.component-BDHYjDn0.js} +0 -0
  849. /package/{dialog.component-BHsekf9B.js → dialog.component-CIPresmM.js} +0 -0
  850. /package/{divider.component-DFw-P_dA.js → divider.component-B99DkxCv.js} +0 -0
  851. /package/{error.component-DL9hm4i9.js → error.component-DTYppqRY.js} +0 -0
  852. /package/{expansion-panel-content.component-CbWIxgH4.js → expansion-panel-content.component-DCl4nQ8V.js} +0 -0
  853. /package/{expansion-panel-header.component-CxLeXeGi.js → expansion-panel-header.component-jc1Ty5jz.js} +0 -0
  854. /package/{expansion-panel.component-Bs4icI9T.js → expansion-panel.component-CGss5cPS.js} +0 -0
  855. /package/{file-selector-common-C-gZH55c.js → file-selector-common-C--h0Yj2.js} +0 -0
  856. /package/{file-selector-dropzone.component-LHNtOZPr.js → file-selector-dropzone.component-BFlkqlsq.js} +0 -0
  857. /package/{flip-card-details.component-CiiCNjd2.js → flip-card-details.component-BOVK7F1U.js} +0 -0
  858. /package/{flip-card-summary.component-nO7zKRiB.js → flip-card-summary.component-DVa7wF7x.js} +0 -0
  859. /package/{flip-card.component-uSdokrC9.js → flip-card.component-5pxuwGAv.js} +0 -0
  860. /package/{footer.component-Cdsiwn4D.js → footer.component-C-mSrCud.js} +0 -0
  861. /package/{form-field.component-CZzQYOSP.js → form-field.component-CWj6jfYZ.js} +0 -0
  862. /package/{header-action-common-C2YPvOxq.js → header-action-common-W_j0KPr-.js} +0 -0
  863. /package/{header-environment.component-KqUmsOPQ.js → header-environment.component-DduyZo6W.js} +0 -0
  864. /package/{header.component-BssLZ6b7.js → header.component-DW23EnaO.js} +0 -0
  865. /package/{icon-base-BYJzaEDb.js → icon-base-C2VxpriZ.js} +0 -0
  866. /package/{icon-sidebar-container.component-BcoT4uhN.js → icon-sidebar-container.component-BGhKzy4e.js} +0 -0
  867. /package/{icon-sidebar-content.component-toRpXgxi.js → icon-sidebar-content.component-Ck5kHeMx.js} +0 -0
  868. /package/{icon-sidebar.component-B5xCvDvj.js → icon-sidebar.component-D3vOnYrs.js} +0 -0
  869. /package/{journey-header.component-CR8AO0b2.js → journey-header.component-CjXBxEor.js} +0 -0
  870. /package/{lead-container.component-CXKHfBiS.js → lead-container.component-D9VzZCQa.js} +0 -0
  871. /package/{link-common-CYxyP4XZ.js → link-common-akQv_-UR.js} +0 -0
  872. /package/{link-list-anchor.component--u5j_aqv.js → link-list-anchor.component-Qm7h2mHK.js} +0 -0
  873. /package/{link-list-base-CzFYpTOG.js → link-list-base-CrpC5D4u.js} +0 -0
  874. /package/{loading-indicator-circle.component-CfbXpYX6.js → loading-indicator-circle.component-DfjVqe7n.js} +0 -0
  875. /package/{loading-indicator.component-CoU9mwN8.js → loading-indicator.component-DkYs30Nf.js} +0 -0
  876. /package/{logo.component-nxragzaC.js → logo.component-CdZe8lrB.js} +0 -0
  877. /package/{map-container.component-C2W_7Xiw.js → map-container.component-C_wbi6WL.js} +0 -0
  878. /package/{menu-action-common-BcB_Tyvl.js → menu-action-common-BCV8hNkz.js} +0 -0
  879. /package/{menu.component-BdqUbvww.js → menu.component-_ncuRAqx.js} +0 -0
  880. /package/{message.component-DbmXg6DI.js → message.component-DDMr1IXM.js} +0 -0
  881. /package/{mini-calendar-day.component-D5HlCTH0.js → mini-calendar-day.component-Tj7wlWj7.js} +0 -0
  882. /package/{mini-calendar-month.component-CGAOxDtz.js → mini-calendar-month.component-DTod_RRs.js} +0 -0
  883. /package/{mini-calendar.component-_YJbFi4P.js → mini-calendar.component-BCDHUUZG.js} +0 -0
  884. /package/{navigation-action-common-Dcb95pqU.js → navigation-action-common-D_-gGOYm.js} +0 -0
  885. /package/{navigation-list.component-BhV-uAfU.js → navigation-list.component-DnB7FrKG.js} +0 -0
  886. /package/{navigation-marker.component-CIUu5VVZ.js → navigation-marker.component-B7hmb9iS.js} +0 -0
  887. /package/{navigation-section.component-DwEXj603.js → navigation-section.component-C86pkDLG.js} +0 -0
  888. /package/{navigation.component-BYqJ9Cqt.js → navigation.component-BzgTWUiD.js} +0 -0
  889. /package/{notification.component-DA7sZ3m4.js → notification.component-Cor1vQGU.js} +0 -0
  890. /package/{optgroup-base-element-DWKHCat8.js → optgroup-base-element-C8LeifgF.js} +0 -0
  891. /package/{option-hint.component-Goyhv5ss.js → option-hint.component-kPdwK61Z.js} +0 -0
  892. /package/{option.component-uzmmREt4.js → option.component-DF9ZTj12.js} +0 -0
  893. /package/{overlay.component-r0Rp_b-3.js → overlay.component-CAN3BK7B.js} +0 -0
  894. /package/{paginator.component-D_fV260x.js → paginator.component-CsSs5q4D.js} +0 -0
  895. /package/{popover.component-CktV5oiV.js → popover.component-eBpmXakQ.js} +0 -0
  896. /package/{radio-button-common-CCQ3bJPI.js → radio-button-common-QHPueQrm.js} +0 -0
  897. /package/{sbb-tokens-BJzKBCf8.js → sbb-tokens-BtASsKhQ.js} +0 -0
  898. /package/{screen-reader-only.component-B06hVxPg.js → screen-reader-only.component-DEOirlKo.js} +0 -0
  899. /package/{select.component-BZbDGrv8.js → select.component-CsIiislt.js} +0 -0
  900. /package/{sidebar-close-button.component-B9QGnQLs.js → sidebar-close-button.component-D0JS2p5L.js} +0 -0
  901. /package/{sidebar-container.component-BW24Ap9F.js → sidebar-container.component-BFxFShTF.js} +0 -0
  902. /package/{sidebar-content.component-DSTp9Iu6.js → sidebar-content.component-M7FGd8SF.js} +0 -0
  903. /package/{sidebar-title.component-COjEsAkk.js → sidebar-title.component-BfjxBPpH.js} +0 -0
  904. /package/{sidebar.component-C2YYQj-Q.js → sidebar.component-zRpWDGKR.js} +0 -0
  905. /package/{signet.component-CixiIpLj.js → signet.component-Kwdy4Uor.js} +0 -0
  906. /package/{skiplink-list.component-CINJgt_l.js → skiplink-list.component-BRJk6HvC.js} +0 -0
  907. /package/{slider.component-BhtuB-8p.js → slider.component-CLNsu212.js} +0 -0
  908. /package/{status.component-BZ8zajOL.js → status.component-CmLdUn37.js} +0 -0
  909. /package/{step-label.component-COJYo-MI.js → step-label.component-DTkviH8Q.js} +0 -0
  910. /package/{step.component-BIOQdZVR.js → step.component-eKVtXlT4.js} +0 -0
  911. /package/{stepper.component-D2vhtDCy.js → stepper.component-yWCQtYWc.js} +0 -0
  912. /package/{sticky-bar.component-CYCOEGz7.js → sticky-bar.component-BqZVKHc7.js} +0 -0
  913. /package/{styles-uZGSPqgK.js → styles-CsBiCI23.js} +0 -0
  914. /package/{styles-DpIXFSVm.js → styles-DYZWSKeo.js} +0 -0
  915. /package/{tab-group.component-nprcnwFB.js → tab-group.component-DE4H3_H4.js} +0 -0
  916. /package/{tab-label.component-BeLuYRBg.js → tab-label.component-BnxPGws1.js} +0 -0
  917. /package/{tab-nav-bar.component-Du1JyNtu.js → tab-nav-bar.component-n5TiTWxE.js} +0 -0
  918. /package/{tab.component-D8Rz05Fo.js → tab.component-BrIEFDxk.js} +0 -0
  919. /package/{table-wrapper.component-DkaL4T5V.js → table-wrapper.component-CoqozurQ.js} +0 -0
  920. /package/{tag-group.component-CW6Z9-P6.js → tag-group.component-DiIp6zS1.js} +0 -0
  921. /package/{tag.component-CvZpvIuw.js → tag.component-CfK6JwsO.js} +0 -0
  922. /package/{teaser-hero.component-Dolg4-Yz.js → teaser-hero.component-DjodzcX_.js} +0 -0
  923. /package/{teaser-product-common-q2IZHbkr.js → teaser-product-common-DkumwiRA.js} +0 -0
  924. /package/{teaser-product.component-DVdyKe6h.js → teaser-product.component-DiOhM_rU.js} +0 -0
  925. /package/{teaser.component-BO50F7ky.js → teaser.component-C7sJLVMk.js} +0 -0
  926. /package/{time-input.component-ChWhDF5l.js → time-input.component-DT1BOC8m.js} +0 -0
  927. /package/{timetable-form-details.component-Du6WPn3y.js → timetable-form-details.component-DI5Mr8-O.js} +0 -0
  928. /package/{timetable-form-field.component-Cb3FYKL7.js → timetable-form-field.component-2kEWygEC.js} +0 -0
  929. /package/{timetable-form-swap-button.component-ByQDf7oy.js → timetable-form-swap-button.component-BGP-OsHD.js} +0 -0
  930. /package/{timetable-form.component-BqokC_4S.js → timetable-form.component-BqdKekNM.js} +0 -0
  931. /package/{timetable-occupancy-icon.component-BhXQSFZR.js → timetable-occupancy-icon.component-ZrzpXaeV.js} +0 -0
  932. /package/{timetable-occupancy.component-DnaQ0TIW.js → timetable-occupancy.component-DMztYVmj.js} +0 -0
  933. /package/{title-base-D4nE41tH.js → title-base-BDYkc8fG.js} +0 -0
  934. /package/{toast.component-B9Gm8Kls.js → toast.component-DbILctK5.js} +0 -0
  935. /package/{toggle-check.component-BcxMe5Zi.js → toggle-check.component-CPewUjOg.js} +0 -0
  936. /package/{toggle-option.component-DvdEjT2c.js → toggle-option.component-NMfqwd12.js} +0 -0
  937. /package/{toggle.component-Lnj5TugJ.js → toggle.component-D1n5S5ev.js} +0 -0
  938. /package/{tooltip.component-DGG7Da2h.js → tooltip.component-X45T6iQH.js} +0 -0
  939. /package/{train-blocked-passage.component-Dz7lD_V1.js → train-blocked-passage.component-RIMoX91U.js} +0 -0
  940. /package/{train-formation.component-CGTqQgp7.js → train-formation.component-B17tc6cx.js} +0 -0
  941. /package/{train-wagon.component-BW-JxcK6.js → train-wagon.component-bGA2a-0M.js} +0 -0
  942. /package/{train.component-B_Nlu8Kh.js → train.component-V6FLqC82.js} +0 -0
  943. /package/{visual-checkbox.component-bB_pG0vn.js → visual-checkbox.component-eajUDpKu.js} +0 -0
@@ -489,4 +489,4 @@ var SbbPaginatorElement = (() => {
489
489
  //#endregion
490
490
  export { SbbPaginatorElement as t };
491
491
 
492
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC1jUnFKVzliYy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci9wYWdpbmF0b3Iuc2Nzcz9saXQmaW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC0tc2JiLXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQtbSk7XG4gIC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1tZXRhbCksIHZhcigtLXNiYi1jb2xvci1zbW9rZSkpO1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLXdpZHRoOiAwO1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGU6IG5vbmU7XG4gIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogbm9uZTtcbiAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldDogMDtcbiAgLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1lYXNpbmc6IHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcbiAgLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG4gIC0tc2JiLXBhZ2luYXRvci1qdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAtLXNiYi1wYWdpbmF0b3Itd3JhcHBpbmctZ3JvdXAtd3JhcDogd3JhcC1yZXZlcnNlO1xuICAtLXNiYi1wYWdpbmF0b3Itd3JhcDogd3JhcDtcbn1cblxuOmhvc3QoW3NpemU9J3MnXSkge1xuICAtLXNiYi1wYWdpbmF0b3ItaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKTtcbn1cblxuOmhvc3QoW25lZ2F0aXZlXSkge1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcbn1cblxuOmhvc3QoW3BhZ2VyLXBvc2l0aW9uPSdlbmQnXSkge1xuICAtLXNiYi1wYWdpbmF0b3ItanVzdGlmeS1jb250ZW50OiBlbmQ7XG4gIC0tc2JiLXBhZ2luYXRvci13cmFwcGluZy1ncm91cC13cmFwOiB3cmFwO1xuICAtLXNiYi1wYWdpbmF0b3Itd3JhcDogd3JhcC1yZXZlcnNlO1xufVxuXG4uc2JiLXBhZ2luYXRvcixcbi5zYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtM3gpIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTZ4KTtcbiAganVzdGlmeS1jb250ZW50OiB2YXIoLS1zYmItcGFnaW5hdG9yLWp1c3RpZnktY29udGVudCk7XG59XG5cbi5zYmItcGFnaW5hdG9yIHtcbiAgZmxleC13cmFwOiB2YXIoLS1zYmItcGFnaW5hdG9yLXdyYXApO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItcGFnaW5hdG9yLWhlaWdodCk7XG59XG5cbi5zYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cCB7XG4gIGZsZXgtd3JhcDogdmFyKC0tc2JiLXBhZ2luYXRvci13cmFwcGluZy1ncm91cC13cmFwKTtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2Utc2l6ZS1vcHRpb25zIHtcbiAgQGluY2x1ZGUgc2JiLnRleHQtcy0tcmVndWxhcjtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcik7XG5cbiAgLy8gUmVhcHBseSBwYXJ0IG9mIHRoZSBnbG9iYWwgZm9ybS1maWVsZCBjc3MgdGhhdCBkb2VzIG5vdCBwaWVyY2UgdGhlIHNoYWRvdyBET00uXG4gIHNiYi1zZWxlY3Qge1xuICAgIEBpbmNsdWRlIHNiYi50ZXh0LW0tLXJlZ3VsYXI7XG5cbiAgICBjb2xvcjogdmFyKC0tc2JiLWZvcm0tZmllbGQtdGV4dC1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zYmItZm9ybS1maWVsZC1pbnB1dC10ZXh0LXNpemUpO1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2JiLWZvcm0tZmllbGQtc2VsZWN0LWlubGluZS1wYWRkaW5nLWVuZCk7XG4gIH1cbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2VzIHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzLFxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlciB7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXMtLXJlZ3VsYXI7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogdmFyKC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yKTtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzLWl0ZW0sXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHhzKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXh4cyk7XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbSB7XG4gIEBpbmNsdWRlIHNiYi5idXR0b24tcmVzZXQ7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXMtLXJlZ3VsYXI7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1jdXJzb3IpO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3IpO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZWFzaW5nKTtcblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLXdpZHRoKSB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLXN0eWxlKVxuICAgICAgdmFyKC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtaW5maW5pdHkpO1xuICAgIGluc2V0OiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtaW5zZXQpO1xuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIHByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXIsIGluc2V0O1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1wYWdpbmF0b3ItYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcblxuICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1zZWxlY3RlZF0ge1xuICAgIEBpbmNsdWRlIHNiYi50ZXh0LS1ib2xkO1xuXG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3I6IHZhcigtLXNiYi1jb2xvci0zKTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTIpO1xuXG4gICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTItbmVnYXRpdmUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1ib3JkZXItY29sb3ItNSk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xuXG4gICAgJjpub3QoW2RhdGEtc2VsZWN0ZWRdKSB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpO1xuICAgIH1cblxuICAgIDpob3N0KFtuZWdhdGl2ZV0pICYge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogR3JheVRleHQ7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogR3JheVRleHQ7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXM7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldDogY2FsYyh2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTJ4KSAqIC0xKTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci10cmFuc2xhdGUteS1jb250ZW50LWhvdmVyOiAje3NiYi5weC10by1yZW0tYnVpbGQoLTEpfTtcblxuICAgICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTQpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWluc2V0OiAwO1xuICAgIC0tc2JiLXBhZ2luYXRvci10cmFuc2xhdGUteS1jb250ZW50LWhvdmVyOiAwO1xuXG4gICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItNC1uZWdhdGl2ZSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbS1sYWJlbCB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tc2JiLXBhZ2luYXRvci10cmFuc2xhdGUteS1jb250ZW50LWhvdmVyLCAje3NiYi5weC10by1yZW0tYnVpbGQoMCl9KSk7XG59XG5cbi8vIE5lZWRlZCBmb3IgdGhlIHNiYi1zZWxlY3Rcbi5zYmItc2NyZWVuLXJlYWRlci1vbmx5IHtcbiAgQGluY2x1ZGUgc2JiLnNjcmVlbi1yZWFkZXItb25seTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaTE4bkl0ZW1zUGVyUGFnZSwgaTE4blBhZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4udHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTZWxlY3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2VsZWN0LnRzJztcbmltcG9ydCB7IFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi9wYWdpbmF0b3ItY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vcGFnaW5hdG9yLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vZm9ybS1maWVsZC50cyc7XG5pbXBvcnQgJy4uLy4uL3NlbGVjdC50cyc7XG5pbXBvcnQgJy4uLy4uL29wdGlvbi50cyc7XG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS50cyc7XG5cbmNvbnN0IE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEID0gMztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHBhZ2luYXRvciBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJQYWdpbmF0b3JFbGVtZW50IGV4dGVuZHMgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluKFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1wYWdpbmF0b3InO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHBhZ2U6ICdwYWdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIGF2YWlsYWJsZSBgcGFnZVNpemVgIGNob2ljZXMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3BhZ2Utc2l6ZS1vcHRpb25zJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbXTtcblxuICAvKipcbiAgICogUG9zaXRpb24gb2YgdGhlIHByZXYvbmV4dCBidXR0b25zOiBpZiBgcGFnZVNpemVPcHRpb25zYCBpcyBzZXQsXG4gICAqIHRoZSBzYmItc2VsZWN0IGZvciB0aGUgcGFnZVNpemUgY2hhbmdlIHdpbGwgYmUgcG9zaXRpb25lZCBvcHBvc2l0ZWx5LCB3aXRoIHRoZSBwYWdlIG51bWJlcnMgYWx3YXlzIGluIHRoZSBjZW50ZXIuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlci1wb3NpdGlvbicsIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIHBhZ2VyUG9zaXRpb246XG4gICAgfCAnc3RhcnQnXG4gICAgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIEFjY2Vzc2liaWxpdHkgbGFiZWwgZm9yIHRoZSBpdGVtcyBwZXIgcGFnZS4gRGVmYXVsdHMgdG8gYEl0ZW1zIHBlciBwYWdlLmAuXG4gICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktaXRlbXMtcGVyLXBhZ2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5SXRlbXNQZXJQYWdlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgX21hcmtGb3JGb2N1cyA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLyoqIFRhYiBuYXZpZ2F0aW9uIGNhbiBmb3JjZSBhIHJlcmVuZGVyIHdoZW4gZWxsaXBzaXMgZWxlbWVudHMgbmVlZCB0byBiZSBkaXNwbGF5ZWQ7IHRoZSBmb2N1cyBtdXN0IHN0YXkgb24gdGhlIGNvcnJlY3QgZWxlbWVudC4gKi9cbiAgICBpZiAodGhpcy5fbWFya0ZvckZvY3VzKSB7XG4gICAgICBjb25zdCBmb2N1c0VsZW1lbnQgPSB0aGlzLl9nZXRWaXNpYmxlUGFnZXMoKS5maW5kKFxuICAgICAgICAoZSkgPT4gdGhpcy5wYWdlSW5kZXggPT09ICtlLmdldEF0dHJpYnV0ZSgnZGF0YS1pbmRleCcpISxcbiAgICAgICk7XG4gICAgICBpZiAoZm9jdXNFbGVtZW50KSB7XG4gICAgICAgIChmb2N1c0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgZGlzcGxheWVkIHBhZ2UgZWxlbWVudHMuICovXG4gIHByaXZhdGUgX2dldFZpc2libGVQYWdlcygpOiBFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvckFsbCgnLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlci1pdGVtJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgcGFnZXMgc2V0IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcnVsZXM6XG4gICAqICAtIHRoZSBmaXJzdCBwYWdlIG11c3QgYWx3YXlzIGJlIHZpc2libGU7XG4gICAqICAtIHRoZSBsYXN0IHBhZ2UgbXVzdCBhbHdheXMgYmUgdmlzaWJsZTtcbiAgICogIC0gaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRURgIG90aGVyIHBhZ2VzLCBlbGxpcHNpcyBidXR0b24gbXVzdCBiZSB1c2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VmlzaWJsZVBhZ2VzSW5kZXgoKTogKG51bWJlciB8ICdlbGxpcHNpcycpW10ge1xuICAgIGNvbnN0IHRvdGFsUGFnZXM6IG51bWJlciA9IHRoaXMubnVtYmVyT2ZQYWdlcygpO1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciA9IHRoaXMucGFnZUluZGV4O1xuXG4gICAgaWYgKHRvdGFsUGFnZXMgPD0gTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgKyAyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmFuZ2UodG90YWxQYWdlcyk7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50UGFnZUluZGV4IDwgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQpIHtcbiAgICAgIHJldHVybiBbLi4udGhpcy5fcmFuZ2UoTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgKyAxKSwgJ2VsbGlwc2lzJywgdG90YWxQYWdlcyAtIDFdO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudFBhZ2VJbmRleCA+PSB0b3RhbFBhZ2VzIC0gTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIDAsXG4gICAgICAgICdlbGxpcHNpcycsXG4gICAgICAgIC4uLnRoaXMuX3JhbmdlKE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEICsgMSwgdG90YWxQYWdlcyAtIDEgLSBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCksXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAwLFxuICAgICAgICAnZWxsaXBzaXMnLFxuICAgICAgICBjdXJyZW50UGFnZUluZGV4IC0gMSxcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleCxcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleCArIDEsXG4gICAgICAgICdlbGxpcHNpcycsXG4gICAgICAgIHRvdGFsUGFnZXMgLSAxLFxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhbiBhcnJheSBvZiBjb25zZWN1dGl2ZSBudW1iZXJzIGdpdmVuIHRoZSBsZW5ndGggYW5kIHRoZSBzdGFydGluZyB2YWx1ZS4gKi9cbiAgcHJpdmF0ZSBfcmFuZ2UobGVuZ3RoOiBudW1iZXIsIG9mZnNldDogbnVtYmVyID0gMCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoXywgaykgPT4gayArIG9mZnNldCk7XG4gIH1cblxuICBwcml2YXRlIF9vblBhZ2VOdW1iZXJDbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RQYWdlKGluZGV4KTtcblxuICAgIC8vIFdoZW4gdGhlIHBhZ2UgaXMgY2hhbmdlZCwgdGhlIG5ldyBjdXJyZW50IHBhZ2UgbWlnaHQgY2hhbmdlIGl0cyBwb3NpdGlvbi5cbiAgICAvLyBBZnRlciB0aGUgcmVuZGVyLCB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBmb2N1cyBzdGF5cyBvbiB0aGUgc2VsZWN0ZWQgcGFnZS5cbiAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZU9wdGlvbnMgJiYgdGhpcy5wYWdlU2l6ZU9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLXNpemUtb3B0aW9uc1wiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlbGVjdFwiXG4gICAgICAgICAgICAgID4ke3RoaXMuYWNjZXNzaWJpbGl0eUl0ZW1zUGVyUGFnZUxhYmVsXG4gICAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlJdGVtc1BlclBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgIDogaTE4bkl0ZW1zUGVyUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfTwvbGFiZWxcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzYmItZm9ybS1maWVsZFxuICAgICAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgICAgIHdpZHRoPVwiY29sbGFwc2VcIlxuICAgICAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2JiLXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIHZhbHVlPSR7dGhpcy5wYWdlU2l6ZU9wdGlvbnM/LmZpbmQoKGUpID0+IGUgPT09IHRoaXMucGFnZVNpemUpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZU9wdGlvbnMhWzBdfVxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHsoZTogRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICAodGhpcy5wYWdlU2l6ZSA9ICsoKGUudGFyZ2V0IGFzIFNiYlNlbGVjdEVsZW1lbnQpLnZhbHVlIGFzIHN0cmluZykpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTaXplT3B0aW9ucyEsXG4gICAgICAgICAgICAgICAgICAoZWxlbWVudCkgPT4gaHRtbGA8c2JiLW9wdGlvbiB2YWx1ZT0ke2VsZW1lbnR9PiR7ZWxlbWVudH08L3NiYi1vcHRpb24+YCxcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L3NiYi1zZWxlY3Q+XG4gICAgICAgICAgICA8L3NiYi1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgXG4gICAgICA6IG5vdGhpbmc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQYWdlTnVtYmVycygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8dWwgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlc1wiPlxuICAgICAgICAke3JlcGVhdChcbiAgICAgICAgICB0aGlzLl9nZXRWaXNpYmxlUGFnZXNJbmRleCgpLFxuICAgICAgICAgIChpdGVtOiBudW1iZXIgfCAnZWxsaXBzaXMnKTogVGVtcGxhdGVSZXN1bHQgPT5cbiAgICAgICAgICAgIGl0ZW0gPT09ICdlbGxpcHNpcydcbiAgICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tZWxsaXBzaXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1lbGxpcHNpcy1pdGVtXCI+4oCmPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgIDogaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgP2RhdGEtc2VsZWN0ZWQ9JHt0aGlzLnBhZ2VJbmRleCA9PT0gaXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaW5kZXg9JHtpdGVtfVxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke3RoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaTE4blBhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0gJHtpdGVtICsgMX1cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY3VycmVudD0ke3RoaXMucGFnZUluZGV4ID09PSBpdGVtID8gJ3RydWUnIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9vblBhZ2VOdW1iZXJDbGljayhpdGVtKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0tbGFiZWxcIj4ke2l0ZW0gKyAxfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICl9XG4gICAgICA8L3VsPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyUGFnaW5hdG9yKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGFnaW5hdG9yXCI+XG4gICAgICAgICR7XG4gICAgICAgICAgdGhpcy5wYWdlclBvc2l0aW9uID09PSAnc3RhcnQnXG4gICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclByZXZOZXh0QnV0dG9ucygpfSAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpfWBcbiAgICAgICAgICAgIDogaHRtbGAke3RoaXMuX3JlbmRlckl0ZW1QZXJQYWdlVGVtcGxhdGUoKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3dyYXBwaW5nLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9ICR7dGhpcy5yZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICB9PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXBhZ2luYXRvcic6IFNiYlBhZ2luYXRvckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
492
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC1EVC1zWnVGUy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci9wYWdpbmF0b3Iuc2Nzcz9saXQmaW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC0tc2JiLXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQtbSk7XG4gIC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1tZXRhbCksIHZhcigtLXNiYi1jb2xvci1zbW9rZSkpO1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLXdpZHRoOiAwO1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGU6IG5vbmU7XG4gIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogbm9uZTtcbiAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldDogMDtcbiAgLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1lYXNpbmc6IHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcbiAgLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG4gIC0tc2JiLXBhZ2luYXRvci1qdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAtLXNiYi1wYWdpbmF0b3Itd3JhcHBpbmctZ3JvdXAtd3JhcDogd3JhcC1yZXZlcnNlO1xuICAtLXNiYi1wYWdpbmF0b3Itd3JhcDogd3JhcDtcbn1cblxuOmhvc3QoW3NpemU9J3MnXSkge1xuICAtLXNiYi1wYWdpbmF0b3ItaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKTtcbn1cblxuOmhvc3QoW25lZ2F0aXZlXSkge1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcbn1cblxuOmhvc3QoW3BhZ2VyLXBvc2l0aW9uPSdlbmQnXSkge1xuICAtLXNiYi1wYWdpbmF0b3ItanVzdGlmeS1jb250ZW50OiBlbmQ7XG4gIC0tc2JiLXBhZ2luYXRvci13cmFwcGluZy1ncm91cC13cmFwOiB3cmFwO1xuICAtLXNiYi1wYWdpbmF0b3Itd3JhcDogd3JhcC1yZXZlcnNlO1xufVxuXG4uc2JiLXBhZ2luYXRvcixcbi5zYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtM3gpIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTZ4KTtcbiAganVzdGlmeS1jb250ZW50OiB2YXIoLS1zYmItcGFnaW5hdG9yLWp1c3RpZnktY29udGVudCk7XG59XG5cbi5zYmItcGFnaW5hdG9yIHtcbiAgZmxleC13cmFwOiB2YXIoLS1zYmItcGFnaW5hdG9yLXdyYXApO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItcGFnaW5hdG9yLWhlaWdodCk7XG59XG5cbi5zYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cCB7XG4gIGZsZXgtd3JhcDogdmFyKC0tc2JiLXBhZ2luYXRvci13cmFwcGluZy1ncm91cC13cmFwKTtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2Utc2l6ZS1vcHRpb25zIHtcbiAgQGluY2x1ZGUgc2JiLnRleHQtcy0tcmVndWxhcjtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcik7XG5cbiAgLy8gUmVhcHBseSBwYXJ0IG9mIHRoZSBnbG9iYWwgZm9ybS1maWVsZCBjc3MgdGhhdCBkb2VzIG5vdCBwaWVyY2UgdGhlIHNoYWRvdyBET00uXG4gIHNiYi1zZWxlY3Qge1xuICAgIEBpbmNsdWRlIHNiYi50ZXh0LW0tLXJlZ3VsYXI7XG5cbiAgICBjb2xvcjogdmFyKC0tc2JiLWZvcm0tZmllbGQtdGV4dC1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zYmItZm9ybS1maWVsZC1pbnB1dC10ZXh0LXNpemUpO1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tc2JiLWZvcm0tZmllbGQtc2VsZWN0LWlubGluZS1wYWRkaW5nLWVuZCk7XG4gIH1cbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2VzIHtcbiAgQGluY2x1ZGUgc2JiLmxpc3QtcmVzZXQ7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzLFxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlciB7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXMtLXJlZ3VsYXI7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogdmFyKC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yKTtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzLWl0ZW0sXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHhzKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXh4cyk7XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbSB7XG4gIEBpbmNsdWRlIHNiYi5idXR0b24tcmVzZXQ7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXMtLXJlZ3VsYXI7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1jdXJzb3IpO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3IpO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZWFzaW5nKTtcblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLXdpZHRoKSB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLXN0eWxlKVxuICAgICAgdmFyKC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtaW5maW5pdHkpO1xuICAgIGluc2V0OiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtaW5zZXQpO1xuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIHByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXIsIGluc2V0O1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1wYWdpbmF0b3ItYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBzYmIuZm9jdXMtb3V0bGluZTtcblxuICAgICAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1zZWxlY3RlZF0ge1xuICAgIEBpbmNsdWRlIHNiYi50ZXh0LS1ib2xkO1xuXG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3I6IHZhcigtLXNiYi1jb2xvci0zKTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTIpO1xuXG4gICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTItbmVnYXRpdmUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1ib3JkZXItY29sb3ItNSk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xuXG4gICAgJjpub3QoW2RhdGEtc2VsZWN0ZWRdKSB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpO1xuICAgIH1cblxuICAgIDpob3N0KFtuZWdhdGl2ZV0pICYge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogR3JheVRleHQ7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogR3JheVRleHQ7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXM7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldDogY2FsYyh2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTJ4KSAqIC0xKTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci10cmFuc2xhdGUteS1jb250ZW50LWhvdmVyOiAje3NiYi5weC10by1yZW0tYnVpbGQoLTEpfTtcblxuICAgICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTQpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWluc2V0OiAwO1xuICAgIC0tc2JiLXBhZ2luYXRvci10cmFuc2xhdGUteS1jb250ZW50LWhvdmVyOiAwO1xuXG4gICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItNC1uZWdhdGl2ZSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbS1sYWJlbCB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tc2JiLXBhZ2luYXRvci10cmFuc2xhdGUteS1jb250ZW50LWhvdmVyLCAje3NiYi5weC10by1yZW0tYnVpbGQoMCl9KSk7XG59XG5cbi8vIE5lZWRlZCBmb3IgdGhlIHNiYi1zZWxlY3Rcbi5zYmItc2NyZWVuLXJlYWRlci1vbmx5IHtcbiAgQGluY2x1ZGUgc2JiLnNjcmVlbi1yZWFkZXItb25seTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkudHMnO1xuaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaTE4bkl0ZW1zUGVyUGFnZSwgaTE4blBhZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4udHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS9zdHlsZXMudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTZWxlY3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2VsZWN0LnRzJztcbmltcG9ydCB7IFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi9wYWdpbmF0b3ItY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vcGFnaW5hdG9yLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vZm9ybS1maWVsZC50cyc7XG5pbXBvcnQgJy4uLy4uL3NlbGVjdC50cyc7XG5pbXBvcnQgJy4uLy4uL29wdGlvbi50cyc7XG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS50cyc7XG5cbmNvbnN0IE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEID0gMztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHBhZ2luYXRvciBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJQYWdpbmF0b3JFbGVtZW50IGV4dGVuZHMgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluKFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1wYWdpbmF0b3InO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHBhZ2U6ICdwYWdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIGF2YWlsYWJsZSBgcGFnZVNpemVgIGNob2ljZXMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3BhZ2Utc2l6ZS1vcHRpb25zJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbXTtcblxuICAvKipcbiAgICogUG9zaXRpb24gb2YgdGhlIHByZXYvbmV4dCBidXR0b25zOiBpZiBgcGFnZVNpemVPcHRpb25zYCBpcyBzZXQsXG4gICAqIHRoZSBzYmItc2VsZWN0IGZvciB0aGUgcGFnZVNpemUgY2hhbmdlIHdpbGwgYmUgcG9zaXRpb25lZCBvcHBvc2l0ZWx5LCB3aXRoIHRoZSBwYWdlIG51bWJlcnMgYWx3YXlzIGluIHRoZSBjZW50ZXIuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlci1wb3NpdGlvbicsIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIHBhZ2VyUG9zaXRpb246XG4gICAgfCAnc3RhcnQnXG4gICAgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIEFjY2Vzc2liaWxpdHkgbGFiZWwgZm9yIHRoZSBpdGVtcyBwZXIgcGFnZS4gRGVmYXVsdHMgdG8gYEl0ZW1zIHBlciBwYWdlLmAuXG4gICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktaXRlbXMtcGVyLXBhZ2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5SXRlbXNQZXJQYWdlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgX21hcmtGb3JGb2N1cyA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLyoqIFRhYiBuYXZpZ2F0aW9uIGNhbiBmb3JjZSBhIHJlcmVuZGVyIHdoZW4gZWxsaXBzaXMgZWxlbWVudHMgbmVlZCB0byBiZSBkaXNwbGF5ZWQ7IHRoZSBmb2N1cyBtdXN0IHN0YXkgb24gdGhlIGNvcnJlY3QgZWxlbWVudC4gKi9cbiAgICBpZiAodGhpcy5fbWFya0ZvckZvY3VzKSB7XG4gICAgICBjb25zdCBmb2N1c0VsZW1lbnQgPSB0aGlzLl9nZXRWaXNpYmxlUGFnZXMoKS5maW5kKFxuICAgICAgICAoZSkgPT4gdGhpcy5wYWdlSW5kZXggPT09ICtlLmdldEF0dHJpYnV0ZSgnZGF0YS1pbmRleCcpISxcbiAgICAgICk7XG4gICAgICBpZiAoZm9jdXNFbGVtZW50KSB7XG4gICAgICAgIChmb2N1c0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgZGlzcGxheWVkIHBhZ2UgZWxlbWVudHMuICovXG4gIHByaXZhdGUgX2dldFZpc2libGVQYWdlcygpOiBFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvckFsbCgnLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlci1pdGVtJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgcGFnZXMgc2V0IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcnVsZXM6XG4gICAqICAtIHRoZSBmaXJzdCBwYWdlIG11c3QgYWx3YXlzIGJlIHZpc2libGU7XG4gICAqICAtIHRoZSBsYXN0IHBhZ2UgbXVzdCBhbHdheXMgYmUgdmlzaWJsZTtcbiAgICogIC0gaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRURgIG90aGVyIHBhZ2VzLCBlbGxpcHNpcyBidXR0b24gbXVzdCBiZSB1c2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VmlzaWJsZVBhZ2VzSW5kZXgoKTogKG51bWJlciB8ICdlbGxpcHNpcycpW10ge1xuICAgIGNvbnN0IHRvdGFsUGFnZXM6IG51bWJlciA9IHRoaXMubnVtYmVyT2ZQYWdlcygpO1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciA9IHRoaXMucGFnZUluZGV4O1xuXG4gICAgaWYgKHRvdGFsUGFnZXMgPD0gTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgKyAyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmFuZ2UodG90YWxQYWdlcyk7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50UGFnZUluZGV4IDwgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQpIHtcbiAgICAgIHJldHVybiBbLi4udGhpcy5fcmFuZ2UoTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgKyAxKSwgJ2VsbGlwc2lzJywgdG90YWxQYWdlcyAtIDFdO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudFBhZ2VJbmRleCA+PSB0b3RhbFBhZ2VzIC0gTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIDAsXG4gICAgICAgICdlbGxpcHNpcycsXG4gICAgICAgIC4uLnRoaXMuX3JhbmdlKE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEICsgMSwgdG90YWxQYWdlcyAtIDEgLSBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCksXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAwLFxuICAgICAgICAnZWxsaXBzaXMnLFxuICAgICAgICBjdXJyZW50UGFnZUluZGV4IC0gMSxcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleCxcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleCArIDEsXG4gICAgICAgICdlbGxpcHNpcycsXG4gICAgICAgIHRvdGFsUGFnZXMgLSAxLFxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhbiBhcnJheSBvZiBjb25zZWN1dGl2ZSBudW1iZXJzIGdpdmVuIHRoZSBsZW5ndGggYW5kIHRoZSBzdGFydGluZyB2YWx1ZS4gKi9cbiAgcHJpdmF0ZSBfcmFuZ2UobGVuZ3RoOiBudW1iZXIsIG9mZnNldDogbnVtYmVyID0gMCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoXywgaykgPT4gayArIG9mZnNldCk7XG4gIH1cblxuICBwcml2YXRlIF9vblBhZ2VOdW1iZXJDbGljayhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RQYWdlKGluZGV4KTtcblxuICAgIC8vIFdoZW4gdGhlIHBhZ2UgaXMgY2hhbmdlZCwgdGhlIG5ldyBjdXJyZW50IHBhZ2UgbWlnaHQgY2hhbmdlIGl0cyBwb3NpdGlvbi5cbiAgICAvLyBBZnRlciB0aGUgcmVuZGVyLCB3ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBmb2N1cyBzdGF5cyBvbiB0aGUgc2VsZWN0ZWQgcGFnZS5cbiAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZU9wdGlvbnMgJiYgdGhpcy5wYWdlU2l6ZU9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLXNpemUtb3B0aW9uc1wiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlbGVjdFwiXG4gICAgICAgICAgICAgID4ke3RoaXMuYWNjZXNzaWJpbGl0eUl0ZW1zUGVyUGFnZUxhYmVsXG4gICAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlJdGVtc1BlclBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgIDogaTE4bkl0ZW1zUGVyUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfTwvbGFiZWxcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzYmItZm9ybS1maWVsZFxuICAgICAgICAgICAgICBib3JkZXJsZXNzXG4gICAgICAgICAgICAgIHdpZHRoPVwiY29sbGFwc2VcIlxuICAgICAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2JiLXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIHZhbHVlPSR7dGhpcy5wYWdlU2l6ZU9wdGlvbnM/LmZpbmQoKGUpID0+IGUgPT09IHRoaXMucGFnZVNpemUpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZU9wdGlvbnMhWzBdfVxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHsoZTogRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICAodGhpcy5wYWdlU2l6ZSA9ICsoKGUudGFyZ2V0IGFzIFNiYlNlbGVjdEVsZW1lbnQpLnZhbHVlIGFzIHN0cmluZykpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTaXplT3B0aW9ucyEsXG4gICAgICAgICAgICAgICAgICAoZWxlbWVudCkgPT4gaHRtbGA8c2JiLW9wdGlvbiB2YWx1ZT0ke2VsZW1lbnR9PiR7ZWxlbWVudH08L3NiYi1vcHRpb24+YCxcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L3NiYi1zZWxlY3Q+XG4gICAgICAgICAgICA8L3NiYi1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgXG4gICAgICA6IG5vdGhpbmc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQYWdlTnVtYmVycygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8dWwgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlc1wiPlxuICAgICAgICAke3JlcGVhdChcbiAgICAgICAgICB0aGlzLl9nZXRWaXNpYmxlUGFnZXNJbmRleCgpLFxuICAgICAgICAgIChpdGVtOiBudW1iZXIgfCAnZWxsaXBzaXMnKTogVGVtcGxhdGVSZXN1bHQgPT5cbiAgICAgICAgICAgIGl0ZW0gPT09ICdlbGxpcHNpcydcbiAgICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tZWxsaXBzaXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1lbGxpcHNpcy1pdGVtXCI+4oCmPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgIDogaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgP2RhdGEtc2VsZWN0ZWQ9JHt0aGlzLnBhZ2VJbmRleCA9PT0gaXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaW5kZXg9JHtpdGVtfVxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke3RoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaTE4blBhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0gJHtpdGVtICsgMX1cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY3VycmVudD0ke3RoaXMucGFnZUluZGV4ID09PSBpdGVtID8gJ3RydWUnIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9vblBhZ2VOdW1iZXJDbGljayhpdGVtKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0tbGFiZWxcIj4ke2l0ZW0gKyAxfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICl9XG4gICAgICA8L3VsPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyUGFnaW5hdG9yKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGFnaW5hdG9yXCI+XG4gICAgICAgICR7XG4gICAgICAgICAgdGhpcy5wYWdlclBvc2l0aW9uID09PSAnc3RhcnQnXG4gICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclByZXZOZXh0QnV0dG9ucygpfSAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpfWBcbiAgICAgICAgICAgIDogaHRtbGAke3RoaXMuX3JlbmRlckl0ZW1QZXJQYWdlVGVtcGxhdGUoKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3dyYXBwaW5nLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9ICR7dGhpcy5yZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICB9PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXBhZ2luYXRvcic6IFNiYlBhZ2luYXRvckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -1,6 +1,6 @@
1
1
  import { SbbPaginatorCommonElementMixin } from "./paginator/common/paginator-common.js";
2
- import { t as SbbCompactPaginatorElement } from "./compact-paginator.component-CCDP0TMd.js";
3
- import { t as SbbPaginatorElement } from "./paginator.component-cRqJW9bc.js";
2
+ import { t as SbbCompactPaginatorElement } from "./compact-paginator.component-BSTPWGJx.js";
3
+ import { t as SbbPaginatorElement } from "./paginator.component-DT-sZuFS.js";
4
4
  import "./paginator.pure.js";
5
5
  //#region src/elements/paginator.ts
6
6
  /** @entrypoint */
@@ -1,4 +1,4 @@
1
1
  import { SbbPaginatorCommonElementMixin } from "./paginator/common/paginator-common.js";
2
- import { t as SbbCompactPaginatorElement } from "./compact-paginator.component-CCDP0TMd.js";
3
- import { t as SbbPaginatorElement } from "./paginator.component-cRqJW9bc.js";
2
+ import { t as SbbCompactPaginatorElement } from "./compact-paginator.component-BSTPWGJx.js";
3
+ import { t as SbbPaginatorElement } from "./paginator.component-DT-sZuFS.js";
4
4
  export { SbbCompactPaginatorElement, SbbPaginatorCommonElementMixin, SbbPaginatorElement };
@@ -1,2 +1,2 @@
1
- import { n as SbbPopoverElement, t as SbbPopoverBaseElement } from "../popover.component-BujfGgbD.js";
1
+ import { n as SbbPopoverElement, t as SbbPopoverBaseElement } from "../popover.component-CLwOes_-.js";
2
2
  export { SbbPopoverBaseElement, SbbPopoverElement };
@@ -743,4 +743,4 @@ var SbbPopoverElement = (() => {
743
743
  //#endregion
744
744
  export { SbbPopoverElement as n, SbbPopoverBaseElement as t };
745
745
 
746
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQtQnVqZkdnYkQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BvcG92ZXIvcG9wb3Zlci5zY3NzP2xpdCZpbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXBvcG92ZXItcG9zaXRpb246IGFic29sdXRlO1xuICAtLXNiYi1wb3BvdmVyLXBvc2l0aW9uLXg6IDA7XG4gIC0tc2JiLXBvcG92ZXItcG9zaXRpb24teTogMDtcbiAgLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gIC0tc2JiLXBvcG92ZXItYXJyb3ctcG9zaXRpb24teDogMDtcbiAgLS1zYmItcG9wb3Zlci1tYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSk7XG4gIC0tc2JiLXBvcG92ZXItaW5zZXQ6IDAgYXV0byBhdXRvIDA7XG4gIC0tc2JiLXBvcG92ZXItYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtOHgpO1xuICAtLXNiYi1wb3BvdmVyLXBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgLS1zYmItcG9wb3Zlci1iYWNrZ3JvdW5kOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xKTtcbiAgLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1lYXNpbmc6IGVhc2Utb3V0O1xuICAtLXNiYi1wb3BvdmVyLXRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkpO1xuXG4gIC8vIEFzIHRoZSBwb3BvdmVyIGhhcyBhbHdheXMgYSB3aGl0ZSBiYWNrZ3JvdW5kLCB3ZSBoYXZlIHRvIGZpeCB0aGUgZm9jdXMgb3V0bGluZSBjb2xvclxuICAvLyB0byBkZWZhdWx0IGNvbG9yIGZvciBjYXNlcyB3aGVyZSB0aGUgcG9wb3ZlciBpcyB1c2VkIGluIGEgbmVnYXRpdmUgY29udGV4dC5cbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kZWZhdWx0KSxcbiAgICB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKVxuICApO1xuXG4gIC8vIFVzZSAhaW1wb3J0YW50IGhlcmUgdG8gbm90IGludGVyZmVyZSB3aXRoIEZpcmVmb3ggZm9jdXMgcmluZyBkZWZpbml0aW9uXG4gIC8vIHdoaWNoIGFwcGVhcnMgaW4gbm9ybWFsaXplIENTUyBvZiBzZXZlcmFsIGZyYW1ld29ya3MuXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLS1zYmItcG9wb3Zlci1pbnNldDogMDtcbn1cblxuOmhvc3QoOnN0YXRlKHBvc2l0aW9uLWFib3ZlKSkge1xuICAtLXNiYi1wb3BvdmVyLXRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSAqIC0xKSk7XG59XG5cbjpob3N0KDpub3QoW2hpZGUtY2xvc2UtYnV0dG9uXSwgOnN0YXRlKGhvdmVyLXRyaWdnZXIpKSkge1xuICAtLXNiYi1wb3BvdmVyLW1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc2JiLXNpemUtZWxlbWVudC14cykgKyAyICogdmFyKC0tc2JiLXBvcG92ZXItcGFkZGluZykpO1xufVxuXG4vLyBQb3BvdmVyIGFycm93IGFuZCBhcnJvdyB0b3AgY292ZXJcbi5zYmItcG9wb3Zlcjo6YWZ0ZXIsXG4uc2JiLXBvcG92ZXJfX2NvbnRlbnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogdmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSk7XG4gIGxlZnQ6IHZhcigtLXNiYi1wb3BvdmVyLWFycm93LXBvc2l0aW9uLXgpO1xuICBib3R0b206IGNhbGMoMTAwJSAtIGNhbGModmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSkgLyAyKSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1wb3BvdmVyLWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0yeCkgMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4uc2JiLXBvcG92ZXJfX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1wb3BvdmVyLWluc2V0KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IHZhcigtLXNiYi1wb3BvdmVyLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpO1xufVxuXG4uc2JiLXBvcG92ZXIge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQpO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXBvcG92ZXItcG9zaXRpb24pO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB0b3A6IHZhcigtLXNiYi1wb3BvdmVyLXBvc2l0aW9uLXkpO1xuICBib3R0b206IHVuc2V0O1xuICBsZWZ0OiB2YXIoLS1zYmItcG9wb3Zlci1wb3NpdGlvbi14KTtcbiAgcmlnaHQ6IHVuc2V0O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1wb3BvdmVyLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiAwO1xuICBtYXgtd2lkdGg6IHZhcigtLXNiYi1wb3BvdmVyLW1heC13aWR0aCk7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBvcG92ZXItYmFja2dyb3VuZCk7XG4gIG91dGxpbmU6IG5vbmU7XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBjbG9zZTtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3BvdmVyIGFycm93XG4gICY6OmFmdGVyIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQpO1xuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICB9XG5cbiAgICA6aG9zdCg6c3RhdGUocG9zaXRpb24tYWJvdmUpKSAmIHtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gY2FsYyh2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKSAvIDIpKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxuXG4gIC8vIFRyYW5zcGFyZW50IGFyZWEgd2hpY2ggaW5jcmVhc2VzIGhvdmVyIGFyZWEgaW4gb3JkZXIgdG8gbm90IHRyaWdnZXIgY2xvc2luZyB0b28gZWFybHkuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgOmhvc3QoOnN0YXRlKHBvc2l0aW9uLWJlbG93KSkgJiB7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogY2FsYygtMSAqIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTZ4KSk7XG4gICAgfVxuXG4gICAgOmhvc3QoOnN0YXRlKHBvc2l0aW9uLWFib3ZlKSkgJiB7XG4gICAgICBpbnNldC1ibG9jay1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC02eCkpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLXBvcG92ZXJfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXBvcG92ZXItYm9yZGVyLXJhZGl1cyk7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1wb3BvdmVyLXBhZGRpbmcpIDA7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItcG9wb3Zlci1wYWRkaW5nKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBvcG92ZXItYmFja2dyb3VuZCk7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLXBvcG92ZXItbWluLWhlaWdodCk7XG5cbiAgOmhvc3QoOnN0YXRlKHBvc2l0aW9uLWFib3ZlKSkgJiB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gY2FsYyh2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKSAvIDIpKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1wb3BvdmVyX19zY3JvbGxhYmxlLWNvbnRlbnQge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXBvcG92ZXItcGFkZGluZyk7XG4gIG1heC1oZWlnaHQ6IGNhbGModmFyKC0tc2JiLXBvcG92ZXItbWF4LWhlaWdodCkpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHZhcigtLXNiYi1wb3BvdmVyLXRyYW5zZm9ybSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB2YXIoLS1zYmItcG9wb3Zlci10cmFuc2Zvcm0pO1xuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eURlY2xhcmF0aW9uLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBJU19GT0NVU0FCTEVfUVVFUlksXG4gIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnLi4vY29yZS9hMTF5LnRzJztcbmltcG9ydCB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi9jb3JlL2NvbmZpZy50cyc7XG5pbXBvcnQge1xuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSxcbn0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIGlkUmVmZXJlbmNlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlIH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy50cyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VQb3BvdmVyIH0gZnJvbSAnLi4vY29yZS9pMThuLnRzJztcbmltcG9ydCB7IMm1c3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RWxlbWVudFBvc2l0aW9uLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxufSBmcm9tICcuLi9jb3JlL292ZXJsYXkudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vY29yZS9zdHlsZXMudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wb3BvdmVyLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24udHMnO1xuXG5jb25zdCBWRVJUSUNBTF9PRkZTRVQgPSAxNjtcbmNvbnN0IEhPUklaT05UQUxfT0ZGU0VUID0gMzI7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5jb25zdCBwb3BvdmVyc1JlZiA9IG5ldyBTZXQ8U2JiUG9wb3ZlckJhc2VFbGVtZW50PigpO1xuY29uc3QgcG9pbnRlckNvYXJzZSA9IGlzU2VydmVyID8gZmFsc2UgOiBtYXRjaE1lZGlhKFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlKS5tYXRjaGVzO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiUG9wb3ZlckJhc2VFbGVtZW50IGV4dGVuZHMgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBwb3BvdmVyIG92ZXJsYXkuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gVGhlIGVsZW1lbnQgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgYWZ0ZXIgY2xvc2luZyBiYXNlZCBvbiB3aGVyZSBpbiB0aGUgYmFja2Ryb3AgdGhlIHVzZXIgY2xpY2tzLlxuICBwcml2YXRlIF9uZXh0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfc2tpcENsb3NlRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXI/OiBib29sZWFuO1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudD86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblN0YXRlQ29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcENvbnRyb2xsZXIgPSBuZXcgU2JiRm9jdXNUcmFwQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfYmx1clRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBjbG9zZVRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJvdGVjdGVkIG92ZXJsYXk/OiBIVE1MRGl2RWxlbWVudDtcblxuICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgb24gdHJpZ2dlciBjbGljay4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuc3RhdGUgIT09ICdjbG9zaW5nJykgfHxcbiAgICAgICF0aGlzLm92ZXJsYXkgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSB0aGUgb3RoZXIgcG9wb3ZlcnNcbiAgICBmb3IgKGNvbnN0IHBvcG92ZXIgb2YgcG9wb3ZlcnNSZWYpIHtcbiAgICAgIGlmIChwb3BvdmVyLnN0YXRlID09PSAnb3BlbmVkJyB8fCBwb3BvdmVyLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgdGhpcy5fYXR0YWNoV2luZG93RXZlbnRzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgIHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9za2lwQ2xvc2VGb2N1cyA9IGZhbHNlO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBwb3BvdmVyLiAqL1xuICBwdWJsaWMgY2xvc2UodGFyZ2V0PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcG9wb3ZlckNsb3NlRWxlbWVudCA9IHRhcmdldDtcbiAgICBpZiAoIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KHsgY2xvc2VUYXJnZXQ6IHRhcmdldCA/PyBudWxsIH0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuXG4gICAgdGhpcy5vdmVybGF5Py5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG5cbiAgICBpZiAoIXRoaXMuX3NraXBDbG9zZUZvY3VzKSB7XG4gICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCB8fCB0aGlzLl90cmlnZ2VyRWxlbWVudDtcblxuICAgICAgLy8gVG8gZW5hYmxlIGZvY3VzaW5nIG90aGVyIGVsZW1lbnQgdGhhbiB0aGUgdHJpZ2dlciwgd2UgbmVlZCB0byBjYWxsIGZvY3VzKCkgYSBzZWNvbmQgdGltZS5cbiAgICAgIGVsZW1lbnRUb0ZvY3VzPy5mb2N1cygpO1xuICAgIH1cblxuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KHsgY2xvc2VUYXJnZXQ6IHRoaXMuX3BvcG92ZXJDbG9zZUVsZW1lbnQgPz8gbnVsbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICB0aGlzLl9zZXRQb3BvdmVyRm9jdXMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXIgPSAnbWFudWFsJztcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGBzYmItcG9wb3Zlci0keysrbmV4dElkfWA7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHBvcG92ZXJzUmVmLmFkZCh0aGlzKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICAvLyBDaGVja2luZyBmb3IgaG92ZXJUcmlnZ2VyIGlzIGEgc3BlY2lhbCBjYXNlLCBhcyBvbmx5IHRoZSBTYmJQb3BvdmVyRWxlbWVudFxuICAgIC8vIHN1YmNsYXNzIGhhcyB0aGlzIHByb3BlcnR5LlxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJyB8fCBuYW1lID09PSAnaG92ZXJUcmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgcG9wb3ZlcnNSZWYuZGVsZXRlKHRoaXMpO1xuICAgIGlmICh0aGlzLl9ibHVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2JsdXJUaW1lb3V0KTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHJpZ2dlciBpcyB2YWxpZCBhbmQgYXR0YWNoIGNsaWNrIGV2ZW50IGxpc3RlbmVycy5cbiAgcHJpdmF0ZSBfY29uZmlndXJlVHJpZ2dlcigpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlndXJlVHJpZ2dlcih0aGlzLl90cmlnZ2VyRWxlbWVudCA/PyBudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVUcmlnZ2VyKF9vbGRUcmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQsICdkaWFsb2cnLCB0aGlzLmlkLCB0aGlzLnN0YXRlKTtcblxuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5yZWdpc3RlclRyaWdnZXJMaXN0ZW5lcnModGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyVHJpZ2dlckxpc3RlbmVycyhzaWduYWw6IEFib3J0U2lnbmFsKTogdm9pZCB7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHsgc2lnbmFsIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgLy8gV2l0aG91dCBjYXB0dXJlLCBvdGhlciBzY3JvbGwgY29udGV4dHMgd291bGQgbm90IGJ1YmJsZSB0byB0aGlzIGV2ZW50IGxpc3RlbmVyLlxuICAgICAgLy8gQ2FwdHVyZSBhbGxvd3MgdXMgdG8gcmVhY3QgdG8gYWxsIHNjcm9sbCBjb250ZXh0cyBpbiB0aGlzIERPTS5cbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICAvLyBDbG9zZSBwb3BvdmVyIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lciwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2ssIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICAvLyBDbG9zZSB0aGUgcG9wb3ZlciBvbiBjbGljayBvZiBhbnkgZWxlbWVudCB0aGF0IGhhcyB0aGUgJ3NiYi1wb3BvdmVyLWNsb3NlJyBhdHRyaWJ1dGUuXG4gIHByaXZhdGUgX2Nsb3NlT25TYmJQb3BvdmVyQ2xvc2VDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZUVsZW1lbnQgPSBjb21wb3NlZFBhdGhIYXNBdHRyaWJ1dGUoZXZlbnQsICdzYmItcG9wb3Zlci1jbG9zZScsIHRoaXMpO1xuXG4gICAgaWYgKGNsb3NlRWxlbWVudCAmJiAhY2xvc2VFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgICAgIHRoaXMuY2xvc2UoY2xvc2VFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgcG9wb3Zlci5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25Qb3BvdmVyID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLm92ZXJsYXkhLCBldmVudCk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgcG9wb3ZlciBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGNvbXBvc2VkUGF0aCA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpO1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXIgJiZcbiAgICAgICFpc0V2ZW50T25FbGVtZW50KHRoaXMub3ZlcmxheSEsIGV2ZW50KSAmJlxuICAgICAgIWlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZlbnQpICYmXG4gICAgICAoIXRoaXMudHJpZ2dlciB8fCAhY29tcG9zZWRQYXRoLmluY2x1ZGVzKHRoaXMudHJpZ2dlcikpXG4gICAgKSB7XG4gICAgICB0aGlzLl9uZXh0Rm9jdXNlZEVsZW1lbnQgPSBjb21wb3NlZFBhdGhcbiAgICAgICAgLmZpbHRlcigoZWwpID0+IGVsIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KVxuICAgICAgICAuZmluZCgoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkubWF0Y2hlcyhJU19GT0NVU0FCTEVfUVVFUlkpKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8vIFNldCBwb3BvdmVyIHBvc2l0aW9uICh4LCB5KSB0byAnMCcgb25jZSB0aGUgcG9wb3ZlciBpcyBjbG9zZWQgYW5kIHRoZSB0cmFuc2l0aW9uIGVuZGVkIHRvIHByZXZlbnQgdGhlXG4gIC8vIHZpZXdwb3J0IGZyb20gb3ZlcmZsb3dpbmcuIEFuZCBzZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbmNlIHRoZSBwb3BvdmVyIGlzIG9wZW4uXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25Qb3BvdmVyQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldFBvcG92ZXJGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmb2N1c2VkID0gdGhpcy5fZm9jdXNUcmFwQ29udHJvbGxlci5mb2N1c0luaXRpYWxFbGVtZW50KCk7XG5cbiAgICBpZiAoIWZvY3VzZWQgJiYgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcikge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgIHRoaXMuZm9jdXMoKTtcblxuICAgICAgLy8gV2hlbiBhIGJsdXIgb2NjdXJzLCB3ZSBrbm93IHRoYXQgdGhlIHBvcG92ZXIgaGFzIHRvIGJlIGNsb3NlZCxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgcG9wb3Zlci5cbiAgICAgIC8vIFdoZW4gYSB3aW5kb3cvdGFiIGNoYW5nZSBvY2N1cnMsIGEgYmx1ciBldmVudCBpcyBhbHNvIGZpcmVkLiBIb3dldmVyLCB3aGVuIHRoZSBjdXJyZW50IHdpbmRvdy90YWJcbiAgICAgIC8vIGJlY29tZXMgYWN0aXZlIGFnYWluLCBpdCBmb2N1c2VzIG9uY2UgYWdhaW4gdGhlIHBvcG92ZXIuXG4gICAgICAvLyBUaGVyZWZvcmUsIHdlIGNhbm5vdCBsaXN0ZW4gdG8gdGhlIGJsdXIgZXZlbnQgb25seSBvbmNlLlxuICAgICAgLy8gVG8gcHJldmVudCBhY2NpZGVudGFsbHkgY2xvc2luZyB0aGUgcG9wb3Zlciwgd2UgbmVlZCB0byBjaGVjayBmb3IgdGhlIHdpbmRvdy90YWIgc3RhdGUuXG4gICAgICAvLyBXZSBjYW4gYWNoaWV2ZSB0aGlzIGJ5IHVzaW5nIHZpc2liaWxpdHlTdGF0ZSwgd2hpY2ggb25seSB3b3JrcyB3aXRoIHNldFRpbWVvdXQoKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoZTogRm9jdXNFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuX2JsdXJUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlICE9PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcblxuICAgICAgICAgICAgICAvLyBJbiBTYWZhcmkgb24gaU9TIGl0IGNhbiBvY2N1ciwgdGhhdCBhIGJsdXIgZXZlbnQgdHJpZ2dlcnMgb24gdGhlIHBvcG92ZXJcbiAgICAgICAgICAgICAgLy8gYWx0aG91Z2ggdGhlIGZvY3VzIHJlbWFpbnMgaW5zaWRlIHRoZSBwb3BvdmVyLlxuICAgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIG5lZWQgdG8gc3RvcCB0aGUgY2xvc2luZyBpZiB0aGUgcmVsYXRlZFRhcmdldCBpcyBjb250YWluZWQgaW4gdGhlIHBvcG92ZXIgb3IgaXQgaXMgdGhlIHRyaWdnZXIuXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCBhcyBOb2RlKSB8fCBlLnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMudHJpZ2dlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9za2lwQ2xvc2VGb2N1cyA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UG9wb3ZlclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vdmVybGF5IHx8ICF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvcG92ZXJQb3NpdGlvbiA9IGdldEVsZW1lbnRQb3NpdGlvbihcbiAgICAgIHRoaXMub3ZlcmxheSxcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LFxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXBvcG92ZXJfX2NvbnRhaW5lcicpISxcbiAgICAgIHtcbiAgICAgICAgdmVydGljYWxPZmZzZXQ6IFZFUlRJQ0FMX09GRlNFVCxcbiAgICAgICAgaG9yaXpvbnRhbE9mZnNldDogSE9SSVpPTlRBTF9PRkZTRVQsXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlSGVpZ2h0OiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IHZlcnRpY2FsUG9zaXRpb24gPSBwb3BvdmVyUG9zaXRpb24uYWxpZ25tZW50LnZlcnRpY2FsO1xuICAgIGZvciAoY29uc3QgcG9zaXRpb24gb2YgWydhYm92ZScsICdiZWxvdyddKSB7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKGBwb3NpdGlvbi0ke3Bvc2l0aW9ufWAsIHBvc2l0aW9uID09PSB2ZXJ0aWNhbFBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcnJvd1hQb3NpdGlvbiA9XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cbiAgICAgIHBvcG92ZXJQb3NpdGlvbi5sZWZ0ICtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmNsaWVudFdpZHRoIC8gMiAtXG4gICAgICA4OyAvLyBoYWxmIHRoZSBzaXplIG9mIHRoZSBwb3BvdmVyIGFycm93XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1wb3BvdmVyLXBvc2l0aW9uLXgnLCBgJHtwb3BvdmVyUG9zaXRpb24ubGVmdH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItcG9zaXRpb24teScsIGAke3BvcG92ZXJQb3NpdGlvbi50b3B9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1wb3BvdmVyLWFycm93LXBvc2l0aW9uLXgnLCBgJHthcnJvd1hQb3NpdGlvbn1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItbWF4LWhlaWdodCcsIHBvcG92ZXJQb3NpdGlvbi5tYXhIZWlnaHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlckNvbnRlbnQoKTogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudChkZXRhaWw/OiB7XG4gICAgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgfSk6IGJvb2xlYW4ge1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtDdXN0b21FdmVudDx7IGNsb3NlVGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgfT59XG4gICAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICAgICAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsIH0+KCdiZWZvcmVjbG9zZScsIHtcbiAgICAgICAgZGV0YWlsLFxuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaXNwYXRjaENsb3NlRXZlbnQoZGV0YWlsPzogeyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsIH0pOiBib29sZWFuIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsIH0+fVxuICAgICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLlxuICAgICAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsIH0+KCdjbG9zZScsIHsgZGV0YWlsIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcG9wb3Zlcl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25Qb3BvdmVyQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIGNsYXNzPVwic2JiLXBvcG92ZXJcIlxuICAgICAgICAgIHJvbGU9XCJ0b29sdGlwXCJcbiAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5vdmVybGF5ID0gZWwgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuX2Nsb3NlT25TYmJQb3BvdmVyQ2xvc2VDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1wb3BvdmVyX19jb250ZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMucmVuZGVyQ29udGVudCgpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHdpdGhpbiBhIHBvcG92ZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBwb3BvdmVyLlxuICogQGNzc3Byb3AgWy0tc2JiLXBvcG92ZXItei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiUG9wb3ZlckVsZW1lbnQgZXh0ZW5kcyBTYmJQb3BvdmVyQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXBvcG92ZXInO1xuICAvKiogV2hldGhlciB0aGUgY2xvc2UgYnV0dG9uIHNob3VsZCBiZSBoaWRkZW4uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLWNsb3NlLWJ1dHRvbicsIHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGVDbG9zZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBiZSB0cmlnZ2VyZWQgb24gaG92ZXIuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Zlci10cmlnZ2VyJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaG92ZXJUcmlnZ2VyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIHBvcG92ZXIgYWZ0ZXIgYSBnaXZlbiBkZWxheSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnb3Blbi1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IG9wZW5EZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gK3ZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgb3BlbkRlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5EZWxheSA/PyByZWFkQ29uZmlnKCkucG9wb3Zlcj8ub3BlbkRlbGF5ID8/IDA7XG4gIH1cbiAgcHJpdmF0ZSBfb3BlbkRlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgcG9wb3ZlciBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnBvcG92ZXI/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGNsb3NlIGJ1dHRvbiBlbGVtZW50LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1jbG9zZS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlDbG9zZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9ob3ZlclRyaWdnZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9vdmVybGF5QWJvcnRDb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY29uZmlndXJlVHJpZ2dlcihvbGRUcmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSB0cmlnZ2VyIGNhbiBiZSBob3ZlcmVkLiBTb21lIGRldmljZXMgbWlnaHQgaW50ZXJwcmV0IHRoZSBtZWRpYSBxdWVyeSAoaG92ZXI6IGhvdmVyKSBkaWZmZXJlbnRseSxcbiAgICAvLyBhbmQgbm90IHJlc3BlY3QgdGhlIGZhbGxiYWNrIG1lY2hhbmlzbSBvbiB0aGUgY2xpY2suIFRoZXJlZm9yZSwgdGhlIGZvbGxvd2luZyBpcyBwcmVmZXJyZWQgdG8gaWRlbnRpZnlcbiAgICAvLyBhbGwgbm9uLXRvdWNoc2NyZWVuIGRldmljZXMuXG4gICAgY29uc3QgaG92ZXJUcmlnZ2VyID0gdGhpcy5ob3ZlclRyaWdnZXIgJiYgIXBvaW50ZXJDb2Fyc2U7XG5cbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSBvbGRUcmlnZ2VyICYmIGhvdmVyVHJpZ2dlciA9PT0gdGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2hvdmVyVHJpZ2dlciAhPT0gaG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl9ob3ZlclRyaWdnZXIgPSBob3ZlclRyaWdnZXI7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdob3Zlci10cmlnZ2VyJywgdGhpcy5faG92ZXJUcmlnZ2VyKTtcbiAgICAgIHRoaXMuX3JlZ2lzdGVyT3ZlcmxheUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHN1cGVyLmNvbmZpZ3VyZVRyaWdnZXIob2xkVHJpZ2dlcik7XG4gIH1cblxuICBwcml2YXRlIF9yZWdpc3Rlck92ZXJsYXlMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheUFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIGlmICh0aGlzLl9ob3ZlclRyaWdnZXIpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB0aGlzLm92ZXJsYXk/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB0aGlzLl9vbk92ZXJsYXlNb3VzZUVudGVyKCksIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9vdmVybGF5QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vdmVybGF5Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5fb25PdmVybGF5TW91c2VMZWF2ZSgpLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3ZlcmxheUFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVnaXN0ZXJUcmlnZ2VyTGlzdGVuZXJzKHNpZ25hbDogQWJvcnRTaWduYWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyICYmIHRoaXMudHJpZ2dlcikge1xuICAgICAgdGhpcy50cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9vblRyaWdnZXJNb3VzZUVudGVyLCB7IHNpZ25hbCB9KTtcbiAgICAgIHRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5fb25UcmlnZ2VyTW91c2VMZWF2ZSwgeyBzaWduYWwgfSk7XG4gICAgICB0aGlzLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZ0OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2dC5jb2RlID09PSAnU3BhY2UnIHx8IGV2dC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgc2lnbmFsIH0sXG4gICAgICApO1xuICAgICAgdGhpcy50cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdtb3VzZWRvd24nLFxuICAgICAgICAoZXZ0OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gV2l0aG91dCB0aGlzIGNoZWNrLCBOVkRBIGNhbid0IG9wZW4gdGhlIHBvcG92ZXIgb24ga2V5Ym9hcmQgaW50ZXJhY3Rpb24uXG4gICAgICAgICAgaWYgKGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZ0KSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHNpZ25hbCB9LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIucmVnaXN0ZXJUcmlnZ2VyTGlzdGVuZXJzKHNpZ25hbCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fcmVnaXN0ZXJPdmVybGF5TGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb3BlbigpOiB2b2lkIHtcbiAgICBzdXBlci5vcGVuKCk7XG5cbiAgICBpZiAodGhpcy5ob3ZlclRyaWdnZXIgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICDJtXN0YXRlQ29udHJvbGxlcih0aGlzLnRyaWdnZXIpLmFkZCgnZm9yY2UtaG92ZXInKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY2xvc2UoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xvc2UoKTtcblxuICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMudHJpZ2dlcik/LmRlbGV0ZSgnZm9yY2UtaG92ZXInKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVHJpZ2dlck1vdXNlRW50ZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlIHRyaWdnZXIgaXMgZm9jdXNlZCBieSBrZXlib2FyZCBhbmQgaG92ZXJlZCB3aXRoIHRoZSBtb3VzZSwgdGhlIG91dGxpbmUgd291bGQgYmUgdmlzaWJsZS5cbiAgICAgICAgLy8gU28gd2UgcmVzZXQgdGhlIGlucHV0IG1vZGFsaXR5IHRvIGhpZGUgdGhlIG91dGxpbmUuXG4gICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5yZXNldCgpO1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0sIHRoaXMub3BlbkRlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25UcmlnZ2VyTW91c2VMZWF2ZSA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLmNsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fb3BlblRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk92ZXJsYXlNb3VzZUVudGVyID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uT3ZlcmxheU1vdXNlTGVhdmUgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5jbG9zZURlbGF5KTtcbiAgICB9XG4gIH07XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckNvbnRlbnQoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VQb3BvdmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgIHNiYi1wb3BvdmVyLWNsb3NlXG4gICAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAkeyF0aGlzLmhpZGVDbG9zZUJ1dHRvbiAmJiAhdGhpcy5faG92ZXJUcmlnZ2VyID8gY2xvc2VCdXR0b24gOiBub3RoaW5nfVxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcG9wb3Zlcl9fc2Nyb2xsYWJsZS1jb250ZW50XCI+XG4gICAgICAgIDxzbG90Pk5vIGNvbnRlbnQ8L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXBvcG92ZXInOiBTYmJQb3BvdmVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ21DQSxJQUFNLGtCQUFrQjtBQUN4QixJQUFNLG9CQUFvQjtBQUUxQixJQUFJLFNBQVM7QUFFYixJQUFNLDhCQUFjLElBQUksS0FBNEI7QUFDcEQsSUFBTSxnQkFBZ0IsV0FBVyxRQUFRLFdBQVcsMkJBQTJCLENBQUM7SUFFMUQsK0JBQXFCO21CQUFTOzs7O2NBQTlCLDhCQUE4QixZQUF1Qjs7O0FBVXpELFNBQUEsMkJBQUEsa0JBQUEsTUFBQSx1QkFBOEIsS0FBSTtBQUcxQyxRQUFBLHNCQUFtQixrQkFBQSxNQUFBLDJCQUFBO0FBQ25CLFFBQUEsa0JBQTJCO0FBTTNCLFFBQUEsOEJBQThCLElBQUksOEJBQThCLEtBQUs7QUFDckUsUUFBQSx1QkFBdUIsSUFBSSx1QkFBdUIsS0FBSztBQUN2RCxRQUFBLGVBQXFEO0FBcU1yRCxRQUFBLHdCQUF3QixVQUE2QjtBQUMzRCxTQUFLLCtCQUErQixpQkFBaUIsS0FBSyxTQUFVLE1BQU07O0FBSXBF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
746
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQtQ0x3T2VzXy0uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BvcG92ZXIvcG9wb3Zlci5zY3NzP2xpdCZpbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXBvcG92ZXItcG9zaXRpb246IGFic29sdXRlO1xuICAtLXNiYi1wb3BvdmVyLXBvc2l0aW9uLXg6IDA7XG4gIC0tc2JiLXBvcG92ZXItcG9zaXRpb24teTogMDtcbiAgLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gIC0tc2JiLXBvcG92ZXItYXJyb3ctcG9zaXRpb24teDogMDtcbiAgLS1zYmItcG9wb3Zlci1tYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSk7XG4gIC0tc2JiLXBvcG92ZXItaW5zZXQ6IDAgYXV0byBhdXRvIDA7XG4gIC0tc2JiLXBvcG92ZXItYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtOHgpO1xuICAtLXNiYi1wb3BvdmVyLXBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgLS1zYmItcG9wb3Zlci1iYWNrZ3JvdW5kOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0xKTtcbiAgLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1lYXNpbmc6IGVhc2Utb3V0O1xuICAtLXNiYi1wb3BvdmVyLXRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkpO1xuXG4gIC8vIEFzIHRoZSBwb3BvdmVyIGhhcyBhbHdheXMgYSB3aGl0ZSBiYWNrZ3JvdW5kLCB3ZSBoYXZlIHRvIGZpeCB0aGUgZm9jdXMgb3V0bGluZSBjb2xvclxuICAvLyB0byBkZWZhdWx0IGNvbG9yIGZvciBjYXNlcyB3aGVyZSB0aGUgcG9wb3ZlciBpcyB1c2VkIGluIGEgbmVnYXRpdmUgY29udGV4dC5cbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogbGlnaHQtZGFyayhcbiAgICB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kZWZhdWx0KSxcbiAgICB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKVxuICApO1xuXG4gIC8vIFVzZSAhaW1wb3J0YW50IGhlcmUgdG8gbm90IGludGVyZmVyZSB3aXRoIEZpcmVmb3ggZm9jdXMgcmluZyBkZWZpbml0aW9uXG4gIC8vIHdoaWNoIGFwcGVhcnMgaW4gbm9ybWFsaXplIENTUyBvZiBzZXZlcmFsIGZyYW1ld29ya3MuXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLS1zYmItcG9wb3Zlci1pbnNldDogMDtcbn1cblxuOmhvc3QoOnN0YXRlKHBvc2l0aW9uLWFib3ZlKSkge1xuICAtLXNiYi1wb3BvdmVyLXRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KSAqIC0xKSk7XG59XG5cbjpob3N0KDpub3QoW2hpZGUtY2xvc2UtYnV0dG9uXSwgOnN0YXRlKGhvdmVyLXRyaWdnZXIpKSkge1xuICAtLXNiYi1wb3BvdmVyLW1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc2JiLXNpemUtZWxlbWVudC14cykgKyAyICogdmFyKC0tc2JiLXBvcG92ZXItcGFkZGluZykpO1xufVxuXG4vLyBQb3BvdmVyIGFycm93IGFuZCBhcnJvdyB0b3AgY292ZXJcbi5zYmItcG9wb3Zlcjo6YWZ0ZXIsXG4uc2JiLXBvcG92ZXJfX2NvbnRlbnQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogdmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSk7XG4gIGxlZnQ6IHZhcigtLXNiYi1wb3BvdmVyLWFycm93LXBvc2l0aW9uLXgpO1xuICBib3R0b206IGNhbGMoMTAwJSAtIGNhbGModmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSkgLyAyKSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1wb3BvdmVyLWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0yeCkgMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4uc2JiLXBvcG92ZXJfX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1wb3BvdmVyLWluc2V0KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IHZhcigtLXNiYi1wb3BvdmVyLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpO1xufVxuXG4uc2JiLXBvcG92ZXIge1xuICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQpO1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXBvcG92ZXItcG9zaXRpb24pO1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB0b3A6IHZhcigtLXNiYi1wb3BvdmVyLXBvc2l0aW9uLXkpO1xuICBib3R0b206IHVuc2V0O1xuICBsZWZ0OiB2YXIoLS1zYmItcG9wb3Zlci1wb3NpdGlvbi14KTtcbiAgcmlnaHQ6IHVuc2V0O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1wb3BvdmVyLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nOiAwO1xuICBtYXgtd2lkdGg6IHZhcigtLXNiYi1wb3BvdmVyLW1heC13aWR0aCk7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBvcG92ZXItYmFja2dyb3VuZCk7XG4gIG91dGxpbmU6IG5vbmU7XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBjbG9zZTtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3BvdmVyIGFycm93XG4gICY6OmFmdGVyIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC01LWhhcmQpO1xuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICB9XG5cbiAgICA6aG9zdCg6c3RhdGUocG9zaXRpb24tYWJvdmUpKSAmIHtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gY2FsYyh2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKSAvIDIpKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxuXG4gIC8vIFRyYW5zcGFyZW50IGFyZWEgd2hpY2ggaW5jcmVhc2VzIGhvdmVyIGFyZWEgaW4gb3JkZXIgdG8gbm90IHRyaWdnZXIgY2xvc2luZyB0b28gZWFybHkuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgOmhvc3QoOnN0YXRlKHBvc2l0aW9uLWJlbG93KSkgJiB7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogY2FsYygtMSAqIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTZ4KSk7XG4gICAgfVxuXG4gICAgOmhvc3QoOnN0YXRlKHBvc2l0aW9uLWFib3ZlKSkgJiB7XG4gICAgICBpbnNldC1ibG9jay1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC02eCkpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLXBvcG92ZXJfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXBvcG92ZXItYm9yZGVyLXJhZGl1cyk7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1wb3BvdmVyLXBhZGRpbmcpIDA7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItcG9wb3Zlci1wYWRkaW5nKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBvcG92ZXItYmFja2dyb3VuZCk7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLXBvcG92ZXItbWluLWhlaWdodCk7XG5cbiAgOmhvc3QoOnN0YXRlKHBvc2l0aW9uLWFib3ZlKSkgJiB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gY2FsYyh2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKSAvIDIpKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1wb3BvdmVyX19zY3JvbGxhYmxlLWNvbnRlbnQge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tc2JiLXBvcG92ZXItcGFkZGluZyk7XG4gIG1heC1oZWlnaHQ6IGNhbGModmFyKC0tc2JiLXBvcG92ZXItbWF4LWhlaWdodCkpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHZhcigtLXNiYi1wb3BvdmVyLXRyYW5zZm9ybSk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB2YXIoLS1zYmItcG9wb3Zlci10cmFuc2Zvcm0pO1xuICB9XG59XG4iLCJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eURlY2xhcmF0aW9uLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQge1xuICBJU19GT0NVU0FCTEVfUVVFUlksXG4gIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnLi4vY29yZS9hMTF5LnRzJztcbmltcG9ydCB7IFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7IHJlYWRDb25maWcgfSBmcm9tICcuLi9jb3JlL2NvbmZpZy50cyc7XG5pbXBvcnQge1xuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5UG9pbnRlckNvYXJzZSxcbn0gZnJvbSAnLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUsIGlkUmVmZXJlbmNlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlIH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy50cyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VQb3BvdmVyIH0gZnJvbSAnLi4vY29yZS9pMThuLnRzJztcbmltcG9ydCB7IMm1c3RhdGVDb250cm9sbGVyIH0gZnJvbSAnLi4vY29yZS9taXhpbnMudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RWxlbWVudFBvc2l0aW9uLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJBdHRyaWJ1dGVzLFxufSBmcm9tICcuLi9jb3JlL292ZXJsYXkudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vY29yZS9zdHlsZXMudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wb3BvdmVyLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24udHMnO1xuXG5jb25zdCBWRVJUSUNBTF9PRkZTRVQgPSAxNjtcbmNvbnN0IEhPUklaT05UQUxfT0ZGU0VUID0gMzI7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5jb25zdCBwb3BvdmVyc1JlZiA9IG5ldyBTZXQ8U2JiUG9wb3ZlckJhc2VFbGVtZW50PigpO1xuY29uc3QgcG9pbnRlckNvYXJzZSA9IGlzU2VydmVyID8gZmFsc2UgOiBtYXRjaE1lZGlhKFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlKS5tYXRjaGVzO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiUG9wb3ZlckJhc2VFbGVtZW50IGV4dGVuZHMgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBwb3BvdmVyIG92ZXJsYXkuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gVGhlIGVsZW1lbnQgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgYWZ0ZXIgY2xvc2luZyBiYXNlZCBvbiB3aGVyZSBpbiB0aGUgYmFja2Ryb3AgdGhlIHVzZXIgY2xpY2tzLlxuICBwcml2YXRlIF9uZXh0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfc2tpcENsb3NlRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXI/OiBib29sZWFuO1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudD86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblN0YXRlQ29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcENvbnRyb2xsZXIgPSBuZXcgU2JiRm9jdXNUcmFwQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfYmx1clRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBjbG9zZVRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJvdGVjdGVkIG92ZXJsYXk/OiBIVE1MRGl2RWxlbWVudDtcblxuICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgb24gdHJpZ2dlciBjbGljay4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuc3RhdGUgIT09ICdjbG9zaW5nJykgfHxcbiAgICAgICF0aGlzLm92ZXJsYXkgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSB0aGUgb3RoZXIgcG9wb3ZlcnNcbiAgICBmb3IgKGNvbnN0IHBvcG92ZXIgb2YgcG9wb3ZlcnNSZWYpIHtcbiAgICAgIGlmIChwb3BvdmVyLnN0YXRlID09PSAnb3BlbmVkJyB8fCBwb3BvdmVyLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgdGhpcy5fYXR0YWNoV2luZG93RXZlbnRzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgIHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9za2lwQ2xvc2VGb2N1cyA9IGZhbHNlO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xvc2VzIHRoZSBwb3BvdmVyLiAqL1xuICBwdWJsaWMgY2xvc2UodGFyZ2V0PzogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgJiYgdGhpcy5zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcG9wb3ZlckNsb3NlRWxlbWVudCA9IHRhcmdldDtcbiAgICBpZiAoIXRoaXMuZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KHsgY2xvc2VUYXJnZXQ6IHRhcmdldCA/PyBudWxsIH0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLmluZXJ0ID0gdHJ1ZTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuXG4gICAgdGhpcy5vdmVybGF5Py5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG5cbiAgICBpZiAoIXRoaXMuX3NraXBDbG9zZUZvY3VzKSB7XG4gICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCB8fCB0aGlzLl90cmlnZ2VyRWxlbWVudDtcblxuICAgICAgLy8gVG8gZW5hYmxlIGZvY3VzaW5nIG90aGVyIGVsZW1lbnQgdGhhbiB0aGUgdHJpZ2dlciwgd2UgbmVlZCB0byBjYWxsIGZvY3VzKCkgYSBzZWNvbmQgdGltZS5cbiAgICAgIGVsZW1lbnRUb0ZvY3VzPy5mb2N1cygpO1xuICAgIH1cblxuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KHsgY2xvc2VUYXJnZXQ6IHRoaXMuX3BvcG92ZXJDbG9zZUVsZW1lbnQgPz8gbnVsbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICB0aGlzLl9zZXRQb3BvdmVyRm9jdXMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuZGlzcGF0Y2hPcGVuRXZlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnBvcG92ZXIgPSAnbWFudWFsJztcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuaWQgfHw9IGBzYmItcG9wb3Zlci0keysrbmV4dElkfWA7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHBvcG92ZXJzUmVmLmFkZCh0aGlzKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG5cbiAgICAvLyBDaGVja2luZyBmb3IgaG92ZXJUcmlnZ2VyIGlzIGEgc3BlY2lhbCBjYXNlLCBhcyBvbmx5IHRoZSBTYmJQb3BvdmVyRWxlbWVudFxuICAgIC8vIHN1YmNsYXNzIGhhcyB0aGlzIHByb3BlcnR5LlxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJyB8fCBuYW1lID09PSAnaG92ZXJUcmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgcG9wb3ZlcnNSZWYuZGVsZXRlKHRoaXMpO1xuICAgIGlmICh0aGlzLl9ibHVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2JsdXJUaW1lb3V0KTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgdHJpZ2dlciBpcyB2YWxpZCBhbmQgYXR0YWNoIGNsaWNrIGV2ZW50IGxpc3RlbmVycy5cbiAgcHJpdmF0ZSBfY29uZmlndXJlVHJpZ2dlcigpOiB2b2lkIHtcbiAgICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlndXJlVHJpZ2dlcih0aGlzLl90cmlnZ2VyRWxlbWVudCA/PyBudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVUcmlnZ2VyKF9vbGRUcmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHJlbW92ZUFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy50cmlnZ2VyO1xuXG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNldEFyaWFPdmVybGF5VHJpZ2dlckF0dHJpYnV0ZXModGhpcy5fdHJpZ2dlckVsZW1lbnQsICdkaWFsb2cnLCB0aGlzLmlkLCB0aGlzLnN0YXRlKTtcblxuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5yZWdpc3RlclRyaWdnZXJMaXN0ZW5lcnModGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlci5zaWduYWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyVHJpZ2dlckxpc3RlbmVycyhzaWduYWw6IEFib3J0U2lnbmFsKTogdm9pZCB7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuKCksIHsgc2lnbmFsIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoV2luZG93RXZlbnRzKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4gdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgLy8gV2l0aG91dCBjYXB0dXJlLCBvdGhlciBzY3JvbGwgY29udGV4dHMgd291bGQgbm90IGJ1YmJsZSB0byB0aGlzIGV2ZW50IGxpc3RlbmVyLlxuICAgICAgLy8gQ2FwdHVyZSBhbGxvd3MgdXMgdG8gcmVhY3QgdG8gYWxsIHNjcm9sbCBjb250ZXh0cyBpbiB0aGlzIERPTS5cbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICAvLyBDbG9zZSBwb3BvdmVyIG9uIGJhY2tkcm9wIGNsaWNrXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5fcG9pbnRlckRvd25MaXN0ZW5lciwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5fY2xvc2VPbkJhY2tkcm9wQ2xpY2ssIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gIH1cblxuICAvLyBDbG9zZSB0aGUgcG9wb3ZlciBvbiBjbGljayBvZiBhbnkgZWxlbWVudCB0aGF0IGhhcyB0aGUgJ3NiYi1wb3BvdmVyLWNsb3NlJyBhdHRyaWJ1dGUuXG4gIHByaXZhdGUgX2Nsb3NlT25TYmJQb3BvdmVyQ2xvc2VDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZUVsZW1lbnQgPSBjb21wb3NlZFBhdGhIYXNBdHRyaWJ1dGUoZXZlbnQsICdzYmItcG9wb3Zlci1jbG9zZScsIHRoaXMpO1xuXG4gICAgaWYgKGNsb3NlRWxlbWVudCAmJiAhY2xvc2VFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgICAgIHRoaXMuY2xvc2UoY2xvc2VFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcG9pbnRlcmRvd24gZXZlbnQgdGFyZ2V0IGlzIHRyaWdnZXJlZCBvbiB0aGUgcG9wb3Zlci5cbiAgcHJpdmF0ZSBfcG9pbnRlckRvd25MaXN0ZW5lciA9IChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25Qb3BvdmVyID0gaXNFdmVudE9uRWxlbWVudCh0aGlzLm92ZXJsYXkhLCBldmVudCk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgcG9wb3ZlciBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGNvbXBvc2VkUGF0aCA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpO1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXIgJiZcbiAgICAgICFpc0V2ZW50T25FbGVtZW50KHRoaXMub3ZlcmxheSEsIGV2ZW50KSAmJlxuICAgICAgIWlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZlbnQpICYmXG4gICAgICAoIXRoaXMudHJpZ2dlciB8fCAhY29tcG9zZWRQYXRoLmluY2x1ZGVzKHRoaXMudHJpZ2dlcikpXG4gICAgKSB7XG4gICAgICB0aGlzLl9uZXh0Rm9jdXNlZEVsZW1lbnQgPSBjb21wb3NlZFBhdGhcbiAgICAgICAgLmZpbHRlcigoZWwpID0+IGVsIGluc3RhbmNlb2Ygd2luZG93LkhUTUxFbGVtZW50KVxuICAgICAgICAuZmluZCgoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkubWF0Y2hlcyhJU19GT0NVU0FCTEVfUVVFUlkpKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9O1xuXG4gIC8vIFNldCBwb3BvdmVyIHBvc2l0aW9uICh4LCB5KSB0byAnMCcgb25jZSB0aGUgcG9wb3ZlciBpcyBjbG9zZWQgYW5kIHRoZSB0cmFuc2l0aW9uIGVuZGVkIHRvIHByZXZlbnQgdGhlXG4gIC8vIHZpZXdwb3J0IGZyb20gb3ZlcmZsb3dpbmcuIEFuZCBzZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbmNlIHRoZSBwb3BvdmVyIGlzIG9wZW4uXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25Qb3BvdmVyQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnb3BlbicgJiYgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5hbmltYXRpb25OYW1lID09PSAnY2xvc2UnICYmIHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQuXG4gIHByaXZhdGUgX3NldFBvcG92ZXJGb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBmb2N1c2VkID0gdGhpcy5fZm9jdXNUcmFwQ29udHJvbGxlci5mb2N1c0luaXRpYWxFbGVtZW50KCk7XG5cbiAgICBpZiAoIWZvY3VzZWQgJiYgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcikge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgICAgIHRoaXMuZm9jdXMoKTtcblxuICAgICAgLy8gV2hlbiBhIGJsdXIgb2NjdXJzLCB3ZSBrbm93IHRoYXQgdGhlIHBvcG92ZXIgaGFzIHRvIGJlIGNsb3NlZCxcbiAgICAgIC8vIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGludGVyYWN0aXZlIGVsZW1lbnRzIGluc2lkZSB0aGUgcG9wb3Zlci5cbiAgICAgIC8vIFdoZW4gYSB3aW5kb3cvdGFiIGNoYW5nZSBvY2N1cnMsIGEgYmx1ciBldmVudCBpcyBhbHNvIGZpcmVkLiBIb3dldmVyLCB3aGVuIHRoZSBjdXJyZW50IHdpbmRvdy90YWJcbiAgICAgIC8vIGJlY29tZXMgYWN0aXZlIGFnYWluLCBpdCBmb2N1c2VzIG9uY2UgYWdhaW4gdGhlIHBvcG92ZXIuXG4gICAgICAvLyBUaGVyZWZvcmUsIHdlIGNhbm5vdCBsaXN0ZW4gdG8gdGhlIGJsdXIgZXZlbnQgb25seSBvbmNlLlxuICAgICAgLy8gVG8gcHJldmVudCBhY2NpZGVudGFsbHkgY2xvc2luZyB0aGUgcG9wb3Zlciwgd2UgbmVlZCB0byBjaGVjayBmb3IgdGhlIHdpbmRvdy90YWIgc3RhdGUuXG4gICAgICAvLyBXZSBjYW4gYWNoaWV2ZSB0aGlzIGJ5IHVzaW5nIHZpc2liaWxpdHlTdGF0ZSwgd2hpY2ggb25seSB3b3JrcyB3aXRoIHNldFRpbWVvdXQoKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoZTogRm9jdXNFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuX2JsdXJUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlICE9PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcblxuICAgICAgICAgICAgICAvLyBJbiBTYWZhcmkgb24gaU9TIGl0IGNhbiBvY2N1ciwgdGhhdCBhIGJsdXIgZXZlbnQgdHJpZ2dlcnMgb24gdGhlIHBvcG92ZXJcbiAgICAgICAgICAgICAgLy8gYWx0aG91Z2ggdGhlIGZvY3VzIHJlbWFpbnMgaW5zaWRlIHRoZSBwb3BvdmVyLlxuICAgICAgICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIG5lZWQgdG8gc3RvcCB0aGUgY2xvc2luZyBpZiB0aGUgcmVsYXRlZFRhcmdldCBpcyBjb250YWluZWQgaW4gdGhlIHBvcG92ZXIgb3IgaXQgaXMgdGhlIHRyaWdnZXIuXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCBhcyBOb2RlKSB8fCBlLnJlbGF0ZWRUYXJnZXQgPT09IHRoaXMudHJpZ2dlcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlID09PSAnb3BlbmVkJyB8fCB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9za2lwQ2xvc2VGb2N1cyA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0UG9wb3ZlclBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vdmVybGF5IHx8ICF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBvcG92ZXJQb3NpdGlvbiA9IGdldEVsZW1lbnRQb3NpdGlvbihcbiAgICAgIHRoaXMub3ZlcmxheSxcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LFxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXBvcG92ZXJfX2NvbnRhaW5lcicpISxcbiAgICAgIHtcbiAgICAgICAgdmVydGljYWxPZmZzZXQ6IFZFUlRJQ0FMX09GRlNFVCxcbiAgICAgICAgaG9yaXpvbnRhbE9mZnNldDogSE9SSVpPTlRBTF9PRkZTRVQsXG4gICAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgICByZXNwb25zaXZlSGVpZ2h0OiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IHZlcnRpY2FsUG9zaXRpb24gPSBwb3BvdmVyUG9zaXRpb24uYWxpZ25tZW50LnZlcnRpY2FsO1xuICAgIGZvciAoY29uc3QgcG9zaXRpb24gb2YgWydhYm92ZScsICdiZWxvdyddKSB7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKGBwb3NpdGlvbi0ke3Bvc2l0aW9ufWAsIHBvc2l0aW9uID09PSB2ZXJ0aWNhbFBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcnJvd1hQb3NpdGlvbiA9XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC1cbiAgICAgIHBvcG92ZXJQb3NpdGlvbi5sZWZ0ICtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmNsaWVudFdpZHRoIC8gMiAtXG4gICAgICA4OyAvLyBoYWxmIHRoZSBzaXplIG9mIHRoZSBwb3BvdmVyIGFycm93XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1wb3BvdmVyLXBvc2l0aW9uLXgnLCBgJHtwb3BvdmVyUG9zaXRpb24ubGVmdH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItcG9zaXRpb24teScsIGAke3BvcG92ZXJQb3NpdGlvbi50b3B9cHhgKTtcbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1wb3BvdmVyLWFycm93LXBvc2l0aW9uLXgnLCBgJHthcnJvd1hQb3NpdGlvbn1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXBvcG92ZXItbWF4LWhlaWdodCcsIHBvcG92ZXJQb3NpdGlvbi5tYXhIZWlnaHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlckNvbnRlbnQoKTogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudChkZXRhaWw/OiB7XG4gICAgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgfSk6IGJvb2xlYW4ge1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtDdXN0b21FdmVudDx7IGNsb3NlVGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgfT59XG4gICAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICAgICAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsIH0+KCdiZWZvcmVjbG9zZScsIHtcbiAgICAgICAgZGV0YWlsLFxuICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkaXNwYXRjaENsb3NlRXZlbnQoZGV0YWlsPzogeyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsIH0pOiBib29sZWFuIHtcbiAgICAvKipcbiAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsIH0+fVxuICAgICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLlxuICAgICAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgQ3VzdG9tRXZlbnQ8eyBjbG9zZVRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsIH0+KCdjbG9zZScsIHsgZGV0YWlsIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcG9wb3Zlcl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25Qb3BvdmVyQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIGNsYXNzPVwic2JiLXBvcG92ZXJcIlxuICAgICAgICAgIHJvbGU9XCJ0b29sdGlwXCJcbiAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5vdmVybGF5ID0gZWwgYXMgSFRNTERpdkVsZW1lbnQpKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIEBjbGljaz0keyhldmVudDogRXZlbnQpID0+IHRoaXMuX2Nsb3NlT25TYmJQb3BvdmVyQ2xvc2VDbGljayhldmVudCl9XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1wb3BvdmVyX19jb250ZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMucmVuZGVyQ29udGVudCgpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHdpdGhpbiBhIHBvcG92ZXIuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCBpbnRvIHRoZSBwb3BvdmVyLlxuICogQGNzc3Byb3AgWy0tc2JiLXBvcG92ZXItei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiUG9wb3ZlckVsZW1lbnQgZXh0ZW5kcyBTYmJQb3BvdmVyQmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXBvcG92ZXInO1xuICAvKiogV2hldGhlciB0aGUgY2xvc2UgYnV0dG9uIHNob3VsZCBiZSBoaWRkZW4uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLWNsb3NlLWJ1dHRvbicsIHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIGhpZGVDbG9zZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBwb3BvdmVyIHNob3VsZCBiZSB0cmlnZ2VyZWQgb24gaG92ZXIuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Zlci10cmlnZ2VyJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaG92ZXJUcmlnZ2VyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIHBvcG92ZXIgYWZ0ZXIgYSBnaXZlbiBkZWxheSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnb3Blbi1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IG9wZW5EZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fb3BlbkRlbGF5ID0gK3ZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgb3BlbkRlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5EZWxheSA/PyByZWFkQ29uZmlnKCkucG9wb3Zlcj8ub3BlbkRlbGF5ID8/IDA7XG4gIH1cbiAgcHJpdmF0ZSBfb3BlbkRlbGF5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgcG9wb3ZlciBhZnRlciBhIGdpdmVuIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAgICogR2xvYmFsIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjbG9zZS1kZWxheScsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IGNsb3NlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Nsb3NlRGVsYXkgPSArdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBjbG9zZURlbGF5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlRGVsYXkgPz8gcmVhZENvbmZpZygpLnBvcG92ZXI/LmNsb3NlRGVsYXkgPz8gMDtcbiAgfVxuICBwcml2YXRlIF9jbG9zZURlbGF5PzogbnVtYmVyO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGNsb3NlIGJ1dHRvbiBlbGVtZW50LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1jbG9zZS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlDbG9zZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9ob3ZlclRyaWdnZXIgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3BlblRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9vdmVybGF5QWJvcnRDb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY29uZmlndXJlVHJpZ2dlcihvbGRUcmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSB0cmlnZ2VyIGNhbiBiZSBob3ZlcmVkLiBTb21lIGRldmljZXMgbWlnaHQgaW50ZXJwcmV0IHRoZSBtZWRpYSBxdWVyeSAoaG92ZXI6IGhvdmVyKSBkaWZmZXJlbnRseSxcbiAgICAvLyBhbmQgbm90IHJlc3BlY3QgdGhlIGZhbGxiYWNrIG1lY2hhbmlzbSBvbiB0aGUgY2xpY2suIFRoZXJlZm9yZSwgdGhlIGZvbGxvd2luZyBpcyBwcmVmZXJyZWQgdG8gaWRlbnRpZnlcbiAgICAvLyBhbGwgbm9uLXRvdWNoc2NyZWVuIGRldmljZXMuXG4gICAgY29uc3QgaG92ZXJUcmlnZ2VyID0gdGhpcy5ob3ZlclRyaWdnZXIgJiYgIXBvaW50ZXJDb2Fyc2U7XG5cbiAgICBpZiAodGhpcy50cmlnZ2VyID09PSBvbGRUcmlnZ2VyICYmIGhvdmVyVHJpZ2dlciA9PT0gdGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2hvdmVyVHJpZ2dlciAhPT0gaG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl9ob3ZlclRyaWdnZXIgPSBob3ZlclRyaWdnZXI7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdob3Zlci10cmlnZ2VyJywgdGhpcy5faG92ZXJUcmlnZ2VyKTtcbiAgICAgIHRoaXMuX3JlZ2lzdGVyT3ZlcmxheUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHN1cGVyLmNvbmZpZ3VyZVRyaWdnZXIob2xkVHJpZ2dlcik7XG4gIH1cblxuICBwcml2YXRlIF9yZWdpc3Rlck92ZXJsYXlMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheUFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcblxuICAgIGlmICh0aGlzLl9ob3ZlclRyaWdnZXIpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB0aGlzLm92ZXJsYXk/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB0aGlzLl9vbk92ZXJsYXlNb3VzZUVudGVyKCksIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9vdmVybGF5QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vdmVybGF5Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4gdGhpcy5fb25PdmVybGF5TW91c2VMZWF2ZSgpLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3ZlcmxheUFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVnaXN0ZXJUcmlnZ2VyTGlzdGVuZXJzKHNpZ25hbDogQWJvcnRTaWduYWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyICYmIHRoaXMudHJpZ2dlcikge1xuICAgICAgdGhpcy50cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLl9vblRyaWdnZXJNb3VzZUVudGVyLCB7IHNpZ25hbCB9KTtcbiAgICAgIHRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5fb25UcmlnZ2VyTW91c2VMZWF2ZSwgeyBzaWduYWwgfSk7XG4gICAgICB0aGlzLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2tleWRvd24nLFxuICAgICAgICAoZXZ0OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2dC5jb2RlID09PSAnU3BhY2UnIHx8IGV2dC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgc2lnbmFsIH0sXG4gICAgICApO1xuICAgICAgdGhpcy50cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdtb3VzZWRvd24nLFxuICAgICAgICAoZXZ0OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgLy8gV2l0aG91dCB0aGlzIGNoZWNrLCBOVkRBIGNhbid0IG9wZW4gdGhlIHBvcG92ZXIgb24ga2V5Ym9hcmQgaW50ZXJhY3Rpb24uXG4gICAgICAgICAgaWYgKGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZ0KSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHNpZ25hbCB9LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIucmVnaXN0ZXJUcmlnZ2VyTGlzdGVuZXJzKHNpZ25hbCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fcmVnaXN0ZXJPdmVybGF5TGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb3BlbigpOiB2b2lkIHtcbiAgICBzdXBlci5vcGVuKCk7XG5cbiAgICBpZiAodGhpcy5ob3ZlclRyaWdnZXIgJiYgdGhpcy50cmlnZ2VyKSB7XG4gICAgICDJtXN0YXRlQ29udHJvbGxlcih0aGlzLnRyaWdnZXIpLmFkZCgnZm9yY2UtaG92ZXInKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY2xvc2UoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xvc2UoKTtcblxuICAgIMm1c3RhdGVDb250cm9sbGVyKHRoaXMudHJpZ2dlcik/LmRlbGV0ZSgnZm9yY2UtaG92ZXInKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uVHJpZ2dlck1vdXNlRW50ZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdjbG9zZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdjbG9zaW5nJykge1xuICAgICAgdGhpcy5fb3BlblRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gSWYgdGhlIHRyaWdnZXIgaXMgZm9jdXNlZCBieSBrZXlib2FyZCBhbmQgaG92ZXJlZCB3aXRoIHRoZSBtb3VzZSwgdGhlIG91dGxpbmUgd291bGQgYmUgdmlzaWJsZS5cbiAgICAgICAgLy8gU28gd2UgcmVzZXQgdGhlIGlucHV0IG1vZGFsaXR5IHRvIGhpZGUgdGhlIG91dGxpbmUuXG4gICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5yZXNldCgpO1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0sIHRoaXMub3BlbkRlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25UcmlnZ2VyTW91c2VMZWF2ZSA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgfHwgdGhpcy5zdGF0ZSA9PT0gJ29wZW5pbmcnKSB7XG4gICAgICB0aGlzLmNsb3NlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZSgpLCB0aGlzLmNsb3NlRGVsYXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fb3BlblRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk92ZXJsYXlNb3VzZUVudGVyID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uT3ZlcmxheU1vdXNlTGVhdmUgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5jbG9zZURlbGF5KTtcbiAgICB9XG4gIH07XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckNvbnRlbnQoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VQb3BvdmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgIHNiYi1wb3BvdmVyLWNsb3NlXG4gICAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5cbiAgICBgO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICAkeyF0aGlzLmhpZGVDbG9zZUJ1dHRvbiAmJiAhdGhpcy5faG92ZXJUcmlnZ2VyID8gY2xvc2VCdXR0b24gOiBub3RoaW5nfVxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcG9wb3Zlcl9fc2Nyb2xsYWJsZS1jb250ZW50XCI+XG4gICAgICAgIDxzbG90Pk5vIGNvbnRlbnQ8L3Nsb3Q+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXBvcG92ZXInOiBTYmJQb3BvdmVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ21DQSxJQUFNLGtCQUFrQjtBQUN4QixJQUFNLG9CQUFvQjtBQUUxQixJQUFJLFNBQVM7QUFFYixJQUFNLDhCQUFjLElBQUksS0FBNEI7QUFDcEQsSUFBTSxnQkFBZ0IsV0FBVyxRQUFRLFdBQVcsMkJBQTJCLENBQUM7SUFFMUQsK0JBQXFCO21CQUFTOzs7O2NBQTlCLDhCQUE4QixZQUF1Qjs7O0FBVXpELFNBQUEsMkJBQUEsa0JBQUEsTUFBQSx1QkFBOEIsS0FBSTtBQUcxQyxRQUFBLHNCQUFtQixrQkFBQSxNQUFBLDJCQUFBO0FBQ25CLFFBQUEsa0JBQTJCO0FBTTNCLFFBQUEsOEJBQThCLElBQUksOEJBQThCLEtBQUs7QUFDckUsUUFBQSx1QkFBdUIsSUFBSSx1QkFBdUIsS0FBSztBQUN2RCxRQUFBLGVBQXFEO0FBcU1yRCxRQUFBLHdCQUF3QixVQUE2QjtBQUMzRCxTQUFLLCtCQUErQixpQkFBaUIsS0FBSyxTQUFVLE1BQU07O0FBSXBFLFFBQUEseUJBQXlCLFVBQTZCO0lBQzVELE1BQU0sZUFBZSxNQUFNLGNBQWM7QUFDekMsUUFDRSxDQUFDLEtBQUssZ0NBQ04sQ0FBQyxpQkFBaUIsS0FBSyxTQUFVLE1BQU0sSUFDdkMsQ0FBQyxnQ0FBZ0MsTUFBTSxLQUN0QyxDQUFDLEtBQUssV0FBVyxDQUFDLGFBQWEsU0FBUyxLQUFLLFFBQVEsR0FDdEQ7QUFDQSxVQUFLLHNCQUFzQixhQUN4QixRQUFRLE9BQU8sY0FBYyxPQUFPLFlBQVksQ0FDaEQsTUFBTSxPQUFRLEdBQW1CLFFBQVEsbUJBQW1CLENBQWdCO0FBQy9FLGtCQUFhLEtBQUssYUFBYTtBQUMvQixVQUFLLE9BQU87Ozs7OzswQkFwT2YsYUFBYSxFQUNiLFVBQVUsQ0FBQTtBQUNYLGdCQUFBLE1BQUEsTUFBQSxxQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGFBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBTyxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVAsVUFBTzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLHVCQUFBLDJCQUFBOzs7Ozs7Ozs7QUFUQSxRQUFBLFNBQXlCLENBQUMsaUJBQWlCLGdCQUFNOztFQVN4RTs7Ozs7O0VBQUEsSUFBZ0IsVUFBTztBQUFBLFVBQUEsTUFBQTs7RUFBdkIsSUFBZ0IsUUFBTyxPQUFBO0FBQUEsU0FBQSwyQkFBQTs7O0VBaUJoQixPQUFJO0FBQ1QsT0FDRyxLQUFLLFVBQVUsWUFBWSxLQUFLLFVBQVUsYUFDM0MsQ0FBQyxLQUFLLFdBQ04sQ0FBQyxLQUFLLHlCQUF5QixDQUUvQjtBQUlGLFFBQUssTUFBTSxXQUFXLFlBQ3BCLEtBQUksUUFBUSxVQUFVLFlBQVksUUFBUSxVQUFVLFVBQ2xELFNBQVEsT0FBTztBQUluQixRQUFLLGVBQWU7QUFDcEIsUUFBSyxRQUFRO0FBQ2IsUUFBSyxRQUFRO0FBQ2IsUUFBSyxxQkFBcUI7QUFDMUIsUUFBSyxxQkFBcUI7QUFDMUIsUUFBSyw0QkFBNEIsU0FBUztBQUMxQyxRQUFLLGlCQUFpQixhQUFhLGlCQUFpQixPQUFPO0FBQzNELFFBQUssc0JBQXNCLEtBQUE7QUFDM0IsUUFBSyxrQkFBa0I7QUFJdkIsT0FBSSxLQUFLLDBCQUEwQixDQUNqQyxNQUFLLGdCQUFnQjs7O0VBS2xCLE1BQU0sUUFBb0I7QUFDL0IsT0FBSSxLQUFLLFVBQVUsWUFBWSxLQUFLLFVBQVUsVUFDNUM7QUFHRixRQUFLLHVCQUF1QjtBQUM1QixPQUFJLENBQUMsS0FBSyx5QkFBeUIsRUFBRSxhQUFhLFVBQVUsTUFBTSxDQUFDLENBQ2pFO0FBR0YsUUFBSyxRQUFRO0FBQ2IsUUFBSyxRQUFRO0FBQ2IsUUFBSyxpQkFBaUIsYUFBYSxpQkFBaUIsUUFBUTtBQUk1RCxPQUFJLEtBQUssMEJBQTBCLENBQ2pDLE1BQUssZ0JBQWdCOztFQUlqQiwyQkFBd0I7QUFDOUIsVUFBTyx3QkFBd0IsTUFBTSxtQ0FBbUM7O0VBR2xFLGlCQUFjO0FBQ3BCLFFBQUssUUFBUTtBQUNiLFFBQUssZUFBZTtBQUVwQixRQUFLLFNBQVMsbUJBQW1CLFNBQVMsR0FBRyxFQUFFO0FBQy9DLFFBQUssZ0JBQWdCLFdBQVc7QUFFaEMsT0FBSSxDQUFDLEtBQUssZ0JBSVIsRUFIdUIsS0FBSyx1QkFBdUIsS0FBSyxrQkFHeEMsT0FBTztBQUd6QixRQUFLLDRCQUE0QixZQUFZO0FBQzdDLFFBQUssc0JBQXNCLE9BQU87QUFDbEMsUUFBSyxxQkFBcUIsVUFBVTtBQUNwQyxRQUFLLG1CQUFtQixFQUFFLGFBQWEsS0FBSyx3QkFBd0IsTUFBTSxDQUFDOztFQUdyRSxpQkFBYztBQUNwQixRQUFLLFFBQVE7QUFDYixRQUFLLFFBQVE7QUFDYixRQUFLLGtCQUFrQjtBQUN2QixRQUFLLHFCQUFxQixVQUFVO0FBQ3BDLFFBQUssbUJBQW1COztFQUdWLG9CQUFpQjtBQUMvQixRQUFLLFVBQVU7QUFDZixTQUFNLG1CQUFtQjtBQUN6QixRQUFLLE9BQU8sZUFBZSxFQUFFO0FBQzdCLFFBQUssUUFBUTtBQUNiLGVBQVksSUFBSSxLQUFLO0FBQ3JCLE9BQUksS0FBSyxXQUNQLE1BQUssbUJBQW1COztFQUlaLGNBQ2QsTUFDQSxVQUNBLFNBQTZCO0FBRTdCLFNBQU0sY0FBYyxNQUFNLFVBQVUsUUFBUTtBQUk1QyxPQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsU0FBUyxhQUFhLFNBQVMsbUJBQW1CLEtBQUssV0FDaEYsTUFBSyxtQkFBbUI7O0VBSVQsYUFBYSxtQkFBdUM7QUFDckUsU0FBTSxhQUFhLGtCQUFrQjtBQUNyQyxRQUFLLG1CQUFtQjs7RUFHVix1QkFBb0I7QUFDbEMsU0FBTSxzQkFBc0I7QUFDNUIsUUFBSyxrQkFBa0I7QUFDdkIsUUFBSyx5QkFBeUIsT0FBTztBQUNyQyxRQUFLLHNCQUFzQixPQUFPO0FBQ2xDLGVBQVksT0FBTyxLQUFLO0FBQ3hCLE9BQUksS0FBSyxhQUNQLGNBQWEsS0FBSyxhQUFhOztFQUszQixvQkFBaUI7QUFDdkIsT0FBSSxTQUNGO1lBQ1MsS0FBSyxtQkFBbUI7QUFDakMsU0FBSyxrQkFBa0IsV0FBVyxLQUFLLG1CQUFtQixDQUFDO0FBQzNEOztBQUdGLFFBQUssaUJBQWlCLEtBQUssbUJBQW1CLEtBQUs7O0VBRzNDLGlCQUFpQixhQUErQjtBQUN4RCxRQUFLLHlCQUF5QixPQUFPO0FBQ3JDLHNDQUFtQyxLQUFLLGdCQUFnQjtBQUN4RCxRQUFLLGtCQUFrQixLQUFLO0FBRTVCLE9BQUksQ0FBQyxLQUFLLGdCQUNSO0FBR0YsbUNBQWdDLEtBQUssaUJBQWlCLFVBQVUsS0FBSyxJQUFJLEtBQUssTUFBTTtBQUVwRixRQUFLLDBCQUEwQixJQUFJLGlCQUFpQjtBQUNwRCxRQUFLLHlCQUF5QixLQUFLLHdCQUF3QixPQUFPOztFQUcxRCx5QkFBeUIsUUFBbUI7QUFDcEQsUUFBSyxnQkFBaUIsaUJBQWlCLGVBQWUsS0FBSyxNQUFNLEVBQUUsRUFBRSxRQUFRLENBQUM7O0VBR3hFLHNCQUFtQjtBQUN6QixRQUFLLHVCQUF1QixJQUFJLGlCQUFpQjtBQUNqRCxZQUFTLGlCQUFpQixnQkFBZ0IsS0FBSyxxQkFBcUIsRUFBRTtJQUNwRSxTQUFTO0lBQ1QsUUFBUSxLQUFLLHFCQUFxQjtJQUdsQyxTQUFTO0lBQ1YsQ0FBQztBQUNGLFVBQU8saUJBQWlCLGdCQUFnQixLQUFLLHFCQUFxQixFQUFFO0lBQ2xFLFNBQVM7SUFDVCxRQUFRLEtBQUsscUJBQXFCO0lBQ25DLENBQUM7QUFFRixVQUFPLGlCQUFpQixlQUFlLEtBQUssc0JBQXNCLEVBQ2hFLFFBQVEsS0FBSyxxQkFBcUIsUUFDbkMsQ0FBQztBQUNGLFVBQU8saUJBQWlCLGFBQWEsS0FBSyx1QkFBdUIsRUFDL0QsUUFBUSxLQUFLLHFCQUFxQixRQUNuQyxDQUFDOztFQUlJLDZCQUE2QixPQUFZO0dBQy9DLE1BQU0sZUFBZSx5QkFBeUIsT0FBTyxxQkFBcUIsS0FBSztBQUUvRSxPQUFJLGdCQUFnQixDQUFDLGFBQWEsYUFBYSxXQUFXLEVBQUU7QUFDMUQsaUJBQWEsS0FBSyxhQUFhO0FBQy9CLFNBQUssTUFBTSxhQUFhOzs7RUE4QnBCLHVCQUF1QixPQUFxQjtBQUNsRCxPQUFJLE1BQU0sa0JBQWtCLFVBQVUsS0FBSyxVQUFVLFVBQ25ELE1BQUssZ0JBQWdCO1lBQ1osTUFBTSxrQkFBa0IsV0FBVyxLQUFLLFVBQVUsVUFDM0QsTUFBSyxnQkFBZ0I7O0VBS2pCLG1CQUFnQjtBQUd0QixPQUFJLENBRlksS0FBSyxxQkFBcUIscUJBQXFCLElBRS9DLEtBQUssc0JBQXNCO0FBQ3pDLFNBQUssYUFBYSxZQUFZLElBQUk7QUFDbEMsU0FBSyxPQUFPO0FBU1osU0FBSyxpQkFDSCxTQUNDLE1BQXVCO0FBQ3RCLFVBQUssZUFBZSxpQkFBZ0I7QUFDbEMsVUFBSSxTQUFTLG9CQUFvQixVQUFVO0FBQ3pDLFlBQUssZ0JBQWdCLFdBQVc7QUFLaEMsV0FBSSxLQUFLLFNBQVMsRUFBRSxjQUFzQixJQUFJLEVBQUUsa0JBQWtCLEtBQUssUUFDckU7QUFHRixXQUFJLEtBQUssVUFBVSxZQUFZLEtBQUssVUFBVSxVQUM1QyxNQUFLLGtCQUFrQjtBQUV6QixZQUFLLE9BQU87O09BRWQ7T0FFSixFQUNFLFFBQVEsS0FBSyxxQkFBcUIsUUFDbkMsQ0FDRjs7O0VBSUcsc0JBQW1CO0FBQ3pCLE9BQUksQ0FBQyxLQUFLLFdBQVcsQ0FBQyxLQUFLLGdCQUN6QjtHQUdGLE1BQU0sa0JBQWtCLG1CQUN0QixLQUFLLFNBQ0wsS0FBSyxpQkFDTCxLQUFLLFdBQVksY0FBYywwQkFBMkIsRUFDMUQ7SUFDRSxnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixrQkFBa0I7SUFDbkIsQ0FDRjtHQUNELE1BQU0sbUJBQW1CLGdCQUFnQixVQUFVO0FBQ25ELFFBQUssTUFBTSxZQUFZLENBQUMsU0FBUyxRQUFRLENBQ3ZDLE1BQUssWUFBWSxZQUFZLFlBQVksYUFBYSxpQkFBaUI7R0FHekUsTUFBTSxpQkFDSixLQUFLLGdCQUFnQix1QkFBdUIsQ0FBQyxPQUM3QyxnQkFBZ0IsT0FDaEIsS0FBSyxnQkFBZ0IsY0FBYyxJQUNuQztBQUVGLFFBQUssTUFBTSxZQUFZLDRCQUE0QixHQUFHLGdCQUFnQixLQUFJLElBQUs7QUFDL0UsUUFBSyxNQUFNLFlBQVksNEJBQTRCLEdBQUcsZ0JBQWdCLElBQUcsSUFBSztBQUM5RSxRQUFLLE1BQU0sWUFBWSxrQ0FBa0MsR0FBRyxlQUFjLElBQUs7QUFDL0UsUUFBSyxNQUFNLFlBQVksNEJBQTRCLGdCQUFnQixVQUFVOztFQUs1RCx5QkFBeUIsUUFFM0M7Ozs7O0FBS0MsVUFBTyxLQUFLLGNBQ1YsSUFBSSxZQUFpRCxlQUFlO0lBQ2xFO0lBQ0EsWUFBWTtJQUNiLENBQUMsQ0FDSDs7RUFHZ0IsbUJBQW1CLFFBQTRDOzs7OztBQUtoRixVQUFPLEtBQUssY0FDVixJQUFJLFlBQWlELFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FDMUU7O0VBR2dCLFNBQU07QUFDdkIsVUFBTyxJQUFJOzs7MEJBR1csS0FBSyx1QkFBQTs7O1lBR25CLEtBQUssT0FBa0IsS0FBSyxVQUFVLEdBQXNCLENBQUE7OztzQkFHbEQsVUFBaUIsS0FBSyw2QkFBNkIsTUFBTSxDQUFBOzs7Y0FHakUsS0FBSyxlQUFlLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQnJCLDJCQUFpQjttQkFBUzs7Ozs7Ozs7Ozs7OztjQUExQiwwQkFBMEIsWUFBcUI7OztBQUsxQyxTQUFBLG9DQUxMLGtCQUFBLE1BQUEsMkJBQWlCLEVBQUEsa0JBQUEsTUFBQSwrQkFLZSxNQUFLO0FBS2hDLFNBQUEsaUNBQUEsa0JBQUEsTUFBQSxtQ0FBQSxFQUFBLGtCQUFBLE1BQUEsNEJBQXdCLE1BQUs7QUFlckMsUUFBQSxhQUFVLGtCQUFBLE1BQUEsZ0NBQUE7QUFvQkYsU0FBQSwyQ0FBQSxrQkFBQSxNQUFBLHVDQUFrQyxHQUFFO0FBRTVDLFFBQUEsaUJBQWEsa0JBQUEsTUFBQSwyQ0FBQSxFQUFHO0FBRWhCLFFBQUEsWUFBWSxJQUFJLHNCQUFzQixLQUFLO0FBQzNDLFFBQUEsMEJBQWtEO0FBbUZsRCxRQUFBLDZCQUFrQztBQUN4QyxRQUFJLEtBQUssVUFBVSxZQUFZLEtBQUssVUFBVSxVQUM1QyxNQUFLLGVBQWUsaUJBQWdCO0FBR2xDLDhCQUF5QixPQUFPO0FBQ2hDLFVBQUssTUFBTTtPQUNWLEtBQUssVUFBVTtRQUVsQixjQUFhLEtBQUssYUFBYTs7QUFJM0IsUUFBQSw2QkFBa0M7QUFDeEMsUUFBSSxLQUFLLFVBQVUsWUFBWSxLQUFLLFVBQVUsVUFDNUMsTUFBSyxlQUFlLGlCQUFpQixLQUFLLE9BQU8sRUFBRSxLQUFLLFdBQVc7UUFFbkUsY0FBYSxLQUFLLGFBQWE7O0FBSTNCLFFBQUEsNkJBQWtDO0FBQ3hDLFFBQUksS0FBSyxVQUFVLFVBQ2pCLGNBQWEsS0FBSyxhQUFhOztBQUkzQixRQUFBLDZCQUFrQztBQUN4QyxRQUFJLEtBQUssVUFBVSxVQUNqQixNQUFLLGVBQWUsaUJBQWlCLEtBQUssT0FBTyxFQUFFLEtBQUssV0FBVzs7Ozs7a0NBL0p0RSxXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBcUIsTUFBTTtJQUFTLFNBQVM7SUFBTSxDQUFDLENBQUE7K0JBSTFFLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUFpQixNQUFNO0lBQVMsQ0FBQyxDQUFBO2dDQVN2RCxTQUFTO0lBQUUsV0FBVztJQUFjLE1BQU07SUFBUSxDQUFDLENBQUE7aUNBZW5ELFNBQVM7SUFBRSxXQUFXO0lBQWUsTUFBTTtJQUFRLENBQUMsQ0FBQTswQ0FVcEQsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLDZCQUE2QixDQUFDLENBQUE7QUF2Q3JELGdCQUFBLE1BQUEsTUFBQSw2QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLHFCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWUsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFmLGtCQUFlOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsK0JBQUEsbUNBQUE7QUFLL0IsZ0JBQUEsTUFBQSxNQUFBLDBCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsa0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBWSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVosZUFBWTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDRCQUFBLGdDQUFBO0FBUzVCLGdCQUFBLE1BQUEsTUFBQSwyQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLGVBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsWUFBUzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLE1BQUEsMkJBQUE7QUFlcEIsZ0JBQUEsTUFBQSxNQUFBLDRCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZ0JBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsYUFBVTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLE1BQUEsMkJBQUE7QUFXckIsZ0JBQUEsTUFBQSxNQUFBLHFDQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsNkJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBdUIsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUF2QiwwQkFBdUI7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1Q0FBQSwyQ0FBQTs7Ozs7Ozs7O0FBNUNQLFFBQUEsY0FBc0I7O0VBSXREOztFQUFBLElBQWdCLGtCQUFlO0FBQUEsVUFBQSxNQUFBOztFQUEvQixJQUFnQixnQkFBZSxPQUFBO0FBQUEsU0FBQSxtQ0FBQTs7RUFLL0I7O0VBQUEsSUFBZ0IsZUFBWTtBQUFBLFVBQUEsTUFBQTs7RUFBNUIsSUFBZ0IsYUFBWSxPQUFBO0FBQUEsU0FBQSxnQ0FBQTs7Ozs7Ozs7RUFTNUIsSUFBVyxVQUFVLE9BQWE7QUFDaEMsUUFBSyxhQUFhLENBQUM7O0VBRXJCLElBQVcsWUFBUztBQUNsQixVQUFPLEtBQUssY0FBYyxZQUFZLENBQUMsU0FBUyxhQUFhOzs7Ozs7OztFQVcvRCxJQUFXLFdBQVcsT0FBYTtBQUNqQyxRQUFLLGNBQWMsQ0FBQzs7RUFFdEIsSUFBVyxhQUFVO0FBQ25CLFVBQU8sS0FBSyxlQUFlLFlBQVksQ0FBQyxTQUFTLGNBQWM7O0VBT2pFOztFQUFBLElBQWdCLDBCQUF1QjtBQUFBLFVBQUEsTUFBQTs7RUFBdkMsSUFBZ0Isd0JBQXVCLE9BQUE7QUFBQSxTQUFBLDJDQUFBOztFQU9wQixpQkFBaUIsWUFBOEI7R0FJaEUsTUFBTSxlQUFlLEtBQUssZ0JBQWdCLENBQUM7QUFFM0MsT0FBSSxLQUFLLFlBQVksY0FBYyxpQkFBaUIsS0FBSyxjQUN2RDtBQUdGLE9BQUksS0FBSyxrQkFBa0IsY0FBYztBQUN2QyxTQUFLLGdCQUFnQjtBQUNyQixTQUFLLFlBQVksaUJBQWlCLEtBQUssY0FBYztBQUNyRCxTQUFLLDJCQUEyQjs7QUFHbEMsU0FBTSxpQkFBaUIsV0FBVzs7RUFHNUIsNEJBQXlCO0FBQy9CLFFBQUsseUJBQXlCLE9BQU87QUFFckMsT0FBSSxLQUFLLGVBQWU7QUFDdEIsU0FBSywwQkFBMEIsSUFBSSxpQkFBaUI7QUFDcEQsU0FBSyxTQUFTLGlCQUFpQixvQkFBb0IsS0FBSyxzQkFBc0IsRUFBRSxFQUM5RSxRQUFRLEtBQUssd0JBQXdCLFFBQ3RDLENBQUM7QUFDRixTQUFLLFNBQVMsaUJBQWlCLG9CQUFvQixLQUFLLHNCQUFzQixFQUFFLEVBQzlFLFFBQVEsS0FBSyx3QkFBd0IsUUFDdEMsQ0FBQzs7O0VBSWEseUJBQXlCLFFBQW1CO0FBQzdELE9BQUksS0FBSyxpQkFBaUIsS0FBSyxTQUFTO0FBQ3RDLFNBQUssUUFBUSxpQkFBaUIsY0FBYyxLQUFLLHNCQUFzQixFQUFFLFFBQVEsQ0FBQztBQUNsRixTQUFLLFFBQVEsaUJBQWlCLGNBQWMsS0FBSyxzQkFBc0IsRUFBRSxRQUFRLENBQUM7QUFDbEYsU0FBSyxRQUFRLGlCQUNYLFlBQ0MsUUFBc0I7QUFDckIsU0FBSSxJQUFJLFNBQVMsV0FBVyxJQUFJLFNBQVMsUUFDdkMsTUFBSyxNQUFNO09BR2YsRUFBRSxRQUFRLENBQ1g7QUFDRCxTQUFLLFFBQVEsaUJBQ1gsY0FDQyxRQUFtQjtBQUVsQixTQUFJLGdDQUFnQyxJQUFJLENBQ3RDLE1BQUssTUFBTTtPQUdmLEVBQUUsUUFBUSxDQUNYO1NBRUQsT0FBTSx5QkFBeUIsT0FBTzs7RUFJdkIsYUFBYSxtQkFBdUM7QUFDckUsU0FBTSxhQUFhLGtCQUFrQjtBQUVyQyxRQUFLLDJCQUEyQjs7RUFHbEIsT0FBSTtBQUNsQixTQUFNLE1BQU07QUFFWixPQUFJLEtBQUssZ0JBQWdCLEtBQUssUUFDNUIsa0JBQWlCLEtBQUssUUFBUSxDQUFDLElBQUksY0FBYzs7RUFJckMsUUFBSztBQUNuQixTQUFNLE9BQU87QUFFYixvQkFBaUIsS0FBSyxRQUFRLEVBQUUsT0FBTyxjQUFjOztFQW9DcEMsZ0JBQWE7R0FDOUIsTUFBTSxjQUFjLElBQUk7O3FCQUVQLEtBQUssMkJBQTJCLGlCQUFpQixLQUFLLFVBQVUsU0FBQTs7Ozs7OztBQVFqRixVQUFPLElBQUk7UUFDUCxDQUFDLEtBQUssbUJBQW1CLENBQUMsS0FBSyxnQkFBZ0IsY0FBYyxRQUFBIn0=
@@ -1,4 +1,4 @@
1
- import { n as SbbPopoverElement, t as SbbPopoverBaseElement } from "./popover.component-BujfGgbD.js";
1
+ import { n as SbbPopoverElement, t as SbbPopoverBaseElement } from "./popover.component-CLwOes_-.js";
2
2
  import "./popover.pure.js";
3
3
  //#region src/elements/popover.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { n as SbbPopoverElement, t as SbbPopoverBaseElement } from "./popover.component-BujfGgbD.js";
1
+ import { n as SbbPopoverElement, t as SbbPopoverBaseElement } from "./popover.component-CLwOes_-.js";
2
2
  export { SbbPopoverBaseElement, SbbPopoverElement };
@@ -1,2 +1,2 @@
1
- import { n as radio_button_common_default, t as SbbRadioButtonCommonElementMixin } from "../../radio-button-common-CjbP9yKf.js";
1
+ import { n as radio_button_common_default, t as SbbRadioButtonCommonElementMixin } from "../../radio-button-common-CsjMvmAn.js";
2
2
  export { SbbRadioButtonCommonElementMixin, radio_button_common_default as radioButtonCommonStyle };
@@ -1,4 +1,4 @@
1
- import { n as radio_button_common_default, t as SbbRadioButtonCommonElementMixin } from "../radio-button-common-CjbP9yKf.js";
1
+ import { n as radio_button_common_default, t as SbbRadioButtonCommonElementMixin } from "../radio-button-common-CsjMvmAn.js";
2
2
  //#region src/elements/radio-button/common.ts
3
3
  console.warn(`The entrypoint '@sbb-esta/elements/radio-button/common.js' has been deprecated.
4
4
  Use either '@sbb-esta/elements/radio-button.js' or '@sbb-esta/elements/radio-button.pure.js' instead.`);
@@ -1,3 +1,3 @@
1
- import "../radio-button-common-CjbP9yKf.js";
2
- import { t as SbbRadioButtonElement } from "../radio-button.component-CVATlwTb.js";
1
+ import "../radio-button-common-CsjMvmAn.js";
2
+ import { t as SbbRadioButtonElement } from "../radio-button.component-BTnHGixs.js";
3
3
  export { SbbRadioButtonElement };
@@ -1,5 +1,5 @@
1
- import "../radio-button-common-CjbP9yKf.js";
2
- import { t as SbbRadioButtonElement } from "../radio-button.component-CVATlwTb.js";
1
+ import "../radio-button-common-CsjMvmAn.js";
2
+ import { t as SbbRadioButtonElement } from "../radio-button.component-BTnHGixs.js";
3
3
  //#region src/elements/radio-button/radio-button.ts
4
4
  /** @entrypoint */
5
5
  SbbRadioButtonElement.define();
@@ -228,4 +228,4 @@ var SbbRadioButtonCommonElementMixin = (superClass) => {
228
228
  //#endregion
229
229
  export { radio_button_common_default as n, SbbRadioButtonCommonElementMixin as t };
230
230
 
231
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWNvbW1vbi1DamJQOXlLZi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL2NvbW1vbi9yYWRpby1idXR0b24tY29tbW9uLnNjc3M/bGl0JmlubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9yYWRpby1idXR0b24vY29tbW9uL3JhZGlvLWJ1dHRvbi1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1yYWRpby1idXR0b24taW5uZXItY2lyY2xlLWNvbG9yOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3IpO1xuXG4gIC8vIFRoZSBib3JkZXIgaW4gdW5jaGVja2VkIHN0YXRlIHNob3VsZCBmaWxsIHRoZSBjaXJjbGUuXG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWZha2UtYm9yZGVyLXdpZHRoOiBjYWxjKHZhcigtLXNiYi1yYWRpby1idXR0b24tZGltZW5zaW9uKSAvIDIpO1xuXG4gIC8vIEFsaWduIHJhZGlvIGJ1dHRvbiB0byB0aGUgZmlyc3Qgcm93IG9mIHRoZSBsYWJlbCBiYXNlZCBvbiB0aGUgbGluZS1oZWlnaHQgc28gdGhhdCBpdCdzIHZlcnRpY2FsbHlcbiAgLy8gYWxpZ25lZCB0byB0aGUgbGFiZWwgYW5kIHN0aWNrcyB0byB0aGUgdG9wIGlmIHRoZSBsYWJlbCBicmVha3MgaW50byBtdWx0aXBsZSBsaW5lc1xuICAtLXNiYi1yYWRpby1idXR0b24taWNvbi1hbGlnbjogY2FsYyhcbiAgICAoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgLSB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbikpIC8gMlxuICApO1xufVxuXG46aG9zdCg6c3RhdGUoY2hlY2tlZCkpIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWlubmVyLWNpcmNsZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXByaW1hcnkpO1xuICAtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1mYWtlLWJvcmRlci13aWR0aDogY2FsYyhcbiAgICAodmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24pIC0gdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtZGltZW5zaW9uKSkgLyAyXG4gICk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtY29sb3I6IEhpZ2hsaWdodDtcbiAgICAtLXNiYi1yYWRpby1idXR0b24tYm9yZGVyLWNvbG9yOiBIaWdobGlnaHQ7XG4gIH1cbn1cblxuLy8gRGlzYWJsZWQgZGVmaW5pdGlvbnMgaGF2ZSB0byBiZSBhZnRlciBjaGVja2VkIGRlZmluaXRpb25zXG46aG9zdCg6ZGlzYWJsZWQpIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWxhYmVsLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWFsdW1pbml1bSkpO1xuICAtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWlubmVyLWNpcmNsZS1jb2xvcjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1kZWZhdWx0KTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3I6IENhbnZhcztcbiAgICAtLXNiYi1yYWRpby1idXR0b24taW5uZXItY2lyY2xlLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi1yYWRpby1idXR0b24tYm9yZGVyLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi1yYWRpby1idXR0b24tYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBkZWZpbml0aW9ucyBoYXZlIHRvIGJlIGFmdGVyIGNoZWNrZWQgZGVmaW5pdGlvbnNcbjpob3N0KDpkaXNhYmxlZDpzdGF0ZShjaGVja2VkKSkge1xuICAtLXNiYi1yYWRpby1idXR0b24taW5uZXItY2lyY2xlLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0yLWludmVydGVkKTtcbn1cblxuOmhvc3QoW3NpemU9J3hzJ10pIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24teHMpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1mb250LXNpemU6IHZhcigtLXNiYi10ZXh0LWZvbnQtc2l6ZS1zKTtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24tcyk7XG59XG5cbjpob3N0KFtzaXplPSdtJ10pIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLW0pO1xuICAtLXNiYi1yYWRpby1idXR0b24tZGltZW5zaW9uOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbi1tKTtcbn1cblxuLnNiYi1zY3JlZW4tcmVhZGVyLW9ubHkge1xuICBAaW5jbHVkZSBzYmIuc2NyZWVuLXJlYWRlci1vbmx5O1xufVxuXG4uc2JiLXJhZGlvLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHZhcigtLXNiYi1yYWRpby1idXR0b24tY3Vyc29yKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHZhcigtLXNiYi1yYWRpby1idXR0b24tbGFiZWwtY29sb3IpO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uc2JiLXJhZGlvLWJ1dHRvbl9fbGFiZWwtc2xvdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXNiYi1yYWRpby1idXR0b24tZm9udC1zaXplKSAqIHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpKTtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24pO1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24pO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1yYWRpby1idXR0b24taWNvbi1hbGlnbik7XG5cbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLCB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KSk7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgICBwcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gVW5jaGVja2VkIHN0eWxlXG4gICY6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtY29sb3IpO1xuXG4gICAgLy8gVGhlIGJvcmRlciB3YXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYW5pbWF0aW9uIG9mIHRoZSByYWRpby1idXR0b25cbiAgICAvLyBUaGUgYm9yZGVyIGNvbG9yIGFjdHMgYXMgYmFja2dyb3VuZCBjb2xvci5cbiAgICBib3JkZXI6IHZhcigtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1mYWtlLWJvcmRlci13aWR0aCkgc29saWRcbiAgICAgIHZhcigtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXNiYi1yYWRpby1idXR0b24tbGFiZWwtZ2FwKTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWJvcmRlci13aWR0aCkgdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1ib3JkZXItc3R5bGUpXG4gICAgICB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gIH1cbn1cbiIsImltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7XG4gIHR5cGUgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgdHlwZSBDb25zdHJ1Y3RvcixcbiAgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IH0gZnJvbSAnLi4vLi4vcmFkaW8tYnV0dG9uLWdyb3VwLnRzJztcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyByYWRpb0J1dHRvbkNvbW1vblN0eWxlIH0gZnJvbSAnLi9yYWRpby1idXR0b24tY29tbW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYlJhZGlvQnV0dG9uU2l6ZSA9ICd4cycgfCAncycgfCAnbSc7XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpbihcbiAgU2JiRWxlbWVudCxcbikge1xuICBwdWJsaWMgZ2V0IGFsbG93RW1wdHlTZWxlY3Rpb24oKTogYm9vbGVhbjtcbiAgcHVibGljIHNldCBhbGxvd0VtcHR5U2VsZWN0aW9uKGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGdyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgbnVsbDtcbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW4gPSA8VCBleHRlbmRzIENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpbihzdXBlckNsYXNzKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgICBpbnB1dDogJ2lucHV0JyxcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgcmFkaW8gY2FuIGJlIGRlc2VsZWN0ZWQuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWxsb3ctZW1wdHktc2VsZWN0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBzZXQgYWxsb3dFbXB0eVNlbGVjdGlvbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy5fYWxsb3dFbXB0eVNlbGVjdGlvbiA9IEJvb2xlYW4odmFsdWUpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGFsbG93RW1wdHlTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fYWxsb3dFbXB0eVNlbGVjdGlvbiB8fCAodGhpcy5ncm91cD8uYWxsb3dFbXB0eVNlbGVjdGlvbiA/PyBmYWxzZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2FsbG93RW1wdHlTZWxlY3Rpb24gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgY29ubmVjdGVkIHJhZGlvIGJ1dHRvbiBncm91cC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5fZ3JvdXA7XG4gICAgfVxuICAgIHByaXZhdGUgX2dyb3VwOiBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlKSA9PiB0aGlzLl9oYW5kbGVDbGljayhlKSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5fZ3JvdXAgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1yYWRpby1idXR0b24tZ3JvdXAnKSBhcyBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudDtcblxuICAgICAgLy8gV2UgbmVlZCB0byBjYWxsIHJlcXVlc3RVcGRhdGUgdG8gdXBkYXRlIHRoZSByZWZsZWN0ZWQgYXR0cmlidXRlc1xuICAgICAgWydkaXNhYmxlZCcsICdyZXF1aXJlZCcsICdzaXplJ10uZm9yRWFjaCgocCkgPT4gdGhpcy5yZXF1ZXN0VXBkYXRlKHApKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIHJhZGlvLWJ1dHRvbiBhcyAnY2hlY2tlZCc7IGlmICdhbGxvd0VtcHR5U2VsZWN0aW9uJywgdG9nZ2xlIHRoZSBjaGVja2VkIHByb3BlcnR5LlxuICAgICAqIEluIGJvdGggY2FzZXMgaXQgZW1pdHMgdGhlIGNoYW5nZSBldmVudHMuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYWxsb3dFbXB0eVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNEaXNhYmxlZEV4dGVybmFsbHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5ncm91cD8uZGlzYWJsZWQgPz8gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzUmVxdWlyZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JvdXA/LnJlcXVpcmVkID8/IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2hhbmRsZUNsaWNrKGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0KCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogU2luY2Ugb25seSBhIHNpbmdsZSByYWRpbyBvZiBhIGdyb3VwIGlzIGZvY3VzYWJsZSBhdCBhbnkgdGltZSwgaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgb25lIGNsaWNrZWQgZG9lcyBub3QgaGF2ZSAndGFiaW5kZXg9MCcuXG4gICAgICAgKiBUbyBjb3ZlciB0aGF0LCB3ZSBhd2FpdCB0aGUgbmV4dCByZW5kZXIgKHdoaWNoIHdpbGwgbWFrZSB0aGUgJ2NoZWNrZWQnIHJhZGlvIGZvY3VzYWJsZSkgYW5kIGZvY3VzIHRoZSBjbGlja2VkIHJhZGlvXG4gICAgICAgKi9cbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7IC8vIFdhaXQgZm9yICd0YWJpbmRleCcgdG8gYmUgdXBkYXRlZFxuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICBpZiAoZXZ0LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDd0JBLElBQWEsb0NBQ1gsZUFDaUU7QUEwRmpFLGVBekYwQztvQkFDaEMsa0NBQWtDLFdBQVc7OztlQUR4QyxvQ0FDTCxZQUE2Qzs7OzJDQVdwRCxTQUFTO0tBQUUsV0FBVztLQUF5QixNQUFNO0tBQVMsQ0FBQyxDQUFBO0FBQ2hFLGlCQUFBLE1BQUEsTUFBQSxxQ0FBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLHlCQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLHNCQUFtQjs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLE1BQUEsMkJBQUE7Ozs7Ozs7OztBQVRQLFNBQUEsU0FBUztLQUM5QixRQUFRO0tBQ1IsT0FBTztLQUNDOzs7OztHQU1WLElBQVcsb0JBQW9CLE9BQWM7QUFDM0MsU0FBSyx1QkFBdUIsUUFBUSxNQUFNOztHQUU1QyxJQUFXLHNCQUFtQjtBQUM1QixXQUFPLEtBQUsseUJBQXlCLEtBQUssT0FBTyx1QkFBdUI7Ozs7O0dBTzFFLElBQVcsUUFBSztBQUNkLFdBQU8sS0FBSzs7R0FJZCxjQUFBO0FBQ0UsV0FBTztBQVhELFNBQUEsd0JBbkJLLGtCQUFBLE1BQUEsMkJBQTJCLEVBbUJUO0FBUXZCLFNBQUEsU0FBNEM7QUFJbEQsU0FBSyxtQkFBbUIsVUFBVSxNQUFNLEtBQUssYUFBYSxFQUFFLENBQUM7QUFDN0QsU0FBSyxtQkFBbUIsWUFBWSxNQUFNLEtBQUssZUFBZSxFQUFFLENBQUM7O0dBR25ELG9CQUFpQjtBQUMvQixVQUFNLG1CQUFtQjtBQUN6QixTQUFLLFNBQVMsS0FBSyxRQUFRLHlCQUF1RDtBQUdsRjtLQUFDO0tBQVk7S0FBWTtLQUFPLENBQUMsU0FBUyxNQUFNLEtBQUssY0FBYyxFQUFFLENBQUM7Ozs7OztHQU9qRSxTQUFNO0FBQ1gsUUFBSSxLQUFLLFlBQVksS0FBSyxhQUN4QjtBQUdGLFFBQUksS0FBSyxxQkFBcUI7QUFDNUIsVUFBSyxVQUFVLENBQUMsS0FBSztBQUNyQixVQUFLLGtCQUFrQjtlQUNkLENBQUMsS0FBSyxTQUFTO0FBQ3hCLFVBQUssVUFBVTtBQUNmLFVBQUssa0JBQWtCOzs7R0FJUix1QkFBb0I7QUFDckMsV0FBTyxLQUFLLE9BQU8sWUFBWTs7R0FHZCx1QkFBb0I7QUFDckMsV0FBTyxLQUFLLE9BQU8sWUFBWTs7R0FHekIsTUFBTSxhQUFhLE9BQVk7QUFDckMsVUFBTSxnQkFBZ0I7QUFDdEIsU0FBSyxRQUFROzs7OztBQU1iLFVBQU0sS0FBSztBQUNYLFNBQUssT0FBTzs7R0FHTixlQUFlLEtBQWtCO0FBQ3ZDLFFBQUksSUFBSSxTQUFTLFNBQVM7QUFDeEIsU0FBSSxnQkFBZ0I7QUFDcEIsVUFBSyxRQUFRIn0=
231
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWNvbW1vbi1Dc2pNdm1Bbi5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL2NvbW1vbi9yYWRpby1idXR0b24tY29tbW9uLnNjc3M/bGl0JmlubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9yYWRpby1idXR0b24vY29tbW9uL3JhZGlvLWJ1dHRvbi1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1yYWRpby1idXR0b24taW5uZXItY2lyY2xlLWNvbG9yOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3IpO1xuXG4gIC8vIFRoZSBib3JkZXIgaW4gdW5jaGVja2VkIHN0YXRlIHNob3VsZCBmaWxsIHRoZSBjaXJjbGUuXG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWZha2UtYm9yZGVyLXdpZHRoOiBjYWxjKHZhcigtLXNiYi1yYWRpby1idXR0b24tZGltZW5zaW9uKSAvIDIpO1xuXG4gIC8vIEFsaWduIHJhZGlvIGJ1dHRvbiB0byB0aGUgZmlyc3Qgcm93IG9mIHRoZSBsYWJlbCBiYXNlZCBvbiB0aGUgbGluZS1oZWlnaHQgc28gdGhhdCBpdCdzIHZlcnRpY2FsbHlcbiAgLy8gYWxpZ25lZCB0byB0aGUgbGFiZWwgYW5kIHN0aWNrcyB0byB0aGUgdG9wIGlmIHRoZSBsYWJlbCBicmVha3MgaW50byBtdWx0aXBsZSBsaW5lc1xuICAtLXNiYi1yYWRpby1idXR0b24taWNvbi1hbGlnbjogY2FsYyhcbiAgICAoMWVtICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkgLSB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbikpIC8gMlxuICApO1xufVxuXG46aG9zdCg6c3RhdGUoY2hlY2tlZCkpIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWlubmVyLWNpcmNsZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLXByaW1hcnkpO1xuICAtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1mYWtlLWJvcmRlci13aWR0aDogY2FsYyhcbiAgICAodmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24pIC0gdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtZGltZW5zaW9uKSkgLyAyXG4gICk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtY29sb3I6IEhpZ2hsaWdodDtcbiAgICAtLXNiYi1yYWRpby1idXR0b24tYm9yZGVyLWNvbG9yOiBIaWdobGlnaHQ7XG4gIH1cbn1cblxuLy8gRGlzYWJsZWQgZGVmaW5pdGlvbnMgaGF2ZSB0byBiZSBhZnRlciBjaGVja2VkIGRlZmluaXRpb25zXG46aG9zdCg6ZGlzYWJsZWQpIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWxhYmVsLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1ncmFuaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWFsdW1pbml1bSkpO1xuICAtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWlubmVyLWNpcmNsZS1jb2xvcjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1kZWZhdWx0KTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3I6IENhbnZhcztcbiAgICAtLXNiYi1yYWRpby1idXR0b24taW5uZXItY2lyY2xlLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi1yYWRpby1idXR0b24tYm9yZGVyLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAtLXNiYi1yYWRpby1idXR0b24tYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBkZWZpbml0aW9ucyBoYXZlIHRvIGJlIGFmdGVyIGNoZWNrZWQgZGVmaW5pdGlvbnNcbjpob3N0KDpkaXNhYmxlZDpzdGF0ZShjaGVja2VkKSkge1xuICAtLXNiYi1yYWRpby1idXR0b24taW5uZXItY2lyY2xlLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0yLWludmVydGVkKTtcbn1cblxuOmhvc3QoW3NpemU9J3hzJ10pIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXhzKTtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24teHMpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1mb250LXNpemU6IHZhcigtLXNiYi10ZXh0LWZvbnQtc2l6ZS1zKTtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24tcyk7XG59XG5cbjpob3N0KFtzaXplPSdtJ10pIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLW0pO1xuICAtLXNiYi1yYWRpby1idXR0b24tZGltZW5zaW9uOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbi1tKTtcbn1cblxuLnNiYi1zY3JlZW4tcmVhZGVyLW9ubHkge1xuICBAaW5jbHVkZSBzYmIuc2NyZWVuLXJlYWRlci1vbmx5O1xufVxuXG4uc2JiLXJhZGlvLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHZhcigtLXNiYi1yYWRpby1idXR0b24tY3Vyc29yKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6IHZhcigtLXNiYi1yYWRpby1idXR0b24tbGFiZWwtY29sb3IpO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uc2JiLXJhZGlvLWJ1dHRvbl9fbGFiZWwtc2xvdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiBjYWxjKHZhcigtLXNiYi1yYWRpby1idXR0b24tZm9udC1zaXplKSAqIHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpKTtcblxuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24pO1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24pO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1yYWRpby1idXR0b24taWNvbi1hbGlnbik7XG5cbiAgICB0cmFuc2l0aW9uOiB7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLCB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KSk7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgICBwcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgYm9yZGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gVW5jaGVja2VkIHN0eWxlXG4gICY6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtY29sb3IpO1xuXG4gICAgLy8gVGhlIGJvcmRlciB3YXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYW5pbWF0aW9uIG9mIHRoZSByYWRpby1idXR0b25cbiAgICAvLyBUaGUgYm9yZGVyIGNvbG9yIGFjdHMgYXMgYmFja2dyb3VuZCBjb2xvci5cbiAgICBib3JkZXI6IHZhcigtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1mYWtlLWJvcmRlci13aWR0aCkgc29saWRcbiAgICAgIHZhcigtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXNiYi1yYWRpby1idXR0b24tbGFiZWwtZ2FwKTtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWJvcmRlci13aWR0aCkgdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1ib3JkZXItc3R5bGUpXG4gICAgICB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWJvcmRlci1jb2xvcik7XG4gIH1cbn1cbiIsImltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7XG4gIHR5cGUgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgdHlwZSBDb25zdHJ1Y3RvcixcbiAgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IH0gZnJvbSAnLi4vLi4vcmFkaW8tYnV0dG9uLWdyb3VwLnRzJztcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyByYWRpb0J1dHRvbkNvbW1vblN0eWxlIH0gZnJvbSAnLi9yYWRpby1idXR0b24tY29tbW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYlJhZGlvQnV0dG9uU2l6ZSA9ICd4cycgfCAncycgfCAnbSc7XG5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpbihcbiAgU2JiRWxlbWVudCxcbikge1xuICBwdWJsaWMgZ2V0IGFsbG93RW1wdHlTZWxlY3Rpb24oKTogYm9vbGVhbjtcbiAgcHVibGljIHNldCBhbGxvd0VtcHR5U2VsZWN0aW9uKGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IGdyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgbnVsbDtcbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW4gPSA8VCBleHRlbmRzIENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRcbiAgICBleHRlbmRzIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpbihzdXBlckNsYXNzKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgICBpbnB1dDogJ2lucHV0JyxcbiAgICB9IGFzIGNvbnN0O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgcmFkaW8gY2FuIGJlIGRlc2VsZWN0ZWQuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWxsb3ctZW1wdHktc2VsZWN0aW9uJywgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBzZXQgYWxsb3dFbXB0eVNlbGVjdGlvbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgdGhpcy5fYWxsb3dFbXB0eVNlbGVjdGlvbiA9IEJvb2xlYW4odmFsdWUpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGFsbG93RW1wdHlTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fYWxsb3dFbXB0eVNlbGVjdGlvbiB8fCAodGhpcy5ncm91cD8uYWxsb3dFbXB0eVNlbGVjdGlvbiA/PyBmYWxzZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2FsbG93RW1wdHlTZWxlY3Rpb24gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgY29ubmVjdGVkIHJhZGlvIGJ1dHRvbiBncm91cC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5fZ3JvdXA7XG4gICAgfVxuICAgIHByaXZhdGUgX2dyb3VwOiBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgc3VwZXIoKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlKSA9PiB0aGlzLl9oYW5kbGVDbGljayhlKSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5fZ3JvdXAgPSB0aGlzLmNsb3Nlc3QoJ3NiYi1yYWRpby1idXR0b24tZ3JvdXAnKSBhcyBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudDtcblxuICAgICAgLy8gV2UgbmVlZCB0byBjYWxsIHJlcXVlc3RVcGRhdGUgdG8gdXBkYXRlIHRoZSByZWZsZWN0ZWQgYXR0cmlidXRlc1xuICAgICAgWydkaXNhYmxlZCcsICdyZXF1aXJlZCcsICdzaXplJ10uZm9yRWFjaCgocCkgPT4gdGhpcy5yZXF1ZXN0VXBkYXRlKHApKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIHJhZGlvLWJ1dHRvbiBhcyAnY2hlY2tlZCc7IGlmICdhbGxvd0VtcHR5U2VsZWN0aW9uJywgdG9nZ2xlIHRoZSBjaGVja2VkIHByb3BlcnR5LlxuICAgICAqIEluIGJvdGggY2FzZXMgaXQgZW1pdHMgdGhlIGNoYW5nZSBldmVudHMuXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYWxsb3dFbXB0eVNlbGVjdGlvbikge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VFdmVudHMoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNEaXNhYmxlZEV4dGVybmFsbHkoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5ncm91cD8uZGlzYWJsZWQgPz8gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzUmVxdWlyZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JvdXA/LnJlcXVpcmVkID8/IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2hhbmRsZUNsaWNrKGV2ZW50OiBFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2VsZWN0KCk7XG5cbiAgICAgIC8qKlxuICAgICAgICogU2luY2Ugb25seSBhIHNpbmdsZSByYWRpbyBvZiBhIGdyb3VwIGlzIGZvY3VzYWJsZSBhdCBhbnkgdGltZSwgaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgb25lIGNsaWNrZWQgZG9lcyBub3QgaGF2ZSAndGFiaW5kZXg9MCcuXG4gICAgICAgKiBUbyBjb3ZlciB0aGF0LCB3ZSBhd2FpdCB0aGUgbmV4dCByZW5kZXIgKHdoaWNoIHdpbGwgbWFrZSB0aGUgJ2NoZWNrZWQnIHJhZGlvIGZvY3VzYWJsZSkgYW5kIGZvY3VzIHRoZSBjbGlja2VkIHJhZGlvXG4gICAgICAgKi9cbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlQ29tcGxldGU7IC8vIFdhaXQgZm9yICd0YWJpbmRleCcgdG8gYmUgdXBkYXRlZFxuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hhbmRsZUtleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICBpZiAoZXZ0LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDd0JBLElBQWEsb0NBQ1gsZUFDaUU7QUEwRmpFLGVBekYwQztvQkFDaEMsa0NBQWtDLFdBQVc7OztlQUR4QyxvQ0FDTCxZQUE2Qzs7OzJDQVdwRCxTQUFTO0tBQUUsV0FBVztLQUF5QixNQUFNO0tBQVMsQ0FBQyxDQUFBO0FBQ2hFLGlCQUFBLE1BQUEsTUFBQSxxQ0FBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLHlCQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLHNCQUFtQjs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLE1BQUEsMkJBQUE7Ozs7Ozs7OztBQVRQLFNBQUEsU0FBUztLQUM5QixRQUFRO0tBQ1IsT0FBTztLQUNDOzs7OztHQU1WLElBQVcsb0JBQW9CLE9BQWM7QUFDM0MsU0FBSyx1QkFBdUIsUUFBUSxNQUFNOztHQUU1QyxJQUFXLHNCQUFtQjtBQUM1QixXQUFPLEtBQUsseUJBQXlCLEtBQUssT0FBTyx1QkFBdUI7Ozs7O0dBTzFFLElBQVcsUUFBSztBQUNkLFdBQU8sS0FBSzs7R0FJZCxjQUFBO0FBQ0UsV0FBTztBQVhELFNBQUEsd0JBbkJLLGtCQUFBLE1BQUEsMkJBQTJCLEVBbUJUO0FBUXZCLFNBQUEsU0FBNEM7QUFJbEQsU0FBSyxtQkFBbUIsVUFBVSxNQUFNLEtBQUssYUFBYSxFQUFFLENBQUM7QUFDN0QsU0FBSyxtQkFBbUIsWUFBWSxNQUFNLEtBQUssZUFBZSxFQUFFLENBQUM7O0dBR25ELG9CQUFpQjtBQUMvQixVQUFNLG1CQUFtQjtBQUN6QixTQUFLLFNBQVMsS0FBSyxRQUFRLHlCQUF1RDtBQUdsRjtLQUFDO0tBQVk7S0FBWTtLQUFPLENBQUMsU0FBUyxNQUFNLEtBQUssY0FBYyxFQUFFLENBQUM7Ozs7OztHQU9qRSxTQUFNO0FBQ1gsUUFBSSxLQUFLLFlBQVksS0FBSyxhQUN4QjtBQUdGLFFBQUksS0FBSyxxQkFBcUI7QUFDNUIsVUFBSyxVQUFVLENBQUMsS0FBSztBQUNyQixVQUFLLGtCQUFrQjtlQUNkLENBQUMsS0FBSyxTQUFTO0FBQ3hCLFVBQUssVUFBVTtBQUNmLFVBQUssa0JBQWtCOzs7R0FJUix1QkFBb0I7QUFDckMsV0FBTyxLQUFLLE9BQU8sWUFBWTs7R0FHZCx1QkFBb0I7QUFDckMsV0FBTyxLQUFLLE9BQU8sWUFBWTs7R0FHekIsTUFBTSxhQUFhLE9BQVk7QUFDckMsVUFBTSxnQkFBZ0I7QUFDdEIsU0FBSyxRQUFROzs7OztBQU1iLFVBQU0sS0FBSztBQUNYLFNBQUssT0FBTzs7R0FHTixlQUFlLEtBQWtCO0FBQ3ZDLFFBQUksSUFBSSxTQUFTLFNBQVM7QUFDeEIsU0FBSSxnQkFBZ0I7QUFDcEIsVUFBSyxRQUFRIn0=
@@ -1,34 +1,28 @@
1
- import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
2
- import { SbbElement } from '../core/base-elements.ts';
3
- import { SbbHorizontalFrom, SbbOrientation } from '../core/interfaces.ts';
4
- import { SbbRadioButtonSize } from '../radio-button/common/radio-button-common.ts';
1
+ import { PropertyValues } from 'lit';
2
+ import { SbbSelectionGroupBaseElement } from '../core/base-elements.ts';
5
3
  import { SbbRadioButtonElement } from '../radio-button/radio-button.component.ts';
6
4
  import { SbbRadioButtonPanelElement } from '../radio-button-panel.ts';
7
- declare const SbbRadioButtonGroupElement_base: import('../core/mixins.ts').AbstractConstructor<import('../core/mixins.ts').SbbDisabledMixinType> & typeof SbbElement;
8
5
  /**
9
- * It can be used as a container for one or more `sbb-radio-button`.
6
+ * It can be used as a container for radio button elements.
10
7
  *
11
- * @slot - Use the unnamed slot to add `sbb-radio-button` elements to the `sbb-radio-button-group`.
8
+ * @slot - Use the unnamed slot to add `sbb-radio-button`, `sbb-radio-button-panel`, `sbb-selection-action-panel` and `sbb-selection-expansion-panel` elements to the `sbb-radio-button-group`.
12
9
  * @slot error - Use this to provide a `sbb-error` to show an error message.
13
10
  * @overrideType value - (T = string) | null
14
11
  */
15
- export declare class SbbRadioButtonGroupElement<T = string> extends SbbRadioButtonGroupElement_base {
12
+ export declare class SbbRadioButtonGroupElement<T = string> extends SbbSelectionGroupBaseElement<SbbRadioButtonElement<T> | SbbRadioButtonPanelElement<T>> {
16
13
  static readonly elementName: string;
17
14
  static readonly role = "radiogroup";
18
- static styles: CSSResultGroup;
19
15
  static readonly events: {
20
16
  readonly didChange: "didChange";
21
17
  readonly change: "change";
22
18
  readonly input: "input";
23
19
  };
20
+ protected readonly selectionElementSelectors = "sbb-radio-button, sbb-radio-button-panel";
21
+ protected readonly panelElementSelector: string;
24
22
  /**
25
23
  * Whether the radios can be deselected.
26
24
  */
27
25
  accessor allowEmptySelection: boolean;
28
- /**
29
- * Whether the radio group is required.
30
- */
31
- accessor required: boolean;
32
26
  /**
33
27
  * The value of the radio group.
34
28
  */
@@ -38,23 +32,9 @@ export declare class SbbRadioButtonGroupElement<T = string> extends SbbRadioButt
38
32
  * Used to preserve the `value` in case the radios are not yet 'loaded'
39
33
  */
40
34
  private _fallbackValue;
41
- /**
42
- * Size variant, either xs, s or m.
43
- * @default 'm' / 'xs' (lean)
44
- */
45
- accessor size: SbbRadioButtonSize;
46
- /**
47
- * Overrides the behavior of `orientation` property.
48
- */
49
- accessor horizontalFrom: SbbHorizontalFrom | null;
50
- /**
51
- * Radio group's orientation, either horizontal or vertical.
52
- */
53
- accessor orientation: SbbOrientation;
35
+ /** Name for the group. Will be propagated to the child radio buttons. Must be unique if multiple groups are used on the same page. */
54
36
  accessor name: string;
55
- /**
56
- * List of contained radio buttons.
57
- */
37
+ /** List of contained radio buttons. */
58
38
  get radioButtons(): (SbbRadioButtonElement<T> | SbbRadioButtonPanelElement<T>)[];
59
39
  constructor();
60
40
  protected willUpdate(changedProperties: PropertyValues<this>): void;
@@ -69,12 +49,11 @@ export declare class SbbRadioButtonGroupElement<T = string> extends SbbRadioButt
69
49
  * Mainly used to cover cases where the setter is called before the radios are loaded
70
50
  */
71
51
  private _updateRadioState;
72
- protected render(): TemplateResult;
52
+ protected onSlotChange(): void;
73
53
  }
74
54
  declare global {
75
55
  interface HTMLElementTagNameMap {
76
56
  'sbb-radio-button-group': SbbRadioButtonGroupElement;
77
57
  }
78
58
  }
79
- export {};
80
59
  //# sourceMappingURL=radio-button-group.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button-group.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button-group/radio-button-group.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;;AAM3E;;;;;;GAMG;AACH,qBAAa,0BAA0B,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,+BAA4B;IACtF,gBAAgC,WAAW,EAAE,MAAM,CAA4B;IAC/E,gBAAgC,IAAI,gBAAgB;IACpD,OAAuB,MAAM,EAAE,cAAc,CAA4B;IACzE,gBAAuB,MAAM;;;;MAIlB;IAEX;;OAEG;IACH,SAEgB,mBAAmB,EAAE,OAAO,CAAS;IAErD;;OAEG;IACH,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C;;OAEG;IACH,IACW,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAa7B;IACD,IAAW,KAAK,IAAI,CAAC,GAAG,IAAI,CAE3B;IACD;;OAEG;IACH,OAAO,CAAC,cAAc,CAAkB;IAExC;;;OAGG;IACH,SAA4B,IAAI,EAAE,kBAAkB,CAAyB;IAE7E;;OAEG;IACH,SACgB,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAEhE;;OAEG;IACH,SACgB,WAAW,EAAE,cAAc,CAAgB;IAE3D,SAGgB,IAAI,EAAE,MAAM,CAAwC;IAEpE;;OAEG;IACH,IAAW,YAAY,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAOtF;;cAgBkB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAiBzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9E,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;cAON,MAAM,IAAI,cAAc;CAa5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}
1
+ {"version":3,"file":"radio-button-group.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button-group/radio-button-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAI3E;;;;;;GAMG;AACH,qBAAa,0BAA0B,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,4BAA4B,CACtF,qBAAqB,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CACzD;IACC,gBAAgC,WAAW,EAAE,MAAM,CAA4B;IAC/E,gBAAgC,IAAI,gBAAgB;IACpD,gBAAuB,MAAM;;;;MAIlB;IACX,SAAS,CAAC,QAAQ,CAAC,yBAAyB,8CAA8C;IAC1F,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAA4B;IAE3E;;OAEG;IACH,SAEgB,mBAAmB,EAAE,OAAO,CAAS;IAErD;;OAEG;IACH,IACW,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAa7B;IACD,IAAW,KAAK,IAAI,CAAC,GAAG,IAAI,CAI3B;IACD;;OAEG;IACH,OAAO,CAAC,cAAc,CAAkB;IAExC,sIAAsI;IACtI,SAGgB,IAAI,EAAE,MAAM,CAAwC;IAEpE,uCAAuC;IACvC,IAAW,YAAY,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE,CAEtF;;cAOkB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAQzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9E,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;cAON,YAAY,IAAI,IAAI;CAMxC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}