@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776866482 → 5.0.0-next-dev.1776872994

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 (315) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-gPLexIVc.js → autocomplete-base-element-BmiLbRHZ.js} +1 -1
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/{block-link-common-CiqQc2Rs.js → block-link-common-BiM6tnUZ.js} +1 -1
  7. package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  8. package/{breadcrumb-group.component-Bfm4RZu7.js → breadcrumb-group.component-De3Lu3lx.js} +1 -1
  9. package/breadcrumb.js +1 -1
  10. package/breadcrumb.pure.js +1 -1
  11. package/button/common/button-common.js +1 -1
  12. package/button-common-Cu47yCSS.js +85 -0
  13. package/button.js +1 -1
  14. package/button.pure.js +1 -1
  15. package/calendar/calendar/calendar.component.js +1 -1
  16. package/{calendar.component-ZyfTrKs_.js → calendar.component-nWdtZYqg.js} +1 -1
  17. package/calendar.js +1 -1
  18. package/calendar.pure.js +1 -1
  19. package/card/card-badge/card-badge.component.js +1 -1
  20. package/{card-badge.component-CsEpGTHm.js → card-badge.component-CEqox6TU.js} +1 -1
  21. package/card.js +1 -1
  22. package/card.pure.js +1 -1
  23. package/checkbox/checkbox.component.js +1 -1
  24. package/checkbox/common/checkbox-common.js +1 -1
  25. package/{checkbox-common-Bo4u1RXX.js → checkbox-common-DSmxKbmR.js} +1 -1
  26. package/{checkbox.component-vjqZh2aC.js → checkbox.component-CR2aIgjA.js} +1 -1
  27. package/checkbox.js +2 -2
  28. package/checkbox.pure.js +2 -2
  29. package/chip/chip-group/chip-group.component.js +1 -1
  30. package/{chip-group.component-DPzfaV_H.js → chip-group.component-DbNctvjy.js} +1 -1
  31. package/chip.js +1 -1
  32. package/chip.pure.js +1 -1
  33. package/{compact-paginator.component-DEEhXiMm.js → compact-paginator.component-Dyu9bezr.js} +1 -1
  34. package/core/styles/core.scss +17 -73
  35. package/core/styles/mixins/typo.scss +2 -2
  36. package/core.css +67 -65
  37. package/custom-elements.json +3179 -3179
  38. package/development/autocomplete/autocomplete-base-element.js +1 -1
  39. package/development/autocomplete/autocomplete.component.js +1 -1
  40. package/development/autocomplete-base-element-BC3IUhrb.js +686 -0
  41. package/development/autocomplete.js +1 -1
  42. package/development/autocomplete.pure.js +1 -1
  43. package/development/{block-link-common-B9Vx8CTp.js → block-link-common-qMULXu4g.js} +2 -2
  44. package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
  45. package/development/breadcrumb-group.component-BC1mWiQE.js +193 -0
  46. package/development/breadcrumb.js +1 -1
  47. package/development/breadcrumb.pure.js +1 -1
  48. package/development/button/common/button-common.js +1 -1
  49. package/development/{button-common-jaQVRdwS.js → button-common-ChY47M8t.js} +3 -3
  50. package/development/button.js +1 -1
  51. package/development/button.pure.js +1 -1
  52. package/development/calendar/calendar/calendar.component.js +1 -1
  53. package/development/calendar.component-B5dz7mau.js +1451 -0
  54. package/development/calendar.js +1 -1
  55. package/development/calendar.pure.js +1 -1
  56. package/development/card/card-badge/card-badge.component.js +1 -1
  57. package/development/card-badge.component-CQBLpmpo.js +83 -0
  58. package/development/card.js +1 -1
  59. package/development/card.pure.js +1 -1
  60. package/development/checkbox/checkbox.component.js +1 -1
  61. package/development/checkbox/common/checkbox-common.js +1 -1
  62. package/development/checkbox-common-DOoEKgML.js +84 -0
  63. package/development/{checkbox.component-DgrfkdyZ.js → checkbox.component-DZjhQhbB.js} +2 -2
  64. package/development/checkbox.js +2 -2
  65. package/development/checkbox.pure.js +2 -2
  66. package/development/chip/chip-group/chip-group.component.js +1 -1
  67. package/development/chip-group.component-B4Mjcep2.js +402 -0
  68. package/development/chip.js +1 -1
  69. package/development/chip.pure.js +1 -1
  70. package/development/compact-paginator.component-CRojCci5.js +51 -0
  71. package/development/error.component-TvgLhaZh.js +53 -0
  72. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  73. package/development/expansion-panel-header.component-Ok8Qmq5K.js +82 -0
  74. package/development/expansion-panel.js +1 -1
  75. package/development/expansion-panel.pure.js +1 -1
  76. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  77. package/development/{file-selector-dropzone.component-dyv_u-Ga.js → file-selector-dropzone.component-B1Y5qOjb.js} +2 -2
  78. package/development/file-selector.js +1 -1
  79. package/development/file-selector.pure.js +1 -1
  80. package/development/footer/footer.component.js +1 -1
  81. package/development/footer.component-kFeZqO-Q.js +169 -0
  82. package/development/footer.js +1 -1
  83. package/development/footer.pure.js +1 -1
  84. package/development/form-field/error/error.component.js +1 -1
  85. package/development/form-field/form-field/form-field.component.js +1 -1
  86. package/development/form-field/hint/hint.component.js +1 -1
  87. package/development/form-field.component-CdTnOAi2.js +703 -0
  88. package/development/form-field.js +3 -3
  89. package/development/form-field.pure.js +3 -3
  90. package/development/header/header/header.component.js +1 -1
  91. package/development/header.component-BmZkCs9m.js +335 -0
  92. package/development/header.js +1 -1
  93. package/development/header.pure.js +1 -1
  94. package/development/hint.component-D5rTFJ-O.js +36 -0
  95. package/development/link/common/block-link-common.js +1 -1
  96. package/development/link.js +1 -1
  97. package/development/link.pure.js +1 -1
  98. package/development/message/message.component.js +1 -1
  99. package/development/message.component-Dzah9lXK.js +43 -0
  100. package/development/message.js +1 -1
  101. package/development/message.pure.js +1 -1
  102. package/development/navigation/common/navigation-action-common.js +1 -1
  103. package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
  104. package/development/navigation/navigation-section/navigation-section.component.js +1 -1
  105. package/development/{navigation-action-common-ZBiv0Xiw.js → navigation-action-common-B2soWZWW.js} +2 -2
  106. package/development/{navigation-marker.component-BsfPR_uk.js → navigation-marker.component-BRdbbjF5.js} +2 -2
  107. package/development/{navigation-section.component-BSvxMUxM.js → navigation-section.component-VwCJlOfE.js} +2 -2
  108. package/development/navigation.js +3 -3
  109. package/development/navigation.pure.js +3 -3
  110. package/development/notification/notification.component.js +1 -1
  111. package/development/notification.component-BgF5aGrn.js +271 -0
  112. package/development/notification.js +1 -1
  113. package/development/notification.pure.js +1 -1
  114. package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
  115. package/development/paginator/paginator/paginator.component.js +1 -1
  116. package/development/paginator.component-BlyTYIs0.js +261 -0
  117. package/development/paginator.js +2 -2
  118. package/development/paginator.pure.js +2 -2
  119. package/development/radio-button/common/radio-button-common.js +1 -1
  120. package/development/radio-button/radio-button.component.js +1 -1
  121. package/development/radio-button-common-ZMs5IFm2.js +125 -0
  122. package/development/{radio-button.component-DAgH41z0.js → radio-button.component-DggZ7RZD.js} +2 -2
  123. package/development/radio-button.js +2 -2
  124. package/development/radio-button.pure.js +2 -2
  125. package/development/select/select.component.js +1 -1
  126. package/development/select.component-CZI19HAK.js +804 -0
  127. package/development/select.js +1 -1
  128. package/development/select.pure.js +1 -1
  129. package/development/status/status.component.js +1 -1
  130. package/development/status.component-BtJ8ri61.js +110 -0
  131. package/development/status.js +1 -1
  132. package/development/status.pure.js +1 -1
  133. package/development/step-label.component-Dfx9rLcN.js +126 -0
  134. package/development/stepper/step-label/step-label.component.js +1 -1
  135. package/development/stepper.js +1 -1
  136. package/development/stepper.pure.js +1 -1
  137. package/development/styles-WppEBrlW.js +14 -0
  138. package/development/{tab-label.component-Du1W0dxN.js → tab-label.component-Ggx6qaIk.js} +2 -2
  139. package/development/tabs/common/styles.js +1 -1
  140. package/development/tabs/tab-label/tab-label.component.js +1 -1
  141. package/development/tabs.js +2 -2
  142. package/development/tabs.pure.js +2 -2
  143. package/development/tag/tag/tag.component.js +1 -1
  144. package/development/tag.component-Davxisfj.js +241 -0
  145. package/development/tag.js +1 -1
  146. package/development/tag.pure.js +1 -1
  147. package/development/teaser-hero/teaser-hero.component.js +1 -1
  148. package/development/teaser-hero.component-bp9IsVmY.js +100 -0
  149. package/development/teaser-hero.js +1 -1
  150. package/development/teaser-hero.pure.js +1 -1
  151. package/development/timetable-occupancy/timetable-occupancy.component.js +1 -1
  152. package/development/{timetable-occupancy.component-D6BIvkpY.js → timetable-occupancy.component-B-uVA9KC.js} +2 -2
  153. package/development/timetable-occupancy.js +1 -1
  154. package/development/timetable-occupancy.pure.js +1 -1
  155. package/development/title/title-base.js +1 -1
  156. package/development/title/title.component.js +1 -1
  157. package/development/{title-base-CWLTIRh_.js → title-base-DKVyL7TQ.js} +2 -2
  158. package/development/{title.component-TCKohHBO.js → title.component-BEEzA9cF.js} +2 -2
  159. package/development/title.js +2 -2
  160. package/development/title.pure.js +2 -2
  161. package/development/toast/toast.component.js +1 -1
  162. package/development/{toast.component-CZL72aVO.js → toast.component-1YR4wmm9.js} +2 -2
  163. package/development/toast.js +1 -1
  164. package/development/toast.pure.js +1 -1
  165. package/development/toggle/toggle/toggle.component.js +1 -1
  166. package/development/toggle.component-CQYpVyvs.js +244 -0
  167. package/development/toggle.js +1 -1
  168. package/development/toggle.pure.js +1 -1
  169. package/development/tooltip/tooltip.component.js +1 -1
  170. package/development/tooltip.component-Br7aDPFn.js +369 -0
  171. package/development/tooltip.js +1 -1
  172. package/development/tooltip.pure.js +1 -1
  173. package/development/train/train-wagon/train-wagon.component.js +1 -1
  174. package/development/{train-wagon.component-X0XSMLK_.js → train-wagon.component-B6V4dPKn.js} +2 -2
  175. package/development/train.js +1 -1
  176. package/development/train.pure.js +1 -1
  177. package/{error.component-BLChP2fE.js → error.component-D3JgDJfN.js} +1 -1
  178. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
  179. package/{expansion-panel-header.component-DdRIlyms.js → expansion-panel-header.component-DYvq-uUi.js} +1 -1
  180. package/expansion-panel.js +1 -1
  181. package/expansion-panel.pure.js +1 -1
  182. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +1 -1
  183. package/{file-selector-dropzone.component-Bz3Wpl0X.js → file-selector-dropzone.component-BSF-kegh.js} +1 -1
  184. package/file-selector.js +1 -1
  185. package/file-selector.pure.js +1 -1
  186. package/footer/footer.component.js +1 -1
  187. package/{footer.component-Don15vOd.js → footer.component-CdTEaV6u.js} +1 -1
  188. package/footer.js +1 -1
  189. package/footer.pure.js +1 -1
  190. package/form-field/error/error.component.js +1 -1
  191. package/form-field/form-field/form-field.component.js +1 -1
  192. package/form-field/hint/hint.component.js +1 -1
  193. package/{form-field.component-DbV7fMoe.js → form-field.component-Dtzbp6-e.js} +1 -1
  194. package/form-field.js +3 -3
  195. package/form-field.pure.js +3 -3
  196. package/header/header/header.component.js +1 -1
  197. package/{header.component-D-WVEMFn.js → header.component-DoAFSXgO.js} +1 -1
  198. package/header.js +1 -1
  199. package/header.pure.js +1 -1
  200. package/{hint.component-CaF6CBCN.js → hint.component-BB_h0G6v.js} +1 -1
  201. package/link/common/block-link-common.js +1 -1
  202. package/link.js +1 -1
  203. package/link.pure.js +1 -1
  204. package/message/message.component.js +1 -1
  205. package/message.component-CF-_MD7m.js +26 -0
  206. package/message.js +1 -1
  207. package/message.pure.js +1 -1
  208. package/navigation/common/navigation-action-common.js +1 -1
  209. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  210. package/navigation/navigation-section/navigation-section.component.js +1 -1
  211. package/{navigation-action-common-Dm47M2BG.js → navigation-action-common-D2vwX-oy.js} +1 -1
  212. package/{navigation-marker.component-1VHe19c9.js → navigation-marker.component-BQzC4gn_.js} +1 -1
  213. package/{navigation-section.component-DrnbQAZX.js → navigation-section.component-CR-FanCa.js} +1 -1
  214. package/navigation.js +3 -3
  215. package/navigation.pure.js +3 -3
  216. package/notification/notification.component.js +1 -1
  217. package/{notification.component-IsSZe3Ul.js → notification.component-D9oxjMJs.js} +1 -1
  218. package/notification.js +1 -1
  219. package/notification.pure.js +1 -1
  220. package/off-brand-theme.css +67 -65
  221. package/package.json +2 -2
  222. package/paginator/compact-paginator/compact-paginator.component.js +1 -1
  223. package/paginator/paginator/paginator.component.js +1 -1
  224. package/{paginator.component-BkECB-iV.js → paginator.component-DA_wUypF.js} +1 -1
  225. package/paginator.js +2 -2
  226. package/paginator.pure.js +2 -2
  227. package/radio-button/common/radio-button-common.js +1 -1
  228. package/radio-button/radio-button.component.js +1 -1
  229. package/{radio-button-common-CQyKqDLJ.js → radio-button-common-iNYco_B8.js} +1 -1
  230. package/{radio-button.component-Cenb6FL5.js → radio-button.component-v5czJYC3.js} +1 -1
  231. package/radio-button.js +2 -2
  232. package/radio-button.pure.js +2 -2
  233. package/safety-theme.css +67 -65
  234. package/select/select.component.js +1 -1
  235. package/{select.component-BcDZm7EM.js → select.component-CCFfP21g.js} +1 -1
  236. package/select.js +1 -1
  237. package/select.pure.js +1 -1
  238. package/standard-theme.css +67 -65
  239. package/status/status.component.js +1 -1
  240. package/{status.component-CgMvY4Pe.js → status.component-5SKEusnj.js} +1 -1
  241. package/status.js +1 -1
  242. package/status.pure.js +1 -1
  243. package/step-label.component-DM7lQw8b.js +77 -0
  244. package/stepper/step-label/step-label.component.js +1 -1
  245. package/stepper.js +1 -1
  246. package/stepper.pure.js +1 -1
  247. package/styles-DisU4TWi.js +5 -0
  248. package/{tab-label.component-CH24fqmB.js → tab-label.component-JjktN30A.js} +1 -1
  249. package/tabs/common/styles.js +1 -1
  250. package/tabs/tab-label/tab-label.component.js +1 -1
  251. package/tabs.js +2 -2
  252. package/tabs.pure.js +2 -2
  253. package/tag/tag/tag.component.js +1 -1
  254. package/{tag.component-B7YExnbA.js → tag.component-BGYVbfUx.js} +1 -1
  255. package/tag.js +1 -1
  256. package/tag.pure.js +1 -1
  257. package/teaser-hero/teaser-hero.component.js +1 -1
  258. package/{teaser-hero.component-BUhWjc2i.js → teaser-hero.component-By1HInfz.js} +1 -1
  259. package/teaser-hero.js +1 -1
  260. package/teaser-hero.pure.js +1 -1
  261. package/timetable-occupancy/timetable-occupancy.component.js +1 -1
  262. package/{timetable-occupancy.component-CLpJ-rjI.js → timetable-occupancy.component-Dq9RM6qS.js} +1 -1
  263. package/timetable-occupancy.js +1 -1
  264. package/timetable-occupancy.pure.js +1 -1
  265. package/title/title-base.js +1 -1
  266. package/title/title.component.js +1 -1
  267. package/{title-base-HD0z6npS.js → title-base-B43-Q_7r.js} +1 -1
  268. package/{title.component-CjDkG7gT.js → title.component-DXJHJ6p6.js} +1 -1
  269. package/title.js +2 -2
  270. package/title.pure.js +2 -2
  271. package/toast/toast.component.js +1 -1
  272. package/{toast.component-DzsaWxPV.js → toast.component-D53COYeM.js} +1 -1
  273. package/toast.js +1 -1
  274. package/toast.pure.js +1 -1
  275. package/toggle/toggle/toggle.component.js +1 -1
  276. package/{toggle.component-D7X0E_hM.js → toggle.component-BGgAnHau.js} +1 -1
  277. package/toggle.js +1 -1
  278. package/toggle.pure.js +1 -1
  279. package/tooltip/tooltip.component.js +1 -1
  280. package/{tooltip.component-BCRFxBuV.js → tooltip.component-Bp-8vRoA.js} +1 -1
  281. package/tooltip.js +1 -1
  282. package/tooltip.pure.js +1 -1
  283. package/train/train-wagon/train-wagon.component.js +1 -1
  284. package/{train-wagon.component-CZiVPOaZ.js → train-wagon.component-LwKwwuta.js} +1 -1
  285. package/train.js +1 -1
  286. package/train.pure.js +1 -1
  287. package/button-common-C3wYY-UK.js +0 -85
  288. package/development/autocomplete-base-element-8hV4-ys6.js +0 -686
  289. package/development/breadcrumb-group.component-DP9X9qV1.js +0 -193
  290. package/development/calendar.component-C2WJuFrr.js +0 -1451
  291. package/development/card-badge.component-Be4gXazr.js +0 -83
  292. package/development/checkbox-common-DpE48IrV.js +0 -84
  293. package/development/chip-group.component-CxM8l839.js +0 -402
  294. package/development/compact-paginator.component-DiMeNNTc.js +0 -51
  295. package/development/error.component-C8JQQqSB.js +0 -53
  296. package/development/expansion-panel-header.component-CWojFAB-.js +0 -82
  297. package/development/footer.component-Dbc5xFqr.js +0 -169
  298. package/development/form-field.component-M0wf8ZR8.js +0 -703
  299. package/development/header.component-B2T2pmHs.js +0 -335
  300. package/development/hint.component-hKw1TLvO.js +0 -36
  301. package/development/message.component-CrXtMprr.js +0 -43
  302. package/development/notification.component-CKyNdgbx.js +0 -271
  303. package/development/paginator.component-Cqm7MuRD.js +0 -261
  304. package/development/radio-button-common-u7NYOI2p.js +0 -125
  305. package/development/select.component-Ibby7Q-L.js +0 -804
  306. package/development/status.component-p-egQ_U4.js +0 -110
  307. package/development/step-label.component-BTXuaONx.js +0 -126
  308. package/development/styles-D_8dMc_0.js +0 -14
  309. package/development/tag.component-CWL9jJTW.js +0 -241
  310. package/development/teaser-hero.component-De621iKn.js +0 -100
  311. package/development/toggle.component-BeHHTgRh.js +0 -244
  312. package/development/tooltip.component-BV0yBh9f.js +0 -369
  313. package/message.component-DgTPvDym.js +0 -26
  314. package/step-label.component-CbtQ7MvH.js +0 -77
  315. package/styles-DMLyYaea.js +0 -5
