@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779298726 → 5.0.0-next.3-dev.1779359997

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 (882) hide show
  1. package/accordion/accordion.component.js +1 -1
  2. package/accordion.js +1 -1
  3. package/accordion.pure.js +1 -1
  4. package/action-group/action-group.component.js +1 -1
  5. package/action-group.js +1 -1
  6. package/action-group.pure.js +1 -1
  7. package/alert/alert/alert.component.js +1 -1
  8. package/alert/alert-group/alert-group.component.js +1 -1
  9. package/alert.js +2 -2
  10. package/alert.pure.js +2 -2
  11. package/autocomplete/autocomplete-base-element.js +1 -1
  12. package/autocomplete/autocomplete.component.js +4 -4
  13. package/{autocomplete-base-element-DjfmUS0W.js → autocomplete-base-element-CLMoJtJb.js} +1 -1
  14. package/autocomplete.js +1 -1
  15. package/autocomplete.pure.js +1 -1
  16. package/{block-link-common-B1E38xKe.js → block-link-common-C_rUmc2u.js} +1 -1
  17. package/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  18. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  19. package/breadcrumb.js +2 -2
  20. package/breadcrumb.pure.js +2 -2
  21. package/button/common/button-common.js +1 -1
  22. package/button/mini-button-group/mini-button-group.component.js +1 -1
  23. package/button/mini-button-link/mini-button-link.component.js +1 -1
  24. package/button.js +3 -3
  25. package/button.pure.js +3 -3
  26. package/calendar/calendar/calendar.component.js +1 -1
  27. package/calendar/calendar-day/calendar-day.component.js +1 -1
  28. package/calendar/common/calendar-cell-base-element.js +1 -1
  29. package/{calendar.component-BhUyyFtR.js → calendar.component-DKKptbyy.js} +1 -1
  30. package/calendar.js +3 -3
  31. package/calendar.pure.js +3 -3
  32. package/card/card/card.component.js +1 -1
  33. package/card/card-badge/card-badge.component.js +1 -1
  34. package/card/common/card-action-common.js +1 -1
  35. package/card.js +3 -3
  36. package/card.pure.js +3 -3
  37. package/carousel/carousel/carousel.component.js +1 -1
  38. package/carousel/carousel-item/carousel-item.component.js +1 -1
  39. package/carousel/carousel-list/carousel-list.component.js +1 -1
  40. package/carousel.js +3 -3
  41. package/carousel.pure.js +3 -3
  42. package/checkbox/checkbox.component.js +1 -1
  43. package/checkbox/common/checkbox-common.js +1 -1
  44. package/{checkbox.component-PkHijotV.js → checkbox.component-DNVief0q.js} +1 -1
  45. package/checkbox.js +2 -2
  46. package/checkbox.pure.js +2 -2
  47. package/chip/chip/chip.component.js +1 -1
  48. package/chip/chip-group/chip-group.component.js +1 -1
  49. package/chip-label/chip-label.component.js +1 -1
  50. package/chip-label.js +1 -1
  51. package/chip-label.pure.js +1 -1
  52. package/chip.js +2 -2
  53. package/chip.pure.js +2 -2
  54. package/clock/clock.component.js +1 -1
  55. package/clock.js +1 -1
  56. package/clock.pure.js +1 -1
  57. package/container/container/container.component.js +1 -1
  58. package/container/sticky-bar/sticky-bar.component.js +1 -1
  59. package/container.js +2 -2
  60. package/container.pure.js +2 -2
  61. package/core/base-elements/action-base-element.js +1 -1
  62. package/core/base-elements/element.js +1 -1
  63. package/core/base-elements/open-close-base-element.js +1 -1
  64. package/core/base-elements/selection-group-base-element.js +1 -1
  65. package/core/controllers/media-matchers-controller.js +1 -1
  66. package/core/mixins/panel-mixin.js +1 -1
  67. package/core/styles/styles.js +1 -1
  68. package/core.js +4 -4
  69. package/custom-elements.json +0 -21
  70. package/date-input/date-input.component.js +1 -1
  71. package/date-input.js +1 -1
  72. package/date-input.pure.js +1 -1
  73. package/datepicker/common/datepicker-button.js +1 -1
  74. package/datepicker.js +1 -1
  75. package/datepicker.pure.js +1 -1
  76. package/development/accordion/accordion.component.js +1 -1
  77. package/development/{accordion.component-xx7XabDY.js → accordion.component-pI5XM-iT.js} +1 -1
  78. package/development/accordion.js +1 -1
  79. package/development/accordion.pure.js +1 -1
  80. package/development/action-group/action-group.component.js +1 -1
  81. package/development/{action-group.component-wgXPpkQe.js → action-group.component-pe0c2zni.js} +1 -1
  82. package/development/action-group.js +1 -1
  83. package/development/action-group.pure.js +1 -1
  84. package/development/alert/alert/alert.component.js +1 -1
  85. package/development/alert/alert-group/alert-group.component.js +1 -1
  86. package/development/{alert-group.component-w5PbU_4C.js → alert-group.component-DYmA3spO.js} +1 -1
  87. package/development/{alert.component-Dzm5z0jh.js → alert.component-Cq0IPcfk.js} +1 -1
  88. package/development/alert.js +2 -2
  89. package/development/alert.pure.js +2 -2
  90. package/development/autocomplete/autocomplete-base-element.js +1 -1
  91. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  92. package/development/autocomplete/autocomplete.component.js +5 -5
  93. package/development/{autocomplete-base-element-CTZEg--s.js → autocomplete-base-element-DtwUdjCd.js} +2 -2
  94. package/development/autocomplete.js +1 -1
  95. package/development/autocomplete.pure.js +1 -1
  96. package/development/{block-link-common-DNvRfeay.js → block-link-common-C0XzZIvS.js} +2 -2
  97. package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
  98. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  99. package/development/{breadcrumb-group.component-DvY1hq51.js → breadcrumb-group.component-mofwnLS1.js} +1 -1
  100. package/development/{breadcrumb.component-D6Cd2FPo.js → breadcrumb.component-B3XsV_Aq.js} +1 -1
  101. package/development/breadcrumb.js +2 -2
  102. package/development/breadcrumb.pure.js +2 -2
  103. package/development/button/common/button-common.js +1 -1
  104. package/development/button/mini-button-group/mini-button-group.component.js +1 -1
  105. package/development/button/mini-button-link/mini-button-link.component.js +1 -1
  106. package/development/{button-common-C-A7Dulr.js → button-common-DvuYiiku.js} +1 -1
  107. package/development/button.js +3 -3
  108. package/development/button.pure.js +3 -3
  109. package/development/calendar/calendar/calendar.component.js +1 -1
  110. package/development/calendar/calendar-day/calendar-day.component.js +1 -1
  111. package/development/calendar/common/calendar-cell-base-element.js +1 -1
  112. package/development/{calendar-cell-base-element-mWRSDeWc.js → calendar-cell-base-element-D_CTwDn9.js} +1 -1
  113. package/development/{calendar-day.component-BHvdRxll.js → calendar-day.component-Bux4ezpg.js} +1 -1
  114. package/development/{calendar.component-DnC8Zkdk.js → calendar.component-NvMN01yi.js} +2 -2
  115. package/development/calendar.js +3 -3
  116. package/development/calendar.pure.js +3 -3
  117. package/development/card/card/card.component.js +1 -1
  118. package/development/card/card-badge/card-badge.component.js +1 -1
  119. package/development/card/common/card-action-common.js +1 -1
  120. package/development/{card-action-common-zS5iNz23.js → card-action-common-Dr-EX0gr.js} +1 -1
  121. package/development/{card-badge.component-CEfJdJBs.js → card-badge.component-CENJTZ4g.js} +1 -1
  122. package/development/{card.component-CL2gHoyP.js → card.component-CVAgqDNK.js} +1 -1
  123. package/development/card.js +3 -3
  124. package/development/card.pure.js +3 -3
  125. package/development/carousel/carousel/carousel.component.js +1 -1
  126. package/development/carousel/carousel-item/carousel-item.component.js +1 -1
  127. package/development/carousel/carousel-list/carousel-list.component.js +1 -1
  128. package/development/{carousel-item.component-nuo7jAt3.js → carousel-item.component-DjDAg-DC.js} +1 -1
  129. package/development/{carousel-list.component-B8PUREwS.js → carousel-list.component-BLY3JfDq.js} +1 -1
  130. package/development/{carousel.component-D_KIJ9Bb.js → carousel.component-CD2_hauh.js} +1 -1
  131. package/development/carousel.js +3 -3
  132. package/development/carousel.pure.js +3 -3
  133. package/development/checkbox/checkbox.component.js +1 -1
  134. package/development/checkbox/common/checkbox-common.js +1 -1
  135. package/development/{checkbox-common-225vizTc.js → checkbox-common-o3Su1McS.js} +1 -1
  136. package/development/{checkbox.component-DiNnV2_Y.js → checkbox.component-6zr36eQq.js} +2 -2
  137. package/development/checkbox.js +2 -2
  138. package/development/checkbox.pure.js +2 -2
  139. package/development/chip/chip/chip.component.js +1 -1
  140. package/development/chip/chip-group/chip-group.component.js +1 -1
  141. package/development/{chip-group.component-CVizDsAz.js → chip-group.component-BY025VTb.js} +1 -1
  142. package/development/chip-label/chip-label.component.js +1 -1
  143. package/development/{chip-label.component-DHHNtvTt.js → chip-label.component-D8Il3pvk.js} +1 -1
  144. package/development/chip-label.js +1 -1
  145. package/development/chip-label.pure.js +1 -1
  146. package/development/{chip.component-Uuf3tGFz.js → chip.component-C2VmHfZa.js} +1 -1
  147. package/development/chip.js +2 -2
  148. package/development/chip.pure.js +2 -2
  149. package/development/clock/clock.component.js +1 -1
  150. package/development/{clock.component-DcM1WFTN.js → clock.component-CyCPrufS.js} +1 -1
  151. package/development/clock.js +1 -1
  152. package/development/clock.pure.js +1 -1
  153. package/development/{compact-paginator.component-m8MASSB7.js → compact-paginator.component-CKHS0U1v.js} +1 -1
  154. package/development/container/container/container.component.js +1 -1
  155. package/development/container/sticky-bar/sticky-bar.component.js +1 -1
  156. package/development/{container.component-D1Qgp4HW.js → container.component-Ctdd3D-A.js} +1 -1
  157. package/development/container.js +2 -2
  158. package/development/container.pure.js +2 -2
  159. package/development/core/base-elements/action-base-element.js +1 -1
  160. package/development/core/base-elements/element.js +1 -1
  161. package/development/core/base-elements/open-close-base-element.js +1 -1
  162. package/development/core/base-elements/selection-group-base-element.js +1 -1
  163. package/development/core/controllers/media-matchers-controller.js +1 -1
  164. package/development/core/mixins/panel-mixin.js +1 -1
  165. package/development/core/styles/styles.js +1 -1
  166. package/development/core.js +4 -4
  167. package/development/date-input/date-input.component.js +1 -1
  168. package/development/{date-input.component-HxRyCudr.js → date-input.component-Cy7m1ocL.js} +1 -1
  169. package/development/date-input.js +1 -1
  170. package/development/date-input.pure.js +1 -1
  171. package/development/datepicker/common/datepicker-button.js +1 -1
  172. package/development/{datepicker-button-Bb76EBYH.js → datepicker-button-BvBQB6Sv.js} +1 -1
  173. package/development/datepicker.js +1 -1
  174. package/development/datepicker.pure.js +1 -1
  175. package/development/dialog/dialog/dialog.component.js +1 -1
  176. package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
  177. package/development/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  178. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  179. package/development/dialog/dialog-title/dialog-title.component.js +1 -1
  180. package/development/{dialog-actions.component-e0ZTTUin.js → dialog-actions.component-Dyzg7z-B.js} +1 -1
  181. package/development/{dialog-close-button.component-Idc00dB9.js → dialog-close-button.component-dgLnsaLx.js} +1 -1
  182. package/development/{dialog-content.component-CThU7Z8A.js → dialog-content.component-DDtVV0Lh.js} +1 -1
  183. package/development/{dialog-title.component-0uNsUR2C.js → dialog-title.component-DyItyahT.js} +1 -1
  184. package/development/{dialog.component-cZ3SAujq.js → dialog.component-B1Tke2ym.js} +1 -1
  185. package/development/dialog.js +5 -5
  186. package/development/dialog.pure.js +5 -5
  187. package/development/divider/divider.component.js +1 -1
  188. package/development/{divider.component-Ck_0vISe.js → divider.component-CYP23U4q.js} +1 -1
  189. package/development/divider.js +1 -1
  190. package/development/divider.pure.js +1 -1
  191. package/development/{element-BAsBayf5.js → element-BS28ba7w.js} +1 -1
  192. package/development/{error.component-WCkiwM7_.js → error.component-Bp7ztvQB.js} +1 -1
  193. package/development/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  194. package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  195. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  196. package/development/{expansion-panel-content.component-Bs0pYNJO.js → expansion-panel-content.component-CKhGtjji.js} +1 -1
  197. package/development/{expansion-panel-header.component-gg5A_7Pz.js → expansion-panel-header.component-Do3pLbzs.js} +1 -1
  198. package/development/{expansion-panel.component-DcFrWkIt.js → expansion-panel.component-BnbRiLrk.js} +1 -1
  199. package/development/expansion-panel.js +3 -3
  200. package/development/expansion-panel.pure.js +3 -3
  201. package/development/file-selector/common/file-selector-common.js +1 -1
  202. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  203. package/development/{file-selector-common-Dd0S0qE3.js → file-selector-common-CCvgN1G2.js} +1 -1
  204. package/development/{file-selector-dropzone.component-DWLdqMmI.js → file-selector-dropzone.component-BeqSG2IM.js} +1 -1
  205. package/development/file-selector.js +2 -2
  206. package/development/file-selector.pure.js +2 -2
  207. package/development/flip-card/flip-card/flip-card.component.js +1 -1
  208. package/development/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  209. package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  210. package/development/{flip-card-details.component-BYv_W66a.js → flip-card-details.component-RJ43uhma.js} +1 -1
  211. package/development/{flip-card-summary.component-jLNjJUNl.js → flip-card-summary.component-D9zMzU8m.js} +1 -1
  212. package/development/{flip-card.component-MmiS-x-W.js → flip-card.component-CAsfIcvt.js} +1 -1
  213. package/development/flip-card.js +3 -3
  214. package/development/flip-card.pure.js +3 -3
  215. package/development/footer/footer.component.js +1 -1
  216. package/development/{footer.component-K2bWizjw.js → footer.component-DJH7E5aO.js} +1 -1
  217. package/development/footer.js +1 -1
  218. package/development/footer.pure.js +1 -1
  219. package/development/form-field/error/error.component.js +1 -1
  220. package/development/form-field/form-field/form-field.component.js +1 -1
  221. package/development/form-field/hint/hint.component.js +1 -1
  222. package/development/{form-field.component-BzjbIwnz.js → form-field.component-YM-Z5aZf.js} +1 -1
  223. package/development/form-field.js +3 -3
  224. package/development/form-field.pure.js +3 -3
  225. package/development/header/common/header-action-common.js +1 -1
  226. package/development/header/header/header.component.js +1 -1
  227. package/development/header/header-environment/header-environment.component.js +1 -1
  228. package/development/{header-action-common-BYB-HYtn.js → header-action-common-CDiEhWa0.js} +1 -1
  229. package/development/{header-environment.component-CIyxQwkQ.js → header-environment.component--4YEZyKq.js} +1 -1
  230. package/development/{header.component-C4e7CNql.js → header.component-B43X03Jg.js} +1 -1
  231. package/development/header.js +3 -3
  232. package/development/header.pure.js +3 -3
  233. package/development/{hint.component-BB9QLGGx.js → hint.component-CdM71SNj.js} +1 -1
  234. package/development/icon/icon-base.js +1 -1
  235. package/development/icon/icon.component.js +1 -1
  236. package/development/{icon-base-DrBHy9BT.js → icon-base-Cz7F4MJ9.js} +1 -1
  237. package/development/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  238. package/development/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  239. package/development/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  240. package/development/{icon-sidebar-container.component-CM94Spwy.js → icon-sidebar-container.component-G8wyj1Sb.js} +1 -1
  241. package/development/{icon-sidebar-content.component-BP9W5ZxR.js → icon-sidebar-content.component-D1VPTNhO.js} +1 -1
  242. package/development/{icon-sidebar.component-B68P2aNh.js → icon-sidebar.component-DLlCKweu.js} +1 -1
  243. package/development/icon-sidebar.js +3 -3
  244. package/development/icon-sidebar.pure.js +3 -3
  245. package/development/icon.js +1 -1
  246. package/development/icon.pure.js +1 -1
  247. package/development/image/image.component.js +1 -1
  248. package/development/{image.component-EfSMgHI_.js → image.component-DoRIca5y.js} +5 -16
  249. package/development/image.js +1 -1
  250. package/development/image.pure.js +1 -1
  251. package/development/{inline-link-common-BV6oAtAA.js → inline-link-common-CXYyREBi.js} +2 -2
  252. package/development/journey-header/journey-header.component.js +1 -1
  253. package/development/{journey-header.component-CA4juz9x.js → journey-header.component-tBukBhVq.js} +1 -1
  254. package/development/journey-header.js +1 -1
  255. package/development/journey-header.pure.js +1 -1
  256. package/development/lead-container/lead-container.component.js +1 -1
  257. package/development/{lead-container.component-C_mFeq1B.js → lead-container.component-D93DLU_J.js} +1 -1
  258. package/development/lead-container.js +1 -1
  259. package/development/lead-container.pure.js +1 -1
  260. package/development/link/common/block-link-common.js +1 -1
  261. package/development/link/common/inline-link-common.js +1 -1
  262. package/development/link/common/link-common.js +1 -1
  263. package/development/{link-common-2RGn9Qz_.js → link-common-DWTP-lFX.js} +1 -1
  264. package/development/link-list/common/link-list-base.js +1 -1
  265. package/development/link-list/link-list.component.js +1 -1
  266. package/development/link-list-anchor/link-list-anchor.component.js +1 -1
  267. package/development/{link-list-anchor.component-BMtCbCRD.js → link-list-anchor.component-9C1H5KXX.js} +1 -1
  268. package/development/link-list-anchor.js +1 -1
  269. package/development/link-list-anchor.pure.js +1 -1
  270. package/development/{link-list-base-CKT3c8yW.js → link-list-base-CaPkNR_V.js} +1 -1
  271. package/development/{link-list.component-CLxhjWR7.js → link-list.component-By_lSSYE.js} +2 -2
  272. package/development/link-list.js +2 -2
  273. package/development/link-list.pure.js +2 -2
  274. package/development/link.js +3 -3
  275. package/development/link.pure.js +3 -3
  276. package/development/loading-indicator/loading-indicator.component.js +1 -1
  277. package/development/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  278. package/development/{loading-indicator-circle.component-Cfjw5vyz.js → loading-indicator-circle.component-CudNN1Z6.js} +1 -1
  279. package/development/loading-indicator-circle.js +1 -1
  280. package/development/loading-indicator-circle.pure.js +1 -1
  281. package/development/{loading-indicator.component-By2VaLCf.js → loading-indicator.component-sEdpEBpx.js} +1 -1
  282. package/development/loading-indicator.js +1 -1
  283. package/development/loading-indicator.pure.js +1 -1
  284. package/development/logo/logo.component.js +1 -1
  285. package/development/{logo.component-DYKgAgq0.js → logo.component-SqyPA1M-.js} +1 -1
  286. package/development/logo.js +1 -1
  287. package/development/logo.pure.js +1 -1
  288. package/development/map-container/map-container.component.js +1 -1
  289. package/development/{map-container.component-D0UVTolK.js → map-container.component-N-e2oBnd.js} +1 -1
  290. package/development/map-container.js +1 -1
  291. package/development/map-container.pure.js +1 -1
  292. package/development/menu/common/menu-action-common.js +1 -1
  293. package/development/menu/menu/menu.component.js +1 -1
  294. package/development/{menu-action-common-DL4t4_-J.js → menu-action-common-BUIJFq1R.js} +1 -1
  295. package/development/{menu.component-3qEIFutc.js → menu.component-B3uWxwbt.js} +1 -1
  296. package/development/menu.js +2 -2
  297. package/development/menu.pure.js +2 -2
  298. package/development/message/message.component.js +1 -1
  299. package/development/{message.component-BJ-84a0B.js → message.component-BrqWVCJV.js} +1 -1
  300. package/development/message.js +1 -1
  301. package/development/message.pure.js +1 -1
  302. package/development/{mini-button-group.component-C88pIaaL.js → mini-button-group.component-C2KcpK5c.js} +1 -1
  303. package/development/{mini-button-link.component-kpRsi8I2.js → mini-button-link.component-BHaNYXk0.js} +1 -1
  304. package/development/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  305. package/development/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  306. package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  307. package/development/{mini-calendar-day.component-BLkJ12Bw.js → mini-calendar-day.component-UG6wpckK.js} +1 -1
  308. package/development/{mini-calendar-month.component-D8XjjLmN.js → mini-calendar-month.component-GE-cmXxP.js} +1 -1
  309. package/development/{mini-calendar.component-BOk8JovO.js → mini-calendar.component-DQ_zxELt.js} +1 -1
  310. package/development/mini-calendar.js +3 -3
  311. package/development/mini-calendar.pure.js +3 -3
  312. package/development/navigation/common/navigation-action-common.js +1 -1
  313. package/development/navigation/navigation/navigation.component.js +1 -1
  314. package/development/navigation/navigation-list/navigation-list.component.js +1 -1
  315. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  316. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  317. package/development/{navigation-action-common-wrzPCkMT.js → navigation-action-common-BdJOaItd.js} +1 -1
  318. package/development/{navigation-list.component-CU-SGC8c.js → navigation-list.component-CWOSnwgm.js} +1 -1
  319. package/development/{navigation-marker.component-CTk9U0kA.js → navigation-marker.component-D3Vbe1dH.js} +1 -1
  320. package/development/{navigation-section.component-iaypc6yQ.js → navigation-section.component-DhMQspKb.js} +1 -1
  321. package/development/{navigation.component-Bu1wVUNx.js → navigation.component-BOBqdfXo.js} +1 -1
  322. package/development/navigation.js +5 -5
  323. package/development/navigation.pure.js +5 -5
  324. package/development/notification/notification.component.js +1 -1
  325. package/development/{notification.component-BiJSo7Pl.js → notification.component-BlWGjgrP.js} +1 -1
  326. package/development/notification.js +1 -1
  327. package/development/notification.pure.js +1 -1
  328. package/development/{optgroup-base-element-BzfcJgxG.js → optgroup-base-element--G8myprb.js} +1 -1
  329. package/development/option/optgroup/optgroup-base-element.js +1 -1
  330. package/development/option/optgroup/optgroup.component.js +1 -1
  331. package/development/option/option/option-base-element.d.ts +0 -2
  332. package/development/option/option/option-base-element.d.ts.map +1 -1
  333. package/development/option/option/option-base-element.js +1 -6
  334. package/development/option/option/option.component.d.ts +0 -1
  335. package/development/option/option/option.component.d.ts.map +1 -1
  336. package/development/option/option/option.component.js +1 -1
  337. package/development/option/option-hint/option-hint.component.js +1 -1
  338. package/development/option/option-styles.js +1 -1
  339. package/development/{option-hint.component-DPfgcpVn.js → option-hint.component-DyCue4gx.js} +1 -1
  340. package/development/{option-styles-IEQgVpCe.js → option-styles-CTdAvJu3.js} +1 -1
  341. package/development/{option.component-BrTjDq6X.js → option.component-BSHq97Of.js} +1 -2
  342. package/development/option.js +4 -4
  343. package/development/option.pure.js +4 -4
  344. package/development/overlay/overlay.component.js +1 -1
  345. package/development/{overlay.component-DywhKxO1.js → overlay.component-D_BLhfdG.js} +1 -1
  346. package/development/overlay.js +1 -1
  347. package/development/overlay.pure.js +1 -1
  348. package/development/paginator/common/paginator-common.js +1 -1
  349. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  350. package/development/paginator/paginator/paginator.component.js +1 -1
  351. package/development/{paginator-common-CRchtcXc.js → paginator-common-B9EN1Fjx.js} +1 -1
  352. package/development/{paginator.component-B8y5tVCL.js → paginator.component-DisPJ2Qa.js} +4 -4
  353. package/development/paginator.js +3 -3
  354. package/development/paginator.pure.js +3 -3
  355. package/development/{panel-mixin-DPybe45K.js → panel-mixin-Da_cHQn-.js} +1 -1
  356. package/development/popover/popover.component.js +1 -1
  357. package/development/{popover.component-Ds4fNNsq.js → popover.component-DtIhw37L.js} +1 -1
  358. package/development/popover.js +1 -1
  359. package/development/popover.pure.js +1 -1
  360. package/development/radio-button/common/radio-button-common.js +1 -1
  361. package/development/radio-button/radio-button.component.js +1 -1
  362. package/development/{radio-button-common-BS05acqM.js → radio-button-common-BaGYHkpD.js} +1 -1
  363. package/development/{radio-button.component-BUSzf7Eq.js → radio-button.component-CmQGrMHr.js} +2 -2
  364. package/development/radio-button.js +2 -2
  365. package/development/radio-button.pure.js +2 -2
  366. package/development/{sbb-tokens-bg2elLoF.js → sbb-tokens-DGQJTWqa.js} +1 -1
  367. package/development/select/select.component.d.ts.map +1 -1
  368. package/development/select/select.component.js +1 -1
  369. package/development/{select.component-BE7ZMrAc.js → select.component-3S8E6UwN.js} +3 -3
  370. package/development/select.js +1 -1
  371. package/development/select.pure.js +1 -1
  372. package/development/selection-action-panel/selection-action-panel.component.js +1 -1
  373. package/development/{selection-action-panel.component-C3UlmLkJ.js → selection-action-panel.component-pd9B6lRD.js} +1 -1
  374. package/development/selection-action-panel.js +1 -1
  375. package/development/selection-action-panel.pure.js +1 -1
  376. package/development/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  377. package/development/{selection-expansion-panel.component-4Ron8XNy.js → selection-expansion-panel.component-Dtfnz1AE.js} +1 -1
  378. package/development/selection-expansion-panel.js +1 -1
  379. package/development/selection-expansion-panel.pure.js +1 -1
  380. package/development/{selection-group-base-element-B3vOsN1Q.js → selection-group-base-element-govDKjsE.js} +2 -2
  381. package/development/sidebar/sidebar/sidebar.component.js +1 -1
  382. package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  383. package/development/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  384. package/development/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  385. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  386. package/development/{sidebar-close-button.component-ByQtC65O.js → sidebar-close-button.component-tkbcoR-I.js} +1 -1
  387. package/development/{sidebar-container.component-BmavabUg.js → sidebar-container.component-CbE9878W.js} +1 -1
  388. package/development/{sidebar-content.component-DcsIIWpz.js → sidebar-content.component-CBfaiAsJ.js} +1 -1
  389. package/development/{sidebar-title.component-DgJdkoiE.js → sidebar-title.component-ZKarv4Mz.js} +1 -1
  390. package/development/{sidebar.component-BszwyJQa.js → sidebar.component-Cmkn9X-M.js} +1 -1
  391. package/development/sidebar.js +5 -5
  392. package/development/sidebar.pure.js +5 -5
  393. package/development/signet/signet.component.js +1 -1
  394. package/development/{signet.component-DXLTVjJS.js → signet.component--kuRWLGw.js} +1 -1
  395. package/development/signet.js +1 -1
  396. package/development/signet.pure.js +1 -1
  397. package/development/skiplink-list/skiplink-list.component.js +1 -1
  398. package/development/{skiplink-list.component-BC8rpyf9.js → skiplink-list.component-Cpyo7JAH.js} +1 -1
  399. package/development/skiplink-list.js +1 -1
  400. package/development/skiplink-list.pure.js +1 -1
  401. package/development/slider/slider.component.js +1 -1
  402. package/development/{slider.component-Dz4Nl2ZL.js → slider.component-C4SpkHDK.js} +1 -1
  403. package/development/slider.js +1 -1
  404. package/development/slider.pure.js +1 -1
  405. package/development/status/status.component.js +1 -1
  406. package/development/{status.component-thSGiOrl.js → status.component-DnnX98xP.js} +1 -1
  407. package/development/status.js +1 -1
  408. package/development/status.pure.js +1 -1
  409. package/development/{step-label.component-CpdXVv32.js → step-label.component-i13wQWJJ.js} +1 -1
  410. package/development/{step.component-CfA-kmt1.js → step.component-lTLpcOUh.js} +1 -1
  411. package/development/stepper/step/step.component.js +1 -1
  412. package/development/stepper/step-label/step-label.component.js +1 -1
  413. package/development/stepper/stepper/stepper.component.js +1 -1
  414. package/development/{stepper.component-2yRFnnju.js → stepper.component-DBE685VL.js} +1 -1
  415. package/development/stepper.js +3 -3
  416. package/development/stepper.pure.js +3 -3
  417. package/development/{sticky-bar.component-DZpy1gBU.js → sticky-bar.component-BEhV0azF.js} +1 -1
  418. package/development/{styles-D8h0fqb5.js → styles-AtR8n_N4.js} +1 -1
  419. package/development/{styles-BmvNZZle.js → styles-BTV2MyrZ.js} +1 -1
  420. package/development/{tab-group.component-DhcfjVxe.js → tab-group.component-DBg6I8W7.js} +1 -1
  421. package/development/{tab-label.component-B7YEhR1C.js → tab-label.component-QHzOZ28y.js} +1 -1
  422. package/development/{tab-nav-bar.component-DrZ1U7lM.js → tab-nav-bar.component-DC4Ba7w2.js} +1 -1
  423. package/development/{tab.component-COn1G0XA.js → tab.component-Bsdzs7P2.js} +1 -1
  424. package/development/table/table-wrapper/table-wrapper.component.js +1 -1
  425. package/development/{table-wrapper.component-9Lst6dT2.js → table-wrapper.component-Cqc9PHZl.js} +1 -1
  426. package/development/table.js +1 -1
  427. package/development/table.pure.js +1 -1
  428. package/development/tabs/common/styles.js +1 -1
  429. package/development/tabs/tab/tab.component.js +1 -1
  430. package/development/tabs/tab-group/tab-group.component.js +1 -1
  431. package/development/tabs/tab-label/tab-label.component.js +1 -1
  432. package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  433. package/development/tabs.js +5 -5
  434. package/development/tabs.pure.js +5 -5
  435. package/development/tag/tag/tag.component.js +1 -1
  436. package/development/tag/tag-group/tag-group.component.js +1 -1
  437. package/development/{tag-group.component-OQ3sxhZI.js → tag-group.component-jSgluqL-.js} +1 -1
  438. package/development/{tag.component-DWOPDWwe.js → tag.component-D6YowucW.js} +1 -1
  439. package/development/tag.js +2 -2
  440. package/development/tag.pure.js +2 -2
  441. package/development/teaser/teaser.component.js +1 -1
  442. package/development/teaser-hero/teaser-hero.component.js +1 -1
  443. package/development/{teaser-hero.component-Cp42iJGt.js → teaser-hero.component-d0iLCgA7.js} +1 -1
  444. package/development/teaser-hero.js +1 -1
  445. package/development/teaser-hero.pure.js +1 -1
  446. package/development/teaser-panel/teaser-panel.component.js +1 -1
  447. package/development/{teaser-panel.component-ptDalUEe.js → teaser-panel.component-CXT3l9-M.js} +1 -1
  448. package/development/teaser-panel.js +1 -1
  449. package/development/teaser-panel.pure.js +1 -1
  450. package/development/teaser-product/common/teaser-product-common.js +1 -1
  451. package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
  452. package/development/{teaser-product-common-DxBw-__I.js → teaser-product-common-DfbpBlTk.js} +1 -1
  453. package/development/{teaser-product.component-CPj4vJ2V.js → teaser-product.component-Cv9PR0lo.js} +1 -1
  454. package/development/teaser-product.js +2 -2
  455. package/development/teaser-product.pure.js +2 -2
  456. package/development/{teaser.component-Dgrc2jh8.js → teaser.component-BGnmuXOI.js} +1 -1
  457. package/development/teaser.js +1 -1
  458. package/development/teaser.pure.js +1 -1
  459. package/development/time-input/time-input.component.js +1 -1
  460. package/development/{time-input.component-BFjDAfbv.js → time-input.component-CGPW3RCw.js} +1 -1
  461. package/development/time-input.js +1 -1
  462. package/development/time-input.pure.js +1 -1
  463. package/development/timetable-form/timetable-form/timetable-form.component.js +1 -1
  464. package/development/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  465. package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  466. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  467. package/development/{timetable-form-details.component-BFmuJ8-6.js → timetable-form-details.component-HPb8xks3.js} +1 -1
  468. package/development/{timetable-form-field.component-DD04XyA0.js → timetable-form-field.component-DxUpCWe0.js} +1 -1
  469. package/development/{timetable-form-swap-button.component-DphGegO6.js → timetable-form-swap-button.component-BT63vkZr.js} +1 -1
  470. package/development/{timetable-form.component-EIr4B4mA.js → timetable-form.component-DcvKOLvm.js} +1 -1
  471. package/development/timetable-form.js +4 -4
  472. package/development/timetable-form.pure.js +4 -4
  473. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  474. package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  475. package/development/{timetable-occupancy-icon.component-vsXoAiKz.js → timetable-occupancy-icon.component-Bsct9zga.js} +1 -1
  476. package/development/timetable-occupancy-icon.js +1 -1
  477. package/development/timetable-occupancy-icon.pure.js +1 -1
  478. package/development/{timetable-occupancy.component-B0zY0RnI.js → timetable-occupancy.component-62YNjs5z.js} +1 -1
  479. package/development/timetable-occupancy.js +1 -1
  480. package/development/timetable-occupancy.pure.js +1 -1
  481. package/development/title/title-base.js +1 -1
  482. package/development/title/title.component.js +1 -1
  483. package/development/{title-base-CPAVrsQ9.js → title-base-DPAFIjFK.js} +1 -1
  484. package/development/{title.component-DCg9U2CK.js → title.component-BSrkZhnI.js} +2 -2
  485. package/development/title.js +2 -2
  486. package/development/title.pure.js +2 -2
  487. package/development/toast/toast.component.js +1 -1
  488. package/development/{toast.component-TvSfu5nl.js → toast.component-DowxkGr4.js} +1 -1
  489. package/development/toast.js +1 -1
  490. package/development/toast.pure.js +1 -1
  491. package/development/toggle/toggle/toggle.component.js +1 -1
  492. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  493. package/development/toggle-check/toggle-check.component.js +1 -1
  494. package/development/{toggle-check.component-CbGa5-8I.js → toggle-check.component--On4AuVo.js} +1 -1
  495. package/development/toggle-check.js +1 -1
  496. package/development/toggle-check.pure.js +1 -1
  497. package/development/{toggle-option.component-BxGnhJFH.js → toggle-option.component-CZY7xnrX.js} +1 -1
  498. package/development/{toggle.component-Q68IDQWX.js → toggle.component-D3IbJqAH.js} +1 -1
  499. package/development/toggle.js +2 -2
  500. package/development/toggle.pure.js +2 -2
  501. package/development/tooltip/tooltip.component.js +1 -1
  502. package/development/{tooltip.component-Baoh6M8V.js → tooltip.component-BE8BlKzE.js} +1 -1
  503. package/development/tooltip.js +1 -1
  504. package/development/tooltip.pure.js +1 -1
  505. package/development/train/train/train.component.js +1 -1
  506. package/development/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  507. package/development/train/train-formation/train-formation.component.js +1 -1
  508. package/development/train/train-wagon-common.js +1 -1
  509. package/development/{train-blocked-passage.component-C7ve-a1E.js → train-blocked-passage.component-BGCuXvjt.js} +1 -1
  510. package/development/{train-formation.component-DQ_hLKNv.js → train-formation.component-XGatA4-S.js} +1 -1
  511. package/development/{train-wagon-common-CdckItEt.js → train-wagon-common-4dC995mT.js} +1 -1
  512. package/development/{train.component-Bi74L6C7.js → train.component-CX1HEDwX.js} +1 -1
  513. package/development/train.js +4 -4
  514. package/development/train.pure.js +4 -4
  515. package/development/visual-checkbox/visual-checkbox.component.js +1 -1
  516. package/development/{visual-checkbox.component-B4_iHcsX.js → visual-checkbox.component-EpRxoteZ.js} +1 -1
  517. package/development/visual-checkbox.js +1 -1
  518. package/development/visual-checkbox.pure.js +1 -1
  519. package/dialog/dialog/dialog.component.js +1 -1
  520. package/dialog/dialog-actions/dialog-actions.component.js +1 -1
  521. package/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
  522. package/dialog/dialog-content/dialog-content.component.js +1 -1
  523. package/dialog/dialog-title/dialog-title.component.js +1 -1
  524. package/dialog.js +5 -5
  525. package/dialog.pure.js +5 -5
  526. package/divider/divider.component.js +1 -1
  527. package/divider.js +1 -1
  528. package/divider.pure.js +1 -1
  529. package/expansion-panel/expansion-panel/expansion-panel.component.js +1 -1
  530. package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +1 -1
  531. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  532. package/expansion-panel.js +3 -3
  533. package/expansion-panel.pure.js +3 -3
  534. package/file-selector/common/file-selector-common.js +1 -1
  535. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  536. package/file-selector.js +2 -2
  537. package/file-selector.pure.js +2 -2
  538. package/flip-card/flip-card/flip-card.component.js +1 -1
  539. package/flip-card/flip-card-details/flip-card-details.component.js +1 -1
  540. package/flip-card/flip-card-summary/flip-card-summary.component.js +1 -1
  541. package/flip-card.js +3 -3
  542. package/flip-card.pure.js +3 -3
  543. package/footer/footer.component.js +1 -1
  544. package/footer.js +1 -1
  545. package/footer.pure.js +1 -1
  546. package/form-field/error/error.component.js +1 -1
  547. package/form-field/form-field/form-field.component.js +1 -1
  548. package/form-field/hint/hint.component.js +1 -1
  549. package/form-field.js +3 -3
  550. package/form-field.pure.js +3 -3
  551. package/header/common/header-action-common.js +1 -1
  552. package/header/header/header.component.js +1 -1
  553. package/header/header-environment/header-environment.component.js +1 -1
  554. package/header.js +3 -3
  555. package/header.pure.js +3 -3
  556. package/icon/icon-base.js +1 -1
  557. package/icon/icon.component.js +1 -1
  558. package/icon-sidebar/icon-sidebar/icon-sidebar.component.js +1 -1
  559. package/icon-sidebar/icon-sidebar-container/icon-sidebar-container.component.js +1 -1
  560. package/icon-sidebar/icon-sidebar-content/icon-sidebar-content.component.js +1 -1
  561. package/icon-sidebar.js +3 -3
  562. package/icon-sidebar.pure.js +3 -3
  563. package/icon.js +1 -1
  564. package/icon.pure.js +1 -1
  565. package/image/image.component.js +1 -1
  566. package/{image.component-BSSyfPru.js → image.component-K7sre7oE.js} +1 -1
  567. package/image.js +1 -1
  568. package/image.pure.js +1 -1
  569. package/{inline-link-common-O650N_pm.js → inline-link-common-D0sat0cr.js} +1 -1
  570. package/journey-header/journey-header.component.js +1 -1
  571. package/journey-header.js +1 -1
  572. package/journey-header.pure.js +1 -1
  573. package/lead-container/lead-container.component.js +1 -1
  574. package/lead-container.js +1 -1
  575. package/lead-container.pure.js +1 -1
  576. package/link/common/block-link-common.js +1 -1
  577. package/link/common/inline-link-common.js +1 -1
  578. package/link/common/link-common.js +1 -1
  579. package/link-list/common/link-list-base.js +1 -1
  580. package/link-list/link-list.component.js +1 -1
  581. package/link-list-anchor/link-list-anchor.component.js +1 -1
  582. package/link-list-anchor.js +1 -1
  583. package/link-list-anchor.pure.js +1 -1
  584. package/{link-list.component-Dg-7TBPC.js → link-list.component-bTG45ml0.js} +1 -1
  585. package/link-list.js +2 -2
  586. package/link-list.pure.js +2 -2
  587. package/link.js +3 -3
  588. package/link.pure.js +3 -3
  589. package/loading-indicator/loading-indicator.component.js +1 -1
  590. package/loading-indicator-circle/loading-indicator-circle.component.js +1 -1
  591. package/loading-indicator-circle.js +1 -1
  592. package/loading-indicator-circle.pure.js +1 -1
  593. package/loading-indicator.js +1 -1
  594. package/loading-indicator.pure.js +1 -1
  595. package/logo/logo.component.js +1 -1
  596. package/logo.js +1 -1
  597. package/logo.pure.js +1 -1
  598. package/map-container/map-container.component.js +1 -1
  599. package/map-container.js +1 -1
  600. package/map-container.pure.js +1 -1
  601. package/menu/common/menu-action-common.js +1 -1
  602. package/menu/menu/menu.component.js +1 -1
  603. package/menu.js +2 -2
  604. package/menu.pure.js +2 -2
  605. package/message/message.component.js +1 -1
  606. package/message.js +1 -1
  607. package/message.pure.js +1 -1
  608. package/mini-calendar/mini-calendar/mini-calendar.component.js +1 -1
  609. package/mini-calendar/mini-calendar-day/mini-calendar-day.component.js +1 -1
  610. package/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +1 -1
  611. package/mini-calendar.js +3 -3
  612. package/mini-calendar.pure.js +3 -3
  613. package/navigation/common/navigation-action-common.js +1 -1
  614. package/navigation/navigation/navigation.component.js +1 -1
  615. package/navigation/navigation-list/navigation-list.component.js +1 -1
  616. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  617. package/navigation/navigation-section/navigation-section.component.js +1 -1
  618. package/navigation.js +5 -5
  619. package/navigation.pure.js +5 -5
  620. package/notification/notification.component.js +1 -1
  621. package/notification.js +1 -1
  622. package/notification.pure.js +1 -1
  623. package/option/optgroup/optgroup-base-element.js +1 -1
  624. package/option/optgroup/optgroup.component.js +1 -1
  625. package/option/option/option-base-element.js +16 -19
  626. package/option/option/option.component.js +1 -1
  627. package/option/option-hint/option-hint.component.js +1 -1
  628. package/option/option-styles.js +1 -1
  629. package/{option.component-DiH8AMlV.js → option.component-9AlEwsE3.js} +1 -1
  630. package/option.js +4 -4
  631. package/option.pure.js +4 -4
  632. package/overlay/overlay.component.js +1 -1
  633. package/overlay.js +1 -1
  634. package/overlay.pure.js +1 -1
  635. package/package.json +2 -2
  636. package/paginator/common/paginator-common.js +1 -1
  637. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  638. package/paginator/paginator/paginator.component.js +1 -1
  639. package/{paginator.component-Dk1xDHgW.js → paginator.component-buCkeyDv.js} +3 -3
  640. package/paginator.js +3 -3
  641. package/paginator.pure.js +3 -3
  642. package/popover/popover.component.js +1 -1
  643. package/popover.js +1 -1
  644. package/popover.pure.js +1 -1
  645. package/radio-button/common/radio-button-common.js +1 -1
  646. package/radio-button/radio-button.component.js +1 -1
  647. package/{radio-button.component-DXLKxjst.js → radio-button.component-DznnXJCN.js} +1 -1
  648. package/radio-button.js +2 -2
  649. package/radio-button.pure.js +2 -2
  650. package/select/select.component.js +1 -1
  651. package/{select.component-UcWSndDu.js → select.component-Drb7KsP3.js} +2 -2
  652. package/select.js +1 -1
  653. package/select.pure.js +1 -1
  654. package/selection-action-panel/selection-action-panel.component.js +1 -1
  655. package/selection-action-panel.js +1 -1
  656. package/selection-action-panel.pure.js +1 -1
  657. package/selection-expansion-panel/selection-expansion-panel.component.js +1 -1
  658. package/selection-expansion-panel.js +1 -1
  659. package/selection-expansion-panel.pure.js +1 -1
  660. package/{selection-group-base-element-CehwzW8Y.js → selection-group-base-element-BcEQ5-ML.js} +1 -1
  661. package/sidebar/sidebar/sidebar.component.js +1 -1
  662. package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
  663. package/sidebar/sidebar-container/sidebar-container.component.js +1 -1
  664. package/sidebar/sidebar-content/sidebar-content.component.js +1 -1
  665. package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  666. package/sidebar.js +5 -5
  667. package/sidebar.pure.js +5 -5
  668. package/signet/signet.component.js +1 -1
  669. package/signet.js +1 -1
  670. package/signet.pure.js +1 -1
  671. package/skiplink-list/skiplink-list.component.js +1 -1
  672. package/skiplink-list.js +1 -1
  673. package/skiplink-list.pure.js +1 -1
  674. package/slider/slider.component.js +1 -1
  675. package/slider.js +1 -1
  676. package/slider.pure.js +1 -1
  677. package/status/status.component.js +1 -1
  678. package/status.js +1 -1
  679. package/status.pure.js +1 -1
  680. package/stepper/step/step.component.js +1 -1
  681. package/stepper/step-label/step-label.component.js +1 -1
  682. package/stepper/stepper/stepper.component.js +1 -1
  683. package/stepper.js +3 -3
  684. package/stepper.pure.js +3 -3
  685. package/table/table-wrapper/table-wrapper.component.js +1 -1
  686. package/table.js +1 -1
  687. package/table.pure.js +1 -1
  688. package/tabs/common/styles.js +1 -1
  689. package/tabs/tab/tab.component.js +1 -1
  690. package/tabs/tab-group/tab-group.component.js +1 -1
  691. package/tabs/tab-label/tab-label.component.js +1 -1
  692. package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
  693. package/tabs.js +5 -5
  694. package/tabs.pure.js +5 -5
  695. package/tag/tag/tag.component.js +1 -1
  696. package/tag/tag-group/tag-group.component.js +1 -1
  697. package/tag.js +2 -2
  698. package/tag.pure.js +2 -2
  699. package/teaser/teaser.component.js +1 -1
  700. package/teaser-hero/teaser-hero.component.js +1 -1
  701. package/teaser-hero.js +1 -1
  702. package/teaser-hero.pure.js +1 -1
  703. package/teaser-panel/teaser-panel.component.js +1 -1
  704. package/teaser-panel.js +1 -1
  705. package/teaser-panel.pure.js +1 -1
  706. package/teaser-product/common/teaser-product-common.js +1 -1
  707. package/teaser-product/teaser-product/teaser-product.component.js +1 -1
  708. package/teaser-product.js +2 -2
  709. package/teaser-product.pure.js +2 -2
  710. package/teaser.js +1 -1
  711. package/teaser.pure.js +1 -1
  712. package/time-input/time-input.component.js +1 -1
  713. package/time-input.js +1 -1
  714. package/time-input.pure.js +1 -1
  715. package/timetable-form/timetable-form/timetable-form.component.js +1 -1
  716. package/timetable-form/timetable-form-details/timetable-form-details.component.js +1 -1
  717. package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
  718. package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  719. package/timetable-form.js +4 -4
  720. package/timetable-form.pure.js +4 -4
  721. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  722. package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
  723. package/timetable-occupancy-icon.js +1 -1
  724. package/timetable-occupancy-icon.pure.js +1 -1
  725. package/timetable-occupancy.js +1 -1
  726. package/timetable-occupancy.pure.js +1 -1
  727. package/title/title-base.js +1 -1
  728. package/title/title.component.js +1 -1
  729. package/{title.component-DTnG8op9.js → title.component-BZ0nVpam.js} +1 -1
  730. package/title.js +2 -2
  731. package/title.pure.js +2 -2
  732. package/toast/toast.component.js +1 -1
  733. package/toast.js +1 -1
  734. package/toast.pure.js +1 -1
  735. package/toggle/toggle/toggle.component.js +1 -1
  736. package/toggle/toggle-option/toggle-option.component.js +1 -1
  737. package/toggle-check/toggle-check.component.js +1 -1
  738. package/toggle-check.js +1 -1
  739. package/toggle-check.pure.js +1 -1
  740. package/toggle.js +2 -2
  741. package/toggle.pure.js +2 -2
  742. package/tooltip/tooltip.component.js +1 -1
  743. package/tooltip.js +1 -1
  744. package/tooltip.pure.js +1 -1
  745. package/train/train/train.component.js +1 -1
  746. package/train/train-blocked-passage/train-blocked-passage.component.js +1 -1
  747. package/train/train-formation/train-formation.component.js +1 -1
  748. package/train/train-wagon-common.js +1 -1
  749. package/train.js +4 -4
  750. package/train.pure.js +4 -4
  751. package/visual-checkbox/visual-checkbox.component.js +1 -1
  752. package/visual-checkbox.js +1 -1
  753. package/visual-checkbox.pure.js +1 -1
  754. /package/{accordion.component-DbuSYzV1.js → accordion.component-ClJHZh_N.js} +0 -0
  755. /package/{action-group.component-BMYAFyHh.js → action-group.component-Dg11Ug4A.js} +0 -0
  756. /package/{alert-group.component-BqJ6B49z.js → alert-group.component-Ck1kYZb4.js} +0 -0
  757. /package/{alert.component-DN7sW2NC.js → alert.component-B8EGWmcc.js} +0 -0
  758. /package/{breadcrumb-group.component-a49dItu9.js → breadcrumb-group.component-FLbOLqwi.js} +0 -0
  759. /package/{breadcrumb.component-Kk1U6Iju.js → breadcrumb.component-CC8MxtJj.js} +0 -0
  760. /package/{button-common-BQdNXKwl.js → button-common-Br6zOEgv.js} +0 -0
  761. /package/{calendar-cell-base-element-CUG1qYFb.js → calendar-cell-base-element-Dq7Ap5n-.js} +0 -0
  762. /package/{calendar-day.component-CcZymuSD.js → calendar-day.component-Caf2w9lS.js} +0 -0
  763. /package/{card-action-common-BNdGcJl-.js → card-action-common-DRSSDHqY.js} +0 -0
  764. /package/{card-badge.component-BLAK_y8x.js → card-badge.component-B-uJVrxT.js} +0 -0
  765. /package/{card.component-WUQRK9jT.js → card.component-Bwuv9ur1.js} +0 -0
  766. /package/{carousel-item.component-B6WmZPkW.js → carousel-item.component-DRfpza-9.js} +0 -0
  767. /package/{carousel-list.component-CnZehdy6.js → carousel-list.component-7mbfkw4K.js} +0 -0
  768. /package/{carousel.component-ZrkGeJgZ.js → carousel.component-B6XqR3Bc.js} +0 -0
  769. /package/{checkbox-common-gaaFKApr.js → checkbox-common-Dz5PUD9H.js} +0 -0
  770. /package/{chip-group.component-BIP7c2G0.js → chip-group.component-DKF_Z2QU.js} +0 -0
  771. /package/{chip-label.component-BLbhqUAp.js → chip-label.component-DVUxt7Sk.js} +0 -0
  772. /package/{chip.component-gcvF3pEX.js → chip.component-SLuNizyV.js} +0 -0
  773. /package/{clock.component-Cqrl999I.js → clock.component-gnEqkZ4T.js} +0 -0
  774. /package/{compact-paginator.component-B-8gf_qD.js → compact-paginator.component-CmPlZsd4.js} +0 -0
  775. /package/{container.component-sQtiqWxT.js → container.component-DJgFIJ0b.js} +0 -0
  776. /package/{date-input.component-aFuUH3N_.js → date-input.component-Cb3wWbFC.js} +0 -0
  777. /package/{datepicker-button-CuoZoC6e.js → datepicker-button-D8t6_DBS.js} +0 -0
  778. /package/{dialog-actions.component-DxmjSvd-.js → dialog-actions.component-CHFJ8HjT.js} +0 -0
  779. /package/{dialog-close-button.component-B8troaaQ.js → dialog-close-button.component-CV55ej8Q.js} +0 -0
  780. /package/{dialog-content.component-Chfg-IY1.js → dialog-content.component-D7SeDETW.js} +0 -0
  781. /package/{dialog-title.component-BbcbQXjp.js → dialog-title.component-DP7l1zQE.js} +0 -0
  782. /package/{dialog.component-D3G0AX4Y.js → dialog.component-Bs62s2eB.js} +0 -0
  783. /package/{divider.component-WsZcNUnN.js → divider.component-wL7Cw3YB.js} +0 -0
  784. /package/{element-C7t5_1gu.js → element-CvshSA3k.js} +0 -0
  785. /package/{error.component-D9Tu2YIl.js → error.component-D0rmgyFk.js} +0 -0
  786. /package/{expansion-panel-content.component-WG1cwhjd.js → expansion-panel-content.component-Dm761peO.js} +0 -0
  787. /package/{expansion-panel-header.component-CnUqRql_.js → expansion-panel-header.component-Cli4Qy1p.js} +0 -0
  788. /package/{expansion-panel.component-CRyZ5x6U.js → expansion-panel.component-kyVRxBRu.js} +0 -0
  789. /package/{file-selector-common-BNGnjK__.js → file-selector-common-Bk347JZN.js} +0 -0
  790. /package/{file-selector-dropzone.component-sE_fofSq.js → file-selector-dropzone.component-CywJG8KU.js} +0 -0
  791. /package/{flip-card-details.component-BgOeJ53R.js → flip-card-details.component-D4C0Fde7.js} +0 -0
  792. /package/{flip-card-summary.component-D5cKgj47.js → flip-card-summary.component-ZvTeHtPV.js} +0 -0
  793. /package/{flip-card.component-ZsA_kDPS.js → flip-card.component-CtUxr9yF.js} +0 -0
  794. /package/{footer.component-DsIoOLu-.js → footer.component-x4yuXpWV.js} +0 -0
  795. /package/{form-field.component-BKWzdNHT.js → form-field.component-eH2C_qPG.js} +0 -0
  796. /package/{header-action-common-B-eRBjSz.js → header-action-common-CWn80TJo.js} +0 -0
  797. /package/{header-environment.component-B0VYZh7C.js → header-environment.component-Diy44YpD.js} +0 -0
  798. /package/{header.component-TU3e89pY.js → header.component-DgWfgTse.js} +0 -0
  799. /package/{hint.component-DTKfI9tq.js → hint.component-BZZJXuHG.js} +0 -0
  800. /package/{icon-base-CCpB1w3b.js → icon-base-CK1oqnO4.js} +0 -0
  801. /package/{icon-sidebar-container.component-CDBkiGlz.js → icon-sidebar-container.component-CYVyqKnZ.js} +0 -0
  802. /package/{icon-sidebar-content.component-CN4Que2a.js → icon-sidebar-content.component-C5ZspZQk.js} +0 -0
  803. /package/{icon-sidebar.component-DA2cmcyy.js → icon-sidebar.component-BkqYbGHz.js} +0 -0
  804. /package/{journey-header.component-CXyULeHJ.js → journey-header.component-Ct9LmhWY.js} +0 -0
  805. /package/{lead-container.component-CdfHJFFN.js → lead-container.component-Fv9F5Yh4.js} +0 -0
  806. /package/{link-common-ezSu7e9c.js → link-common-C4Jbge1L.js} +0 -0
  807. /package/{link-list-anchor.component-Bjz_EKvE.js → link-list-anchor.component-as1bjNH1.js} +0 -0
  808. /package/{link-list-base-C12PTC8e.js → link-list-base-Dgu0yeTL.js} +0 -0
  809. /package/{loading-indicator-circle.component-CSU2Ludy.js → loading-indicator-circle.component-BSdKx0eK.js} +0 -0
  810. /package/{loading-indicator.component-DxyhIaFo.js → loading-indicator.component-B2cGE1Mj.js} +0 -0
  811. /package/{logo.component-DVMNS8Op.js → logo.component-BOxQbVu9.js} +0 -0
  812. /package/{map-container.component-DyJBA3qj.js → map-container.component-bI8Gb4I8.js} +0 -0
  813. /package/{menu-action-common-DakEXPg7.js → menu-action-common-_iII6n1T.js} +0 -0
  814. /package/{menu.component-CqXsI5Cg.js → menu.component-CqXIRQq2.js} +0 -0
  815. /package/{message.component-CORYX4KP.js → message.component-BpQ4ikV6.js} +0 -0
  816. /package/{mini-button-group.component-DWayyUpK.js → mini-button-group.component-C-pJ_J-1.js} +0 -0
  817. /package/{mini-button-link.component-B8HmvVCg.js → mini-button-link.component-MBesHG--.js} +0 -0
  818. /package/{mini-calendar-day.component-CVYqN3Yn.js → mini-calendar-day.component-UvIp06lc.js} +0 -0
  819. /package/{mini-calendar-month.component-DbiqMOH8.js → mini-calendar-month.component-BZV7QSlC.js} +0 -0
  820. /package/{mini-calendar.component-BKzbqHim.js → mini-calendar.component-B6EGO9bp.js} +0 -0
  821. /package/{navigation-action-common-CBlB5vk9.js → navigation-action-common-DSPULZFe.js} +0 -0
  822. /package/{navigation-list.component-C5y3ohH0.js → navigation-list.component-Bkmh_wqm.js} +0 -0
  823. /package/{navigation-marker.component-VbvKu1TR.js → navigation-marker.component-CCXJWsN1.js} +0 -0
  824. /package/{navigation-section.component-Bmh4Xtrm.js → navigation-section.component-c4XBLFsl.js} +0 -0
  825. /package/{navigation.component-DKJujMqj.js → navigation.component-pRBja4z3.js} +0 -0
  826. /package/{notification.component-CDGtGwRv.js → notification.component-IRuswhzC.js} +0 -0
  827. /package/{optgroup-base-element-CBxsRPUF.js → optgroup-base-element-BbxwRc0x.js} +0 -0
  828. /package/{option-hint.component-NSxCKXEy.js → option-hint.component-CUf2d2d5.js} +0 -0
  829. /package/{option-styles-DcD5grSB.js → option-styles-czjdmUjA.js} +0 -0
  830. /package/{overlay.component-OSLtja0_.js → overlay.component-BvoOK_O-.js} +0 -0
  831. /package/{paginator-common-C0Kn9ibe.js → paginator-common-Xiv6UZlo.js} +0 -0
  832. /package/{panel-mixin-XQXElTGt.js → panel-mixin-CG-f0J6K.js} +0 -0
  833. /package/{popover.component-Bm-bx-Hs.js → popover.component-DrLx8J07.js} +0 -0
  834. /package/{radio-button-common-D7jL7eB3.js → radio-button-common-OaxGvaS9.js} +0 -0
  835. /package/{sbb-tokens-BBic3kP6.js → sbb-tokens-C-MoUcho.js} +0 -0
  836. /package/{selection-action-panel.component-Ba7N1Hgt.js → selection-action-panel.component-m13MKp44.js} +0 -0
  837. /package/{selection-expansion-panel.component-BL1FPfPM.js → selection-expansion-panel.component-BMI-n5Xc.js} +0 -0
  838. /package/{sidebar-close-button.component-CLjOpBM2.js → sidebar-close-button.component-BoOFzuBn.js} +0 -0
  839. /package/{sidebar-container.component-8filIF5E.js → sidebar-container.component-BFm6HnIu.js} +0 -0
  840. /package/{sidebar-content.component-DMdjHDdq.js → sidebar-content.component-DFLqVK-O.js} +0 -0
  841. /package/{sidebar-title.component-DaIkBNY9.js → sidebar-title.component-4B18yGLO.js} +0 -0
  842. /package/{sidebar.component-D_HLDNnq.js → sidebar.component-VL6TFd9H.js} +0 -0
  843. /package/{signet.component-6q3GxORI.js → signet.component-DoXHpxDU.js} +0 -0
  844. /package/{skiplink-list.component-ClGb1J_H.js → skiplink-list.component-Cc6QNvVU.js} +0 -0
  845. /package/{slider.component-BMkoF1l1.js → slider.component-DANx27eH.js} +0 -0
  846. /package/{status.component-DMfZTgzz.js → status.component-Cg671ic2.js} +0 -0
  847. /package/{step-label.component-CjNZYk5b.js → step-label.component-olqRA-s7.js} +0 -0
  848. /package/{step.component-BCkwsZdk.js → step.component-CcjV_283.js} +0 -0
  849. /package/{stepper.component-mq66fR06.js → stepper.component-CqClDxL6.js} +0 -0
  850. /package/{sticky-bar.component-DtXeRUqi.js → sticky-bar.component-DBSVB1lE.js} +0 -0
  851. /package/{styles-DV41ClRb.js → styles-Cx8wGnh9.js} +0 -0
  852. /package/{styles-DWm_OYpV.js → styles-DGAxTLMz.js} +0 -0
  853. /package/{tab-group.component-MEm2W7QR.js → tab-group.component-Dx0xldWI.js} +0 -0
  854. /package/{tab-label.component-BqznCfW8.js → tab-label.component-BYssa8XI.js} +0 -0
  855. /package/{tab-nav-bar.component-CRC6xnaX.js → tab-nav-bar.component-7j-RCq7p.js} +0 -0
  856. /package/{tab.component-DPwbvqp4.js → tab.component-C5xxMwwX.js} +0 -0
  857. /package/{table-wrapper.component-LzYuAVPb.js → table-wrapper.component-BzmzJJim.js} +0 -0
  858. /package/{tag-group.component-wnzXwLPf.js → tag-group.component-ByRxy8UG.js} +0 -0
  859. /package/{tag.component-zGPaopTo.js → tag.component-BrKoQeIW.js} +0 -0
  860. /package/{teaser-hero.component-BlhffYux.js → teaser-hero.component-BNV8sgb6.js} +0 -0
  861. /package/{teaser-panel.component-BCbKgXVt.js → teaser-panel.component-Bfhra0zG.js} +0 -0
  862. /package/{teaser-product-common-C_lgMbyC.js → teaser-product-common-D7kWWxU-.js} +0 -0
  863. /package/{teaser-product.component-CQIXu7sq.js → teaser-product.component-DHu47PGd.js} +0 -0
  864. /package/{teaser.component-D9z78Eny.js → teaser.component-CkIii0_d.js} +0 -0
  865. /package/{time-input.component-CLHEoWze.js → time-input.component-DTMCclRN.js} +0 -0
  866. /package/{timetable-form-details.component-DJ3oPkQP.js → timetable-form-details.component-BTRh4w9g.js} +0 -0
  867. /package/{timetable-form-field.component-6s8_sz9h.js → timetable-form-field.component-BPKgSLQb.js} +0 -0
  868. /package/{timetable-form-swap-button.component-BY2m2_k9.js → timetable-form-swap-button.component-DgUiFKbA.js} +0 -0
  869. /package/{timetable-form.component-Swe8BX7g.js → timetable-form.component-Crq-rb5Z.js} +0 -0
  870. /package/{timetable-occupancy-icon.component-C44eSFOM.js → timetable-occupancy-icon.component-9RhBPwBN.js} +0 -0
  871. /package/{timetable-occupancy.component-CIkq1cT7.js → timetable-occupancy.component-B040dznI.js} +0 -0
  872. /package/{title-base-B1xzk7Zb.js → title-base-DWrwrsx4.js} +0 -0
  873. /package/{toast.component-Ew5vuGXf.js → toast.component-Lbh5sa_U.js} +0 -0
  874. /package/{toggle-check.component-Ce-klZJB.js → toggle-check.component-BNGDAvXJ.js} +0 -0
  875. /package/{toggle-option.component-BdMfGuA-.js → toggle-option.component-UXno4hFd.js} +0 -0
  876. /package/{toggle.component-ySmrXvjA.js → toggle.component-Cz3OnOMI.js} +0 -0
  877. /package/{tooltip.component-ihyNBI7f.js → tooltip.component-BLzyft0C.js} +0 -0
  878. /package/{train-blocked-passage.component-UnNCmspZ.js → train-blocked-passage.component-Bk_YvTRh.js} +0 -0
  879. /package/{train-formation.component-CYqdWnkL.js → train-formation.component-Di5d_G5x.js} +0 -0
  880. /package/{train-wagon-common-C1Py1D01.js → train-wagon-common-HuRuHdNZ.js} +0 -0
  881. /package/{train.component-DRLUjuXY.js → train.component-Dwp6ltDo.js} +0 -0
  882. /package/{visual-checkbox.component-JmGORoDU.js → visual-checkbox.component-CPIhZcmN.js} +0 -0