@@ -1,261 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, nothing, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbElement, boxSizingStyles, forceType, i18nItemsPerPage, i18nPage, sbbInputModalityDetector } from "./core.js";
5
- import { SbbPaginatorCommonElementMixin } from "./paginator/common/paginator-common.js";
6
- import { repeat } from "lit/directives/repeat.js";
7
- import { SbbFormFieldElement } from "./form-field.pure.js";
8
- import { SbbOptionElement } from "./option.pure.js";
9
- import { SbbSelectElement } from "./select.pure.js";
10
- //#region src/elements/paginator/paginator/paginator.scss?inline
11
- var paginator_default = ":host {\n --sbb-paginator-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n display: block;\n}\n\n:host([size=s]) {\n --sbb-paginator-height: var(--sbb-size-element-xs);\n}\n\n:host([size=m]) {\n --sbb-paginator-height: var(--sbb-size-element-m);\n}\n\n:host([negative]) {\n --sbb-paginator-page-color: var(--sbb-color-5);\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n}\n\n:host([pager-position=end]) {\n --sbb-paginator-justify-content: end;\n --sbb-paginator-wrapping-group-wrap: wrap;\n --sbb-paginator-wrap: wrap-reverse;\n}\n\n.sbb-paginator,\n.sbb-paginator__wrapping-group {\n display: flex;\n gap: var(--sbb-spacing-fixed-3x) var(--sbb-spacing-fixed-6x);\n justify-content: var(--sbb-paginator-justify-content, start);\n}\n\n.sbb-paginator {\n flex-wrap: var(--sbb-paginator-wrap, wrap);\n min-height: var(--sbb-paginator-height);\n}\n\n.sbb-paginator__wrapping-group {\n flex-wrap: var(--sbb-paginator-wrapping-group-wrap, wrap-reverse);\n}\n\n.sbb-paginator__page-size-options {\n display: flex;\n align-items: center;\n gap: var(--sbb-spacing-fixed-2x);\n white-space: nowrap;\n color: var(--sbb-paginator-page-color);\n font-size: var(--sbb-paginator-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n}\n.sbb-paginator__page-size-options sbb-select {\n color: var(--sbb-form-field-text-color);\n font-size: var(--sbb-form-field-input-text-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n padding-inline-end: var(--sbb-form-field-select-inline-padding-end);\n}\n\n.sbb-paginator__pages {\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--sbb-spacing-fixed-1x);\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n\n.sbb-paginator__page--ellipsis,\n.sbb-paginator__page--number {\n position: relative;\n font-size: var(--sbb-paginator-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n color: var(--sbb-paginator-page-color);\n}\n\n.sbb-paginator__page--ellipsis-item,\n.sbb-paginator__page--number-item {\n display: flex;\n justify-content: center;\n align-items: center;\n width: var(--sbb-size-element-xxs);\n height: var(--sbb-size-element-xxs);\n}\n\n.sbb-paginator__page--number-item {\n appearance: none;\n box-sizing: border-box;\n margin: 0;\n outline: none;\n border: none;\n border-radius: 0;\n padding: 0;\n background: none;\n -webkit-tap-highlight-color: transparent;\n color: inherit;\n --sbb-text-font-size: var(--sbb-paginator-font-size);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n position: relative;\n cursor: var(--sbb-paginator-page-cursor);\n outline: none !important;\n color: var(--sbb-paginator-page-color);\n transition: color var(--sbb-paginator-animation-duration) var(--sbb-paginator-animation-easing);\n}\n.sbb-paginator__page--number-item::before {\n content: \"\";\n position: absolute;\n background-color: var(--sbb-paginator-page-background-color, transparent);\n border: var(--sbb-paginator-page-border-width) var(--sbb-paginator-page-border-style, none) var(--sbb-paginator-page-border-color, none);\n border-radius: var(--sbb-border-radius-infinity);\n inset: var(--sbb-paginator-page-inset, 0);\n transition-property: background-color, border, inset;\n transition-duration: var(--sbb-paginator-animation-duration);\n transition-timing-function: var(--sbb-paginator-animation-easing);\n}\n.sbb-paginator__page--number-item:focus-visible::before {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n outline-offset: var(--sbb-border-width-2x);\n}\n.sbb-paginator__page--number-item[data-selected] {\n font-weight: bold;\n --sbb-paginator-page-color: var(--sbb-color-3);\n --sbb-paginator-page-border-width: var(--sbb-border-width-2x);\n --sbb-paginator-page-border-style: solid;\n --sbb-paginator-page-border-color: var(--sbb-border-color-2);\n}\n:host([negative]) .sbb-paginator__page--number-item[data-selected] {\n --sbb-paginator-page-color: var(--sbb-color-3-negative);\n --sbb-paginator-page-border-color: var(--sbb-border-color-2-negative);\n}\n@media (forced-colors: active) {\n .sbb-paginator__page--number-item[data-selected] {\n --sbb-paginator-page-border-color: Highlight !important;\n }\n}\n.sbb-paginator__page--number-item:disabled {\n --sbb-paginator-page-color: var(--sbb-color-5);\n --sbb-paginator-page-border-style: dashed;\n --sbb-paginator-page-border-color: var(--sbb-border-color-5);\n --sbb-paginator-page-background-color: var(--sbb-background-color-3);\n --sbb-paginator-page-cursor: var(--sbb-cursor-default);\n}\n.sbb-paginator__page--number-item:disabled:not([data-selected]) {\n --sbb-paginator-page-border-width: var(--sbb-border-width-1x);\n}\n:host([negative]) .sbb-paginator__page--number-item:disabled {\n --sbb-paginator-page-color: var(--sbb-color-5);\n --sbb-paginator-page-background-color: var(--sbb-background-color-3-negative);\n}\n@media (forced-colors: active) {\n .sbb-paginator__page--number-item:disabled {\n --sbb-paginator-page-border-color: GrayText;\n --sbb-paginator-page-color: GrayText;\n --sbb-paginator-page-background-color: Canvas;\n }\n}\n@media (any-hover: hover) {\n .sbb-paginator__page--number-item:not(:disabled):hover {\n --sbb-paginator-page-background-color: var(--sbb-background-color-3);\n --sbb-paginator-page-inset: calc(var(--sbb-border-width-2x) * -1);\n --sbb-paginator-translate-y-content-hover: -0.0625rem;\n }\n :host([negative]) .sbb-paginator__page--number-item:not(:disabled):hover {\n --sbb-paginator-page-background-color: var(--sbb-background-color-3-negative);\n }\n}\n@media (any-hover: hover) and (forced-colors: active) {\n .sbb-paginator__page--number-item:not(:disabled):hover {\n --sbb-paginator-page-background-color: Highlight !important;\n }\n}\n.sbb-paginator__page--number-item:not(:disabled):active {\n --sbb-paginator-page-color: var(--sbb-color-3);\n --sbb-paginator-page-background-color: var(--sbb-background-color-4);\n --sbb-paginator-page-inset: 0;\n --sbb-paginator-translate-y-content-hover: 0;\n}\n:host([negative]) .sbb-paginator__page--number-item:not(:disabled):active {\n --sbb-paginator-page-color: var(--sbb-color-3-negative);\n --sbb-paginator-page-background-color: var(--sbb-background-color-4-negative);\n}\n@media (forced-colors: active) {\n .sbb-paginator__page--number-item:not(:disabled):active {\n --sbb-paginator-page-background-color: Highlight !important;\n }\n}\n\n.sbb-paginator__page--number-item-label {\n transition: transform var(--sbb-paginator-animation-duration) var(--sbb-paginator-animation-easing);\n transform: translateY(var(--sbb-paginator-translate-y-content-hover, 0rem));\n}\n\n.sbb-screen-reader-only {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}";
12
- //#endregion
13
- //#region src/elements/paginator/paginator/paginator.component.ts
14
- var MAX_PAGE_NUMBERS_DISPLAYED = 3;
15
- /**
16
- * It displays a paginator component.
17
- */
18
- var SbbPaginatorElement = (() => {
19
- let _classSuper = SbbPaginatorCommonElementMixin(SbbElement);
20
- let _pageSizeOptions_decorators;
21
- let _pageSizeOptions_initializers = [];
22
- let _pageSizeOptions_extraInitializers = [];
23
- let _pagerPosition_decorators;
24
- let _pagerPosition_initializers = [];
25
- let _pagerPosition_extraInitializers = [];
26
- let _accessibilityItemsPerPageLabel_decorators;
27
- let _accessibilityItemsPerPageLabel_initializers = [];
28
- let _accessibilityItemsPerPageLabel_extraInitializers = [];
29
- return class SbbPaginatorElement extends _classSuper {
30
- constructor() {
31
- super(...arguments);
32
- this.#pageSizeOptions_accessor_storage = __runInitializers(this, _pageSizeOptions_initializers, []);
33
- this.#pagerPosition_accessor_storage = (__runInitializers(this, _pageSizeOptions_extraInitializers), __runInitializers(this, _pagerPosition_initializers, "start"));
34
- this.#accessibilityItemsPerPageLabel_accessor_storage = (__runInitializers(this, _pagerPosition_extraInitializers), __runInitializers(this, _accessibilityItemsPerPageLabel_initializers, ""));
35
- this._markForFocus = (__runInitializers(this, _accessibilityItemsPerPageLabel_extraInitializers), false);
36
- }
37
- static {
38
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
39
- _pageSizeOptions_decorators = [property({
40
- attribute: "page-size-options",
41
- type: Array
42
- })];
43
- _pagerPosition_decorators = [property({
44
- attribute: "pager-position",
45
- reflect: true
46
- })];
47
- _accessibilityItemsPerPageLabel_decorators = [forceType(), property({ attribute: "accessibility-items-per-page-label" })];
48
- __esDecorate(this, null, _pageSizeOptions_decorators, {
49
- kind: "accessor",
50
- name: "pageSizeOptions",
51
- static: false,
52
- private: false,
53
- access: {
54
- has: (obj) => "pageSizeOptions" in obj,
55
- get: (obj) => obj.pageSizeOptions,
56
- set: (obj, value) => {
57
- obj.pageSizeOptions = value;
58
- }
59
- },
60
- metadata: _metadata
61
- }, _pageSizeOptions_initializers, _pageSizeOptions_extraInitializers);
62
- __esDecorate(this, null, _pagerPosition_decorators, {
63
- kind: "accessor",
64
- name: "pagerPosition",
65
- static: false,
66
- private: false,
67
- access: {
68
- has: (obj) => "pagerPosition" in obj,
69
- get: (obj) => obj.pagerPosition,
70
- set: (obj, value) => {
71
- obj.pagerPosition = value;
72
- }
73
- },
74
- metadata: _metadata
75
- }, _pagerPosition_initializers, _pagerPosition_extraInitializers);
76
- __esDecorate(this, null, _accessibilityItemsPerPageLabel_decorators, {
77
- kind: "accessor",
78
- name: "accessibilityItemsPerPageLabel",
79
- static: false,
80
- private: false,
81
- access: {
82
- has: (obj) => "accessibilityItemsPerPageLabel" in obj,
83
- get: (obj) => obj.accessibilityItemsPerPageLabel,
84
- set: (obj, value) => {
85
- obj.accessibilityItemsPerPageLabel = value;
86
- }
87
- },
88
- metadata: _metadata
89
- }, _accessibilityItemsPerPageLabel_initializers, _accessibilityItemsPerPageLabel_extraInitializers);
90
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
91
- enumerable: true,
92
- configurable: true,
93
- writable: true,
94
- value: _metadata
95
- });
96
- }
97
- static {
98
- this.elementName = "sbb-paginator";
99
- }
100
- static {
101
- this.elementDependencies = [
102
- SbbFormFieldElement,
103
- SbbSelectElement,
104
- SbbOptionElement
105
- ];
106
- }
107
- static {
108
- this.styles = [boxSizingStyles, unsafeCSS(paginator_default)];
109
- }
110
- static {
111
- this.events = { page: "page" };
112
- }
113
- #pageSizeOptions_accessor_storage;
114
- /** The available `pageSize` choices. */
115
- get pageSizeOptions() {
116
- return this.#pageSizeOptions_accessor_storage;
117
- }
118
- set pageSizeOptions(value) {
119
- this.#pageSizeOptions_accessor_storage = value;
120
- }
121
- #pagerPosition_accessor_storage;
122
- /**
123
- * Position of the prev/next buttons: if `pageSizeOptions` is set,
124
- * the sbb-select for the pageSize change will be positioned oppositely, with the page numbers always in the center.
125
- */
126
- get pagerPosition() {
127
- return this.#pagerPosition_accessor_storage;
128
- }
129
- set pagerPosition(value) {
130
- this.#pagerPosition_accessor_storage = value;
131
- }
132
- #accessibilityItemsPerPageLabel_accessor_storage;
133
- /**
134
- * Accessibility label for the items per page. Defaults to `Items per page.`.
135
- * Can be set for cases like a carousel, where `slide` or `image` fits better.
136
- */
137
- get accessibilityItemsPerPageLabel() {
138
- return this.#accessibilityItemsPerPageLabel_accessor_storage;
139
- }
140
- set accessibilityItemsPerPageLabel(value) {
141
- this.#accessibilityItemsPerPageLabel_accessor_storage = value;
142
- }
143
- updated(changedProperties) {
144
- super.updated(changedProperties);
145
- /** Tab navigation can force a rerender when ellipsis elements need to be displayed; the focus must stay on the correct element. */
146
- if (this._markForFocus) {
147
- const focusElement = this._getVisiblePages().find((e) => this.pageIndex === +e.getAttribute("data-index"));
148
- if (focusElement) focusElement.focus();
149
- this._markForFocus = false;
150
- }
151
- }
152
- /** Returns the displayed page elements. */
153
- _getVisiblePages() {
154
- return Array.from(this.shadowRoot.querySelectorAll(".sbb-paginator__page--number-item"));
155
- }
156
- /**
157
- * Calculate the pages set based on the following rules:
158
- * - the first page must always be visible;
159
- * - the last page must always be visible;
160
- * - if there are more than `MAX_PAGE_NUMBERS_DISPLAYED` other pages, ellipsis button must be used.
161
- */
162
- _getVisiblePagesIndex() {
163
- const totalPages = this.numberOfPages();
164
- const currentPageIndex = this.pageIndex;
165
- if (totalPages <= MAX_PAGE_NUMBERS_DISPLAYED + 2) return this._range(totalPages);
166
- else if (currentPageIndex < MAX_PAGE_NUMBERS_DISPLAYED) return [
167
- ...this._range(MAX_PAGE_NUMBERS_DISPLAYED + 1),
168
- "ellipsis",
169
- totalPages - 1
170
- ];
171
- else if (currentPageIndex >= totalPages - MAX_PAGE_NUMBERS_DISPLAYED) return [
172
- 0,
173
- "ellipsis",
174
- ...this._range(MAX_PAGE_NUMBERS_DISPLAYED + 1, totalPages - 1 - MAX_PAGE_NUMBERS_DISPLAYED)
175
- ];
176
- else return [
177
- 0,
178
- "ellipsis",
179
- currentPageIndex - 1,
180
- currentPageIndex,
181
- currentPageIndex + 1,
182
- "ellipsis",
183
- totalPages - 1
184
- ];
185
- }
186
- /** Creates an array of consecutive numbers given the length and the starting value. */
187
- _range(length, offset = 0) {
188
- return Array.from({ length }, (_, k) => k + offset);
189
- }
190
- _onPageNumberClick(index) {
191
- this.selectPage(index);
192
- this._markForFocus = sbbInputModalityDetector.mostRecentModality === "keyboard";
193
- }
194
- _renderItemPerPageTemplate() {
195
- return this.pageSizeOptions && this.pageSizeOptions.length > 0 ? html`
196
- <div class="sbb-paginator__page-size-options">
197
- <label for="select"
198
- >${this.accessibilityItemsPerPageLabel ? this.accessibilityItemsPerPageLabel : i18nItemsPerPage[this.language.current]}</label
199
- >
200
- <sbb-form-field
201
- borderless
202
- width="collapse"
203
- ?negative=${this.negative}
204
- size=${this.size || nothing}
205
- >
206
- <sbb-select
207
- id="select"
208
- ?disabled=${this.disabled}
209
- value=${this.pageSizeOptions?.find((e) => e === this.pageSize) ?? this.pageSizeOptions[0]}
210
- @change=${(e) => this.pageSize = +e.target.value}
211
- >
212
- ${repeat(this.pageSizeOptions, (element) => html`<sbb-option value=${element}>${element}</sbb-option>`)}
213
- </sbb-select>
214
- </sbb-form-field>
215
- </div>
216
- ` : nothing;
217
- }
218
- _renderPageNumbers() {
219
- return html`
220
- <ul class="sbb-paginator__pages">
221
- ${repeat(this._getVisiblePagesIndex(), (item) => item === "ellipsis" ? html`
222
- <li class="sbb-paginator__page--ellipsis">
223
- <span class="sbb-paginator__page--ellipsis-item">…</span>
224
- </li>
225
- ` : html`
226
- <li class="sbb-paginator__page--number">
227
- <button
228
- ?data-selected=${this.pageIndex === item}
229
- ?disabled=${this.disabled}
230
- class="sbb-paginator__page--number-item"
231
- data-index=${item}
232
- aria-label="${this.accessibilityPageLabel ? this.accessibilityPageLabel : i18nPage[this.language.current]} ${item + 1}"
233
- aria-current=${this.pageIndex === item ? "true" : nothing}
234
- @click=${() => this._onPageNumberClick(item)}
235
- >
236
- <span class="sbb-paginator__page--number-item-label">${item + 1}</span>
237
- </button>
238
- </li>
239
- `)}
240
- </ul>
241
- `;
242
- }
243
- renderPaginator() {
244
- return html`
245
- <div class="sbb-paginator">
246
- ${this.pagerPosition === "start" ? html`<span class="sbb-paginator__wrapping-group">
247
- ${this.renderPrevNextButtons()} ${this._renderPageNumbers()}
248
- </span>
249
- ${this._renderItemPerPageTemplate()}` : html`${this._renderItemPerPageTemplate()}
250
- <span class="sbb-paginator__wrapping-group">
251
- ${this._renderPageNumbers()} ${this.renderPrevNextButtons()}
252
- </span>`}</span>
253
- </div>
254
- `;
255
- }
256
- };
257
- })();
258
- //#endregion
259
- export { SbbPaginatorElement as t };
260
-
261
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC1DcW03TXVSRC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci9wYWdpbmF0b3Iuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItcGFnaW5hdG9yLWhlaWdodDogdmFyKC0tc2JiLXNpemUtZWxlbWVudC14cyk7XG59XG5cbjpob3N0KFtzaXplPSdtJ10pIHtcbiAgLS1zYmItcGFnaW5hdG9yLWhlaWdodDogdmFyKC0tc2JiLXNpemUtZWxlbWVudC1tKTtcbn1cblxuOmhvc3QoW25lZ2F0aXZlXSkge1xuICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcbn1cblxuOmhvc3QoW3BhZ2VyLXBvc2l0aW9uPSdlbmQnXSkge1xuICAtLXNiYi1wYWdpbmF0b3ItanVzdGlmeS1jb250ZW50OiBlbmQ7XG4gIC0tc2JiLXBhZ2luYXRvci13cmFwcGluZy1ncm91cC13cmFwOiB3cmFwO1xuICAtLXNiYi1wYWdpbmF0b3Itd3JhcDogd3JhcC1yZXZlcnNlO1xufVxuXG4uc2JiLXBhZ2luYXRvcixcbi5zYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtM3gpIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTZ4KTtcbiAganVzdGlmeS1jb250ZW50OiB2YXIoLS1zYmItcGFnaW5hdG9yLWp1c3RpZnktY29udGVudCwgc3RhcnQpO1xufVxuXG4uc2JiLXBhZ2luYXRvciB7XG4gIGZsZXgtd3JhcDogdmFyKC0tc2JiLXBhZ2luYXRvci13cmFwLCB3cmFwKTtcbiAgbWluLWhlaWdodDogdmFyKC0tc2JiLXBhZ2luYXRvci1oZWlnaHQpO1xufVxuXG4uc2JiLXBhZ2luYXRvcl9fd3JhcHBpbmctZ3JvdXAge1xuICBmbGV4LXdyYXA6IHZhcigtLXNiYi1wYWdpbmF0b3Itd3JhcHBpbmctZ3JvdXAtd3JhcCwgd3JhcC1yZXZlcnNlKTtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2Utc2l6ZS1vcHRpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLXNiYi1wYWdpbmF0b3ItZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuXG4gIC8vIFJlYXBwbHkgcGFydCBvZiB0aGUgZ2xvYmFsIGZvcm0tZmllbGQgY3NzIHRoYXQgZG9lcyBub3QgcGllcmNlIHRoZSBzaGFkb3cgRE9NLlxuICBzYmItc2VsZWN0IHtcbiAgICBjb2xvcjogdmFyKC0tc2JiLWZvcm0tZmllbGQtdGV4dC1jb2xvcik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zYmItZm9ybS1maWVsZC1pbnB1dC10ZXh0LXNpemUpO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNiYi1mb3JtLWZpZWxkLXNlbGVjdC1pbmxpbmUtcGFkZGluZy1lbmQpO1xuICB9XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlcyB7XG4gIEBpbmNsdWRlIHNiYi5saXN0LXJlc2V0O1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zYmItcGFnaW5hdG9yX19wYWdlLS1lbGxpcHNpcyxcbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXBhZ2luYXRvci1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtY29sb3IpO1xufVxuXG4uc2JiLXBhZ2luYXRvcl9fcGFnZS0tZWxsaXBzaXMtaXRlbSxcbi5zYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogdmFyKC0tc2JiLXNpemUtZWxlbWVudC14eHMpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHhzKTtcbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlci1pdGVtIHtcbiAgQGluY2x1ZGUgc2JiLmJ1dHRvbi1yZXNldDtcblxuICAvLyBUaGUgdGV4dCBtaXhpbiBpcyBuZWVkZWQgdG8gb3ZlcnJpZGUgdGhlIGJ1dHRvbiBiYXNlIHN0eWxlXG4gIC0tc2JiLXRleHQtZm9udC1zaXplOiB2YXIoLS1zYmItcGFnaW5hdG9yLWZvbnQtc2l6ZSk7XG4gIEBpbmNsdWRlIHNiYi50ZXh0O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtY3Vyc29yKTtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yKTtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1wYWdpbmF0b3ItYW5pbWF0aW9uLWVhc2luZyk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3IsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItd2lkdGgpIHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItc3R5bGUsIG5vbmUpXG4gICAgICB2YXIoLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yLCBub25lKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy1pbmZpbml0eSk7XG4gICAgaW5zZXQ6IHZhcigtLXNiYi1wYWdpbmF0b3ItcGFnZS1pbnNldCwgMCk7XG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3IsIGJvcmRlciwgaW5zZXQ7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLXBhZ2luYXRvci1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItcGFnaW5hdG9yLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCk7XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXNlbGVjdGVkXSB7XG4gICAgQGluY2x1ZGUgc2JiLnRleHQtLWJvbGQ7XG5cbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTMpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci13aWR0aDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1ib3JkZXItY29sb3ItMik7XG5cbiAgICA6aG9zdChbbmVnYXRpdmVdKSAmIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMy1uZWdhdGl2ZSk7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1ib3JkZXItY29sb3I6IHZhcigtLXNiYi1ib3JkZXItY29sb3ItMi1uZWdhdGl2ZSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1zdHlsZTogZGFzaGVkO1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci1jb2xvcjogdmFyKC0tc2JiLWJvcmRlci1jb2xvci01KTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zKTtcbiAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jdXJzb3I6IHZhcigtLXNiYi1jdXJzb3ItZGVmYXVsdCk7XG5cbiAgICAmOm5vdChbZGF0YS1zZWxlY3RlZF0pIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJvcmRlci13aWR0aDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCk7XG4gICAgfVxuXG4gICAgOmhvc3QoW25lZ2F0aXZlXSkgJiB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMy1uZWdhdGl2ZSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYm9yZGVyLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yOiBHcmF5VGV4dDtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWJhY2tncm91bmQtY29sb3I6IENhbnZhcztcbiAgICB9XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgICBAaW5jbHVkZSBzYmIuaG92ZXItbXEoJGhvdmVyOiB0cnVlKSB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zKTtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWluc2V0OiBjYWxjKHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMngpICogLTEpO1xuICAgICAgLS1zYmItcGFnaW5hdG9yLXRyYW5zbGF0ZS15LWNvbnRlbnQtaG92ZXI6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgtMSl9O1xuXG4gICAgICA6aG9zdChbbmVnYXRpdmVdKSAmIHtcbiAgICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMy1uZWdhdGl2ZSk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAgICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogSGlnaGxpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUge1xuICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMyk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItNCk7XG4gICAgLS1zYmItcGFnaW5hdG9yLXBhZ2UtaW5zZXQ6IDA7XG4gICAgLS1zYmItcGFnaW5hdG9yLXRyYW5zbGF0ZS15LWNvbnRlbnQtaG92ZXI6IDA7XG5cbiAgICA6aG9zdChbbmVnYXRpdmVdKSAmIHtcbiAgICAgIC0tc2JiLXBhZ2luYXRvci1wYWdlLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMy1uZWdhdGl2ZSk7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci00LW5lZ2F0aXZlKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgICAtLXNiYi1wYWdpbmF0b3ItcGFnZS1iYWNrZ3JvdW5kLWNvbG9yOiBIaWdobGlnaHQgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlci1pdGVtLWxhYmVsIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXNiYi1wYWdpbmF0b3ItYW5pbWF0aW9uLWR1cmF0aW9uKVxuICAgIHZhcigtLXNiYi1wYWdpbmF0b3ItYW5pbWF0aW9uLWVhc2luZyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1zYmItcGFnaW5hdG9yLXRyYW5zbGF0ZS15LWNvbnRlbnQtaG92ZXIsICN7c2JiLnB4LXRvLXJlbS1idWlsZCgwKX0pKTtcbn1cblxuLy8gTmVlZGVkIGZvciB0aGUgc2JiLXNlbGVjdFxuLnNiYi1zY3JlZW4tcmVhZGVyLW9ubHkge1xuICBAaW5jbHVkZSBzYmIuc2NyZWVuLXJlYWRlci1vbmx5O1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuXG5pbXBvcnQge1xuICBib3hTaXppbmdTdHlsZXMsXG4gIGZvcmNlVHlwZSxcbiAgaTE4bkl0ZW1zUGVyUGFnZSxcbiAgaTE4blBhZ2UsXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJGb3JtRmllbGRFbGVtZW50IH0gZnJvbSAnLi4vLi4vZm9ybS1maWVsZC5wdXJlLnRzJztcbmltcG9ydCB7IFNiYk9wdGlvbkVsZW1lbnQgfSBmcm9tICcuLi8uLi9vcHRpb24ucHVyZS50cyc7XG5pbXBvcnQgeyBTYmJTZWxlY3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2VsZWN0LnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluIH0gZnJvbSAnLi4vY29tbW9uL3BhZ2luYXRvci1jb21tb24udHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wYWdpbmF0b3Iuc2Nzcz9pbmxpbmUnO1xuXG5jb25zdCBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCA9IDM7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBwYWdpbmF0b3IgY29tcG9uZW50LlxuICovXG5leHBvcnQgY2xhc3MgU2JiUGFnaW5hdG9yRWxlbWVudCBleHRlbmRzIFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItcGFnaW5hdG9yJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1xuICAgIFNiYkZvcm1GaWVsZEVsZW1lbnQsXG4gICAgU2JiU2VsZWN0RWxlbWVudCxcbiAgICBTYmJPcHRpb25FbGVtZW50LFxuICBdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgcGFnZTogJ3BhZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgYXZhaWxhYmxlIGBwYWdlU2l6ZWAgY2hvaWNlcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZS1zaXplLW9wdGlvbnMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiBvZiB0aGUgcHJldi9uZXh0IGJ1dHRvbnM6IGlmIGBwYWdlU2l6ZU9wdGlvbnNgIGlzIHNldCxcbiAgICogdGhlIHNiYi1zZWxlY3QgZm9yIHRoZSBwYWdlU2l6ZSBjaGFuZ2Ugd2lsbCBiZSBwb3NpdGlvbmVkIG9wcG9zaXRlbHksIHdpdGggdGhlIHBhZ2UgbnVtYmVycyBhbHdheXMgaW4gdGhlIGNlbnRlci5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3BhZ2VyLXBvc2l0aW9uJywgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgb3ZlcnJpZGUgYWNjZXNzb3IgcGFnZXJQb3NpdGlvbjpcbiAgICB8ICdzdGFydCdcbiAgICB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAvKipcbiAgICogQWNjZXNzaWJpbGl0eSBsYWJlbCBmb3IgdGhlIGl0ZW1zIHBlciBwYWdlLiBEZWZhdWx0cyB0byBgSXRlbXMgcGVyIHBhZ2UuYC5cbiAgICogQ2FuIGJlIHNldCBmb3IgY2FzZXMgbGlrZSBhIGNhcm91c2VsLCB3aGVyZSBgc2xpZGVgIG9yIGBpbWFnZWAgZml0cyBiZXR0ZXIuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1pdGVtcy1wZXItcGFnZS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlJdGVtc1BlclBhZ2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBfbWFya0ZvckZvY3VzID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAvKiogVGFiIG5hdmlnYXRpb24gY2FuIGZvcmNlIGEgcmVyZW5kZXIgd2hlbiBlbGxpcHNpcyBlbGVtZW50cyBuZWVkIHRvIGJlIGRpc3BsYXllZDsgdGhlIGZvY3VzIG11c3Qgc3RheSBvbiB0aGUgY29ycmVjdCBlbGVtZW50LiAqL1xuICAgIGlmICh0aGlzLl9tYXJrRm9yRm9jdXMpIHtcbiAgICAgIGNvbnN0IGZvY3VzRWxlbWVudCA9IHRoaXMuX2dldFZpc2libGVQYWdlcygpLmZpbmQoXG4gICAgICAgIChlKSA9PiB0aGlzLnBhZ2VJbmRleCA9PT0gK2UuZ2V0QXR0cmlidXRlKCdkYXRhLWluZGV4JykhLFxuICAgICAgKTtcbiAgICAgIGlmIChmb2N1c0VsZW1lbnQpIHtcbiAgICAgICAgKGZvY3VzRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX21hcmtGb3JGb2N1cyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBkaXNwbGF5ZWQgcGFnZSBlbGVtZW50cy4gKi9cbiAgcHJpdmF0ZSBfZ2V0VmlzaWJsZVBhZ2VzKCk6IEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yQWxsKCcuc2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0nKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBwYWdlcyBzZXQgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBydWxlczpcbiAgICogIC0gdGhlIGZpcnN0IHBhZ2UgbXVzdCBhbHdheXMgYmUgdmlzaWJsZTtcbiAgICogIC0gdGhlIGxhc3QgcGFnZSBtdXN0IGFsd2F5cyBiZSB2aXNpYmxlO1xuICAgKiAgLSBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIGBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRGAgb3RoZXIgcGFnZXMsIGVsbGlwc2lzIGJ1dHRvbiBtdXN0IGJlIHVzZWQuXG4gICAqL1xuICBwcml2YXRlIF9nZXRWaXNpYmxlUGFnZXNJbmRleCgpOiAobnVtYmVyIHwgJ2VsbGlwc2lzJylbXSB7XG4gICAgY29uc3QgdG90YWxQYWdlczogbnVtYmVyID0gdGhpcy5udW1iZXJPZlBhZ2VzKCk7XG4gICAgY29uc3QgY3VycmVudFBhZ2VJbmRleDogbnVtYmVyID0gdGhpcy5wYWdlSW5kZXg7XG5cbiAgICBpZiAodG90YWxQYWdlcyA8PSBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCArIDIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yYW5nZSh0b3RhbFBhZ2VzKTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRQYWdlSW5kZXggPCBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCkge1xuICAgICAgcmV0dXJuIFsuLi50aGlzLl9yYW5nZShNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCArIDEpLCAnZWxsaXBzaXMnLCB0b3RhbFBhZ2VzIC0gMV07XG4gICAgfSBlbHNlIGlmIChjdXJyZW50UGFnZUluZGV4ID49IHRvdGFsUGFnZXMgLSBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgMCxcbiAgICAgICAgJ2VsbGlwc2lzJyxcbiAgICAgICAgLi4udGhpcy5fcmFuZ2UoTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgKyAxLCB0b3RhbFBhZ2VzIC0gMSAtIE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEKSxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIDAsXG4gICAgICAgICdlbGxpcHNpcycsXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXggLSAxLFxuICAgICAgICBjdXJyZW50UGFnZUluZGV4LFxuICAgICAgICBjdXJyZW50UGFnZUluZGV4ICsgMSxcbiAgICAgICAgJ2VsbGlwc2lzJyxcbiAgICAgICAgdG90YWxQYWdlcyAtIDEsXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGFuIGFycmF5IG9mIGNvbnNlY3V0aXZlIG51bWJlcnMgZ2l2ZW4gdGhlIGxlbmd0aCBhbmQgdGhlIHN0YXJ0aW5nIHZhbHVlLiAqL1xuICBwcml2YXRlIF9yYW5nZShsZW5ndGg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIgPSAwKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sIChfLCBrKSA9PiBrICsgb2Zmc2V0KTtcbiAgfVxuXG4gIHByaXZhdGUgX29uUGFnZU51bWJlckNsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdFBhZ2UoaW5kZXgpO1xuXG4gICAgLy8gV2hlbiB0aGUgcGFnZSBpcyBjaGFuZ2VkLCB0aGUgbmV3IGN1cnJlbnQgcGFnZSBtaWdodCBjaGFuZ2UgaXRzIHBvc2l0aW9uLlxuICAgIC8vIEFmdGVyIHRoZSByZW5kZXIsIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGZvY3VzIHN0YXlzIG9uIHRoZSBzZWxlY3RlZCBwYWdlLlxuICAgIHRoaXMuX21hcmtGb3JGb2N1cyA9IHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJJdGVtUGVyUGFnZVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLnBhZ2VTaXplT3B0aW9ucyAmJiB0aGlzLnBhZ2VTaXplT3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICA/IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2Utc2l6ZS1vcHRpb25zXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgPiR7dGhpcy5hY2Nlc3NpYmlsaXR5SXRlbXNQZXJQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICA/IHRoaXMuYWNjZXNzaWJpbGl0eUl0ZW1zUGVyUGFnZUxhYmVsXG4gICAgICAgICAgICAgICAgOiBpMThuSXRlbXNQZXJQYWdlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19PC9sYWJlbFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNiYi1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICAgICAgd2lkdGg9XCJjb2xsYXBzZVwiXG4gICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemUgfHwgbm90aGluZ31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNiYi1zZWxlY3RcbiAgICAgICAgICAgICAgICBpZD1cInNlbGVjdFwiXG4gICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICB2YWx1ZT0ke3RoaXMucGFnZVNpemVPcHRpb25zPy5maW5kKChlKSA9PiBlID09PSB0aGlzLnBhZ2VTaXplKSA/P1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZVNpemVPcHRpb25zIVswXX1cbiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7KGU6IEV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgKHRoaXMucGFnZVNpemUgPSArKChlLnRhcmdldCBhcyBTYmJTZWxlY3RFbGVtZW50KS52YWx1ZSBhcyBzdHJpbmcpKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZU9wdGlvbnMhLFxuICAgICAgICAgICAgICAgICAgKGVsZW1lbnQpID0+IGh0bWxgPHNiYi1vcHRpb24gdmFsdWU9JHtlbGVtZW50fT4ke2VsZW1lbnR9PC9zYmItb3B0aW9uPmAsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9zYmItc2VsZWN0PlxuICAgICAgICAgICAgPC9zYmItZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYFxuICAgICAgOiBub3RoaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyUGFnZU51bWJlcnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHVsIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZXNcIj5cbiAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgdGhpcy5fZ2V0VmlzaWJsZVBhZ2VzSW5kZXgoKSxcbiAgICAgICAgICAoaXRlbTogbnVtYmVyIHwgJ2VsbGlwc2lzJyk6IFRlbXBsYXRlUmVzdWx0ID0+XG4gICAgICAgICAgICBpdGVtID09PSAnZWxsaXBzaXMnXG4gICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tZWxsaXBzaXMtaXRlbVwiPuKApjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICA6IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgID9kYXRhLXNlbGVjdGVkPSR7dGhpcy5wYWdlSW5kZXggPT09IGl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlci1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhLWluZGV4PSR7aXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiJHt0aGlzLmFjY2Vzc2liaWxpdHlQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5hY2Nlc3NpYmlsaXR5UGFnZUxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGkxOG5QYWdlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19ICR7aXRlbSArIDF9XCJcbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWN1cnJlbnQ9JHt0aGlzLnBhZ2VJbmRleCA9PT0gaXRlbSA/ICd0cnVlJyA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fb25QYWdlTnVtYmVyQ2xpY2soaXRlbSl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlci1pdGVtLWxhYmVsXCI+JHtpdGVtICsgMX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICBgLFxuICAgICAgICApfVxuICAgICAgPC91bD5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclBhZ2luYXRvcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXBhZ2luYXRvclwiPlxuICAgICAgICAke1xuICAgICAgICAgIHRoaXMucGFnZXJQb3NpdGlvbiA9PT0gJ3N0YXJ0J1xuICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fd3JhcHBpbmctZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5yZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKX0gJHt0aGlzLl9yZW5kZXJQYWdlTnVtYmVycygpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAke3RoaXMuX3JlbmRlckl0ZW1QZXJQYWdlVGVtcGxhdGUoKX1gXG4gICAgICAgICAgICA6IGh0bWxgJHt0aGlzLl9yZW5kZXJJdGVtUGVyUGFnZVRlbXBsYXRlKCl9XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX193cmFwcGluZy1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJQYWdlTnVtYmVycygpfSAke3RoaXMucmVuZGVyUHJldk5leHRCdXR0b25zKCl9XG4gICAgICAgICAgICAgICAgPC9zcGFuPmBcbiAgICAgICAgfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wYWdpbmF0b3InOiBTYmJQYWdpbmF0b3JFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUMyQkEsSUFBTSw2QkFBNkI7Ozs7SUFLdEIsNkJBQW1CO21CQUFTLCtCQUErQixXQUFXOzs7Ozs7Ozs7O2NBQXRFLDRCQUE0QixZQUEwQzs7O0FBY2pFLFNBQUEsbUNBQUEsa0JBQUEsTUFBQSwrQkFBNEIsRUFBRSxDQUFBO0FBTXFDLFNBQUEsa0NBQUEsa0JBQUEsTUFBQSxtQ0FBQSxFQUFBLGtCQUFBLE1BQUEsNkJBRXZFLFFBQU87QUFRSCxTQUFBLG1EQUFBLGtCQUFBLE1BQUEsaUNBQUEsRUFBQSxrQkFBQSxNQUFBLDhDQUF5QyxHQUFFO0FBRW5ELFFBQUEsaUJBQWEsa0JBQUEsTUFBQSxrREFBQSxFQUFHOzs7O2tDQW5CdkIsU0FBUztJQUFFLFdBQVc7SUFBcUIsTUFBTTtJQUFPLENBQUMsQ0FBQTtnQ0FPekQsU0FBUztJQUFFLFdBQVc7SUFBa0IsU0FB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
@@ -1,125 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbFormAssociatedRadioButtonMixin } from "./core.js";
5
- //#endregion
6
- //#region src/elements/radio-button/common/radio-button-common.ts
7
- var radioButtonCommonStyle = unsafeCSS(":host {\n --sbb-radio-button-inner-circle-color: var(--sbb-radio-button-background-color);\n --sbb-radio-button-background-fake-border-width: calc(var(--sbb-radio-button-dimension) / 2);\n --sbb-radio-button-icon-align: calc(\n (1em * var(--sbb-typo-line-height-text) - var(--sbb-radio-button-dimension)) / 2\n );\n}\n\n:host(:is(:state(checked),[state--checked])) {\n --sbb-radio-button-inner-circle-color: var(--sbb-color-primary);\n --sbb-radio-button-background-fake-border-width: calc(\n (var(--sbb-radio-button-dimension) - var(--sbb-radio-button-inner-circle-dimension)) / 2\n );\n}\n@media (forced-colors: active) {\n :host(:is(:state(checked),[state--checked])) {\n --sbb-radio-button-inner-circle-color: Highlight;\n --sbb-radio-button-border-color: Highlight;\n }\n}\n\n:host(:disabled) {\n --sbb-radio-button-label-color: var(--sbb-color-granite);\n --sbb-radio-button-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-aluminium));\n --sbb-radio-button-background-color: var(--sbb-background-color-3);\n --sbb-radio-button-border-style: dashed;\n --sbb-radio-button-inner-circle-color: var(--sbb-radio-button-background-color);\n --sbb-radio-button-cursor: var(--sbb-cursor-default);\n}\n@media (forced-colors: active) {\n :host(:disabled) {\n --sbb-radio-button-background-color: Canvas;\n --sbb-radio-button-inner-circle-color: GrayText;\n --sbb-radio-button-border-color: GrayText;\n --sbb-radio-button-border-style: solid;\n }\n}\n\n:host(:disabled:is(:state(checked),[state--checked])) {\n --sbb-radio-button-inner-circle-color: var(--sbb-background-color-2-inverted);\n}\n\n:host([size=xs]) {\n --sbb-radio-button-font-size: var(--sbb-text-font-size-xs);\n --sbb-radio-button-dimension: var(--sbb-radio-button-dimension-xs);\n}\n\n:host([size=s]) {\n --sbb-radio-button-font-size: var(--sbb-text-font-size-s);\n --sbb-radio-button-dimension: var(--sbb-radio-button-dimension-s);\n}\n\n:host([size=m]) {\n --sbb-radio-button-font-size: var(--sbb-text-font-size-m);\n --sbb-radio-button-dimension: var(--sbb-radio-button-dimension-m);\n}\n\n.sbb-screen-reader-only {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.sbb-radio-button {\n font-size: var(--sbb-radio-button-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n display: block;\n cursor: var(--sbb-radio-button-cursor);\n user-select: none;\n position: relative;\n color: var(--sbb-radio-button-label-color);\n -webkit-tap-highlight-color: transparent;\n}\n\n.sbb-radio-button__label-slot {\n display: flex;\n align-items: flex-start;\n overflow: hidden;\n min-height: calc(var(--sbb-radio-button-font-size) * var(--sbb-typo-line-height-text));\n}\n.sbb-radio-button__label-slot::before, .sbb-radio-button__label-slot::after {\n content: \"\";\n flex-shrink: 0;\n width: var(--sbb-radio-button-dimension);\n height: var(--sbb-radio-button-dimension);\n border-radius: 50%;\n margin-block-start: var(--sbb-radio-button-icon-align);\n transition-duration: var(--sbb-disable-animation-duration, var(--sbb-animation-duration-4x));\n transition-timing-function: ease;\n transition-property: background-color, border;\n}\n@media (forced-colors: active) {\n .sbb-radio-button__label-slot::before, .sbb-radio-button__label-slot::after {\n transition: none;\n }\n}\n.sbb-radio-button__label-slot::before {\n background: var(--sbb-radio-button-inner-circle-color);\n border: var(--sbb-radio-button-background-fake-border-width) solid var(--sbb-radio-button-background-color);\n margin-inline-end: var(--sbb-radio-button-label-gap);\n}\n.sbb-radio-button__label-slot::after {\n position: absolute;\n border: var(--sbb-radio-button-border-width) var(--sbb-radio-button-border-style) var(--sbb-radio-button-border-color);\n}");
8
- var SbbRadioButtonCommonElementMixin = (superClass) => {
9
- return (() => {
10
- let _classSuper = SbbFormAssociatedRadioButtonMixin(superClass);
11
- let _instanceExtraInitializers = [];
12
- let _set_allowEmptySelection_decorators;
13
- return class SbbRadioButtonCommonElement extends _classSuper {
14
- static {
15
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
16
- _set_allowEmptySelection_decorators = [property({
17
- attribute: "allow-empty-selection",
18
- type: Boolean
19
- })];
20
- __esDecorate(this, null, _set_allowEmptySelection_decorators, {
21
- kind: "setter",
22
- name: "allowEmptySelection",
23
- static: false,
24
- private: false,
25
- access: {
26
- has: (obj) => "allowEmptySelection" in obj,
27
- set: (obj, value) => {
28
- obj.allowEmptySelection = value;
29
- }
30
- },
31
- metadata: _metadata
32
- }, null, _instanceExtraInitializers);
33
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
34
- enumerable: true,
35
- configurable: true,
36
- writable: true,
37
- value: _metadata
38
- });
39
- }
40
- static {
41
- this.events = {
42
- change: "change",
43
- input: "input"
44
- };
45
- }
46
- /**
47
- * Whether the radio can be deselected.
48
- */
49
- set allowEmptySelection(value) {
50
- this._allowEmptySelection = Boolean(value);
51
- }
52
- get allowEmptySelection() {
53
- return this._allowEmptySelection || (this.group?.allowEmptySelection ?? false);
54
- }
55
- /**
56
- * Reference to the connected radio button group.
57
- */
58
- get group() {
59
- return this._group;
60
- }
61
- constructor() {
62
- super();
63
- this._allowEmptySelection = (__runInitializers(this, _instanceExtraInitializers), false);
64
- this._group = null;
65
- this.addEventListener?.("click", (e) => this._handleClick(e));
66
- this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
67
- }
68
- connectedCallback() {
69
- super.connectedCallback();
70
- this._group = this.closest("sbb-radio-button-group");
71
- [
72
- "disabled",
73
- "required",
74
- "size"
75
- ].forEach((p) => this.requestUpdate(p));
76
- }
77
- /**
78
- * Set the radio-button as 'checked'; if 'allowEmptySelection', toggle the checked property.
79
- * In both cases it emits the change events.
80
- */
81
- select() {
82
- if (this.disabled || this.formDisabled) return;
83
- if (this.allowEmptySelection) {
84
- this.checked = !this.checked;
85
- this.emitChangeEvents();
86
- } else if (!this.checked) {
87
- this.checked = true;
88
- this.emitChangeEvents();
89
- }
90
- }
91
- willUpdate(changedProperties) {
92
- super.willUpdate(changedProperties);
93
- if (changedProperties.has("value"))
94
- /** @internal */
95
- this.dispatchEvent(new Event("ɵradiobuttonvaluechange", { bubbles: true }));
96
- }
97
- isDisabledExternally() {
98
- return this.group?.disabled ?? false;
99
- }
100
- isRequiredExternally() {
101
- return this.group?.required ?? false;
102
- }
103
- async _handleClick(event) {
104
- event.preventDefault();
105
- this.select();
106
- /**
107
- * Since only a single radio of a group is focusable at any time, it is possible that the one clicked does not have 'tabindex=0'.
108
- * To cover that, we await the next render (which will make the 'checked' radio focusable) and focus the clicked radio
109
- */
110
- await this.updateComplete;
111
- this.focus();
112
- }
113
- _handleKeyDown(evt) {
114
- if (evt.code === "Space") {
115
- evt.preventDefault();
116
- this.select();
117
- }
118
- }
119
- };
120
- })();
121
- };
122
- //#endregion
123
- export { radioButtonCommonStyle as n, SbbRadioButtonCommonElementMixin as t };
124
-
125
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWNvbW1vbi11N05ZT0kycC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL2NvbW1vbi9yYWRpby1idXR0b24tY29tbW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3JhZGlvLWJ1dHRvbi9jb21tb24vcmFkaW8tYnV0dG9uLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtY29sb3I6IHZhcigtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgLy8gVGhlIGJvcmRlciBpbiB1bmNoZWNrZWQgc3RhdGUgc2hvdWxkIGZpbGwgdGhlIGNpcmNsZS5cbiAgLS1zYmItcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtZmFrZS1ib3JkZXItd2lkdGg6IGNhbGModmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb24pIC8gMik7XG5cbiAgLy8gQWxpZ24gcmFkaW8gYnV0dG9uIHRvIHRoZSBmaXJzdCByb3cgb2YgdGhlIGxhYmVsIGJhc2VkIG9uIHRoZSBsaW5lLWhlaWdodCBzbyB0aGF0IGl0J3MgdmVydGljYWxseVxuICAvLyBhbGlnbmVkIHRvIHRoZSBsYWJlbCBhbmQgc3RpY2tzIHRvIHRoZSB0b3AgaWYgdGhlIGxhYmVsIGJyZWFrcyBpbnRvIG11bHRpcGxlIGxpbmVzXG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1pY29uLWFsaWduOiBjYWxjKFxuICAgICgxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSAtIHZhcigtLXNiYi1yYWRpby1idXR0b24tZGltZW5zaW9uKSkgLyAyXG4gICk7XG59XG5cbjpob3N0KDpzdGF0ZShjaGVja2VkKSkge1xuICAtLXNiYi1yYWRpby1idXR0b24taW5uZXItY2lyY2xlLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItcHJpbWFyeSk7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWZha2UtYm9yZGVyLXdpZHRoOiBjYWxjKFxuICAgICh2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbikgLSB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWlubmVyLWNpcmNsZS1kaW1lbnNpb24pKSAvIDJcbiAgKTtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItcmFkaW8tYnV0dG9uLWlubmVyLWNpcmNsZS1jb2xvcjogSGlnaGxpZ2h0O1xuICAgIC0tc2JiLXJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3I6IEhpZ2hsaWdodDtcbiAgfVxufVxuXG4vLyBEaXNhYmxlZCBkZWZpbml0aW9ucyBoYXZlIHRvIGJlIGFmdGVyIGNoZWNrZWQgZGVmaW5pdGlvbnNcbjpob3N0KDpkaXNhYmxlZCkge1xuICAtLXNiYi1yYWRpby1idXR0b24tbGFiZWwtY29sb3I6IGxpZ2h0LWRhcmsodmFyKC0tc2JiLWNvbG9yLWdyYW5pdGUpLCB2YXIoLS1zYmItY29sb3ItYWx1bWluaXVtKSk7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zKTtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWJvcmRlci1zdHlsZTogZGFzaGVkO1xuICAtLXNiYi1yYWRpby1idXR0b24taW5uZXItY2lyY2xlLWNvbG9yOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWJhY2tncm91bmQtY29sb3IpO1xuICAtLXNiYi1yYWRpby1idXR0b24tY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLWRlZmF1bHQpO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1yYWRpby1idXR0b24tYmFja2dyb3VuZC1jb2xvcjogQ2FudmFzO1xuICAgIC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtY29sb3I6IEdyYXlUZXh0O1xuICAgIC0tc2JiLXJhZGlvLWJ1dHRvbi1ib3JkZXItY29sb3I6IEdyYXlUZXh0O1xuICAgIC0tc2JiLXJhZGlvLWJ1dHRvbi1ib3JkZXItc3R5bGU6IHNvbGlkO1xuICB9XG59XG5cbi8vIERpc2FibGVkIGRlZmluaXRpb25zIGhhdmUgdG8gYmUgYWZ0ZXIgY2hlY2tlZCBkZWZpbml0aW9uc1xuOmhvc3QoOmRpc2FibGVkOnN0YXRlKGNoZWNrZWQpKSB7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1pbm5lci1jaXJjbGUtY29sb3I6IHZhcigtLXNiYi1iYWNrZ3JvdW5kLWNvbG9yLTItaW52ZXJ0ZWQpO1xufVxuXG46aG9zdChbc2l6ZT0neHMnXSkge1xuICAtLXNiYi1yYWRpby1idXR0b24tZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUteHMpO1xuICAtLXNiYi1yYWRpby1idXR0b24tZGltZW5zaW9uOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbi14cyk7XG59XG5cbjpob3N0KFtzaXplPSdzJ10pIHtcbiAgLS1zYmItcmFkaW8tYnV0dG9uLWZvbnQtc2l6ZTogdmFyKC0tc2JiLXRleHQtZm9udC1zaXplLXMpO1xuICAtLXNiYi1yYWRpby1idXR0b24tZGltZW5zaW9uOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbi1zKTtcbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi1yYWRpby1idXR0b24tZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtbSk7XG4gIC0tc2JiLXJhZGlvLWJ1dHRvbi1kaW1lbnNpb246IHZhcigtLXNiYi1yYWRpby1idXR0b24tZGltZW5zaW9uLW0pO1xufVxuXG4uc2JiLXNjcmVlbi1yZWFkZXItb25seSB7XG4gIEBpbmNsdWRlIHNiYi5zY3JlZW4tcmVhZGVyLW9ubHk7XG59XG5cbi5zYmItcmFkaW8tYnV0dG9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWZvbnQtc2l6ZSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1jdXJzb3IpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb2xvcjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1sYWJlbC1jb2xvcik7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zYmItcmFkaW8tYnV0dG9uX19sYWJlbC1zbG90IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1pbi1oZWlnaHQ6IGNhbGModmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1mb250LXNpemUpICogdmFyKC0tc2JiLXR5cG8tbGluZS1oZWlnaHQtdGV4dCkpO1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbik7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWRpbWVuc2lvbik7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1pY29uLWFsaWduKTtcblxuICAgIHRyYW5zaXRpb246IHtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNHgpKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgICAgIHByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yLCBib3JkZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBVbmNoZWNrZWQgc3R5bGVcbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWlubmVyLWNpcmNsZS1jb2xvcik7XG5cbiAgICAvLyBUaGUgYm9yZGVyIHdhcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBhbmltYXRpb24gb2YgdGhlIHJhZGlvLWJ1dHRvblxuICAgIC8vIFRoZSBib3JkZXIgY29sb3IgYWN0cyBhcyBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgIGJvcmRlcjogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWZha2UtYm9yZGVyLXdpZHRoKSBzb2xpZFxuICAgICAgdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tc2JiLXJhZGlvLWJ1dHRvbi1sYWJlbC1nYXApO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXI6IHZhcigtLXNiYi1yYWRpby1idXR0b24tYm9yZGVyLXdpZHRoKSB2YXIoLS1zYmItcmFkaW8tYnV0dG9uLWJvcmRlci1zdHlsZSlcbiAgICAgIHZhcigtLXNiYi1yYWRpby1idXR0b24tYm9yZGVyLWNvbG9yKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICB0eXBlIEFic3RyYWN0Q29uc3RydWN0b3IsXG4gIFNiYkVsZW1lbnQsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkUmFkaW9CdXR0b25NaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IH0gZnJvbSAnLi4vLi4vcmFkaW8tYnV0dG9uLWdyb3VwLnB1cmUudHMnO1xuXG5pbXBvcnQgcmFkaW9CdXR0b25Db21tb25TdHlsZVN0cmluZyBmcm9tICcuL3JhZGlvLWJ1dHRvbi1jb21tb24uc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgY29uc3QgcmFkaW9CdXR0b25Db21tb25TdHlsZSA9IHVuc2FmZUNTUyhyYWRpb0J1dHRvbkNvbW1vblN0eWxlU3RyaW5nKTtcblxuZXhwb3J0IHR5cGUgU2JiUmFkaW9CdXR0b25TaXplID0gJ3hzJyB8ICdzJyB8ICdtJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlIGV4dGVuZHMgU2JiRm9ybUFzc29jaWF0ZWRSYWRpb0J1dHRvbk1peGluKFxuICBTYmJFbGVtZW50LFxuKSB7XG4gIHB1YmxpYyBnZXQgYWxsb3dFbXB0eVNlbGVjdGlvbigpOiBib29sZWFuO1xuICBwdWJsaWMgc2V0IGFsbG93RW1wdHlTZWxlY3Rpb24oYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZ3JvdXAoKTogU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQ7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJGb3JtQXNzb2NpYXRlZFJhZGlvQnV0dG9uTWl4aW4oc3VwZXJDbGFzcylcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPlxuICB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgICBjaGFuZ2U6ICdjaGFuZ2UnLFxuICAgICAgaW5wdXQ6ICdpbnB1dCcsXG4gICAgfSBhcyBjb25zdDtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHJhZGlvIGNhbiBiZSBkZXNlbGVjdGVkLlxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FsbG93LWVtcHR5LXNlbGVjdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgc2V0IGFsbG93RW1wdHlTZWxlY3Rpb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMuX2FsbG93RW1wdHlTZWxlY3Rpb24gPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBhbGxvd0VtcHR5U2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2FsbG93RW1wdHlTZWxlY3Rpb24gfHwgKHRoaXMuZ3JvdXA/LmFsbG93RW1wdHlTZWxlY3Rpb24gPz8gZmFsc2UpO1xuICAgIH1cbiAgICBwcml2YXRlIF9hbGxvd0VtcHR5U2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGNvbm5lY3RlZCByYWRpbyBidXR0b24gZ3JvdXAuXG4gICAgICovXG4gICAgcHVibGljIGdldCBncm91cCgpOiBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMuX2dyb3VwO1xuICAgIH1cbiAgICBwcml2YXRlIF9ncm91cDogU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZSkgPT4gdGhpcy5faGFuZGxlQ2xpY2soZSkpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4gdGhpcy5faGFuZGxlS2V5RG93bihlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuX2dyb3VwID0gdGhpcy5jbG9zZXN0KCdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJykgYXMgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQ7XG5cbiAgICAgIC8vIFdlIG5lZWQgdG8gY2FsbCByZXF1ZXN0VXBkYXRlIHRvIHVwZGF0ZSB0aGUgcmVmbGVjdGVkIGF0dHJpYnV0ZXNcbiAgICAgIFsnZGlzYWJsZWQnLCAncmVxdWlyZWQnLCAnc2l6ZSddLmZvckVhY2goKHApID0+IHRoaXMucmVxdWVzdFVwZGF0ZShwKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSByYWRpby1idXR0b24gYXMgJ2NoZWNrZWQnOyBpZiAnYWxsb3dFbXB0eVNlbGVjdGlvbicsIHRvZ2dsZSB0aGUgY2hlY2tlZCBwcm9wZXJ0eS5cbiAgICAgKiBJbiBib3RoIGNhc2VzIGl0IGVtaXRzIHRoZSBjaGFuZ2UgZXZlbnRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFsbG93RW1wdHlTZWxlY3Rpb24pIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlRXZlbnRzKCk7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlRXZlbnRzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWUnKSkge1xuICAgICAgICAvKiogQGludGVybmFsICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ8m1cmFkaW9idXR0b252YWx1ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JvdXA/LmRpc2FibGVkID8/IGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmdyb3VwPy5yZXF1aXJlZCA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9oYW5kbGVDbGljayhldmVudDogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNlbGVjdCgpO1xuXG4gICAgICAvKipcbiAgICAgICAqIFNpbmNlIG9ubHkgYSBzaW5nbGUgcmFkaW8gb2YgYSBncm91cCBpcyBmb2N1c2FibGUgYXQgYW55IHRpbWUsIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIG9uZSBjbGlja2VkIGRvZXMgbm90IGhhdmUgJ3RhYmluZGV4PTAnLlxuICAgICAgICogVG8gY292ZXIgdGhhdCwgd2UgYXdhaXQgdGhlIG5leHQgcmVuZGVyICh3aGljaCB3aWxsIG1ha2UgdGhlICdjaGVja2VkJyByYWRpbyBmb2N1c2FibGUpIGFuZCBmb2N1cyB0aGUgY2xpY2tlZCByYWRpb1xuICAgICAgICovXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZUNvbXBsZXRlOyAvLyBXYWl0IGZvciAndGFiaW5kZXgnIHRvIGJlIHVwZGF0ZWRcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgaWYgKGV2dC5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNlbGVjdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJhZGlvQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUNZQSxJQUFhLHlCQUF5Qix5MkhBQXVDO0FBYzdFLElBQWEsb0NBQ1gsZUFDaUU7QUFtR2pFLGVBbEcwQztvQkFDaEMsa0NBQWtDLFdBQVc7OztlQUR4QyxvQ0FDTCxZQUE2Qzs7OzJDQVdwRCxTQUFTO0tBQUUsV0FBVztLQUF5QixNQUFNO0tBQVMsQ0FBQyxDQUFBO0FBQ2hFLGlCQUFBLE1BQUEsTUFBQSxxQ0FBQTtLQUFBLE1BQUE7S0FBQSxNQUFBO0tBQUEsUUFBQTtLQUFBLFNBQUE7S0FBQSxRQUFBO01BQUEsTUFBQSxRQUFBLHlCQUFBO01BQUEsTUFBQSxLQUFBLFVBQUE7QUFBQSxXQUFXLHNCQUFtQjs7TUFBQTtLQUFBLFVBQUE7S0FBQSxFQUFBLE1BQUEsMkJBQUE7Ozs7Ozs7OztBQVRQLFNBQUEsU0FBUztLQUM5QixRQUFRO0tBQ1IsT0FBTztLQUNDOzs7OztHQU1WLElBQVcsb0JBQW9CLE9BQWM7QUFDM0MsU0FBSyx1QkFBdUIsUUFBUSxNQUFNOztHQUU1QyxJQUFXLHNCQUFtQjtBQUM1QixXQUFPLEtBQUsseUJBQXlCLEtBQUssT0FBTyx1QkFBdUI7Ozs7O0dBTzFFLElBQVcsUUFBSztBQUNkLFdBQU8sS0FBSzs7R0FJZCxjQUFBO0FBQ0UsV0FBTztBQVhELFNBQUEsd0JBbkJLLGtCQUFBLE1BQUEsMkJBQTJCLEVBbUJUO0FBUXZCLFNBQUEsU0FBNEM7QUFJbEQsU0FBSyxtQkFBbUIsVUFBVSxNQUFNLEtBQUssYUFBYSxFQUFFLENBQUM7QUFDN0QsU0FBSyxtQkFBbUIsWUFBWSxNQUFNLEtBQUssZUFBZSxFQUFFLENBQUM7O0dBR25ELG9CQUFpQjtBQUMvQixVQUFNLG1CQUFtQjtBQUN6QixTQUFLLFNBQVMsS0FBSyxRQUFRLHlCQUF1RDtBQUdsRjtLQUFDO0tBQVk7S0FBWTtLQUFPLENBQUMsU0FBUyxNQUFNLEtBQUssY0FBYyxFQUFFLENBQUM7Ozs7OztHQU9qRSxTQUFNO0FBQ1gsUUFBSSxLQUFLLFlBQVksS0FBSyxhQUN4QjtBQUdGLFFBQUksS0FBSyxxQkFBcUI7QUFDNUIsVUFBSyxVQUFVLENBQUMsS0FBSztBQUNyQixVQUFLLGtCQUFrQjtlQUNkLENBQUMsS0FBSyxTQUFTO0FBQ3hCLFVBQUssVUFBVTtBQUNmLFVBQUssa0JBQWtCOzs7R0FJUixXQUFXLG1CQUF1QztBQUNuRSxVQUFNLFdBQVcsa0JBQWtCO0FBRW5DLFFBQUksa0JBQWtCLElBQUksUUFBUTs7QUFFaEMsU0FBSyxjQUFjLElBQUksTUFBTSwyQkFBMkIsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFDOztHQUk1RCx1QkFBb0I7QUFDckMsV0FBTyxLQUFLLE9BQU8sWUFBWTs7R0FHZCx1QkFBb0I7QUFDckMsV0FBTyxLQUFLLE9BQU8sWUFBWTs7R0FHekIsTUFBTSxhQUFhLE9BQVk7QUFDckMsVUFBTSxnQkFBZ0I7QUFDdEIsU0FBSyxRQUFROzs7OztBQU1iLFVBQU0sS0FBSztBQUNYLFNBQUssT0FBTzs7R0FHTixlQUFlLEtBQWtCO0FBQ3ZDLFFBQUksSUFBSSxTQUFTLFNBQVM7QUFDeEIsU0FBSSxnQkFBZ0I7QUFDcEIsVUFBSyxRQUFRIn0=