@@ -429,4 +429,4 @@ var SbbPaginatorCommonElementMixin = (superClass) => {
429
429
  //#endregion
430
430
  export { SbbPaginatorPageEvent as n, SbbPaginatorCommonElementMixin as t };
431
431
 
432
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLWNvbW1vbi1DUmNodGNYYy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL2NvbW1vbi9wYWdpbmF0b3ItY29tbW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9jb21tb24vcGFnaW5hdG9yLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQtbSk7XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItcGFnaW5hdG9yLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTWluaUJ1dHRvbkVsZW1lbnQsIFNiYk1pbmlCdXR0b25Hcm91cEVsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICB0eXBlIEFic3RyYWN0Q29uc3RydWN0b3IsXG4gIGZvcmNlVHlwZSxcbiAgaTE4bk5leHRQYWdlLFxuICBpMThuUGFnZSxcbiAgaTE4blBhZ2luYXRvclNlbGVjdGVkLFxuICBpMThuUHJldmlvdXNQYWdlLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICB0eXBlIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTmVnYXRpdmVNaXhpbixcbiAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uLy4uL2RpdmlkZXIucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BhZ2luYXRvci1jb21tb24uc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgY2xhc3MgU2JiUGFnaW5hdG9yUGFnZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9sZW5ndGg6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFnZVNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFnZUluZGV4OiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByZXZpb3VzUGFnZUluZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZUluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJldmlvdXNQYWdlSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNQYWdlSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIGxlbmd0aCxcbiAgICBwYWdlU2l6ZSxcbiAgICBwYWdlSW5kZXgsXG4gICAgcHJldmlvdXNQYWdlSW5kZXgsXG4gIH06IE9taXQ8U2JiUGFnaW5hdG9yUGFnZUV2ZW50LCBrZXlvZiBFdmVudD4pIHtcbiAgICBzdXBlcigncGFnZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSk7XG4gICAgdGhpcy5fbGVuZ3RoID0gbGVuZ3RoO1xuICAgIHRoaXMuX3BhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgdGhpcy5fcGFnZUluZGV4ID0gcGFnZUluZGV4O1xuICAgIHRoaXMuX3ByZXZpb3VzUGFnZUluZGV4ID0gcHJldmlvdXNQYWdlSW5kZXg7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oXG4gIFNiYkRpc2FibGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGxlbmd0aDogbnVtYmVyO1xuICBwdWJsaWMgYWNjZXNzb3IgcGFnZVNpemU6IG51bWJlcjtcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgYWNjZXNzb3IgcGFnZXJQb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnO1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbDtcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlQYWdlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlQcmV2aW91c1BhZ2VMYWJlbDogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eU5leHRQYWdlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQ7XG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKTogdm9pZDtcbiAgcHVibGljIGZpcnN0UGFnZSgpOiB2b2lkO1xuICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZDtcbiAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHB1YmxpYyBoYXNQcmV2aW91c1BhZ2UoKTogYm9vbGVhbjtcbiAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBlbWl0UGFnZUV2ZW50KHByZXZpb3VzUGFnZUluZGV4OiBudW1iZXIsIHBhZ2VJbmRleD86IG51bWJlcik6IHZvaWQ7XG4gIHByb3RlY3RlZCByZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKTogVGVtcGxhdGVSZXN1bHQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJEaXNhYmxlZE1peGluKHN1cGVyQ2xhc3MpKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3NjcmVlblJlYWRlck9ubHlTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICAgIFNiYk1pbmlCdXR0b25Hcm91cEVsZW1lbnQsXG4gICAgICBTYmJNaW5pQnV0dG9uRWxlbWVudCxcbiAgICAgIFNiYkRpdmlkZXJFbGVtZW50LFxuICAgIF07XG5cbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJvbGUgPSAnZ3JvdXAnO1xuXG4gICAgLyoqIFRvdGFsIG51bWJlciBvZiBpdGVtcy4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgbGVuZ3RoOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqIE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZS4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLXNpemUnLCB0eXBlOiBOdW1iZXIgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgcGFnZVNpemU6IG51bWJlciA9IDEwO1xuXG4gICAgLyoqIEN1cnJlbnQgcGFnZSBpbmRleC4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcblxuICAgIC8qKiBQb3NpdGlvbiBvZiB0aGUgcHJldi9uZXh0IGJ1dHRvbnMuICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZXItcG9zaXRpb24nLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBwYWdlclBvc2l0aW9uOlxuICAgICAgfCAnc3RhcnQnXG4gICAgICB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAgIC8qKlxuICAgICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgKGxlYW4gdGhlbWUgZGVmYXVsdCkgb3IgbSAoc3RhbmRhcmQgdGhlbWUgZGVmYXVsdCkuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZVsnc2l6ZSddID1cbiAgICAgIG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciB0aGUgcGFnZS4gRGVmYXVsdHMgdG8gYHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktcGFnZS1sYWJlbCcgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciB0aGUgcHJldmlvdXMgcGFnZS4gRGVmYXVsdHMgdG8gYHByZXZpb3VzIHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktcHJldmlvdXMtcGFnZS1sYWJlbCcgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVByZXZpb3VzUGFnZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEFjY2Vzc2liaWxpdHkgbGFiZWwgZm9yIHRoZSBuZXh0IHBhZ2UuIERlZmF1bHRzIHRvIGBuZXh0IHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbmV4dC1wYWdlLWxhYmVsJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TmV4dFBhZ2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgICAgbGV0IHByZXZQYWdlSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsZW5ndGgnKSAmJiB0aGlzLmxlbmd0aCAhPT0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdsZW5ndGgnKSkge1xuICAgICAgICB0aGlzLmxlbmd0aCA9IGlzTmFOKHRoaXMubGVuZ3RoKSB8fCB0aGlzLmxlbmd0aCA8IDAgPyAwIDogdGhpcy5sZW5ndGg7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgcGFnZUluZGV4IGNoYW5nZXMsIGl0J3MgYWRkZWQgaW4gdGhlIGNoYW5nZWRQcm9wZXJ0aWVzIG1hcFxuICAgICAgICAgKiBhbmQgaGFuZGxlZCBpbiB0aGUgcGFnZUluZGV4IGxvZ2ljIGJlbG93LCBlbWl0dGluZyB0aGUgcGFnZSBldmVudC5cbiAgICAgICAgICogSWYgdGhlIHBhZ2VJbmRleCBkb2Vzbid0IGNoYW5nZSB0aGVyZSdzIG5vIG5lZWQgdG8gZW1pdC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5fY29lcmNlUGFnZUluZGV4SW5SYW5nZSh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwYWdlU2l6ZScpICYmXG4gICAgICAgIHRoaXMucGFnZVNpemUgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgncGFnZVNpemUnKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFnZVNpemUgPSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3BhZ2VTaXplJyk7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBpc05hTih0aGlzLnBhZ2VTaXplKSB8fCB0aGlzLnBhZ2VTaXplIDwgMCA/IDAgOiB0aGlzLnBhZ2VTaXplO1xuICAgICAgICAvLyBDdXJyZW50IHBhZ2UgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBuZXcgcGFnZSBzaXplLlxuICAgICAgICAvLyBOYXZpZ2F0ZSB0byB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBwcmV2aW91cyBwYWdlJ3MgZmlyc3QgaXRlbS5cbiAgICAgICAgLy8gSWYgdGhlIHBhZ2VJbmRleCBjaGFuZ2VzIGluIHRoZSBzYW1lIHVwZGF0ZSBjeWNsZSwgd2Ugc2hvdWxkbid0IGFkanVzdCBpdC5cbiAgICAgICAgaWYgKHByZXZpb3VzUGFnZVNpemUgJiYgIWNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncGFnZUluZGV4JykpIHtcbiAgICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IE1hdGguZmxvb3IoKHRoaXMucGFnZUluZGV4ICogcHJldmlvdXNQYWdlU2l6ZSkgLyB0aGlzLnBhZ2VTaXplKSB8fCAwO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgcGFnZUluZGV4IGNoYW5nZXMsIGl0J3MgYWRkZWQgaW4gdGhlIGNoYW5nZWRQcm9wZXJ0aWVzIG1hcCxcbiAgICAgICAgICogYW5kIHRoaXMgbGluZSBpcyB1c2VsZXNzLCBzaW5jZSB0aGUgY29ycmVjdCB2YWx1ZSB3aWxsIGJlIGNhbGN1bGF0ZWQgaW4gdGhlIGxvZ2ljIGJlbG93O1xuICAgICAgICAgKiBpZiB0aGUgcGFnZUluZGV4IGRvZXNuJ3QgY2hhbmdlIChlLmcuIGNoYW5nZSBwYWdlU2l6ZSBhdCBwYWdlSW5kZXggMCksIHRoZSBwcmV2UGFnZUluZGV4IGFuZCBwYWdlSW5kZXggYXJlIHRoZSBzYW1lLlxuICAgICAgICAgKiBJbiBib3RoIGNhc2UgdGhlIHBhZ2UgZXZlbnQgbXVzdCBiZSB0cmlnZ2VyZWQgdG8gYWxsb3cgY29uc3VtZXJzIHRvIHJldHJpZXZlIHRoZSBjb3JyZWN0IGRhdGEuXG4gICAgICAgICAqL1xuICAgICAgICBwcmV2UGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwYWdlSW5kZXgnKSAmJlxuICAgICAgICB0aGlzLnBhZ2VJbmRleCAhPT0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdwYWdlSW5kZXgnKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5fY29lcmNlUGFnZUluZGV4SW5SYW5nZSh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgIHByZXZQYWdlSW5kZXggPSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3BhZ2VJbmRleCcpITtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZXZQYWdlSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fZW1pdFBhZ2VFdmVudChwcmV2UGFnZUluZGV4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBUbyByZWxpYWJseSBhbm5vdW5jZSBwYWdlIGNoYW5nZSwgd2UgaGF2ZSB0byBzZXQgdGhlIGxhYmVsIGluIHVwZGF0ZWQoKSAoYSB0aWNrIGxhdGVyIHRoYW4gdGhlIG90aGVyIGNoYW5nZXMpLlxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXNjcmVlbi1yZWFkZXItb25seSNzdGF0dXMnKSEudGV4dENvbnRlbnQgPVxuICAgICAgICB0aGlzLl9jdXJyZW50UGFnZUxhYmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIEV2YWx1YXRlIGBwYWdlSW5kZXhgIGJ5IGV4Y2x1ZGluZyBlZGdlIGNhc2VzLiAqL1xuICAgIHByaXZhdGUgX2NvZXJjZVBhZ2VJbmRleEluUmFuZ2UocGFnZUluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgICBNYXRoLm1pbihNYXRoLm1heChpc05hTihwYWdlSW5kZXgpID8gMCA6IHBhZ2VJbmRleCwgMCksIHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMSksXG4gICAgICAgIDAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2N1cnJlbnRQYWdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWwgOiBpMThuUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMucGFnZUluZGV4ICsgMX0gJHtpMThuUGFnaW5hdG9yU2VsZWN0ZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0uYDtcbiAgICB9XG5cbiAgICAvKiogQWR2YW5jZXMgdG8gdGhlIG5leHQgcGFnZSBpZiBpdCBleGlzdHMuICovXG4gICAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLnBhZ2VJbmRleCArIDE7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgYmFjayB0byB0aGUgcHJldmlvdXMgcGFnZSBpZiBpdCBleGlzdHMuICovXG4gICAgcHVibGljIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXggLSAxO1xuICAgIH1cblxuICAgIC8qKiBNb3ZlIHRvIHRoZSBmaXJzdCBwYWdlIGlmIG5vdCBhbHJlYWR5IHRoZXJlLiAqL1xuICAgIHB1YmxpYyBmaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgdG8gdGhlIGxhc3QgcGFnZSBpZiBub3QgYWxyZWFkeSB0aGVyZS4gKi9cbiAgICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMTtcbiAgICB9XG5cbiAgICAvKiogTW92ZSB0byBhIHNwZWNpZmljIHBhZ2UgaW5kZXguICovXG4gICAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSBpbmRleDtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBhIHByZXZpb3VzIHBhZ2UuICovXG4gICAgcHVibGljIGhhc1ByZXZpb3VzUGFnZSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnBhZ2VJbmRleCA+PSAxICYmIHRoaXMucGFnZVNpemUgIT09IDA7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHBhZ2UuICovXG4gICAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgY29uc3QgbWF4UGFnZUluZGV4ID0gdGhpcy5udW1iZXJPZlBhZ2VzKCkgLSAxO1xuICAgICAgcmV0dXJuIHRoaXMucGFnZUluZGV4IDwgbWF4UGFnZUluZGV4ICYmIHRoaXMucGFnZVNpemUgIT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgY3VycmVudCBudW1iZXIgb2YgcGFnZXMgYmFzZWQgb24gdGhlIGBsZW5ndGhgIGFuZCB0aGUgYHBhZ2VTaXplYDtcbiAgICAgKiB2YWx1ZSBtdXN0IGJlIHJvdW5kZWQgdXAgKGUuZy4gYGxlbmd0aCA9IDIxYCBhbmQgYHBhZ2VTaXplID0gMTBgIG1lYW5zIDMgcGFnZXMpLlxuICAgICAqL1xuICAgIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZSA/IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpIDogMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0UGFnZUV2ZW50KHByZXZpb3VzUGFnZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgLy8gRklYTUU6IHRoZSBuYW1lIG9mIHRoaXMgdmFyaWFibGUgYXBwZWFycyBhcyBldmVudCBuYW1lIGluIHRoZSByZWFkbWVcbiAgICAgICAgLy8gIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgY3VzdG9tLWVsZW1lbnRzLW1hbmlmZXN0IGxpYnJhcnkuXG4gICAgICAgIC8vICBodHRwczovL2dpdGh1Yi5jb20vb3Blbi13Yy9jdXN0b20tZWxlbWVudHMtbWFuaWZlc3QvaXNzdWVzLzE0OVxuICAgICAgICBjb25zdCBwYWdlID0ge1xuICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4LFxuICAgICAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsXG4gICAgICAgICAgbGVuZ3RoOiB0aGlzLmxlbmd0aCxcbiAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEB0eXBlIHtTYmJQYWdpbmF0b3JQYWdlRXZlbnR9XG4gICAgICAgICAqIFRoZSBwYWdlIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiB0aGUgcGFnZSBpbmRleCwgbGVuZ3RoIG9yIHBhZ2Ugc2l6ZSBjaGFuZ2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBTYmJQYWdpbmF0b3JQYWdlRXZlbnQocGFnZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzYmItbWluaS1idXR0b24tZ3JvdXAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX0gc2l6ZT0ke3RoaXMuc2l6ZSB8fCBub3RoaW5nfT5cbiAgICAgICAgICA8c2JiLW1pbmktYnV0dG9uXG4gICAgICAgICAgICBpZD1cInNiYi1wYWdpbmF0b3ItcHJldi1wYWdlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlQcmV2aW91c1BhZ2VMYWJlbFxuICAgICAgICAgICAgICA/IHRoaXMuYWNjZXNzaWJpbGl0eVByZXZpb3VzUGFnZUxhYmVsXG4gICAgICAgICAgICAgIDogaTE4blByZXZpb3VzUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaGFzUHJldmlvdXNQYWdlKCl9XG4gICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucHJldmlvdXNQYWdlKCk7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5oYXNQcmV2aW91c1BhZ2UoKSAmJlxuICAgICAgICAgICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCdcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc2JiLXBhZ2luYXRvci1uZXh0LXBhZ2UnKSEuZm9jdXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICAgICAgPHNiYi1kaXZpZGVyIG9yaWVudGF0aW9uPVwidmVydGljYWxcIj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgIDxzYmItbWluaS1idXR0b25cbiAgICAgICAgICAgIGlkPVwic2JiLXBhZ2luYXRvci1uZXh0LXBhZ2VcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eU5leHRQYWdlTGFiZWxcbiAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlOZXh0UGFnZUxhYmVsXG4gICAgICAgICAgICAgIDogaTE4bk5leHRQYWdlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLXJpZ2h0LXNtYWxsXCJcbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaGFzTmV4dFBhZ2UoKX1cbiAgICAgICAgICAgIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5uZXh0UGFnZSgpO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIXRoaXMuaGFzTmV4dFBhZ2UoKSAmJlxuICAgICAgICAgICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCdcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc2JiLXBhZ2luYXRvci1wcmV2LXBhZ2UnKSEuZm9jdXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICAgIDwvc2JiLW1pbmktYnV0dG9uLWdyb3VwPlxuICAgICAgYDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAke3RoaXMucmVuZGVyUGFnaW5hdG9yKCl9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiIGlkPVwic3RhdHVzXCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgIGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIHBhZ2U6IFNiYlBhZ2luYXRvclBhZ2VFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FDK0JBLElBQWEsd0JBQWIsY0FBMkMsTUFBSztDQU05QyxJQUFXLFNBQU07RUFDZixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsV0FBUTtFQUNqQixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsWUFBUztFQUNsQixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsb0JBQWlCO0VBQzFCLE9BQU8sS0FBSztDQUNkO0NBRUEsWUFBbUIsRUFDakIsUUFDQSxVQUNBLFdBQ0EscUJBQ3lDO0VBQ3pDLE1BQU0sUUFBUTtHQUFFLFNBQVM7R0FBTSxVQUFVO0VBQUksQ0FBRTtFQUMvQyxLQUFLLFVBQVU7RUFDZixLQUFLLFlBQVk7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
432
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLWNvbW1vbi1COUVOMUZqeC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL2NvbW1vbi9wYWdpbmF0b3ItY29tbW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9jb21tb24vcGFnaW5hdG9yLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQtbSk7XG59XG5cbjpob3N0KFtuZWdhdGl2ZV0pIHtcbiAgLS1zYmItcGFnaW5hdG9yLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiTWluaUJ1dHRvbkVsZW1lbnQsIFNiYk1pbmlCdXR0b25Hcm91cEVsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICB0eXBlIEFic3RyYWN0Q29uc3RydWN0b3IsXG4gIGZvcmNlVHlwZSxcbiAgaTE4bk5leHRQYWdlLFxuICBpMThuUGFnZSxcbiAgaTE4blBhZ2luYXRvclNlbGVjdGVkLFxuICBpMThuUHJldmlvdXNQYWdlLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICB0eXBlIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTmVnYXRpdmVNaXhpbixcbiAgc2NyZWVuUmVhZGVyT25seVN0eWxlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJEaXZpZGVyRWxlbWVudCB9IGZyb20gJy4uLy4uL2RpdmlkZXIucHVyZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BhZ2luYXRvci1jb21tb24uc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgY2xhc3MgU2JiUGFnaW5hdG9yUGFnZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9sZW5ndGg6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFnZVNpemU6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFnZUluZGV4OiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByZXZpb3VzUGFnZUluZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZUluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJldmlvdXNQYWdlSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNQYWdlSW5kZXg7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3Ioe1xuICAgIGxlbmd0aCxcbiAgICBwYWdlU2l6ZSxcbiAgICBwYWdlSW5kZXgsXG4gICAgcHJldmlvdXNQYWdlSW5kZXgsXG4gIH06IE9taXQ8U2JiUGFnaW5hdG9yUGFnZUV2ZW50LCBrZXlvZiBFdmVudD4pIHtcbiAgICBzdXBlcigncGFnZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSk7XG4gICAgdGhpcy5fbGVuZ3RoID0gbGVuZ3RoO1xuICAgIHRoaXMuX3BhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgdGhpcy5fcGFnZUluZGV4ID0gcGFnZUluZGV4O1xuICAgIHRoaXMuX3ByZXZpb3VzUGFnZUluZGV4ID0gcHJldmlvdXNQYWdlSW5kZXg7XG4gIH1cbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oXG4gIFNiYkRpc2FibGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIGFjY2Vzc29yIGxlbmd0aDogbnVtYmVyO1xuICBwdWJsaWMgYWNjZXNzb3IgcGFnZVNpemU6IG51bWJlcjtcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgYWNjZXNzb3IgcGFnZXJQb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnO1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbDtcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlQYWdlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlQcmV2aW91c1BhZ2VMYWJlbDogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eU5leHRQYWdlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQ7XG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKTogdm9pZDtcbiAgcHVibGljIGZpcnN0UGFnZSgpOiB2b2lkO1xuICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZDtcbiAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHB1YmxpYyBoYXNQcmV2aW91c1BhZ2UoKTogYm9vbGVhbjtcbiAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBlbWl0UGFnZUV2ZW50KHByZXZpb3VzUGFnZUluZGV4OiBudW1iZXIsIHBhZ2VJbmRleD86IG51bWJlcik6IHZvaWQ7XG4gIHByb3RlY3RlZCByZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKTogVGVtcGxhdGVSZXN1bHQ7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJEaXNhYmxlZE1peGluKHN1cGVyQ2xhc3MpKVxuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3NjcmVlblJlYWRlck9ubHlTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICAgIFNiYk1pbmlCdXR0b25Hcm91cEVsZW1lbnQsXG4gICAgICBTYmJNaW5pQnV0dG9uRWxlbWVudCxcbiAgICAgIFNiYkRpdmlkZXJFbGVtZW50LFxuICAgIF07XG5cbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJvbGUgPSAnZ3JvdXAnO1xuXG4gICAgLyoqIFRvdGFsIG51bWJlciBvZiBpdGVtcy4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgbGVuZ3RoOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqIE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZS4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLXNpemUnLCB0eXBlOiBOdW1iZXIgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgcGFnZVNpemU6IG51bWJlciA9IDEwO1xuXG4gICAgLyoqIEN1cnJlbnQgcGFnZSBpbmRleC4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcblxuICAgIC8qKiBQb3NpdGlvbiBvZiB0aGUgcHJldi9uZXh0IGJ1dHRvbnMuICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZXItcG9zaXRpb24nLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBwYWdlclBvc2l0aW9uOlxuICAgICAgfCAnc3RhcnQnXG4gICAgICB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAgIC8qKlxuICAgICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgKGxlYW4gdGhlbWUgZGVmYXVsdCkgb3IgbSAoc3RhbmRhcmQgdGhlbWUgZGVmYXVsdCkuXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZVsnc2l6ZSddID1cbiAgICAgIG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciB0aGUgcGFnZS4gRGVmYXVsdHMgdG8gYHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktcGFnZS1sYWJlbCcgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciB0aGUgcHJldmlvdXMgcGFnZS4gRGVmYXVsdHMgdG8gYHByZXZpb3VzIHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktcHJldmlvdXMtcGFnZS1sYWJlbCcgfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVByZXZpb3VzUGFnZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEFjY2Vzc2liaWxpdHkgbGFiZWwgZm9yIHRoZSBuZXh0IHBhZ2UuIERlZmF1bHRzIHRvIGBuZXh0IHBhZ2VgLlxuICAgICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgICAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktbmV4dC1wYWdlLWxhYmVsJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TmV4dFBhZ2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgICAgbGV0IHByZXZQYWdlSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsZW5ndGgnKSAmJiB0aGlzLmxlbmd0aCAhPT0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdsZW5ndGgnKSkge1xuICAgICAgICB0aGlzLmxlbmd0aCA9IGlzTmFOKHRoaXMubGVuZ3RoKSB8fCB0aGlzLmxlbmd0aCA8IDAgPyAwIDogdGhpcy5sZW5ndGg7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgcGFnZUluZGV4IGNoYW5nZXMsIGl0J3MgYWRkZWQgaW4gdGhlIGNoYW5nZWRQcm9wZXJ0aWVzIG1hcFxuICAgICAgICAgKiBhbmQgaGFuZGxlZCBpbiB0aGUgcGFnZUluZGV4IGxvZ2ljIGJlbG93LCBlbWl0dGluZyB0aGUgcGFnZSBldmVudC5cbiAgICAgICAgICogSWYgdGhlIHBhZ2VJbmRleCBkb2Vzbid0IGNoYW5nZSB0aGVyZSdzIG5vIG5lZWQgdG8gZW1pdC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5fY29lcmNlUGFnZUluZGV4SW5SYW5nZSh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwYWdlU2l6ZScpICYmXG4gICAgICAgIHRoaXMucGFnZVNpemUgIT09IGNoYW5nZWRQcm9wZXJ0aWVzLmdldCgncGFnZVNpemUnKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUGFnZVNpemUgPSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3BhZ2VTaXplJyk7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBpc05hTih0aGlzLnBhZ2VTaXplKSB8fCB0aGlzLnBhZ2VTaXplIDwgMCA/IDAgOiB0aGlzLnBhZ2VTaXplO1xuICAgICAgICAvLyBDdXJyZW50IHBhZ2UgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBuZXcgcGFnZSBzaXplLlxuICAgICAgICAvLyBOYXZpZ2F0ZSB0byB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBwcmV2aW91cyBwYWdlJ3MgZmlyc3QgaXRlbS5cbiAgICAgICAgLy8gSWYgdGhlIHBhZ2VJbmRleCBjaGFuZ2VzIGluIHRoZSBzYW1lIHVwZGF0ZSBjeWNsZSwgd2Ugc2hvdWxkbid0IGFkanVzdCBpdC5cbiAgICAgICAgaWYgKHByZXZpb3VzUGFnZVNpemUgJiYgIWNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncGFnZUluZGV4JykpIHtcbiAgICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IE1hdGguZmxvb3IoKHRoaXMucGFnZUluZGV4ICogcHJldmlvdXNQYWdlU2l6ZSkgLyB0aGlzLnBhZ2VTaXplKSB8fCAwO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgcGFnZUluZGV4IGNoYW5nZXMsIGl0J3MgYWRkZWQgaW4gdGhlIGNoYW5nZWRQcm9wZXJ0aWVzIG1hcCxcbiAgICAgICAgICogYW5kIHRoaXMgbGluZSBpcyB1c2VsZXNzLCBzaW5jZSB0aGUgY29ycmVjdCB2YWx1ZSB3aWxsIGJlIGNhbGN1bGF0ZWQgaW4gdGhlIGxvZ2ljIGJlbG93O1xuICAgICAgICAgKiBpZiB0aGUgcGFnZUluZGV4IGRvZXNuJ3QgY2hhbmdlIChlLmcuIGNoYW5nZSBwYWdlU2l6ZSBhdCBwYWdlSW5kZXggMCksIHRoZSBwcmV2UGFnZUluZGV4IGFuZCBwYWdlSW5kZXggYXJlIHRoZSBzYW1lLlxuICAgICAgICAgKiBJbiBib3RoIGNhc2UgdGhlIHBhZ2UgZXZlbnQgbXVzdCBiZSB0cmlnZ2VyZWQgdG8gYWxsb3cgY29uc3VtZXJzIHRvIHJldHJpZXZlIHRoZSBjb3JyZWN0IGRhdGEuXG4gICAgICAgICAqL1xuICAgICAgICBwcmV2UGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwYWdlSW5kZXgnKSAmJlxuICAgICAgICB0aGlzLnBhZ2VJbmRleCAhPT0gY2hhbmdlZFByb3BlcnRpZXMuZ2V0KCdwYWdlSW5kZXgnKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5fY29lcmNlUGFnZUluZGV4SW5SYW5nZSh0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgIHByZXZQYWdlSW5kZXggPSBjaGFuZ2VkUHJvcGVydGllcy5nZXQoJ3BhZ2VJbmRleCcpITtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZXZQYWdlSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fZW1pdFBhZ2VFdmVudChwcmV2UGFnZUluZGV4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBUbyByZWxpYWJseSBhbm5vdW5jZSBwYWdlIGNoYW5nZSwgd2UgaGF2ZSB0byBzZXQgdGhlIGxhYmVsIGluIHVwZGF0ZWQoKSAoYSB0aWNrIGxhdGVyIHRoYW4gdGhlIG90aGVyIGNoYW5nZXMpLlxuICAgICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXNjcmVlbi1yZWFkZXItb25seSNzdGF0dXMnKSEudGV4dENvbnRlbnQgPVxuICAgICAgICB0aGlzLl9jdXJyZW50UGFnZUxhYmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIEV2YWx1YXRlIGBwYWdlSW5kZXhgIGJ5IGV4Y2x1ZGluZyBlZGdlIGNhc2VzLiAqL1xuICAgIHByaXZhdGUgX2NvZXJjZVBhZ2VJbmRleEluUmFuZ2UocGFnZUluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgICBNYXRoLm1pbihNYXRoLm1heChpc05hTihwYWdlSW5kZXgpID8gMCA6IHBhZ2VJbmRleCwgMCksIHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMSksXG4gICAgICAgIDAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2N1cnJlbnRQYWdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWwgOiBpMThuUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMucGFnZUluZGV4ICsgMX0gJHtpMThuUGFnaW5hdG9yU2VsZWN0ZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0uYDtcbiAgICB9XG5cbiAgICAvKiogQWR2YW5jZXMgdG8gdGhlIG5leHQgcGFnZSBpZiBpdCBleGlzdHMuICovXG4gICAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLnBhZ2VJbmRleCArIDE7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgYmFjayB0byB0aGUgcHJldmlvdXMgcGFnZSBpZiBpdCBleGlzdHMuICovXG4gICAgcHVibGljIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXggLSAxO1xuICAgIH1cblxuICAgIC8qKiBNb3ZlIHRvIHRoZSBmaXJzdCBwYWdlIGlmIG5vdCBhbHJlYWR5IHRoZXJlLiAqL1xuICAgIHB1YmxpYyBmaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgdG8gdGhlIGxhc3QgcGFnZSBpZiBub3QgYWxyZWFkeSB0aGVyZS4gKi9cbiAgICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMTtcbiAgICB9XG5cbiAgICAvKiogTW92ZSB0byBhIHNwZWNpZmljIHBhZ2UgaW5kZXguICovXG4gICAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSBpbmRleDtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBhIHByZXZpb3VzIHBhZ2UuICovXG4gICAgcHVibGljIGhhc1ByZXZpb3VzUGFnZSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnBhZ2VJbmRleCA+PSAxICYmIHRoaXMucGFnZVNpemUgIT09IDA7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHBhZ2UuICovXG4gICAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgY29uc3QgbWF4UGFnZUluZGV4ID0gdGhpcy5udW1iZXJPZlBhZ2VzKCkgLSAxO1xuICAgICAgcmV0dXJuIHRoaXMucGFnZUluZGV4IDwgbWF4UGFnZUluZGV4ICYmIHRoaXMucGFnZVNpemUgIT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgY3VycmVudCBudW1iZXIgb2YgcGFnZXMgYmFzZWQgb24gdGhlIGBsZW5ndGhgIGFuZCB0aGUgYHBhZ2VTaXplYDtcbiAgICAgKiB2YWx1ZSBtdXN0IGJlIHJvdW5kZWQgdXAgKGUuZy4gYGxlbmd0aCA9IDIxYCBhbmQgYHBhZ2VTaXplID0gMTBgIG1lYW5zIDMgcGFnZXMpLlxuICAgICAqL1xuICAgIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZSA/IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpIDogMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0UGFnZUV2ZW50KHByZXZpb3VzUGFnZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgICAgLy8gRklYTUU6IHRoZSBuYW1lIG9mIHRoaXMgdmFyaWFibGUgYXBwZWFycyBhcyBldmVudCBuYW1lIGluIHRoZSByZWFkbWVcbiAgICAgICAgLy8gIGR1ZSB0byBhIGJ1ZyBpbiB0aGUgY3VzdG9tLWVsZW1lbnRzLW1hbmlmZXN0IGxpYnJhcnkuXG4gICAgICAgIC8vICBodHRwczovL2dpdGh1Yi5jb20vb3Blbi13Yy9jdXN0b20tZWxlbWVudHMtbWFuaWZlc3QvaXNzdWVzLzE0OVxuICAgICAgICBjb25zdCBwYWdlID0ge1xuICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4LFxuICAgICAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsXG4gICAgICAgICAgbGVuZ3RoOiB0aGlzLmxlbmd0aCxcbiAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEB0eXBlIHtTYmJQYWdpbmF0b3JQYWdlRXZlbnR9XG4gICAgICAgICAqIFRoZSBwYWdlIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiB0aGUgcGFnZSBpbmRleCwgbGVuZ3RoIG9yIHBhZ2Ugc2l6ZSBjaGFuZ2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBTYmJQYWdpbmF0b3JQYWdlRXZlbnQocGFnZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzYmItbWluaS1idXR0b24tZ3JvdXAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX0gc2l6ZT0ke3RoaXMuc2l6ZSB8fCBub3RoaW5nfT5cbiAgICAgICAgICA8c2JiLW1pbmktYnV0dG9uXG4gICAgICAgICAgICBpZD1cInNiYi1wYWdpbmF0b3ItcHJldi1wYWdlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlQcmV2aW91c1BhZ2VMYWJlbFxuICAgICAgICAgICAgICA/IHRoaXMuYWNjZXNzaWJpbGl0eVByZXZpb3VzUGFnZUxhYmVsXG4gICAgICAgICAgICAgIDogaTE4blByZXZpb3VzUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaGFzUHJldmlvdXNQYWdlKCl9XG4gICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucHJldmlvdXNQYWdlKCk7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5oYXNQcmV2aW91c1BhZ2UoKSAmJlxuICAgICAgICAgICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCdcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc2JiLXBhZ2luYXRvci1uZXh0LXBhZ2UnKSEuZm9jdXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICAgICAgPHNiYi1kaXZpZGVyIG9yaWVudGF0aW9uPVwidmVydGljYWxcIj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgIDxzYmItbWluaS1idXR0b25cbiAgICAgICAgICAgIGlkPVwic2JiLXBhZ2luYXRvci1uZXh0LXBhZ2VcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eU5leHRQYWdlTGFiZWxcbiAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlOZXh0UGFnZUxhYmVsXG4gICAgICAgICAgICAgIDogaTE4bk5leHRQYWdlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICBpY29uLW5hbWU9XCJjaGV2cm9uLXNtYWxsLXJpZ2h0LXNtYWxsXCJcbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaGFzTmV4dFBhZ2UoKX1cbiAgICAgICAgICAgIEBjbGljaz0keygpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5uZXh0UGFnZSgpO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgIXRoaXMuaGFzTmV4dFBhZ2UoKSAmJlxuICAgICAgICAgICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCdcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFkb3dSb290Py5nZXRFbGVtZW50QnlJZCgnc2JiLXBhZ2luYXRvci1wcmV2LXBhZ2UnKSEuZm9jdXMoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICAgIDwvc2JiLW1pbmktYnV0dG9uLWdyb3VwPlxuICAgICAgYDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAke3RoaXMucmVuZGVyUGFnaW5hdG9yKCl9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiIGlkPVwic3RhdHVzXCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgIGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50RXZlbnRNYXAge1xuICAgIHBhZ2U6IFNiYlBhZ2luYXRvclBhZ2VFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FDK0JBLElBQWEsd0JBQWIsY0FBMkMsTUFBSztDQU05QyxJQUFXLFNBQU07RUFDZixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsV0FBUTtFQUNqQixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsWUFBUztFQUNsQixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQVcsb0JBQWlCO0VBQzFCLE9BQU8sS0FBSztDQUNkO0NBRUEsWUFBbUIsRUFDakIsUUFDQSxVQUNBLFdBQ0EscUJBQ3lDO0VBQ3pDLE1BQU0sUUFBUTtHQUFFLFNBQVM7R0FBTSxVQUFVO0VBQUksQ0FBRTtFQUMvQyxLQUFLLFVBQVU7RUFDZixLQUFLLFlBQVk7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
@@ -166,16 +166,16 @@ var SbbPaginatorElement = (() => {
166
166
  _getVisiblePagesIndex() {
167
167
  const totalPages = this.numberOfPages();
168
168
  const currentPageIndex = this.pageIndex;
169
- if (totalPages <= MAX_PAGE_NUMBERS_DISPLAYED + 2) return this._range(totalPages);
169
+ if (totalPages <= 5) return this._range(totalPages);
170
170
  else if (currentPageIndex < MAX_PAGE_NUMBERS_DISPLAYED) return [
171
- ...this._range(MAX_PAGE_NUMBERS_DISPLAYED + 1),
171
+ ...this._range(4),
172
172
  "ellipsis",
173
173
  totalPages - 1
174
174
  ];
175
175
  else if (currentPageIndex >= totalPages - MAX_PAGE_NUMBERS_DISPLAYED) return [
176
176
  0,
177
177
  "ellipsis",
178
- ...this._range(MAX_PAGE_NUMBERS_DISPLAYED + 1, totalPages - 1 - MAX_PAGE_NUMBERS_DISPLAYED)
178
+ ...this._range(4, totalPages - 1 - MAX_PAGE_NUMBERS_DISPLAYED)
179
179
  ];
180
180
  else return [
181
181
  0,
@@ -262,4 +262,4 @@ var SbbPaginatorElement = (() => {
262
262
  //#endregion
263
263
  export { SbbPaginatorElement as t };
264
264
 
265
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC1COHk1dFZDTC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci9wYWdpbmF0b3Iuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gUHJldmVudCBpbmZsdWVuY2UgZnJvbSBjb25zdW1lci1zZXQgbGluZS1oZWlnaHRcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG46aG9zdChbbmVnYXRpdmVdKSB7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xufVxuXG46aG9zdChbcGFnZXItcG9zaXRpb249J2VuZCddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1qdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgLS1zYmItcGFnaW5hdG9yLXdyYXBwaW5nLWdyb3VwLXdyYXA6IHdyYXA7XG4gIC0tc2JiLXBhZ2luYXRvci13cmFwOiB3cmFwLXJldmVyc2U7XG59XG5cbi5zYmItcGFnaW5hdG9yLFxuLnNiYi1wYWdpbmF0b3JfX3dyYXBwaW5nLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNngpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXNiYi1wYWdpbmF0b3ItanVzdGlmeS1jb250ZW50LCBzdGFydCk7XG59XG5cbi5zYmItcGFnaW5hdG9yIHtcbiAgZmxleC13cmFwOiB2YXIoLS1zYmItcGFnaW5hdG9yLXdyYXAsIHdyYXApO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItcGFnaW5hdG9yLWhlaWdodCk7XG59XG5cbi5zYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cCB7XG4gIGZsZXgtd3JhcDogdmFyKC0tc2JiLXBhZ2luYXRvci13cmFwcGluZy1ncm91cC13cmFwLCB3cmFwLXJldmVyc2UpO1xufVxuXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS1zaXplLW9wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6IHZhcigtLXNiYi1wYWdpbmF0b3ItY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi1wYWdpbmF0b3ItZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuXG4gIC8vIFJlYXBwbHkgcGFydCBvZiB0aGUgZ2xvYmFsIGZvcm0tZmllbGQgY3NzIHRoYXQgZG9lcyBub3QgcGllcmNlIHRoZSBzaGFkb3cgRE9NLlxuICBzYmItc2VsZWN0IHtcbiAgICBjb2xvcjogdmFyKC0tc2JiLWZvcm0tZmllbGQtdGV4dC1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zYmItZm9ybS1maWVsZC1pbnB1dC10ZXh0LXNpemUpO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNiYi1mb3JtLWZpZWxkLXNlbGVjdC1pbmxpbmUtcGFkZGluZy1lbmQpO1xuICB9XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1lbGxpcHNpcyxcbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXBhZ2luYXRvci1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLWNvbG9yKTtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzLWl0ZW0sXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHhzKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXh4cyk7XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1zYmItdHlwby1mb250LWZhbWlseSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItcGFnaW5hdG9yLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1jdXJzb3IpO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLWNvbG9yKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1wYWdpbmF0b3ItYW5pbWF0aW9uLWVhc2luZyk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGgpIHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGUsIG5vbmUpXG4gICAgICB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yLCBub25lKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy1pbmZpbml0eSk7XG4gICAgaW5zZXQ6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldCwgMCk7XG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlciwgaW5zZXQ7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCk7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXNlbGVjdGVkXSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAtLXNiYi1wYWdpbmF0b3ItY29sb3I6IHZhcigtLXNiYi1jb2xvci0zKTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTIpO1xuXG4gICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItY29sb3I6IHZhcigtLXNiYi1jb2xvci0zLW5lZ2F0aXZlKTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLWJvcmRlci1jb2xvci0yLW5lZ2F0aXZlKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICAtLXNiYi1wYWdpbmF0b3ItY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1ib3JkZXItY29sb3ItNSk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xuXG4gICAgJjpub3QoW2RhdGEtc2VsZWN0ZWRdKSB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpO1xuICAgIH1cblxuICAgIDpob3N0KFtuZWdhdGl2ZV0pICYge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zLW5lZ2F0aXZlKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1jb2xvcjogR3JheVRleHQ7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXM7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldDogY2FsYyh2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTJ4KSAqIC0xKTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci10cmFuc2xhdGUteS1jb250ZW50LWhvdmVyOiAje3NiYi5weC10by1yZW0tYnVpbGQoLTEpfTtcblxuICAgICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgLS1zYmItcGFnaW5hdG9yLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMyk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItNCk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtaW5zZXQ6IDA7XG4gICAgLS1zYmItcGFnaW5hdG9yLXRyYW5zbGF0ZS15LWNvbnRlbnQtaG92ZXI6IDA7XG5cbiAgICA6aG9zdChbbmVnYXRpdmVdKSAmIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItNC1uZWdhdGl2ZSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0tbGFiZWwge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZHVyYXRpb24pXG4gICAgdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZWFzaW5nKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLXNiYi1wYWdpbmF0b3ItdHJhbnNsYXRlLXktY29udGVudC1ob3ZlciwgMCkpO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuXG5pbXBvcnQge1xuICBidXR0b25SZXNldFN0eWxlcyxcbiAgZm9yY2VUeXBlLFxuICBpMThuSXRlbXNQZXJQYWdlLFxuICBpMThuUGFnZSxcbiAgbGlzdFJlc2V0U3R5bGVzLFxuICBTYmJFbGVtZW50LFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRm9ybUZpZWxkRWxlbWVudCB9IGZyb20gJy4uLy4uL2Zvcm0tZmllbGQucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vb3B0aW9uLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiU2VsZWN0RWxlbWVudCB9IGZyb20gJy4uLy4uL3NlbGVjdC5wdXJlLnRzJztcbmltcG9ydCB7IFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi9wYWdpbmF0b3ItY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vcGFnaW5hdG9yLnNjc3M/aW5saW5lJztcblxuY29uc3QgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgPSAzO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFnaW5hdG9yIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlBhZ2luYXRvckVsZW1lbnQgZXh0ZW5kcyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXBhZ2luYXRvcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJGb3JtRmllbGRFbGVtZW50LFxuICAgIFNiYlNlbGVjdEVsZW1lbnQsXG4gICAgU2JiT3B0aW9uRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW1xuICAgIGxpc3RSZXNldFN0eWxlcyxcbiAgICBidXR0b25SZXNldFN0eWxlcyxcbiAgICB1bnNhZmVDU1Moc3R5bGUpLFxuICBdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBwYWdlOiAncGFnZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSBhdmFpbGFibGUgYHBhZ2VTaXplYCBjaG9pY2VzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLXNpemUtb3B0aW9ucycsIHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gW107XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIG9mIHRoZSBwcmV2L25leHQgYnV0dG9uczogaWYgYHBhZ2VTaXplT3B0aW9uc2AgaXMgc2V0LFxuICAgKiB0aGUgc2JiLXNlbGVjdCBmb3IgdGhlIHBhZ2VTaXplIGNoYW5nZSB3aWxsIGJlIHBvc2l0aW9uZWQgb3Bwb3NpdGVseSwgd2l0aCB0aGUgcGFnZSBudW1iZXJzIGFsd2F5cyBpbiB0aGUgY2VudGVyLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZXItcG9zaXRpb24nLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBvdmVycmlkZSBhY2Nlc3NvciBwYWdlclBvc2l0aW9uOlxuICAgIHwgJ3N0YXJ0J1xuICAgIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciB0aGUgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBJdGVtcyBwZXIgcGFnZS5gLlxuICAgKiBDYW4gYmUgc2V0IGZvciBjYXNlcyBsaWtlIGEgY2Fyb3VzZWwsIHdoZXJlIGBzbGlkZWAgb3IgYGltYWdlYCBmaXRzIGJldHRlci5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWl0ZW1zLXBlci1wYWdlLWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUl0ZW1zUGVyUGFnZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8qKiBUYWIgbmF2aWdhdGlvbiBjYW4gZm9yY2UgYSByZXJlbmRlciB3aGVuIGVsbGlwc2lzIGVsZW1lbnRzIG5lZWQgdG8gYmUgZGlzcGxheWVkOyB0aGUgZm9jdXMgbXVzdCBzdGF5IG9uIHRoZSBjb3JyZWN0IGVsZW1lbnQuICovXG4gICAgaWYgKHRoaXMuX21hcmtGb3JGb2N1cykge1xuICAgICAgY29uc3QgZm9jdXNFbGVtZW50ID0gdGhpcy5fZ2V0VmlzaWJsZVBhZ2VzKCkuZmluZChcbiAgICAgICAgKGUpID0+IHRoaXMucGFnZUluZGV4ID09PSArZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW5kZXgnKSEsXG4gICAgICApO1xuICAgICAgaWYgKGZvY3VzRWxlbWVudCkge1xuICAgICAgICAoZm9jdXNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xuICAgICAgfVxuICAgICAgdGhpcy5fbWFya0ZvckZvY3VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGRpc3BsYXllZCBwYWdlIGVsZW1lbnRzLiAqL1xuICBwcml2YXRlIF9nZXRWaXNpYmxlUGFnZXMoKTogRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbScpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHBhZ2VzIHNldCBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHJ1bGVzOlxuICAgKiAgLSB0aGUgZmlyc3QgcGFnZSBtdXN0IGFsd2F5cyBiZSB2aXNpYmxlO1xuICAgKiAgLSB0aGUgbGFzdCBwYWdlIG11c3QgYWx3YXlzIGJlIHZpc2libGU7XG4gICAqICAtIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gYE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEYCBvdGhlciBwYWdlcywgZWxsaXBzaXMgYnV0dG9uIG11c3QgYmUgdXNlZC5cbiAgICovXG4gIHByaXZhdGUgX2dldFZpc2libGVQYWdlc0luZGV4KCk6IChudW1iZXIgfCAnZWxsaXBzaXMnKVtdIHtcbiAgICBjb25zdCB0b3RhbFBhZ2VzOiBudW1iZXIgPSB0aGlzLm51bWJlck9mUGFnZXMoKTtcbiAgICBjb25zdCBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgPSB0aGlzLnBhZ2VJbmRleDtcblxuICAgIGlmICh0b3RhbFBhZ2VzIDw9IE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEICsgMikge1xuICAgICAgcmV0dXJuIHRoaXMuX3JhbmdlKHRvdGFsUGFnZXMpO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudFBhZ2VJbmRleCA8IE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEKSB7XG4gICAgICByZXR1cm4gWy4uLnRoaXMuX3JhbmdlKE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEICsgMSksICdlbGxpcHNpcycsIHRvdGFsUGFnZXMgLSAxXTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRQYWdlSW5kZXggPj0gdG90YWxQYWdlcyAtIE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAwLFxuICAgICAgICAnZWxsaXBzaXMnLFxuICAgICAgICAuLi50aGlzLl9yYW5nZShNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCArIDEsIHRvdGFsUGFnZXMgLSAxIC0gTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQpLFxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgMCxcbiAgICAgICAgJ2VsbGlwc2lzJyxcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleCAtIDEsXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXgsXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXggKyAxLFxuICAgICAgICAnZWxsaXBzaXMnLFxuICAgICAgICB0b3RhbFBhZ2VzIC0gMSxcbiAgICAgIF07XG4gICAgfVxuICB9XG5cbiAgLyoqIENyZWF0ZXMgYW4gYXJyYXkgb2YgY29uc2VjdXRpdmUgbnVtYmVycyBnaXZlbiB0aGUgbGVuZ3RoIGFuZCB0aGUgc3RhcnRpbmcgdmFsdWUuICovXG4gIHByaXZhdGUgX3JhbmdlKGxlbmd0aDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciA9IDApOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKF8sIGspID0+IGsgKyBvZmZzZXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25QYWdlTnVtYmVyQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0UGFnZShpbmRleCk7XG5cbiAgICAvLyBXaGVuIHRoZSBwYWdlIGlzIGNoYW5nZWQsIHRoZSBuZXcgY3VycmVudCBwYWdlIG1pZ2h0IGNoYW5nZSBpdHMgcG9zaXRpb24uXG4gICAgLy8gQWZ0ZXIgdGhlIHJlbmRlciwgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgZm9jdXMgc3RheXMgb24gdGhlIHNlbGVjdGVkIHBhZ2UuXG4gICAgdGhpcy5fbWFya0ZvckZvY3VzID0gc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJztcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckl0ZW1QZXJQYWdlVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFnZVNpemVPcHRpb25zICYmIHRoaXMucGFnZVNpemVPcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgID8gaHRtbGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS1zaXplLW9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICA+JHt0aGlzLmFjY2Vzc2liaWxpdHlJdGVtc1BlclBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgID8gdGhpcy5hY2Nlc3NpYmlsaXR5SXRlbXNQZXJQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICA6IGkxOG5JdGVtc1BlclBhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX08L2xhYmVsXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c2JiLWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgICAgICB3aWR0aD1cImNvbGxhcHNlXCJcbiAgICAgICAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZSB8fCBub3RoaW5nfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2JiLXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIHZhbHVlPSR7dGhpcy5wYWdlU2l6ZU9wdGlvbnM/LmZpbmQoKGUpID0+IGUgPT09IHRoaXMucGFnZVNpemUpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZU9wdGlvbnMhWzBdfVxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHsoZTogRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICAodGhpcy5wYWdlU2l6ZSA9ICsoKGUudGFyZ2V0IGFzIFNiYlNlbGVjdEVsZW1lbnQpLnZhbHVlIGFzIHN0cmluZykpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTaXplT3B0aW9ucyEsXG4gICAgICAgICAgICAgICAgICAoZWxlbWVudCkgPT4gaHRtbGA8c2JiLW9wdGlvbiB2YWx1ZT0ke2VsZW1lbnR9PiR7ZWxlbWVudH08L3NiYi1vcHRpb24+YCxcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L3NiYi1zZWxlY3Q+XG4gICAgICAgICAgICA8L3NiYi1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgXG4gICAgICA6IG5vdGhpbmc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQYWdlTnVtYmVycygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8dWwgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlc1wiPlxuICAgICAgICAke3JlcGVhdChcbiAgICAgICAgICB0aGlzLl9nZXRWaXNpYmxlUGFnZXNJbmRleCgpLFxuICAgICAgICAgIChpdGVtOiBudW1iZXIgfCAnZWxsaXBzaXMnKTogVGVtcGxhdGVSZXN1bHQgPT5cbiAgICAgICAgICAgIGl0ZW0gPT09ICdlbGxpcHNpcydcbiAgICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tZWxsaXBzaXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1lbGxpcHNpcy1pdGVtXCI+4oCmPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgIDogaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgP2RhdGEtc2VsZWN0ZWQ9JHt0aGlzLnBhZ2VJbmRleCA9PT0gaXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaW5kZXg9JHtpdGVtfVxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke3RoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaTE4blBhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0gJHtpdGVtICsgMX1cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY3VycmVudD0ke3RoaXMucGFnZUluZGV4ID09PSBpdGVtID8gJ3RydWUnIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9vblBhZ2VOdW1iZXJDbGljayhpdGVtKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0tbGFiZWxcIj4ke2l0ZW0gKyAxfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICl9XG4gICAgICA8L3VsPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyUGFnaW5hdG9yKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGFnaW5hdG9yXCI+XG4gICAgICAgICR7XG4gICAgICAgICAgdGhpcy5wYWdlclBvc2l0aW9uID09PSAnc3RhcnQnXG4gICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclByZXZOZXh0QnV0dG9ucygpfSAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpfWBcbiAgICAgICAgICAgIDogaHRtbGAke3RoaXMuX3JlbmRlckl0ZW1QZXJQYWdlVGVtcGxhdGUoKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3dyYXBwaW5nLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9ICR7dGhpcy5yZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICB9PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXBhZ2luYXRvcic6IFNiYlBhZ2luYXRvckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQzRCQSxJQUFNLDZCQUE2Qjs7OztJQUt0Qiw2QkFBbUI7bUJBQVMsK0JBQStCLFVBQVU7Ozs7Ozs7Ozs7Y0FBckUsNEJBQTRCLFlBQTBDOzs7R0FrQmpFLEtBQUEsb0NBQUEsa0JBQUEsTUFBQSwrQkFBNEIsQ0FBQSxDQUFFO0dBTXFDLEtBQUEsbUNBQUEsa0JBQUEsTUFBQSxrQ0FBQSxHQUFBLGtCQUFBLE1BQUEsNkJBRXZFLE9BQU87R0FRSCxLQUFBLG9EQUFBLGtCQUFBLE1BQUEsZ0NBQUEsR0FBQSxrQkFBQSxNQUFBLDhDQUF5QyxFQUFFO0dBRW5ELEtBQUEsaUJBQWEsa0JBQUEsTUFBQSxpREFBQSxHQUFHO0VBeUoxQjs7O2tDQTVLRyxTQUFTO0lBQUUsV0FBVztJQUFxQixNQUFNO0dBQUssQ0FBRSxDQUFDO2dDQU96RCxTQUFTO0lBQUUsV0FBVztJQUFrQixTQUFTO0dBQUksQ0FBRSxDQUFDO2lEQVF4RCxVQUFTLEdBQ1QsU0FBUyxFQUFFLFdBQVcscUNBQW9DLENBQUUsQ0FBQztHQWY5RCxhQUFBLE1BQUEsTUFBQSw2QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLHFCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWUsTUFBQSxLQUFB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
265
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC1EaXNQSjJRYS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci9wYWdpbmF0b3Iuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gUHJldmVudCBpbmZsdWVuY2UgZnJvbSBjb25zdW1lci1zZXQgbGluZS1oZWlnaHRcbiAgbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG46aG9zdChbbmVnYXRpdmVdKSB7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xufVxuXG46aG9zdChbcGFnZXItcG9zaXRpb249J2VuZCddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1qdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgLS1zYmItcGFnaW5hdG9yLXdyYXBwaW5nLWdyb3VwLXdyYXA6IHdyYXA7XG4gIC0tc2JiLXBhZ2luYXRvci13cmFwOiB3cmFwLXJldmVyc2U7XG59XG5cbi5zYmItcGFnaW5hdG9yLFxuLnNiYi1wYWdpbmF0b3JfX3dyYXBwaW5nLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNngpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXNiYi1wYWdpbmF0b3ItanVzdGlmeS1jb250ZW50LCBzdGFydCk7XG59XG5cbi5zYmItcGFnaW5hdG9yIHtcbiAgZmxleC13cmFwOiB2YXIoLS1zYmItcGFnaW5hdG9yLXdyYXAsIHdyYXApO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItcGFnaW5hdG9yLWhlaWdodCk7XG59XG5cbi5zYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cCB7XG4gIGZsZXgtd3JhcDogdmFyKC0tc2JiLXBhZ2luYXRvci13cmFwcGluZy1ncm91cC13cmFwLCB3cmFwLXJldmVyc2UpO1xufVxuXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS1zaXplLW9wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTJ4KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6IHZhcigtLXNiYi1wYWdpbmF0b3ItY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi1wYWdpbmF0b3ItZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuXG4gIC8vIFJlYXBwbHkgcGFydCBvZiB0aGUgZ2xvYmFsIGZvcm0tZmllbGQgY3NzIHRoYXQgZG9lcyBub3QgcGllcmNlIHRoZSBzaGFkb3cgRE9NLlxuICBzYmItc2VsZWN0IHtcbiAgICBjb2xvcjogdmFyKC0tc2JiLWZvcm0tZmllbGQtdGV4dC1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zYmItZm9ybS1maWVsZC1pbnB1dC10ZXh0LXNpemUpO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNiYi1mb3JtLWZpZWxkLXNlbGVjdC1pbmxpbmUtcGFkZGluZy1lbmQpO1xuICB9XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1lbGxpcHNpcyxcbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXBhZ2luYXRvci1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLWNvbG9yKTtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzLWl0ZW0sXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHhzKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXh4cyk7XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1zYmItdHlwby1mb250LWZhbWlseSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItcGFnaW5hdG9yLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1jdXJzb3IpO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLWNvbG9yKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1wYWdpbmF0b3ItYW5pbWF0aW9uLWVhc2luZyk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGgpIHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGUsIG5vbmUpXG4gICAgICB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yLCBub25lKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy1pbmZpbml0eSk7XG4gICAgaW5zZXQ6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldCwgMCk7XG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlciwgaW5zZXQ7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCk7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXNlbGVjdGVkXSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAtLXNiYi1wYWdpbmF0b3ItY29sb3I6IHZhcigtLXNiYi1jb2xvci0zKTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTIpO1xuXG4gICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItY29sb3I6IHZhcigtLXNiYi1jb2xvci0zLW5lZ2F0aXZlKTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLWJvcmRlci1jb2xvci0yLW5lZ2F0aXZlKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICAtLXNiYi1wYWdpbmF0b3ItY29sb3I6IHZhcigtLXNiYi1jb2xvci01KTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGU6IGRhc2hlZDtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1ib3JkZXItY29sb3ItNSk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xuXG4gICAgJjpub3QoW2RhdGEtc2VsZWN0ZWRdKSB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGg6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpO1xuICAgIH1cblxuICAgIDpob3N0KFtuZWdhdGl2ZV0pICYge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zLW5lZ2F0aXZlKTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1jb2xvcjogR3JheVRleHQ7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXM7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpob3ZlciB7XG4gICAgQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldDogY2FsYyh2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTJ4KSAqIC0xKTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci10cmFuc2xhdGUteS1jb250ZW50LWhvdmVyOiAje3NiYi5weC10by1yZW0tYnVpbGQoLTEpfTtcblxuICAgICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgLS1zYmItcGFnaW5hdG9yLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMyk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItNCk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtaW5zZXQ6IDA7XG4gICAgLS1zYmItcGFnaW5hdG9yLXRyYW5zbGF0ZS15LWNvbnRlbnQtaG92ZXI6IDA7XG5cbiAgICA6aG9zdChbbmVnYXRpdmVdKSAmIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMtbmVnYXRpdmUpO1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItNC1uZWdhdGl2ZSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IEhpZ2hsaWdodCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0tbGFiZWwge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZHVyYXRpb24pXG4gICAgdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZWFzaW5nKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLXNiYi1wYWdpbmF0b3ItdHJhbnNsYXRlLXktY29udGVudC1ob3ZlciwgMCkpO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuXG5pbXBvcnQge1xuICBidXR0b25SZXNldFN0eWxlcyxcbiAgZm9yY2VUeXBlLFxuICBpMThuSXRlbXNQZXJQYWdlLFxuICBpMThuUGFnZSxcbiAgbGlzdFJlc2V0U3R5bGVzLFxuICBTYmJFbGVtZW50LFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRm9ybUZpZWxkRWxlbWVudCB9IGZyb20gJy4uLy4uL2Zvcm0tZmllbGQucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vb3B0aW9uLnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiU2VsZWN0RWxlbWVudCB9IGZyb20gJy4uLy4uL3NlbGVjdC5wdXJlLnRzJztcbmltcG9ydCB7IFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi9wYWdpbmF0b3ItY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vcGFnaW5hdG9yLnNjc3M/aW5saW5lJztcblxuY29uc3QgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgPSAzO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFnaW5hdG9yIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlBhZ2luYXRvckVsZW1lbnQgZXh0ZW5kcyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4oU2JiRWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXBhZ2luYXRvcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtcbiAgICBTYmJGb3JtRmllbGRFbGVtZW50LFxuICAgIFNiYlNlbGVjdEVsZW1lbnQsXG4gICAgU2JiT3B0aW9uRWxlbWVudCxcbiAgXTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW1xuICAgIGxpc3RSZXNldFN0eWxlcyxcbiAgICBidXR0b25SZXNldFN0eWxlcyxcbiAgICB1bnNhZmVDU1Moc3R5bGUpLFxuICBdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBwYWdlOiAncGFnZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSBhdmFpbGFibGUgYHBhZ2VTaXplYCBjaG9pY2VzLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLXNpemUtb3B0aW9ucycsIHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gW107XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIG9mIHRoZSBwcmV2L25leHQgYnV0dG9uczogaWYgYHBhZ2VTaXplT3B0aW9uc2AgaXMgc2V0LFxuICAgKiB0aGUgc2JiLXNlbGVjdCBmb3IgdGhlIHBhZ2VTaXplIGNoYW5nZSB3aWxsIGJlIHBvc2l0aW9uZWQgb3Bwb3NpdGVseSwgd2l0aCB0aGUgcGFnZSBudW1iZXJzIGFsd2F5cyBpbiB0aGUgY2VudGVyLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZXItcG9zaXRpb24nLCByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBvdmVycmlkZSBhY2Nlc3NvciBwYWdlclBvc2l0aW9uOlxuICAgIHwgJ3N0YXJ0J1xuICAgIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3NpYmlsaXR5IGxhYmVsIGZvciB0aGUgaXRlbXMgcGVyIHBhZ2UuIERlZmF1bHRzIHRvIGBJdGVtcyBwZXIgcGFnZS5gLlxuICAgKiBDYW4gYmUgc2V0IGZvciBjYXNlcyBsaWtlIGEgY2Fyb3VzZWwsIHdoZXJlIGBzbGlkZWAgb3IgYGltYWdlYCBmaXRzIGJldHRlci5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWl0ZW1zLXBlci1wYWdlLWxhYmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUl0ZW1zUGVyUGFnZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIF9tYXJrRm9yRm9jdXMgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIC8qKiBUYWIgbmF2aWdhdGlvbiBjYW4gZm9yY2UgYSByZXJlbmRlciB3aGVuIGVsbGlwc2lzIGVsZW1lbnRzIG5lZWQgdG8gYmUgZGlzcGxheWVkOyB0aGUgZm9jdXMgbXVzdCBzdGF5IG9uIHRoZSBjb3JyZWN0IGVsZW1lbnQuICovXG4gICAgaWYgKHRoaXMuX21hcmtGb3JGb2N1cykge1xuICAgICAgY29uc3QgZm9jdXNFbGVtZW50ID0gdGhpcy5fZ2V0VmlzaWJsZVBhZ2VzKCkuZmluZChcbiAgICAgICAgKGUpID0+IHRoaXMucGFnZUluZGV4ID09PSArZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW5kZXgnKSEsXG4gICAgICApO1xuICAgICAgaWYgKGZvY3VzRWxlbWVudCkge1xuICAgICAgICAoZm9jdXNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xuICAgICAgfVxuICAgICAgdGhpcy5fbWFya0ZvckZvY3VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGRpc3BsYXllZCBwYWdlIGVsZW1lbnRzLiAqL1xuICBwcml2YXRlIF9nZXRWaXNpYmxlUGFnZXMoKTogRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbScpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGUgdGhlIHBhZ2VzIHNldCBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHJ1bGVzOlxuICAgKiAgLSB0aGUgZmlyc3QgcGFnZSBtdXN0IGFsd2F5cyBiZSB2aXNpYmxlO1xuICAgKiAgLSB0aGUgbGFzdCBwYWdlIG11c3QgYWx3YXlzIGJlIHZpc2libGU7XG4gICAqICAtIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gYE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEYCBvdGhlciBwYWdlcywgZWxsaXBzaXMgYnV0dG9uIG11c3QgYmUgdXNlZC5cbiAgICovXG4gIHByaXZhdGUgX2dldFZpc2libGVQYWdlc0luZGV4KCk6IChudW1iZXIgfCAnZWxsaXBzaXMnKVtdIHtcbiAgICBjb25zdCB0b3RhbFBhZ2VzOiBudW1iZXIgPSB0aGlzLm51bWJlck9mUGFnZXMoKTtcbiAgICBjb25zdCBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgPSB0aGlzLnBhZ2VJbmRleDtcblxuICAgIGlmICh0b3RhbFBhZ2VzIDw9IE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEICsgMikge1xuICAgICAgcmV0dXJuIHRoaXMuX3JhbmdlKHRvdGFsUGFnZXMpO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudFBhZ2VJbmRleCA8IE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEKSB7XG4gICAgICByZXR1cm4gWy4uLnRoaXMuX3JhbmdlKE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEICsgMSksICdlbGxpcHNpcycsIHRvdGFsUGFnZXMgLSAxXTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRQYWdlSW5kZXggPj0gdG90YWxQYWdlcyAtIE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAwLFxuICAgICAgICAnZWxsaXBzaXMnLFxuICAgICAgICAuLi50aGlzLl9yYW5nZShNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCArIDEsIHRvdGFsUGFnZXMgLSAxIC0gTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQpLFxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgMCxcbiAgICAgICAgJ2VsbGlwc2lzJyxcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleCAtIDEsXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXgsXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXggKyAxLFxuICAgICAgICAnZWxsaXBzaXMnLFxuICAgICAgICB0b3RhbFBhZ2VzIC0gMSxcbiAgICAgIF07XG4gICAgfVxuICB9XG5cbiAgLyoqIENyZWF0ZXMgYW4gYXJyYXkgb2YgY29uc2VjdXRpdmUgbnVtYmVycyBnaXZlbiB0aGUgbGVuZ3RoIGFuZCB0aGUgc3RhcnRpbmcgdmFsdWUuICovXG4gIHByaXZhdGUgX3JhbmdlKGxlbmd0aDogbnVtYmVyLCBvZmZzZXQ6IG51bWJlciA9IDApOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKF8sIGspID0+IGsgKyBvZmZzZXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25QYWdlTnVtYmVyQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0UGFnZShpbmRleCk7XG5cbiAgICAvLyBXaGVuIHRoZSBwYWdlIGlzIGNoYW5nZWQsIHRoZSBuZXcgY3VycmVudCBwYWdlIG1pZ2h0IGNoYW5nZSBpdHMgcG9zaXRpb24uXG4gICAgLy8gQWZ0ZXIgdGhlIHJlbmRlciwgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgZm9jdXMgc3RheXMgb24gdGhlIHNlbGVjdGVkIHBhZ2UuXG4gICAgdGhpcy5fbWFya0ZvckZvY3VzID0gc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJztcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlckl0ZW1QZXJQYWdlVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQgfCB0eXBlb2Ygbm90aGluZyB7XG4gICAgcmV0dXJuIHRoaXMucGFnZVNpemVPcHRpb25zICYmIHRoaXMucGFnZVNpemVPcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgID8gaHRtbGBcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS1zaXplLW9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICA+JHt0aGlzLmFjY2Vzc2liaWxpdHlJdGVtc1BlclBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgID8gdGhpcy5hY2Nlc3NpYmlsaXR5SXRlbXNQZXJQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICA6IGkxOG5JdGVtc1BlclBhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX08L2xhYmVsXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c2JiLWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgICAgICB3aWR0aD1cImNvbGxhcHNlXCJcbiAgICAgICAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZSB8fCBub3RoaW5nfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c2JiLXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIHZhbHVlPSR7dGhpcy5wYWdlU2l6ZU9wdGlvbnM/LmZpbmQoKGUpID0+IGUgPT09IHRoaXMucGFnZVNpemUpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZU9wdGlvbnMhWzBdfVxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9JHsoZTogRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICAodGhpcy5wYWdlU2l6ZSA9ICsoKGUudGFyZ2V0IGFzIFNiYlNlbGVjdEVsZW1lbnQpLnZhbHVlIGFzIHN0cmluZykpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTaXplT3B0aW9ucyEsXG4gICAgICAgICAgICAgICAgICAoZWxlbWVudCkgPT4gaHRtbGA8c2JiLW9wdGlvbiB2YWx1ZT0ke2VsZW1lbnR9PiR7ZWxlbWVudH08L3NiYi1vcHRpb24+YCxcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L3NiYi1zZWxlY3Q+XG4gICAgICAgICAgICA8L3NiYi1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgXG4gICAgICA6IG5vdGhpbmc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQYWdlTnVtYmVycygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8dWwgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlc1wiPlxuICAgICAgICAke3JlcGVhdChcbiAgICAgICAgICB0aGlzLl9nZXRWaXNpYmxlUGFnZXNJbmRleCgpLFxuICAgICAgICAgIChpdGVtOiBudW1iZXIgfCAnZWxsaXBzaXMnKTogVGVtcGxhdGVSZXN1bHQgPT5cbiAgICAgICAgICAgIGl0ZW0gPT09ICdlbGxpcHNpcydcbiAgICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tZWxsaXBzaXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1lbGxpcHNpcy1pdGVtXCI+4oCmPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICBgXG4gICAgICAgICAgICAgIDogaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgP2RhdGEtc2VsZWN0ZWQ9JHt0aGlzLnBhZ2VJbmRleCA9PT0gaXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaW5kZXg9JHtpdGVtfVxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke3RoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaTE4blBhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0gJHtpdGVtICsgMX1cIlxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY3VycmVudD0ke3RoaXMucGFnZUluZGV4ID09PSBpdGVtID8gJ3RydWUnIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9vblBhZ2VOdW1iZXJDbGljayhpdGVtKX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0tbGFiZWxcIj4ke2l0ZW0gKyAxfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICl9XG4gICAgICA8L3VsPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyUGFnaW5hdG9yKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGFnaW5hdG9yXCI+XG4gICAgICAgICR7XG4gICAgICAgICAgdGhpcy5wYWdlclBvc2l0aW9uID09PSAnc3RhcnQnXG4gICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlclByZXZOZXh0QnV0dG9ucygpfSAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpfWBcbiAgICAgICAgICAgIDogaHRtbGAke3RoaXMuX3JlbmRlckl0ZW1QZXJQYWdlVGVtcGxhdGUoKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3dyYXBwaW5nLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuX3JlbmRlclBhZ2VOdW1iZXJzKCl9ICR7dGhpcy5yZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICB9PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXBhZ2luYXRvcic6IFNiYlBhZ2luYXRvckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQzRCQSxJQUFNLDZCQUE2Qjs7OztJQUt0Qiw2QkFBbUI7bUJBQVMsK0JBQStCLFVBQVU7Ozs7Ozs7Ozs7Y0FBckUsNEJBQTRCLFlBQTBDOzs7R0FrQmpFLEtBQUEsb0NBQUEsa0JBQUEsTUFBQSwrQkFBNEIsQ0FBQSxDQUFFO0dBTXFDLEtBQUEsbUNBQUEsa0JBQUEsTUFBQSxrQ0FBQSxHQUFBLGtCQUFBLE1BQUEsNkJBRXZFLE9BQU87R0FRSCxLQUFBLG9EQUFBLGtCQUFBLE1BQUEsZ0NBQUEsR0FBQSxrQkFBQSxNQUFBLDhDQUF5QyxFQUFFO0dBRW5ELEtBQUEsaUJBQWEsa0JBQUEsTUFBQSxpREFBQSxHQUFHO0VBeUoxQjs7O2tDQTVLRyxTQUFTO0lBQUUsV0FBVztJQUFxQixNQUFNO0dBQUssQ0FBRSxDQUFDO2dDQU96RCxTQUFTO0lBQUUsV0FBVztJQUFrQixTQUFTO0dBQUksQ0FBRSxDQUFDO2lEQVF4RCxVQUFTLEdBQ1QsU0FBUyxFQUFFLFdBQVcscUNBQW9DLENBQUUsQ0FBQztHQWY5RCxhQUFBLE1BQUEsTUFBQSw2QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLHFCQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWUsTUFBQSxLQUFB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
@@ -1,6 +1,6 @@
1
- import { n as SbbPaginatorPageEvent, t as SbbPaginatorCommonElementMixin } from "./paginator-common-CRchtcXc.js";
2
- import { t as SbbCompactPaginatorElement } from "./compact-paginator.component-m8MASSB7.js";
3
- import { t as SbbPaginatorElement } from "./paginator.component-B8y5tVCL.js";
1
+ import { n as SbbPaginatorPageEvent, t as SbbPaginatorCommonElementMixin } from "./paginator-common-B9EN1Fjx.js";
2
+ import { t as SbbCompactPaginatorElement } from "./compact-paginator.component-CKHS0U1v.js";
3
+ import { t as SbbPaginatorElement } from "./paginator.component-DisPJ2Qa.js";
4
4
  import "./paginator.pure.js";
5
5
  //#region src/elements/paginator.ts
6
6
  /** @entrypoint */
@@ -1,4 +1,4 @@
1
- import { n as SbbPaginatorPageEvent, t as SbbPaginatorCommonElementMixin } from "./paginator-common-CRchtcXc.js";
2
- import { t as SbbCompactPaginatorElement } from "./compact-paginator.component-m8MASSB7.js";
3
- import { t as SbbPaginatorElement } from "./paginator.component-B8y5tVCL.js";
1
+ import { n as SbbPaginatorPageEvent, t as SbbPaginatorCommonElementMixin } from "./paginator-common-B9EN1Fjx.js";
2
+ import { t as SbbCompactPaginatorElement } from "./compact-paginator.component-CKHS0U1v.js";
3
+ import { t as SbbPaginatorElement } from "./paginator.component-DisPJ2Qa.js";
4
4
  export { SbbCompactPaginatorElement, SbbPaginatorCommonElementMixin, SbbPaginatorElement, SbbPaginatorPageEvent };
@@ -150,4 +150,4 @@ var SbbPanelMixin = (superClass) => {
150
150
  //#endregion
151
151
  export { SbbPanelMixin as t };
152
152
 
153
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtbWl4aW4tRFB5YmU0NUsuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3BhbmVsLWNvbW1vbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9wYW5lbC1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZDogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbm5lci1iYWNrZ3JvdW5kLFxuICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZC1kZWZhdWx0KVxuICApO1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLXdpZHRoOiB2YXIoXG4gICAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlubmVyLWJvcmRlci13aWR0aCxcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aC1kZWZhdWx0KVxuICApO1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgKTtcblxuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFtzaXplPSd4cyddKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1jaGVja2JveC1kaW1lbnNpb246IHZhcigtLXNiYi1jaGVja2JveC1kaW1lbnNpb24teHMpO1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5wdXQtcGFkZGluZzogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nLWJsb2NrLXhzKVxuICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5wdXQtcGFkZGluZy1pbmxpbmUteHMpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1jaGVja2JveC1kaW1lbnNpb246IHZhcigtLXNiYi1jaGVja2JveC1kaW1lbnNpb24tcyk7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctYmxvY2stcylcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctaW5saW5lLXMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1jaGVja2JveC1kaW1lbnNpb246IHZhcigtLXNiYi1jaGVja2JveC1kaW1lbnNpb24tbSk7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctYmxvY2stbSlcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctaW5saW5lLW0pO1xufVxuXG46aG9zdChbY29sb3I9J21pbGsnXSkge1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZDogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbm5lci1iYWNrZ3JvdW5kLFxuICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZC1taWxrKVxuICApO1xufVxuXG46aG9zdChbYm9yZGVybGVzc106bm90KDpzdGF0ZShjaGVja2VkKSkpIHtcbiAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItYm9yZGVybGVzcyk7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoY2hlY2tlZCkpOm5vdCg6ZGlzYWJsZWQsIFtkaXNhYmxlZF0pKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLWNvbG9yLWNoZWNrZWQpO1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLXdpZHRoOiB2YXIoXG4gICAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlubmVyLWJvcmRlci13aWR0aCxcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aC1jaGVja2VkKVxuICApO1xufVxuXG46aG9zdCg6aXMoOmRpc2FibGVkLCBbZGlzYWJsZWRdKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xufVxuXG4uc2JiLXNlbGVjdGlvbi1wYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtY3Vyc29yKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aClcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcik7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5wdXQtcGFkZGluZyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZCk7XG5cbiAgLy8gQWxsb3cgdGhlIHBhbmVsIHRvIGdyb3cgaW4gaGVpZ2h0LCBlLmcuIGluIGZsZXggY29udGV4dDtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIHRyYW5zaXRpb246IHtcbiAgICBkdXJhdGlvbjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIHByb3BlcnR5OiBib3gtc2hhZG93O1xuICB9XG5cbiAgLy8gRm9yIGhpZ2ggY29udHJhc3QgbW9kZSB3ZSBuZWVkIGEgcmVhbCBib3JkZXJcbiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLWNvbG9yKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuICB9XG59XG5cbi5zYmItc2VsZWN0aW9uLXBhbmVsX19iYWRnZSB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuc2xvdFtuYW1lPSdzdWZmaXgnXSB7XG4gIGNvbG9yOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLXN1ZmZpeC1jb2xvcik7XG59XG5cbnNsb3RbbmFtZT0nc3VidGV4dCddIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLXN1YnRleHQtY29sb3IpO1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWNoZWNrYm94LWRpbWVuc2lvbikgKyB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeClcbiAgKTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLXN1YnRleHQpKSkgJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgdHlwZSBMaXRFbGVtZW50LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hHcm91cEVsZW1lbnQgfSBmcm9tICcuLi8uLi9jaGVja2JveC1ncm91cC5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hFbGVtZW50IH0gZnJvbSAnLi4vLi4vY2hlY2tib3gucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IH0gZnJvbSAnLi4vLi4vcmFkaW8tYnV0dG9uLWdyb3VwLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi8uLi9yYWRpby1idXR0b24ucHVyZS50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2ZvcmNlLXR5cGUudHMnO1xuaW1wb3J0IHsgZ2V0T3ZlcnJpZGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2dldC1vdmVycmlkZS50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vcGFuZWwtY29tbW9uLnNjc3M/aW5saW5lJztcblxuaW50ZXJmYWNlIFNiYlBhbmVsV2l0aEdyb3VwIHtcbiAgZ3JvdXA6IFNiYkNoZWNrYm94R3JvdXBFbGVtZW50IHwgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfCBudWxsO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJQYW5lbE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjogJ3doaXRlJyB8ICdtaWxrJztcbiAgcHVibGljIGFjY2Vzc29yIGJvcmRlcmxlc3M6IGJvb2xlYW47XG4gIHB1YmxpYyBhY2Nlc3NvciBleHBhbnNpb25TdGF0ZTogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQ2hlY2tib3hFbGVtZW50WydzaXplJ10gfCBTYmJSYWRpb0J1dHRvbkVsZW1lbnRbJ3NpemUnXTtcbn1cblxuLyoqXG4gKiBNaXhpbiBmb3IgY29tbW9uIHBhbmVsIGJlaGF2aW9yc1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUGFuZWxNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiUGFuZWxXaXRoR3JvdXA+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFuZWxNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlBhbmVsRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBTYmJQYW5lbE1peGluVHlwZSB7XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gICAgLyoqIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBwYW5lbC4gKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjogJ3doaXRlJyB8ICdtaWxrJyA9ICd3aGl0ZSc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdW5zZWxlY3RlZCBwYW5lbCBoYXMgYSBib3JkZXIuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBib3JkZXJsZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogQGludGVybmFsIHVzZWQgZm9yIGFjY2Vzc2liaWxpdHkgbGFiZWwgd2hlbiBpbiBleHBhbnNpb24gcGFuZWwgKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBhY2Nlc3NvciBleHBhbnNpb25TdGF0ZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciB4cyAobGVhbiB0aGVtZSBkZWZhdWx0KSwgcyBvciBtIChzdGFuZGFyZCB0aGVtZSBkZWZhdWx0KS5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gICAgQGdldE92ZXJyaWRlKChwOiBTYmJQYW5lbEVsZW1lbnQsIHYpID0+IHAuZ3JvdXA/LnNpemUgPz8gdilcbiAgICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQ2hlY2tib3hFbGVtZW50WydzaXplJ10gfCBTYmJSYWRpb0J1dHRvbkVsZW1lbnRbJ3NpemUnXSA9IG51bGw7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgICAvLyBUT0RPOiBBbmFseXplIGFuZCBtYXliZSBvcHRpbWl6ZSB3aXRoIGxpdCBjb250ZXh0XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdwYW5lbGNvbm5lY3RlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYlBhbmVsRWxlbWVudCBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlBhbmVsTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUM0QkEsSUFBYSxpQkFDWCxlQUM4QztDQWlDOUMsY0FoQzhCO29CQUFTOzs7Ozs7Ozs7Ozs7O2VBQXhCLHdCQUF3QixZQUFVOzs7eUJBSTlDLFNBQVMsRUFBRSxTQUFTLEtBQUksQ0FBRSxDQUFDOzhCQUczQixVQUFTLEdBQ1QsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0lBQU8sQ0FBRSxDQUFDO2tDQUkxQyxVQUFTLEdBQ1QsU0FBUSxDQUFFO3dCQU1WLFNBQVMsRUFBRSxTQUFTLEtBQUksQ0FBRSxHQUMxQixhQUFhLEdBQW9CLE1BQU0sRUFBRSxPQUFPLFFBQVEsQ0FBQyxDQUFDO0lBaEI5QixhQUFBLE1BQUEsTUFBQSxtQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLFdBQUE7TUFBQSxNQUFBLFFBQUEsSUFBZ0I7TUFBSyxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQUwsUUFBSztNQUFBO0tBQUE7S0FBQSxVQUFBO0lBQUEsR0FBQSxxQkFBQSx3QkFBQTtJQUtsRCxhQUFBLE1BQUEsTUFBQSx3QkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLGdCQUFBO01BQUEsTUFBQSxRQUFBLElBQWdCO01BQVUsTUFBQSxLQUFBLFVBQUE7T0FBQSxJQUFWLGFBQVU7TUFBQTtLQUFBO0tBQUEsVUFBQTtJQUFBLEdBQUEsMEJBQUEsNkJBQUE7SUFLMUIsYUFBQSxNQUFBLE1BQUEsNEJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxvQkFBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFjLE1BQUEsS0FBQSxVQUFBO09BQUEsSUFBZCxpQkFBYztNQUFBO0tBQUE7S0FBQSxVQUFBO0lBQUEsR0FBQSw4QkFBQSxpQ0FBQTtJQU85QixhQUFBLE1BQUEsTUFBQSxrQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLFVBQUE7TUFBQSxNQUFBLFFBQUEsSUFBZ0I7TUFBSSxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQUosT0FBSTtNQUFBO0tBQUE7S0FBQSxVQUFBO0lBQUEsR0FBQSxvQkFBQSx1QkFBQTs7Ozs7Ozs7O0lBcEJOLEtBQUEsU0FBeUIsQ0FBQyxVQUFVLG9CQUFLLENBQUM7R0FBRTtHQUc3QiwwQkFBQSxrQkFBQSxNQUFBLHFCQUEwQyxPQUFPOztHQUFqRCxJQUFnQixRQUFLO0lBQUEsT0FBQSxLQUFBO0dBQUE7R0FBckIsSUFBZ0IsTUFBSyxPQUFBO0lBQUEsS0FBQSwwQkFBQTtHQUFBO0dBS2xELGdDQUFBLGtCQUFBLE1BQUEsd0JBQUEsR0FBQSxrQkFBQSxNQUFBLDBCQUFzQyxLQUFLOztHQUEzQyxJQUFnQixhQUFVO0lBQUEsT0FBQSxLQUFBO0dBQUE7R0FBMUIsSUFBZ0IsV0FBVSxPQUFBO0lBQUEsS0FBQSwrQkFBQTtHQUFBO0dBSzFCLG9DQUFBLGtCQUFBLE1BQUEsNkJBQUEsR0FBQSxrQkFBQSxNQUFBLDhCQUF5QyxFQUFFOztHQUEzQyxJQUFnQixpQkFBYztJQUFBLE9BQUEsS0FBQTtHQUFBO0dBQTlCLElBQWdCLGVBQWMsT0FBQTtJQUFBLEtBQUEsbUNBQUE7R0FBQTtHQU85QiwwQkFBQSxrQkFBQSxNQUFBLGlDQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBbUYsSUFBSTs7OztHQUF2RixJQUFnQixPQUFJO0lBQUEsT0FBQSxLQUFBO0dBQUE7R0FBcEIsSUFBZ0IsS0FBSSxPQUFBO0lBQUEsS0FBQSx5QkFBQTtHQUFBO0dBRUosb0JBQWlCO0lBQy9CLE1BQU0sa0JBQWlCOztJQUl2QixLQUFLLGNBQWMsSUFBSSxNQUFNLGtCQUFrQixFQUFFLFNBQVMsS0FBSSxDQUFFLENBQUM7R0FDbkU7Ozs7OztJQUdLO0FBQ1QifQ==
153
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtbWl4aW4tRGFfY0hRbi0uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3BhbmVsLWNvbW1vbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9wYW5lbC1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZDogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbm5lci1iYWNrZ3JvdW5kLFxuICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZC1kZWZhdWx0KVxuICApO1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLXdpZHRoOiB2YXIoXG4gICAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlubmVyLWJvcmRlci13aWR0aCxcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aC1kZWZhdWx0KVxuICApO1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgKTtcblxuICBkaXNwbGF5OiBibG9jaztcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFtzaXplPSd4cyddKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1jaGVja2JveC1kaW1lbnNpb246IHZhcigtLXNiYi1jaGVja2JveC1kaW1lbnNpb24teHMpO1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5wdXQtcGFkZGluZzogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nLWJsb2NrLXhzKVxuICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5wdXQtcGFkZGluZy1pbmxpbmUteHMpO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1jaGVja2JveC1kaW1lbnNpb246IHZhcigtLXNiYi1jaGVja2JveC1kaW1lbnNpb24tcyk7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctYmxvY2stcylcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctaW5saW5lLXMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1jaGVja2JveC1kaW1lbnNpb246IHZhcigtLXNiYi1jaGVja2JveC1kaW1lbnNpb24tbSk7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbnB1dC1wYWRkaW5nOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctYmxvY2stbSlcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlucHV0LXBhZGRpbmctaW5saW5lLW0pO1xufVxuXG46aG9zdChbY29sb3I9J21pbGsnXSkge1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZDogdmFyKFxuICAgIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1pbm5lci1iYWNrZ3JvdW5kLFxuICAgIHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZC1taWxrKVxuICApO1xufVxuXG46aG9zdChbYm9yZGVybGVzc106bm90KDpzdGF0ZShjaGVja2VkKSkpIHtcbiAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3ItYm9yZGVybGVzcyk7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoY2hlY2tlZCkpOm5vdCg6ZGlzYWJsZWQsIFtkaXNhYmxlZF0pKSB7XG4gIC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLWNvbG9yLWNoZWNrZWQpO1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLXdpZHRoOiB2YXIoXG4gICAgLS1zYmItc2VsZWN0aW9uLXBhbmVsLWlubmVyLWJvcmRlci13aWR0aCxcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aC1jaGVja2VkKVxuICApO1xufVxuXG46aG9zdCg6aXMoOmRpc2FibGVkLCBbZGlzYWJsZWRdKSkge1xuICAtLXNiYi1zZWxlY3Rpb24tcGFuZWwtY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xufVxuXG4uc2JiLXNlbGVjdGlvbi1wYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtY3Vyc29yKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1yYWRpdXMpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci13aWR0aClcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWJvcmRlci1jb2xvcik7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtaW5wdXQtcGFkZGluZyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYmFja2dyb3VuZCk7XG5cbiAgLy8gQWxsb3cgdGhlIHBhbmVsIHRvIGdyb3cgaW4gaGVpZ2h0LCBlLmcuIGluIGZsZXggY29udGV4dDtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIHRyYW5zaXRpb246IHtcbiAgICBkdXJhdGlvbjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIHByb3BlcnR5OiBib3gtc2hhZG93O1xuICB9XG5cbiAgLy8gRm9yIGhpZ2ggY29udHJhc3QgbW9kZSB3ZSBuZWVkIGEgcmVhbCBib3JkZXJcbiAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJvcmRlcjogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLWNvbG9yKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1zZWxlY3Rpb24tcGFuZWwtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuICB9XG59XG5cbi5zYmItc2VsZWN0aW9uLXBhbmVsX19iYWRnZSB7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXNlbGVjdGlvbi1wYW5lbC1ib3JkZXItcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuc2xvdFtuYW1lPSdzdWZmaXgnXSB7XG4gIGNvbG9yOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLXN1ZmZpeC1jb2xvcik7XG59XG5cbnNsb3RbbmFtZT0nc3VidGV4dCddIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLXN1YnRleHQtY29sb3IpO1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyhcbiAgICB2YXIoLS1zYmItc2VsZWN0aW9uLXBhbmVsLWNoZWNrYm94LWRpbWVuc2lvbikgKyB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeClcbiAgKTtcblxuICA6aG9zdCg6bm90KDpzdGF0ZShzbG90dGVkLXN1YnRleHQpKSkgJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgdHlwZSBMaXRFbGVtZW50LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hHcm91cEVsZW1lbnQgfSBmcm9tICcuLi8uLi9jaGVja2JveC1ncm91cC5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hFbGVtZW50IH0gZnJvbSAnLi4vLi4vY2hlY2tib3gucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IH0gZnJvbSAnLi4vLi4vcmFkaW8tYnV0dG9uLWdyb3VwLnB1cmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi8uLi9yYWRpby1idXR0b24ucHVyZS50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2ZvcmNlLXR5cGUudHMnO1xuaW1wb3J0IHsgZ2V0T3ZlcnJpZGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2dldC1vdmVycmlkZS50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vcGFuZWwtY29tbW9uLnNjc3M/aW5saW5lJztcblxuaW50ZXJmYWNlIFNiYlBhbmVsV2l0aEdyb3VwIHtcbiAgZ3JvdXA6IFNiYkNoZWNrYm94R3JvdXBFbGVtZW50IHwgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfCBudWxsO1xufVxuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJQYW5lbE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjogJ3doaXRlJyB8ICdtaWxrJztcbiAgcHVibGljIGFjY2Vzc29yIGJvcmRlcmxlc3M6IGJvb2xlYW47XG4gIHB1YmxpYyBhY2Nlc3NvciBleHBhbnNpb25TdGF0ZTogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQ2hlY2tib3hFbGVtZW50WydzaXplJ10gfCBTYmJSYWRpb0J1dHRvbkVsZW1lbnRbJ3NpemUnXTtcbn1cblxuLyoqXG4gKiBNaXhpbiBmb3IgY29tbW9uIHBhbmVsIGJlaGF2aW9yc1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUGFuZWxNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiUGFuZWxXaXRoR3JvdXA+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFuZWxNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYlBhbmVsRWxlbWVudCBleHRlbmRzIHN1cGVyQ2xhc3MgaW1wbGVtZW50cyBTYmJQYW5lbE1peGluVHlwZSB7XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gICAgLyoqIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBwYW5lbC4gKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBjb2xvcjogJ3doaXRlJyB8ICdtaWxrJyA9ICd3aGl0ZSc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdW5zZWxlY3RlZCBwYW5lbCBoYXMgYSBib3JkZXIuICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBib3JkZXJsZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogQGludGVybmFsIHVzZWQgZm9yIGFjY2Vzc2liaWxpdHkgbGFiZWwgd2hlbiBpbiBleHBhbnNpb24gcGFuZWwgKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBhY2Nlc3NvciBleHBhbnNpb25TdGF0ZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciB4cyAobGVhbiB0aGVtZSBkZWZhdWx0KSwgcyBvciBtIChzdGFuZGFyZCB0aGVtZSBkZWZhdWx0KS5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gICAgQGdldE92ZXJyaWRlKChwOiBTYmJQYW5lbEVsZW1lbnQsIHYpID0+IHAuZ3JvdXA/LnNpemUgPz8gdilcbiAgICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQ2hlY2tib3hFbGVtZW50WydzaXplJ10gfCBTYmJSYWRpb0J1dHRvbkVsZW1lbnRbJ3NpemUnXSA9IG51bGw7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgICAvLyBUT0RPOiBBbmFseXplIGFuZCBtYXliZSBvcHRpbWl6ZSB3aXRoIGxpdCBjb250ZXh0XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdwYW5lbGNvbm5lY3RlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYlBhbmVsRWxlbWVudCBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlBhbmVsTWl4aW5UeXBlPiAmIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUM0QkEsSUFBYSxpQkFDWCxlQUM4QztDQWlDOUMsY0FoQzhCO29CQUFTOzs7Ozs7Ozs7Ozs7O2VBQXhCLHdCQUF3QixZQUFVOzs7eUJBSTlDLFNBQVMsRUFBRSxTQUFTLEtBQUksQ0FBRSxDQUFDOzhCQUczQixVQUFTLEdBQ1QsU0FBUztLQUFFLFNBQVM7S0FBTSxNQUFNO0lBQU8sQ0FBRSxDQUFDO2tDQUkxQyxVQUFTLEdBQ1QsU0FBUSxDQUFFO3dCQU1WLFNBQVMsRUFBRSxTQUFTLEtBQUksQ0FBRSxHQUMxQixhQUFhLEdBQW9CLE1BQU0sRUFBRSxPQUFPLFFBQVEsQ0FBQyxDQUFDO0lBaEI5QixhQUFBLE1BQUEsTUFBQSxtQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLFdBQUE7TUFBQSxNQUFBLFFBQUEsSUFBZ0I7TUFBSyxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQUwsUUFBSztNQUFBO0tBQUE7S0FBQSxVQUFBO0lBQUEsR0FBQSxxQkFBQSx3QkFBQTtJQUtsRCxhQUFBLE1BQUEsTUFBQSx3QkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLGdCQUFBO01BQUEsTUFBQSxRQUFBLElBQWdCO01BQVUsTUFBQSxLQUFBLFVBQUE7T0FBQSxJQUFWLGFBQVU7TUFBQTtLQUFBO0tBQUEsVUFBQTtJQUFBLEdBQUEsMEJBQUEsNkJBQUE7SUFLMUIsYUFBQSxNQUFBLE1BQUEsNEJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxvQkFBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFjLE1BQUEsS0FBQSxVQUFBO09BQUEsSUFBZCxpQkFBYztNQUFBO0tBQUE7S0FBQSxVQUFBO0lBQUEsR0FBQSw4QkFBQSxpQ0FBQTtJQU85QixhQUFBLE1BQUEsTUFBQSxrQkFBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLFVBQUE7TUFBQSxNQUFBLFFBQUEsSUFBZ0I7TUFBSSxNQUFBLEtBQUEsVUFBQTtPQUFBLElBQUosT0FBSTtNQUFBO0tBQUE7S0FBQSxVQUFBO0lBQUEsR0FBQSxvQkFBQSx1QkFBQTs7Ozs7Ozs7O0lBcEJOLEtBQUEsU0FBeUIsQ0FBQyxVQUFVLG9CQUFLLENBQUM7R0FBRTtHQUc3QiwwQkFBQSxrQkFBQSxNQUFBLHFCQUEwQyxPQUFPOztHQUFqRCxJQUFnQixRQUFLO0lBQUEsT0FBQSxLQUFBO0dBQUE7R0FBckIsSUFBZ0IsTUFBSyxPQUFBO0lBQUEsS0FBQSwwQkFBQTtHQUFBO0dBS2xELGdDQUFBLGtCQUFBLE1BQUEsd0JBQUEsR0FBQSxrQkFBQSxNQUFBLDBCQUFzQyxLQUFLOztHQUEzQyxJQUFnQixhQUFVO0lBQUEsT0FBQSxLQUFBO0dBQUE7R0FBMUIsSUFBZ0IsV0FBVSxPQUFBO0lBQUEsS0FBQSwrQkFBQTtHQUFBO0dBSzFCLG9DQUFBLGtCQUFBLE1BQUEsNkJBQUEsR0FBQSxrQkFBQSxNQUFBLDhCQUF5QyxFQUFFOztHQUEzQyxJQUFnQixpQkFBYztJQUFBLE9BQUEsS0FBQTtHQUFBO0dBQTlCLElBQWdCLGVBQWMsT0FBQTtJQUFBLEtBQUEsbUNBQUE7R0FBQTtHQU85QiwwQkFBQSxrQkFBQSxNQUFBLGlDQUFBLEdBQUEsa0JBQUEsTUFBQSxvQkFBbUYsSUFBSTs7OztHQUF2RixJQUFnQixPQUFJO0lBQUEsT0FBQSxLQUFBO0dBQUE7R0FBcEIsSUFBZ0IsS0FBSSxPQUFBO0lBQUEsS0FBQSx5QkFBQTtHQUFBO0dBRUosb0JBQWlCO0lBQy9CLE1BQU0sa0JBQWlCOztJQUl2QixLQUFLLGNBQWMsSUFBSSxNQUFNLGtCQUFrQixFQUFFLFNBQVMsS0FBSSxDQUFFLENBQUM7R0FDbkU7Ozs7OztJQUdLO0FBQ1QifQ==
@@ -1,2 +1,2 @@
1
- import { n as SbbPopoverCloseEvent, r as SbbPopoverElement, t as SbbPopoverBaseElement } from "../popover.component-Ds4fNNsq.js";
1
+ import { n as SbbPopoverCloseEvent, r as SbbPopoverElement, t as SbbPopoverBaseElement } from "../popover.component-DtIhw37L.js";
2
2
  export { SbbPopoverBaseElement, SbbPopoverCloseEvent, SbbPopoverElement };
@@ -575,4 +575,4 @@ var SbbPopoverElement = (() => {
575
575
  //#endregion
576
576
  export { SbbPopoverCloseEvent as n, SbbPopoverElement as r, SbbPopoverBaseElement as t };
577
577
 
578
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQtRHM0Zk5Oc3EuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BvcG92ZXIvcG9wb3Zlci5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLy8gQXMgdGhlIHBvcG92ZXIgaGFzIGFsd2F5cyBhIHdoaXRlIGJhY2tncm91bmQsIHdlIGhhdmUgdG8gZml4IHRoZSBmb2N1cyBvdXRsaW5lIGNvbG9yXG4gIC8vIHRvIGRlZmF1bHQgY29sb3IgZm9yIGNhc2VzIHdoZXJlIHRoZSBwb3BvdmVyIGlzIHVzZWQgaW4gYSBuZWdhdGl2ZSBjb250ZXh0LlxuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRlZmF1bHQpLFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspXG4gICk7XG4gIC0tc2JiLXBvcG92ZXItYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgKTtcbiAgLS1fc2JiLXBvcG92ZXItaW5zZXQ6IDAgYXV0byBhdXRvIDA7XG4gIC0tX3NiYi1wb3BvdmVyLXRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkpO1xuICAtLV9zYmItcG9wb3Zlci1ib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC05LWhhcmQpO1xuXG4gIC8vIFVzZSAhaW1wb3J0YW50IGhlcmUgdG8gbm90IGludGVyZmVyZSB3aXRoIEZpcmVmb3ggZm9jdXMgcmluZyBkZWZpbml0aW9uXG4gIC8vIHdoaWNoIGFwcGVhcnMgaW4gbm9ybWFsaXplIENTUyBvZiBzZXZlcmFsIGZyYW1ld29ya3MuXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1fc2JiLXBvcG92ZXItaW5zZXQ6IDA7XG5cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KDpzdGF0ZShwb3NpdGlvbi1hYm92ZSkpIHtcbiAgLS1fc2JiLXBvcG92ZXItdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGModmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpICogLTEpKTtcbn1cblxuOmhvc3QoOm5vdChbaGlkZS1jbG9zZS1idXR0b25dLCA6c3RhdGUoaG92ZXItdHJpZ2dlcikpKSB7XG4gIC0tc2JiLXBvcG92ZXItbWluLWhlaWdodDogY2FsYyh2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKSArIDIgKiB2YXIoLS1zYmItcG9wb3Zlci1wYWRkaW5nKSk7XG59XG5cbi8vIFBvcG92ZXIgYXJyb3cgYW5kIGFycm93IHRvcCBjb3ZlclxuLnNiYi1wb3BvdmVyOjphZnRlcixcbi5zYmItcG9wb3Zlcl9fY29udGVudDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiB2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKTtcbiAgbGVmdDogdmFyKC0tX3NiYi1wb3BvdmVyLWFycm93LXBvc2l0aW9uLXgsIDApO1xuICBib3R0b206IGNhbGMoMTAwJSAtIGNhbGModmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSkgLyAyKSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1wb3BvdmVyLWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0yeCkgMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4uc2JiLXBvcG92ZXJfX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLV9zYmItcG9wb3Zlci1pbnNldCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiB2YXIoLS1zYmItcG9wb3Zlci16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbn1cblxuLnNiYi1wb3BvdmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHZhcigtLXNiYi1wb3BvdmVyLXBvc2l0aW9uLCBhYnNvbHV0ZSk7XG4gIHRvcDogdmFyKC0tX3NiYi1wb3BvdmVyLXBvc2l0aW9uLXksIDApO1xuICBib3R0b206IHVuc2V0O1xuICBsZWZ0OiB2YXIoLS1fc2JiLXBvcG92ZXItcG9zaXRpb24teCwgMCk7XG4gIHJpZ2h0OiB1bnNldDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBvcG92ZXItYmFja2dyb3VuZCk7XG4gIG1heC13aWR0aDogdmFyKC0tc2JiLXBvcG92ZXItbWF4LXdpZHRoKTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2hhZG93OiB2YXIoLS1fc2JiLXBvcG92ZXItYm94LXNoYWRvdyk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXBvcG92ZXItYm9yZGVyLXJhZGl1cyk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBjbG9zZTtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3BvdmVyIGFycm93XG4gICY6OmFmdGVyIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1fc2JiLXBvcG92ZXItYm94LXNoYWRvdyk7XG5cbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICB9XG5cbiAgICA6aG9zdCg6c3RhdGUocG9zaXRpb24tYWJvdmUpKSAmIHtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gY2FsYyh2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKSAvIDIpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIG91dGxpbmU6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cblxuICAvLyBUcmFuc3BhcmVudCBhcmVhIHdoaWNoIGluY3JlYXNlcyBob3ZlciBhcmVhIGluIG9yZGVyIHRvIG5vdCB0cmlnZ2VyIGNsb3NpbmcgdG9vIGVhcmx5LlxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIDpob3N0KDpzdGF0ZShwb3NpdGlvbi1iZWxvdykpICYge1xuICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC02eCkpO1xuICAgIH1cblxuICAgIDpob3N0KDpzdGF0ZShwb3NpdGlvbi1hYm92ZSkpICYge1xuICAgICAgaW5zZXQtYmxvY2stZW5kOiBjYWxjKC0xICogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNngpKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1wb3BvdmVyX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1wb3BvdmVyLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItcG9wb3Zlci1wYWRkaW5nKSAwO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXBvcG92ZXItcGFkZGluZyk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1wb3BvdmVyLWJhY2tncm91bmQpO1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1wb3BvdmVyLW1pbi1oZWlnaHQpO1xuXG4gIDpob3N0KDpzdGF0ZShwb3NpdGlvbi1hYm92ZSkpICYge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICB0b3A6IGNhbGMoMTAwJSAtIGNhbGModmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSkgLyAyKSk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItcG9wb3Zlcl9fc2Nyb2xsYWJsZS1jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zYmItcG9wb3Zlci1wYWRkaW5nKTtcbiAgbWF4LWhlaWdodDogY2FsYyh2YXIoLS1fc2JiLXBvcG92ZXItbWF4LWhlaWdodCkpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHZhcigtLV9zYmItcG9wb3Zlci10cmFuc2Zvcm0pO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdmFyKC0tX3NiYi1wb3BvdmVyLXRyYW5zZm9ybSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IFNiYlNlY29uZGFyeUJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICBjb21wb3NlZFBhdGhIYXNBdHRyaWJ1dGUsXG4gIGZvcmNlVHlwZSxcbiAgZ2V0RWxlbWVudFBvc2l0aW9uLFxuICBpMThuQ2xvc2VQb3BvdmVyLFxuICBpZFJlZmVyZW5jZSxcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyLFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcG9wb3ZlclJlc2V0U3R5bGVzLFxuICByZWFkQ29uZmlnLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9jdXNUcmFwQ29udHJvbGxlcixcbiAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgc2Nyb2xsYmFyU3R5bGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICDJtXN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BvcG92ZXIuc2Nzcz9pbmxpbmUnO1xuXG5jb25zdCBWRVJUSUNBTF9PRkZTRVQgPSAxNjtcbmNvbnN0IEhPUklaT05UQUxfT0ZGU0VUID0gMzI7XG5cbmNvbnN0IHBvcG92ZXJzUmVmID0gbmV3IFNldDxTYmJQb3BvdmVyQmFzZUVsZW1lbnQ+KCk7XG5jb25zdCBwb2ludGVyQ29hcnNlID0gaXNTZXJ2ZXIgPyBmYWxzZSA6IG1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG5cbmV4cG9ydCBjbGFzcyBTYmJQb3BvdmVyQ2xvc2VFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwdWJsaWMgZ2V0IGNsb3NlVGFyZ2V0KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlVGFyZ2V0O1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICB7IGNsb3NlVGFyZ2V0LCBjYW5jZWxhYmxlIH06IFBpY2s8RXZlbnQsICdjYW5jZWxhYmxlJz4gJiB7IGNsb3NlVGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgfSxcbiAgKSB7XG4gICAgc3VwZXIodHlwZSwgeyBjYW5jZWxhYmxlIH0pO1xuICAgIHRoaXMuX2Nsb3NlVGFyZ2V0ID0gY2xvc2VUYXJnZXQ7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYlBvcG92ZXJCYXNlRWxlbWVudCBleHRlbmRzIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3BvcG92ZXJSZXNldFN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBwb3BvdmVyIG92ZXJsYXkuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gVGhlIGVsZW1lbnQgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgYWZ0ZXIgY2xvc2luZyBiYXNlZCBvbiB3aGVyZSBpbiB0aGUgYmFja2Ryb3AgdGhlIHVzZXIgY2xpY2tzLlxuICBwcml2YXRlIF9uZXh0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfc2tpcENsb3NlRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXI/OiBib29sZWFuO1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudD86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblN0YXRlQ29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfcmVzaXplQ29udHJvbGxlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLFxuICB9KTtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcENvbnRyb2xsZXIgPSBuZXcgU2JiRm9jdXNUcmFwQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfYmx1clRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBjbG9zZVRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJvdGVjdGVkIG92ZXJsYXk/OiBIVE1MRGl2RWxlbWVudDtcblxuICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgb24gdHJpZ2dlciBjbGljay4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuc3RhdGUgIT09ICdjbG9zaW5nJykgfHxcbiAgICAgICF0aGlzLm92ZXJsYXkgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSB0aGUgb3RoZXIgcG9wb3ZlcnNcbiAgICBmb3IgKGNvbnN0IHBvcG92ZXIgb2YgcG9wb3ZlcnNSZWYpIHtcbiAgICAgIGlmIChwb3BvdmVyLnN0YXRlID09PSAnb3BlbmVkJyB8fCBwb3BvdmVyLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgdGhpcy5fYXR0YWNoV2luZG93RXZlbnRzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9za2lwQ2xvc2VGb2N1cyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgcG9wb3Zlci4gKi9cbiAgcHVibGljIGNsb3NlKHRhcmdldD86IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3BvcG92ZXJDbG9zZUVsZW1lbnQgPSB0YXJnZXQ7XG4gICAgaWYgKCF0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCh7IGNsb3NlVGFyZ2V0OiB0YXJnZXQgPz8gbnVsbCB9KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAnZmFsc2UnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgaWYgKHRoaXMub3ZlcmxheSkge1xuICAgICAgdGhpcy5fcmVzaXplQ29udHJvbGxlci51bm9ic2VydmUodGhpcy5vdmVybGF5KTtcbiAgICAgIHRoaXMub3ZlcmxheS5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG5cbiAgICBpZiAoIXRoaXMuX3NraXBDbG9zZUZvY3VzKSB7XG4gICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCB8fCB0aGlzLl90cmlnZ2VyRWxlbWVudDtcblxuICAgICAgLy8gVG8gZW5hYmxlIGZvY3VzaW5nIG90aGVyIGVsZW1lbnQgdGhhbiB0aGUgdHJpZ2dlciwgd2UgbmVlZCB0byBjYWxsIGZvY3VzKCkgYSBzZWNvbmQgdGltZS5cbiAgICAgIGVsZW1lbnRUb0ZvY3VzPy5mb2N1cygpO1xuICAgIH1cblxuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KHsgY2xvc2VUYXJnZXQ6IHRoaXMuX3BvcG92ZXJDbG9zZUVsZW1lbnQgPz8gbnVsbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICB0aGlzLl9zZXRQb3BvdmVyRm9jdXMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLm92ZXJsYXkpIHtcbiAgICAgIHRoaXMuX3Jlc2l6ZUNvbnRyb2xsZXIub2JzZXJ2ZSh0aGlzLm92ZXJsYXkpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgcG9wb3ZlcnNSZWYuYWRkKHRoaXMpO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIC8vIENoZWNraW5nIGZvciBob3ZlclRyaWdnZXIgaXMgYSBzcGVjaWFsIGNhc2UsIGFzIG9ubHkgdGhlIFNiYlBvcG92ZXJFbGVtZW50XG4gICAgLy8gc3ViY2xhc3MgaGFzIHRoaXMgcHJvcGVydHkuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3RyaWdnZXInIHx8IG5hbWUgPT09ICdob3ZlclRyaWdnZXInKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICBwb3BvdmVyc1JlZi5kZWxldGUodGhpcyk7XG4gICAgaWYgKHRoaXMuX2JsdXJUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fYmx1clRpbWVvdXQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+IHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWd1cmVUcmlnZ2VyKHRoaXMuX3RyaWdnZXJFbGVtZW50ID8/IG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZVRyaWdnZXIoX29sZFRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG5cbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnZGlhbG9nJywgdGhpcy5zdGF0ZSk7XG5cbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMucmVnaXN0ZXJUcmlnZ2VyTGlzdGVuZXJzKHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlclRyaWdnZXJMaXN0ZW5lcnMoc2lnbmFsOiBBYm9ydFNpZ25hbCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50IS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7IHNpZ25hbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIC8vIFdpdGhvdXQgY2FwdHVyZSwgb3RoZXIgc2Nyb2xsIGNvbnRleHRzIHdvdWxkIG5vdCBidWJibGUgdG8gdGhpcyBldmVudCBsaXN0ZW5lci5cbiAgICAgIC8vIENhcHR1cmUgYWxsb3dzIHVzIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgY29udGV4dHMgaW4gdGhpcyBET00uXG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRQb3BvdmVyUG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgLy8gQ2xvc2UgcG9wb3ZlciBvbiBiYWNrZHJvcCBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2xvc2UgdGhlIHBvcG92ZXIgb24gY2xpY2sgb2YgYW55IGVsZW1lbnQgdGhhdCBoYXMgdGhlICdzYmItcG9wb3Zlci1jbG9zZScgYXR0cmlidXRlLlxuICBwcml2YXRlIF9jbG9zZU9uU2JiUG9wb3ZlckNsb3NlQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VFbGVtZW50ID0gY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlKGV2ZW50LCAnc2JiLXBvcG92ZXItY2xvc2UnLCB0aGlzKTtcblxuICAgIGlmIChjbG9zZUVsZW1lbnQgJiYgIWNsb3NlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgICB0aGlzLmNsb3NlKGNsb3NlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIHBvcG92ZXIuXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uUG9wb3ZlciA9IGlzRXZlbnRPbkVsZW1lbnQodGhpcy5vdmVybGF5ISwgZXZlbnQpO1xuICB9O1xuXG4gIC8vIENsb3NlIHBvcG92ZXIgb24gYmFja2Ryb3AgY2xpY2suXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCBjb21wb3NlZFBhdGggPSBldmVudC5jb21wb3NlZFBhdGgoKTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25Qb3BvdmVyICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLm92ZXJsYXkhLCBldmVudCkgJiZcbiAgICAgICghdGhpcy50cmlnZ2VyIHx8ICFjb21wb3NlZFBhdGguaW5jbHVkZXModGhpcy50cmlnZ2VyKSlcbiAgICApIHtcbiAgICAgIHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCA9IGNvbXBvc2VkUGF0aFxuICAgICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAgIC5maW5kKChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5tYXRjaGVzKElTX0ZPQ1VTQUJMRV9RVUVSWSkpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gU2V0IHBvcG92ZXIgcG9zaXRpb24gKHgsIHkpIHRvICcwJyBvbmNlIHRoZSBwb3BvdmVyIGlzIGNsb3NlZCBhbmQgdGhlIHRyYW5zaXRpb24gZW5kZWQgdG8gcHJldmVudCB0aGVcbiAgLy8gdmlld3BvcnQgZnJvbSBvdmVyZmxvd2luZy4gQW5kIHNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IG9uY2UgdGhlIHBvcG92ZXIgaXMgb3Blbi5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vblBvcG92ZXJBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJpdmF0ZSBfc2V0UG9wb3ZlckZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvY3VzZWQgPSB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcblxuICAgIGlmICghZm9jdXNlZCAmJiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgdGhpcy5mb2N1cygpO1xuXG4gICAgICAvLyBXaGVuIGEgYmx1ciBvY2N1cnMsIHdlIGtub3cgdGhhdCB0aGUgcG9wb3ZlciBoYXMgdG8gYmUgY2xvc2VkLFxuICAgICAgLy8gYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW50ZXJhY3RpdmUgZWxlbWVudHMgaW5zaWRlIHRoZSBwb3BvdmVyLlxuICAgICAgLy8gV2hlbiBhIHdpbmRvdy90YWIgY2hhbmdlIG9jY3VycywgYSBibHVyIGV2ZW50IGlzIGFsc28gZmlyZWQuIEhvd2V2ZXIsIHdoZW4gdGhlIGN1cnJlbnQgd2luZG93L3RhYlxuICAgICAgLy8gYmVjb21lcyBhY3RpdmUgYWdhaW4sIGl0IGZvY3VzZXMgb25jZSBhZ2FpbiB0aGUgcG9wb3Zlci5cbiAgICAgIC8vIFRoZXJlZm9yZSwgd2UgY2Fubm90IGxpc3RlbiB0byB0aGUgYmx1ciBldmVudCBvbmx5IG9uY2UuXG4gICAgICAvLyBUbyBwcmV2ZW50IGFjY2lkZW50YWxseSBjbG9zaW5nIHRoZSBwb3BvdmVyLCB3ZSBuZWVkIHRvIGNoZWNrIGZvciB0aGUgd2luZG93L3RhYiBzdGF0ZS5cbiAgICAgIC8vIFdlIGNhbiBhY2hpZXZlIHRoaXMgYnkgdXNpbmcgdmlzaWJpbGl0eVN0YXRlLCB3aGljaCBvbmx5IHdvcmtzIHdpdGggc2V0VGltZW91dCgpLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgIChlOiBGb2N1c0V2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5fYmx1clRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgIT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuXG4gICAgICAgICAgICAgIC8vIEluIFNhZmFyaSBvbiBpT1MgaXQgY2FuIG9jY3VyLCB0aGF0IGEgYmx1ciBldmVudCB0cmlnZ2VycyBvbiB0aGUgcG9wb3ZlclxuICAgICAgICAgICAgICAvLyBhbHRob3VnaCB0aGUgZm9jdXMgcmVtYWlucyBpbnNpZGUgdGhlIHBvcG92ZXIuXG4gICAgICAgICAgICAgIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBzdG9wIHRoZSBjbG9zaW5nIGlmIHRoZSByZWxhdGVkVGFyZ2V0IGlzIGNvbnRhaW5lZCBpbiB0aGUgcG9wb3ZlciBvciBpdCBpcyB0aGUgdHJpZ2dlci5cbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpIHx8IGUucmVsYXRlZFRhcmdldCA9PT0gdGhpcy50cmlnZ2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NraXBDbG9zZUZvY3VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRQb3BvdmVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm92ZXJsYXkgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9wb3ZlclBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICAgICAgdGhpcy5vdmVybGF5LFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItcG9wb3Zlcl9fY29udGFpbmVyJykhLFxuICAgICAge1xuICAgICAgICB2ZXJ0aWNhbE9mZnNldDogVkVSVElDQUxfT0ZGU0VULFxuICAgICAgICBob3Jpem9udGFsT2Zmc2V0OiBIT1JJWk9OVEFMX09GRlNFVCxcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgIHJlc3BvbnNpdmVIZWlnaHQ6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgY29uc3QgdmVydGljYWxQb3NpdGlvbiA9IHBvcG92ZXJQb3NpdGlvbi5hbGlnbm1lbnQudmVydGljYWw7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBbJ2Fib3ZlJywgJ2JlbG93J10pIHtcbiAgICAgIHRoaXMudG9nZ2xlU3RhdGUoYHBvc2l0aW9uLSR7cG9zaXRpb259YCwgcG9zaXRpb24gPT09IHZlcnRpY2FsUG9zaXRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IGFycm93WFBvc2l0aW9uID1cbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgcG9wb3ZlclBvc2l0aW9uLmxlZnQgK1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpZW50V2lkdGggLyAyIC1cbiAgICAgIDg7IC8vIGhhbGYgdGhlIHNpemUgb2YgdGhlIHBvcG92ZXIgYXJyb3dcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tX3NiYi1wb3BvdmVyLXBvc2l0aW9uLXgnLCBgJHtwb3BvdmVyUG9zaXRpb24ubGVmdH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tX3NiYi1wb3BvdmVyLXBvc2l0aW9uLXknLCBgJHtwb3BvdmVyUG9zaXRpb24udG9wfXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1fc2JiLXBvcG92ZXItYXJyb3ctcG9zaXRpb24teCcsIGAke2Fycm93WFBvc2l0aW9ufXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1fc2JiLXBvcG92ZXItbWF4LWhlaWdodCcsIHBvcG92ZXJQb3NpdGlvbi5tYXhIZWlnaHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlckNvbnRlbnQoKTogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudChkZXRhaWw/OiB7XG4gICAgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgfSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsb3NlVGFyZ2V0ID0gZGV0YWlsPy5jbG9zZVRhcmdldCA/PyBudWxsO1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtTYmJQb3BvdmVyQ2xvc2VFdmVudH1cbiAgICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gICAgICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJQb3BvdmVyQ2xvc2VFdmVudCgnYmVmb3JlY2xvc2UnLCB7IGNsb3NlVGFyZ2V0LCBjYW5jZWxhYmxlOiB0cnVlIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGlzcGF0Y2hDbG9zZUV2ZW50KGRldGFpbD86IHsgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbCB9KTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2xvc2VUYXJnZXQgPSBkZXRhaWw/LmNsb3NlVGFyZ2V0ID8/IG51bGw7XG4gICAgLyoqXG4gICAgICogQHR5cGUge1NiYlBvcG92ZXJDbG9zZUV2ZW50fVxuICAgICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLlxuICAgICAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgU2JiUG9wb3ZlckNsb3NlRXZlbnQoJ2Nsb3NlJywgeyBjbG9zZVRhcmdldCwgY2FuY2VsYWJsZTogZmFsc2UgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wb3BvdmVyX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vblBvcG92ZXJBbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItcG9wb3ZlclwiXG4gICAgICAgICAgcm9sZT1cInRvb2x0aXBcIlxuICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLm92ZXJsYXkgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5fY2xvc2VPblNiYlBvcG92ZXJDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLXBvcG92ZXJfX2NvbnRlbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJDb250ZW50KCl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gd2l0aGluIGEgcG9wb3Zlci5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IGludG8gdGhlIHBvcG92ZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItcG9wb3Zlci16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJQb3BvdmVyRWxlbWVudCBleHRlbmRzIFNiYlBvcG92ZXJCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItcG9wb3Zlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Njcm9sbGJhclN0eWxlc107XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNsb3NlIGJ1dHRvbiBzaG91bGQgYmUgaGlkZGVuLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGlkZS1jbG9zZS1idXR0b24nLCB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBoaWRlQ2xvc2VCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgYmUgdHJpZ2dlcmVkIG9uIGhvdmVyLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaG92ZXItdHJpZ2dlcicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhvdmVyVHJpZ2dlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSBwb3BvdmVyIGFmdGVyIGEgZ2l2ZW4gZGVsYXkgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBHbG9iYWwgY29uZmlndXJhdGlvbiBpcyB1c2VkIGFzIGRlZmF1bHQsIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ29wZW4tZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBvcGVuRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX29wZW5EZWxheSA9ICt2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IG9wZW5EZWxheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRGVsYXkgPz8gcmVhZENvbmZpZygpLnBvcG92ZXI/Lm9wZW5EZWxheSA/PyAwO1xuICB9XG4gIHByaXZhdGUgX29wZW5EZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2xvc2UgdGhlIHBvcG92ZXIgYWZ0ZXIgYSBnaXZlbiBkZWxheSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY2xvc2UtZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBjbG9zZURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gK3ZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgY2xvc2VEZWxheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZURlbGF5ID8/IHJlYWRDb25maWcoKS5wb3BvdmVyPy5jbG9zZURlbGF5ID8/IDA7XG4gIH1cbiAgcHJpdmF0ZSBfY2xvc2VEZWxheT86IG51bWJlcjtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaG92ZXJUcmlnZ2VyID0gZmFsc2U7XG4gIHByaXZhdGUgX29wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbmZpZ3VyZVRyaWdnZXIob2xkVHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgdHJpZ2dlciBjYW4gYmUgaG92ZXJlZC4gU29tZSBkZXZpY2VzIG1pZ2h0IGludGVycHJldCB0aGUgbWVkaWEgcXVlcnkgKGhvdmVyOiBob3ZlcikgZGlmZmVyZW50bHksXG4gICAgLy8gYW5kIG5vdCByZXNwZWN0IHRoZSBmYWxsYmFjayBtZWNoYW5pc20gb24gdGhlIGNsaWNrLiBUaGVyZWZvcmUsIHRoZSBmb2xsb3dpbmcgaXMgcHJlZmVycmVkIHRvIGlkZW50aWZ5XG4gICAgLy8gYWxsIG5vbi10b3VjaHNjcmVlbiBkZXZpY2VzLlxuICAgIGNvbnN0IGhvdmVyVHJpZ2dlciA9IHRoaXMuaG92ZXJUcmlnZ2VyICYmICFwb2ludGVyQ29hcnNlO1xuXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gb2xkVHJpZ2dlciAmJiBob3ZlclRyaWdnZXIgPT09IHRoaXMuX2hvdmVyVHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9ob3ZlclRyaWdnZXIgIT09IGhvdmVyVHJpZ2dlcikge1xuICAgICAgdGhpcy5faG92ZXJUcmlnZ2VyID0gaG92ZXJUcmlnZ2VyO1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaG92ZXItdHJpZ2dlcicsIHRoaXMuX2hvdmVyVHJpZ2dlcik7XG4gICAgICB0aGlzLl9yZWdpc3Rlck92ZXJsYXlMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBzdXBlci5jb25maWd1cmVUcmlnZ2VyKG9sZFRyaWdnZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJPdmVybGF5TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG5cbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgdGhpcy5vdmVybGF5Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5fb25PdmVybGF5TW91c2VFbnRlcigpLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3ZlcmxheUFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICB9KTtcbiAgICAgIHRoaXMub3ZlcmxheT8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHRoaXMuX29uT3ZlcmxheU1vdXNlTGVhdmUoKSwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX292ZXJsYXlBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlZ2lzdGVyVHJpZ2dlckxpc3RlbmVycyhzaWduYWw6IEFib3J0U2lnbmFsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2hvdmVyVHJpZ2dlciAmJiB0aGlzLnRyaWdnZXIpIHtcbiAgICAgIHRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5fb25UcmlnZ2VyTW91c2VFbnRlciwgeyBzaWduYWwgfSk7XG4gICAgICB0aGlzLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX29uVHJpZ2dlck1vdXNlTGVhdmUsIHsgc2lnbmFsIH0pO1xuICAgICAgdGhpcy50cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2dDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldnQuY29kZSA9PT0gJ1NwYWNlJyB8fCBldnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHNpZ25hbCB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2Vkb3duJyxcbiAgICAgICAgKGV2dDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdpdGhvdXQgdGhpcyBjaGVjaywgTlZEQSBjYW4ndCBvcGVuIHRoZSBwb3BvdmVyIG9uIGtleWJvYXJkIGludGVyYWN0aW9uLlxuICAgICAgICAgIGlmIChpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyKGV2dCkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLnJlZ2lzdGVyVHJpZ2dlckxpc3RlbmVycyhzaWduYWwpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3JlZ2lzdGVyT3ZlcmxheUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9wZW4oKTogdm9pZCB7XG4gICAgc3VwZXIub3BlbigpO1xuXG4gICAgaWYgKHRoaXMuaG92ZXJUcmlnZ2VyICYmIHRoaXMudHJpZ2dlcikge1xuICAgICAgybVzdGF0ZUNvbnRyb2xsZXIodGhpcy50cmlnZ2VyKS5hZGQoJ2ZvcmNlLWhvdmVyJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNsb3NlKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsb3NlKCk7XG5cbiAgICDJtXN0YXRlQ29udHJvbGxlcih0aGlzLnRyaWdnZXIpPy5kZWxldGUoJ2ZvcmNlLWhvdmVyJyk7XG4gIH1cblxuICBwcml2YXRlIF9vblRyaWdnZXJNb3VzZUVudGVyID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2VkJyB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX29wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZSB0cmlnZ2VyIGlzIGZvY3VzZWQgYnkga2V5Ym9hcmQgYW5kIGhvdmVyZWQgd2l0aCB0aGUgbW91c2UsIHRoZSBvdXRsaW5lIHdvdWxkIGJlIHZpc2libGUuXG4gICAgICAgIC8vIFNvIHdlIHJlc2V0IHRoZSBpbnB1dCBtb2RhbGl0eSB0byBoaWRlIHRoZSBvdXRsaW5lLlxuICAgICAgICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IucmVzZXQoKTtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9LCB0aGlzLm9wZW5EZWxheSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uVHJpZ2dlck1vdXNlTGVhdmUgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5jbG9zZURlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25PdmVybGF5TW91c2VFbnRlciA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5jbG9zZVRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk92ZXJsYXlNb3VzZUxlYXZlID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMuY2xvc2VEZWxheSk7XG4gICAgfVxuICB9O1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJDb250ZW50KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAvLyBUT0RPOiByZW1vdmUgY2xvc2UgYnV0dG9uIGZyb20gc2hhZG93IERPTSBhbmQgY3JlYXRlIHNiYi1wb3BvdmVyLWNsb3NlLWJ1dHRvbiBjb21wb25lbnQgbGlrZSBzYmItc2lkZWJhci1jbG9zZS1idXR0b24gQGJyZWFraW5nLWNoYW5nZVxuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VQb3BvdmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLXBvcG92ZXItY2xvc2VcbiAgICAgID48L3NiYi1zZWNvbmRhcnktYnV0dG9uPlxuICAgIGA7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7IXRoaXMuaGlkZUNsb3NlQnV0dG9uICYmICF0aGlzLl9ob3ZlclRyaWdnZXIgPyBjbG9zZUJ1dHRvbiA6IG5vdGhpbmd9XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1wb3BvdmVyX19zY3JvbGxhYmxlLWNvbnRlbnQgc2JiLXNjcm9sbGJhclwiPlxuICAgICAgICA8c2xvdD5ObyBjb250ZW50PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wb3BvdmVyJzogU2JiUG9wb3ZlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUMwQ0EsSUFBTSxrQkFBa0I7QUFDeEIsSUFBTSxvQkFBb0I7QUFFMUIsSUFBTSw4QkFBYyxJQUFJLElBQUc7QUFDM0IsSUFBTSxnQkFBZ0IsV0FBVyxRQUFRLFdBQVcsMEJBQTBCLEVBQUU7QUFFaEYsSUFBYSx1QkFBYixjQUEwQyxNQUFLO0NBRzdDLElBQVcsY0FBVztFQUNwQixPQUFPLEtBQUs7Q0FDZDtDQUVBLFlBQ0UsTUFDQSxFQUFFLGFBQWEsY0FBNkU7RUFFNUYsTUFBTSxNQUFNLEVBQUUsV0FBVSxDQUFFO0VBQzFCLEtBQUssZUFBZTtDQUN0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
578
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQtRHRJaHczN0wuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BvcG92ZXIvcG9wb3Zlci5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLy8gQXMgdGhlIHBvcG92ZXIgaGFzIGFsd2F5cyBhIHdoaXRlIGJhY2tncm91bmQsIHdlIGhhdmUgdG8gZml4IHRoZSBmb2N1cyBvdXRsaW5lIGNvbG9yXG4gIC8vIHRvIGRlZmF1bHQgY29sb3IgZm9yIGNhc2VzIHdoZXJlIHRoZSBwb3BvdmVyIGlzIHVzZWQgaW4gYSBuZWdhdGl2ZSBjb250ZXh0LlxuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRlZmF1bHQpLFxuICAgIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspXG4gICk7XG4gIC0tc2JiLXBvcG92ZXItYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgKTtcbiAgLS1fc2JiLXBvcG92ZXItaW5zZXQ6IDAgYXV0byBhdXRvIDA7XG4gIC0tX3NiYi1wb3BvdmVyLXRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkpO1xuICAtLV9zYmItcG9wb3Zlci1ib3gtc2hhZG93OiB2YXIoLS1zYmItYm94LXNoYWRvdy1sZXZlbC05LWhhcmQpO1xuXG4gIC8vIFVzZSAhaW1wb3J0YW50IGhlcmUgdG8gbm90IGludGVyZmVyZSB3aXRoIEZpcmVmb3ggZm9jdXMgcmluZyBkZWZpbml0aW9uXG4gIC8vIHdoaWNoIGFwcGVhcnMgaW4gbm9ybWFsaXplIENTUyBvZiBzZXZlcmFsIGZyYW1ld29ya3MuXG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1fc2JiLXBvcG92ZXItaW5zZXQ6IDA7XG5cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KDpzdGF0ZShwb3NpdGlvbi1hYm92ZSkpIHtcbiAgLS1fc2JiLXBvcG92ZXItdHJhbnNmb3JtOiB0cmFuc2xhdGVZKGNhbGModmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpICogLTEpKTtcbn1cblxuOmhvc3QoOm5vdChbaGlkZS1jbG9zZS1idXR0b25dLCA6c3RhdGUoaG92ZXItdHJpZ2dlcikpKSB7XG4gIC0tc2JiLXBvcG92ZXItbWluLWhlaWdodDogY2FsYyh2YXIoLS1zYmItc2l6ZS1lbGVtZW50LXhzKSArIDIgKiB2YXIoLS1zYmItcG9wb3Zlci1wYWRkaW5nKSk7XG59XG5cbi8vIFBvcG92ZXIgYXJyb3cgYW5kIGFycm93IHRvcCBjb3ZlclxuLnNiYi1wb3BvdmVyOjphZnRlcixcbi5zYmItcG9wb3Zlcl9fY29udGVudDo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiB2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKTtcbiAgbGVmdDogdmFyKC0tX3NiYi1wb3BvdmVyLWFycm93LXBvc2l0aW9uLXgsIDApO1xuICBib3R0b206IGNhbGMoMTAwJSAtIGNhbGModmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSkgLyAyKSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1wb3BvdmVyLWJhY2tncm91bmQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy0yeCkgMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4uc2JiLXBvcG92ZXJfX2NvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLV9zYmItcG9wb3Zlci1pbnNldCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiB2YXIoLS1zYmItcG9wb3Zlci16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcbn1cblxuLnNiYi1wb3BvdmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHZhcigtLXNiYi1wb3BvdmVyLXBvc2l0aW9uLCBhYnNvbHV0ZSk7XG4gIHRvcDogdmFyKC0tX3NiYi1wb3BvdmVyLXBvc2l0aW9uLXksIDApO1xuICBib3R0b206IHVuc2V0O1xuICBsZWZ0OiB2YXIoLS1fc2JiLXBvcG92ZXItcG9zaXRpb24teCwgMCk7XG4gIHJpZ2h0OiB1bnNldDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBvcG92ZXItYmFja2dyb3VuZCk7XG4gIG1heC13aWR0aDogdmFyKC0tc2JiLXBvcG92ZXItbWF4LXdpZHRoKTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2hhZG93OiB2YXIoLS1fc2JiLXBvcG92ZXItYm94LXNoYWRvdyk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXBvcG92ZXItYm9yZGVyLXJhZGl1cyk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgOmhvc3QoOmZvY3VzLXZpc2libGUpICYge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBvcGVuO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYW5pbWF0aW9uOiB7XG4gICAgICBuYW1lOiBjbG9zZTtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItcG9wb3Zlci1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICAvLyBQb3BvdmVyIGFycm93XG4gICY6OmFmdGVyIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1fc2JiLXBvcG92ZXItYm94LXNoYWRvdyk7XG5cbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgICB9XG5cbiAgICA6aG9zdCg6c3RhdGUocG9zaXRpb24tYWJvdmUpKSAmIHtcbiAgICAgIHRvcDogY2FsYygxMDAlIC0gY2FsYyh2YXIoLS1zYmItcG9wb3Zlci1hcnJvdy1zaXplKSAvIDIpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgIG91dGxpbmU6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cblxuICAvLyBUcmFuc3BhcmVudCBhcmVhIHdoaWNoIGluY3JlYXNlcyBob3ZlciBhcmVhIGluIG9yZGVyIHRvIG5vdCB0cmlnZ2VyIGNsb3NpbmcgdG9vIGVhcmx5LlxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIDpob3N0KDpzdGF0ZShwb3NpdGlvbi1iZWxvdykpICYge1xuICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC02eCkpO1xuICAgIH1cblxuICAgIDpob3N0KDpzdGF0ZShwb3NpdGlvbi1hYm92ZSkpICYge1xuICAgICAgaW5zZXQtYmxvY2stZW5kOiBjYWxjKC0xICogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNngpKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1wb3BvdmVyX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1wb3BvdmVyLWJvcmRlci1yYWRpdXMpO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItcG9wb3Zlci1wYWRkaW5nKSAwO1xuICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXBvcG92ZXItcGFkZGluZyk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1wb3BvdmVyLWJhY2tncm91bmQpO1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi1wb3BvdmVyLW1pbi1oZWlnaHQpO1xuXG4gIDpob3N0KDpzdGF0ZShwb3NpdGlvbi1hYm92ZSkpICYge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICB0b3A6IGNhbGMoMTAwJSAtIGNhbGModmFyKC0tc2JiLXBvcG92ZXItYXJyb3ctc2l6ZSkgLyAyKSk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItcG9wb3Zlcl9fc2Nyb2xsYWJsZS1jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zYmItcG9wb3Zlci1wYWRkaW5nKTtcbiAgbWF4LWhlaWdodDogY2FsYyh2YXIoLS1fc2JiLXBvcG92ZXItbWF4LWhlaWdodCkpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHZhcigtLV9zYmItcG9wb3Zlci10cmFuc2Zvcm0pO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdmFyKC0tX3NiYi1wb3BvdmVyLXRyYW5zZm9ybSk7XG4gIH1cbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IFNiYlNlY29uZGFyeUJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9idXR0b24ucHVyZS50cyc7XG5pbXBvcnQge1xuICBjb21wb3NlZFBhdGhIYXNBdHRyaWJ1dGUsXG4gIGZvcmNlVHlwZSxcbiAgZ2V0RWxlbWVudFBvc2l0aW9uLFxuICBpMThuQ2xvc2VQb3BvdmVyLFxuICBpZFJlZmVyZW5jZSxcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyLFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcG9wb3ZlclJlc2V0U3R5bGVzLFxuICByZWFkQ29uZmlnLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJFc2NhcGFibGVPdmVybGF5Q29udHJvbGxlcixcbiAgU2JiRm9jdXNUcmFwQ29udHJvbGxlcixcbiAgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIFNiYk1lZGlhUXVlcnlQb2ludGVyQ29hcnNlLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgc2Nyb2xsYmFyU3R5bGVzLFxuICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICDJtXN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BvcG92ZXIuc2Nzcz9pbmxpbmUnO1xuXG5jb25zdCBWRVJUSUNBTF9PRkZTRVQgPSAxNjtcbmNvbnN0IEhPUklaT05UQUxfT0ZGU0VUID0gMzI7XG5cbmNvbnN0IHBvcG92ZXJzUmVmID0gbmV3IFNldDxTYmJQb3BvdmVyQmFzZUVsZW1lbnQ+KCk7XG5jb25zdCBwb2ludGVyQ29hcnNlID0gaXNTZXJ2ZXIgPyBmYWxzZSA6IG1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG5cbmV4cG9ydCBjbGFzcyBTYmJQb3BvdmVyQ2xvc2VFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwdWJsaWMgZ2V0IGNsb3NlVGFyZ2V0KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlVGFyZ2V0O1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICB7IGNsb3NlVGFyZ2V0LCBjYW5jZWxhYmxlIH06IFBpY2s8RXZlbnQsICdjYW5jZWxhYmxlJz4gJiB7IGNsb3NlVGFyZ2V0OiBIVE1MRWxlbWVudCB8IG51bGwgfSxcbiAgKSB7XG4gICAgc3VwZXIodHlwZSwgeyBjYW5jZWxhYmxlIH0pO1xuICAgIHRoaXMuX2Nsb3NlVGFyZ2V0ID0gY2xvc2VUYXJnZXQ7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYlBvcG92ZXJCYXNlRWxlbWVudCBleHRlbmRzIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3BvcG92ZXJSZXNldFN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSBwb3BvdmVyIG92ZXJsYXkuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gVGhlIGVsZW1lbnQgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgYWZ0ZXIgY2xvc2luZyBiYXNlZCBvbiB3aGVyZSBpbiB0aGUgYmFja2Ryb3AgdGhlIHVzZXIgY2xpY2tzLlxuICBwcml2YXRlIF9uZXh0Rm9jdXNlZEVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfc2tpcENsb3NlRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPblBvcG92ZXI/OiBib29sZWFuO1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudD86IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckFib3J0Q29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfb3BlblN0YXRlQ29udHJvbGxlcj86IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfcmVzaXplQ29udHJvbGxlciA9IG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLFxuICB9KTtcbiAgcHJpdmF0ZSBfZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIgPSBuZXcgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2ZvY3VzVHJhcENvbnRyb2xsZXIgPSBuZXcgU2JiRm9jdXNUcmFwQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfYmx1clRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBjbG9zZVRpbWVvdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJvdGVjdGVkIG92ZXJsYXk/OiBIVE1MRGl2RWxlbWVudDtcblxuICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgb24gdHJpZ2dlciBjbGljay4gKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgKHRoaXMuc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuc3RhdGUgIT09ICdjbG9zaW5nJykgfHxcbiAgICAgICF0aGlzLm92ZXJsYXkgfHxcbiAgICAgICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDbG9zZSB0aGUgb3RoZXIgcG9wb3ZlcnNcbiAgICBmb3IgKGNvbnN0IHBvcG92ZXIgb2YgcG9wb3ZlcnNSZWYpIHtcbiAgICAgIGlmIChwb3BvdmVyLnN0YXRlID09PSAnb3BlbmVkJyB8fCBwb3BvdmVyLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2hvd1BvcG92ZXI/LigpO1xuICAgIHRoaXMuc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgdGhpcy5fc2V0UG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgdGhpcy5fYXR0YWNoV2luZG93RXZlbnRzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuY29ubmVjdCgpO1xuICAgIHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9za2lwQ2xvc2VGb2N1cyA9IGZhbHNlO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgcG9wb3Zlci4gKi9cbiAgcHVibGljIGNsb3NlKHRhcmdldD86IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuc3RhdGUgIT09ICdvcGVuaW5nJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3BvcG92ZXJDbG9zZUVsZW1lbnQgPSB0YXJnZXQ7XG4gICAgaWYgKCF0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCh7IGNsb3NlVGFyZ2V0OiB0YXJnZXQgPz8gbnVsbCB9KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAnZmFsc2UnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBjbG9zZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1wb3BvdmVyLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgaWYgKHRoaXMub3ZlcmxheSkge1xuICAgICAgdGhpcy5fcmVzaXplQ29udHJvbGxlci51bm9ic2VydmUodGhpcy5vdmVybGF5KTtcbiAgICAgIHRoaXMub3ZlcmxheS5maXJzdEVsZW1lbnRDaGlsZD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG5cbiAgICBpZiAoIXRoaXMuX3NraXBDbG9zZUZvY3VzKSB7XG4gICAgICBjb25zdCBlbGVtZW50VG9Gb2N1cyA9IHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCB8fCB0aGlzLl90cmlnZ2VyRWxlbWVudDtcblxuICAgICAgLy8gVG8gZW5hYmxlIGZvY3VzaW5nIG90aGVyIGVsZW1lbnQgdGhhbiB0aGUgdHJpZ2dlciwgd2UgbmVlZCB0byBjYWxsIGZvY3VzKCkgYSBzZWNvbmQgdGltZS5cbiAgICAgIGVsZW1lbnRUb0ZvY3VzPy5mb2N1cygpO1xuICAgIH1cblxuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX2ZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KHsgY2xvc2VUYXJnZXQ6IHRoaXMuX3BvcG92ZXJDbG9zZUVsZW1lbnQgPz8gbnVsbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICB0aGlzLl9zZXRQb3BvdmVyRm9jdXMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIGlmICh0aGlzLm92ZXJsYXkpIHtcbiAgICAgIHRoaXMuX3Jlc2l6ZUNvbnRyb2xsZXIub2JzZXJ2ZSh0aGlzLm92ZXJsYXkpO1xuICAgIH1cbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgcG9wb3ZlcnNSZWYuYWRkKHRoaXMpO1xuICAgIGlmICh0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIC8vIENoZWNraW5nIGZvciBob3ZlclRyaWdnZXIgaXMgYSBzcGVjaWFsIGNhc2UsIGFzIG9ubHkgdGhlIFNiYlBvcG92ZXJFbGVtZW50XG4gICAgLy8gc3ViY2xhc3MgaGFzIHRoaXMgcHJvcGVydHkuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3RyaWdnZXInIHx8IG5hbWUgPT09ICdob3ZlclRyaWdnZXInKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICBwb3BvdmVyc1JlZi5kZWxldGUodGhpcyk7XG4gICAgaWYgKHRoaXMuX2JsdXJUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fYmx1clRpbWVvdXQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+IHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWd1cmVUcmlnZ2VyKHRoaXMuX3RyaWdnZXJFbGVtZW50ID8/IG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZVRyaWdnZXIoX29sZFRyaWdnZXI6IEhUTUxFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG5cbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnZGlhbG9nJywgdGhpcy5zdGF0ZSk7XG5cbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMucmVnaXN0ZXJUcmlnZ2VyTGlzdGVuZXJzKHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlclRyaWdnZXJMaXN0ZW5lcnMoc2lnbmFsOiBBYm9ydFNpZ25hbCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50IS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7IHNpZ25hbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsICgpID0+IHRoaXMuX3NldFBvcG92ZXJQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIC8vIFdpdGhvdXQgY2FwdHVyZSwgb3RoZXIgc2Nyb2xsIGNvbnRleHRzIHdvdWxkIG5vdCBidWJibGUgdG8gdGhpcyBldmVudCBsaXN0ZW5lci5cbiAgICAgIC8vIENhcHR1cmUgYWxsb3dzIHVzIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgY29udGV4dHMgaW4gdGhpcyBET00uXG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB0aGlzLl9zZXRQb3BvdmVyUG9zaXRpb24oKSwge1xuICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgLy8gQ2xvc2UgcG9wb3ZlciBvbiBiYWNrZHJvcCBjbGlja1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIHRoaXMuX3BvaW50ZXJEb3duTGlzdGVuZXIsIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fb3BlblN0YXRlQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2xvc2UgdGhlIHBvcG92ZXIgb24gY2xpY2sgb2YgYW55IGVsZW1lbnQgdGhhdCBoYXMgdGhlICdzYmItcG9wb3Zlci1jbG9zZScgYXR0cmlidXRlLlxuICBwcml2YXRlIF9jbG9zZU9uU2JiUG9wb3ZlckNsb3NlQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VFbGVtZW50ID0gY29tcG9zZWRQYXRoSGFzQXR0cmlidXRlKGV2ZW50LCAnc2JiLXBvcG92ZXItY2xvc2UnLCB0aGlzKTtcblxuICAgIGlmIChjbG9zZUVsZW1lbnQgJiYgIWNsb3NlRWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgICB0aGlzLmNsb3NlKGNsb3NlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIHBvcG92ZXIuXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uUG9wb3ZlciA9IGlzRXZlbnRPbkVsZW1lbnQodGhpcy5vdmVybGF5ISwgZXZlbnQpO1xuICB9O1xuXG4gIC8vIENsb3NlIHBvcG92ZXIgb24gYmFja2Ryb3AgY2xpY2suXG4gIHByaXZhdGUgX2Nsb3NlT25CYWNrZHJvcENsaWNrID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCBjb21wb3NlZFBhdGggPSBldmVudC5jb21wb3NlZFBhdGgoKTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25Qb3BvdmVyICYmXG4gICAgICAhaXNFdmVudE9uRWxlbWVudCh0aGlzLm92ZXJsYXkhLCBldmVudCkgJiZcbiAgICAgICghdGhpcy50cmlnZ2VyIHx8ICFjb21wb3NlZFBhdGguaW5jbHVkZXModGhpcy50cmlnZ2VyKSlcbiAgICApIHtcbiAgICAgIHRoaXMuX25leHRGb2N1c2VkRWxlbWVudCA9IGNvbXBvc2VkUGF0aFxuICAgICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpXG4gICAgICAgIC5maW5kKChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5tYXRjaGVzKElTX0ZPQ1VTQUJMRV9RVUVSWSkpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2xvc2VUaW1lb3V0KTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH07XG5cbiAgLy8gU2V0IHBvcG92ZXIgcG9zaXRpb24gKHgsIHkpIHRvICcwJyBvbmNlIHRoZSBwb3BvdmVyIGlzIGNsb3NlZCBhbmQgdGhlIHRyYW5zaXRpb24gZW5kZWQgdG8gcHJldmVudCB0aGVcbiAgLy8gdmlld3BvcnQgZnJvbSBvdmVyZmxvd2luZy4gQW5kIHNldCB0aGUgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IG9uY2UgdGhlIHBvcG92ZXIgaXMgb3Blbi5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vblBvcG92ZXJBbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudC5cbiAgcHJpdmF0ZSBfc2V0UG9wb3ZlckZvY3VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvY3VzZWQgPSB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcblxuICAgIGlmICghZm9jdXNlZCAmJiB0aGlzLl9vcGVuU3RhdGVDb250cm9sbGVyKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgICAgdGhpcy5mb2N1cygpO1xuXG4gICAgICAvLyBXaGVuIGEgYmx1ciBvY2N1cnMsIHdlIGtub3cgdGhhdCB0aGUgcG9wb3ZlciBoYXMgdG8gYmUgY2xvc2VkLFxuICAgICAgLy8gYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW50ZXJhY3RpdmUgZWxlbWVudHMgaW5zaWRlIHRoZSBwb3BvdmVyLlxuICAgICAgLy8gV2hlbiBhIHdpbmRvdy90YWIgY2hhbmdlIG9jY3VycywgYSBibHVyIGV2ZW50IGlzIGFsc28gZmlyZWQuIEhvd2V2ZXIsIHdoZW4gdGhlIGN1cnJlbnQgd2luZG93L3RhYlxuICAgICAgLy8gYmVjb21lcyBhY3RpdmUgYWdhaW4sIGl0IGZvY3VzZXMgb25jZSBhZ2FpbiB0aGUgcG9wb3Zlci5cbiAgICAgIC8vIFRoZXJlZm9yZSwgd2UgY2Fubm90IGxpc3RlbiB0byB0aGUgYmx1ciBldmVudCBvbmx5IG9uY2UuXG4gICAgICAvLyBUbyBwcmV2ZW50IGFjY2lkZW50YWxseSBjbG9zaW5nIHRoZSBwb3BvdmVyLCB3ZSBuZWVkIHRvIGNoZWNrIGZvciB0aGUgd2luZG93L3RhYiBzdGF0ZS5cbiAgICAgIC8vIFdlIGNhbiBhY2hpZXZlIHRoaXMgYnkgdXNpbmcgdmlzaWJpbGl0eVN0YXRlLCB3aGljaCBvbmx5IHdvcmtzIHdpdGggc2V0VGltZW91dCgpLlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnYmx1cicsXG4gICAgICAgIChlOiBGb2N1c0V2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5fYmx1clRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgIT09ICdoaWRkZW4nKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuXG4gICAgICAgICAgICAgIC8vIEluIFNhZmFyaSBvbiBpT1MgaXQgY2FuIG9jY3VyLCB0aGF0IGEgYmx1ciBldmVudCB0cmlnZ2VycyBvbiB0aGUgcG9wb3ZlclxuICAgICAgICAgICAgICAvLyBhbHRob3VnaCB0aGUgZm9jdXMgcmVtYWlucyBpbnNpZGUgdGhlIHBvcG92ZXIuXG4gICAgICAgICAgICAgIC8vIFRoZXJlZm9yZSwgd2UgbmVlZCB0byBzdG9wIHRoZSBjbG9zaW5nIGlmIHRoZSByZWxhdGVkVGFyZ2V0IGlzIGNvbnRhaW5lZCBpbiB0aGUgcG9wb3ZlciBvciBpdCBpcyB0aGUgdHJpZ2dlci5cbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpIHx8IGUucmVsYXRlZFRhcmdldCA9PT0gdGhpcy50cmlnZ2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NraXBDbG9zZUZvY3VzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzaWduYWw6IHRoaXMuX29wZW5TdGF0ZUNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRQb3BvdmVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm92ZXJsYXkgfHwgIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9wb3ZlclBvc2l0aW9uID0gZ2V0RWxlbWVudFBvc2l0aW9uKFxuICAgICAgdGhpcy5vdmVybGF5LFxuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQsXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItcG9wb3Zlcl9fY29udGFpbmVyJykhLFxuICAgICAge1xuICAgICAgICB2ZXJ0aWNhbE9mZnNldDogVkVSVElDQUxfT0ZGU0VULFxuICAgICAgICBob3Jpem9udGFsT2Zmc2V0OiBIT1JJWk9OVEFMX09GRlNFVCxcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICAgIHJlc3BvbnNpdmVIZWlnaHQ6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgY29uc3QgdmVydGljYWxQb3NpdGlvbiA9IHBvcG92ZXJQb3NpdGlvbi5hbGlnbm1lbnQudmVydGljYWw7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBbJ2Fib3ZlJywgJ2JlbG93J10pIHtcbiAgICAgIHRoaXMudG9nZ2xlU3RhdGUoYHBvc2l0aW9uLSR7cG9zaXRpb259YCwgcG9zaXRpb24gPT09IHZlcnRpY2FsUG9zaXRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IGFycm93WFBvc2l0aW9uID1cbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgcG9wb3ZlclBvc2l0aW9uLmxlZnQgK1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpZW50V2lkdGggLyAyIC1cbiAgICAgIDg7IC8vIGhhbGYgdGhlIHNpemUgb2YgdGhlIHBvcG92ZXIgYXJyb3dcblxuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tX3NiYi1wb3BvdmVyLXBvc2l0aW9uLXgnLCBgJHtwb3BvdmVyUG9zaXRpb24ubGVmdH1weGApO1xuICAgIHRoaXMuc3R5bGUuc2V0UHJvcGVydHkoJy0tX3NiYi1wb3BvdmVyLXBvc2l0aW9uLXknLCBgJHtwb3BvdmVyUG9zaXRpb24udG9wfXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1fc2JiLXBvcG92ZXItYXJyb3ctcG9zaXRpb24teCcsIGAke2Fycm93WFBvc2l0aW9ufXB4YCk7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1fc2JiLXBvcG92ZXItbWF4LWhlaWdodCcsIHBvcG92ZXJQb3NpdGlvbi5tYXhIZWlnaHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlckNvbnRlbnQoKTogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudChkZXRhaWw/OiB7XG4gICAgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgfSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsb3NlVGFyZ2V0ID0gZGV0YWlsPy5jbG9zZVRhcmdldCA/PyBudWxsO1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtTYmJQb3BvdmVyQ2xvc2VFdmVudH1cbiAgICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gICAgICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJQb3BvdmVyQ2xvc2VFdmVudCgnYmVmb3JlY2xvc2UnLCB7IGNsb3NlVGFyZ2V0LCBjYW5jZWxhYmxlOiB0cnVlIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGlzcGF0Y2hDbG9zZUV2ZW50KGRldGFpbD86IHsgY2xvc2VUYXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbCB9KTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2xvc2VUYXJnZXQgPSBkZXRhaWw/LmNsb3NlVGFyZ2V0ID8/IG51bGw7XG4gICAgLyoqXG4gICAgICogQHR5cGUge1NiYlBvcG92ZXJDbG9zZUV2ZW50fVxuICAgICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLlxuICAgICAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgU2JiUG9wb3ZlckNsb3NlRXZlbnQoJ2Nsb3NlJywgeyBjbG9zZVRhcmdldCwgY2FuY2VsYWJsZTogZmFsc2UgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wb3BvdmVyX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vblBvcG92ZXJBbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItcG9wb3ZlclwiXG4gICAgICAgICAgcm9sZT1cInRvb2x0aXBcIlxuICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLm92ZXJsYXkgPSBlbCBhcyBIVE1MRGl2RWxlbWVudCkpfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5fY2xvc2VPblNiYlBvcG92ZXJDbG9zZUNsaWNrKGV2ZW50KX1cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLXBvcG92ZXJfX2NvbnRlbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJDb250ZW50KCl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gd2l0aGluIGEgcG9wb3Zlci5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IGludG8gdGhlIHBvcG92ZXIuXG4gKiBAY3NzcHJvcCBbLS1zYmItcG9wb3Zlci16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJQb3BvdmVyRWxlbWVudCBleHRlbmRzIFNiYlBvcG92ZXJCYXNlRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItcG9wb3Zlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJTZWNvbmRhcnlCdXR0b25FbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Njcm9sbGJhclN0eWxlc107XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNsb3NlIGJ1dHRvbiBzaG91bGQgYmUgaGlkZGVuLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGlkZS1jbG9zZS1idXR0b24nLCB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBoaWRlQ2xvc2VCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBzaG91bGQgYmUgdHJpZ2dlcmVkIG9uIGhvdmVyLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaG92ZXItdHJpZ2dlcicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGhvdmVyVHJpZ2dlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBPcGVuIHRoZSBwb3BvdmVyIGFmdGVyIGEgZ2l2ZW4gZGVsYXkgaW4gbWlsbGlzZWNvbmRzLlxuICAgKiBHbG9iYWwgY29uZmlndXJhdGlvbiBpcyB1c2VkIGFzIGRlZmF1bHQsIGlmIG5vdCBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ29wZW4tZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBvcGVuRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX29wZW5EZWxheSA9ICt2YWx1ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IG9wZW5EZWxheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRGVsYXkgPz8gcmVhZENvbmZpZygpLnBvcG92ZXI/Lm9wZW5EZWxheSA/PyAwO1xuICB9XG4gIHByaXZhdGUgX29wZW5EZWxheT86IG51bWJlcjtcblxuICAvKipcbiAgICogQ2xvc2UgdGhlIHBvcG92ZXIgYWZ0ZXIgYSBnaXZlbiBkZWxheSBpbiBtaWxsaXNlY29uZHMuXG4gICAqIEdsb2JhbCBjb25maWd1cmF0aW9uIGlzIHVzZWQgYXMgZGVmYXVsdCwgaWYgbm90IHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY2xvc2UtZGVsYXknLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIHNldCBjbG9zZURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9jbG9zZURlbGF5ID0gK3ZhbHVlO1xuICB9XG4gIHB1YmxpYyBnZXQgY2xvc2VEZWxheSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZURlbGF5ID8/IHJlYWRDb25maWcoKS5wb3BvdmVyPy5jbG9zZURlbGF5ID8/IDA7XG4gIH1cbiAgcHJpdmF0ZSBfY2xvc2VEZWxheT86IG51bWJlcjtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaG92ZXJUcmlnZ2VyID0gZmFsc2U7XG4gIHByaXZhdGUgX29wZW5UaW1lb3V0PzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheUFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbmZpZ3VyZVRyaWdnZXIob2xkVHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgd2hldGhlciB0aGUgdHJpZ2dlciBjYW4gYmUgaG92ZXJlZC4gU29tZSBkZXZpY2VzIG1pZ2h0IGludGVycHJldCB0aGUgbWVkaWEgcXVlcnkgKGhvdmVyOiBob3ZlcikgZGlmZmVyZW50bHksXG4gICAgLy8gYW5kIG5vdCByZXNwZWN0IHRoZSBmYWxsYmFjayBtZWNoYW5pc20gb24gdGhlIGNsaWNrLiBUaGVyZWZvcmUsIHRoZSBmb2xsb3dpbmcgaXMgcHJlZmVycmVkIHRvIGlkZW50aWZ5XG4gICAgLy8gYWxsIG5vbi10b3VjaHNjcmVlbiBkZXZpY2VzLlxuICAgIGNvbnN0IGhvdmVyVHJpZ2dlciA9IHRoaXMuaG92ZXJUcmlnZ2VyICYmICFwb2ludGVyQ29hcnNlO1xuXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gb2xkVHJpZ2dlciAmJiBob3ZlclRyaWdnZXIgPT09IHRoaXMuX2hvdmVyVHJpZ2dlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9ob3ZlclRyaWdnZXIgIT09IGhvdmVyVHJpZ2dlcikge1xuICAgICAgdGhpcy5faG92ZXJUcmlnZ2VyID0gaG92ZXJUcmlnZ2VyO1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaG92ZXItdHJpZ2dlcicsIHRoaXMuX2hvdmVyVHJpZ2dlcik7XG4gICAgICB0aGlzLl9yZWdpc3Rlck92ZXJsYXlMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBzdXBlci5jb25maWd1cmVUcmlnZ2VyKG9sZFRyaWdnZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJPdmVybGF5TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG5cbiAgICBpZiAodGhpcy5faG92ZXJUcmlnZ2VyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgdGhpcy5vdmVybGF5Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4gdGhpcy5fb25PdmVybGF5TW91c2VFbnRlcigpLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5fb3ZlcmxheUFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICB9KTtcbiAgICAgIHRoaXMub3ZlcmxheT8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHRoaXMuX29uT3ZlcmxheU1vdXNlTGVhdmUoKSwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX292ZXJsYXlBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlZ2lzdGVyVHJpZ2dlckxpc3RlbmVycyhzaWduYWw6IEFib3J0U2lnbmFsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2hvdmVyVHJpZ2dlciAmJiB0aGlzLnRyaWdnZXIpIHtcbiAgICAgIHRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5fb25UcmlnZ2VyTW91c2VFbnRlciwgeyBzaWduYWwgfSk7XG4gICAgICB0aGlzLnRyaWdnZXIuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuX29uVHJpZ2dlck1vdXNlTGVhdmUsIHsgc2lnbmFsIH0pO1xuICAgICAgdGhpcy50cmlnZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2dDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldnQuY29kZSA9PT0gJ1NwYWNlJyB8fCBldnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IHNpZ25hbCB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMudHJpZ2dlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnbW91c2Vkb3duJyxcbiAgICAgICAgKGV2dDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIC8vIFdpdGhvdXQgdGhpcyBjaGVjaywgTlZEQSBjYW4ndCBvcGVuIHRoZSBwb3BvdmVyIG9uIGtleWJvYXJkIGludGVyYWN0aW9uLlxuICAgICAgICAgIGlmIChpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyKGV2dCkpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgeyBzaWduYWwgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1cGVyLnJlZ2lzdGVyVHJpZ2dlckxpc3RlbmVycyhzaWduYWwpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3JlZ2lzdGVyT3ZlcmxheUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9wZW4oKTogdm9pZCB7XG4gICAgc3VwZXIub3BlbigpO1xuXG4gICAgaWYgKHRoaXMuaG92ZXJUcmlnZ2VyICYmIHRoaXMudHJpZ2dlcikge1xuICAgICAgybVzdGF0ZUNvbnRyb2xsZXIodGhpcy50cmlnZ2VyKS5hZGQoJ2ZvcmNlLWhvdmVyJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNsb3NlKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsb3NlKCk7XG5cbiAgICDJtXN0YXRlQ29udHJvbGxlcih0aGlzLnRyaWdnZXIpPy5kZWxldGUoJ2ZvcmNlLWhvdmVyJyk7XG4gIH1cblxuICBwcml2YXRlIF9vblRyaWdnZXJNb3VzZUVudGVyID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSAnY2xvc2VkJyB8fCB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX29wZW5UaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZSB0cmlnZ2VyIGlzIGZvY3VzZWQgYnkga2V5Ym9hcmQgYW5kIGhvdmVyZWQgd2l0aCB0aGUgbW91c2UsIHRoZSBvdXRsaW5lIHdvdWxkIGJlIHZpc2libGUuXG4gICAgICAgIC8vIFNvIHdlIHJlc2V0IHRoZSBpbnB1dCBtb2RhbGl0eSB0byBoaWRlIHRoZSBvdXRsaW5lLlxuICAgICAgICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IucmVzZXQoKTtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9LCB0aGlzLm9wZW5EZWxheSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX29uVHJpZ2dlck1vdXNlTGVhdmUgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuc3RhdGUgPT09ICdvcGVuZWQnIHx8IHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5jbG9zZURlbGF5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX29wZW5UaW1lb3V0KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfb25PdmVybGF5TW91c2VFbnRlciA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5jbG9zZVRpbWVvdXQpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk92ZXJsYXlNb3VzZUxlYXZlID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlKCksIHRoaXMuY2xvc2VEZWxheSk7XG4gICAgfVxuICB9O1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJDb250ZW50KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAvLyBUT0RPOiByZW1vdmUgY2xvc2UgYnV0dG9uIGZyb20gc2hhZG93IERPTSBhbmQgY3JlYXRlIHNiYi1wb3BvdmVyLWNsb3NlLWJ1dHRvbiBjb21wb25lbnQgbGlrZSBzYmItc2lkZWJhci1jbG9zZS1idXR0b24gQGJyZWFraW5nLWNoYW5nZVxuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VQb3BvdmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLXBvcG92ZXItY2xvc2VcbiAgICAgID48L3NiYi1zZWNvbmRhcnktYnV0dG9uPlxuICAgIGA7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7IXRoaXMuaGlkZUNsb3NlQnV0dG9uICYmICF0aGlzLl9ob3ZlclRyaWdnZXIgPyBjbG9zZUJ1dHRvbiA6IG5vdGhpbmd9XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1wb3BvdmVyX19zY3JvbGxhYmxlLWNvbnRlbnQgc2JiLXNjcm9sbGJhclwiPlxuICAgICAgICA8c2xvdD5ObyBjb250ZW50PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wb3BvdmVyJzogU2JiUG9wb3ZlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUMwQ0EsSUFBTSxrQkFBa0I7QUFDeEIsSUFBTSxvQkFBb0I7QUFFMUIsSUFBTSw4QkFBYyxJQUFJLElBQUc7QUFDM0IsSUFBTSxnQkFBZ0IsV0FBVyxRQUFRLFdBQVcsMEJBQTBCLEVBQUU7QUFFaEYsSUFBYSx1QkFBYixjQUEwQyxNQUFLO0NBRzdDLElBQVcsY0FBVztFQUNwQixPQUFPLEtBQUs7Q0FDZDtDQUVBLFlBQ0UsTUFDQSxFQUFFLGFBQWEsY0FBNkU7RUFFNUYsTUFBTSxNQUFNLEVBQUUsV0FBVSxDQUFFO0VBQzFCLEtBQUssZUFBZTtDQUN0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
@@ -1,4 +1,4 @@
1
- import { n as SbbPopoverCloseEvent, r as SbbPopoverElement, t as SbbPopoverBaseElement } from "./popover.component-Ds4fNNsq.js";
1
+ import { n as SbbPopoverCloseEvent, r as SbbPopoverElement, t as SbbPopoverBaseElement } from "./popover.component-DtIhw37L.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 SbbPopoverCloseEvent, r as SbbPopoverElement, t as SbbPopoverBaseElement } from "./popover.component-Ds4fNNsq.js";
1
+ import { n as SbbPopoverCloseEvent, r as SbbPopoverElement, t as SbbPopoverBaseElement } from "./popover.component-DtIhw37L.js";
2
2
  export { SbbPopoverBaseElement, SbbPopoverCloseEvent, SbbPopoverElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbRadioButtonCommonElementMixin } from "../../radio-button-common-BS05acqM.js";
1
+ import { t as SbbRadioButtonCommonElementMixin } from "../../radio-button-common-BaGYHkpD.js";
2
2
  export { SbbRadioButtonCommonElementMixin };